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 " CommonDataFormat/TimeStamp.h"
2425
2526namespace o2
2627{
@@ -35,12 +36,12 @@ 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;
4343 using ClusRefs = o2::dataformats::RangeRefComp<4 >;
44+ using Timestamp = o2::dataformats::TimeStampWithError<uint32_t , uint16_t >;
4445
4546 public:
4647 using o2::track::TrackParCov::TrackParCov; // inherit base constructors
@@ -93,6 +94,9 @@ class TrackITS : public o2::track::TrackParCov
9394
9495 bool isBetter (const TrackITS& best, float maxChi2) const ;
9596
97+ GPUhdi () auto & getTimeStamp () { return mTime ; }
98+ GPUhdi () const auto & getTimeStamp () const { return mTime ; }
99+
96100 GPUhdi () o2::track::TrackParCov& getParamIn () { return *this ; }
97101 GPUhdi () const o2::track::TrackParCov& getParamIn () const { return *this ; }
98102
@@ -122,8 +126,6 @@ class TrackITS : public o2::track::TrackParCov
122126 }
123127 int getNFakeClusters () const ;
124128
125- void setNextROFbit (bool toggle = true ) { mClusterSizes = toggle ? (mClusterSizes | kNextROF ) : (mClusterSizes & ~kNextROF ); }
126- bool hasHitInNextROF () const { return mClusterSizes & kNextROF ; }
127129 void setSharedClusters (bool toggle = true ) { mClusterSizes = toggle ? (mClusterSizes | kSharedClusters ) : (mClusterSizes & ~kSharedClusters ); }
128130 bool hasSharedClusters () const { return mClusterSizes & kSharedClusters ; }
129131
@@ -157,9 +159,10 @@ class TrackITS : public o2::track::TrackParCov
157159 ClusRefs mClusRef ; // /< references on clusters
158160 float mChi2 = 0 .; // /< Chi2 for this track
159161 uint32_t mPattern = 0 ; // /< layers pattern
160- unsigned int mClusterSizes = 0u ;
162+ uint32_t mClusterSizes = 0u ; // /< 4bit packed cluster sizes
163+ Timestamp mTime ; // /< track time stamp with error in BC since start of TF, symmetrical
161164
162- ClassDefNV (TrackITS, 6 );
165+ ClassDefNV (TrackITS, 7 );
163166};
164167
165168class TrackITSExt : public TrackITS
@@ -169,15 +172,13 @@ class TrackITSExt : public TrackITS
169172 static constexpr int MaxClusters = 16 ; // / Prepare for overlaps and new detector configurations
170173 using TrackITS::TrackITS; // inherit base constructors
171174
172- GPUh () TrackITSExt(o2::track::TrackParCov&& parCov, short ncl, float chi2,
173- o2::track::TrackParCov&& outer, std::array<int , MaxClusters> cls)
175+ GPUh () TrackITSExt(o2::track::TrackParCov&& parCov, short ncl, float chi2, o2::track::TrackParCov&& outer, std::array<int , MaxClusters> cls)
174176 : TrackITS(parCov, chi2, outer), mIndex {cls}
175177 {
176178 setNumberOfClusters (ncl);
177179 }
178180
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)
181+ GPUh () TrackITSExt(o2::track::TrackParCov& parCov, short ncl, float chi2, std::uint32_t rof, o2::track::TrackParCov& outer, std::array<int , MaxClusters> cls)
181182 : TrackITS(parCov, chi2, outer), mIndex {cls}
182183 {
183184 setNumberOfClusters (ncl);
@@ -212,7 +213,7 @@ class TrackITSExt : public TrackITS
212213
213214 private:
214215 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 );
216+ ClassDefNV (TrackITSExt, 3 );
216217};
217218} // namespace its
218219} // namespace o2
0 commit comments