Skip to content

Commit 21266e2

Browse files
Cristian-MoscatelliCristian Moscatelli
andauthored
[PWGLF] Implementation of Zorro as event selector in nucleiSpectra.cxx (#15421)
Co-authored-by: Cristian Moscatelli <cmoscate@gr3srv.ts.infn.it>
1 parent 8a65ceb commit 21266e2

File tree

1 file changed

+17
-7
lines changed

1 file changed

+17
-7
lines changed

PWGLF/TableProducer/Nuspex/nucleiSpectra.cxx

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)