@@ -125,6 +125,7 @@ struct FilterCF {
125125 Produces<aod::CFTrackLabels> outputTrackLabels;
126126
127127 Produces<aod::CFMcCollisions> outputMcCollisions;
128+ Produces<aod::CFMcCollisionExtras> outputMcCollisionExtras;
128129 Produces<aod::CFMcParticles> outputMcParticles;
129130
130131 Produces<aod::CFCollRefs> outputCollRefs;
@@ -385,8 +386,8 @@ struct FilterCF {
385386 // / event selections
386387 // / \param tracks The collection of tracks, filtered by selection criteria
387388 // / \param bcs The collection of bunch crossings with timestamps
388- template <typename C1 , typename T1 >
389- void processMCT (aod::McCollisions const & mcCollisions, aod::McParticles const & allParticles,
389+ template <typename MCs, typename C1 , typename T1 >
390+ void processMCT (MCs const & mcCollisions, aod::McParticles const & allParticles,
390391 C1 const & allCollisions,
391392 T1 const & tracks,
392393 aod::BCsWithTimestamps const &)
@@ -459,6 +460,7 @@ struct FilterCF {
459460 }
460461 }
461462 outputMcCollisions (mcCollision.posZ (), multiplicity);
463+ outputMcCollisionExtras (mcCollision.nMPI ());
462464 }
463465
464466 // PASS 2 on collisions: store collisions and tracks
@@ -517,7 +519,8 @@ struct FilterCF {
517519 // NOTE not filtering collisions here because in that case there can be tracks referring to MC particles which are not part of the selected MC collisions
518520 Preslice<aod::McParticles> perMcCollision = aod::mcparticle::mcCollisionId;
519521 Preslice<aod::Tracks> perCollision = aod::track::collisionId;
520- void processMC (aod::McCollisions const & mcCollisions, aod::McParticles const & allParticles,
522+ using McCollisionsWithHepMC = soa::Join<aod::McCollisions, aod::HepMCXSections>;
523+ void processMC (McCollisionsWithHepMC const & mcCollisions, aod::McParticles const & allParticles,
521524 soa::Join<aod::McCollisionLabels, aod::Collisions, aod::EvSels, aod::CFMultiplicities> const & allCollisions,
522525 soa::Filtered<soa::Join<aod::Tracks, aod::TracksExtra, aod::McTrackLabels, aod::TrackSelection>> const & tracks,
523526 aod::BCsWithTimestamps const & bcs)
@@ -527,7 +530,7 @@ struct FilterCF {
527530 PROCESS_SWITCH (FilterCF, processMC, " Process MC" , false );
528531
529532 // NOTE not filtering collisions here because in that case there can be tracks referring to MC particles which are not part of the selected MC collisions
530- void processMCPid (aod::McCollisions const & mcCollisions, aod::McParticles const & allParticles,
533+ void processMCPid (McCollisionsWithHepMC const & mcCollisions, aod::McParticles const & allParticles,
531534 soa::Join<aod::McCollisionLabels, aod::Collisions, aod::EvSels, aod::CFMultiplicities> const & allCollisions,
532535 soa::Filtered<soa::Join<aod::Tracks, aod::TracksExtra, aod::McTrackLabels, aod::TrackSelection, aod::pidTPCPr, aod::pidTOFPr, aod::TracksDCA>> const & tracks,
533536 aod::BCsWithTimestamps const & bcs)
@@ -536,7 +539,7 @@ struct FilterCF {
536539 }
537540 PROCESS_SWITCH (FilterCF, processMCPid, " Process MC with PID" , false );
538541
539- void processMCMults (aod::McCollisions const & mcCollisions, aod::McParticles const & allParticles,
542+ void processMCMults (McCollisionsWithHepMC const & mcCollisions, aod::McParticles const & allParticles,
540543 soa::Join<aod::McCollisionLabels, aod::Collisions, aod::EvSels, aod::CFMultiplicities, aod::CentFT0Cs, aod::PVMults, aod::FV0Mults, aod::MultsGlobal> const & allCollisions,
541544 soa::Filtered<soa::Join<aod::Tracks, aod::TracksExtra, aod::McTrackLabels, aod::TrackSelection>> const & tracks,
542545 aod::BCsWithTimestamps const & bcs)
@@ -546,7 +549,7 @@ struct FilterCF {
546549
547550 PROCESS_SWITCH (FilterCF, processMCMults, " Process MC with multiplicity sets" , false );
548551
549- void processMCGen (aod::McCollisions ::iterator const & mcCollision, aod::McParticles const & particles)
552+ void processMCGen (McCollisionsWithHepMC ::iterator const & mcCollision, aod::McParticles const & particles)
550553 {
551554 float multiplicity = 0 .0f ;
552555 for (auto & particle : particles) {
@@ -562,6 +565,7 @@ struct FilterCF {
562565 sign, particle.pdgCode (), particle.flags ());
563566 }
564567 outputMcCollisions (mcCollision.posZ (), multiplicity);
568+ outputMcCollisionExtras (mcCollision.nMPI ());
565569 }
566570 PROCESS_SWITCH (FilterCF, processMCGen, " Process MCGen" , false );
567571};
0 commit comments