12#ifndef ALICEO2_GLOBTRACKING_MATCHHMP_
13#define ALICEO2_GLOBTRACKING_MATCHHMP_
20#include <TStopwatch.h>
56namespace globaltracking
63template <
typename TruthElement>
67namespace globaltracking
79 using matchTrack = std::pair<o2::track::TrackParCov, timeEst>;
116 void setTS(
unsigned long creationTime)
118 mTimestamp = creationTime;
120 unsigned long getTS()
const {
return mTimestamp; }
124 int prepareInteractionTimes();
125 bool prepareTracks();
126 bool prepareHMPClusters();
127 void doFastMatching();
130 static int intTrkCha(
o2::track::TrackParCov* pTrk,
double& xPc,
double& yPc,
double& xRa,
double& yRa,
double& theta,
double& phi,
double bz);
131 static int intTrkCha(
int ch,
o2::dataformats::TrackHMP* pHmpTrk,
double& xPc,
double& yPc,
double& xRa,
double& yRa,
double& theta,
double& phi,
double bz);
133 bool intersect(Double_t pnt[3], Double_t norm[3])
const;
147 int mCurrTracksTreeEntry = 0;
149 bool mMCTruthON =
false;
153 float mMaxInvPt = 999.;
156 float mTPCTBinMUS = 0.;
157 float mTPCTBinMUSInv = 0.;
158 float mTPCBin2Z = 0.;
160 float mExtraTimeToleranceTRD = 0.;
161 float mExtraTimeToleranceTOF = 0.;
162 float mSigmaTimeCut = 3.;
165 static constexpr Double_t BC_TIME_INV = 1. / BC_TIME;
166 static constexpr Double_t BC_TIME_INPS = BC_TIME * 1000;
167 static constexpr Double_t BC_TIME_INPS_INV = 1. / BC_TIME_INPS;
170 bool mIsTPCused =
false;
171 bool mIsITSTPCused =
false;
172 bool mIsTPCTOFused =
false;
173 bool mIsTPCTRDused =
false;
174 bool mIsITSTPCTOFused =
false;
175 bool mIsTPCTRDTOFused =
false;
176 bool mIsITSTPCTRDused =
false;
177 bool mIsITSTPCTRDTOFused =
false;
178 bool mSetHighPurity =
false;
180 float mTPCVDrift = -1.;
182 unsigned long mTimestamp = 0;
186 gsl::span<const Cluster> mHMPClustersArray;
187 gsl::span<const Trigger> mHMPTriggersArray;
193 std::vector<Trigger> mHMPTriggersWork;
197 std::vector<int> mHMPTriggersIndexCache;
209 static constexpr float MAXSNP = 0.85;
211 TStopwatch mTimerTot;
212 TStopwatch mTimerMatchITSTPC;
213 TStopwatch mTimerMatchTPC;
214 TStopwatch mTimerDBG;
216 ClassDef(MatchHMP, 1);
General auxilliary methods.
Definition of the GeometryManager class.
Class to store event ID and index in the event for objects like track, cluster...
Some ALICE geometry constants of common interest.
Global index for barrel track: provides provenance (detectors combination), index in respective array...
Definition of a container to keep Monte Carlo truth external to simulation objects.
Class to store the output of the matching to HMPID.
Class to temporary store the output of the matching to TOF in reconstruction.
Class to perform TPC ITS matching.
Header to collect physics constants.
Result of refitting TPC-ITS matched track.
Result of refitting TPC with TOF match constraint.
void setExtraTimeToleranceTRD(float val)
get extra tolerance
std::vector< o2::dataformats::MatchInfoHMP > & getMatchedTrackVector(o2::globaltracking::MatchHMP::trackType index)
void printCandidatesHMP() const
set extra time tolerance
std::vector< o2::MCCompLabel > & getMatchedHMPLabelsVector(o2::globaltracking::MatchHMP::trackType index)
get vector of HMP label of matched tracks
void run(const o2::globaltracking::RecoContainer &inp)
< perform matching for provided input
unsigned long getTS() const
float getExtraTimeToleranceTOF() const
void setExtraTimeToleranceTOF(float val)
get extra tolerance
void setTS(unsigned long creationTime)
float getExtraTimeToleranceTRD() const
set extra time tolerance
HMPID cluster implementation.
HMPID detector geometry (only statics)
HMPID Trigger declaration.
constexpr double LHCBunchSpacingNS
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...