12#ifndef ALICEO2_GLOBTRACKING_MATCHHMP_
13#define ALICEO2_GLOBTRACKING_MATCHHMP_
20#include <TStopwatch.h>
55namespace globaltracking
62template <
typename TruthElement>
66namespace globaltracking
78 using matchTrack = std::pair<o2::track::TrackParCov, timeEst>;
115 void setTS(
unsigned long creationTime)
117 mTimestamp = creationTime;
119 unsigned long getTS()
const {
return mTimestamp; }
123 int prepareInteractionTimes();
124 bool prepareTracks();
125 bool prepareHMPClusters();
126 void doFastMatching();
129 static int intTrkCha(
o2::track::TrackParCov* pTrk,
double& xPc,
double& yPc,
double& xRa,
double& yRa,
double& theta,
double& phi,
double bz);
130 static int intTrkCha(
int ch,
o2::dataformats::TrackHMP* pHmpTrk,
double& xPc,
double& yPc,
double& xRa,
double& yRa,
double& theta,
double& phi,
double bz);
132 bool intersect(Double_t pnt[3], Double_t norm[3])
const;
146 int mCurrTracksTreeEntry = 0;
148 bool mMCTruthON =
false;
152 float mMaxInvPt = 999.;
155 float mTPCTBinMUS = 0.;
156 float mTPCTBinMUSInv = 0.;
157 float mTPCBin2Z = 0.;
159 float mExtraTimeToleranceTRD = 0.;
160 float mExtraTimeToleranceTOF = 0.;
161 float mSigmaTimeCut = 3.;
164 static constexpr Double_t BC_TIME_INV = 1. / BC_TIME;
165 static constexpr Double_t BC_TIME_INPS = BC_TIME * 1000;
166 static constexpr Double_t BC_TIME_INPS_INV = 1. / BC_TIME_INPS;
169 bool mIsTPCused =
false;
170 bool mIsITSTPCused =
false;
171 bool mIsTPCTOFused =
false;
172 bool mIsTPCTRDused =
false;
173 bool mIsITSTPCTOFused =
false;
174 bool mIsTPCTRDTOFused =
false;
175 bool mIsITSTPCTRDused =
false;
176 bool mIsITSTPCTRDTOFused =
false;
177 bool mSetHighPurity =
false;
179 float mTPCVDrift = -1.;
181 unsigned long mTimestamp = 0;
185 gsl::span<const Cluster> mHMPClustersArray;
186 gsl::span<const Trigger> mHMPTriggersArray;
192 std::vector<Trigger> mHMPTriggersWork;
196 std::vector<int> mHMPTriggersIndexCache;
208 static constexpr float MAXSNP = 0.85;
210 TStopwatch mTimerTot;
211 TStopwatch mTimerMatchITSTPC;
212 TStopwatch mTimerMatchTPC;
213 TStopwatch mTimerDBG;
215 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 ...