Skip to content

Commit 356d989

Browse files
author
Henrik Fribert
committed
Feat: Added configurables to only load range of LUT bins in trackerPID
1 parent d72611b commit 356d989

File tree

1 file changed

+44
-23
lines changed

1 file changed

+44
-23
lines changed

ALICE3/TableProducer/OTF/onTheFlyTrackerPid.cxx

Lines changed: 44 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -91,20 +91,32 @@ static constexpr size_t kMaxValidHitsForTruncation56 = 3;
9191
static constexpr size_t kMaxValidHitsForTruncation34 = 2;
9292
static constexpr size_t kMaxValidHitsForTruncation12 = 1;
9393

94+
// Constants for LUT binning
95+
// To do: Include in LUT header or similar
96+
static constexpr int kLUTEtaBins = 50;
97+
static constexpr float kLUTEtaMin = -2.5f;
98+
static constexpr float kLUTEtaMax = 2.5f;
99+
static constexpr int kLUTPtBins = 500;
100+
static constexpr float kLUTPtMin = 0.0f;
101+
static constexpr float kLUTPtMax = 10.0f;
102+
94103
class ToTLUT
95104
{
96105
public:
97-
ToTLUT(float truncationFractionVal, int maxLayers, int etaBins, float etaMin, float etaMax, int ptBins, float ptMin, float ptMax)
98-
: mTruncationFraction(truncationFractionVal),
99-
mMaxLayers(maxLayers),
100-
mEtaBins(etaBins),
101-
mEtaMin(etaMin),
102-
mEtaMax(etaMax),
103-
mPtBins(ptBins),
104-
mPtMin(ptMin),
105-
mPtMax(ptMax),
106-
mEtaBinWidth((etaMax - etaMin) / etaBins),
107-
mPtBinWidth((ptMax - ptMin) / ptBins)
106+
ToTLUT(int maxLayers, float analysisEtaMinVal = 0.0f, float analysisEtaMaxVal = 1.0f, float analysisPtMinVal = 0.0f, float analysisPtMaxVal = 10.0f)
107+
: mMaxLayers(maxLayers),
108+
mAnalysisEtaMin(analysisEtaMinVal),
109+
mAnalysisEtaMax(analysisEtaMaxVal),
110+
mAnalysisPtMin(analysisPtMinVal),
111+
mAnalysisPtMax(analysisPtMaxVal),
112+
mEtaBins(kLUTEtaBins),
113+
mEtaMin(kLUTEtaMin),
114+
mEtaMax(kLUTEtaMax),
115+
mPtBins(kLUTPtBins),
116+
mPtMin(kLUTPtMin),
117+
mPtMax(kLUTPtMax),
118+
mEtaBinWidth((kLUTEtaMax - kLUTEtaMin) / kLUTEtaBins),
119+
mPtBinWidth((kLUTPtMax - kLUTPtMin) / kLUTPtBins)
108120
{
109121
mPdgToIndexMap.reserve(10);
110122
mIndexToPdgMap.reserve(10);
@@ -179,9 +191,21 @@ class ToTLUT
179191
for (int etaBin = 0; etaBin < mEtaBins; ++etaBin) {
180192
float etaMinBin = mEtaMin + etaBin * mEtaBinWidth;
181193
float etaMaxBin = etaMinBin + mEtaBinWidth;
194+
195+
float etaCenter = (etaMinBin + etaMaxBin) / 2.0f;
196+
if (std::abs(etaCenter) < mAnalysisEtaMin || std::abs(etaCenter) > mAnalysisEtaMax) {
197+
continue;
198+
}
199+
182200
for (int ptBin = 0; ptBin < mPtBins; ++ptBin) {
183201
float ptMinBin = mPtMin + ptBin * mPtBinWidth;
184202
float ptMaxBin = ptMinBin + mPtBinWidth;
203+
float ptCenter = (ptMinBin + ptMaxBin) / 2.0f;
204+
205+
if (ptCenter < mAnalysisPtMin || ptCenter >= mAnalysisPtMax) {
206+
continue;
207+
}
208+
185209
TString histName = Form("tot_%d_barrel%d_eta%.2f-%.2f_pt%.2f-%.2f", pdg, layer, etaMinBin, etaMaxBin, ptMinBin, ptMaxBin);
186210

187211
TH1F* histFromFile = dynamic_cast<TH1F*>(f->Get(histName));
@@ -252,8 +276,11 @@ class ToTLUT
252276
std::unordered_map<int, int> mPdgToIndexMap;
253277
std::vector<int> mIndexToPdgMap;
254278

255-
float mTruncationFraction;
256279
int mMaxLayers;
280+
float mAnalysisEtaMin;
281+
float mAnalysisEtaMax;
282+
float mAnalysisPtMin;
283+
float mAnalysisPtMax;
257284
int mEtaBins;
258285
float mEtaMin;
259286
float mEtaMax;
@@ -380,16 +407,13 @@ struct OnTheFlyTrackerPid {
380407
Configurable<std::string> lutTotHe{"lutTotHe", "ccdb:Users/h/hfribert/ToT_LUTs", "ToT LUT for helium-3"};
381408
Configurable<std::string> lutTotAl{"lutTotAl", "ccdb:Users/h/hfribert/ToT_LUTs", "ToT LUT for alphas"};
382409

383-
Configurable<float> truncationFraction{"truncationFraction", 0.80f, "Fraction of lower entries to consider for truncated standard deviation"};
384410
Configurable<float> dBz{"dBz", 20, "magnetic field (kilogauss) for track propagation"};
385411
Configurable<int> maxBarrelLayers{"maxBarrelLayers", 11, "Maximum number of barrel layers"};
386-
Configurable<int> etaBins{"etaBins", 50, "Number of eta bins for LUTs and histograms"};
387-
Configurable<float> etaMin{"etaMin", -2.5f, "Minimum eta value"};
388-
Configurable<float> etaMax{"etaMax", 2.5f, "Maximum eta value"};
389-
Configurable<int> ptBins{"ptBins", 500, "Number of pT bins for LUTs (LUTs are pT-based)"};
390-
Configurable<float> ptMin{"ptMin", 0.0f, "Minimum pT value for LUT binning"};
391-
Configurable<float> ptMax{"ptMax", 10.0f, "Maximum pT value for LUT binning"};
392412
Configurable<int> numLogBins{"numLogBins", 200, "Number of logarithmic momentum bins"};
413+
Configurable<float> analysisEtaMin{"analysisEtaMin", 0.0f, "Minimum |eta| for LUT loading optimization"};
414+
Configurable<float> analysisEtaMax{"analysisEtaMax", 1.0f, "Maximum |eta| for LUT loading optimization"};
415+
Configurable<float> analysisPtMin{"analysisPtMin", 0.0f, "Minimum pT (GeV/c) for LUT loading optimization"};
416+
Configurable<float> analysisPtMax{"analysisPtMax", 10.0f, "Maximum pT (GeV/c) for LUT loading optimization"};
393417

394418
std::vector<double> mLogBins;
395419

@@ -416,9 +440,7 @@ struct OnTheFlyTrackerPid {
416440
<< "). Please adjust maxBarrelLayers.";
417441
}
418442

419-
mToTLUT = std::make_unique<ToTLUT>(truncationFraction.value, maxBarrelLayers.value,
420-
etaBins.value, etaMin.value, etaMax.value,
421-
ptBins.value, ptMin.value, ptMax.value);
443+
mToTLUT = std::make_unique<ToTLUT>(maxBarrelLayers.value, analysisEtaMin.value, analysisEtaMax.value, analysisPtMin.value, analysisPtMax.value);
422444

423445
mToTLUT->setCcdbManager(ccdb.operator->());
424446

@@ -526,7 +548,6 @@ struct OnTheFlyTrackerPid {
526548
aod::McParticles const& /*mcParticles*/,
527549
aod::McCollisions const& /*mcCollisions*/)
528550
{
529-
530551
o2::dataformats::VertexBase mcPvVtx({0.0f, 0.0f, 0.0f}, {0.});
531552

532553
if (collision.has_mcCollision()) {

0 commit comments

Comments
 (0)