"MarlinReco"
1.16.0
|
=== Silicon Tracking Processor ===
Processor performing stand-alone pattern recognition in the vertex detector (VTX), forward tracking disks and SIT.
More...
#include <SiliconTracking.h>
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 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 |
=== 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.
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.
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"
VTXHitCollectionName | name of input VTX TrackerHit collection (default parameter value : "VTXTrackerHits") |
FTDHitCollectionName | name of input FTD TrackerHit collection (default parameter value : "FTDTrackerHits") |
SITHitCollectionName | name of input SIT TrackerHit collection (default parameter value : "SITTrackerHits") |
SiTrackCollectionName | name of the output Silicon track collection (default parameter value : "SiTracks") |
SiTrackMCPRelCollection | collection name for the silicon track - MC particle relations (default parameter value : "SiTracksMCP") |
LayerCombinations | combinations 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 |
LayerCombinationsFTD | combinations 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. |
NDivisionsInPhi | Number of divisions in Phi for tracking in VTX+SIT (default value is 40) |
NDivisionsInTheta | Number of divisions in cosQ for tracking in VTX+SIT (default value is 40) |
NDivisionsInPhiFTD | Number of divisions in Phi for tracking in FTD (default value is 3) |
Chi2WRphiTriplet | weight on chi2 in R-Phi plane for track with 3 hits (default value is 1) |
Chi2WZTriplet | weight on chi2 in S-Z plane for track with 3 hits (default value is 0.5) |
Chi2WRphiQuartet | weight on chi2 in R-Phi plane to accept track with 4 hits (default value is 1) |
Chi2WZQuartet | weight on chi2 in S-Z plane for track with 4 hits (default value is 0.5) |
Chi2WRphiSeptet | weight on chi2 in R-Phi plane for track with 5 and more hits (default value is 1) |
Chi2WZSeptet | Cut on chi2 in S-Z plane for track with 5 and more hits (default value is 0.5) |
Chi2FitCut | Cut on chi2/ndf to accept track candidate (default value is 100.) |
Chi2PrefitCut | Chi2 Cut used in the track prefit with the simple helix hypothesis (default value is 1e+10) |
AngleCutForMerging | cut 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) |
MinDistCutAttach | cut 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 ) |
MinLayerToAttach | the minimal layer index to attach VTX hits to the found hit triplets (default value is -1) |
CutOnZ0 | cut 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) |
CutOnD0 | cut 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) |
CutOnPt | cut 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) |
MinimalHits | minimal number of hits in track required (default value is 3) |
FastAttachment | if 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) |
OptPrefit | Option 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) |
SimpleHelixFit | Flag to enable fast procedure of track fitting based on simple helix fit. This procedure is used when performing pattern recognition. (default value is 1) |
UseSIT | When 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) |
FinalRefit | If 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) |
CreateMap | When this flag is set to 1 collection of relations between tracks and MCParticles is created (default value is 1) |
UseExtraPoint | This 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) |
Debug | flag to activate debug printout (default value 1) |