@@ -305,23 +305,32 @@ struct Kstarqa {
305305 // MC histograms
306306 hInvMass.add (" hk892GenpT" , " pT distribution of True MC K(892)0" , kTHnSparseF , {ptAxis, multiplicityAxis});
307307 hInvMass.add (" hk892GenpT2" , " pT distribution of True MC K(892)0" , kTHnSparseF , {ptAxis, multiplicityAxis});
308+ hInvMass.add (" hk892GenpTCalib1" , " pT distribution of True MC K(892)0" , kTHnSparseF , {ptAxis, multiplicityAxis});
309+ hInvMass.add (" hk892GenpTCalib2" , " pT distribution of True MC K(892)0" , kTHnSparseF , {ptAxis, multiplicityAxis});
308310 hInvMass.add (" h1KstarRecMass" , " Invariant mass of kstar meson" , kTH1F , {invmassAxis});
309311 hInvMass.add (" h2KstarRecpt1" , " pT of kstar meson" , kTHnSparseF , {ptAxis, multiplicityAxis, invmassAxis});
310- hInvMass.add (" h2KstarRecpt2" , " pT of generated kstar meson" , kTHnSparseF , {ptAxis, multiplicityAxis, invmassAxis});
312+ hInvMass.add (" h2KstarRecpt2" , " pT of kstar meson" , kTHnSparseF , {ptAxis, multiplicityAxis, invmassAxis});
313+ hInvMass.add (" h2KstarRecptCalib1" , " pT of kstar meson" , kTHnSparseF , {ptAxis, multiplicityAxis, invmassAxis});
314+ hInvMass.add (" h2KstarRecptCalib2" , " pT of kstar meson" , kTHnSparseF , {ptAxis, multiplicityAxis, invmassAxis});
311315 hInvMass.add (" h1genmass" , " Invariant mass of generated kstar meson" , kTH1F , {invmassAxis});
312316 hInvMass.add (" h1GenMult" , " Multiplicity generated" , kTH1F , {multiplicityAxis});
317+ hInvMass.add (" h1GenMult2" , " Multiplicity generated (direct)" , kTH1F , {multiplicityAxis});
313318 hInvMass.add (" h1RecMult" , " Multiplicity reconstructed" , kTH1F , {multiplicityAxis});
319+ hInvMass.add (" h1RecMult2" , " Multiplicity reconstructed" , kTH1F , {multiplicityAxis});
314320 hInvMass.add (" h1KSRecsplit" , " KS meson Rec split" , kTH1F , {{100 , 0 .0f , 10 .0f }});
315- hInvMass.add (" MCcorrections/hSignalLossDenominator" , " Kstar generated before event selection" , kTH2F , {{ptAxis}, {impactParAxis }});
316- hInvMass.add (" MCcorrections/hSignalLossNumerator" , " Kstar generated after event selection" , kTH2F , {{ptAxis}, {impactParAxis }});
321+ hInvMass.add (" MCcorrections/hSignalLossDenominator" , " Kstar generated before event selection" , kTH2F , {{ptAxis}, {multiplicityAxis }});
322+ hInvMass.add (" MCcorrections/hSignalLossNumerator" , " Kstar generated after event selection" , kTH2F , {{ptAxis}, {multiplicityAxis }});
317323 // hInvMass.add("hAllGenCollisionsImpact", "All generated collisions vs impact parameter", kTH1F, {multiplicityAxis});
318324 hInvMass.add (" hAllGenCollisions" , " All generated events" , kTH1F , {multiplicityAxis});
319325 hInvMass.add (" hAllGenCollisions1Rec" , " All gen events with at least one rec event" , kTH1F , {multiplicityAxis});
320326 hInvMass.add (" hAllKstarGenCollisisons" , " All generated Kstar in events with rapidity in 0.5" , kTH2F , {{multiplicityAxis}, {ptAxis}});
321327 hInvMass.add (" hAllKstarGenCollisisons1Rec" , " All generated Kstar in events with at least one rec event in rapidity in 0.5" , kTH2F , {{multiplicityAxis}, {ptAxis}});
322328 hInvMass.add (" hAllRecCollisions" , " All reconstructed events" , kTH1F , {multiplicityAxis});
329+ hInvMass.add (" hAllRecCollisionsCalib" , " All reconstructed events" , kTH1F , {multiplicityAxis});
323330 hInvMass.add (" MCcorrections/hImpactParameterRec" , " Impact parameter in reconstructed MC" , kTH1F , {impactParAxis});
331+ hInvMass.add (" MCcorrections/MultiplicityRec" , " Multiplicity in reconstructed MC" , kTH1F , {multiplicityAxis});
324332 hInvMass.add (" MCcorrections/hImpactParameterGen" , " Impact parameter in generated MC" , kTH1F , {impactParAxis});
333+ hInvMass.add (" MCcorrections/MultiplicityGen" , " Multiplicity in generated MC" , kTH1F , {multiplicityAxis});
325334 hInvMass.add (" MCcorrections/hImpactParametervsMultiplicity" , " Impact parameter vs multiplicity in reconstructed MC" , kTH2F , {{impactParAxis}, {multiplicityAxis}});
326335 rEventSelection.add (" tracksCheckData" , " No. of events in the data" , kTH1I , {{10 , 0 , 10 }});
327336 rEventSelection.add (" eventsCheckGen" , " No. of events in the generated MC" , kTH1I , {{10 , 0 , 10 }});
@@ -753,7 +762,8 @@ struct Kstarqa {
753762 // using EventCandidatesMC = soa::Filtered<soa::Join<aod::Collisions, aod::EvSels, aod::McCollisionLabels, aod::CentFT0Ms, aod::CentFT0As, aod::CentFT0Cs, aod::FT0Mults, aod::PVMults, aod::CentFV0As>>;
754763
755764 using TrackCandidatesMC = soa::Filtered<soa::Join<aod::Tracks, aod::TracksExtra, aod::TracksDCA, aod::TrackSelection, aod::pidTPCFullKa, aod::pidTOFFullKa, aod::pidTPCFullPi, aod::pidTOFFullPi, aod::pidTPCFullPr, aod::pidTOFFullPr, aod::McTrackLabels, aod::pidTOFbeta, aod::TrackSelectionExtension>>;
756- using EventMCGenerated = soa::Join<aod::McCollisions, aod::MultsExtraMC>; // aod::CentNGlobals, aod::CentNTPVs, aod::CentMFTs
765+ // using EventMCGenerated = soa::Join<aod::McCollisions, aod::MultsExtraMC>; // aod::CentNGlobals, aod::CentNTPVs, aod::CentMFTs
766+ using EventMCGenerated = soa::Join<aod::McCollisions, aod::McCentFT0Ms, aod::MultsExtraMC>;
757767
758768 // *********Varibles declaration***************
759769 float multiplicity{-1.0 }, theta2;
@@ -1484,8 +1494,8 @@ struct Kstarqa {
14841494
14851495 Service<o2::framework::O2DatabasePDG> pdgDB;
14861496
1487- // void processGen(EventMCGenerated::iterator const& mcCollision, aod::McParticles const& mcParticles, const soa::SmallGroups<EventCandidatesMC>& collisions)
1488- void processGen (aod::McCollision const & mcCollision, aod::McParticles const & mcParticles, const soa::SmallGroups<EventCandidatesMC>& collisions)
1497+ void processGen (EventMCGenerated::iterator const & mcCollision, aod::McParticles const & mcParticles, const soa::SmallGroups<EventCandidatesMC>& collisions)
1498+ // void processGen(aod::McCollision const& mcCollision, aod::McParticles const& mcParticles, const soa::SmallGroups<EventCandidatesMC>& collisions)
14891499 {
14901500 rEventSelection.fill (HIST (" eventsCheckGen" ), 0.5 );
14911501
@@ -1521,32 +1531,10 @@ struct Kstarqa {
15211531 rEventSelection.fill (HIST (" eventsCheckGen" ), 2.5 );
15221532
15231533 for (const auto & collision : collisions) {
1524- // if (!collision.sel8() || std::abs(collision.mcCollision().posZ()) > selectionConfig.cutzvertex) {
1525- // if (std::abs(collision.mcCollision().posZ()) > selectionConfig.cutzvertex) {
1526- // continue;
1527- // }
1528- // if (!collision.sel8()) {
1529- // continue;
1530- // }
1531- // if (selectionConfig.isNoTimeFrameBorder && !collision.selection_bit(aod::evsel::kNoTimeFrameBorder)) {
1532- // continue;
1533- // }
1534- // if (selectionConfig.isTriggerTVX && !collision.selection_bit(aod::evsel::kIsTriggerTVX)) {
1535- // continue;
1536- // }
1537- // if (selectionConfig.isINELgt0 && !collision.isInelGt0()) {
1538- // continue;
1539- // }
1540- // if (selectionConfig.isNoSameBunchPileup && !collision.selection_bit(aod::evsel::kNoSameBunchPileup)) {
1541- // continue;
1542- // }
1543- // if (selectionConfig.isGoodZvtxFT0vsPV && !collision.selection_bit(aod::evsel::kIsGoodZvtxFT0vsPV)) {
1544- // continue;
1545- // }
15461534 if (!selectionEvent (collision, true )) {
15471535 continue ;
15481536 }
1549- // multiplicity = collision.centFT0M();
1537+ multiplicity = collision.centFT0M ();
15501538
15511539 if (cSelectMultEstimator == kFT0M ) {
15521540 multiplicity = collision.centFT0M ();
@@ -1564,7 +1552,7 @@ struct Kstarqa {
15641552 int occupancy = collision.trackOccupancyInTimeRange ();
15651553 rEventSelection.fill (HIST (" hOccupancy" ), occupancy);
15661554
1567- selectedEvents[nevts++] = collision.mcCollision_as <aod::McCollisions >().globalIndex ();
1555+ selectedEvents[nevts++] = collision.mcCollision_as <EventMCGenerated >().globalIndex ();
15681556 }
15691557 selectedEvents.resize (nevts);
15701558
@@ -1579,6 +1567,8 @@ struct Kstarqa {
15791567 if (!cAllGenCollisions && !evtReconstructedAndSelected) { // Check that the event is reconstructed and that the reconstructed events pass the selection
15801568 return ;
15811569 }
1570+ double genMultiplicity = mcCollision.centFT0M ();
1571+ hInvMass.fill (HIST (" h1GenMult2" ), genMultiplicity);
15821572 hInvMass.fill (HIST (" hAllGenCollisions1Rec" ), multiplicity);
15831573 rEventSelection.fill (HIST (" eventsCheckGen" ), 3.5 );
15841574
@@ -1625,14 +1615,16 @@ struct Kstarqa {
16251615 mother = daughter1 + daughter2; // Kstar meson
16261616 hInvMass.fill (HIST (" hk892GenpT" ), mcParticle.pt (), multiplicity);
16271617 hInvMass.fill (HIST (" hk892GenpT2" ), mother.Pt (), multiplicity);
1618+ hInvMass.fill (HIST (" hk892GenpTCalib1" ), mcParticle.pt (), genMultiplicity);
1619+ hInvMass.fill (HIST (" hk892GenpTCalib2" ), mother.Pt (), genMultiplicity);
16281620 hInvMass.fill (HIST (" h1genmass" ), mother.M ());
16291621 }
16301622 }
16311623 }
16321624 PROCESS_SWITCH (Kstarqa, processGen, " Process Generated" , false );
16331625
1634- // void processEvtLossSigLossMC(EventMCGenerated::iterator const& mcCollision, aod::McParticles const& mcParticles, const soa::SmallGroups<EventCandidatesMC>& recCollisions)
1635- void processEvtLossSigLossMC (aod::McCollisions::iterator const & mcCollision, aod::McParticles const & mcParticles, const soa::SmallGroups<EventCandidatesMC>& recCollisions)
1626+ void processEvtLossSigLossMC (EventMCGenerated::iterator const & mcCollision, aod::McParticles const & mcParticles, const soa::SmallGroups<EventCandidatesMC>& recCollisions)
1627+ // void processEvtLossSigLossMC(aod::McCollisions::iterator const& mcCollision, aod::McParticles const& mcParticles, const soa::SmallGroups<EventCandidatesMC>& recCollisions)
16361628 {
16371629 // if (selectionConfig.isINELgt0 && !mcCollision.isInelGt0()) {
16381630 // return;
@@ -1648,7 +1640,10 @@ struct Kstarqa {
16481640 }
16491641
16501642 auto impactPar = mcCollision.impactParameter ();
1643+ multiplicity = -1 ;
1644+ multiplicity = mcCollision.centFT0M ();
16511645 hInvMass.fill (HIST (" MCcorrections/hImpactParameterGen" ), impactPar);
1646+ hInvMass.fill (HIST (" MCcorrections/MultiplicityGen" ), multiplicity);
16521647
16531648 bool isSelectedEvent = false ;
16541649 auto multiplicity1 = -999 .;
@@ -1675,6 +1670,7 @@ struct Kstarqa {
16751670 // Event loss
16761671 if (isSelectedEvent) {
16771672 hInvMass.fill (HIST (" MCcorrections/hImpactParameterRec" ), impactPar);
1673+ hInvMass.fill (HIST (" MCcorrections/MultiplicityRec" ), multiplicity);
16781674 hInvMass.fill (HIST (" MCcorrections/hImpactParametervsMultiplicity" ), impactPar, multiplicity1);
16791675 }
16801676
@@ -1684,21 +1680,26 @@ struct Kstarqa {
16841680 continue ;
16851681
16861682 // signal loss estimation
1687- hInvMass.fill (HIST (" MCcorrections/hSignalLossDenominator" ), mcPart.pt (), impactPar );
1683+ hInvMass.fill (HIST (" MCcorrections/hSignalLossDenominator" ), mcPart.pt (), multiplicity );
16881684 if (isSelectedEvent) {
1689- hInvMass.fill (HIST (" MCcorrections/hSignalLossNumerator" ), mcPart.pt (), impactPar );
1685+ hInvMass.fill (HIST (" MCcorrections/hSignalLossNumerator" ), mcPart.pt (), multiplicity );
16901686 }
16911687 } // end loop on gen particles
16921688 }
16931689 PROCESS_SWITCH (Kstarqa, processEvtLossSigLossMC, " Process Signal Loss, Event Loss" , false );
16941690
1695- void processRec (EventCandidatesMC::iterator const & collision, TrackCandidatesMC const & tracks, aod::McParticles const &, aod::McCollisions const & /* mcCollisions */ )
1691+ void processRec (EventCandidatesMC::iterator const & collision, TrackCandidatesMC const & tracks, aod::McParticles const &, aod::McCollisions const &)
16961692 {
16971693
16981694 if (!collision.has_mcCollision ()) {
16991695 return ;
17001696 }
17011697
1698+ double multiplicityRec = -1.0 ;
1699+ // multiplicityRec = collision.mcCollision_as<EventMCGenerated>().centFT0M();
1700+ const auto & mcCollisionRec = collision.mcCollision_as <EventMCGenerated>();
1701+ multiplicityRec = mcCollisionRec.centFT0M ();
1702+
17021703 if (selectionConfig.isINELgt0 && !collision.isInelGt0 ()) {
17031704 return ;
17041705 }
@@ -1719,52 +1720,14 @@ struct Kstarqa {
17191720 }
17201721
17211722 hInvMass.fill (HIST (" hAllRecCollisions" ), multiplicity);
1723+ hInvMass.fill (HIST (" hAllRecCollisionsCalib" ), multiplicityRec);
17221724
17231725 if (!selectionEvent (collision, false )) {
17241726 return ;
17251727 }
17261728
1727- // // if (std::abs(collision.mcCollision().posZ()) > selectionConfig.cutzvertex || !collision.sel8()) {
1728- // if (std::abs(collision.mcCollision().posZ()) > selectionConfig.cutzvertex) {
1729- // return;
1730- // }
1731-
1732- // if (selectionConfig.isNoTimeFrameBorder && !collision.selection_bit(aod::evsel::kNoTimeFrameBorder)) {
1733- // return;
1734- // }
1735-
1736- // if (selectionConfig.isTriggerTVX && !collision.selection_bit(aod::evsel::kIsTriggerTVX)) {
1737- // return;
1738- // }
1739-
1740- // if (!collision.sel8()) {
1741- // return;
1742- // }
1743-
1744- // if (selectionConfig.isNoSameBunchPileup && !collision.selection_bit(aod::evsel::kNoSameBunchPileup)) {
1745- // return;
1746- // }
1747- // if (selectionConfig.isGoodZvtxFT0vsPV && !collision.selection_bit(aod::evsel::kIsGoodZvtxFT0vsPV)) {
1748- // return;
1749- // }
1750-
1751- // multiplicity = collision.centFT0M();
1752-
1753- multiplicity = -1.0 ;
1754-
1755- if (cSelectMultEstimator == kFT0M ) {
1756- multiplicity = collision.centFT0M ();
1757- } else if (cSelectMultEstimator == kFT0A ) {
1758- multiplicity = collision.centFT0A ();
1759- } else if (cSelectMultEstimator == kFT0C ) {
1760- multiplicity = collision.centFT0C ();
1761- } else if (cSelectMultEstimator == kFV0A ) {
1762- multiplicity = collision.centFV0A ();
1763- } else {
1764- multiplicity = collision.centFT0M (); // default
1765- }
1766-
17671729 hInvMass.fill (HIST (" h1RecMult" ), multiplicity);
1730+ hInvMass.fill (HIST (" h1RecMult2" ), multiplicityRec);
17681731
17691732 auto oldindex = -999 ;
17701733 for (const auto & track1 : tracks) {
@@ -1954,13 +1917,15 @@ struct Kstarqa {
19541917 mother = daughter1 + daughter2; // Kstar meson
19551918
19561919 hInvMass.fill (HIST (" h2KstarRecpt2" ), mothertrack1.pt (), multiplicity, std::sqrt (mothertrack1.e () * mothertrack1.e () - mothertrack1.p () * mothertrack1.p ()));
1920+ hInvMass.fill (HIST (" h2KstarRecptCalib2" ), mothertrack1.pt (), multiplicityRec, std::sqrt (mothertrack1.e () * mothertrack1.e () - mothertrack1.p () * mothertrack1.p ()));
19571921
19581922 if (applyRecMotherRapidity && mother.Rapidity () >= selectionConfig.rapidityMotherData ) {
19591923 continue ;
19601924 }
19611925
19621926 hInvMass.fill (HIST (" h1KstarRecMass" ), mother.M ());
19631927 hInvMass.fill (HIST (" h2KstarRecpt1" ), mother.Pt (), multiplicity, mother.M ());
1928+ hInvMass.fill (HIST (" h2KstarRecptCalib1" ), mother.Pt (), multiplicityRec, mother.M ());
19641929 }
19651930 }
19661931 }
0 commit comments