Skip to content

Commit 73f3eee

Browse files
committed
dev: 3 new triggers
1 parent a57ad65 commit 73f3eee

File tree

2 files changed

+58
-49
lines changed

2 files changed

+58
-49
lines changed

EventFiltering/PWGLF/strangenessFilter.cxx

Lines changed: 53 additions & 47 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

@@ -146,12 +146,11 @@ struct strangenessFilter {
146146
Configurable<bool> hastof{"hastof", 1, "Has TOF (OOB condition)"};
147147
Configurable<float> ptthrtof{"ptthrtof", 1.0, "Pt threshold to apply TOF condition"};
148148
Configurable<bool> sel8{"sel8", 0, "Apply sel8 event selection"};
149-
// Selection mask: bit 1 = 0 of multFilter - Tracks, bit 2 = FT0M used in 2024, bit 2 (4) = 2 of multFilter normalised FT0M used in 2025, bit 3 (8) = multNTracksGlobal
150-
Configurable<int> HMTriggerSelectionForOmega{"HMTriggerSelectionForOmega", 1, "0 = HM trigger selection for omega"};
151-
Configurable<int> LowLimitHMTriggerOmegaTracks{"LowLimitHMTriggerOmegaTracks", 30, "tracks as defined in multFilter selection [0]"};
149+
// Selection mask: bit 1 = 0 of multFilter - Tracks, bit 2 = FT0M used in 2024, bit 2 (4) = 4 of multFilter normalised FT0M used in 2025
150+
Configurable<uint> HMTriggerSelectionForOmega{"HMTriggerSelectionForOmega", 5 , "0 = HM trigger selection for omega"};
151+
Configurable<int> LowLimitHMTriggerOmegaTracks{"LowLimitHMTriggerOmegaTracks", 90, "tracks as defined in multFilter selection [0]"};
152152
Configurable<int> LowLimitHMTriggerOmegaT0M{"LowLimitHMTriggerOmegaT0M", 3100, "T0M"};
153153
Configurable<int> LowLimitHMTriggerOmegaT0MNorm{"LowLimitHMTriggerOmegaT0MNorm", 70, "normalised T0M selection [2] of multFiler"};
154-
Configurable<int> LowLimitHMTriggerOmegaTracksGlobal{"LowLimitHMTriggerOmegaTracksGlobal", 30, "tracks as defined in table MultsGlobal"};
155154

156155
Configurable<float> avPyT0C{"avPyT0C", 8.83, "nch from pythia T0C"};
157156
Configurable<float> avPyT0A{"avPyT0A", 8.16, "nch from pythia T0A"};
@@ -210,11 +209,14 @@ struct strangenessFilter {
210209
float mBz = 0.;
211210
std::vector<double>* mMeanMultT0C;
212211
std::vector<double>* mMeanMultT0A;
213-
TrackSelection mTrackSelector;
214212

215213
bool selectTrack(const auto& track)
216214
{
217-
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;
215+
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;
216+
}
217+
bool selectTrackOHM(const auto& track)
218+
{
219+
return track.pt() > 0.15 && track.tpcNClsCrossedRows() >= tpcmincrossedrows && track.tpcCrossedRowsOverFindableCls() >= 0.8f && track.tpcChi2NCl() <= 4.f && track.itsChi2NCl() <= 36.f && (track.itsClusterMap() & 0x7) != 0;
218220
}
219221

220222
float getV0V0DCA(TVector3 v01pos, TVector3 v01mom, TVector3 v02pos, TVector3 v02mom)
@@ -294,20 +296,6 @@ struct strangenessFilter {
294296

295297
void init(o2::framework::InitContext&)
296298
{
297-
// Track selector from multFilter
298-
mTrackSelector.SetPtRange(0.15f, 1e10f);
299-
mTrackSelector.SetEtaRange(-0.8f, 0.8f);
300-
mTrackSelector.SetRequireITSRefit(true);
301-
mTrackSelector.SetRequireTPCRefit(true);
302-
mTrackSelector.SetRequireGoldenChi2(false);
303-
mTrackSelector.SetMinNClustersTPC(60);
304-
mTrackSelector.SetMinNCrossedRowsTPC(70);
305-
mTrackSelector.SetMinNCrossedRowsOverFindableClustersTPC(0.8f);
306-
mTrackSelector.SetMaxChi2PerClusterTPC(4.f);
307-
mTrackSelector.SetRequireHitsInITSLayers(1, {0, 1}); // one hit in any SPD layer
308-
mTrackSelector.SetMaxChi2PerClusterITS(36.f);
309-
mTrackSelector.SetMaxDcaXY(1.f);
310-
mTrackSelector.SetMaxDcaZ(1.f);
311299
// set V0 parameters in the helper
312300
mStraHelper.v0selections.minCrossedRows = tpcmincrossedrows;
313301
if (dcamesontopv <= dcabaryontopv)
@@ -351,7 +339,12 @@ struct strangenessFilter {
351339
hProcessedEvents->GetXaxis()->SetBinLabel(14, aod::filtering::OmegaHighMult::columnLabel());
352340
hProcessedEvents->GetXaxis()->SetBinLabel(15, aod::filtering::DoubleOmega::columnLabel());
353341
hProcessedEvents->GetXaxis()->SetBinLabel(16, aod::filtering::OmegaXi::columnLabel());
342+
//hProcessedEvents->GetXaxis()->SetBinLabel(17, aod::filtering::LambdaLambda::columnLabel());
354343
hProcessedEvents->GetXaxis()->SetBinLabel(17, "LL");
344+
hProcessedEvents->GetXaxis()->SetBinLabel(18, aod::filtering::OmegaHighMultTrk::columnLabel());
345+
hProcessedEvents->GetXaxis()->SetBinLabel(19, aod::filtering::HighMultFT0M::columnLabel());
346+
hProcessedEvents->GetXaxis()->SetBinLabel(20, aod::filtering::HighMultTrk::columnLabel());
347+
355348

356349
hCandidate->GetXaxis()->SetBinLabel(1, "All");
357350
hCandidate->GetXaxis()->SetBinLabel(2, "PassBuilderSel");
@@ -378,7 +371,7 @@ struct strangenessFilter {
378371
AxisSpec multAxisNTPV = {100, 0.0f, 100.0f, "N. tracks PV estimator"};
379372
AxisSpec multAxisT0M = {600, 0.0f, 6000.0f, "T0M multiplicity estimator"};
380373
AxisSpec multAxisT0MNorm = {150, 0.0f, 150.0f, "Normalised T0M multiplicity estimator"};
381-
AxisSpec multAxisTrack = {100, 0.0f, 100.0f, "Tracks"};
374+
AxisSpec multAxisTrack = {120, 0.0f, 120.0f, "Tracks"};
382375
AxisSpec multAxisV0A = {500, 0.0f, 25000.0f, "V0A multiplicity estimator"};
383376
AxisSpec ximassAxis = {200, 1.28f, 1.36f};
384377
AxisSpec omegamassAxis = {200, 1.59f, 1.75f};
@@ -436,15 +429,14 @@ struct strangenessFilter {
436429
QAHistosTriggerParticles.add("hEtaTriggerAllEv", "hEtaTriggerAllEv", HistType::kTH2F, {{180, -1.4, 1.4, "Eta of trigger particles"}, {ptTriggAxis}});
437430
QAHistosTriggerParticles.add("hPhiTriggerAllEv", "hPhiTriggerAllEv", HistType::kTH2F, {{100, 0, 2 * TMath::Pi(), "Phi of trigger particles"}, {ptTriggAxis}});
438431

432+
EventsvsMultiplicity.add("AllEventsvsEta", "eta ditribution", HistType::kTH1F, {{100,-2,2}});
439433
EventsvsMultiplicity.add("AllEventsvsMultiplicityFT0M", "T0M distribution of all events", HistType::kTH1F, {multAxisT0M});
440434
EventsvsMultiplicity.add("AllEventsvsMultiplicityFT0MwOmega", "T0M distribution of events w/ Omega candidate", HistType::kTH1F, {multAxisT0M});
441435
EventsvsMultiplicity.add("AllEventsvsMultiplicityFT0MNorm", "T0M Normalised of all events", HistType::kTH1F, {multAxisT0MNorm});
442-
EventsvsMultiplicity.add("AllEventsvsMultiplicityFT0MwOmegaNorm", "T0M distribution of events w/ Omega candidate - Normalised FT0M", HistType::kTH1F, {multAxisT0MNorm});
436+
EventsvsMultiplicity.add("AllEventsvsMultiplicityFT0MNormwOmega", "T0M distribution of events w/ Omega candidate - Normalised FT0M", HistType::kTH1F, {multAxisT0MNorm});
443437
EventsvsMultiplicity.add("AllEventsvsMultiplicityFT0MNoFT0", "T0M distribution of events without FT0", HistType::kTH1F, {multAxisT0M});
444438
EventsvsMultiplicity.add("AllEventsvsMultiplicityTracks", "Track distribution of all events", HistType::kTH1F, {multAxisTrack});
445439
EventsvsMultiplicity.add("AllEventsvsMultiplicityTrackswOmega", "Track distribution of events w/ Omega candidate", HistType::kTH1F, {multAxisTrack});
446-
EventsvsMultiplicity.add("AllEventsvsMultiplicityTracksGlobal", "TrackGlobal distribution of all events", HistType::kTH1F, {multAxisTrack});
447-
EventsvsMultiplicity.add("AllEventsvsMultiplicityTracksGlobalwOmega", "TrackGlobal distribution of events w/ Omega candidate", HistType::kTH1F, {multAxisTrack});
448440

449441
if (doextraQA) {
450442
EventsvsMultiplicity.add("AllEventsvsMultiplicityZeqV0A", "ZeqV0A distribution of all events", HistType::kTH1F, {multAxisV0A});
@@ -535,6 +527,7 @@ struct strangenessFilter {
535527
QAHistosStrangenessTracking.add("hPtVsMassTrkXiSelected", "cascades;p_{T} (GeV/#it{c});m (GeV/#it{c}^2)", HistType::kTH2D, {{200, 0., 10.}, {1000, 1.2, 1.7}});
536528
QAHistosStrangenessTracking.add("hPtVsMassTrkOmegaSelected", "cascades;p_{T} (GeV/#it{c});m (GeV/#it{c}^2)", HistType::kTH2D, {{200, 0., 10.}, {1000, 1.6, 2.1}});
537529
}
530+
LOG(info) << "HM Omega track trigger:" << LowLimitHMTriggerOmegaTracks;
538531
}
539532

540533
void initCCDB(int run)
@@ -587,14 +580,14 @@ struct strangenessFilter {
587580

588581
void fillTriggerTable(bool keepEvent[])
589582
{
590-
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]);
583+
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]);
591584
}
592585

593586
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*/)
594587
{
595588
// Is event good? [0] = Omega, [1] = high-pT hadron + Omega, [2] = 2Xi, [3] = 3Xi, [4] = 4Xi, [5] single-Xi, [6] Omega with high radius
596589
// [7] tracked Xi, [8] tracked Omega, [9] Omega + high mult event
597-
bool keepEvent[13]{}; // explicitly zero-initialised
590+
bool keepEvent[16]{}; // explicitly zero-initialised
598591
std::vector<std::array<int64_t, 2>> v0sFromOmegaID;
599592
std::vector<std::array<int64_t, 2>> v0sFromXiID;
600593

@@ -625,30 +618,30 @@ struct strangenessFilter {
625618
}
626619

627620
Bool_t isHighMultEvent = 0;
621+
Bool_t isHighMultEventTrk = 0;
622+
628623
float multFT0MNorm = 0.f;
629624
float multTrack = 0;
630-
EventsvsMultiplicity.fill(HIST("AllEventsvsMultiplicityFT0M"), collision.multFT0M());
631-
if (HMTriggerSelectionForOmega & 1) {
625+
if (HMTriggerSelectionForOmega & 1) { //=====================================
632626
for (auto& track : tracks) {
633-
if (!mTrackSelector.IsSelected(track)) {
634-
continue;
627+
if(selectTrackOHM(track)) {
628+
multTrack++;
629+
EventsvsMultiplicity.fill(HIST("AllEventsvsEta"), track.eta());
635630
}
636-
// Has this track contributed to the collision vertex fit
637-
if (!track.isPVContributor()) {
638-
continue;
639-
}
640-
multTrack++;
641631
}
632+
//std::cout << multTrack << std::endl;
633+
EventsvsMultiplicity.fill(HIST("AllEventsvsMultiplicityTracks"), multTrack);
642634
if (multTrack > LowLimitHMTriggerOmegaTracks) {
643-
isHighMultEvent = 1;
635+
isHighMultEventTrk = 1;
644636
}
645637
}
646-
if (HMTriggerSelectionForOmega & 2) {
638+
if (HMTriggerSelectionForOmega & 2) { //=====================================
639+
EventsvsMultiplicity.fill(HIST("AllEventsvsMultiplicityFT0M"), collision.multFT0M());
647640
if (collision.multFT0M() > LowLimitHMTriggerOmegaT0M) {
648641
isHighMultEvent = 1;
649642
}
650643
}
651-
if (HMTriggerSelectionForOmega & 4) {
644+
if (HMTriggerSelectionForOmega & 4) { //=====================================
652645
float meanMultT0C = 0.f;
653646
float fac_FT0C_ebe = 1.;
654647
meanMultT0C = (*mMeanMultT0C)[0];
@@ -707,12 +700,7 @@ struct strangenessFilter {
707700
EventsvsMultiplicity.fill(HIST("AllEventsvsMultiplicityFT0MNoFT0"), collision.multFT0M());
708701
}
709702
}
710-
if (HMTriggerSelectionForOmega & 8) {
711-
if (collision.multNTracksGlobal() > LowLimitHMTriggerOmegaTracksGlobal) {
712-
isHighMultEvent = 1;
713-
}
714-
}
715-
if ((HMTriggerSelectionForOmega & 0xf) == 0) {
703+
if ((HMTriggerSelectionForOmega & 0x7) == 0) {
716704
LOG(fatal) << "Wrong selection of HMTriggerForOmega:" << HMTriggerSelectionForOmega;
717705
}
718706

@@ -1215,12 +1203,21 @@ struct strangenessFilter {
12151203
// Omega in high multiplicity events
12161204
if (omegacounter > 0) {
12171205
EventsvsMultiplicity.fill(HIST("AllEventsvsMultiplicityFT0MwOmega"), collision.multFT0M());
1218-
EventsvsMultiplicity.fill(HIST("AllEventsvsMultiplicityFT0MwOmegaNorm"), multFT0MNorm);
1206+
EventsvsMultiplicity.fill(HIST("AllEventsvsMultiplicityFT0MNormwOmega"), multFT0MNorm);
1207+
EventsvsMultiplicity.fill(HIST("AllEventsvsMultiplicityTrackswOmega"), multTrack);
12191208
}
12201209
if (omegacounter > 0 && isHighMultEvent) {
12211210
keepEvent[9] = true;
12221211
}
1223-
1212+
if (omegacounter > 0 && isHighMultEventTrk) {
1213+
keepEvent[13] = true;
1214+
}
1215+
if(isHighMultEvent) {
1216+
keepEvent[14] = true;
1217+
}
1218+
if(isHighMultEventTrk) {
1219+
keepEvent[15] = true;
1220+
}
12241221
for (const auto& trackedCascade : trackedCascades) {
12251222
const auto trackCasc = trackedCascade.track_as<TrackCandidates>();
12261223
QAHistosStrangenessTracking.fill(HIST("hPtCascTracked"), trackCasc.pt());
@@ -1411,6 +1408,15 @@ struct strangenessFilter {
14111408
if (keepEvent[12]) {
14121409
hProcessedEvents->Fill(15.5);
14131410
}
1411+
if (keepEvent[13]) {
1412+
hProcessedEvents->Fill(16.5);
1413+
}
1414+
if (keepEvent[14]) {
1415+
hProcessedEvents->Fill(17.5);
1416+
}
1417+
if (keepEvent[15]) {
1418+
hProcessedEvents->Fill(18.5);
1419+
}
14141420
// Filling the table
14151421
fillTriggerTable(keepEvent);
14161422
}

EventFiltering/filterTables.h

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -166,8 +166,11 @@ DECLARE_SOA_COLUMN(TrackedCascade, hasTrackedCascade, bool); //! at least 1
166166
DECLARE_SOA_COLUMN(TrackedXi, hasTrackedXi, bool); //! at least 1 tracked Xi
167167
DECLARE_SOA_COLUMN(TrackedOmega, hasTrackedOmega, bool); //! at least 1 tracked Omega
168168
DECLARE_SOA_COLUMN(Tracked3Body, hasTracked3Body, bool); //! at least 1 tracked 3Body
169-
DECLARE_SOA_COLUMN(OmegaHighMult, hasOmegaHighMult, bool); //! at least 1 Omega + high-mult event
169+
DECLARE_SOA_COLUMN(OmegaHighMult, hasOmegaHighMult, bool); //! at least 1 Omega + high-mult FT0M event
170170
DECLARE_SOA_COLUMN(LambdaLambda, lambdaLambda, bool); //! at least 2 lambda satisfying selection
171+
DECLARE_SOA_COLUMN(OmegaHighMultTrk, hasOmegaHighMultTrk, bool); //! at least 1 Omega + high-mult track event
172+
DECLARE_SOA_COLUMN(HighMultFT0M, hasHighMultFT0M, bool); //! at least 1 Omega + high-mult track event
173+
DECLARE_SOA_COLUMN(HighMultTrk, hasHighMultTrk, bool); //! at least 1 Omega + high-mult track event
171174

172175
// F1-proton
173176
DECLARE_SOA_COLUMN(TriggerEventF1Proton, triggereventf1proton, bool); //! F1 - proton femto trigger event
@@ -321,7 +324,7 @@ using FullJetFilter = FullJetFilters::iterator;
321324

322325
// strangeness (lf)
323326
DECLARE_SOA_TABLE(StrangenessFilters, "AOD", "LFStrgFilters", //!
324-
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);
327+
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);
325328

326329
using StrangenessFilter = StrangenessFilters::iterator;
327330

0 commit comments

Comments
 (0)