Skip to content

Commit ff30719

Browse files
EloviyoShirajum Monira
andauthored
[PWGCF] FemtoUniverse Cascade Task -- implemented efficiency ccdb loader for cascades (#14850)
Co-authored-by: Shirajum Monira <shirajum.monira@cern.ch>
1 parent 3b19b63 commit ff30719

File tree

1 file changed

+34
-14
lines changed

1 file changed

+34
-14
lines changed

PWGCF/FemtoUniverse/Tasks/femtoUniversePairTaskTrackCascadeExtended.cxx

Lines changed: 34 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
#include "PWGCF/FemtoUniverse/Core/femtoUtils.h"
2323
#include "PWGCF/FemtoUniverse/DataModel/FemtoDerived.h"
2424

25+
#include "CCDB/BasicCCDBManager.h"
2526
#include "Framework/ASoAHelpers.h"
2627
#include "Framework/AnalysisTask.h"
2728
#include "Framework/HistogramRegistry.h"
@@ -109,6 +110,7 @@ struct femtoUniversePairTaskTrackCascadeExtended {
109110

110111
// Efficiency
111112
Configurable<std::string> confLocalEfficiency{"confLocalEfficiency", "", "Local path to efficiency .root file"};
113+
Configurable<std::string> confCCDBEfficiency{"confCCDBEfficiency", "", "CCDB path to efficiency object"};
112114

113115
Filter collisionFilter = (nabs(aod::collision::posZ) < confZVertexCut);
114116
using FilteredFDCollisions = soa::Filtered<o2::aod::FdCollisions>;
@@ -159,8 +161,10 @@ struct femtoUniversePairTaskTrackCascadeExtended {
159161
std::set<int> cascDuplicates;
160162

161163
std::unique_ptr<TFile> plocalEffFile;
162-
std::unique_ptr<TH1> plocalEffp1;
163-
std::unique_ptr<TH1> plocalEffp2;
164+
std::unique_ptr<TH1> pEffHistp1;
165+
std::unique_ptr<TH1> pEffHistp2;
166+
167+
Service<o2::ccdb::BasicCCDBManager> ccdb;
164168

165169
// Table to select cascade daughters
166170
// Charges: = +--, +--, +-+, +-+
@@ -330,14 +334,30 @@ struct femtoUniversePairTaskTrackCascadeExtended {
330334
if (!plocalEffFile || plocalEffFile.get()->IsZombie())
331335
LOGF(fatal, "Could not load efficiency histogram from %s", confLocalEfficiency.value.c_str());
332336
if (doprocessSameEvent || doprocessSameEventBitmask || doprocessMixedEvent || doprocessMixedEventBitmask) {
333-
plocalEffp1 = (confChargePart1 > 0) ? std::unique_ptr<TH1>(plocalEffFile.get()->Get<TH1>("PrPlus")) : std::unique_ptr<TH1>(plocalEffFile.get()->Get<TH1>("PrMinus")); // note: works only for protons for now
334-
plocalEffp2 = (confCascType1 == 0 || confCascType1 == 1) ? std::unique_ptr<TH1>(plocalEffFile.get()->Get<TH1>("Cascade")) : std::unique_ptr<TH1>(plocalEffFile.get()->Get<TH1>("AntiCascade"));
337+
pEffHistp1 = (confChargePart1 > 0) ? std::unique_ptr<TH1>(plocalEffFile.get()->Get<TH1>("PrPlus")) : std::unique_ptr<TH1>(plocalEffFile.get()->Get<TH1>("PrMinus")); // note: works only for protons for now
338+
pEffHistp2 = (confCascType1 == 0 || confCascType1 == 1) ? std::unique_ptr<TH1>(plocalEffFile.get()->Get<TH1>("Cascade")) : std::unique_ptr<TH1>(plocalEffFile.get()->Get<TH1>("AntiCascade"));
335339
LOGF(info, "Loaded efficiency histograms for track-Cascade.");
336340
} else if (doprocessSameEventCasc || doprocessSameEventCascBitmask || doprocessMixedEventCasc || doprocessMixedEventCascBitmask) {
337-
plocalEffp1 = (confCascType1 == 0 || confCascType1 == 1) ? std::unique_ptr<TH1>(plocalEffFile.get()->Get<TH1>("Cascade")) : std::unique_ptr<TH1>(plocalEffFile.get()->Get<TH1>("AntiCascade"));
338-
plocalEffp2 = (confCascType2 == 0 || confCascType2 == 1) ? std::unique_ptr<TH1>(plocalEffFile.get()->Get<TH1>("Cascade")) : std::unique_ptr<TH1>(plocalEffFile.get()->Get<TH1>("AntiCascade"));
341+
pEffHistp1 = (confCascType1 == 0 || confCascType1 == 1) ? std::unique_ptr<TH1>(plocalEffFile.get()->Get<TH1>("Cascade")) : std::unique_ptr<TH1>(plocalEffFile.get()->Get<TH1>("AntiCascade"));
342+
pEffHistp2 = (confCascType2 == 0 || confCascType2 == 1) ? std::unique_ptr<TH1>(plocalEffFile.get()->Get<TH1>("Cascade")) : std::unique_ptr<TH1>(plocalEffFile.get()->Get<TH1>("AntiCascade"));
339343
LOGF(info, "Loaded efficiency histograms for Cascade-Cascade.");
340344
}
345+
} else if (!confCCDBEfficiency.value.empty()) {
346+
ccdb->setURL("http://alice-ccdb.cern.ch");
347+
ccdb->setCaching(true);
348+
ccdb->setLocalObjectValidityChecking();
349+
350+
auto now = std::chrono::duration_cast<std::chrono::milliseconds>(std::chrono::system_clock::now().time_since_epoch()).count();
351+
ccdb->setCreatedNotAfter(now);
352+
if (doprocessSameEvent || doprocessSameEventBitmask || doprocessMixedEvent || doprocessMixedEventBitmask) {
353+
pEffHistp1 = (confChargePart1 > 0) ? std::unique_ptr<TH1>(ccdb->getForTimeStamp<TH1>(confCCDBEfficiency.value + "/PrPlus", now)) : std::unique_ptr<TH1>(ccdb->getForTimeStamp<TH1>(confCCDBEfficiency.value + "/PrMinus", now)); // note: works only for protons for now
354+
pEffHistp2 = (confCascType1 == 0 || confCascType1 == 1) ? std::unique_ptr<TH1>(ccdb->getForTimeStamp<TH1>(confCCDBEfficiency.value + "/Cascade", now)) : std::unique_ptr<TH1>(ccdb->getForTimeStamp<TH1>(confCCDBEfficiency.value + "/AntiCascade", now));
355+
LOGF(info, "Loaded efficiency histograms for track-Cascade from CCDB");
356+
} else if (doprocessSameEventCasc || doprocessSameEventCascBitmask || doprocessMixedEventCasc || doprocessMixedEventCascBitmask) {
357+
pEffHistp1 = (confCascType1 == 0 || confCascType1 == 1) ? std::unique_ptr<TH1>(ccdb->getForTimeStamp<TH1>(confCCDBEfficiency.value + "/Cascade", now)) : std::unique_ptr<TH1>(ccdb->getForTimeStamp<TH1>(confCCDBEfficiency.value + "/AntiCascade", now));
358+
pEffHistp2 = (confCascType2 == 0 || confCascType2 == 1) ? std::unique_ptr<TH1>(ccdb->getForTimeStamp<TH1>(confCCDBEfficiency.value + "/Cascade", now)) : std::unique_ptr<TH1>(ccdb->getForTimeStamp<TH1>(confCCDBEfficiency.value + "/AntiCascade", now));
359+
LOGF(info, "Loaded efficiency histograms for Cascade-Cascade from CCDB.");
360+
}
341361
}
342362
}
343363

@@ -505,8 +525,8 @@ struct femtoUniversePairTaskTrackCascadeExtended {
505525
}
506526
}
507527
float weight = 1.0f;
508-
if (plocalEffp1)
509-
weight = plocalEffp1.get()->GetBinContent(plocalEffp1->FindBin(p1.pt(), p1.eta())) * plocalEffp2.get()->GetBinContent(plocalEffp2->FindBin(p2.pt(), p2.eta()));
528+
if (pEffHistp1)
529+
weight = pEffHistp1.get()->GetBinContent(pEffHistp1->FindBin(p1.pt(), p1.eta())) * pEffHistp2.get()->GetBinContent(pEffHistp2->FindBin(p2.pt(), p2.eta()));
510530
sameEventCont.setPair<false>(p1, p2, multCol, confUse3D, weight);
511531
}
512532
}
@@ -657,8 +677,8 @@ struct femtoUniversePairTaskTrackCascadeExtended {
657677
}
658678

