Skip to content

Commit a5a8469

Browse files
committed
ITS: staggered tracking
Signed-off-by: Felix Schlepper <felix.schlepper@cern.ch>
1 parent 66124b2 commit a5a8469

File tree

79 files changed

+2943
-5172
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

79 files changed

+2943
-5172
lines changed

DataFormats/Detectors/ITSMFT/ITS/include/DataFormatsITS/TrackITS.h

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,12 @@
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

2526
namespace o2
2627
{
@@ -35,12 +36,12 @@ namespace its
3536
class 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

165168
class 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

DataFormats/common/include/CommonDataFormat/TimeStamp.h

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,10 @@ class TimeStamp
2727
public:
2828
GPUhdDefault() TimeStamp() = default;
2929
GPUhdDefault() ~TimeStamp() = default;
30-
GPUdi() TimeStamp(T time) { mTimeStamp = time; }
30+
GPUhdi() TimeStamp(T time) { mTimeStamp = time; }
3131
GPUhdi() T getTimeStamp() const { return mTimeStamp; }
32-
GPUdi() void setTimeStamp(T t) { mTimeStamp = t; }
33-
GPUdi() bool operator==(const TimeStamp<T>& t) const { return mTimeStamp == t.mTimeStamp; }
32+
GPUhdi() void setTimeStamp(T t) { mTimeStamp = t; }
33+
GPUhdi() bool operator==(const TimeStamp<T>& t) const { return mTimeStamp == t.mTimeStamp; }
3434

3535
private:
3636
T mTimeStamp = 0;
@@ -41,11 +41,11 @@ template <typename T, typename E>
4141
class TimeStampWithError : public TimeStamp<T>
4242
{
4343
public:
44-
GPUdDefault() TimeStampWithError() = default;
45-
GPUd() TimeStampWithError(T t, E te) : TimeStamp<T>(t), mTimeStampError(te) {}
46-
GPUdi() E getTimeStampError() const { return mTimeStampError; }
47-
GPUdi() E getTimeStampError2() const { return mTimeStampError * mTimeStampError; }
48-
GPUdi() void setTimeStampError(E te) { mTimeStampError = te; }
44+
GPUhdDefault() TimeStampWithError() = default;
45+
GPUhd() TimeStampWithError(T t, E te) : TimeStamp<T>(t), mTimeStampError(te) {}
46+
GPUhdi() E getTimeStampError() const { return mTimeStampError; }
47+
GPUhdi() E getTimeStampError2() const { return mTimeStampError * mTimeStampError; }
48+
GPUhdi() void setTimeStampError(E te) { mTimeStampError = te; }
4949

5050
private:
5151
E mTimeStampError = 0;

Detectors/ITSMFT/ITS/reconstruction/include/ITSReconstruction/TrivialVertexer.h

Lines changed: 0 additions & 70 deletions
This file was deleted.

Detectors/ITSMFT/ITS/reconstruction/src/TrivialVertexer.cxx

Lines changed: 0 additions & 108 deletions
This file was deleted.

Detectors/ITSMFT/ITS/tracking/CMakeLists.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ o2_add_library(ITStracking
2222
src/ClusterLines.cxx
2323
src/Vertexer.cxx
2424
src/VertexerTraits.cxx
25-
src/Smoother.cxx
25+
src/Definitions.cxx
2626
PUBLIC_LINK_LIBRARIES
2727
O2::GPUCommon
2828
Microsoft.GSL::GSL
@@ -50,6 +50,7 @@ o2_target_root_dictionary(ITStracking
5050
HEADERS include/ITStracking/ClusterLines.h
5151
include/ITStracking/Tracklet.h
5252
include/ITStracking/Cluster.h
53+
include/ITStracking/Definitions.h
5354
include/ITStracking/TrackingConfigParam.h
5455
LINKDEF src/TrackingLinkDef.h)
5556

0 commit comments

Comments
 (0)