@@ -25,6 +25,9 @@ namespace dataformats
2525{
2626
2727struct TrackInfoExt {
28+ enum { TPCA = 0 ,
29+ TPCC = 1 ,
30+ kBitMask = 0xffff };
2831 o2::track::TrackParCov track;
2932 DCA dca{};
3033 DCA dcaTPC{};
@@ -43,21 +46,35 @@ struct TrackInfoExt {
4346 float q2ptITSTPCTRD = 0 .f;
4447 uint16_t nClTPC = 0 ;
4548 uint16_t nClTPCShared = 0 ;
49+ uint16_t flags = 0 ;
4650 uint8_t pattITS = 0 ;
4751 uint8_t nClITS = 0 ;
4852 uint8_t rowMinTPC = 0 ;
4953 uint8_t padFromEdge = -1 ;
5054 uint8_t rowMaxTPC = 0 ;
5155 uint8_t rowCountTPC = 0 ;
5256
57+ void setTPCA () { setBit (int (TPCA)); }
58+ void setTPCC () { setBit (int (TPCC)); }
59+ void setTPCAC () { setBit (int (TPCC)); }
60+
61+ bool isTPCA () const { return isBitSet (int (TPCA)); }
62+ bool isTPCC () const { return isBitSet (int (TPCC)); }
63+ bool isTPCAC () const { return isBitSet (int (TPCA)) && isBitSet (int (TPCC)); }
64+
5365 float getTPCInX () const { return innerTPCPos[0 ]; }
5466 float getTPCInY () const { return innerTPCPos[1 ]; }
5567 float getTPCInZ () const { return innerTPCPos[2 ]; }
5668 float getTPCInX0 () const { return innerTPCPos0[0 ]; }
5769 float getTPCInY0 () const { return innerTPCPos0[1 ]; }
5870 float getTPCInZ0 () const { return innerTPCPos0[2 ]; }
5971
60- ClassDefNV (TrackInfoExt, 6 );
72+ void setBits (std::uint16_t b) { flags = b; }
73+ void setBit (int bit) { flags |= kBitMask & (0x1 << bit); }
74+ void resetBit (int bit) { flags &= ~(kBitMask & (0x1 << bit)); }
75+ bool isBitSet (int bit) const { return flags & (kBitMask & (0x1 << bit)); }
76+
77+ ClassDefNV (TrackInfoExt, 7 );
6178};
6279
6380} // namespace dataformats
0 commit comments