659679
float weight = 1.0f;
660-
if (plocalEffp1)
661-
weight = plocalEffp1.get()->GetBinContent(plocalEffp1->FindBin(p1.pt(), p1.eta())) * plocalEffp2.get()->GetBinContent(plocalEffp2->FindBin(p2.pt(), p2.eta()));
680+
if (pEffHistp1)
681+
weight = pEffHistp1.get()->GetBinContent(pEffHistp1->FindBin(p1.pt(), p1.eta())) * pEffHistp2.get()->GetBinContent(pEffHistp2->FindBin(p2.pt(), p2.eta()));
662682
sameEventCont.setPair<false>(p1, p2, multCol, confUse3D, weight);
663683
return true;
664684
};
@@ -750,8 +770,8 @@ struct femtoUniversePairTaskTrackCascadeExtended {
750770
}
751771

752772
float weight = 1.0f;
753-
if (plocalEffp1)
754-
weight = plocalEffp1.get()->GetBinContent(plocalEffp1->FindBin(p1.pt(), p1.eta())) * plocalEffp2.get()->GetBinContent(plocalEffp2->FindBin(p2.pt(), p2.eta()));
773+
if (pEffHistp1)
774+
weight = pEffHistp1.get()->GetBinContent(pEffHistp1->FindBin(p1.pt(), p1.eta())) * pEffHistp2.get()->GetBinContent(pEffHistp2->FindBin(p2.pt(), p2.eta()));
755775
mixedEventCont.setPair<false>(p1, p2, multCol, confUse3D, weight);
756776
}
757777
};
@@ -859,8 +879,8 @@ struct femtoUniversePairTaskTrackCascadeExtended {
859879
}
860880

861881
float weight = 1.0f;
862-
if (plocalEffp1)
863-
weight = plocalEffp1.get()->GetBinContent(plocalEffp1->FindBin(p1.pt(), p1.eta())) * plocalEffp2.get()->GetBinContent(plocalEffp2->FindBin(p2.pt(), p2.eta()));
882+
if (pEffHistp1)
883+
weight = pEffHistp1.get()->GetBinContent(pEffHistp1->FindBin(p1.pt(), p1.eta())) * pEffHistp2.get()->GetBinContent(pEffHistp2->FindBin(p2.pt(), p2.eta()));
864884
mixedEventCont.setPair<false>(p1, p2, multCol, confUse3D, weight);
865885
}
866886
}

0 commit comments

Comments
 (0)