60 const auto& tpcTracks =
data.getTPCTracks();
61 const auto& tpcClusRefs =
data.getTPCTracksClusterRefs();
62 const auto& tpcClusShMap =
data.clusterShMapTPC;
63 const auto& tpcClusAcc =
data.getTPCClusters();
64 constexpr int maxRows = 152;
65 constexpr int neighbour = 2;
66 int ntr = tpcTracks.size();
68 mTPCCounters.resize(ntr);
69 for (
int itr = 0; itr < ntr; itr++) {
70 std::array<bool, maxRows> clMap{}, shMap{};
71 uint8_t sectorIndex, rowIndex;
72 uint32_t clusterIndex;
74 const auto& track = tpcTracks[itr];
75 for (
int i = 0;
i < track.getNClusterReferences();
i++) {
76 o2::tpc::TrackTPC::getClusterReference(tpcClusRefs,
i, sectorIndex, rowIndex, clusterIndex, track.getClusterRef());
77 unsigned int absoluteIndex = tpcClusAcc.clusterOffset[sectorIndex][rowIndex] + clusterIndex;
78 clMap[rowIndex] =
true;
80 if (!shMap[rowIndex]) {
83 shMap[rowIndex] =
true;
87 for (
int i = 0;
i < maxRows;
i++) {
92 }
else if ((
i - last) <= neighbour) {
95 int lim = std::min(
i + 1 + neighbour, maxRows);
96 for (
int j =
i + 1;
j < lim;
j++) {
110 auto contributorsGID =
data.getSingleDetectorRefs(trackIndex);
111 auto src = trackIndex.getSource();
114 isBarrelTrack =
true;
115 const auto& itsTrk =
data.getITSTrack(contributorsGID[
GID::ITS]);
116 int ITSnClusters = itsTrk.getNClusters();
117 float ITSchi2 = itsTrk.getChi2();
118 float itsChi2NCl = ITSnClusters != 0 ? ITSchi2 / (float)ITSnClusters : 0;
119 uint8_t itsClusterMap = itsTrk.getPattern();
121 if (itsChi2NCl >= mMaxChi2PerClusterITS ||
156 trk =
data.getTrackParam(trackIndex);
157 if (trk.getPt() < mMinPt && trk.getPt() > mMaxPt && trk.getEta() < mMinEta && trk.getEta() > mMaxEta) {