Project
Loading...
Searching...
No Matches
Configuration.h
Go to the documentation of this file.
1// Copyright 2019-2020 CERN and copyright holders of ALICE O2.
2// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders.
3// All rights not expressly granted are reserved.
4//
5// This software is distributed under the terms of the GNU General Public
6// License v3 (GPL Version 3), copied verbatim in the file "COPYING".
7//
8// In applying this license CERN does not waive the privileges and immunities
9// granted to it by virtue of its status as an Intergovernmental Organization
10// or submit itself to any jurisdiction.
15
16#ifndef TRACKINGITSU_INCLUDE_CONFIGURATION_H_
17#define TRACKINGITSU_INCLUDE_CONFIGURATION_H_
18
19#ifndef GPUCA_GPUCODE_DEVICE
20#include <array>
21#include <limits>
22#include <vector>
23#include <cmath>
24#endif
25
28
29namespace o2::its
30{
31
33 int CellMinimumLevel() const noexcept { return MinTrackLength - constants::ClustersPerCell + 1; }
34 int NeighboursPerRoad() const noexcept { return NLayers - 3; }
35 int CellsPerRoad() const noexcept { return NLayers - 2; }
36 int TrackletsPerRoad() const noexcept { return NLayers - 1; }
37 std::string asString() const;
38
39 int NLayers = 7;
40 int DeltaROF = 0;
41 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};
42 std::vector<float> LayerRadii = {2.33959f, 3.14076f, 3.91924f, 19.6213f, 24.5597f, 34.388f, 39.3329f};
43 std::vector<float> LayerxX0 = {5.e-3f, 5.e-3f, 5.e-3f, 1.e-2f, 1.e-2f, 1.e-2f, 1.e-2f};
44 std::vector<float> LayerResolution = {5.e-4f, 5.e-4f, 5.e-4f, 5.e-4f, 5.e-4f, 5.e-4f, 5.e-4f};
45 std::vector<float> SystErrorY2 = {0.f, 0.f, 0.f, 0.f, 0.f, 0.f, 0.f};
46 std::vector<float> SystErrorZ2 = {0.f, 0.f, 0.f, 0.f, 0.f, 0.f, 0.f};
47 int ZBins{256};
48 int PhiBins{128};
50 bool UseDiamond = false;
51 float Diamond[3] = {0.f, 0.f, 0.f};
52
57 float NSigmaCut = 5;
58 float PVres = 1.e-2f;
60 float TrackletMinPt = 0.3f;
68 float MaxChi2NDF = 30.f;
69 int ReseedIfShorter = 6; // reseed for the final fit track with the length shorter than this
70 std::vector<float> MinPt = {0.f, 0.f, 0.f, 0.f};
71 uint16_t StartLayerMask = 0x7F;
72 bool RepeatRefitOut = false; // repeat outward refit using inward refit as a seed
73 bool ShiftRefToCluster = true; // TrackFit: after update shift the linearization reference to cluster
74 bool FindShortTracks = false;
76 bool SaveTimeBenchmarks = false;
77 bool DoUPCIteration = false;
80 bool UseTrackFollower = false;
81 bool UseTrackFollowerTop = false;
82 bool UseTrackFollowerBot = false;
83 bool UseTrackFollowerMix = false;
86
88
89 bool PrintMemory = false; // print allocator usage in epilog report
90 size_t MaxMemory = std::numeric_limits<size_t>::max();
91 bool DropTFUponFailure = false;
92};
93
95 std::string asString() const;
96
97 int nIterations = 1; // Number of vertexing passes to perform
98 int vertPerRofThreshold = 0; // Maximum number of vertices per ROF to trigger second a round
100 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};
101 std::vector<float> LayerRadii = {2.33959f, 3.14076f, 3.91924f, 19.6213f, 24.5597f, 34.388f, 39.3329f};
102 int ZBins{1};
103 int PhiBins{128};
104 int deltaRof = 0;
105 float zCut = 0.002f;
106 float phiCut = 0.005f;
107 float pairCut = 0.04f;
108 float clusterCut = 0.8f;
109 float histPairCut = 0.04f;
110 float tanLambdaCut = 0.002f; // tanLambda = deltaZ/deltaR
111 float lowMultBeamDistCut = 0.1f; // XY cut for low-multiplicity pile up
112 int vertNsigmaCut = 6; // N sigma cut for vertex XY
113 float vertRadiusSigma = 0.33f; // sigma of vertex XY
114 float trackletSigma = 0.01f; // tracklet to vertex sigma
118 int phiSpan = -1;
119 int zSpan = -1;
120 bool SaveTimeBenchmarks = false;
121
122 bool useTruthSeeding = false; // overwrite found vertices with MC events
123 bool outputContLabels = false;
124
125 int nThreads = 1;
126 bool PrintMemory = false; // print allocator usage in epilog report
127 size_t MaxMemory = std::numeric_limits<size_t>::max();
128 bool DropTFUponFailure = false;
129};
130
132 std::string asString() const;
133
134 size_t tmpCUBBufferSize = 1e5; // In average in pp events there are required 4096 bytes
140 size_t maxNeighboursSize = 1e2;
142 size_t maxRoadPerRofSize = 1e3; // pp!
143 size_t maxLinesCapacity = 1e2;
145 size_t nMaxROFs = 1e3;
147 size_t nROFsPerChunk = 768; // pp defaults
149};
150
151namespace TrackingMode
152{
153enum Type : int8_t {
154 Unset = -1, // Special value to leave a default in case we want to override via Configurable Params
155 Sync = 0,
156 Async = 1,
158 Off = 3,
159};
160
161Type fromString(std::string_view str);
162std::string toString(Type mode);
163
164std::vector<TrackingParameters> getTrackingParameters(Type mode);
165std::vector<VertexingParameters> getVertexingParameters(Type mode);
166
167}; // namespace TrackingMode
168
169} // namespace o2::its
170
171#endif /* TRACKINGITSU_INCLUDE_CONFIGURATION_H_ */
GLenum mode
Definition glcorearb.h:266
std::vector< VertexingParameters > getVertexingParameters(Type mode)
Type fromString(std::string_view str)
std::string toString(Type mode)
std::vector< TrackingParameters > getTrackingParameters(Type mode)
std::string asString() const
std::string asString() const
bool AllowSharingFirstCluster
General parameters.
std::vector< float > LayerRadii
std::vector< float > SystErrorY2
std::vector< float > LayerZ
float CellDeltaTanLambdaSigma
Cell finding cuts.
std::vector< float > SystErrorZ2
float TrackletMinPt
Trackleting cuts.
std::vector< float > LayerResolution
int CellMinimumLevel() const noexcept
std::vector< float > LayerxX0
std::vector< float > MinPt
o2::base::PropagatorImpl< float >::MatCorrType CorrType
Fitter parameters.
int CellsPerRoad() const noexcept
int NeighboursPerRoad() const noexcept
int TrackletsPerRoad() const noexcept
bool UseTrackFollower
Cluster attachment.
std::string asString() const
std::vector< float > LayerZ
std::vector< float > LayerRadii
const std::string str