Project
Loading...
Searching...
No Matches
TrackingConfigParam.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_ITSMFT_TRACKING_CONFIG_PARAM_H_
13#define ALICEO2_ITSMFT_TRACKING_CONFIG_PARAM_H_
14
15#include <array>
16#include <cstddef>
17#include <cstdint>
18#include <limits>
19
23
25{
27constexpr int ITSNLayers = 7;
29constexpr int MFTNLayers = 10;
31constexpr int MaxIter = 4;
33constexpr int kCAMinTrackLength = 4;
34inline constexpr std::array<float, ITSNLayers> kITSLookupZHalfExtent{
35 16.333f + 1.f, 16.333f + 1.f, 16.333f + 1.f,
36 42.140f + 1.f, 42.140f + 1.f, 73.745f + 1.f, 73.745f + 1.f};
37} // namespace o2::itsmft::tracking
38
39namespace o2::itsmft
40{
41
44template <int Detector>
45struct TrackerParamConfig : public o2::conf::ConfigurableParamHelper<TrackerParamConfig<Detector>> {
46 static_assert(Detector == o2::detectors::DetID::ITS || Detector == o2::detectors::DetID::MFT);
47 static constexpr int NLayers = Detector == o2::detectors::DetID::ITS ? tracking::ITSNLayers : tracking::MFTNLayers;
49 static constexpr int MaxTrackLength = NLayers;
50
51 int addTimeError[NLayers] = {0}; // Tracking window width in BC.
52 int minTrackLgtIter[tracking::MaxIter] = {}; // Async minimum track length per iteration; <=0 keeps preset.
53 uint32_t startLayerMask[tracking::MaxIter] = {}; // Per-pass starts; 0 keeps the preset, bits must name detector layers.
54 int maxHolesIter[tracking::MaxIter] = {}; // Maximum missing internal layers per iteration.
55 uint16_t holeLayerMask = 0; // Detector layers that may be absent from accepted tracks.
56 float minPtIterLgt[tracking::MaxIter * (MaxTrackLength - MinTrackLength + 1)] = {}; // Async minimum pT by track length; <=0 keeps preset.
57 float sysErr2Row[NLayers] = {0}; // Additional sensor-row variance for cluster covariance and candidate windows (cm^2).
58 float sysErr2Col[NLayers] = {0}; // Additional sensor-column variance for cluster covariance and candidate windows (cm^2).
60 float maxChi2NDF = -1.f;
61 float nSigmaCut = -1.f;
62 float minPt = -1.f;
63 float pvRes = -1.f;
64 int LUTbinsU = 64; // Longitudinal ITS bins or radial MFT bins (cm).
65 int LUTbinsV = Detector == o2::detectors::DetID::ITS ? 32 : 128; // Phi bins (radians).
66 bool useDiamond = Detector == o2::detectors::DetID::MFT;
67 float diamondPos[3] = {0.f, 0.f, 0.f}; // Diamond vertex position (cm).
68 int trackingMode = -1; // -1: use --tracking-mode; 0: sync, 1: async, 2: cosmics, 3: off.
69 int nIterations = -1; // -1 uses all mode preset passes; otherwise a positive limit no larger than the preset.
70 bool shiftRefToCluster{true}; // Shift the linearization reference to the cluster after update.
71 bool repeatRefitOut{false}; // Repeat outward refit using the inward refit as a seed.
72 bool createArtefactLabels{false}; // Create labels for artefacts on the fly.
73
74 int nThreads = 1;
75 size_t maxMemory = std::numeric_limits<size_t>::max();
76 bool dropTFUponFailure = false;
77
78 // Selection of tracks sharing clusters.
79 bool allowSharingFirstCluster = false; // Allow sharing the first cluster.
80 float sharedClusterMaxDeltaPhi = 0.05f; // Maximum delta phi at the cluster.
81 float sharedClusterMaxDeltaEta = 0.03f; // Maximum delta eta at the cluster.
82 bool sharedClusterOppositeSign = false; // Require opposite-sign tracklets.
83
84 O2ParamDef(TrackerParamConfig, Detector == o2::detectors::DetID::ITS ? "ITSCommonCATrackerParam" : "MFTCATrackerParam");
85};
86
87template <int Detector>
89
92
93} // namespace o2::itsmft
94
95#endif /* ALICEO2_ITSMFT_TRACKING_CONFIG_PARAM_H_ */
constexpr int MaxIter
Maximum CA iterations.
constexpr std::array< float, ITSNLayers > kITSLookupZHalfExtent
constexpr int MFTNLayers
MFT CA half-disk layer count.
constexpr int ITSNLayers
ITS CA layer count.
constexpr int kCAMinTrackLength
Minimum accepted CA track length for the detector presets.
int maxHolesIter[tracking::MaxIter]
int minTrackLgtIter[tracking::MaxIter]
float minPtIterLgt[tracking::MaxIter *(MaxTrackLength - MinTrackLength+1)]
O2ParamDef(TrackerParamConfig, Detector==o2::detectors::DetID::ITS ? "ITSCommonCATrackerParam" :"MFTCATrackerParam")
uint32_t startLayerMask[tracking::MaxIter]