MarlinTrkProcessors  2.4.1
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
FullLDCTracking_MarlinTrk Class Reference

=== FullLDCTracking_MarlinTrk Processor ===
Processor performing track finding procedure in the entire LDC detector by linking track segments found by the SiliconTracking module in the silicon detectors and by the LEPTracking module in TPC. More...

#include <FullLDCTracking_MarlinTrk.h>

Inheritance diagram for FullLDCTracking_MarlinTrk:

Public Member Functions

virtual Processor * newProcessor ()
 
virtual void init ()
 
virtual void processRunHeader (LCRunHeader *run)
 
virtual void processEvent (LCEvent *evt)
 
virtual void check (LCEvent *evt)
 
virtual void end ()
 

Protected Member Functions

void prepareVectors (LCEvent *evt)
 
void CleanUp ()
 
void MergeTPCandSiTracks ()
 
void MergeTPCandSiTracksII ()
 
TrackExtended * CombineTracks (TrackExtended *tpcTrk, TrackExtended *siTrk, float maxAllowedOutliers, bool testCombinationOnly)
 
void Sorting (TrackExtendedVec &trackVec)
 
void SelectCombinedTracks ()
 
void AddNotCombinedTracks ()
 
void CheckTracks ()
 
void AddNotAssignedHits ()
 
void RemoveSplitTracks ()
 
void AddTrackColToEvt (LCEvent *evt, TrackExtendedVec &trkVec, std::string TrkColName)
 
float CompareTrk (TrackExtended *first, TrackExtended *second, float d0Cut, float z0Cut, int iopt)
 
float CompareTrkII (TrackExtended *first, TrackExtended *second, float d0Cut, float z0Cut, int iopt, float &Angle)
 
float CompareTrkIII (TrackExtended *first, TrackExtended *second, float d0Cut, float z0Cut, int iopt, float &Angle)
 
void SortingTrackHitPairs (TrackHitPairVec &trackHitPairVec)
 
void AssignSiHitsToTracks (TrackerHitExtendedVec hitVec, float dcut)
 
void AssignTPCHitsToTracks (TrackerHitExtendedVec hitVec, float dcut)
 
void AssignOuterHitsToTracks (TrackerHitExtendedVec hitVec, float dcut, int refit)
 
void CreateExtrapolations ()
 
void CleanUpExtrapolations ()
 
HelixClass * GetExtrapolationHelix (TrackExtended *track)
 
void PrintOutMerging (TrackExtended *firstTrackExt, TrackExtended *secondTrackExt, int iopt)
 
void GeneralSorting (int *index, float *val, int direct, int nVal)
 
int SegmentRadialOverlap (TrackExtended *pTracki, TrackExtended *pTrackj)
 
bool VetoMerge (TrackExtended *firstTrackExt, TrackExtended *secondTrackExt)
 
int getDetectorID (TrackerHit *hit)
 
int getSideID (TrackerHit *hit)
 
int getLayerID (TrackerHit *hit)
 
int getModuleID (TrackerHit *hit)
 
int getSensorID (TrackerHit *hit)
 
void setupGearGeom (const gear::GearMgr *gearMgr)
 

Protected Attributes

int _nRun
 
int _nEvt
 
MarlinTrk::HelixFit * _fastfitter
 
MarlinTrk::IMarlinTrkSystem * _trksystem
 pointer to the IMarlinTrkSystem instance
 
std::string _trkSystemName
 
bool _MSOn
 
bool _ElossOn
 
bool _SmoothOn
 
std::string _TPCTrackCollection
 
std::string _SiTrackCollection
 
std::string _TPCTrackMCPCollName
 
std::string _SiTrackMCPCollName
 
std::string _VTXTrackerHitCollection
 
std::string _SITTrackerHitCollection
 
std::string _SETTrackerHitCollection
 
std::string _FTDPixelHitCollection
 
std::string _FTDSpacePointCollection
 
std::string _TPCTrackerHitCollection
 
std::string _ETDTrackerHitCollection
 
std::string _LDCTrackCollection
 
TrackExtendedVec _allSiTracks
 
TrackExtendedVec _allTPCTracks
 
TrackExtendedVec _allCombinedTracks
 
TrackExtendedVec _allNonCombinedTPCTracks
 
TrackExtendedVec _allNonCombinedSiTracks
 
TrackExtendedVec _trkImplVec
 
TrackerHitExtendedVec _allTPCHits
 
TrackerHitExtendedVec _allVTXHits
 
TrackerHitExtendedVec _allFTDHits
 
TrackerHitExtendedVec _allSITHits
 
TrackerHitExtendedVec _allSETHits
 
TrackerHitExtendedVec _allETDHits
 
