Skip to content

Commit 3fa6ccd

Browse files
authored
[PWGEM] Adding histograms for accepted pi0 and eta into gamma gamma decay cha… (#15465)
1 parent 6cad4ab commit 3fa6ccd

File tree

1 file changed

+32
-0
lines changed

1 file changed

+32
-0
lines changed

PWGEM/PhotonMeson/TableProducer/associateMCinfoPhoton.cxx

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ struct AssociateMCInfoPhoton {
6565
Configurable<float> margin_z_gen{"margin_z_gen", 15.f, "margin for Z of true photon conversion point to store generated information"};
6666
Configurable<float> max_rxy_gen{"max_rxy_gen", 100, "max rxy to store generated information"};
6767
Configurable<bool> requireGammaGammaDecay{"requireGammaGammaDecay", false, "require gamma gamma decay for generated pi0 and eta meson"};
68+
Configurable<float> cfg_max_eta_photon{"cfg_max_eta_gamma", 0.8, "max eta for photons at PV"};
6869

6970
HistogramRegistry registry{"EMMCEvent"};
7071

@@ -98,6 +99,7 @@ struct AssociateMCInfoPhoton {
9899

99100
for (uint i = 0; i < NParticleNames; i++) {
100101
registry.add<TH2>(Form("Generated/h2PtY_%s", ParticleNames[i].data()), Form("Generated %s", ParticleNames[i].data()), kTH2F, {axisPt, axisRapidity}, true);
102+
registry.add<TH2>(Form("Generated/h2PtY_Accepted_%s", ParticleNames[i].data()), Form("Generated %s", ParticleNames[i].data()), kTH2F, {axisPt, axisRapidity}, true);
101103
}
102104

103105
// reserve space for generated vectors if that process enabled
@@ -170,6 +172,15 @@ struct AssociateMCInfoPhoton {
170172
for (const auto& mcParticle : groupedMcParticles) { // store necessary information for denominator of efficiency
171173
if ((mcParticle.isPhysicalPrimary() || mcParticle.producedByGenerator()) && std::fabs(mcParticle.y()) < 0.9f && mcParticle.pt() < 20.f) {
172174
auto binNumber = hBinFinder->FindBin(mcParticle.pt(), std::fabs(mcParticle.y())); // caution: pack
175+
176+
bool isMesonAccepted = false;
177+
if (mcParticle.has_daughters()) {
178+
auto lDaughters = mcParticle.daughters_as<aod::McParticles>();
179+
180+
if (areTwoPhotonDaughtersAccepted(lDaughters, cfg_max_eta_photon)) {
181+
isMesonAccepted = true;
182+
}
183+
}
173184
switch (std::abs(mcParticle.pdgCode())) {
174185
case PDG_t::kGamma:
175186
registry.fill(HIST("Generated/h2PtY_Gamma"), mcParticle.pt(), std::fabs(mcParticle.y()));
@@ -180,12 +191,18 @@ struct AssociateMCInfoPhoton {
180191
continue;
181192
registry.fill(HIST("Generated/h2PtY_Pi0"), mcParticle.pt(), std::fabs(mcParticle.y()));
182193
genPi0[binNumber]++;
194+
if (isMesonAccepted) {
195+
registry.fill(HIST("Generated/h2PtY_Accepted_Pi0"), mcParticle.pt(), std::fabs(mcParticle.y()));
196+
}
183197
break;
184198
case Pdg::kEta:
185199
if (requireGammaGammaDecay && !isGammaGammaDecay(mcParticle, mcParticles))
186200
continue;
187201
registry.fill(HIST("Generated/h2PtY_Eta"), mcParticle.pt(), std::fabs(mcParticle.y()));
188202
genEta[binNumber]++;
203+
if (isMesonAccepted) {
204+
registry.fill(HIST("Generated/h2PtY_Accepted_Eta"), mcParticle.pt(), std::fabs(mcParticle.y()));
205+
}
189206
break;
190207
default:
191208
break;
@@ -492,6 +509,21 @@ struct AssociateMCInfoPhoton {
492509
fCounters[1] = 0;
493510
} // end of skimmingMC
494511

512+
template <typename Daughters>
513+
inline bool areTwoPhotonDaughtersAccepted(const Daughters& lDaughters, float maxEta)
514+
{
515+
if (lDaughters.size() != 2) {
516+
return false;
517+
}
518+
519+
auto it0 = lDaughters.begin();
520+
auto it1 = it0;
521+
++it1;
522+
523+
return (std::fabs(it0.eta()) < maxEta &&
524+
std::fabs(it1.eta()) < maxEta);
525+
}
526+
495527
void processMC_PCM(MyCollisionsMC const& collisions, aod::BCs const& bcs, aod::McCollisions const& mccollisions, aod::McParticles const& mcParticles, TracksMC const& o2tracks, aod::V0PhotonsKF const& v0photons, aod::V0Legs const& v0legs)
496528
{
497529
skimmingMC<kPCM>(collisions, bcs, mccollisions, mcParticles, o2tracks, nullptr, v0photons, v0legs, nullptr, nullptr, nullptr);

0 commit comments

Comments
 (0)