Skip to content

Commit 7a9af8a

Browse files
committed
Clenaup configuration and track parameter handling
1 parent c179073 commit 7a9af8a

18 files changed

Lines changed: 158 additions & 428 deletions

‎Detectors/ITSMFT/common/tracking/include/ITSMFTTracking/Configuration.h‎

Lines changed: 0 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -114,9 +114,6 @@ struct IterationParameters {
114114
{
115115
return getMinSeedingClusters() - ClustersPerCell + 1;
116116
}
117-
int NeighboursPerRoad() const noexcept { return getNSeedingLayers() - 3; }
118-
int CellsPerRoad() const noexcept { return getNSeedingLayers() - 2; }
119-
int TrackletsPerRoad() const noexcept { return getNSeedingLayers() - 1; }
120117
IterationSteps PassFlags{IterationStep::FirstPass, IterationStep::RebuildClusterLUT};
121118
int NLayers = tracking::ITSNLayers;
122119
bool UseDiamond = false;
@@ -147,11 +144,6 @@ struct IterationParameters {
147144
bool PerPrimaryVertexProcessing = false;
148145
bool DoUPCIteration = false;
149146
bool CreateArtefactLabels{false};
150-
// Reserved compatibility storage; top/bottom followers are unused by the common tracker.
151-
float TrackFollowerNSigmaCutZ = 1.f;
152-
float TrackFollowerNSigmaCutPhi = 1.f;
153-
int TrackFollowerMaxHypotheses = 1;
154-
155147
// Track-sharing selections.
156148
bool AllowSharingFirstCluster = false;
157149
float SharedClusterMaxDeltaPhi = 0.05f; // Maximum delta phi at a shared cluster.
@@ -274,45 +266,6 @@ TrackingPlan getTrackingPlan(o2::detectors::DetID::ID detId, Type mode);
274266

275267
} // namespace TrackingMode
276268

277-
struct VertexingParameters {
278-
std::string asString() const;
279-
280-
IterationSteps PassFlags{IterationStep::FirstPass, IterationStep::ResetVertices};
281-
std::vector<float> LayerZ = {16.333f + 1, 16.333f + 1, 16.333f + 1, 42.140f + 1, 42.140f + 1, 73.745f + 1, 73.745f + 1};
282-
std::vector<float> LayerRadii = {2.33959f, 3.14076f, 3.91924f, 19.6213f, 24.5597f, 34.388f, 39.3329f};
283-
int vertPerRofThreshold = 0; // Vertices per ROF that trigger a second round.
284-
int ColBins = 1;
285-
int RowBins = 128;
286-
float zCut = -1.f;
287-
float phiCut = -1.f;
288-
float pairCut = -1.f;
289-
float clusterCut = -1.f;
290-
float coarseZWindow = -1.f;
291-
float seedDedupZCut = -1.f;
292-
float refitDedupZCut = -1.f;
293-
float duplicateZCut = -1.f;
294-
float finalSelectionZCut = -1.f;
295-
float duplicateDistance2Cut = -1.f;
296-
float tanLambdaCut = -1.f;
297-
float NSigmaCut = -1;
298-
float maxZPositionAllowed = -1.f;
299-
int clusterContributorsCut = -1;
300-
int suppressLowMultDebris = -1;
301-
int seedMemberRadiusTime = -1;
302-
int seedMemberRadiusZ = -1;
303-
int maxTrackletsPerCluster = -1;
304-
int phiSpan = -1;
305-
int zSpan = -1;
306-
bool SaveTimeBenchmarks = false;
307-
308-
bool useTruthSeeding = false; // Replace found vertices with MC events.
309-
310-
int nThreads = 1;
311-
bool PrintMemory = false; // Print allocator usage in the epilog report.
312-
size_t MaxMemory = std::numeric_limits<size_t>::max();
313-
bool DropTFUponFailure = false;
314-
};
315-
316269
} // namespace o2::itsmft
317270

318271
namespace o2::itsmft::tracking

