Skip to content

Commit 2018ef3

Browse files
author
Henrik Fribert
committed
onTheFlyTracker changes
1 parent 15b0f6a commit 2018ef3

File tree

1 file changed

+41
-45
lines changed

1 file changed

+41
-45
lines changed

ALICE3/TableProducer/OTF/onTheFlyTracker.cxx

Lines changed: 41 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,6 @@ struct OnTheFlyTracker {
113113
Configurable<std::string> lutDe{"lutDe", "lutCovm.de.dat", "LUT for deuterons"};
114114
Configurable<std::string> lutTr{"lutTr", "lutCovm.tr.dat", "LUT for tritons"};
115115
Configurable<std::string> lutHe3{"lutHe3", "lutCovm.he3.dat", "LUT for Helium-3"};
116-
Configurable<std::string> lutAl{"lutAl", "lutCovm.he3.dat", "LUT for Alphas"}; // To be created, for now propagating as He-3
117116

118117
struct : ConfigurableGroup {
119118
ConfigurableAxis axisMomentum{"axisMomentum", {VARIABLE_WIDTH, 0.0f, 0.1f, 0.2f, 0.3f, 0.4f, 0.5f, 0.6f, 0.7f, 0.8f, 0.9f, 1.0f, 1.1f, 1.2f, 1.3f, 1.4f, 1.5f, 1.6f, 1.7f, 1.8f, 1.9f, 2.0f, 2.2f, 2.4f, 2.6f, 2.8f, 3.0f, 3.2f, 3.4f, 3.6f, 3.8f, 4.0f, 4.4f, 4.8f, 5.2f, 5.6f, 6.0f, 6.5f, 7.0f, 7.5f, 8.0f, 9.0f, 10.0f, 11.0f, 12.0f, 13.0f, 14.0f, 15.0f, 17.0f, 19.0f, 21.0f, 23.0f, 25.0f, 30.0f, 35.0f, 40.0f, 50.0f}, "#it{p} (GeV/#it{c})"};
@@ -139,11 +138,12 @@ struct OnTheFlyTracker {
139138
Configurable<int> minSiliconHits{"minSiliconHits", 6, "minimum number of silicon hits to accept track"};
140139
Configurable<int> minSiliconHitsIfTPCUsed{"minSiliconHitsIfTPCUsed", 2, "minimum number of silicon hits to accept track in case TPC info is present"};
141140
Configurable<int> minTPCClusters{"minTPCClusters", 70, "minimum number of TPC hits necessary to consider minSiliconHitsIfTPCUsed"};
142-
Configurable<int> alice3detector{"alice3detector", 0, "0: ALICE 3 v1, 1: ALICE 3 v4"};
141+
Configurable<int> alice3detector{"alice3detector", 2, "0: ALICE 3 v1, 1: ALICE 3 v4, 2: ALICE 3 Sep 2025"};
143142
Configurable<bool> applyZacceptance{"applyZacceptance", false, "apply z limits to detector layers or not"};
144143
Configurable<bool> applyMSCorrection{"applyMSCorrection", true, "apply ms corrections for secondaries or not"};
145144
Configurable<bool> applyElossCorrection{"applyElossCorrection", true, "apply eloss corrections for secondaries or not"};
146145
Configurable<bool> applyEffCorrection{"applyEffCorrection", true, "apply efficiency correction or not"};
146+
Configurable<int> scaleVD{"scaleVD", 1, "scale x0 and xrho in VD layers"};
147147
Configurable<std::vector<float>> pixelRes{"pixelRes", {0.00025, 0.00025, 0.001, 0.001}, "RPhiIT, ZIT, RPhiOT, ZOT"};
148148
} fastTrackerSettings; // allows for gap between peak and bg in case someone wants to
149149

@@ -240,44 +240,32 @@ struct OnTheFlyTracker {
240240

241241
// For TGenPhaseSpace seed
242242
TRandom3 rand;
243+
Service<o2::ccdb::BasicCCDBManager> ccdb;
243244

244245
void init(o2::framework::InitContext&)
245246
{
247+
248+
ccdb->setURL("http://alice-ccdb.cern.ch");
249+
ccdb->setTimestamp(-1);
250+
246251
if (enableLUT) {
247-
std::map<int, const char*> mapPdgLut;
248-
const char* lutElChar = lutEl->c_str();
249-
const char* lutMuChar = lutMu->c_str();
250-
const char* lutPiChar = lutPi->c_str();
251-
const char* lutKaChar = lutKa->c_str();
252-
const char* lutPrChar = lutPr->c_str();
253-
254-
LOGF(info, "Will load electron lut file ..: %s", lutElChar);
255-
LOGF(info, "Will load muon lut file ......: %s", lutMuChar);
256-
LOGF(info, "Will load pion lut file ......: %s", lutPiChar);
257-
LOGF(info, "Will load kaon lut file ......: %s", lutKaChar);
258-
LOGF(info, "Will load proton lut file ....: %s", lutPrChar);
259-
260-
mapPdgLut.insert(std::make_pair(11, lutElChar));
261-
mapPdgLut.insert(std::make_pair(13, lutMuChar));
262-
mapPdgLut.insert(std::make_pair(211, lutPiChar));
263-
mapPdgLut.insert(std::make_pair(321, lutKaChar));
264-
mapPdgLut.insert(std::make_pair(2212, lutPrChar));
265-
266-
if (enableNucleiSmearing) {
267-
const char* lutDeChar = lutDe->c_str();
268-
const char* lutTrChar = lutTr->c_str();
269-
const char* lutHe3Char = lutHe3->c_str();
270-
const char* lutAlChar = lutAl->c_str();
271-
mapPdgLut.insert(std::make_pair(1000010020, lutDeChar));
272-
mapPdgLut.insert(std::make_pair(1000010030, lutTrChar));
273-
mapPdgLut.insert(std::make_pair(1000020030, lutHe3Char));
274-
mapPdgLut.insert(std::make_pair(1000020030, lutAlChar));
275-
}
276-
for (const auto& e : mapPdgLut) {
277-
if (!mSmearer.loadTable(e.first, e.second)) {
278-
LOG(fatal) << "Having issue with loading the LUT " << e.first << " " << e.second;
252+
mSmearer.setCcdbManager(ccdb.operator->());
253+
254+
auto loadLUT = [&](int pdg, const std::string& lutFile) {
255+
bool success = mSmearer.loadTable(pdg, lutFile.c_str());
256+
if (!success && !lutFile.empty()) {
257+
LOG(fatal) << "Having issue with loading the LUT " << pdg << " " << lutFile;
279258
}
280-
}
259+
};
260+
loadLUT(11, lutEl.value);
261+
loadLUT(13, lutMu.value);
262+
loadLUT(211, lutPi.value);
263+
loadLUT(321, lutKa.value);
264+
loadLUT(2212, lutPr.value);
265+
loadLUT(1000010020, lutDe.value);
266+
loadLUT(1000010030, lutTr.value);
267+
loadLUT(1000020030, lutHe3.value);
268+
281269
// interpolate efficiencies if requested to do so
282270
mSmearer.interpolateEfficiency(static_cast<bool>(interpolateLutEfficiencyVsNch));
283271

@@ -425,12 +413,22 @@ struct OnTheFlyTracker {
425413
fastTracker.SetApplyMSCorrection(fastTrackerSettings.applyMSCorrection);
426414
fastTracker.SetApplyElossCorrection(fastTrackerSettings.applyElossCorrection);
427415

428-
if (fastTrackerSettings.alice3detector == 0) {
429-
fastTracker.AddSiliconALICE3v2(fastTrackerSettings.pixelRes);
430-
}
431-
if (fastTrackerSettings.alice3detector == 1) {
432-
fastTracker.AddSiliconALICE3v4(fastTrackerSettings.pixelRes);
433-
fastTracker.AddTPC(0.1, 0.1);
416+
switch (fastTrackerSettings.alice3detector) {
417+
case 0:
418+
fastTracker.AddSiliconALICE3v2(fastTrackerSettings.pixelRes);
419+
break;
420+
421+
case 1:
422+
fastTracker.AddSiliconALICE3v4(fastTrackerSettings.pixelRes);
423+
fastTracker.AddTPC(0.1, 0.1);
424+
break;
425+
426+
case 2:
427+
fastTracker.AddSiliconALICE3(fastTrackerSettings.scaleVD, fastTrackerSettings.pixelRes);
428+
break;
429+
430+
default:
431+
break;
434432
}
435433

436434
// print fastTracker settings
@@ -518,8 +516,7 @@ struct OnTheFlyTracker {
518516
continue;
519517
}
520518
const auto pdg = std::abs(mcParticle.pdgCode());
521-
if (pdg != kElectron && pdg != kMuonMinus && pdg != kPiPlus && pdg != kKPlus && pdg != kProton
522-
&& pdg != 1000010020 && pdg != 1000010030 && pdg != 1000020030 && pdg != 1000020040) {
519+
if (pdg != kElectron && pdg != kMuonMinus && pdg != kPiPlus && pdg != kKPlus && pdg != kProton) {
523520
if (!cascadeDecaySettings.decayXi) {
524521
continue;
525522
} else if (pdg != 3312) {
@@ -566,8 +563,7 @@ struct OnTheFlyTracker {
566563
continue;
567564
}
568565
}
569-
if (pdg != kElectron && pdg != kMuonMinus && pdg != kPiPlus && pdg != kKPlus && pdg != kProton
570-
&& pdg != 1000010020 && pdg != 1000010030 && pdg != 1000020030 && pdg != 1000020040) {
566+
if (pdg != kElectron && pdg != kMuonMinus && pdg != kPiPlus && pdg != kKPlus && pdg != kProton) {
571567
if (!cascadeDecaySettings.decayXi) {
572568
continue;
573569
} else if (pdg != 3312) {

0 commit comments

Comments
 (0)