31#ifndef ALICEO2_TRACKCUTS_H
32#define ALICEO2_TRACKCUTS_H
63 mRequiredITSHits.push_back(std::make_pair(minNRequiredHits, requiredLayers));
64 LOG(info) <<
"Track selection, set require hits in ITS layers: " <<
static_cast<int>(minNRequiredHits);
85 auto contributorsGID =
data.getSingleDetectorRefs(trackIndex);
86 auto src = trackIndex.getSource();
89 const auto& itsTrk =
data.getITSTrack(contributorsGID[
GID::ITS]);
90 int ITSnClusters = itsTrk.getNClusters();
91 float ITSchi2 = itsTrk.getChi2();
92 float itsChi2NCl = ITSnClusters != 0 ? ITSchi2 / (float)ITSnClusters : 0;
93 uint8_t itsClusterMap = itsTrk.getPattern();
94 if (itsTrk.getPt() <= mPtITSCut ||
95 std::abs(itsTrk.getEta()) > mEtaITSCut ||
96 ITSnClusters <= mMinNClustersITS ||
97 itsChi2NCl >= mMaxChi2PerClusterITS ||
104 const auto& tpcTrk =
data.getTPCTrack(contributorsGID[
GID::TPC]);
106 std::array<float, 2> dca;
107 if (tpcTrk.getPt() < mPtTPCCut || std::abs(tpcTrk.getEta()) > mEtaTPCCut || tpcTrk.getNClusters() < mNTPCClustersCut) {
111 if (!trTmp.propagateParamToDCA(
v, mBz, &dca, mDCATPCCut) || std::abs(dca[0]) > mDCATPCCutY || std::hypot(dca[0], dca[1]) > mDCATPCCut) {
121 trk =
data.getTrackParam(trackIndex);
122 float trkEta = trk.getEta();
123 if (trk.getPt() < mMinPt || trk.getPt() > mMaxPt || trkEta < mMinEta || trkEta > mMaxEta) {
133 float mPtITSCut = 0.f;
134 float mEtaITSCut = 1e10f;
135 int mMinNClustersITS{0};
136 float mMaxChi2PerClusterITS{1e10f};
137 std::vector<std::pair<int8_t, std::set<uint8_t>>> mRequiredITSHits{};
139 float mPtTPCCut = 0.1f;
140 float mEtaTPCCut = 1.4f;
141 int32_t mNTPCClustersCut = 60;
142 float mDCATPCCut = 100.f;
143 float mDCATPCCutY = 10.f;
145 float mMinPt{0.f}, mMaxPt{1e10f};
146 float mMinEta{-1e10f}, mMaxEta{1e10f};
150 ClassDefNV(TrackCuts, 2);
Class to store the output of the matching to TOF.
Extention of GlobalTrackID by flags relevant for verter-track association.
void setMinPtCut(float value)
ITS+TPC kinematics.
void setMinNClustersITS(int32_t value)
void setMinNTPCClustersCut(int32_t value)
bool isSelected(GID trackIndex, o2::globaltracking::RecoContainer &data)
void setMaxPtCut(float value)
void setEtaITSCut(float value)
void setMaxChi2PerClusterITS(float value)
void setEtaTPCCut(float value)
void setMaxDCATPCCut(float value)
void setMinPtITSCut(float value)
void setMinPtTPCCut(float value)
TPC.
void setEtaCut(float valueMin, float valueMax)
void setMaxDCATPCCutY(float value)
void setRequireHitsInITSLayers(int8_t minNRequiredHits, std::set< uint8_t > requiredLayers)
static bool FulfillsITSHitRequirements(uint8_t itsClusterMap, std::vector< std::pair< int8_t, std::set< uint8_t > > > mRequiredITSHits)
GPUd() value_type estimateLTFast(o2 static GPUd() float estimateLTIncrement(const o2 PropagatorImpl * Instance(bool uninitialized=false)
GLsizei const GLfloat * value
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...
LOG(info)<< "Compressed in "<< sw.CpuTime()<< " s"