diff --git a/Detectors/GlobalTrackingWorkflow/study/include/GlobalTrackingStudy/TrackInfoExt.h b/Detectors/GlobalTrackingWorkflow/study/include/GlobalTrackingStudy/TrackInfoExt.h index 26eeea858d14b..2eed64df3bfca 100644 --- a/Detectors/GlobalTrackingWorkflow/study/include/GlobalTrackingStudy/TrackInfoExt.h +++ b/Detectors/GlobalTrackingWorkflow/study/include/GlobalTrackingStudy/TrackInfoExt.h @@ -25,6 +25,9 @@ namespace dataformats { struct TrackInfoExt { + enum { TPCA = 0, + TPCC = 1, + kBitMask = 0xffff }; o2::track::TrackParCov track; DCA dca{}; DCA dcaTPC{}; @@ -43,6 +46,7 @@ struct TrackInfoExt { float q2ptITSTPCTRD = 0.f; uint16_t nClTPC = 0; uint16_t nClTPCShared = 0; + uint16_t flags = 0; uint8_t pattITS = 0; uint8_t nClITS = 0; uint8_t rowMinTPC = 0; @@ -50,6 +54,14 @@ struct TrackInfoExt { uint8_t rowMaxTPC = 0; uint8_t rowCountTPC = 0; + void setTPCA() { setBit(int(TPCA)); } + void setTPCC() { setBit(int(TPCC)); } + void setTPCAC() { setBit(int(TPCC)); } + + bool isTPCA() const { return isBitSet(int(TPCA)); } + bool isTPCC() const { return isBitSet(int(TPCC)); } + bool isTPCAC() const { return isBitSet(int(TPCA)) && isBitSet(int(TPCC)); } + float getTPCInX() const { return innerTPCPos[0]; } float getTPCInY() const { return innerTPCPos[1]; } float getTPCInZ() const { return innerTPCPos[2]; } @@ -57,7 +69,12 @@ struct TrackInfoExt { float getTPCInY0() const { return innerTPCPos0[1]; } float getTPCInZ0() const { return innerTPCPos0[2]; } - ClassDefNV(TrackInfoExt, 6); + void setBits(std::uint16_t b) { flags = b; } + void setBit(int bit) { flags |= kBitMask & (0x1 << bit); } + void resetBit(int bit) { flags &= ~(kBitMask & (0x1 << bit)); } + bool isBitSet(int bit) const { return flags & (kBitMask & (0x1 << bit)); } + + ClassDefNV(TrackInfoExt, 7); }; } // namespace dataformats diff --git a/Detectors/GlobalTrackingWorkflow/study/src/TrackingStudy.cxx b/Detectors/GlobalTrackingWorkflow/study/src/TrackingStudy.cxx index a2bf6abd35fef..97721a30b0ab8 100644 --- a/Detectors/GlobalTrackingWorkflow/study/src/TrackingStudy.cxx +++ b/Detectors/GlobalTrackingWorkflow/study/src/TrackingStudy.cxx @@ -486,6 +486,12 @@ void TrackingStudySpec::process(o2::globaltracking::RecoContainer& recoData) if (tpcTr) { float tsuse = trcExt.ttime / (8 * o2::constants::lhc::LHCBunchSpacingMUS); + if (tpcTr->hasASideClusters()) { + trcExt.setTPCA(); + } + if (tpcTr->hasCSideClusters()) { + trcExt.setTPCC(); + } if (is == GTrackID::TPC) { trcExt.dcaTPC = dca; tsuse = -1e9;