From 2e5251793ce80cb92acb8728c8983651bc26790a Mon Sep 17 00:00:00 2001 From: "s.zharko@gsi.de" <s.zharko@gsi.de> Date: Mon, 2 May 2022 19:49:22 +0200 Subject: [PATCH] L1Algo: replaced preproc. macro USE_RL_TABLE with constexpr flag L1Parameters::kIfUseRadLengthTable --- reco/L1/L1Algo/L1Algo.h | 2 +- reco/L1/L1Algo/L1CATrackFinder.cxx | 77 ++++++----- reco/L1/L1Algo/L1Parameters.h | 20 ++- reco/L1/L1Algo/L1TrackFitter.cxx | 155 ++++++++++++----------- reco/L1/ParticleFinder/CbmL1PFFitter.cxx | 28 ++-- 5 files changed, 156 insertions(+), 126 deletions(-) diff --git a/reco/L1/L1Algo/L1Algo.h b/reco/L1/L1Algo/L1Algo.h index 09705fc554..f7a386850f 100644 --- a/reco/L1/L1Algo/L1Algo.h +++ b/reco/L1/L1Algo/L1Algo.h @@ -28,7 +28,7 @@ class L1AlgoDraw; #define LAST_ITERATION kAllSecIter #define FIND_GAPED_TRACKS // use triplets with gaps -#define USE_RL_TABLE +// =====>dispatched<===== // #define USE_RL_TABLE #ifndef TRACKS_FROM_TRIPLETS #define EXTEND_TRACKS #endif diff --git a/reco/L1/L1Algo/L1CATrackFinder.cxx b/reco/L1/L1Algo/L1CATrackFinder.cxx index e3814f6d3b..fa47f7b05a 100644 --- a/reco/L1/L1Algo/L1CATrackFinder.cxx +++ b/reco/L1/L1Algo/L1CATrackFinder.cxx @@ -323,11 +323,12 @@ inline void L1Algo::f11( /// input 1st stage of singlet search for (int ista = 0; ista <= istal - 1; ista++) { -#ifdef USE_RL_TABLE - fit.L1AddMaterial(T, fRadThick[ista].GetRadThick(T.x, T.y), fMaxInvMom, 1); -#else // not USE_RL_TABLE - fit.L1AddMaterial(T, vStations[ista].materialInfo, fMaxInvMom, 1); -#endif // USE_RL_TABLE + if constexpr (L1Parameters::kIfUseRadLengthTable) { + fit.L1AddMaterial(T, fRadThick[ista].GetRadThick(T.x, T.y), fMaxInvMom, 1); + } + else { + fit.L1AddMaterial(T, vStations[ista].materialInfo, fMaxInvMom, 1); + } if (ista == NMvdStations - 1) fit.L1AddPipeMaterial(T, fMaxInvMom, 1); } @@ -359,13 +360,14 @@ inline void L1Algo::f11( /// input 1st stage of singlet search #endif // BEGIN_FROM_TARGET -#ifdef USE_RL_TABLE - if (fTrackingMode != kMcbm) fit.L1AddMaterial(T, fRadThick[istal].GetRadThick(T.x, T.y), fMaxInvMom, 1); - if (fTrackingMode == kGlobal || fTrackingMode == kMcbm) - fit.L1AddThickMaterial(T, fRadThick[istal].GetRadThick(T.x, T.y), fMaxInvMom, 1, stal.materialInfo.thick, 1); -#else // not USE_RL_TABLE - fit.L1AddMaterial(T, stal.materialInfo, fMaxInvMom, 1); -#endif // USE_RL_TABLE + if constexpr (L1Parameters::kIfUseRadLengthTable) { + if (fTrackingMode != kMcbm) fit.L1AddMaterial(T, fRadThick[istal].GetRadThick(T.x, T.y), fMaxInvMom, 1); + if (fTrackingMode == kGlobal || fTrackingMode == kMcbm) + fit.L1AddThickMaterial(T, fRadThick[istal].GetRadThick(T.x, T.y), fMaxInvMom, 1, stal.materialInfo.thick, 1); + } + else { + fit.L1AddMaterial(T, stal.materialInfo, fMaxInvMom, 1); + } if ((istam >= NMvdStations) && (istal <= NMvdStations - 1)) { fit.L1AddPipeMaterial(T, fMaxInvMom, 1); } fvec dz = zstam - zl; @@ -677,15 +679,17 @@ inline void L1Algo::f30( // input FilterTime(T2, timeM, timeMEr, stam.timeInfo); -#ifdef USE_RL_TABLE - if (fTrackingMode != kMcbm && fTrackingMode != kGlobal) - fit.L1AddMaterial(T2, fRadThick[istam].GetRadThick(T2.x, T2.y), T2.qp, 1); + if constexpr (L1Parameters::kIfUseRadLengthTable) { + if (fTrackingMode != kMcbm && fTrackingMode != kGlobal) + fit.L1AddMaterial(T2, fRadThick[istam].GetRadThick(T2.x, T2.y), T2.qp, 1); - if (fTrackingMode == kGlobal || fTrackingMode == kMcbm) - fit.L1AddThickMaterial(T2, fRadThick[istam].GetRadThick(T2.x, T2.y), fMaxInvMom, 1, stam.materialInfo.thick, 1); -#else // not USE_RL_TABLE - fit.L1AddMaterial(T2, stam.materialInfo, T2.qp, 1); -#endif // USE_RL_TABLE + if (fTrackingMode == kGlobal || fTrackingMode == kMcbm) + fit.L1AddThickMaterial(T2, fRadThick[istam].GetRadThick(T2.x, T2.y), fMaxInvMom, 1, stam.materialInfo.thick, + 1); + } + else { + fit.L1AddMaterial(T2, stam.materialInfo, T2.qp, 1); + } if ((istar >= NMvdStations) && (istam <= NMvdStations - 1)) { fit.L1AddPipeMaterial(T2, T2.qp, 1); } fvec dz2 = star.z - T2.z; @@ -1025,11 +1029,12 @@ inline void L1Algo::f32( // input // TODO not updated after gaps introduction // fit for (int ih = 1; ih < NHits; ++ih) { L1Extrapolate(T, z[ih], T.qp, fld); -#ifdef USE_RL_TABLE - fit.L1AddMaterial(T, fRadThick[ista[ih]].GetRadThick(T.x, T.y), T.qp, 1); -#else // not USE_RL_TABLE - fit.L1AddMaterial(T, sta[ih].materialInfo, T.qp, 1); -#endif // USE_RL_TABLE + if constexpr (L1Parameters::kIfUseRadLengthTable) { + fit.L1AddMaterial(T, fRadThick[ista[ih]].GetRadThick(T.x, T.y), T.qp, 1); + } + else { + fit.L1AddMaterial(T, sta[ih].materialInfo, T.qp, 1); + } if (ista[ih] == NMvdStations - 1) fit.L1AddPipeMaterial(T, T.qp, 1); L1Filter(T, sta[ih].frontInfo, u[ih]); @@ -1060,11 +1065,12 @@ inline void L1Algo::f32( // input // TODO not updated after gaps introduction // L1Filter( T, sta[ih].backInfo, v[ih] ); for (ih = NHits - 2; ih >= 0; ih--) { L1Extrapolate(T, z[ih], T.qp, fld); -#ifdef USE_RL_TABLE - fit.L1AddMaterial(T, fRadThick[ista[ih]].GetRadThick(T.x, T.y), T.qp, 1); -#else // not USE_RL_TABLE - fit.L1AddMaterial(T, sta[ih].materialInfo, T.qp, 1); -#endif // USE_RL_TABLE + if constexpr (L1Parameters::kIfUseRadLengthTable) { + fit.L1AddMaterial(T, fRadThick[ista[ih]].GetRadThick(T.x, T.y), T.qp, 1); + } + else { + fit.L1AddMaterial(T, sta[ih].materialInfo, T.qp, 1); + } if (ista[ih] == NMvdStations) fit.L1AddPipeMaterial(T, T.qp, 1); L1Filter(T, sta[ih].frontInfo, u[ih]); @@ -1091,11 +1097,12 @@ inline void L1Algo::f32( // input // TODO not updated after gaps introduction // L1Filter( T, sta[ih].backInfo, v[ih] ); for (ih = 1; ih < NHits; ++ih) { L1Extrapolate(T, z[ih], T.qp, fld); -#ifdef USE_RL_TABLE - fit.L1AddMaterial(T, fRadThick[ista[ih]].GetRadThick(T.x, T.y), T.qp, 1); -#else // not USE_RL_TABLE - fit.L1AddMaterial(T, sta[ih].materialInfo, T.qp, 1); -#endif // USE_RL_TABLE + if constexpr (L1Parameters::kIfUseRadLengthTable) { + fit.L1AddMaterial(T, fRadThick[ista[ih]].GetRadThick(T.x, T.y), T.qp, 1); + } + else { + fit.L1AddMaterial(T, sta[ih].materialInfo, T.qp, 1); + } if (ista[ih] == NMvdStations + 1) fit.L1AddPipeMaterial(T, T.qp, 1); L1Filter(T, sta[ih].frontInfo, u[ih]); diff --git a/reco/L1/L1Algo/L1Parameters.h b/reco/L1/L1Algo/L1Parameters.h index e52ca5cede..c779f7436d 100644 --- a/reco/L1/L1Algo/L1Parameters.h +++ b/reco/L1/L1Algo/L1Parameters.h @@ -20,9 +20,14 @@ class L1Parameters { public: - //-------------------------------------------------------------------------------------------------------// - // Compile time constants // - //-------------------------------------------------------------------------------------------------------// + ///////////////////////////// + // COMPILE TIME CONSTANTS // + /////////////////////////// + + // + // Array sizes + // + /// Amount of coefficients in field approximations static constexpr int kMaxNFieldApproxCoefficients {21}; // TODO: May be it is better to use the polynomial // order instead of this? @@ -41,6 +46,15 @@ public: static constexpr int kAssertionLevel {0}; ///> Assertion level + // + // Compile control flags + // + + /// Selector for the radiation length tables usage + /// true - Radiational tables will be used, + /// false - basic station material info is used + static constexpr bool kIfUseRadLengthTable {true}; + public: /// Default constructor L1Parameters() = default; diff --git a/reco/L1/L1Algo/L1TrackFitter.cxx b/reco/L1/L1Algo/L1TrackFitter.cxx index 3a385070b7..a8354b1932 100644 --- a/reco/L1/L1Algo/L1TrackFitter.cxx +++ b/reco/L1/L1Algo/L1TrackFitter.cxx @@ -135,11 +135,12 @@ void L1Algo::KFTrackFitter_simple() // TODO: Add pipe. L1ExtrapolateLine(T, hit.z); // T.L1Extrapolate( sta.z, qp0, fld ); // L1Extrapolate( T, hit.z, qp0, fld ); -#ifdef USE_RL_TABLE - fit.L1AddMaterial(T, fRadThick[i].GetRadThick(T.x, T.y), qp0, ONE); -#else - fit.L1AddMaterial(T, sta.materialInfo, qp0, ONE); -#endif + if constexpr (L1Parameters::kIfUseRadLengthTable) { + fit.L1AddMaterial(T, fRadThick[i].GetRadThick(T.x, T.y), qp0, ONE); + } + else { + fit.L1AddMaterial(T, sta.materialInfo, qp0, ONE); + } // if (ista==NMvdStations-1) fit.L1AddPipeMaterial( T, qp0, 1); @@ -273,11 +274,12 @@ void L1Algo::KFTrackFitter_simple() // TODO: Add pipe. L1ExtrapolateLine(T, hit.z); // T.L1Extrapolate( sta.z, qp0, fld ); // L1Extrapolate( T, hit.z, qp0, fld ); -#ifdef USE_RL_TABLE - fit.L1AddMaterial(T, fRadThick[i].GetRadThick(T.x, T.y), qp0, ONE); -#else - fit.L1AddMaterial(T, sta.materialInfo, qp0, ONE); -#endif + if constexpr (L1Parameters::kIfUseRadLengthTable) { + fit.L1AddMaterial(T, fRadThick[i].GetRadThick(T.x, T.y), qp0, ONE); + } + else { + fit.L1AddMaterial(T, sta.materialInfo, qp0, ONE); + } // if (ista==NMvdStations) fit.L1AddPipeMaterial( T, qp0, 1); L1Filter(T, sta.frontInfo, u); L1Filter(T, sta.backInfo, v); @@ -519,16 +521,17 @@ void L1Algo::L1KFTrackFitter() T1.L1AddPipeMaterial(qp01, wIn); T1.EnergyLossCorrection(fit.PipeRadThick, qp01, fvec(1.f), wIn); } -#ifdef USE_RL_TABLE - fit.L1AddMaterial(T, fRadThick[i].GetRadThick(T.x, T.y), qp0, wIn); - fit.EnergyLossCorrection(T, fRadThick[i].GetRadThick(T.x, T.y), qp0, fvec(1.f), wIn); - - T1.L1AddMaterial(fRadThick[i].GetRadThick(T1.fx, T1.fy), qp01, wIn); - T1.EnergyLossCorrection(fRadThick[i].GetRadThick(T1.fx, T1.fy), qp01, fvec(1.f), wIn); -#else - fit.L1AddMaterial(T, sta[i].materialInfo, qp0, wIn); - T1.L1AddMaterial(sta[i].materialInfo, qp01, wIn); -#endif + if constexpr (L1Parameters::kIfUseRadLengthTable) { + fit.L1AddMaterial(T, fRadThick[i].GetRadThick(T.x, T.y), qp0, wIn); + fit.EnergyLossCorrection(T, fRadThick[i].GetRadThick(T.x, T.y), qp0, fvec(1.f), wIn); + + T1.L1AddMaterial(fRadThick[i].GetRadThick(T1.fx, T1.fy), qp01, wIn); + T1.EnergyLossCorrection(fRadThick[i].GetRadThick(T1.fx, T1.fy), qp01, fvec(1.f), wIn); + } + else { + fit.L1AddMaterial(T, sta[i].materialInfo, qp0, wIn); + T1.L1AddMaterial(sta[i].materialInfo, qp01, wIn); + } L1UMeasurementInfo info = sta[i].frontInfo; info.sigma2 = d_u[i] * d_u[i]; @@ -678,15 +681,16 @@ void L1Algo::L1KFTrackFitter() T1.L1AddPipeMaterial(qp01, wIn); T1.EnergyLossCorrection(fit.PipeRadThick, qp01, fvec(-1.f), wIn); } -#ifdef USE_RL_TABLE - fit.L1AddMaterial(T, fRadThick[i].GetRadThick(T.x, T.y), qp0, wIn); - fit.EnergyLossCorrection(T, fRadThick[i].GetRadThick(T.x, T.y), qp0, fvec(-1.f), wIn); - - T1.L1AddMaterial(fRadThick[i].GetRadThick(T1.fx, T1.fy), qp01, wIn); - T1.EnergyLossCorrection(fRadThick[i].GetRadThick(T1.fx, T1.fy), qp01, fvec(-1.f), wIn); -#else - fit.L1AddMaterial(T, sta[i].materialInfo, qp0, wIn); -#endif + if constexpr (L1Parameters::kIfUseRadLengthTable) { + fit.L1AddMaterial(T, fRadThick[i].GetRadThick(T.x, T.y), qp0, wIn); + fit.EnergyLossCorrection(T, fRadThick[i].GetRadThick(T.x, T.y), qp0, fvec(-1.f), wIn); + + T1.L1AddMaterial(fRadThick[i].GetRadThick(T1.fx, T1.fy), qp01, wIn); + T1.EnergyLossCorrection(fRadThick[i].GetRadThick(T1.fx, T1.fy), qp01, fvec(-1.f), wIn); + } + else { + fit.L1AddMaterial(T, sta[i].materialInfo, qp0, wIn); + } L1Filter(T, sta[i].frontInfo, u[i], w1); L1Filter(T, sta[i].backInfo, v[i], w1); @@ -960,13 +964,15 @@ void L1Algo::L1KFTrackFitterMuch() fldZ2 = fldZ1; fldB1 = fldB0; fldZ1 = fldZ0; -#ifdef USE_RL_TABLE - T1.EnergyLossCorrection(fRadThick[i].GetRadThick(T1.fx, T1.fy), qp01, fvec(-1.f), wIn); - T1.L1AddThickMaterial(fRadThick[i].GetRadThick(T1.fx, T1.fy), qp01, wIn, sta[i].materialInfo.thick, 1); -#else - // L1AddMaterial( T, sta[i].materialInfo, qp0, wIn ); -#endif + if constexpr (L1Parameters::kIfUseRadLengthTable) { + T1.EnergyLossCorrection(fRadThick[i].GetRadThick(T1.fx, T1.fy), qp01, fvec(-1.f), wIn); + + T1.L1AddThickMaterial(fRadThick[i].GetRadThick(T1.fx, T1.fy), qp01, wIn, sta[i].materialInfo.thick, 1); + } + else { + // L1AddMaterial( T, sta[i].materialInfo, qp0, wIn ); + } L1UMeasurementInfo info = sta[i].frontInfo; info.sigma2 = d_x[i] * d_x[i]; @@ -1033,24 +1039,25 @@ void L1Algo::L1KFTrackFitterMuch() // T1.ExtrapolateLine( z_last, &w1); // L1ExtrapolateLine( T, z_last); -#ifdef USE_RL_TABLE - if (i == 11 || i == 14 || i == 17) - T1.EnergyLossCorrectionIron(fRadThick[i].GetRadThick(T1.fx, T1.fy) / (nofSteps + 1), qp01, fvec(-1.f), - wIn); - if (i == 8) - T1.EnergyLossCorrectionCarbon(fRadThick[i].GetRadThick(T1.fx, T1.fy) / (nofSteps + 1), qp01, fvec(-1.f), + if constexpr (L1Parameters::kIfUseRadLengthTable) { + if (i == 11 || i == 14 || i == 17) + T1.EnergyLossCorrectionIron(fRadThick[i].GetRadThick(T1.fx, T1.fy) / (nofSteps + 1), qp01, fvec(-1.f), wIn); - if (i == 9 || i == 10 || i == 12 || i == 13 || i == 15 || i == 16 || i == 18 || i == 19) - T1.EnergyLossCorrectionAl(fRadThick[i].GetRadThick(T1.fx, T1.fy) / (nofSteps + 1), qp01, fvec(-1.f), wIn); - - T1.L1AddThickMaterial(fRadThick[i].GetRadThick(T1.fx, T1.fy) / (nofSteps + fvec(1)), qp01, wIn, - sta[i].materialInfo.thick / (nofSteps + fvec(1)), 1); + if (i == 8) + T1.EnergyLossCorrectionCarbon(fRadThick[i].GetRadThick(T1.fx, T1.fy) / (nofSteps + 1), qp01, fvec(-1.f), + wIn); + if (i == 9 || i == 10 || i == 12 || i == 13 || i == 15 || i == 16 || i == 18 || i == 19) + T1.EnergyLossCorrectionAl(fRadThick[i].GetRadThick(T1.fx, T1.fy) / (nofSteps + 1), qp01, fvec(-1.f), + wIn); - wIn = wIn & (one - mask1); + T1.L1AddThickMaterial(fRadThick[i].GetRadThick(T1.fx, T1.fy) / (nofSteps + fvec(1)), qp01, wIn, + sta[i].materialInfo.thick / (nofSteps + fvec(1)), 1); -#else - fit.L1AddMaterial(T, sta[i].materialInfo, qp0, wIn); -#endif + wIn = wIn & (one - mask1); + } + else { + fit.L1AddMaterial(T, sta[i].materialInfo, qp0, wIn); + } } // T1.ExtrapolateLine( z_last, &w1); @@ -1173,24 +1180,24 @@ void L1Algo::L1KFTrackFitterMuch() T1.ExtrapolateLine(z_cur, &w2); nofSteps1 = nofSteps1 + (one - mask1); -#ifdef USE_RL_TABLE - - if (i == 11 || i == 14 || i == 17) - T1.EnergyLossCorrectionIron(fRadThick[i].GetRadThick(T1.fx, T1.fy) / (nofSteps + 1), qp01, fvec(1.f), w2); - if (i == 8) - T1.EnergyLossCorrectionCarbon(fRadThick[i].GetRadThick(T1.fx, T1.fy) / (nofSteps + 1), qp01, fvec(1.f), + if constexpr (L1Parameters::kIfUseRadLengthTable) { + if (i == 11 || i == 14 || i == 17) + T1.EnergyLossCorrectionIron(fRadThick[i].GetRadThick(T1.fx, T1.fy) / (nofSteps + 1), qp01, fvec(1.f), w2); - if (i == 9 || i == 10 || i == 12 || i == 13 || i == 15 || i == 16 || i == 18) - T1.EnergyLossCorrectionAl(fRadThick[i].GetRadThick(T1.fx, T1.fy) / (nofSteps + 1), qp01, fvec(1.f), w2); - - T1.L1AddThickMaterial(fRadThick[i].GetRadThick(T1.fx, T1.fy) / (nofSteps + fvec(1)), qp01, w2, - sta[i].materialInfo.thick / (nofSteps + fvec(1)), 0); - - w2 = w2 & (one - mask1); - -#else - fit.L1AddMaterial(T, sta[i].materialInfo, qp0, w2); -#endif + if (i == 8) + T1.EnergyLossCorrectionCarbon(fRadThick[i].GetRadThick(T1.fx, T1.fy) / (nofSteps + 1), qp01, fvec(1.f), + w2); + if (i == 9 || i == 10 || i == 12 || i == 13 || i == 15 || i == 16 || i == 18) + T1.EnergyLossCorrectionAl(fRadThick[i].GetRadThick(T1.fx, T1.fy) / (nofSteps + 1), qp01, fvec(1.f), w2); + + T1.L1AddThickMaterial(fRadThick[i].GetRadThick(T1.fx, T1.fy) / (nofSteps + fvec(1)), qp01, w2, + sta[i].materialInfo.thick / (nofSteps + fvec(1)), 0); + + w2 = w2 & (one - mask1); + } + else { + fit.L1AddMaterial(T, sta[i].materialInfo, qp0, w2); + } } //fvec v_mc = fabs(1/qp01)/sqrt(mass2+fabs(1/qp01)*fabs(1/qp01)); @@ -1247,13 +1254,13 @@ void L1Algo::L1KFTrackFitterMuch() // L1Extrapolate( T, z[i], qp0, fld,&w1 ); -#ifdef USE_RL_TABLE - T1.EnergyLossCorrection(fRadThick[i].GetRadThick(T1.fx, T1.fy), qp01, fvec(1.f), wIn); - T1.L1AddThickMaterial(fRadThick[i].GetRadThick(T1.fx, T1.fy), qp01, wIn, sta[i].materialInfo.thick, 0); - -#else - fit.L1AddMaterial(T, sta[i].materialInfo, qp0, wIn); -#endif + if constexpr (L1Parameters::kIfUseRadLengthTable) { + T1.EnergyLossCorrection(fRadThick[i].GetRadThick(T1.fx, T1.fy), qp01, fvec(1.f), wIn); + T1.L1AddThickMaterial(fRadThick[i].GetRadThick(T1.fx, T1.fy), qp01, wIn, sta[i].materialInfo.thick, 0); + } + else { + fit.L1AddMaterial(T, sta[i].materialInfo, qp0, wIn); + } L1UMeasurementInfo info = sta[i].frontInfo; // info.sigma2 = d_u[i] * d_u[i]; diff --git a/reco/L1/ParticleFinder/CbmL1PFFitter.cxx b/reco/L1/ParticleFinder/CbmL1PFFitter.cxx index d3f080747c..436f402dd5 100644 --- a/reco/L1/ParticleFinder/CbmL1PFFitter.cxx +++ b/reco/L1/ParticleFinder/CbmL1PFFitter.cxx @@ -36,7 +36,7 @@ #include "TDatabasePDG.h" #include "KFParticleDatabase.h" -#include "L1Algo.h" +#include "L1Algo.h" // Also defines L1Parameters #include "L1Extrapolation.h" #include "L1Filtration.h" #include "L1Fit.h" @@ -262,12 +262,13 @@ void CbmL1PFFitter::Fit(vector<CbmStsTrack>& Tracks, vector<int>& pidHypo) fit.L1AddPipeMaterial(T, qp0, wIn); fit.EnergyLossCorrection(T, fit.PipeRadThick, qp0, fvec(-1.f), wIn); } -#ifdef USE_RL_TABLE - fit.L1AddMaterial(T, CbmL1::Instance()->algo->fRadThick[i].GetRadThick(T.x, T.y), qp0, wIn); - fit.EnergyLossCorrection(T, CbmL1::Instance()->algo->fRadThick[i].GetRadThick(T.x, T.y), qp0, -1, wIn); -#else - fit.L1AddMaterial(T, sta[i].materialInfo, qp0, wIn); -#endif + if constexpr (L1Parameters::kIfUseRadLengthTable) { + fit.L1AddMaterial(T, CbmL1::Instance()->algo->fRadThick[i].GetRadThick(T.x, T.y), qp0, wIn); + fit.EnergyLossCorrection(T, CbmL1::Instance()->algo->fRadThick[i].GetRadThick(T.x, T.y), qp0, -1, wIn); + } + else { + fit.L1AddMaterial(T, sta[i].materialInfo, qp0, wIn); + } L1Filter(T, sta[i].frontInfo, u[i], w1); L1Filter(T, sta[i].backInfo, v[i], w1); @@ -337,12 +338,13 @@ void CbmL1PFFitter::Fit(vector<CbmStsTrack>& Tracks, vector<int>& pidHypo) fit.L1AddPipeMaterial(T, qp0, wIn); fit.EnergyLossCorrection(T, fit.PipeRadThick, qp0, fvec(1.f), wIn); } -#ifdef USE_RL_TABLE - fit.L1AddMaterial(T, CbmL1::Instance()->algo->fRadThick[i].GetRadThick(T.x, T.y), qp0, wIn); - fit.EnergyLossCorrection(T, CbmL1::Instance()->algo->fRadThick[i].GetRadThick(T.x, T.y), qp0, 1, wIn); -#else - fit.L1AddMaterial(T, sta[i].materialInfo, qp0, wIn); -#endif + if constexpr (L1Parameters::kIfUseRadLengthTable) { + fit.L1AddMaterial(T, CbmL1::Instance()->algo->fRadThick[i].GetRadThick(T.x, T.y), qp0, wIn); + fit.EnergyLossCorrection(T, CbmL1::Instance()->algo->fRadThick[i].GetRadThick(T.x, T.y), qp0, 1, wIn); + } + else { + fit.L1AddMaterial(T, sta[i].materialInfo, qp0, wIn); + } L1Filter(T, sta[i].frontInfo, u[i], w1); L1Filter(T, sta[i].backInfo, v[i], w1); -- GitLab