@@ -256,6 +256,7 @@ enum EvGenSel : uint8_t {
256256 kGenTVX = 1 << 0 ,
257257 kGenZvtx = 1 << 1 ,
258258 kGenINELgt0 = 1 << 2 ,
259+ kHasRecoEv = 1 << 3
259260};
260261
261262} // namespace nuclei
@@ -347,6 +348,7 @@ struct nucleiSpectra {
347348
348349 Configurable<bool > cfgSkimmedProcessing{" cfgSkimmedProcessing" , false , " Skimmed dataset processing" };
349350 Configurable<std::string> cfgTriggerList{" cfgTriggerList" , " fHe" , " Trigger List" };
351+ Configurable<bool > cfgSelectTrgEv{" cfgSelectTrgEv" , false , " If true, select events with active trigger list" };
350352
351353 // running variables for track tuner
352354 o2::dataformats::DCA mDcaInfoCov ;
@@ -362,7 +364,7 @@ struct nucleiSpectra {
362364
363365 using TrackCandidates = soa::Join<aod::TracksIU, aod::TracksCovIU, aod::TracksExtra, aod::TOFSignal, aod::TOFEvTime>;
364366
365- // Collisions with chentrality
367+ // Collisions with centrality
366368 using CollWithCent = soa::Join<aod::Collisions, aod::EvSels, aod::CentFV0As, aod::CentFT0Ms, aod::CentFT0As, aod::CentFT0Cs, aod::CentNTPVs>::iterator;
367369
368370 // Flow analysis
@@ -613,8 +615,15 @@ struct nucleiSpectra {
613615 {
614616 auto bc = collision.template bc_as <aod::BCsWithTimestamps>();
615617 initCCDB (bc);
618+
619+ bool isTriggered = true ;
620+
621+ // Using zorro for selecting only events with active trigger
616622 if (cfgSkimmedProcessing) {
617- zorro.isSelected (bc.globalBC ()); // / Just let Zorro do the accounting
623+ isTriggered = zorro.isSelected (bc.globalBC ()); // / Just let Zorro do the accounting
624+ if (cfgSelectTrgEv && !isTriggered) {
625+ return ;
626+ }
618627 }
619628 gRandom ->SetSeed (bc.timestamp ());
620629
@@ -929,7 +938,6 @@ struct nucleiSpectra {
929938 {
930939 nuclei::candidates.clear ();
931940
932- bool selectINELgt0 = cfgEventSelections->get (nuclei::evSel::kINELgt0 );
933941 std::vector<bool > goodCollisions (mcCollisions.size (), false );
934942 std::vector<uint8_t > eventMask (mcCollisions.size (), 0 );
935943
@@ -971,10 +979,8 @@ struct nucleiSpectra {
971979 mask |= nuclei::kGenZvtx ;
972980
973981 // INEL > 0 selection
974- if (selectINELgt0) {
975- if (o2::pwglf::isINELgt0mc (slicedParticles, pdgDB)) {
976- mask |= nuclei::kGenINELgt0 ;
977- }
982+ if (o2::pwglf::isINELgt0mc (slicedParticles, pdgDB)) {
983+ mask |= nuclei::kGenINELgt0 ;
978984 }
979985
980986 eventMask[c.globalIndex ()] = mask;
@@ -987,6 +993,10 @@ struct nucleiSpectra {
987993 continue ;
988994 }
989995 goodCollisions[collision.mcCollisionId ()] = true ;
996+ auto & mask = eventMask[collision.mcCollisionId ()];
997+ mask |= nuclei::kHasRecoEv ;
998+
999+ GenEventMCSel (mask);
9901000 const auto & slicedTracks = tracks.sliceBy (tracksPerCollisions, collision.globalIndex ());
9911001 fillDataInfo (collision, slicedTracks);
9921002 }
0 commit comments