SMT TRF++ classes (package smttrack)
Code version 00.04.45
An introduction to TRF++ may be found at
http://www.bonner.rice.edu/adams/trf++
I little bit more detail description of silicon tracking code can be looked at here .
Links to code
The description below includes links to the code contained in this
package. This
version
of the code may not be the most recent.
Performance plots
Plots reflecting reconstruction efficiency, resolution of reconstructed tracks
and tracks chi-square can be found here.
Description
D0 smttrack package provides classes for track fitting and
finding in D0 SMT detector. It defines SMT detector for track finding
and fitting in TRF++.
The physical components include:
- SMTTrackNtuple (
header,
source,
test )
- PropTotalPtr (
header)
- PropTotal (
header,
source,
test )
- PropCylXY_Start (
header,
source,
test )
- PropCylXY_Nothing (
header,
source,
test )
- PropCylZ_Nothing (
header,
source,
test )
- Method (
header,
source,
test )
- MethodCyl (
header,
source,
test )
- MethodLine (
header,
source,
test )
- FilterShares_SMT (
header,
source,
test )
- FilterShares_SMTCFT (
header,
source,
test )
- FilterContains_SMT (
header,
source,
test )
- ClusterFindDisk (
header,
source,
test )
- AddFitterStart (
header,
source,
test )
- AddFitXYZPlane_XY2_Z2_XY2 (
header,
source,
test )
- AddFitXYPlane_XY2_XY2_XY2 (
header,
source,
test )
- AddFitZPlane_Z2_Z2_XY2 (
header,
source,
test )
- AddFitTotalPtr (
header)
- AddFitTotal (
header,
source,
test )
- LadderMiss (
header,
source,
test )
- StartMiss (
header,
source,
test )
- WedgeMiss (
header,
source,
test )
- BarrelMiss (
header,
source,
test )
- DiskMiss (
header,
source,
test )
- SubDiskMiss (
header,
source,
test )
- SiliconMiss (
header,
source,
test )
- LayerStart (
header,
source,
test )
- LayerLadderPtr (
header)
- LayerLadder (
header,
source,
test )
- IntLayerLadderPtr (
header)
- InteractingLayerLadder (
header,
source,
test )
- SurfThreePolygons (
header,
source,
test )
- LayerWedgePtr (
header)
- LayerWedge (
header,
source,
test )
- LayerWedgePtr (
header)
- InteractingLayerWedge (
header,
source,
test )
- LayerSubDiskPtr (
header)
- LayerSubDisk (
header,
source,
test )
- LayerDiskPtr (
header)
- LayerDisk (
header,
source,
test )
- LayerBarrelPtr (
header)
- LayerBarrel (
header,
source,
test )
- LayerXYZ (
header,
source,
test )
- LayerSiliconPtr (
header)
- LayerSilicon (
header,
source,
test )
- CheckMiss (
header,
source,
test )
- CheckMissLhood (
header,
source,
test )
- CheckDiskMiss (
header,
source,
test )
- CheckXY2Z2Hits (
header,
source,
test )
- CheckDirection (
header,
source,
test )
- CheckSameSurf (
header,
source,
test )
- CheckQuality (
header,
source,
test )
- SimpleSMTDetector (
header,
source,
test )
- SimpleSMTDetectorSimulator (
header,
source,
test )
- SMTPathBuilder (
header,
source,
test )
- Main Program ( findsil.cpp )
- Main Program ( findsilcyl.cpp )
Their dependencies are illustrated in the
physical dependency diagram.
[doesn't exists yet]
The class diagrams
shows the classes and their relationships and a little
explanation how these classes work.
This package depends on the following external packages:
- trfcylplane
- TRF++ planar and cylinder related extensions
- trfcyl
- TRF++ cylinder extensions
- trfxyp
- TRF++ planar extensions (for XY surfaces)
- trfzp
- TRF++ planar extensions (for Z surfaces)
- trffind
- TRF++ finding classes
- trffit
- TRF++ fitting classes
- trflayer
- TRF++ base layer classes
- trfbase
- TRF++ base classes
- trfutil
- TRF++ utilities
- spacegeom
- Space point and vector
- ptr
- Pointer classes
The following sections describe the classes defined
in the components. Unless otherwise, noted each class is defined in the
component of the same name.
The descriptions here are brief.
See the header files for details.
The components are only intended for use within this package. Those that
prove to be of more general use will be moved to another package.
SMTTrackNtuple
SMT Track Ntuple.
Method
Class Method is an abstract class used by LayerBarrel for selecting surfaces
appropriate for propagation.
MethodCyl
Class MethodCyl is derivative from class Method. It implements the following
method for choosing appropriate surfaces : it propagates track to a cylinder
ascribing silicon layer and depending on error in phi angle decided could
track cross this surface or not.
MethodLine
Class MethodCyl is derivative from class Method. It implements the following
method for choosing appropriate surfaces : it assumes a zero curvature for
track and then decides could such a track cross each surface. Track is not
propagated to any surface in this method.
PropTotal
Class PropTotal just buildes a three PropDispatch and fill them with
propagators. This is a helper class.
PropCylXY_Nothing
Class PropCylXY_Nothing is used for propagation of tracks woth zero hits
from Cylinder to XYPlane. It doesn't really propagates track it just puts in
the middle of XYPlane.
PropCylZ_Nothing
Class PropCylZ_Nothing is used for propagation of tracks woth zero hits
from Cylinder to ZPlane. It doesn't really propagates track it just puts in
the middle of ZPlane.
SurfThreePolygons
This is a bounded ZPlane surface that consists of three other bounded
ZSurfaces. It checks bounds the following way : track is within the bounds if
it is within two of those surfaces and out of the third. Three surfaces are
passed in constructor and the third ( _out_) surfaces is the third argument.
Layer Ladder
Class LayerLadder describes D0 SMT detector ladder. Currently it totally
resembles class LayerXYPlane but adds clusters deferently. First it checks
that cluster does belong to a Ladder ( it's not out of bounds) and only then
adds it. InteractingLayerLadder inherits from LayerLadder and calls Interactor to simpulate multiple scattering.
Layer Wedge
Class LayerWedge describes D0 SMT detector wedge. Currently it totally
resembles class LayerBZPlane but adds clusters deferently. First it checks
that cluster does belong to a Wedge ( it's not out of bounds) and only then
adds it. InteractingLayerWedge inherits from LayerWedge and calls Interactor to simpulate multiple scattering.
Layer SubDisk
Class LayerSubDisk is a collection of LaeyrWedge's. It describes one side of
SMT forward disks.
Layer Disk
Class LayerDisk is a collection of two LayerSubDisks and describes SMT forward
disk.
Propagator CylXY Start
Class PropCylXY_Start propagates track from cylindrical syrface to SurfXYPlane.
It acts absolutely like a regular propagator, but in case if error in phi of
track is bigger than TWOPI , it first sets phi of track to phi of the plane
and only then does a propagation. This propagator is designed for starting
tracks.
ClusterFindDisk
Class ClusterFindDisk is a usual Cluster Finder used to find hits in disks.
It returns only hits from a given ring and thus used for carrying hits in
inner silicon disks.
AddFitTotal
It's a helper class for SMTPathBuilder.
AddFitterStart
Is a fitter that after using it's default ( Kalman ) fitter checks that
track has a correct chi - square. It has a method to refit track if it has 3
hits.
FilterShares SMT
Class FilterShares_SMT is a modified version of trffind/FilterShares .
It never deletes tracks that have less than 3 hits.
FilterContains SMT
Class FilterContains_SMT is a modified version of trffind/FilterContains .
It never deletes tracks that have less than 3 hits.
BarrelMiss
Class BarrelMiss is a model of future miss class. Right now it has only
radius of a cylinder ascribing silicon layer given to it by LayerBarrel .
DiskMiss
Class DiskMiss is a model of future miss class. Right now it just exists.
SubDiskMiss
Class SubDiskMiss is a model of future miss class. Right now it just exists.
SiliconMiss
Class SiliconMiss is a way to trick path into finding appropriate SiliconLayer
for track finding.
CheckMiss
Checker that requires track to have at least one hit in physical silicon layer.
(Physical means that silicon consists of 4 such layers).
CheckDiskMiss
Checker that requires track to hit all disks once it hitted one of them.
CheckXY2Z2Hits
Checker that checks that two consequetive hits are not on opposite, relative
to detector center, sides.
Layer Barrel
Class LayerBarrel corresponds to SMT Barrel and manages LayerXYPlanes
( Ladders). Each LayerBarrel manages 6 or 12 XYPlanes. It can add, drop and
get clusters from each of them. It has it's own method propagate , which uses
given to it in constructor class Method to choose appropriate surfaces for
propagation and then propagate tracks to them.
Layer XYZ
Class LayerXYZ is just a holder of two pointers to LayerBarrel and LayerDisk.
Usefull for constractiong LayerSilicon.
Layer Silicon
Class LayerSilicon represent real SMT geometry with disks,barrels or only disks
or only barrels.
SMT Simulated Detector
Classes SimpleSMTDetector and SimpleSMTDetectorSimulator manage the layers
describing D0 SMT detector. The layers are created when an object is
constructed. Generators to create simulated hits on each layer are also
created at that time. There are methods to create the hits, to drop the hits,
to return the list of layers (with hits attached) and to register the hit
generators.
SMT Path builder
Class SMTPathBuilder creates and manages the paths used for track finding in
D0 SMT detector. It also creates and manages the propagators, fitters and
path stops associated with the paths. It provides methods to fetch the head
path and to fetch the list of path stops.
Questions or comments to
bkulik@fnal.gov or
skulik@fnal.gov .