Skip to content

Commit 39b3f3e

Browse files
committed
UPC mask
Signed-off-by: Felix Schlepper <felix.schlepper@cern.ch>
1 parent 0906169 commit 39b3f3e

2 files changed

Lines changed: 13 additions & 17 deletions

File tree

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

Lines changed: 10 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,11 @@
1616
#ifndef ALICEO2_ITS_TRACKITS_H
1717
#define ALICEO2_ITS_TRACKITS_H
1818

19+
#include <algorithm>
1920
#include <cstdint>
2021

2122
#include "GPUCommonDef.h"
23+
#include "GPUCommonMath.h"
2224
#include "ReconstructionDataFormats/Track.h"
2325
#include "CommonDataFormat/RangeReference.h"
2426
#include "DataFormatsITS/TimeEstBC.h"
@@ -36,7 +38,8 @@ namespace its
3638
class TrackITS : public o2::track::TrackParCov
3739
{
3840
enum UserBits {
39-
kSharedClusters = 1 << 28
41+
kSharedClusters = 1 << 28,
42+
kUPCIteration = 1 << 29
4043
};
4144

4245
using Cluster = o2::itsmft::Cluster;
@@ -127,31 +130,27 @@ class TrackITS : public o2::track::TrackParCov
127130

128131
void setSharedClusters(bool toggle = true) { mClusterSizes = toggle ? (mClusterSizes | kSharedClusters) : (mClusterSizes & ~kSharedClusters); }
129132
bool hasSharedClusters() const { return mClusterSizes & kSharedClusters; }
133+
void setUPCIteration() { mClusterSizes |= kUPCIteration; }
134+
bool isUPCIteration() const noexcept { return mClusterSizes & kUPCIteration; }
130135

131136
void setClusterSize(int l, int size)
132137
{
133138
if (l >= 8) {
134139
return;
135140
}
136-
if (size > 15) {
137-
size = 15;
138-
}
141+
size = o2::gpu::CAMath::Min(size, 15);
139142
mClusterSizes &= ~(0xf << (l * 4));
140143
mClusterSizes |= (size << (l * 4));
141144
}
142145

143-
int getClusterSize(int l)
146+
int getClusterSize(int l) const
144147
{
145148
if (l >= 7) {
146149
return 0;
147150
}
148151
return (mClusterSizes >> (l * 4)) & 0xf;
149152
}
150-
151-
int getClusterSizes() const
152-
{
153-
return mClusterSizes;
154-
}
153+
auto getClusterSizes() const { return mClusterSizes; }
155154

156155
private:
157156
o2::track::TrackParCov mParamOut; ///< parameter at largest radius
@@ -171,13 +170,7 @@ class TrackITSExt : public TrackITS
171170
static constexpr int MaxClusters = 16; /// Prepare for overlaps and new detector configurations
172171
using TrackITS::TrackITS; // inherit base constructors
173172

174-
GPUh() TrackITSExt(o2::track::TrackParCov&& parCov, short ncl, float chi2, o2::track::TrackParCov&& outer, std::array<int, MaxClusters> cls)
175-
: TrackITS(parCov, chi2, outer), mIndex{cls}
176-
{
177-
setNumberOfClusters(ncl);
178-
}
179-
180-
GPUh() TrackITSExt(o2::track::TrackParCov& parCov, short ncl, float chi2, std::uint32_t rof, o2::track::TrackParCov& outer, std::array<int, MaxClusters> cls)
173+
GPUh() TrackITSExt(const o2::track::TrackParCov& parCov, short ncl, float chi2, const o2::track::TrackParCov& outer, std::array<int, MaxClusters> cls)
181174
: TrackITS(parCov, chi2, outer), mIndex{cls}
182175
{
183176
setNumberOfClusters(ncl);

Detectors/ITSMFT/ITS/tracking/src/TrackerTraits.cxx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -834,6 +834,9 @@ void TrackerTraits<NLayers>::acceptTracks(int iteration, bounded_vector<TrackITS
834834
}
835835
track.setUserField(0);
836836
track.getParamOut().setUserField(0);
837+
if (mTrkParams[iteration].PassFlags[IterationStep::SelectUPCVertices]) {
838+
track.setUPCIteration();
839+
}
837840
trks.emplace_back(track);
838841

839842
if (mTrkParams[iteration].AllowSharingFirstCluster) {

0 commit comments

Comments
 (0)