Skip to content

Commit 0dc1761

Browse files
authored
[Trigger,PWGLF] OmegaHM - track triggers (#14731)
1 parent 02ad244 commit 0dc1761

File tree

2 files changed

+80
-24
lines changed

2 files changed

+80
-24
lines changed

EventFiltering/PWGLF/strangenessFilter.cxx

Lines changed: 76 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ struct strangenessFilter {
7979
HistogramRegistry QAHistosTriggerParticles{"QAHistosTriggerParticles", {}, OutputObjHandlingPolicy::AnalysisObject, false, true};
8080
HistogramRegistry QAHistosStrangenessTracking{"QAHistosStrangenessTracking", {}, OutputObjHandlingPolicy::AnalysisObject, false, true};
8181
HistogramRegistry EventsvsMultiplicity{"EventsvsMultiplicity", {}, OutputObjHandlingPolicy::AnalysisObject, true, true};
82-
OutputObj<TH1D> hProcessedEvents{TH1D("hProcessedEvents", "Strangeness - event filtered;; Number of events", 17, -1., 16.)};
82+
OutputObj<TH1D> hProcessedEvents{TH1D("hProcessedEvents", "Strangeness - event filtered;; Number of events", 20, -1., 19.)};
8383
OutputObj<TH1F> hCandidate{TH1F("hCandidate", "; Candidate pass selection; Number of events", 30, 0., 30.)};
8484
OutputObj<TH1F> hEvtvshMinPt{TH1F("hEvtvshMinPt", " Number of h-Omega events with pT_h higher than thrd; min p_{T, trigg} (GeV/c); Number of events", 11, 0., 11.)};
8585

@@ -147,9 +147,14 @@ struct strangenessFilter {
147147
Configurable<float> ptthrtof{"ptthrtof", 1.0, "Pt threshold to apply TOF condition"};
148148
Configurable<bool> sel8{"sel8", 0, "Apply sel8 event selection"};
149149
Configurable<bool> isTriggerTVX{"isTriggerTVX", 1, "Require TVX"};
150-
Configurable<int> LowLimitFT0MMult{"LowLimitFT0MMult", 3100, "FT0M selection for omega + high multiplicity trigger"};
151-
Configurable<int> LowLimitFT0MMultNorm{"LowLimitFT0MMultNorm", 70, "FT0M selection for omega + high multiplicity trigger with Normalised FT0M"};
152-
Configurable<bool> useNormalisedMult{"useNormalisedMult", 1, "Use avarage multiplicity for HM omega like in multFilter.cxx"};
150+
Configurable<int> HMTrgSelectionForOmegaFT0M{"HMTrgSelectionForOmegaFT0M", 1, "0: none, 1: normalised FT0M, 2: FT0M "};
151+
Configurable<int> LowLimitHMTrgOmegaT0M{"LowLimitHMTrgOmegaT0M", 3100, "T0M"};
152+
Configurable<int> LowLimitHMTrgOmegaT0MNorm{"LowLimitHMTrgOmegaT0MNorm", 70, "normalised T0M selection [2] of multFiler"};
153+
Configurable<int> HMTrgSelectionForOmegaTrks{"HMTrgSelectionForOmegaTrks", 2, "0: none, 1: GlobalMult,2: selectTrack"};
154+
Configurable<int> LowLimitHMTrgOmegaTrkGlob{"LowLimitHMTrgOmegaTrksGlob", 90, "tracks from tyable GlobalMult"};
155+
Configurable<int> LowLimitHMTrgOmegaTrkSel{"LowLimitHMTrgOmegaTrkSel", 50, "tracks as defined in selectTrackHMO"};
156+
Configurable<float> hEtaHM{"hEtaHM", 1.0f, "Eta range for trigger particles"};
157+
Configurable<float> hMinPtHM{"hMinPtHM", 0.2f, "Min pt for trigger particles"};
153158
Configurable<float> avPyT0C{"avPyT0C", 8.83, "nch from pythia T0C"};
154159
Configurable<float> avPyT0A{"avPyT0A", 8.16, "nch from pythia T0A"};
155160
Configurable<bool> isTimeFrameBorderCut{"isTimeFrameBorderCut", 1, "Apply timeframe border cut"};
@@ -212,7 +217,10 @@ struct strangenessFilter {
212217
{
213218
return track.pt() > hMinPt && std::abs(track.eta()) < hEta && track.tpcNClsCrossedRows() >= tpcmincrossedrows && track.tpcCrossedRowsOverFindableCls() >= 0.8f && track.tpcChi2NCl() <= 4.f && track.itsChi2NCl() <= 36.f && (track.itsClusterMap() & 0x7) != 0;
214219
}
215-
220+
bool selectTrackOHM(const auto& track)
221+
{
222+
return track.pt() > 0.15 && track.tpcNClsCrossedRows() >= tpcmincrossedrows && track.tpcCrossedRowsOverFindableCls() >= 0.8f && track.tpcChi2NCl() <= 4.f && track.itsChi2NCl() <= 36.f && (track.itsClusterMap() & 0x7) != 0;
223+
}
216224
float getV0V0DCA(TVector3 v01pos, TVector3 v01mom, TVector3 v02pos, TVector3 v02mom)
217225
{
218226
TVector3 posdiff = v02pos - v01pos;
@@ -334,6 +342,9 @@ struct strangenessFilter {
334342
hProcessedEvents->GetXaxis()->SetBinLabel(15, aod::filtering::DoubleOmega::columnLabel());
335343
hProcessedEvents->GetXaxis()->SetBinLabel(16, aod::filtering::OmegaXi::columnLabel());
336344
hProcessedEvents->GetXaxis()->SetBinLabel(17, "LL");
345+
hProcessedEvents->GetXaxis()->SetBinLabel(18, aod::filtering::OmegaHighMultTrk::columnLabel());
346+
hProcessedEvents->GetXaxis()->SetBinLabel(19, aod::filtering::HighMultFT0M::columnLabel());
347+
hProcessedEvents->GetXaxis()->SetBinLabel(20, aod::filtering::HighMultTrk::columnLabel());
337348

338349
hCandidate->GetXaxis()->SetBinLabel(1, "All");
339350
hCandidate->GetXaxis()->SetBinLabel(2, "PassBuilderSel");
@@ -360,6 +371,7 @@ struct strangenessFilter {
360371
AxisSpec multAxisNTPV = {100, 0.0f, 100.0f, "N. tracks PV estimator"};
361372
AxisSpec multAxisT0M = {600, 0.0f, 6000.0f, "T0M multiplicity estimator"};
362373
AxisSpec multAxisT0MNorm = {150, 0.0f, 150.0f, "Normalised T0M multiplicity estimator"};
374+
AxisSpec multAxisTrack = {150, 0.0f, 150.0f, "Track multiplicity"};
363375
AxisSpec multAxisV0A = {500, 0.0f, 25000.0f, "V0A multiplicity estimator"};
364376
AxisSpec ximassAxis = {200, 1.28f, 1.36f};
365377
AxisSpec omegamassAxis = {200, 1.59f, 1.75f};
@@ -422,7 +434,10 @@ struct strangenessFilter {
422434
EventsvsMultiplicity.add("AllEventsvsMultiplicityFT0MNorm", "T0M Normalised of all events", HistType::kTH1F, {multAxisT0MNorm});
423435
EventsvsMultiplicity.add("AllEventsvsMultiplicityFT0MwOmegaNorm", "T0M distribution of events w/ Omega candidate - Normalised FT0M", HistType::kTH1F, {multAxisT0MNorm});
424436
EventsvsMultiplicity.add("AllEventsvsMultiplicityFT0MNoFT0", "T0M distribution of events without FT0", HistType::kTH1F, {multAxisT0M});
425-
437+
EventsvsMultiplicity.add("AllEventsvsMultiplicityTracks", "Track distribution of all events", HistType::kTH1F, {multAxisTrack});
438+
EventsvsMultiplicity.add("AllEventsvsMultiplicityTrackswOmega", "Track distribution of events w/ Omega candidate", HistType::kTH1F, {multAxisTrack});
439+
EventsvsMultiplicity.add("AllEventsvsMultiplicityTracksGlob", "MultGlob Track distribution of all events", HistType::kTH1F, {multAxisTrack});
440+
EventsvsMultiplicity.add("AllEventsvsMultiplicityTracksGlobwOmega", "MultGlob Track distribution of events w/ Omega candidate", HistType::kTH1F, {multAxisTrack});
426441
if (doextraQA) {
427442
EventsvsMultiplicity.add("AllEventsvsMultiplicityZeqV0A", "ZeqV0A distribution of all events", HistType::kTH1F, {multAxisV0A});
428443
EventsvsMultiplicity.add("hadEventsvsMultiplicityZeqV0A", "ZeqV0A distribution of events with hight pT hadron", HistType::kTH1F, {multAxisV0A});
@@ -521,9 +536,9 @@ struct strangenessFilter {
521536
o2::parameters::GRPMagField* grpmag = ccdb->getForRun<o2::parameters::GRPMagField>("GLO/Config/GRPMagField", run);
522537
o2::base::Propagator::initFieldFromGRP(grpmag);
523538
mBz = static_cast<float>(grpmag->getNominalL3Field());
524-
if (useNormalisedMult)
539+
if (HMTrgSelectionForOmegaFT0M == 1)
525540
mMeanMultT0C = ccdb->getForRun<std::vector<double>>("Users/e/ekryshen/meanT0C", run);
526-
if (useNormalisedMult)
541+
if (HMTrgSelectionForOmegaFT0M == 1)
527542
mMeanMultT0A = ccdb->getForRun<std::vector<double>>("Users/e/ekryshen/meanT0A", run);
528543

529544
mDCAFitter.setBz(mBz);
@@ -547,7 +562,7 @@ struct strangenessFilter {
547562
}
548563

549564
// Tables
550-
using CollisionCandidates = soa::Join<aod::Collisions, aod::EvSels, aod::MultZeqs, aod::FT0Mults>::iterator;
565+
using CollisionCandidates = soa::Join<aod::Collisions, aod::EvSels, aod::MultZeqs, aod::FT0Mults, aod::MultsGlobal>::iterator;
551566
using TrackCandidates = soa::Join<aod::TracksIU, aod::TracksExtra, aod::TracksCovIU, aod::pidTPCLfFullPi, aod::pidTPCLfFullPr, aod::pidTPCLfFullKa>;
552567

553568
float getMassWindow(const stfilter::species s, const float pt, const float nsigma = 6)
@@ -562,14 +577,14 @@ struct strangenessFilter {
562577

563578
void fillTriggerTable(bool keepEvent[])
564579
{
565-
strgtable(keepEvent[0], keepEvent[1], keepEvent[2], keepEvent[3], keepEvent[4], keepEvent[5], keepEvent[6], keepEvent[7], keepEvent[8], keepEvent[9], keepEvent[10], keepEvent[11], keepEvent[12]);
580+
strgtable(keepEvent[0], keepEvent[1], keepEvent[2], keepEvent[3], keepEvent[4], keepEvent[5], keepEvent[6], keepEvent[7], keepEvent[8], keepEvent[9], keepEvent[10], keepEvent[11], keepEvent[12], keepEvent[13], keepEvent[14], keepEvent[15]);
566581
}
567582

568583
void process(CollisionCandidates const& collision, TrackCandidates const& tracks, aod::Cascades const& cascadesBase, aod::AssignedTrackedCascades const& trackedCascades, aod::AssignedTrackedV0s const& /*trackedV0s*/, aod::AssignedTracked3Bodys const& /*tracked3Bodys*/, aod::V0s const& v0Base, aod::BCs const&, aod::FT0s const& /*ft0s*/)
569584
{
570585
// Is event good? [0] = Omega, [1] = high-pT hadron + Omega, [2] = 2Xi, [3] = 3Xi, [4] = 4Xi, [5] single-Xi, [6] Omega with high radius
571586
// [7] tracked Xi, [8] tracked Omega, [9] Omega + high mult event
572-
bool keepEvent[13]{}; // explicitly zero-initialised
587+
bool keepEvent[16]{}; // explicitly zero-initialised
573588
std::vector<std::array<int64_t, 2>> v0sFromOmegaID;
574589
std::vector<std::array<int64_t, 2>> v0sFromXiID;
575590

@@ -604,12 +619,9 @@ struct strangenessFilter {
604619

605620
Bool_t isHighMultEvent = 0;
606621
float multFT0MNorm = 0.f;
607-
EventsvsMultiplicity.fill(HIST("AllEventsvsMultiplicityFT0M"), collision.multFT0M());
608-
if (!useNormalisedMult) {
609-
if (collision.multFT0M() > LowLimitFT0MMult) {
610-
isHighMultEvent = 1;
611-
}
612-
} else {
622+
Bool_t isHighMultEventTrk = 0;
623+
float multTrack = 0.f;
624+
if (HMTrgSelectionForOmegaFT0M == 1) {
613625
float meanMultT0C = 0.f;
614626
float fac_FT0C_ebe = 1.;
615627
meanMultT0C = (*mMeanMultT0C)[0];
@@ -650,7 +662,7 @@ struct strangenessFilter {
650662
ampneg++;
651663
}
652664
EventsvsMultiplicity.fill(HIST("AllEventsvsMultiplicityFT0MNorm"), multFT0MNorm);
653-
if (multFT0MNorm > LowLimitFT0MMultNorm) {
665+
if (multFT0MNorm > LowLimitHMTrgOmegaT0MNorm) {
654666
isHighMultEvent = 1;
655667
LOG(debug) << "Found FT0 using norm mult";
656668
}
@@ -668,7 +680,29 @@ struct strangenessFilter {
668680
EventsvsMultiplicity.fill(HIST("AllEventsvsMultiplicityFT0MNoFT0"), collision.multFT0M());
669681
}
670682
}
671-
683+
if (HMTrgSelectionForOmegaFT0M == 2) {
684+
EventsvsMultiplicity.fill(HIST("AllEventsvsMultiplicityFT0M"), collision.multFT0M());
685+
if (collision.multFT0M() > LowLimitHMTrgOmegaT0M) {
686+
isHighMultEvent = 1;
687+
}
688+
}
689+
if (HMTrgSelectionForOmegaTrks == 1) {
690+
EventsvsMultiplicity.fill(HIST("AllEventsvsMultiplicityTracksGlob"), collision.multNTracksGlobal());
691+
if (collision.multNTracksGlobal() > LowLimitHMTrgOmegaTrkGlob) {
692+
isHighMultEventTrk = 1;
693+
}
694+
}
695+
if (HMTrgSelectionForOmegaTrks == 2) {
696+
for (auto& track : tracks) {
697+
if (selectTrackOHM(track)) {
698+
multTrack++;
699+
}
700+
}
701+
EventsvsMultiplicity.fill(HIST("AllEventsvsMultiplicityTracks"), multTrack);
702+
if (multTrack > LowLimitHMTrgOmegaTrkSel) {
703+
isHighMultEventTrk = 1;
704+
}
705+
}
672706
// constants
673707
const float ctauxi = 4.91; // from PDG
674708
const float ctauomega = 2.461; // from PDG
@@ -1166,14 +1200,26 @@ struct strangenessFilter {
11661200
}
11671201

11681202
// Omega in high multiplicity events
1169-
if (omegacounter > 0) {
1203+
if (omegacounter > 0 && isHighMultEvent) {
11701204
EventsvsMultiplicity.fill(HIST("AllEventsvsMultiplicityFT0MwOmega"), collision.multFT0M());
11711205
EventsvsMultiplicity.fill(HIST("AllEventsvsMultiplicityFT0MwOmegaNorm"), multFT0MNorm);
11721206
}
1207+
if (omegacounter > 0 && isHighMultEventTrk) {
1208+
EventsvsMultiplicity.fill(HIST("AllEventsvsMultiplicityTrackswOmega"), multTrack);
1209+
EventsvsMultiplicity.fill(HIST("AllEventsvsMultiplicityTracksGlobwOmega"), collision.multNTracksGlobal());
1210+
}
11731211
if (omegacounter > 0 && isHighMultEvent) {
11741212
keepEvent[9] = true;
11751213
}
1176-
1214+
if (omegacounter > 0 && isHighMultEventTrk) {
1215+
keepEvent[13] = true;
1216+
}
1217+
if (isHighMultEvent) {
1218+
keepEvent[14] = true;
1219+
}
1220+
if (isHighMultEventTrk) {
1221+
keepEvent[15] = true;
1222+
}
11771223
for (const auto& trackedCascade : trackedCascades) {
11781224
const auto trackCasc = trackedCascade.track_as<TrackCandidates>();
11791225
QAHistosStrangenessTracking.fill(HIST("hPtCascTracked"), trackCasc.pt());
@@ -1364,6 +1410,15 @@ struct strangenessFilter {
13641410
if (keepEvent[12]) {
13651411
hProcessedEvents->Fill(15.5);
13661412
}
1413+
if (keepEvent[13]) {
1414+
hProcessedEvents->Fill(16.5);
1415+
}
1416+
if (keepEvent[14]) {
1417+
hProcessedEvents->Fill(17.5);
1418+
}
1419+
if (keepEvent[15]) {
1420+
hProcessedEvents->Fill(18.5);
1421+
}
13671422
// Filling the table
13681423
fillTriggerTable(keepEvent);
13691424
}

EventFiltering/filterTables.h

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,9 @@ DECLARE_SOA_COLUMN(TrackedOmega, hasTrackedOmega, bool); //! at least 1
171171
DECLARE_SOA_COLUMN(Tracked3Body, hasTracked3Body, bool); //! at least 1 tracked 3Body
172172
DECLARE_SOA_COLUMN(OmegaHighMult, hasOmegaHighMult, bool); //! at least 1 Omega + high-mult event
173173
DECLARE_SOA_COLUMN(LambdaLambda, lambdaLambda, bool); //! at least 2 lambda satisfying selection
174-
174+
DECLARE_SOA_COLUMN(OmegaHighMultTrk, hasOmegaHighMultTrk, bool); //! at least 1 Omega + high-mult track event
175+
DECLARE_SOA_COLUMN(HighMultFT0M, hasHighMultFT0M, bool); //! at least 1 Omega + high-mult track event
176+
DECLARE_SOA_COLUMN(HighMultTrk, hasHighMultTrk, bool); //! at least 1 Omega + high-mult track event
175177
// F1-proton
176178
DECLARE_SOA_COLUMN(TriggerEventF1Proton, triggereventf1proton, bool); //! F1 - proton femto trigger event
177179

@@ -329,8 +331,7 @@ using FullJetFilter = FullJetFilters::iterator;
329331

330332
// strangeness (lf)
331333
DECLARE_SOA_TABLE(StrangenessFilters, "AOD", "LFStrgFilters", //!
332-
filtering::Omega, filtering::hadronOmega, filtering::DoubleXi, filtering::TripleXi, filtering::QuadrupleXi, filtering::SingleXiYN, filtering::OmegaLargeRadius, filtering::TrackedXi, filtering::TrackedOmega, filtering::OmegaHighMult, filtering::DoubleOmega, filtering::OmegaXi, filtering::LambdaLambda);
333-
334+
filtering::Omega, filtering::hadronOmega, filtering::DoubleXi, filtering::TripleXi, filtering::QuadrupleXi, filtering::SingleXiYN, filtering::OmegaLargeRadius, filtering::TrackedXi, filtering::TrackedOmega, filtering::OmegaHighMult, filtering::DoubleOmega, filtering::OmegaXi, filtering::LambdaLambda, filtering::OmegaHighMultTrk, filtering::HighMultFT0M, filtering::HighMultTrk);
334335
using StrangenessFilter = StrangenessFilters::iterator;
335336

336337
// F1 proton

0 commit comments

Comments
 (0)