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