@@ -25,13 +25,16 @@ using namespace o2::framework::expressions;
2525AxisSpec ZAxis = {301 , -30.1 , 30.1 };
2626AxisSpec DeltaZAxis = {61 , -6.1 , 6.1 };
2727AxisSpec DCAAxis = {601 , -3.01 , 3.01 };
28- AxisSpec EtaAxis = {22 , -2 .2 , 2 .2 };
28+ AxisSpec EtaAxis = {62 , -6 .2 , 6 .2 };
2929AxisSpec RapidityAxis = {102 , -10.2 , 10.2 };
3030AxisSpec PhiAxis = {629 , 0 , 2 * M_PI};
3131AxisSpec PtAxis = {2401 , -0.005 , 24.005 };
3232AxisSpec PtAxis_wide = {1041 , -0.05 , 104.05 };
3333AxisSpec PtAxisEff = {{0.1 , 0.12 , 0.14 , 0.16 , 0.18 , 0.2 , 0.25 , 0.3 , 0.35 , 0.4 , 0.45 , 0.5 , 0.55 , 0.6 , 0.65 , 0.7 , 0.75 , 0.8 , 0.85 , 0.9 , 0.95 , 1.0 , 1.1 , 1.2 , 1.3 , 1.4 , 1.5 , 1.6 ,
3434 1.7 , 1.8 , 1.9 , 2.0 , 2.2 , 2.4 , 2.6 , 2.8 , 3.0 , 3.2 , 3.4 , 3.6 , 3.8 , 4.0 , 4.5 , 5.0 , 5.5 , 6.0 , 6.5 , 7.0 , 8.0 , 9.0 , 10.0 , 11.0 , 12.0 , 13.0 , 14.0 , 15.0 , 16.0 , 18.0 , 20.0 }};
35+ AxisSpec ScaleAxis = {121 , -0.5 , 120.5 };
36+ AxisSpec MPIAxis = {51 , -0.5 , 50.5 };
37+ AxisSpec ProcAxis = {21 , 89.5 , 110.5 };
3538
3639auto static constexpr mincharge = 3 .f;
3740
@@ -44,7 +47,7 @@ struct PureMcMultiplicityCounter {
4447 Preslice<aod::McParticles> perMcCol = aod::mcparticle::mcCollisionId;
4548 Service<o2::framework::O2DatabasePDG> pdg;
4649 Configurable<float > etaRange{" eta-range" , 1 .0f , " Eta range to consider" };
47- ConfigurableAxis multBinning{" multBinning " , {301 , -0.5 , 300.5 }, " " };
50+ ConfigurableAxis multBinning{" multiplicity-binning " , {301 , -0.5 , 300.5 }, " " };
4851
4952 HistogramRegistry registry{
5053 " registry" ,
@@ -56,6 +59,10 @@ struct PureMcMultiplicityCounter {
5659 {" Particles/Primaries/Eta" , " ; #eta" , {HistType::kTH1F , {EtaAxis}}},
5760 {" Particles/Primaries/Y" , " ; y" , {HistType::kTH1F , {RapidityAxis}}},
5861 {" Particles/Primaries/EtaZvtx" , " ; #eta; Z_{vtx} (cm); particles" , {HistType::kTH2F , {EtaAxis, ZAxis}}},
62+ {" MCEvents/Properties/ProcessID" , " ; process ID" , {HistType::kTH1F , {ProcAxis}}},
63+ {" MCEvents/Properties/ScalePerProcessID" , " ; scale (GeV); process ID" , {HistType::kTH2F , {ScaleAxis, ProcAxis}}},
64+ {" MCEvents/Properties/NMPIsPerProcessID" , " ; N_{MPI}; process ID" , {HistType::kTH2F , {MPIAxis, ProcAxis}}},
65+ {" MCEvents/Properties/ScaleVsNMPIsPerProcessID" , " ;scale (GeV); N_{MPI}; process ID" , {HistType::kTHnSparseF , {MPIAxis, ScaleAxis, ProcAxis}}},
5966 } //
6067 };
6168
@@ -68,8 +75,11 @@ struct PureMcMultiplicityCounter {
6875 }
6976
7077 AxisSpec MultAxis = {multBinning};
71- registry.add ({" MCEvents/Properties/Multiplicity" , " ; N_{p}; events" , {HistType::kTH1F , {MultAxis}}});
7278 registry.add ({" MCEvents/NtrkZvtx" , " ; N_{trk}; Z_{vtx} (cm); events" , {HistType::kTH2F , {MultAxis, ZAxis}}});
79+ registry.add ({" MCEvents/Properties/MultiplicityPerProcessID" , " ; N_{p}; process ID; events" , {HistType::kTH2F , {MultAxis, ProcAxis}}});
80+ registry.add ({" MCEvents/Properties/MultiplicityVsScalePerProcessID" , " ; scale; N_{p}; process ID" , {HistType::kTHnSparseF , {ScaleAxis, MultAxis, ProcAxis}}});
81+ registry.add ({" MCEvents/Properties/MultiplicityVsMPIsPerProcessID" , " ; N_{MPI}; N_{p}; process ID" , {HistType::kTHnSparseF , {MPIAxis, MultAxis, ProcAxis}}});
82+
7383 if (doprocessReco) {
7484 registry.add ({" Events/Properties/Multiplicity" , " ; N_{p}; events" , {HistType::kTH1F , {MultAxis}}});
7585 registry.add ({" Events/Vertex/X" , " ; X (cm); events" , {HistType::kTH1F , {ZAxis}}});
@@ -115,12 +125,17 @@ struct PureMcMultiplicityCounter {
115125 }
116126 }
117127
118- void process (aod::McCollision const & collision, aod::McParticles const & particles)
128+ void process (soa::Join< aod::McCollisions, aod::HepMCXSections, aod::HepMCPdfInfos>::iterator const & collision, aod::McParticles const & particles)
119129 {
120130 registry.fill (HIST (" MCEvents/Vertex/X" ), collision.posX ());
121131 registry.fill (HIST (" MCEvents/Vertex/Y" ), collision.posY ());
122132 registry.fill (HIST (" MCEvents/Vertex/Z" ), collision.posZ ());
123133
134+ registry.fill (HIST (" MCEvents/Properties/ProcessID" ), collision.processId ());
135+ registry.fill (HIST (" MCEvents/Properties/ScalePerProcessID" ), collision.ptHard (), collision.processId ());
136+ registry.fill (HIST (" MCEvents/Properties/NMPIsPerProcessID" ), collision.nMPI (), collision.processId ());
137+ registry.fill (HIST (" MCEvents/Properties/ScaleVsNMPIsPerProcessID" ), collision.ptHard (), collision.nMPI (), collision.processId ());
138+
124139 auto Np = 0 ;
125140 for (auto const & particle : particles) {
126141 if (!particle.isPhysicalPrimary ()) {
@@ -163,7 +178,9 @@ struct PureMcMultiplicityCounter {
163178 }
164179 });
165180 }
166- registry.fill (HIST (" MCEvents/Properties/Multiplicity" ), Np);
181+ registry.fill (HIST (" MCEvents/Properties/MultiplicityVsMPIsPerProcessID" ), collision.nMPI (), Np, collision.processId ());
182+ registry.fill (HIST (" MCEvents/Properties/MultiplicityVsScalePerProcessID" ), collision.ptHard (), Np, collision.processId ());
183+ registry.fill (HIST (" MCEvents/Properties/MultiplicityPerProcessID" ), Np, collision.processId ());
167184 registry.fill (HIST (" MCEvents/NtrkZvtx" ), Np, collision.posZ ());
168185 }
169186
0 commit comments