‎Detectors/ITSMFT/common/tracking/include/ITSMFTTracking/GenericTrack.h‎

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -65,9 +65,6 @@ struct GenericTrack {
6565
struct TrackingCandidate {
6666
TrackSeed seed;
6767
GenericTrack track{};
68-
float phi{0.f};
69-
float eta{0.f};
70-
double charge{0.};
7168

7269
int getNumberOfClusters() const noexcept { return seed.getActiveLayerCount(); }
7370
int getClusterIndex(int position) const noexcept { return seed.getCluster(position); }

‎Detectors/ITSMFT/common/tracking/include/ITSMFTTracking/IOUtils.h‎

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -131,14 +131,6 @@ struct ClusterSourceInput {
131131
RuntimeROFViews rofViews{};
132132
};
133133

134-
/// Clear and fill a configured frame. On failure, the caller must reset the
135-
/// frame before reuse; partially loaded data must not be published.
136-
void loadSources(TimeFrame&, const SurfaceCatalogView&,
137-
gsl::span<const ClusterSourceInput>,
138-
const o2::InteractionRecord&,
139-
std::vector<std::vector<uint32_t>>* externalIndicesBySurface = nullptr,
140-
std::vector<std::vector<uint32_t>>* clusterSizesBySurface = nullptr);
141-
142134
/// Reset, decode, and normalize all sources into a configured TimeFrame.
143135
/// Invalid input throws. On failure, the caller must reset the frame before
144136
/// reuse; partially loaded data must not be published.
@@ -150,12 +142,11 @@ void loadTimeFrameSources(TimeFrame&, gsl::span<const ClusterSourceInput>,
150142
namespace detail
151143
{
152144
void prepareSources(TimeFrame&, const SurfaceCatalogView&, gsl::span<const ClusterSourceInput>,
153-
std::vector<std::vector<uint32_t>>*, std::vector<std::vector<uint32_t>>*);
145+
std::vector<std::vector<uint32_t>>*, std::vector<std::vector<uint32_t>>*, bool requireCompleteMapping = false);
154146
void validateSource(const ClusterSourceInput&, const o2::InteractionRecord&);
155147
void appendCluster(TimeFrame&, const SurfaceCatalogView&, const ClusterSourceInput&, const DecodedCluster&,
156148
uint32_t, uint32_t, std::vector<std::vector<uint32_t>>&, std::vector<std::vector<uint32_t>>&);
157-
void finishTimeFrameLoading(TimeFrame&, const SurfaceCatalogView&, gsl::span<const ClusterSourceInput>,
158-
const std::vector<std::vector<uint32_t>>&);
149+
void bindSourceROFNavigation(TimeFrame&, const ClusterSourceInput&, const std::vector<std::vector<int>>&);
159150

160151
// Internal loading loop; geometry decoding and synthetic fixtures share the
161152
// same stream consumption, diagnostics and measurement insertion.
@@ -164,6 +155,7 @@ void loadDecodedSource(TimeFrame& frame, const SurfaceCatalogView& catalog, cons
164155
const Decode& decode, std::vector<std::vector<uint32_t>>& externalIndices,
165156
std::vector<std::vector<uint32_t>>& clusterSizes)
166157
{
158+
std::vector<std::vector<int>> boundaries(src.layerToSurface.size(), std::vector<int>(src.rofs.size() + 1, 0));
167159
auto patterns = src.patterns.begin();
168160
for (uint32_t r = 0; r < src.rofs.size(); ++r) {
169161
const auto& rof = src.rofs[r];
@@ -181,10 +173,14 @@ void loadDecodedSource(TimeFrame& frame, const SurfaceCatalogView& catalog, cons
181173
}
182174
appendCluster(frame, catalog, src, decoded, r, externalIndex, externalIndices, clusterSizes);
183175
}
176+
for (size_t layer = 0; layer < src.layerToSurface.size(); ++layer) {
177+
boundaries[layer][r + 1] = static_cast<int>(externalIndices[src.layerToSurface[layer].value()].size());
178+
}
184179
}
185180
if (patterns != src.patterns.end()) {
186181
throw std::runtime_error(std::format("Trailing cluster pattern data source={} rof={} clusterIndex={}", src.id.value(), static_cast<uint32_t>(src.rofs.size()), static_cast<uint32_t>(src.clusters.size())));
187182
}
183+
bindSourceROFNavigation(frame, src, boundaries);
188184
}
189185
} // namespace detail
190186

‎Detectors/ITSMFT/common/tracking/include/ITSMFTTracking/Propagator.h‎

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -37,11 +37,6 @@ class Propagator
3737
material::MaterialTraversalDirection direction,
3838
bool chi2GateEnabled, float maxChi2, float& chi2) noexcept;
3939