float PI
 
float PIOVER2
 
float TWOPI
 
float _bField
 
float _chi2PrefitCut
 
float _chi2FitCut
 
int _debug
 
float _dPCutForMerging
 
float _d0CutForMerging
 
float _z0CutForMerging
 
float _dOmegaForMerging
 
float _angleForMerging
 
int _forceMerging
 
float _dPCutForForcedMerging
 
float _d0CutForForcedMerging
 
float _z0CutForForcedMerging
 
float _dOmegaForForcedMerging
 
float _angleForForcedMerging
 
int _mergeTPCSegments
 
float _dPCutToMergeTPC
 
float _PtCutToMergeTPC
 
float _d0CutToMergeTPC
 
float _z0CutToMergeTPC
 
float _cosThetaCutHighPtMerge
 
float _cosThetaCutSoftHighPtMerge
 
float _momDiffCutHighPtMerge
 
float _momDiffCutSoftHighPtMerge
 
float _hitDistanceCutHighPtMerge
 
float _maxHitDistanceCutHighPtMerge
 
float _maxFractionOfOutliersCutHighPtMerge
 
float _vetoMergeMomentumCut
 
float _initialTrackError_d0
 
float _initialTrackError_phi0
 
float _initialTrackError_omega
 
float _initialTrackError_z0
 
float _initialTrackError_tanL
 
double _maxChi2PerHit
 
double _minChi2ProbForSiliconTracks
 
float _maxAllowedPercentageOfOutliersForTrackCombination
 
int _maxAllowedSiHitRejectionsForTrackCombination
 
bool _runMarlinTrkDiagnostics
 
std::string _MarlinTrkDiagnosticsName
 
int _nHitsExtrapolation
 
int _cutOnTPCHits
 
int _cutOnSiHits
 
int _assignVTXHits
 
int _assignFTDHits
 
int _assignSITHits
 
int _assignTPCHits
 
int _assignSETHits
 
int _assignETDHits
 
float _distCutForVTXHits
 
float _distCutForFTDHits
 
float _distCutForSITHits
 
float _distCutForTPCHits
 
float _distCutForSETHits
 
float _distCutForETDHits
 
float _d0TrkCut
 
float _z0TrkCut
 
int _forbidOverlapInZTPC
 
int _forbidOverlapInZComb
 
float _energyLossErrorTPC
 
LCEvent * _evt
 
std::map< TrackExtended
*, HelixClass * > 
_trackExtrapolatedHelix
 
std::set< TrackExtended * > _candidateCombinedTracks
 
UTIL::BitField64 * _encoder
 
double _tpc_inner_r
 
double _tpc_outer_r
 
double _tpc_pad_height
 
int _tpc_nrows
 
unsigned int _nLayersVTX
 
unsigned int _nLayersSIT
 
unsigned int _nLayersSET
 
std::vector< float > _zLayerFTD
 
unsigned int _nLayersFTD
 
int _nPhiFTD
 
bool _petalBasedFTDWithOverlaps
 

Detailed Description

=== FullLDCTracking_MarlinTrk Processor ===
Processor performing track finding procedure in the entire LDC detector by linking track segments found by the SiliconTracking module in the silicon detectors and by the LEPTracking module in TPC.

Input collections and prerequisites

Processor requires collection of digitized vertex, sit, ftd, set, etd & tpc tracker hits and also the collections of tracks found in the silicon detectors and in TPC.

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:
(D0,D0)
(Phi,D0), (Phi,Phi)
(Omega,D0), (Omega,Phi), (Omega,Omega)
(Z0,D0), (Z0,Phi), (Z0,Omega), (Z0,Z0)
(TanL,D0), (TanL,Phi), (TanL,Omega), (TanL,Z0), (TanL,TanL)
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 used in the track fit is the 1st element in this vector (Track::getSubdetectorHitNumbers()[0])
number of FTD hits used in the track fit is the 2nd element in this vector (Track::getSubdetectorHitNumbers()[1])
number of SIT hits used in the track fit is the 3d element in this vector (Track::getSubdetectorHitNumbers()[2])
number of TPC hits used in the track fit is the 4th element in this vector (Track::getSubdetectorHitNumbers()[3])
number of SET hits used in the track fit is the 5th element in this vector (Track::getSubdetectorHitNumbers()[4])
number of ETD hits used in the track fit is the 6th element in this vector (Track::getSubdetectorHitNumbers()[5])
total number of VTX hits in track is the 7th element in this vector (Track::getSubdetectorHitNumbers()[6])
total number of FTD hits in track is the 8th element in this vector (Track::getSubdetectorHitNumbers()[7])
total number of SIT hits in track is the 9th element in this vector (Track::getSubdetectorHitNumbers()[8])
total number of TPC hits in track is the 10th element in this vector (Track::getSubdetectorHitNumbers()[9])
total number of SET hits in track is the 11th element in this vector (Track::getSubdetectorHitNumbers()[10])
total number of ETD hits in track is the 12th element in this vector (Track::getSubdetectorHitNumbers()[11])
Output track collection has by default a name "LDCTracks".

