Skip to content

Commit e7ecee5

Browse files
sawankumawatSawan Sawan
andauthored
[PWGLF] Generated multiplicity added (#12663)
Co-authored-by: Sawan Sawan <sawan.sawan@cern.ch>
1 parent cb44e4c commit e7ecee5

File tree

1 file changed

+40
-75
lines changed

1 file changed

+40
-75
lines changed

PWGLF/Tasks/Resonances/kstarqa.cxx

Lines changed: 40 additions & 75 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)