@@ -93,7 +93,7 @@ struct CascadeAnalysisLightIonsDerivedData {
9393 Configurable<bool> rejectITSROFBorder{"rejectITSROFBorder", true, "reject events at ITS ROF border"};
9494 Configurable<bool> rejectTFBorder{"rejectTFBorder", true, "reject events at TF border"};
9595 Configurable<bool> requireVertexITSTPC{"requireVertexITSTPC", false, "require events with at least one ITS-TPC track"};
96- Configurable<bool> requireIsGoodZvtxFT0VsPV{"requireIsGoodZvtxFT0VsPV", false , "require is good Zvtx FT0 vs PV"};
96+ Configurable<bool> requireIsGoodZvtxFT0VsPV{"requireIsGoodZvtxFT0VsPV", true , "require is good Zvtx FT0 vs PV"};
9797 Configurable<bool> requireIsVertexTOFmatched{"requireIsVertexTOFmatched", false, "require events with at least one of vertex contributors matched to TOF"};
9898 Configurable<bool> requireIsVertexTRDmatched{"requireIsVertexTRDmatched", false, "require events with at least one of vertex contributors matched to TRD"};
9999 Configurable<bool> rejectSameBunchPileup{"rejectSameBunchPileup", true, "reject collisions in case of pileup with another collision in the same foundBC"};
@@ -134,6 +134,7 @@ struct CascadeAnalysisLightIonsDerivedData {
134134 ConfigurableAxis centEstimatorHistBin{"centEstimatorHistBin", {501, -0.5, 500.5}, ""};
135135 ConfigurableAxis centralityBinning{"centralityBinning", {VARIABLE_WIDTH, 0, 5, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100}, ""};
136136 ConfigurableAxis axisNch{"axisNch", {500, 0.0f, +1000.0f}, "Number of charged particles"};
137+ ConfigurableAxis axisMult{"axisMult", {500, 0.0f, +1000.0f}, "Multiplicity"};
137138
138139 // Centrality estimator
139140 Configurable<int> centralityEstimator{"centralityEstimator", 0, "0 = FT0C, 1 = FTOM, 2 = FV0A, 3 = NGlobal"};
@@ -200,6 +201,7 @@ struct CascadeAnalysisLightIonsDerivedData {
200201 // Multiplicity Histograms
201202 registryData.add("hCentEstimator", "hCentEstimator", HistType::kTH1D, {axisCentEstimator});
202203 registryData.add("hCentralityVsNch", "hCentralityVsNch", HistType::kTH2D, {axisCentEstimator, axisNch});
204+ registryData.add("hCentralityVsMultiplicity", "hCentralityVsMultiplicity", HistType::kTH2D, {axisCentEstimator, axisMult});
203205
204206 // Histograms for xi (data)
205207 registryData.add("hMassXipos", "hMassXipos", HistType::kTH3F, {centAxis, ptAxis, invMassXiAxis});
@@ -244,6 +246,7 @@ struct CascadeAnalysisLightIonsDerivedData {
244246 // Multiplicity Histograms
245247 registryMC.add("hCentEstimator_truerec", "hCentEstimator_truerec", HistType::kTH1D, {axisCentEstimator});
246248 registryMC.add("hCentralityVsNch_truerec", "hCentralityVsNch_truerec", HistType::kTH2D, {axisCentEstimator, axisNch});
249+ registryMC.add("hCentralityVsMultiplicity_truerec", "hCentralityVsMultiplicity_truerec", HistType::kTH2D, {axisCentEstimator, axisMult});
247250
248251 // Histograms for xi (mc)
249252 registryMC.add("hMassXipos_truerec", "hMassXipos_truerec", HistType::kTH3F, {centAxis, ptAxis, invMassXiAxis});
@@ -623,7 +626,7 @@ struct CascadeAnalysisLightIonsDerivedData {
623626 bool atLeastOne = false;
624627 int biggestNContribs = -1;
625628 int nCollisions = 0;
626- float multiplicitydata = -1.0f;
629+ float centralitydata = -1.0f;
627630 for (auto const& collision : groupedCollisions) {
628631 // event selections
629632 if (applySel8 && !collision.sel8())
@@ -663,29 +666,29 @@ struct CascadeAnalysisLightIonsDerivedData {
663666 if (biggestNContribs < collision.multPVTotalContributors()) {
664667 biggestNContribs = collision.multPVTotalContributors();
665668 if (centralityEstimator == Option::kFT0C)
666- multiplicitydata = collision.centFT0C();
669+ centralitydata = collision.centFT0C();
667670 if (centralityEstimator == Option::kFT0M)
668- multiplicitydata = collision.centFT0M();
671+ centralitydata = collision.centFT0M();
669672 if (centralityEstimator == Option::kFV0A)
670- multiplicitydata = collision.centFV0A();
673+ centralitydata = collision.centFV0A();
671674 if (centralityEstimator == Option::kNGlobal)
672- multiplicitydata = collision.centNGlobal();
675+ centralitydata = collision.centNGlobal();
673676 }
674677 nCollisions++;
675678
676679 atLeastOne = true;
677680 }
678681
679- registryMC.fill(HIST("hCentralityVsNcoll_beforeEvSel"), multiplicitydata , groupedCollisions.size());
680- registryMC.fill(HIST("hCentralityVsNcoll_afterEvSel"), multiplicitydata , nCollisions);
681- registryMC.fill(HIST("hCentralityVsMultMC"), multiplicitydata , mcCollisions.multMCNParticlesEta05());
682+ registryMC.fill(HIST("hCentralityVsNcoll_beforeEvSel"), centralitydata , groupedCollisions.size());
683+ registryMC.fill(HIST("hCentralityVsNcoll_afterEvSel"), centralitydata , nCollisions);
684+ registryMC.fill(HIST("hCentralityVsMultMC"), centralitydata , mcCollisions.multMCNParticlesEta05());
682685
683686 registryQC.fill(HIST("hVertexZGen"), mcCollisions.posZ());
684687
685688 if (atLeastOne) {
686689 registryMC.fill(HIST("hGenEvents"), mcCollisions.multMCNParticlesEta05(), 1 /* at least 1 rec. event*/);
687690
688- registryMC.fill(HIST("hGenEventCentrality"), multiplicitydata );
691+ registryMC.fill(HIST("hGenEventCentrality"), centralitydata );
689692 }
690693 }
691694 return;
@@ -747,20 +750,30 @@ struct CascadeAnalysisLightIonsDerivedData {
747750 // Store the Zvtx
748751 registryQC.fill(HIST("hVertexZdata"), std::fabs(collision.posZ()));
749752
750- // Store the event multiplicity using different estimators
753+ // Store the event centrality using different estimators
754+ float centrality = -1.0f;
751755 float multiplicity = -1.0f;
752756
753- if (centralityEstimator == Option::kFT0C)
754- multiplicity = collision.centFT0C();
755- if (centralityEstimator == Option::kFT0M)
756- multiplicity = collision.centFT0M();
757- if (centralityEstimator == Option::kFV0A)
758- multiplicity = collision.centFV0A();
759- if (centralityEstimator == Option::kNGlobal)
760- multiplicity = collision.centNGlobal();
757+ if (centralityEstimator == Option::kFT0C) {
758+ centrality = collision.centFT0C();
759+ multiplicity = collision.multFT0C();
760+ }
761+ if (centralityEstimator == Option::kFT0M) {
762+ centrality = collision.centFT0M();
763+ multiplicity = collision.multFT0C() + collision.multFT0A();
764+ }
765+ if (centralityEstimator == Option::kFV0A) {
766+ centrality = collision.centFV0A();
767+ multiplicity = collision.multFV0A();
768+ }
769+ if (centralityEstimator == Option::kNGlobal) {
770+ centrality = collision.centNGlobal();
771+ multiplicity = collision.multNTracksGlobal();
772+ }
761773
762- registryData.fill(HIST("hCentEstimator"), multiplicity);
763- registryData.fill(HIST("hCentralityVsNch"), multiplicity, collision.multNTracksPVeta1());
774+ registryData.fill(HIST("hCentEstimator"), centrality);
775+ registryData.fill(HIST("hCentralityVsNch"), centrality, collision.multNTracksPVeta1());
776+ registryData.fill(HIST("hCentralityVsMultiplicity"), centrality, multiplicity);
764777
765778 // Loop over cascades
766779 for (const auto& casc : fullCascades) {
@@ -788,25 +801,25 @@ struct CascadeAnalysisLightIonsDerivedData {
788801
789802 // ------------------------------------- Store selctions distribution for analysis
790803 if (casc.sign() < 0) {
791- registryData.fill(HIST("hMassXineg"), multiplicity , casc.pt(), casc.mXi());
792- registryData.fill(HIST("hMassOmeganeg"), multiplicity , casc.pt(), casc.mOmega());
804+ registryData.fill(HIST("hMassXineg"), centrality , casc.pt(), casc.mXi());
805+ registryData.fill(HIST("hMassOmeganeg"), centrality , casc.pt(), casc.mOmega());
793806 }
794807 if (casc.sign() > 0) {
795- registryData.fill(HIST("hMassXipos"), multiplicity , casc.pt(), casc.mXi());
796- registryData.fill(HIST("hMassOmegapos"), multiplicity , casc.pt(), casc.mOmega());
808+ registryData.fill(HIST("hMassXipos"), centrality , casc.pt(), casc.mXi());
809+ registryData.fill(HIST("hMassOmegapos"), centrality , casc.pt(), casc.mOmega());
797810 }
798811
799812 if (casc.sign() < 0 && passedXiSelection(casc, pos, neg, bach, collision)) {
800- registryData.fill(HIST("hMassXinegSelected"), multiplicity , casc.pt(), casc.mXi());
813+ registryData.fill(HIST("hMassXinegSelected"), centrality , casc.pt(), casc.mXi());
801814 }
802815 if (casc.sign() < 0 && passedOmegaSelection(casc, pos, neg, bach, collision)) {
803- registryData.fill(HIST("hMassOmeganegSelected"), multiplicity , casc.pt(), casc.mOmega());
816+ registryData.fill(HIST("hMassOmeganegSelected"), centrality , casc.pt(), casc.mOmega());
804817 }
805818 if (casc.sign() > 0 && passedXiSelection(casc, pos, neg, bach, collision)) {
806- registryData.fill(HIST("hMassXiposSelected"), multiplicity , casc.pt(), casc.mXi());
819+ registryData.fill(HIST("hMassXiposSelected"), centrality , casc.pt(), casc.mXi());
807820 }
808821 if (casc.sign() > 0 && passedOmegaSelection(casc, pos, neg, bach, collision)) {
809- registryData.fill(HIST("hMassOmegaposSelected"), multiplicity , casc.pt(), casc.mOmega());
822+ registryData.fill(HIST("hMassOmegaposSelected"), centrality , casc.pt(), casc.mOmega());
810823 }
811824 }
812825 }
@@ -869,20 +882,30 @@ struct CascadeAnalysisLightIonsDerivedData {
869882 // Store the Zvtx
870883 registryQC.fill(HIST("hVertexZRec"), RecCol.posZ());
871884
872- // Store the event multiplicity using different estimators
885+ // Store the event centrality using different estimators
886+ float centralityMcRec = -1.0f;
873887 float multiplicityMcRec = -1.0f;
874888
875- if (centralityEstimator == Option::kFT0C)
876- multiplicityMcRec = RecCol.centFT0C();
877- if (centralityEstimator == Option::kFT0M)
878- multiplicityMcRec = RecCol.centFT0M();
879- if (centralityEstimator == Option::kFV0A)
880- multiplicityMcRec = RecCol.centFV0A();
881- if (centralityEstimator == Option::kNGlobal)
882- multiplicityMcRec = RecCol.centNGlobal();
889+ if (centralityEstimator == Option::kFT0C) {
890+ centralityMcRec = RecCol.centFT0C();
891+ multiplicityMcRec = RecCol.multFT0C();
892+ }
893+ if (centralityEstimator == Option::kFT0M) {
894+ centralityMcRec = RecCol.centFT0M();
895+ multiplicityMcRec = RecCol.multFT0C() + RecCol.multFT0A();
896+ }
897+ if (centralityEstimator == Option::kFV0A) {
898+ centralityMcRec = RecCol.centFV0A();
899+ multiplicityMcRec = RecCol.multFV0A();
900+ }
901+ if (centralityEstimator == Option::kNGlobal) {
902+ centralityMcRec = RecCol.centNGlobal();
903+ multiplicityMcRec = RecCol.multNTracksGlobal();
904+ }
883905
884- registryMC.fill(HIST("hCentEstimator_truerec"), multiplicityMcRec);
885- registryMC.fill(HIST("hCentralityVsNch_truerec"), multiplicityMcRec, RecCol.multNTracksPVeta1());
906+ registryMC.fill(HIST("hCentEstimator_truerec"), centralityMcRec);
907+ registryMC.fill(HIST("hCentralityVsNch_truerec"), centralityMcRec, RecCol.multNTracksPVeta1());
908+ registryMC.fill(HIST("hCentralityVsMultiplicity_truerec"), centralityMcRec, multiplicityMcRec);
886909
887910 for (const auto& casc : fullCascades) {
888911 if (etaMin > casc.bacheloreta() || casc.bacheloreta() > etaMax ||
@@ -923,33 +946,33 @@ struct CascadeAnalysisLightIonsDerivedData {
923946 // ------------------------------------- Store selctions distribution for analysis
924947 if (casc.sign() < 0) {
925948 if (pdgParent == kXiMinus) {
926- registryMC.fill(HIST("hMassXineg_truerec"), multiplicityMcRec , ptmc, casc.mXi());
949+ registryMC.fill(HIST("hMassXineg_truerec"), centralityMcRec , ptmc, casc.mXi());
927950 }
928951 if (pdgParent == kOmegaMinus) {
929- registryMC.fill(HIST("hMassOmeganeg_truerec"), multiplicityMcRec , ptmc, casc.mOmega());
952+ registryMC.fill(HIST("hMassOmeganeg_truerec"), centralityMcRec , ptmc, casc.mOmega());
930953 }
931954 }
932955
933956 if (casc.sign() > 0) {
934957 if (pdgParent == kXiPlusBar) {
935- registryMC.fill(HIST("hMassXipos_truerec"), multiplicityMcRec , ptmc, casc.mXi());
958+ registryMC.fill(HIST("hMassXipos_truerec"), centralityMcRec , ptmc, casc.mXi());
936959 }
937960 if (pdgParent == kOmegaPlusBar) {
938- registryMC.fill(HIST("hMassOmegapos_truerec"), multiplicityMcRec , ptmc, casc.mOmega());
961+ registryMC.fill(HIST("hMassOmegapos_truerec"), centralityMcRec , ptmc, casc.mOmega());
939962 }
940963 }
941964
942965 if (casc.sign() < 0 && pdgParent == kXiMinus && passedXiSelection(casc, pos, neg, bach, RecCol)) {
943- registryMC.fill(HIST("hMassXinegSelected_truerec"), multiplicityMcRec , ptmc, casc.mXi());
966+ registryMC.fill(HIST("hMassXinegSelected_truerec"), centralityMcRec , ptmc, casc.mXi());
944967 }
945968 if (casc.sign() < 0 && pdgParent == kOmegaMinus && passedOmegaSelection(casc, pos, neg, bach, RecCol)) {
946- registryMC.fill(HIST("hMassOmeganegSelected_truerec"), multiplicityMcRec , ptmc, casc.mOmega());
969+ registryMC.fill(HIST("hMassOmeganegSelected_truerec"), centralityMcRec , ptmc, casc.mOmega());
947970 }
948971 if (casc.sign() > 0 && pdgParent == kXiPlusBar && passedXiSelection(casc, pos, neg, bach, RecCol)) {
949- registryMC.fill(HIST("hMassXiposSelected_truerec"), multiplicityMcRec , ptmc, casc.mXi());
972+ registryMC.fill(HIST("hMassXiposSelected_truerec"), centralityMcRec , ptmc, casc.mXi());
950973 }
951974 if (casc.sign() > 0 && pdgParent == kOmegaPlusBar && passedOmegaSelection(casc, pos, neg, bach, RecCol)) {
952- registryMC.fill(HIST("hMassOmegaposSelected_truerec"), multiplicityMcRec , ptmc, casc.mOmega());
975+ registryMC.fill(HIST("hMassOmegaposSelected_truerec"), centralityMcRec , ptmc, casc.mOmega());
953976 }
954977 } // casc loop
955978 } // rec.collision loop
0 commit comments