Parameters
VTXHitCollectionname of input VTX TrackerHit collection
(default parameter value : "VTXTrackerHits")
FTDPixelHitCollectionNamename of input FTD Pixel TrackerHit collection
(default parameter value : "FTDPixelTrackerHits")
FTDSpacePointCollectionNamename of input FTD Space Point TrackerHit collection
(default parameter value : "FTDSpacePoints")
SITHitCollectionname of input SIT TrackerHit collection
(default parameter value : "SITTrackerHits")
TPCHitCollectionname of input TPC TrackerHit collection
(default parameter value : "TPCTrackerHits")
SETHitCollectionname of input SET TrackerHit collection
(default parameter value : "SETTrackerHits")
ETDHitCollectionname of input ETD TrackerHit collection
(default parameter value : "ETDTrackerHits")
TPCTrackscollection name of TPC tracks
(default parameter value : "TPCTracks")
TPCTracksMCPRelCollName of input TPC track to MC particle relation collection
(default parameter value : "TPCTracksMCP")
SiTrackscollection name of Si tracks
(default parameter value : "SiTracks")
SiTracksMCPRelCollName of input Si track to MC particle relation collection
(default parameter value : "SiTracksMCP")
LDCTrackCollectionname of the output LDC track collection
(default parameter value : "LDCTracks")
Chi2FitCutcut on the Chi2/Ndf of the track fit
(default parameter value : 100.0)
Chi2PrefitCutcut on the prefit Chi2 of the track candidate, prefit is done with the simple helix hypothesis
(default parameter value : 1e+5)
AngleCutForMergingcut on opening angle between particle momentum reconstructed with TPC and momentum reconstructed with the Silicon detectors. If the opening angle is smaller that this cut the track segment in Silicon trackers and in TPC are tested for their compatibility
(default parameter value : 0.10)
OmegaCutForMergingcut on the relative difference in the track Omega parameter reconstructed with TPC and with Si detectors. If the relative difference is smaller than this cut, the track segments in TPC and Si are tested for their compatibility
(default parameter value : 0.25)
D0CutForMergingUpper cutoff on the difference in D0 [mm] to allow for merging of the Si and TPC segments
(default parameter value : 500)
Z0CutForMergingUpper cutoff on the difference in Z0 [mm] to allow for merging of the Si and TPC segments
(default parameter value : 1000)
Debugflag to allow for printout of debug information, if set to 1 debugging printout is activated (default parameter value : 1)
ForceSiTPCMergingThis flag steers merging of Si and TPC track segments. If ForceMerging=1 Si and TPC track segments are forced to be merged if the opening angle between Si track momentum and TPC track momentum is less than AngleCutForForcedMerging (see below) and difference in tracks parameters Omega is less than OmegaCutForForcedMerging (see below)
(default parameter value : 0)
AngleCutForForcedMergingcut on opening angle between Si track momentum and TPC track momentum. Used to steer forced merging of Si and TPC track segments.
(default parameter value : 0.05)
OmegaCutForForcedMergingcut on the difference between Si and TPC tracks parameter Omega. Used to steer forced merging of Si and TPC track segments. Relative errors are compared.
(default parameter value : 0.15)
D0CutForForcedMergingUpper cutoff on the difference in D0 to allow for forced merging of the Si and TPC segments
(default parameter value : 50)
Z0CutForForcedMergingUpper cutoff on the difference in Z0 to allow for forced merging of the Si and TPC segments
(default parameter value : 200)
ForceTPCSegmentsMergingIf this flag is set to 1, the code attempts to merge TPC segments from the low pt splitted loopers
(default parameter value : 1)
D0CutToMergeTPCSegmentscut on the difference in the track parameter d0 [mm] to allow for merging TPC segments
(default parameter value : 100)
Z0CutToMergeTPCSegmentscut on the difference in the track parameter z0 [mm] to allow for merging TPC segments
(default parameter value : 5000)
DeltaPCutToMergeTPCSegmentscut on the magnitude [GeV/c] of the vectorial difference of the momentum vectors, associated with TPC segments, for the TPC segment's merging procedure
(default parameter value : 0.1)
PtCutToMergeTPCSegmentslower cutoff on Pt of the TPC segments of the looping track for the merging procedure. If transverse momentum of the segments is less than cutoff the segments are allowed to be merged.
(default parameter value : 1.2)
AssignTPCHitsIf this flag is set to 1, the code attempts to assign left-over TPC hits to the accepted track candidates. No track refit is done in case when hit is assigned to the existing track
(default parameter value : 1)
AssignETDHitsIf this flag is set to 1, the code attempts to assign ETD hits to the accepted track candidates. No track refit is done in case when hit is assigned to the existing track
(default parameter value : 1)
AssignVTXHitsIf this flag is set to 1, the code attempts to assign left-over VTX hits to the accepted track candidates. Track refit is done in case when hit is assigned to the existing track
(default parameter value : 1)
AssignFTDHitsIf this flag is set to 1, the code attempts to assign left-over FTD hits to the accepted track candidates. Track refit is done in case when hit is assigned to the existing track
(default parameter value : 1)
AssignSITHitsIf this flag is set to 1, the code attempts to assign left-over SIT hits to the accepted track candidates. Track refit is done in case when hit is assigned to the existing track
(default parameter value : 1)
AssignSETHitsIf this flag is set to 1, the code attempts to assign SET hits to the accepted track candidates. Track refit is done in case when hit is assigned to the existing track
(default parameter value : 1)
TPCHitToTrackDistanceCut on the distance between left-over TPC hit and the track helix to allow for assignment of the hit with a given track
(default parameter value : 15.0)
VTXHitToTrackDistanceCut on the distance between left-over VTX hit and the track helix to allow for assignment of the hit with a given track
(default parameter value : 1.5)
FTDHitToTrackDistanceCut on the distance between left-over FTD hit and the track helix to allow for assignment of the hit with a given track
(default parameter value : 2.0)
SITHitToTrackDistanceCut on the distance between left-over SIT hit and the track helix to allow for assignment of the hit with a given track
(default parameter value : 2.0)
SETHitToTrackDistanceCut on the distance between SET hit and the track helix to allow for assignment of the hit with a given track
(default parameter value : 2.0)
ETDHitToTrackDistanceCut on the distance between ETD hit and the track helix to allow for assignment of the hit with a given track
(default parameter value : 10.0)
NHitsExtrapolationNumber of the last track hits for extrapolating helix to the outer tracking detectors (SET, ETD)
(default parameter value : 35)
CutOnTPCHitsminimal number of TPC hits, used in the track fit, which is required for tracks which have no hits from the Si detectors
(default parameter value : 35)
CutOnTrackD0cut on the d0 parameter of the track. If the d0 parameter is greater that this cut, track is rejected
(default parameter value : 500)
CutOnTrackZ0cut on the z0 parameter of the track. If the z0 parameter is greater that this cut, track is rejected
(default parameter value : 500)
ForbidOverlapInZTPCIf this flag is set to 1 then merging of the TPC semiloops is forbiden for segment overlapping in z
(default parameter value : 0)
ForbidOverlapInZCombIf this flag is set to 1 then merging of left-over TPC semiloop and combined Si-TPC track is their segments overlap in z
(default parameter value : 0)
cosThetaCutHighPtMergecut on cos theta between the two momentum vectors when considering merger of high Pt tracks
(default is 0.99)
cosThetaCutSoftHighPtMergecut on the cos theta between the two momentum vectors when considering merger of high Pt tracks for softer dp/p cut
(default is 0.998)
momDiffCutHighPtMergecut on dp/p when considering merger of high Pt tracks
(default is 0.01 [1/GeV])
momDiffCutSoftHighPtMergesofter cut on dp/p when considering merger of high Pt tracks
(default is 0.25 [1/GeV])
hitDistanceCutHighPtMergecut on 3D distance between hit and helix extrapolation when considering merger of high Pt tracks
(default is 25.0 [mm])
maxHitDistanceCutHighPtMergecut for max 3D distance between any hit and helix extrapolation when considering merger of high Pt tracks
(default is 50.0 [mm])
maxFractionOfOutliersCutHighPtMergecut on maximum fraction of outliers when considering merger of high Pt tracks
(default is 0.95 )
Author
A. Raspereza (MPI Munich)

Member Function Documentation

void FullLDCTracking_MarlinTrk::AssignTPCHitsToTracks ( TrackerHitExtendedVec  hitVec,
float  dcut 
)
protected

std::cout << iH << " hit is not assigned : distance to closest track = " << minDist << std::endl; }

void FullLDCTracking_MarlinTrk::GeneralSorting ( int *  index,
float *  val,
int  direct,
int  nVal 
)
protected

Sorting of index vector in ascending (0) /descending (!=0) order of val


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