1- // Copyright 2019-2020 CERN and copyright holders of ALICE O2.
1+ // Copyright 2019-2026 CERN and copyright holders of ALICE O2.
22// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders.
33// All rights not expressly granted are reserved.
44//
1616#ifndef ALICEO2_ITS_TRACKITS_H
1717#define ALICEO2_ITS_TRACKITS_H
1818
19- #include < vector >
19+ #include < cstdint >
2020
2121#include " GPUCommonDef.h"
2222#include " ReconstructionDataFormats/Track.h"
2323#include " CommonDataFormat/RangeReference.h"
24+ #include " DataFormatsITS/TimeEstBC.h"
2425
2526namespace o2
2627{
@@ -35,8 +36,7 @@ namespace its
3536class TrackITS : public o2 ::track::TrackParCov
3637{
3738 enum UserBits {
38- kNextROF = 1 << 28 ,
39- kSharedClusters = 1 << 29
39+ kSharedClusters = 1 << 28
4040 };
4141
4242 using Cluster = o2::itsmft::Cluster;
@@ -93,6 +93,9 @@ class TrackITS : public o2::track::TrackParCov
9393
9494 bool isBetter (const TrackITS& best, float maxChi2) const ;
9595
96+ GPUhdi () auto & getTimeStamp () { return mTime ; }
97+ GPUhdi () const auto & getTimeStamp () const { return mTime ; }
98+
9699 GPUhdi () o2::track::TrackParCov& getParamIn () { return *this ; }
97100 GPUhdi () const o2::track::TrackParCov& getParamIn () const { return *this ; }
98101
@@ -122,8 +125,6 @@ class TrackITS : public o2::track::TrackParCov
122125 }
123126 int getNFakeClusters () const ;
124127
125- void setNextROFbit (bool toggle = true ) { mClusterSizes = toggle ? (mClusterSizes | kNextROF ) : (mClusterSizes & ~kNextROF ); }
126- bool hasHitInNextROF () const { return mClusterSizes & kNextROF ; }
127128 void setSharedClusters (bool toggle = true ) { mClusterSizes = toggle ? (mClusterSizes | kSharedClusters ) : (mClusterSizes & ~kSharedClusters ); }
128129 bool hasSharedClusters () const { return mClusterSizes & kSharedClusters ; }
129130
@@ -157,9 +158,10 @@ class TrackITS : public o2::track::TrackParCov
157158 ClusRefs mClusRef ; // /< references on clusters
158159 float mChi2 = 0 .; // /< Chi2 for this track
159160 uint32_t mPattern = 0 ; // /< layers pattern
160- unsigned int mClusterSizes = 0u ;
161+ uint32_t mClusterSizes = 0u ; // /< 4bit packed cluster sizes
162+ TimeStamp mTime ; // /< track time stamp with error in BC since start of TF, symmetrical
161163
162- ClassDefNV (TrackITS, 6 );
164+ ClassDefNV (TrackITS, 7 );
163165};
164166
165167class TrackITSExt : public TrackITS
@@ -169,15 +171,13 @@ class TrackITSExt : public TrackITS
169171 static constexpr int MaxClusters = 16 ; // / Prepare for overlaps and new detector configurations
170172 using TrackITS::TrackITS; // inherit base constructors
171173
172- GPUh () TrackITSExt(o2::track::TrackParCov&& parCov, short ncl, float chi2,
173- o2::track::TrackParCov&& outer, std::array<int , MaxClusters> cls)
174+ GPUh () TrackITSExt(o2::track::TrackParCov&& parCov, short ncl, float chi2, o2::track::TrackParCov&& outer, std::array<int , MaxClusters> cls)
174175 : TrackITS(parCov, chi2, outer), mIndex {cls}
175176 {
176177 setNumberOfClusters (ncl);
177178 }
178179
179- GPUh () TrackITSExt(o2::track::TrackParCov& parCov, short ncl, float chi2, std::uint32_t rof,
180- o2::track::TrackParCov& outer, std::array<int , MaxClusters> cls)
180+ GPUh () TrackITSExt(o2::track::TrackParCov& parCov, short ncl, float chi2, std::uint32_t rof, o2::track::TrackParCov& outer, std::array<int , MaxClusters> cls)
181181 : TrackITS(parCov, chi2, outer), mIndex {cls}
182182 {
183183 setNumberOfClusters (ncl);
@@ -212,7 +212,7 @@ class TrackITSExt : public TrackITS
212212
213213 private:
214214 std::array<int , MaxClusters> mIndex = {-1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 , -1 }; // /< Indices of associated clusters
215- ClassDefNV (TrackITSExt, 2 );
215+ ClassDefNV (TrackITSExt, 3 );
216216};
217217} // namespace its
218218} // namespace o2
0 commit comments