Project
Loading...
Searching...
No Matches
PVertexerParams.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
13
14#ifndef ALICEO2_PVERTEXER_PARAMS_H
15#define ALICEO2_PVERTEXER_PARAMS_H
16
19
20namespace o2
21{
22namespace vertexing
23{
24
25// These are configurable params for Primary Vertexer
26struct PVertexerParams : public o2::conf::ConfigurableParamHelper<PVertexerParams> {
27 static constexpr float kDefTukey = 4.685f;
28
29 float sysErrY2 = 0.;
30 float sysErrZ2 = 0.;
31
32 // DBSCAN clustering settings
33 float dbscanMaxDist2 = 9.;
34 float dbscanDeltaT = -0.9;
35 float dbscanAdaptCoef = 0.1;
37
40 long maxTimeMSPerCluster = 10000;
41
42 // track selection
44 float dcaTolerance = 1.3;
45 float pullIniCut = 9;
46 float maxTimeErrorMUS = 10.0;
47 float trackMaxX = 5.;
48 int minIBHits = 1.;
49
50 // histogramming and its weigths params
51 float histoBinZSize = 0.05;
52 float histoBinTSize = 0.05;
53 float addTimeSigma2 = 0.1 * 0.1;
54 float addZSigma2 = 0.005 * 0.005;
55
56 // fitting parameters
59 float tukey = kDefTukey;
60 float iniScale2 = 5.;
61 float minScale2 = 1.;
62 float acceptableScale2 = 4.;
63 float maxScale2 = 50;
64 float upscaleFactor = 9.;
66
67 // cleanup
69 bool applyReattachment = true;
70
71 float timeMarginReattach = 1.;
72
73 float maxTDiffDebris = 7.0;
74 float maxZDiffDebris = 1.0;
75 float maxMultRatDebris = 0.05;
76 float maxChi2TZDebris = 2000.;
77 float addTimeSigma2Debris = 0.05 * 0.05;
78 float addZSigma2Debris = 0.005 * 0.005;
79
80 // extra debris reduction cut, ignored if maxTDiffDebrisExtra == 0. The maxTDiffDebrisExtra must not exceed maxTDiffDebris
82 float maxZDiffDebrisExtra = 0.05;
84 float maxChi2TZDebrisExtra = 100.;
86 float addZSigma2DebrisExtra = 1.e-3;
87
88 float maxITSOnlyFraction = 1.0;
89 float minITSOnlyFraction = 0.0;
90 //
91 // MAD clean up (median abs. deviation in T and Z)
92 float maxTMAD = -1.;
93 float minTMAD = -1.;
94 float maxZMAD = -1.;
95 float minZMAD = -1.;
96
97 // validation with externally provided InteractionRecords (e.g. from FT0)
100 float maxTError = 0.2;
101 float minTError = 0.003;
102 float nSigmaTimeCut = 4.;
103 float timeBiasMS = 0;
104 //
105 bool doBCValidation = true;
106 //
107 // stopping condition params
108 float maxChi2Mean = 10.;
110 int maxIterations = 20;
113 bool useTimeInChi2 = true;
114
115 // track vertex time-wise association
116 float nSigmaTimeTrack = 4.;
119
121};
122
123} // namespace vertexing
124} // end namespace o2
125
126#endif
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...
int maxTrialsPerCluster
max unsucessful trials for vertex search per vertex
float iniScale2
initial scale to assign
bool applyDebrisReduction
apply algorithm reducing split vertices
float dbscanMaxSigZCorPoint
max sigZ of the track which can be core points in the DBScan
float dbscanMaxDist2
distance^2 cut (eps^2).
float addTimeSigma2DebrisExtra
increment time error^2 by this amount when calculating vertex-to-vertex chi2
float nSigmaTimeTrack
define track time bracket as +- this number of sigmas of its time resolution
int maxNScaleIncreased
max number of scaling-non-decreasing iterations
float pullIniCut
cut on pull (n^2 sigma) on dca to mean vertex
float histoBinZSize
size of the seedTZ histo bin Z
float maxTDiffDebris
when reducing debris, don't consider vertices separated by time > this value in \mus if >0,...
int minNContributorsForIRcutIni
min multiplicity to reject before cleanup if no matching interaction found (if >= 0)
float dbscanDeltaT
abs. time difference cut, should be ~ 0.5 ITS ROF duration if ITS SA tracks used, if < 0 then the val...
float maxChi2TZDebris
don't consider vertices with mutual chi2 exceeding this (for pp should be ~10)
int minIBHits
min number of IB hits (set to 1 for bwd compatibility, but better use 2)
float meanVertexExtraErrSelection
extra error to meanvertex sigma used when selecting tracks
int minTracksPerVtx
min N tracks per vertex
float minZMAD
min accepted zMAD
float addZSigma2Debris
increment z error^2 by this amount when calculating vertex-to-vertex chi2
float maxChi2Mean
max mean chi2 of vertex to accept
float maxTimeErrorMUS
max time error in ms of the track to account
float maxTError
use min of vertex time error or this for nsigma evaluation
float minScale2
min scaling factor^2
float sysErrY2
systematic error on track Y error
bool doBCValidation
apply validation by interacting BC compatible with the vertex time span
bool applyReattachment
refit vertices reattaching tracks to closest found vertex
float addTimeSigma2
increment time error^2 by this amount when calculating histo weight
float nSigmaTimeCut
eliminate vertex if there is no FT0 or BC signal within this cut
float maxTMAD
max accepted tMAD, not tMAD cleanup if negative
long maxTimeMSPerCluster
max allowed time per TZCluster processing, ms
bool useTimeInChi2
use track-vertex time difference in chi2 calculation
float dcaTolerance
consider tracks within this abs DCA to mean vertex
float maxTDiffDebrisExtra
when reducing debris, don't consider vertices separated by time > this value in \mus if >0,...
int maxVerticesPerCluster
max vertices per time-z cluster to look for
float maxScale2
max slaling factor^2
float timeMarginVertexTime
additive marginal error to \mus vertex time bracket
float histoBinTSize
size of the seedTZ histo bin T
float dbscanAdaptCoef
adapt dbscan minPts for each cluster as minPts=max(minPts, currentSize*dbscanAdaptCoef).
int minNContributorsForIRcut
do not apply IR cut to vertices below IR tagging efficiency threshold
O2ParamDef(PVertexerParams, "pvertexer")
bool useMeanVertexConstraint
use MeanVertex as extra measured point
float minTMAD
min accepted tMAD
float addZSigma2
increment z error^2 by this amount when calculating histo weight
float maxMultRatDebris
don't consider vertices with multiplicity ratio above this
float maxITSOnlyFraction
max ITS-only tracks fraction to accept, recommended value for PbPb = 0.85
float meanVertexExtraErrConstraint
extra error to meanvertex sigma used when applying constrant
float sysErrZ2
systematic error on track Z error
float tukey
Tukey parameter.
float maxZDiffDebris
don't consider vertices separated by Z > this value in cm
float trackMaxX
lowest updtate point must be below this X
float maxChi2TZDebrisExtra
don't consider vertices with mutual chi2 exceeding this (for pp should be ~10)
static constexpr float kDefTukey
def.value for tukey constant
float minTError
don't use error smaller than that (~BC/2/minNContributorsForFT0cut)
float timeBiasMS
relative bias in ms to add to TPCITS-based time stamp
float slowConvergenceFactor
consider convergence as slow if ratio new/old scale2 exceeds it
float maxMultRatDebrisExtra
don't consider vertices with multiplicity ratio above this
float maxZMAD
max accepted zMAD, not zMAD cleanup if negative
float timeMarginReattach
safety marging for track time vs vertex time difference during reattachment
float minITSOnlyFraction
min ITS-only tracks fraction to accept
float addTimeSigma2Debris
increment time error^2 by this amount when calculating vertex-to-vertex chi2
int maxIterations
max iterations per vertex fit
float timeMarginTrackTime
additive marginal error in \mus to track time bracket
int maxNScaleSlowConvergence
max number of weak scaling decrease iterations
float acceptableScale2
if below this factor, try to refit with minScale2
float addZSigma2DebrisExtra
increment z error^2 by this amount when calculating vertex-to-vertex chi2
float maxZDiffDebrisExtra
don't consider vertices separated by Z > this value in cm
float upscaleFactor
factor for upscaling if not candidate is found