Skip to content

Commit 081742b

Browse files
authored
Event counter histograms (#171)
1 parent 769e8b5 commit 081742b

File tree

1 file changed

+16
-9
lines changed

1 file changed

+16
-9
lines changed

PWGCF/Tasks/correlations.cxx

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,9 @@ struct CorrelationTask {
114114
registry.add("yields", "centrality vs pT vs eta", {HistType::kTH3F, {{100, 0, 100, "centrality"}, {40, 0, 20, "p_{T}"}, {100, -2, 2, "#eta"}}});
115115
registry.add("etaphi", "centrality vs eta vs phi", {HistType::kTH3F, {{100, 0, 100, "centrality"}, {100, -2, 2, "#eta"}, {200, 0, 2 * M_PI, "#varphi"}}});
116116

117+
const int maxMixBin = axisMultiplicity->size() * axisVertex->size();
118+
registry.add("eventcount", "bin", {HistType::kTH1F, {{maxMixBin + 2, -2.5, -0.5 + maxMixBin, "bin"}}});
119+
117120
mPairCuts.SetHistogramRegistry(&registry);
118121

119122
if (cfgPairCut->get("Photon") > 0 || cfgPairCut->get("K0") > 0 || cfgPairCut->get("Lambda") > 0 || cfgPairCut->get("Phi") > 0 || cfgPairCut->get("Rho") > 0) {
@@ -151,15 +154,6 @@ struct CorrelationTask {
151154

152155
long now = std::chrono::duration_cast<std::chrono::milliseconds>(std::chrono::system_clock::now().time_since_epoch()).count();
153156
ccdb->setCreatedNotAfter(now); // TODO must become global parameter from the train creation time
154-
155-
if (cfgEfficiencyTrigger.value.empty() == false) {
156-
cfg.mEfficiencyTrigger = ccdb->getForTimeStamp<THnT<float>>(cfgEfficiencyTrigger, now);
157-
LOGF(info, "Loaded efficiency histogram for trigger particles from %s (%p)", cfgEfficiencyTrigger.value.c_str(), (void*)cfg.mEfficiencyTrigger);
158-
}
159-
if (cfgEfficiencyAssociated.value.empty() == false) {
160-
cfg.mEfficiencyAssociated = ccdb->getForTimeStamp<THnT<float>>(cfgEfficiencyAssociated, now);
161-
LOGF(info, "Loaded efficiency histogram for associated particles from %s (%p)", cfgEfficiencyAssociated.value.c_str(), (void*)cfg.mEfficiencyAssociated);
162-
}
163157
}
164158

165159
template <typename TCollision, typename TTracks>
@@ -265,12 +259,19 @@ struct CorrelationTask {
265259
{
266260
// TODO will go to CCDBConfigurable
267261
auto bc = collision.bc_as<aod::BCsWithTimestamps>();
262+
268263
if (cfgEfficiencyTrigger.value.empty() == false) {
269264
cfg.mEfficiencyTrigger = ccdb->getForTimeStamp<THnT<float>>(cfgEfficiencyTrigger, bc.timestamp());
265+
if (cfg.mEfficiencyTrigger == nullptr) {
266+
LOGF(fatal, "Could not load efficiency histogram for trigger particles from %s", cfgEfficiencyTrigger.value.c_str());
267+
}
270268
LOGF(info, "Loaded efficiency histogram for trigger particles from %s (%p)", cfgEfficiencyTrigger.value.c_str(), (void*)cfg.mEfficiencyTrigger);
271269
}
272270
if (cfgEfficiencyAssociated.value.empty() == false) {
273271
cfg.mEfficiencyAssociated = ccdb->getForTimeStamp<THnT<float>>(cfgEfficiencyAssociated, bc.timestamp());
272+
if (cfg.mEfficiencyAssociated == nullptr) {
273+
LOGF(fatal, "Could not load efficiency histogram for associated particles from %s", cfgEfficiencyAssociated.value.c_str());
274+
}
274275
LOGF(info, "Loaded efficiency histogram for associated particles from %s (%p)", cfgEfficiencyAssociated.value.c_str(), (void*)cfg.mEfficiencyAssociated);
275276
}
276277

@@ -282,6 +283,7 @@ struct CorrelationTask {
282283
if (fillCollisionAOD(same, collision, centrality) == false) {
283284
return;
284285
}
286+
registry.fill(HIST("eventcount"), -2);
285287
fillQA(collision, centrality, tracks);
286288
fillCorrelations(same, tracks, tracks, centrality, collision.posZ(), bSign);
287289
}
@@ -295,6 +297,7 @@ struct CorrelationTask {
295297
const auto centrality = collision.centV0M();
296298

297299
same->fillEvent(centrality, CorrelationContainer::kCFStepReconstructed);
300+
registry.fill(HIST("eventcount"), -2);
298301
fillQA(collision, centrality, tracks);
299302
fillCorrelations(same, tracks, tracks, centrality, collision.posZ(), bSign);
300303
}
@@ -316,9 +319,11 @@ struct CorrelationTask {
316319
LOGF(info, "processMixedAOD: Mixed collisions bin: %d pair: %d (%f), %d (%f)", collision1.bin(), collision1.index(), collision1.posZ(), collision2.index(), collision2.posZ());
317320

318321
// TODO in principle these should be already checked on hash level, because in this way we don't check collision 2
322+
// TODO not correct because event-level histograms on collision1 are filled for each pair
319323
if (fillCollisionAOD(mixed, collision1, collision1.centV0M()) == false) {
320324
continue;
321325
}
326+
registry.fill(HIST("eventcount"), collision1.bin());
322327

323328
auto it1 = slicer.begin();
324329
auto it2 = slicer.begin();
@@ -342,6 +347,7 @@ struct CorrelationTask {
342347

343348
// LOGF(info, "Tracks: %d and %d entries", tracks1.size(), tracks2.size());
344349

350+
// TODO mixed event weight missing
345351
fillCorrelations(mixed, tracks1, tracks2, collision1.centV0M(), collision1.posZ(), bSign);
346352
}
347353
}
@@ -362,6 +368,7 @@ struct CorrelationTask {
362368

363369
LOGF(info, "processMixedDerived: Mixed collisions bin: %d pair: %d (%f), %d (%f)", collision1.bin(), collision1.index(), collision1.posZ(), collision2.index(), collision2.posZ());
364370

371+
registry.fill(HIST("eventcount"), collision1.bin());
365372
mixed->fillEvent(collision1.centV0M(), CorrelationContainer::kCFStepReconstructed);
366373

367374
auto it1 = slicer.begin();

0 commit comments

Comments
 (0)