"MarlinReco"  1.16.0
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
SiliconTracking Class Reference

=== Silicon Tracking Processor ===
Processor performing stand-alone pattern recognition in the vertex detector (VTX), forward tracking disks and SIT. More...

#include <SiliconTracking.h>

Inheritance diagram for SiliconTracking:

Public Member Functions

virtual Processor * newProcessor ()
 
virtual void init ()
 Initialization.
 
virtual void processRunHeader (LCRunHeader *run)
 Run header processor.
 
virtual void processEvent (LCEvent *evt)
 Event processor.
 
virtual void check (LCEvent *evt)
 
virtual void end ()
 Called after data processing for clean up.
 

Protected Member Functions

int InitialiseVTX (LCEvent *evt)
 
int InitialiseFTD (LCEvent *evt)
 
void ProcessOneSector (int iSectorPhi, int iSectorTheta)
 
void CleanUp ()
 
TrackExtended * TestTriplet (TrackerHitExtended *outerHit, TrackerHitExtended *middleHit, TrackerHitExtended *innerHit, HelixClass &helix)
 
int BuildTrack (TrackerHitExtended *outerHit, TrackerHitExtended *middleHit, TrackerHitExtended *innerHit, HelixClass &helix, int innerlayer, int iPhiLow, int iPhiUp, int iTheta, int iThetaUp, TrackExtended *trackAR)
 
void Sorting (TrackExtendedVec &trackVec)
 
void CreateTrack (TrackExtended *trackAR)
 
void AttachRemainingVTXHitsSlow ()
 
void AttachRemainingFTDHitsSlow ()
 
void AttachRemainingVTXHitsFast ()
 
void AttachRemainingFTDHitsFast ()
 
void TrackingInFTD ()
 
int BuildTrackFTD (TrackExtended *trackAR, int *nLR, int iS)
 
int AttachHitToTrack (TrackExtended *trackAR, TrackerHitExtended *hit)
 
void FinalRefit ()
 

Protected Attributes

int _nRun
 
int _nEvt
 
int _nDivisionsInPhi
 
int _nDivisionsInTheta
 
int _nLayers
 
int _nLayersFTD
 
int _nLayersVTX
 
int _nLayersSIT
 
int _nPhiFTD
 
std::string _VTXHitCollection
 
std::string _FTDHitCollection
 
std::string _SITHitCollection
 
std::string _siTrkCollection
 
std::string _siTrkMCPCollection
 
std::vector
< TrackerHitExtendedVec > 
_sectors
 
std::vector
< TrackerHitExtendedVec > 
_sectorsFTD
 
TrackExtendedVec _tracks5Hits
 
TrackExtendedVec _tracks4Hits
 
TrackExtendedVec _tracks3Hits
 
float _bField
 
float _chi2WRPhiTriplet
 
float _chi2WRPhiQuartet
 
float _chi2WRPhiSeptet
 
float _chi2WZTriplet
 
float _chi2WZQuartet
 
float _chi2WZSeptet
 
float _minDistCutAttach
 
int _minimalLayerToAttach
 
double PI
 
double TWOPI
 
double PIOVER2
 
double _dPhi
 
double _dTheta
 
double _dPhiFTD
 
int _debug
 
std::vector< float > _zLayerFTD
 
std::vector< int > _Combinations
 
std::vector< int > _CombinationsFTD
 
float _resolutionRPhiVTX
 
float _resolutionZVTX
 
float _resolutionRPhiFTD
 
float _resolutionZFTD
 
float _resolutionRPhiSIT
 
float _resolutionZSIT
 
float _phiCutForMerging
 
float _tanlambdaCutForMerging
 
float _angleCutForMerging
 
int _print
 
int _checkForDelta
 
float _minDistToDelta
 
float _distRPhi
 
float _distZ
 
float _chi2FitCut
 
float _chi2PrefitCut
 
TrackExtendedVec _trackImplVec
 
float _cutOnD0
 
float _cutOnZ0
 
float _cutOnOmega
 
float _cutOnPt
 
int _minimalHits
 
int _attachFast
 
int _nTotalVTXHits
 
int _nTotalFTDHits
 
int _nTotalSITHits
 
int _optFit
 
int _simpleHelixFit
 
int _useSIT
 
int _finalRefit
 
int _createMap
 
int _useExtraPoint
 
MarlinTrackFit _trackFit
 

Detailed Description

=== Silicon Tracking Processor ===
Processor performing stand-alone pattern recognition in the vertex detector (VTX), forward tracking disks and SIT.


