MarlinTrkProcessors
2.4.1
|
=== 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>
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 |
=== 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.
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.
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".
VTXHitCollection | name of input VTX TrackerHit collection (default parameter value : "VTXTrackerHits") |
FTDPixelHitCollectionName | name of input FTD Pixel TrackerHit collection (default parameter value : "FTDPixelTrackerHits") |
FTDSpacePointCollectionName | name of input FTD Space Point TrackerHit collection (default parameter value : "FTDSpacePoints") |
SITHitCollection | name of input SIT TrackerHit collection (default parameter value : "SITTrackerHits") |
TPCHitCollection | name of input TPC TrackerHit collection (default parameter value : "TPCTrackerHits") |
SETHitCollection | name of input SET TrackerHit collection (default parameter value : "SETTrackerHits") |
ETDHitCollection | name of input ETD TrackerHit collection (default parameter value : "ETDTrackerHits") |
TPCTracks | collection name of TPC tracks (default parameter value : "TPCTracks") |
TPCTracksMCPRelColl | Name of input TPC track to MC particle relation collection (default parameter value : "TPCTracksMCP") |
SiTracks | collection name of Si tracks (default parameter value : "SiTracks") |
SiTracksMCPRelColl | Name of input Si track to MC particle relation collection (default parameter value : "SiTracksMCP") |
LDCTrackCollection | name of the output LDC track collection (default parameter value : "LDCTracks") |
Chi2FitCut | cut on the Chi2/Ndf of the track fit (default parameter value : 100.0) |
Chi2PrefitCut | cut on the prefit Chi2 of the track candidate, prefit is done with the simple helix hypothesis (default parameter value : 1e+5) |
AngleCutForMerging | cut 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) |
OmegaCutForMerging | cut 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) |
D0CutForMerging | Upper cutoff on the difference in D0 [mm] to allow for merging of the Si and TPC segments (default parameter value : 500) |
Z0CutForMerging | Upper cutoff on the difference in Z0 [mm] to allow for merging of the Si and TPC segments (default parameter value : 1000) |
Debug | flag to allow for printout of debug information, if set to 1 debugging printout is activated (default parameter value : 1) |
ForceSiTPCMerging | This 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) |
AngleCutForForcedMerging | cut 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) |
OmegaCutForForcedMerging | cut 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) |
D0CutForForcedMerging | Upper cutoff on the difference in D0 to allow for forced merging of the Si and TPC segments (default parameter value : 50) |
Z0CutForForcedMerging | Upper cutoff on the difference in Z0 to allow for forced merging of the Si and TPC segments (default parameter value : 200) |
ForceTPCSegmentsMerging | If this flag is set to 1, the code attempts to merge TPC segments from the low pt splitted loopers (default parameter value : 1) |
D0CutToMergeTPCSegments | cut on the difference in the track parameter d0 [mm] to allow for merging TPC segments (default parameter value : 100) |
Z0CutToMergeTPCSegments | cut on the difference in the track parameter z0 [mm] to allow for merging TPC segments (default parameter value : 5000) |
DeltaPCutToMergeTPCSegments | cut 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) |
PtCutToMergeTPCSegments | lower 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) |
AssignTPCHits | If 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) |
AssignETDHits | If 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) |
AssignVTXHits | If 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) |
AssignFTDHits | If 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) |
AssignSITHits | If 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) |
AssignSETHits | If 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) |
TPCHitToTrackDistance | Cut 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) |
VTXHitToTrackDistance | Cut 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) |
FTDHitToTrackDistance | Cut 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) |
SITHitToTrackDistance | Cut 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) |
SETHitToTrackDistance | Cut 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) |
ETDHitToTrackDistance | Cut 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) |
NHitsExtrapolation | Number of the last track hits for extrapolating helix to the outer tracking detectors (SET, ETD) (default parameter value : 35) |
CutOnTPCHits | minimal 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) |
CutOnTrackD0 | cut on the d0 parameter of the track. If the d0 parameter is greater that this cut, track is rejected (default parameter value : 500) |
CutOnTrackZ0 | cut on the z0 parameter of the track. If the z0 parameter is greater that this cut, track is rejected (default parameter value : 500) |
ForbidOverlapInZTPC | If this flag is set to 1 then merging of the TPC semiloops is forbiden for segment overlapping in z (default parameter value : 0) |
ForbidOverlapInZComb | If 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) |
cosThetaCutHighPtMerge | cut on cos theta between the two momentum vectors when considering merger of high Pt tracks (default is 0.99) |
cosThetaCutSoftHighPtMerge | cut 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) |
momDiffCutHighPtMerge | cut on dp/p when considering merger of high Pt tracks (default is 0.01 [1/GeV]) |
momDiffCutSoftHighPtMerge | softer cut on dp/p when considering merger of high Pt tracks (default is 0.25 [1/GeV]) |
hitDistanceCutHighPtMerge | cut on 3D distance between hit and helix extrapolation when considering merger of high Pt tracks (default is 25.0 [mm]) |
maxHitDistanceCutHighPtMerge | cut for max 3D distance between any hit and helix extrapolation when considering merger of high Pt tracks (default is 50.0 [mm]) |
maxFractionOfOutliersCutHighPtMerge | cut on maximum fraction of outliers when considering merger of high Pt tracks (default is 0.95 ) |
|
protected |
std::cout << iH << " hit is not assigned : distance to closest track = " << minDist << std::endl; }
|
protected |
Sorting of index vector in ascending (0) /descending (!=0) order of val