Skip to content

Commit c4a8252

Browse files
committed
get rid of magic constants in Tools/KFUtilities.h
1 parent 254a528 commit c4a8252

File tree

1 file changed

+19
-13
lines changed

1 file changed

+19
-13
lines changed

Tools/KFparticle/KFUtilities.h

Lines changed: 19 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,12 @@
4343
#include <stdexcept>
4444
#include <utility>
4545

46+
constexpr float ArbitrarySmallNumber{1e-8f};
47+
constexpr float ArbitraryHugeNumber{1e8f};
48+
constexpr float UndefLdLValue{9999.f};
49+
constexpr int NumberOfMomentumComponents{3};
50+
constexpr int NumberOfCovMatrixComponents{21};
51+
4652
/// @brief Function to create a KFPVertex from the collision table in the AO2Ds.
4753
/// The Multiplicity table is required to set the number of real PV Contributors
4854
/// This function works only for Run 3 data.
@@ -72,7 +78,7 @@ KFPTrack createKFPTrack(const o2::track::TrackParametrizationWithError<float>& t
7278
{
7379
std::array<float, 3> trkpos_par{};
7480
std::array<float, 3> trkmom_par{};
75-
std::array<float, 21> trk_cov{};
81+
std::array<float, NumberOfCovMatrixComponents> trk_cov{};
7682
trackparCov.getXYZGlo(trkpos_par);
7783
trackparCov.getPxPyPzGlo(trkmom_par);
7884
trackparCov.getCovXYZPxPyPzGlo(trk_cov);
@@ -126,12 +132,12 @@ KFParticle createKFParticleFromTrackParCov(const o2::track::TrackParametrization
126132
float xyzpxpypz[6];
127133
trackparCov.getPxPyPzGlo(pxpypz);
128134
trackparCov.getXYZGlo(xyz);
129-
for (int i{0}; i < 3; ++i) {
135+
for (int i{0}; i < NumberOfMomentumComponents; ++i) {
130136
xyzpxpypz[i] = xyz[i];
131137
xyzpxpypz[i + 3] = pxpypz[i];
132138
}
133139

134-
std::array<float, 21> cv{};
140+
std::array<float, NumberOfCovMatrixComponents> cv{};
135141
try {
136142
trackparCov.getCovXYZPxPyPzGlo(cv);
137143
} catch (std::runtime_error& e) {
@@ -162,7 +168,7 @@ KFParticle createKFParticleFromTrackParCov(const o2::track::TrackParametrization
162168
o2::track::TrackParCov getTrackParCovFromKFP(const KFParticle& kfParticle, const o2::track::PID pid, const int sign)
163169
{
164170
std::array<float, 3> xyz{}, pxpypz{};
165-
std::array<float, 21> cv{};
171+
std::array<float, NumberOfCovMatrixComponents> cv{};
166172

167173
// get parameters from kfParticle
168174
xyz[0] = kfParticle.GetX();
@@ -173,7 +179,7 @@ o2::track::TrackParCov getTrackParCovFromKFP(const KFParticle& kfParticle, const
173179
pxpypz[2] = kfParticle.GetPz();
174180

175181
// set covariance matrix elements (lower triangle)
176-
for (int i = 0; i < 21; i++) {
182+
for (int i = 0; i < NumberOfCovMatrixComponents; i++) {
177183
cv[i] = kfParticle.GetCovariance(i);
178184
}
179185

@@ -293,11 +299,11 @@ float ldlFromKF(KFParticle kfpParticle, KFParticle PV)
293299
const float dz_particle = PV.GetZ() - kfpParticle.GetZ();
294300
float l_particle = std::sqrt(dx_particle * dx_particle + dy_particle * dy_particle + dz_particle * dz_particle);
295301
float dl_particle = (PV.GetCovariance(0) + kfpParticle.GetCovariance(0)) * dx_particle * dx_particle + (PV.GetCovariance(2) + kfpParticle.GetCovariance(2)) * dy_particle * dy_particle + (PV.GetCovariance(5) + kfpParticle.GetCovariance(5)) * dz_particle * dz_particle + 2 * ((PV.GetCovariance(1) + kfpParticle.GetCovariance(1)) * dx_particle * dy_particle + (PV.GetCovariance(3) + kfpParticle.GetCovariance(3)) * dx_particle * dz_particle + (PV.GetCovariance(4) + kfpParticle.GetCovariance(4)) * dy_particle * dz_particle);
296-
if (std::fabs(l_particle) < 1.e-8f)
297-
l_particle = 1.e-8f;
298-
dl_particle = dl_particle < 0.f ? 1.e8f : std::sqrt(dl_particle) / l_particle;
302+
if (std::fabs(l_particle) < ArbitrarySmallNumber)
303+
l_particle = ArbitrarySmallNumber;
304+
dl_particle = dl_particle < 0.f ? ArbitraryHugeNumber : std::sqrt(dl_particle) / l_particle;
299305
if (dl_particle == 0.)
300-
return 9999.;
306+
return UndefLdLValue;
301307
return l_particle / dl_particle;
302308
}
303309

@@ -311,11 +317,11 @@ float ldlXYFromKF(KFParticle kfpParticle, KFParticle PV)
311317
const float dy_particle = PV.GetY() - kfpParticle.GetY();
312318
float l_particle = std::sqrt(dx_particle * dx_particle + dy_particle * dy_particle);
313319
float dl_particle = (PV.GetCovariance(0) + kfpParticle.GetCovariance(0)) * dx_particle * dx_particle + (PV.GetCovariance(2) + kfpParticle.GetCovariance(2)) * dy_particle * dy_particle + 2 * ((PV.GetCovariance(1) + kfpParticle.GetCovariance(1)) * dx_particle * dy_particle);
314-
if (std::fabs(l_particle) < 1.e-8f)
315-
l_particle = 1.e-8f;
316-
dl_particle = dl_particle < 0.f ? 1.e8f : std::sqrt(dl_particle) / l_particle;
320+
if (std::fabs(l_particle) < ArbitrarySmallNumber)
321+
l_particle = ArbitrarySmallNumber;
322+
dl_particle = dl_particle < 0.f ? ArbitraryHugeNumber : std::sqrt(dl_particle) / l_particle;
317323
if (dl_particle == 0.)
318-
return 9999.;
324+
return UndefLdLValue;
319325
return l_particle / dl_particle;
320326
}
321327

0 commit comments

Comments
 (0)