@@ -85,6 +85,7 @@ struct Kstarqa {
8585 Configurable<bool > isNoTimeFrameBorder{" isNoTimeFrameBorder" , true , " kNoTimeFrameBorder" };
8686 Configurable<bool > isNoITSROFrameBorder{" isNoITSROFrameBorder" , true , " kNoITSROFrameBorder" };
8787 Configurable<bool > isApplyParticleMID{" isApplyParticleMID" , true , " Apply particle misidentification" };
88+ Configurable<bool > checkVzEvSigLoss{" checkVzEvSigLoss" , false , " Check Vz event signal loss" };
8889
8990 Configurable<float > cutzvertex{" cutzvertex" , 10 .0f , " Accepted z-vertex range (cm)" };
9091 Configurable<float > configOccCut{" configOccCut" , 1000 ., " Occupancy cut" };
@@ -328,7 +329,8 @@ struct Kstarqa {
328329 hInvMass.add (" hAllRecCollisions" , " All reconstructed events" , kTH1F , {multiplicityAxis});
329330 hInvMass.add (" hAllRecCollisionsCalib" , " All reconstructed events" , kTH1F , {multiplicityAxis});
330331 hInvMass.add (" MCcorrections/hImpactParameterRec" , " Impact parameter in reconstructed MC" , kTH1F , {impactParAxis});
331- hInvMass.add (" MCcorrections/MultiplicityRec" , " Multiplicity in reconstructed MC" , kTH1F , {multiplicityAxis});
332+ hInvMass.add (" MCcorrections/MultiplicityRec" , " Multiplicity in generated MC with at least 1 reconstruction" , kTH1F , {multiplicityAxis});
333+ hInvMass.add (" MCcorrections/MultiplicityRec2" , " Multiplicity in reconstructed MC" , kTH1F , {multiplicityAxis});
332334 hInvMass.add (" MCcorrections/hImpactParameterGen" , " Impact parameter in generated MC" , kTH1F , {impactParAxis});
333335 hInvMass.add (" MCcorrections/MultiplicityGen" , " Multiplicity in generated MC" , kTH1F , {multiplicityAxis});
334336 hInvMass.add (" MCcorrections/hImpactParametervsMultiplicity" , " Impact parameter vs multiplicity in reconstructed MC" , kTH2F , {{impactParAxis}, {multiplicityAxis}});
@@ -1639,18 +1641,27 @@ struct Kstarqa {
16391641 return ;
16401642 }
16411643
1644+ if (selectionConfig.checkVzEvSigLoss && (std::abs (mcCollision.posZ ()) >= selectionConfig.cutzvertex )) {
1645+ return ;
1646+ }
1647+
16421648 auto impactPar = mcCollision.impactParameter ();
1643- multiplicity = -1 ;
1644- multiplicity = mcCollision.centFT0M ();
1649+ auto multiplicityRec = -1 ;
1650+ auto multiplicityGen = -1 ;
1651+ multiplicityGen = mcCollision.centFT0M ();
16451652 hInvMass.fill (HIST (" MCcorrections/hImpactParameterGen" ), impactPar);
1646- hInvMass.fill (HIST (" MCcorrections/MultiplicityGen" ), multiplicity );
1653+ hInvMass.fill (HIST (" MCcorrections/MultiplicityGen" ), multiplicityGen );
16471654
16481655 bool isSelectedEvent = false ;
16491656 auto multiplicity1 = -999 .;
16501657 for (const auto & RecCollision : recCollisions) {
1658+ if (!RecCollision.has_mcCollision ())
1659+ continue ;
16511660 if (!selectionEvent (RecCollision, false ))
16521661 continue ;
16531662 // multiplicity1 = RecCollision.centFT0M();
1663+ const auto & mcCollisionRec = RecCollision.mcCollision_as <EventMCGenerated>();
1664+ multiplicityRec = mcCollisionRec.centFT0M ();
16541665
16551666 if (cSelectMultEstimator == kFT0M ) {
16561667 multiplicity1 = RecCollision.centFT0M ();
@@ -1670,7 +1681,8 @@ struct Kstarqa {
16701681 // Event loss
16711682 if (isSelectedEvent) {
16721683 hInvMass.fill (HIST (" MCcorrections/hImpactParameterRec" ), impactPar);
1673- hInvMass.fill (HIST (" MCcorrections/MultiplicityRec" ), multiplicity);
1684+ hInvMass.fill (HIST (" MCcorrections/MultiplicityRec" ), multiplicityGen);
1685+ hInvMass.fill (HIST (" MCcorrections/MultiplicityRec2" ), multiplicityRec);
16741686 hInvMass.fill (HIST (" MCcorrections/hImpactParametervsMultiplicity" ), impactPar, multiplicity1);
16751687 }
16761688
@@ -1680,9 +1692,9 @@ struct Kstarqa {
16801692 continue ;
16811693
16821694 // signal loss estimation
1683- hInvMass.fill (HIST (" MCcorrections/hSignalLossDenominator" ), mcPart.pt (), multiplicity );
1695+ hInvMass.fill (HIST (" MCcorrections/hSignalLossDenominator" ), mcPart.pt (), multiplicityGen );
16841696 if (isSelectedEvent) {
1685- hInvMass.fill (HIST (" MCcorrections/hSignalLossNumerator" ), mcPart.pt (), multiplicity );
1697+ hInvMass.fill (HIST (" MCcorrections/hSignalLossNumerator" ), mcPart.pt (), multiplicityGen );
16861698 }
16871699 } // end loop on gen particles
16881700 }
0 commit comments