|
11 | 11 |
|
12 | 12 | #include "Framework/AnalysisTask.h" |
13 | 13 | #include "Framework/O2DatabasePDGPlugin.h" |
14 | | -#include "TDatabasePDG.h" |
15 | 14 | #include "Framework/runDataProcessing.h" |
16 | 15 |
|
17 | 16 | using namespace o2; |
18 | 17 | using namespace o2::framework; |
19 | 18 |
|
20 | 19 | struct UsePdgDatabase { |
21 | | - Service<O2DatabasePDG> pdg; |
| 20 | + Service<o2::framework::O2DatabasePDG> pdg; |
22 | 21 | OutputObj<TH1F> particleCharges{TH1F("charges", ";charge;entries", 201, -10.1, 10.1)}; |
| 22 | + OutputObj<TH1F> particleMasses{TH1F("masses", ";mass (GeV/#it{c}^{2});entries", 1000, 0., 10.)}; |
23 | 23 |
|
24 | 24 | void process(aod::McCollision const&, aod::McParticles const& particles) |
25 | 25 | { |
26 | | - for (auto& particle : particles) { |
27 | | - auto pdgInfo = pdg->GetParticle(particle.pdgCode()); |
| 26 | + for (auto const& particle : particles) { |
| 27 | + auto pdgCode = particle.pdgCode(); |
| 28 | + auto mass = pdg->Mass(pdgCode); |
| 29 | + if (mass < 0.) { |
| 30 | + continue; |
| 31 | + } |
| 32 | + particleMasses->Fill(mass); |
| 33 | + // LOGF(info, "PDG: %d %g", pdgCode, mass); |
| 34 | + auto pdgInfo = pdg->GetParticle(pdgCode); |
28 | 35 | if (pdgInfo != nullptr) { |
29 | 36 | particleCharges->Fill(pdgInfo->Charge()); |
30 | 37 | } else { |
31 | | - LOGF(warn, "[%d] unknown particle with PDG code %d", particle.globalIndex(), particle.pdgCode()); |
| 38 | + LOGF(warn, "[%d] unknown particle with PDG code %d", particle.globalIndex(), pdgCode); |
32 | 39 | } |
33 | 40 | } |
34 | 41 | } |
|
0 commit comments