40-
// Compatibility chi2 for two states in the same surface convention. The
41-
// coordinate convention is selected from the states, never by the caller.
42-
static bool stateChi2(const SurfaceTrackState& reference, const SurfaceTrackState& candidate,
43-
float& chi2) noexcept;
44-
4540
// Propagate in the state’s current surface convention to its target
4641
// reference coordinate. Disk transport uses helix propagation for
4742
// |bz| > 0.01f and linear transport otherwise. Both objects are unchanged

‎Detectors/ITSMFT/common/tracking/include/ITSMFTTracking/TrackerTraits.h‎

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -92,16 +92,14 @@ class TrackerTraits
9292
bool buildTrackSeed(IterationContext& context, int cellPathId,
9393
const CellSeed& cell, TrackSeed& output) const;
9494

95+
struct RoadSeedEmission;
96+
9597
// Neighbour processing helper; it does not encode a detector layer count.
9698
template <typename InputSeed>
9799
void processNeighbours(IterationContext& context, int iteration, CellPathId startingPath,
98100
int defaultCellPathId, int startLevel, int currentLevel,
99101
const bounded_vector<InputSeed>& currentCellSeed,
100-
const bounded_vector<int>& currentCellId,
101-
const bounded_vector<int>& currentCellPathId,
102-
bounded_vector<TrackSeed>& updatedCellSeed,
103-
bounded_vector<int>& updatedCellId,
104-
bounded_vector<int>& updatedCellPathIds,
102+
bounded_vector<RoadSeedEmission>& updatedCells,
105103
const TrackingKernelParameters& params);
106104

107105
std::shared_ptr<tbb::task_arena> mTaskArena;

‎Detectors/ITSMFT/common/tracking/include/ITSMFTTracking/detail/SurfaceStateOperations.h‎

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@ bool rotate(SurfaceTrackState& state, float targetAlpha) noexcept;
2626
bool propagate(SurfaceTrackState& state, float targetX, float bz) noexcept;
2727
bool predictedChi2(const SurfaceTrackState& state, const SurfaceMeasurement& measurement, float& chi2) noexcept;
2828
bool update(SurfaceTrackState& state, const SurfaceMeasurement& measurement, float& chi2) noexcept;
29-
bool stateChi2(const SurfaceTrackState& reference, const SurfaceTrackState& candidate, float& chi2) noexcept;
3029

3130
#ifndef GPUCA_GPUCODE
3231
bool rotate(SurfaceTrackState& state, SurfaceTrackParameters& linRef, float targetAlpha, float bz) noexcept;
@@ -42,7 +41,6 @@ bool propagate(SurfaceTrackState& state, SurfaceTrackParameters& linRef,
4241
float targetZ, float bz) noexcept;
4342
bool predictedChi2(const SurfaceTrackState& state, const SurfaceMeasurement& measurement, float& chi2) noexcept;
4443
bool update(SurfaceTrackState& state, const SurfaceMeasurement& measurement, float& chi2) noexcept;
45-
bool stateChi2(const SurfaceTrackState& reference, const SurfaceTrackState& candidate, float& chi2) noexcept;
4644

4745
#ifndef GPUCA_GPUCODE
4846
bool shiftReferenceToMeasurement(SurfaceTrackParameters& linRef, const SurfaceMeasurement& measurement) noexcept;

‎Detectors/ITSMFT/common/tracking/src/Configuration.cxx‎

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -87,16 +87,6 @@ std::string TrackingParameters::asString() const
8787
return str;
8888
}
8989

90-
std::string VertexingParameters::asString() const
91-
{
92-
std::string str = std::format("NColB:{} NRowB:{} MinVtxCont:{} SupLowMultDebris:{} MaxTrkltCls:{} ZCut:{} PhCut:{} PairCut:{} ClCut:{} SeedRad:{}x{}",
93-
ColBins, RowBins, clusterContributorsCut, suppressLowMultDebris, maxTrackletsPerCluster, zCut, phiCut, pairCut, clusterCut, seedMemberRadiusTime, seedMemberRadiusZ);
94-
if (std::numeric_limits<size_t>::max() != MaxMemory) {
95-
str += std::format(" MemLimit {:.2f} GB", double(MaxMemory) / (1024.f * 1024.f * 1024.f));
96-
}
97-
return str;
98-
}
99-
10090
void resetDetectorDefaults(TrackingParameters& p, detectors::DetID::ID detId)
10191
{
10292
if (detId == detectors::DetID::ITS) {

0 commit comments

Comments
 (0)