3131#include " PWGLF/DataModel/LFStrangenessMLTables.h"
3232#include " PWGLF/DataModel/LFStrangenessPIDTables.h"
3333#include " PWGLF/DataModel/LFStrangenessTables.h"
34- #include " PWGLF/DataModel/mcCentrality.h"
3534#include " PWGUD/Core/SGSelector.h"
3635
3736#include " Common/CCDB/EventSelectionParams.h"
@@ -115,7 +114,6 @@ struct derivedlambdakzeroanalysis {
115114 Configurable<std::string> irSource{" irSource" , " " , " Estimator of the interaction rate (Recommended: pp --> T0VTX, Pb-Pb --> ZNC hadronic)" };
116115 Configurable<int > centralityEstimator{" centralityEstimator" , kCentFT0C , " Run 3 centrality estimator (0:CentFT0C, 1:CentFT0M, 2:CentFT0CVariant1, 3:CentMFT, 4:CentNGlobal, 5:CentFV0A)" };
117116 Configurable<bool > doUPCanalysis{" doUPCanalysis" , true , " Study V0s in hadronic and UPC collisions" };
118- Configurable<bool > useMcCentrality{" useMcCentrality" , false , " Use MC centrality?" };
119117
120118 Configurable<bool > doEventQA{" doEventQA" , false , " do event QA histograms" };
121119 Configurable<bool > doCompleteTopoQA{" doCompleteTopoQA" , false , " do topological variable QA histograms" };
@@ -733,9 +731,6 @@ struct derivedlambdakzeroanalysis {
733731 }
734732
735733 histos.add (" hEventCentrality" , " hEventCentrality" , kTH1D , {axisConfigurations.axisCentralityFine });
736- if (useMcCentrality) {
737- histos.add (" hEventVsGenCentrality" , " hEventVsGenCentrality" , kTH2D , {axisConfigurations.axisCentralityFine , axisConfigurations.axisCentralityFine });
738- }
739734 histos.add (" hCentralityVsNch" , " hCentralityVsNch" , kTH2D , {axisConfigurations.axisCentralityFine , axisConfigurations.axisNch });
740735 if (doEventQA) {
741736 if (isRun3) {
@@ -1269,36 +1264,22 @@ struct derivedlambdakzeroanalysis {
12691264 // If takeMcCentrality is enabled, the centrality is taken from the MC collision; otherwise it is taken
12701265 // from the reconstructed collision. Returns -1 if no corresponding centrality estimator is found or if no MC collision is associated to the recoed collision.
12711266 template <typename TCollision>
1272- auto getCentralityRun3 (TCollision const & collision, bool takeMcCentrality )
1267+ auto getCentralityRun3 (TCollision const & collision)
12731268 {
1274- // Helper lambda to extract centrality from any object exposing the cent* columns
1275- auto extractCentrality = [this ](auto const & coll) -> float {
1276- switch (centralityEstimator) {
1277- case kCentFT0C : return coll.centFT0C ();
1278- case kCentFT0M : return coll.centFT0M ();
1279- case kCentFT0CVariant1 : return coll.centFT0CVariant1 ();
1280- // case kCentMFT: return coll.centMFT();
1281- case kCentNGlobal : return coll.centNGlobal ();
1282- case kCentFV0A : return coll.centFV0A ();
1283- default : return -1 .f ;
1284- }
1285- };
1286-
1287- // check if we are in MC
1288- if constexpr (requires { collision.straMCCollisionId (); }) {
1289- if (takeMcCentrality) { // check if we need to extract centrality from recoed or generated collision
1290- // if recoed collision has a MC collision, de-reference it and extract centrality from it
1291- // otherwise return -1.f
1292- if (collision.has_straMCCollision ()) {
1293- auto mcCollision = collision.template straMCCollision_as <soa::Join<aod::StraMCCollisions, aod::StraMCCollMults, aod::McCentFV0As, aod::McCentFT0Ms, aod::McCentFT0Cs, aod::McCentFT0CVariant1s, aod::McCentNGlobals>>();
1294- return extractCentrality (mcCollision);
1295- } else {
1296- return -1 .f ;
1297- }
1298- }
1299- }
1300-
1301- return extractCentrality (collision);
1269+ if (centralityEstimator == kCentFT0C )
1270+ return collision.centFT0C ();
1271+ else if (centralityEstimator == kCentFT0M )
1272+ return collision.centFT0M ();
1273+ else if (centralityEstimator == kCentFT0CVariant1 )
1274+ return collision.centFT0CVariant1 ();
1275+ else if (centralityEstimator == kCentMFT )
1276+ return collision.centMFT ();
1277+ else if (centralityEstimator == kCentNGlobal )
1278+ return collision.centNGlobal ();
1279+ else if (centralityEstimator == kCentFV0A )
1280+ return collision.centFV0A ();
1281+
1282+ return -1 .f ;
13021283 }
13031284
13041285 // ______________________________________________________
@@ -1917,7 +1898,6 @@ struct derivedlambdakzeroanalysis {
19171898 // __________________________________________
19181899 // main analysis
19191900 if (passK0ShortSelections && analyseK0Short) {
1920- LOG (info) << centrality << " " << v0.globalIndex ();
19211901 histos.fill (HIST (" GeneralQA/hSelectionV0s" ), selPhysPrimAntiLambda + 2 ); //
19221902 histos.fill (HIST (" GeneralQA/h2dArmenterosSelected" ), v0.alpha (), v0.qtarm ()); // cross-check
19231903 histos.fill (HIST (" h3dMassK0Short" ), centrality, pt, invMassK0Short);
@@ -2303,7 +2283,7 @@ struct derivedlambdakzeroanalysis {
23032283 histos.fill (HIST (" hEventSelection" ), 0 . /* all collisions */ );
23042284 if (doEventQA) {
23052285 if constexpr (requires { collision.centFT0C (); }) { // check if we are in Run 3
2306- centrality = getCentralityRun3 (collision, useMcCentrality );
2286+ centrality = getCentralityRun3 (collision);
23072287 }
23082288 histos.fill (HIST (" hEventSelectionVsCentrality" ), 0 . /* all collisions */ , centrality);
23092289 }
@@ -2688,7 +2668,7 @@ struct derivedlambdakzeroanalysis {
26882668 void fillReconstructedEventProperties (TCollision const & collision, float & centrality, float & collisionOccupancy, double & interactionRate, int & gapSide, int & selGapSide)
26892669 {
26902670 if constexpr (requires { collision.centFT0C (); }) { // check if we are in Run 3
2691- centrality = getCentralityRun3 (collision, useMcCentrality );
2671+ centrality = getCentralityRun3 (collision);
26922672 collisionOccupancy = eventSelections.useFT0CbasedOccupancy ? collision.ft0cOccupancyInTimeRange () : collision.trackOccupancyInTimeRange ();
26932673 // Fetch interaction rate only if required (in order to limit ccdb calls)
26942674 interactionRate = !irSource.value .empty () ? rateFetcher.fetch (ccdb.service , collision.timestamp (), collision.runNumber (), irSource) * 1 .e -3 : -1 ;
@@ -2698,10 +2678,6 @@ struct derivedlambdakzeroanalysis {
26982678 centrality = hRawCentrality->GetBinContent (hRawCentrality->FindBin (doPPAnalysis ? collision.multFT0A () + collision.multFT0C () : collision.multFT0C ()));
26992679 }
27002680
2701- if (useMcCentrality) {
2702- histos.fill (HIST (" hEventVsGenCentrality" ), getCentralityRun3 (collision, false ), getCentralityRun3 (collision, true ));
2703- }
2704-
27052681 if (doUPCanalysis) {
27062682 // gap side
27072683 gapSide = collision.gapSide ();
@@ -2794,7 +2770,7 @@ struct derivedlambdakzeroanalysis {
27942770 if constexpr (run3) { // check if we are in Run 3
27952771 if (biggestNContribs < collision.multPVTotalContributors ()) {
27962772 biggestNContribs = collision.multPVTotalContributors ();
2797- centrality = getCentralityRun3 (collision, useMcCentrality );
2773+ centrality = getCentralityRun3 (collision);
27982774 }
27992775 } else { // we are in Run 2: there should be only one collision in groupedCollisions
28002776 centrality = eventSelections.useSPDTrackletsCent ? collision.centRun2SPDTracklets () : collision.centRun2V0M ();
@@ -2969,7 +2945,7 @@ struct derivedlambdakzeroanalysis {
29692945 bool correctCollision = false ;
29702946 int mcNch = -1 ;
29712947 if (collision.has_straMCCollision ()) {
2972- auto mcCollision = collision.template straMCCollision_as <soa::Join<aod::StraMCCollisions, aod::StraMCCollMults, aod::McCentFV0As, aod::McCentFT0Ms, aod::McCentFT0Cs, aod::McCentFT0CVariant1s, aod::McCentNGlobals >>();
2948+ auto mcCollision = collision.template straMCCollision_as <soa::Join<aod::StraMCCollisions, aod::StraMCCollMults>>();
29732949 mcNch = mcCollision.multMCNParticlesEta05 ();
29742950 correctCollision = (v0MC.straMCCollisionId () == mcCollision.globalIndex ());
29752951 }
@@ -3014,7 +2990,7 @@ struct derivedlambdakzeroanalysis {
30142990 if (std::abs (ymc) > v0Selections.rapidityCut )
30152991 continue ;
30162992
3017- auto mcCollision = v0MC.template straMCCollision_as <soa::Join<aod::StraMCCollisions, aod::StraMCCollMults, aod::McCentFV0As, aod::McCentFT0Ms, aod::McCentFT0Cs, aod::McCentFT0CVariant1s, aod::McCentNGlobals >>();
2993+ auto mcCollision = v0MC.template straMCCollision_as <soa::Join<aod::StraMCCollisions, aod::StraMCCollMults>>();
30182994 if (eventSelections.applyZVtxSelOnMCPV && std::abs (mcCollision.posZ ()) > eventSelections.maxZVtxPosition ) {
30192995 continue ;
30202996 }
@@ -3032,7 +3008,7 @@ struct derivedlambdakzeroanalysis {
30323008 if (listBestCollisionIdx[mcCollision.globalIndex ()] > -1 ) {
30333009 auto collision = collisions.iteratorAt (listBestCollisionIdx[mcCollision.globalIndex ()]);
30343010 if constexpr (requires { collision.centFT0C (); }) { // check if we are in Run 3
3035- centrality = getCentralityRun3 (collision, useMcCentrality );
3011+ centrality = getCentralityRun3 (collision);
30363012 } else { // no, we are in Run 2
30373013 centrality = eventSelections.useSPDTrackletsCent ? collision.centRun2SPDTracklets () : collision.centRun2V0M ();
30383014 }
@@ -3079,7 +3055,7 @@ struct derivedlambdakzeroanalysis {
30793055 if (std::abs (ymc) > v0Selections.rapidityCut )
30803056 continue ;
30813057
3082- auto mcCollision = cascMC.template straMCCollision_as <soa::Join<aod::StraMCCollisions, aod::StraMCCollMults, aod::McCentFV0As, aod::McCentFT0Ms, aod::McCentFT0Cs, aod::McCentFT0CVariant1s, aod::McCentNGlobals >>();
3058+ auto mcCollision = cascMC.template straMCCollision_as <soa::Join<aod::StraMCCollisions, aod::StraMCCollMults>>();
30833059 if (eventSelections.applyZVtxSelOnMCPV && std::abs (mcCollision.posZ ()) > eventSelections.maxZVtxPosition ) {
30843060 continue ;
30853061 }
@@ -3097,7 +3073,7 @@ struct derivedlambdakzeroanalysis {
30973073 if (listBestCollisionIdx[mcCollision.globalIndex ()] > -1 ) {
30983074 auto collision = collisions.iteratorAt (listBestCollisionIdx[mcCollision.globalIndex ()]);
30993075 if constexpr (requires { collision.centFT0C (); }) { // check if we are in Run 3
3100- centrality = getCentralityRun3 (collision, useMcCentrality );
3076+ centrality = getCentralityRun3 (collision);
31013077 } else { // no, we are in Run 2
31023078 centrality = eventSelections.useSPDTrackletsCent ? collision.centRun2SPDTracklets () : collision.centRun2V0M ();
31033079 }
@@ -3211,7 +3187,7 @@ struct derivedlambdakzeroanalysis {
32113187
32123188 // ______________________________________________________
32133189 // Simulated processing in Run 3 (subscribes to MC information too)
3214- void processMonteCarloRun3 (soa::Join<aod::StraCollisions, aod::StraCents, aod::StraEvSels, aod::StraEvSelExtras, aod::StraStamps, aod::StraEvTimes, aod::StraCollLabels>::iterator const & collision, V0McCandidates const & fullV0s, DauTracks const &, aod::MotherMCParts const &, soa::Join<aod::StraMCCollisions, aod::StraMCCollMults, aod::McCentFV0As, aod::McCentFT0Ms, aod::McCentFT0Cs, aod::McCentFT0CVariant1s, aod::McCentNGlobals > const & /* mccollisions*/ , soa::Join<aod::V0MCCores, aod::V0MCCollRefs> const &)
3190+ void processMonteCarloRun3 (soa::Join<aod::StraCollisions, aod::StraCents, aod::StraEvSels, aod::StraEvSelExtras, aod::StraStamps, aod::StraEvTimes, aod::StraCollLabels>::iterator const & collision, V0McCandidates const & fullV0s, DauTracks const &, aod::MotherMCParts const &, soa::Join<aod::StraMCCollisions, aod::StraMCCollMults> const & /* mccollisions*/ , soa::Join<aod::V0MCCores, aod::V0MCCollRefs> const &)
32153191 {
32163192 analyzeRecoedV0sInMonteCarlo (collision, fullV0s);
32173193 }
@@ -3225,7 +3201,7 @@ struct derivedlambdakzeroanalysis {
32253201
32263202 // ______________________________________________________
32273203 // Simulated processing in Run 3 (subscribes to MC information too)
3228- void processGeneratedRun3 (soa::Join<aod::StraMCCollisions, aod::StraMCCollMults, aod::McCentFV0As, aod::McCentFT0Ms, aod::McCentFT0Cs, aod::McCentFT0CVariant1s, aod::McCentNGlobals > const & mcCollisions, soa::Join<aod::V0MCCores, aod::V0MCCollRefs> const & V0MCCores, soa::Join<aod::CascMCCores, aod::CascMCCollRefs> const & CascMCCores, soa::Join<aod::StraCollisions, aod::StraCents, aod::StraEvSels, aod::StraEvSelExtras, aod::StraStamps, aod::StraEvTimes, aod::StraCollLabels> const & collisions)
3204+ void processGeneratedRun3 (soa::Join<aod::StraMCCollisions, aod::StraMCCollMults> const & mcCollisions, soa::Join<aod::V0MCCores, aod::V0MCCollRefs> const & V0MCCores, soa::Join<aod::CascMCCores, aod::CascMCCollRefs> const & CascMCCores, soa::Join<aod::StraCollisions, aod::StraCents, aod::StraEvSels, aod::StraEvSelExtras, aod::StraStamps, aod::StraEvTimes, aod::StraCollLabels> const & collisions)
32293205 {
32303206 analyzeGeneratedV0s<true >(mcCollisions, V0MCCores, CascMCCores, collisions);
32313207 }
0 commit comments