@@ -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