The procedure consists of three steps :
1) Tracking in VTX and SIT ;
2) Tracking in FTD ;
3) Merging compatible track segments reconstructed in VTX and FTD
STEP 1 : TRACKING IN VTX and SIT
Algorithm starts with finding of hit triplets satisfying helix hypothesis
in three different layers. Two layers of SIT are effectively considered as outermost
layers of the vertex detector. To accelerate procedure, the 4-pi solid angle is divided in NDivisionsInTheta and NDivisionsInPhi sectors in cosQ and Phi, respectively. Triplets are looked for in 2x2 window of adjacent sectors. Once triplet is found, attempt is made to associate additional hits to track. Combinatin of hits is accepted for further analysis if the Chi2 of the fit is less than certain predefined threshold. All accepted combinations are sorted in ascending order of their Chi2. First track candidate in the sorted array is automatically accepted. The hits belonging to this track are marked as used, and track candidates sharing these hits are discarded. The procedure proceeds with increasing index of track candidate in the sorted array until all track candidate have been output or discarded.
STEP 2 : TRACKING IN FTD
In the next step tracking in FTD is performed. The strategy of tracking in the FTD is the same as used for tracking in the VTX+SIT.
STEP 3 : MERGING TRACK SEGMENTS FOUND IN FTD AND VTX+SIT
In the last step, track segments reconstructed in the FTD and VTX+SIT, belonging to the same track are identified and merged into one track. All possible pairings are tested for their compatibility. The number of pairings considered is Ntrk_VTX_SIT*Ntrk_FTD, where Ntrk_VTX_SIT is the number of track segments reconstructed in the first step in VTX+SIT (segments containing solely VTX and SIT hits) and Ntrk_FTD is the number of track segments reconstructed in the second step (segments containing solely FTD hits). Pair of segments is accepted for further examination if the angle between track segments and than certain specified threshold. Pairing satisfying this condition is subjected for addtitional test. The fit is performed on unified array of hits belonging to both segments. If the chi2 of the fit does not exceed predefined cut value two segments are unified into one track.

Input collections and prerequisites

Processor requires collection of digitized vertex, sit and ftd tracker hits.
If such a collections with the user specified names do not exist processor takes no action.

Output

Processor produces an LCIO collection of the Tracks. Each track is characterised by five parameters : Omega (signed curvuture), Tan(lambda) where lambda is the dip angle, Phi (azimuthal angle @ point of closest approach), D0 (signed impact parameter), Z0 (displacement along z axis at the point of closest approach to IP). Covariance matrix for these parameters is also provided. Only lower left corner of the covariance matrix is stored. The sequence of the covariance matrix elements assigned to track is the following:
(Omega,Omega)
(Omega,TanLambda), (TanLambda,TanLambda)
(Omega,Phi), (TanLamda,Phi), (Phi,Phi)
(Omega,D0), (TanLambda,D0), (Phi,D0), (D0,D0)
(Omega,Z0), (TanLambda,Z0), (Phi,Z0), (D0,Z0), (Z0,Z0)
The number of hits in the different subdetectors associated with each track can be accessed via method Track::getSubdetectorHitNumbers(). This method returns vector of integers :
number of VTX hits in track is the first element in this vector (Track::getSubdetectorHitNumbers()[0])
number of FTD hits in track is the second element in this vector (Track::getSubdetectorHitNumbers()[1])
number of SIT hits in track is the third element in this vector (Track::getSubdetectorHitNumbers()[2])
Output track collection has a name "SiTracks".
In addition collection of relations of the tracks to MCParticles is stored if flag CreateMap is set to 1.
Collection of relations has a name "SiTracksMCP"

