Project
Loading...
Searching...
No Matches
ITSTrackingConfigParam.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.
11
12#ifndef ALICEO2_ITSDPLTRACKINGPARAM_H_
13#define ALICEO2_ITSDPLTRACKINGPARAM_H_
14
15#include <limits>
19
20namespace o2::its
21{
22
23struct VertexerParamConfig : public o2::conf::ConfigurableParamHelper<VertexerParamConfig> {
24 bool saveTimeBenchmarks = false; // dump metrics on file
25
26 int nIterations = 1; // Number of vertexing passes to perform.
27 int vertPerRofThreshold = 0; // Maximum number of vertices per ROF to trigger second a iteration.
28
29 // geometrical cuts for tracklet selection for Pb-Pb
30 float zCut = 0.002f;
31 float phiCut = 0.005f;
32 float pairCut = 0.04f;
33 float clusterCut = 0.170048f;
34 float coarseZWindow = 0.055458f;
35 float seedDedupZCut = 0.116685f;
36 float refitDedupZCut = 0.039855f;
37 float duplicateZCut = 0.200097f;
38 float finalSelectionZCut = 0.034535f;
39 float duplicateDistance2Cut = 0.005117f;
40 float tanLambdaCut = 0.002f; // tanLambda = deltaZ/deltaR
41 float nSigmaCut = 0.0164651f;
42 float maxZPositionAllowed = 25.f; // 4x sZ of the beam
43
44 // Artefacts selections
45 int clusterContributorsCut = 2; // minimum number of contributors for an accepted final vertex
46 int suppressLowMultDebris = 16; // suppress all vertices below this threshold if a vertex was already found in a rof
47 float lineMinPt = 0.10f; // drop soft lines before the density scan
48 float lineCurvatureScale = 0.5f; // q/pT scale when propagating a seeding line to its xy-DCA to the beam
49 float fineZWindow = 0.010f; // second, narrow density pass (dip search); <=0 disables
51 float fineMaxDrift = 0.005f; // |z_fit - z_seed| cap on fine-only candidates; <=0 disables
52 float goodLineChi2Cut = 5.f;
53 float goodLinePtCut = 0.5f;
54 float goodContributorsSignificance = 0.070f; // emit threshold k, scaled by sqrt(ROF load) and clamped to [constants::VtxMinGoodThreshold (2), suppressLowMultDebris], bounds included; <=0 disables
55 float overpopulatedRofNSigma = -1.f; // a ROF with more seeding vertices than mean + overpopulatedRofNSigma*sqrt(mean+1) of its TF keeps its largest vertex and those with >= suppressLowMultDebris contributors (not in the UPC pass); <=0 disables
56 float duplicateZScale = 0.7f; // per-candidate dedup radius scale/sqrt(size); <=0 uses duplicateZCut
60 int phiSpan = -1;
61 int zSpan = -1;
62 int ZBins = 1; // z-phi index table configutation: number of z bins
63 int PhiBins = 128; // z-phi index table configutation: number of phi bins
64
65 bool useTruthSeeding{false}; // overwrite seeding vertices with MC truth
66
67 int nThreads = 1;
68 bool printMemory = false;
69 size_t maxMemory = std::numeric_limits<size_t>::max();
70 bool dropTFUponFailure = false;
71
72 O2ParamDef(VertexerParamConfig, "ITSVertexerParam");
73};
74
75struct TrackerParamConfig : public o2::conf::ConfigurableParamHelper<TrackerParamConfig> {
76 static const int MinTrackLength = 4;
77 static const int MaxTrackLength = 7;
78
79 bool useMatCorrTGeo = false; // use full geometry to corect for material budget accounting in the fits. Default is to use the material budget LUT.
80 bool useFastMaterial = false; // use faster material approximation for material budget accounting in the fits.
81 int addTimeError[7] = {0}; // configure the width of the window in BC to be considered for the tracking.
82 int minTrackLgtIter[constants::MaxIter] = {}; // minimum track length at each iteration, used only if >0, otherwise use code defaults
83 uint8_t startLayerMask[constants::MaxIter] = {}; // mask of start layer for this iteration (if >0)
84 int maxHolesIter[constants::MaxIter] = {}; // maximum number of missing internal layers allowed in the CA topology for each iteration
85 uint16_t holeLayerMaskIter[constants::MaxIter] = {}; // layers that may be skipped by the CA topology for each iteration
86 float minPtIterLgt[constants::MaxIter * (MaxTrackLength - MinTrackLength + 1)] = {}; // min.pT for given track length at this iteration, used only if >0, otherwise use code defaults
87 float sysErrY2[7] = {0}; // systematic error^2 in Y per layer
88 float sysErrZ2[7] = {0}; // systematic error^2 in Z per layer
90 float maxChi2NDF = -1.f;
91 float nSigmaCut = -1.f;
92 float deltaTanLres = -1.f;
93 float minPt = -1.f;
94 float pvRes = -1.f;
95 int LUTbinsPhi = -1;
96 int LUTbinsZ = -1;
97 float diamondPos[3] = {0.f, 0.f, 0.f}; // override the position of the vertex
98 bool useDiamond = false; // enable overriding the vertex position
99 bool perPrimaryVertexProcessing = false; // perform the full tracking considering the vertex hypotheses one at the time.
100 bool seedingVertexIteration = false; // prepend a seeding-vertex iteration (diamond->cell->line->parallel seeding) to the tracker passes
101 float diamondTrackletingNSigmaCut = 6.6136f; // z-window n-sigma for the diamond trackleting (gates the cell tanLambda too unless the next one is set)
102 float diamondCellTanLambdaNSigma = 2.5f; // cell tanLambda gate, split out from the trackleting n-sigma; <=0 reuses it
103 float diamondTrackletingPVres = 0.9676f; // effective PV resolution [cm] feeding the trackleting z-sigma
104 float diamondTrackletingCellDeltaTanLambdaSigma = 0.007f; // cell tanLambda sigma for the diamond celling
106 int cellLineSharedClusterCut = 1; // Max clusters a cell->Line may share with already-accepted Lines before being dropped.
107
108 bool saveTimeBenchmarks = false; // dump metrics on file
109 bool overrideBeamEstimation = false; // use beam position from meanVertex CCDB object
110 int trackingMode = -1; // -1: unset, 0=sync, 1=async, 2=cosmics used by gpuwf only
111 bool doUPCIteration = false; // Perform an additional iteration for UPC events on tagged vertices. You want to combine this config with VertexerParamConfig.nIterations=2
112 int nIterations = constants::MaxIter; // overwrite the number of iterations
113 int reseedIfShorter = 6; // for the final refit reseed the track with circle if they are shorter than this value
114 bool shiftRefToCluster{true}; // TrackFit: after update shift the linearization reference to cluster
115 bool repeatRefitOut{false}; // repeat outward refit using inward refit as a seed
116 bool createArtefactLabels{false}; // create on-the-fly labels for the artefacts
122
123 int nThreads = 1;
124 bool printMemory = false;
125 size_t maxMemory = std::numeric_limits<size_t>::max();
126 bool dropTFUponFailure = false;
127 bool fataliseUponFailure = true; // granular management of the fatalisation in async mode
128
129 // Selections on tracks sharing clusters
130 bool allowSharingFirstCluster = false; // allow first cluster sharing among tracks
131 float sharedClusterMaxDeltaPhi = 0.05f; // Maximum allowed delta phi at the cluster position
132 float sharedClusterMaxDeltaEta = 0.03f; // Maximum allowed delta eta at the cluster position
133 bool sharedClusterOppositeSign = false; // Require opposite sign of the tracklets
134
135 O2ParamDef(TrackerParamConfig, "ITSCATrackerParam");
136};
137
138} // namespace o2::its
139#endif
constexpr int MaxIter
Definition Constants.h:36
uint16_t holeLayerMaskIter[constants::MaxIter]
float minPtIterLgt[constants::MaxIter *(MaxTrackLength - MinTrackLength+1)]
uint8_t startLayerMask[constants::MaxIter]
O2ParamDef(TrackerParamConfig, "ITSCATrackerParam")
int minTrackLgtIter[constants::MaxIter]
bool trackFollowerTop[constants::MaxIter]
int maxHolesIter[constants::MaxIter]
bool trackFollowerBot[constants::MaxIter]
O2ParamDef(VertexerParamConfig, "ITSVertexerParam")