@@ -48,6 +48,7 @@ using namespace o2;
4848using namespace o2 ::track;
4949using namespace o2 ::framework;
5050using namespace o2 ::framework::expressions;
51+ // using CollisionCandidates = o2::soa::Join<>;
5152
5253struct NucleiEfficiencyTask {
5354
@@ -167,6 +168,24 @@ struct NucleiEfficiencyTask {
167168
168169 // ***********************************************************************************
169170
171+ template <typename CollisionType>
172+ int getCentralityMC (CollisionType const & collision)
173+ {
174+ float multiplicity{0 .f };
175+ int centrality = 0 ;
176+ float collMult{0 .f };
177+ collMult = collision.numContrib ();
178+
179+ if (collMult > multiplicity) {
180+ centrality = collision.centFT0C ();
181+ multiplicity = collMult;
182+ }
183+
184+ return centrality;
185+ }
186+
187+ // ***********************************************************************************
188+
170189 template <typename McCollisionType, typename McParticlesType>
171190 void process_MC_gen (const McCollisionType& mcCollision, const McParticlesType& mcParticles)
172191 {
@@ -263,14 +282,18 @@ struct NucleiEfficiencyTask {
263282 template <typename CollisionType, typename TracksType, typename mcParticlesType>
264283 void process_MC_reco (const CollisionType& collision, const TracksType& tracks, const mcParticlesType& /* mcParticles*/ )
265284 {
285+
286+ int centrality = getCentralityMC (collision);
266287 if (event_selection_MC_sel8 && !collision.sel8 ())
267288 return ;
268289 if (collision.posZ () > cfgCutVertex)
269290 return ;
270291 MC_recon_reg.fill (HIST (" histRecVtxMC" ), collision.posZ ());
271- MC_recon_reg.fill (HIST (" histCentrality" ), collision. centFT0C () );
292+ MC_recon_reg.fill (HIST (" histCentrality" ), centrality );
272293 if (!isEventSelected (collision))
273294 return ;
295+ if (centrality < minCentrality || centrality > maxCentrality)
296+ return ;
274297
275298 for (auto & track : tracks) {
276299 const auto particle = track.mcParticle ();
0 commit comments