Parameters
VTXHitCollectionNamename of input VTX TrackerHit collection
(default parameter value : "VTXTrackerHits")
FTDHitCollectionNamename of input FTD TrackerHit collection
(default parameter value : "FTDTrackerHits")
SITHitCollectionNamename of input SIT TrackerHit collection
(default parameter value : "SITTrackerHits")
SiTrackCollectionNamename of the output Silicon track collection
(default parameter value : "SiTracks")
SiTrackMCPRelCollectioncollection name for the silicon track - MC particle relations
(default parameter value : "SiTracksMCP")
LayerCombinationscombinations of layers used to search for hit triplets in VTX+SIT
(default parameters : 6 4 3 6 4 2 6 3 2 5 4 3 5 4 2 5 3 2 4 3 2 4 3 1 4 2 1 3 2 1)
Note that in the VTX+SIT system the first and the second layers of SIT have indicies nLayerVTX and nLayerVTX+1. Combination given above means that triplets are looked first in layers 6 4 3, and then in 6 4 2; 5 4 3; 6 3 2 etc. NOTE THAT LAYER INDEXING STARTS FROM 0. LAYER 0 is the innermost layer
LayerCombinationsFTDcombinations of layers used to search for hit triplets in FTD
(default parameters 6 5 4 5 4 3 5 4 2 5 4 1 5 3 2 5 3 1 5 2 1 4 3 2 4 3 1 4 3 0 4 2 1 4 2 0 4 1 0 3 2 1 3 2 0 3 1 0 2 1 0). NOTE THAT TRACKS IN FTD ARE SEARCHED ONLY IN ONE HEMISPHERE. TRACK IS NOT ALLOWED TO HAVE HITS BOTH IN BACKWARD AND FORWARD PARTS OF FTD SIMULTANEOUSLY.
NDivisionsInPhiNumber of divisions in Phi for tracking in VTX+SIT
(default value is 40)
NDivisionsInThetaNumber of divisions in cosQ for tracking in VTX+SIT
(default value is 40)
NDivisionsInPhiFTDNumber of divisions in Phi for tracking in FTD
(default value is 3)
Chi2WRphiTripletweight on chi2 in R-Phi plane for track with 3 hits
(default value is 1)
Chi2WZTripletweight on chi2 in S-Z plane for track with 3 hits
(default value is 0.5)
Chi2WRphiQuartetweight on chi2 in R-Phi plane to accept track with 4 hits
(default value is 1)
Chi2WZQuartetweight on chi2 in S-Z plane for track with 4 hits
(default value is 0.5)
Chi2WRphiSeptetweight on chi2 in R-Phi plane for track with 5 and more hits
(default value is 1)
Chi2WZSeptetCut on chi2 in S-Z plane for track with 5 and more hits
(default value is 0.5)
Chi2FitCutCut on chi2/ndf to accept track candidate
(default value is 100.)
Chi2PrefitCutChi2 Cut used in the track prefit with the simple helix hypothesis
(default value is 1e+10)
AngleCutForMergingcut on the angle between two track segments. If the angle is greater than this cut, segments are not allowed to be merged.
(default value is 0.1)
MinDistCutAttachcut on the distance (in mm) from hit to the helix. This parameter is used to decide whether hit can be attached to the track. If the distance is less than cut value. The track is refitted with a given hit being added to the list of hits already assigned for the track. Additional hit is assigned if chi2 of the new fit has good chi2.
(default value is 2 )
MinLayerToAttachthe minimal layer index to attach VTX hits to the found hit triplets
(default value is -1)
CutOnZ0cut on Z0 parameter of track (in mm). If abs(Z0) is greater than the cut value, track is discarded (used to suppress fake track rate in the presence of beam induced background hits)
(default value is 100)
CutOnD0cut on D0 parameter of track (in mm). If abs(D0) is greater than the cut value, track is discarded (used to suppress fake track rate in the presence of beam induced background hits)
(default value is 100)
CutOnPtcut on Pt (GeV/c). If Pt is less than this cut, track is discarded (used to suppress fake track rate in the presence of beam induced background hits)
(default value is 0.1)
MinimalHitsminimal number of hits in track required
(default value is 3)
FastAttachmentif this flag is set to 1, less accurate but fast procedure to merge additional hits to tracks is used
if set to 0, a more accurate, but slower procedure is invoked
(default value is 0)
OptPrefitOption for prefit of the track with simple helix model. If set to 0, helix fit based on FORTRAN code tfithl is used, when set to 1 ClusterShapes class is used to fit track with the simple helix model
(default value is 0)
SimpleHelixFitFlag to enable fast procedure of track fitting based on simple helix fit. This procedure is used when performing pattern recognition.
(default value is 1)
UseSITWhen this flag is set to 1, SIT is included in pattern recognition. When this flag is set to 0, SIT is excluded from the procedure of pattern recognition
(default value is 1)
FinalRefitIf set to 1, final track candidates are refitted using DELPHI fitting code, which accounts for effects of multiple scattering and energy loss
(default value is 1)
CreateMapWhen this flag is set to 1 collection of relations between tracks and MCParticles is created
(default value is 1)
UseExtraPointThis flag is used to steer DELPHI fitting code. If set to 0, an additional artificial mesurement point at PCA is introduced with relatively large errors. This helps to improve resolution on D0 and Z0 for fitted track.
(default value 0)
Debugflag to activate debug printout
(default value 1)
Author
A. Raspereza (MPI Munich)

The documentation for this class was generated from the following file: