Skip to content

Commit 47d1127

Browse files
authored
[Common] Fix fetching of centrality configuration in centrality study (#16943)
1 parent 90ebdcc commit 47d1127

1 file changed

Lines changed: 47 additions & 38 deletions

File tree

Common/Tasks/centralityStudy.cxx

Lines changed: 47 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -450,45 +450,7 @@ struct centralityStudy {
450450
reportSuccess(hCentralityNTPV, "NTPV");
451451
reportSuccess(hCentralityNGlo, "NGlobals");
452452
reportSuccess(hCentralityMFT, "MFT");
453-
454453
LOGF(info, "Centrality calibration loading done.");
455-
auto getCent = [](TH1* hist, float mult) -> float {
456-
return hist ? hist->GetBinContent(mult) : 0.0;
457-
};
458-
459-
centFV0A = getCent(hCentralityFV0A, collision.multFV0A());
460-
centFT0A = getCent(hCentralityFT0A, collision.multFT0A());
461-
centFT0C = getCent(hCentralityFT0C, collision.multFT0C());
462-
centFT0M = getCent(hCentralityFT0M, collision.multFT0A() + collision.multFT0C());
463-
centFDDM = getCent(hCentralityFDDM, collision.multFDDA() + collision.multFDDC());
464-
centNTPV = getCent(hCentralityNTPV, collision.multNTracksPV());
465-
centNGlo = getCent(hCentralityNGlo, collision.multNTracksGlobal());
466-
centMFT = getCent(hCentralityMFT, collision.mftNtracks());
467-
} else if (doprocessCollisionsWithCentrality) {
468-
if constexpr (requires { collision.centFV0A(); }) {
469-
centFV0A = collision.centFV0A();
470-
}
471-
if constexpr (requires { collision.centFT0A(); }) {
472-
centFT0A = collision.centFT0A();
473-
}
474-
if constexpr (requires { collision.centFT0C(); }) {
475-
centFT0C = collision.centFT0C();
476-
}
477-
if constexpr (requires { collision.centFT0M(); }) {
478-
centFT0M = collision.centFT0M();
479-
}
480-
if constexpr (requires { collision.centFDDM(); }) {
481-
centFDDM = collision.centFDDM();
482-
}
483-
if constexpr (requires { collision.centNTPV(); }) {
484-
centNTPV = collision.centNTPV();
485-
}
486-
if constexpr (requires { collision.centNGlobal(); }) {
487-
centNGlo = collision.centNGlobal();
488-
}
489-
if constexpr (requires { collision.centMFT(); }) {
490-
centMFT = collision.centMFT();
491-
}
492454
}
493455

494456
if (!studies.doRunByRunHistograms) {
@@ -594,11 +556,58 @@ struct centralityStudy {
594556
}
595557
}
596558

559+
template <typename TCollision>
560+
void configureCentrality(const TCollision& collision)
561+
{
562+
if (ccdbSettings.fetchCentralityCalibration) {
563+
auto getCent = [](TH1* hist, float mult) -> float {
564+
static constexpr float CentralityNotFound = 105.f;
565+
return hist ? hist->GetBinContent(mult) : CentralityNotFound;
566+
};
567+
568+
centFV0A = getCent(hCentralityFV0A, collision.multFV0A());
569+
centFT0A = getCent(hCentralityFT0A, collision.multFT0A());
570+
centFT0C = getCent(hCentralityFT0C, collision.multFT0C());
571+
centFT0M = getCent(hCentralityFT0M, collision.multFT0A() + collision.multFT0C());
572+
centFDDM = getCent(hCentralityFDDM, collision.multFDDA() + collision.multFDDC());
573+
centNTPV = getCent(hCentralityNTPV, collision.multNTracksPV());
574+
centNGlo = getCent(hCentralityNGlo, collision.multNTracksGlobal());
575+
centMFT = getCent(hCentralityMFT, collision.mftNtracks());
576+
} else if (doprocessCollisionsWithCentrality) {
577+
if constexpr (requires { collision.centFV0A(); }) {
578+
centFV0A = collision.centFV0A();
579+
}
580+
if constexpr (requires { collision.centFT0A(); }) {
581+
centFT0A = collision.centFT0A();
582+
}
583+
if constexpr (requires { collision.centFT0C(); }) {
584+
centFT0C = collision.centFT0C();
585+
}
586+
if constexpr (requires { collision.centFT0M(); }) {
587+
centFT0M = collision.centFT0M();
588+
}
589+
if constexpr (requires { collision.centFDDM(); }) {
590+
centFDDM = collision.centFDDM();
591+
}
592+
if constexpr (requires { collision.centNTPV(); }) {
593+
centNTPV = collision.centNTPV();
594+
}
595+
if constexpr (requires { collision.centNGlobal(); }) {
596+
centNGlo = collision.centNGlobal();
597+
}
598+
if constexpr (requires { collision.centMFT(); }) {
599+
centMFT = collision.centMFT();
600+
}
601+
}
602+
}
603+
597604
template <typename TCollision>
598605
void genericProcessCollision(const TCollision& collision)
599606
// process this collisions
600607
{
601608
initRun(collision);
609+
configureCentrality(collision);
610+
602611
histos.fill(HIST("hCollisionSelection"), 0); // all collisions
603612
if (studies.doRunByRunHistograms) {
604613
getHist(TH1, histPath + "hCollisionSelection")->Fill(0);

0 commit comments

Comments
 (0)