Skip to content

Commit 1669f6b

Browse files
authored
[PWGLF,Trigger] Introduce normalised multiplicity for OmegaHighMult filter (#10679)
1 parent 28b707d commit 1669f6b

File tree

1 file changed

+72
-4
lines changed

1 file changed

+72
-4
lines changed

EventFiltering/PWGLF/strangenessFilter.cxx

Lines changed: 72 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,10 @@ struct strangenessFilter {
109109
Configurable<bool> sel7{"sel7", 0, "Apply sel7 event selection"};
110110
Configurable<bool> sel8{"sel8", 0, "Apply sel8 event selection"};
111111
Configurable<int> LowLimitFT0MMult{"LowLimitFT0MMult", 3100, "FT0M selection for omega + high multiplicity trigger"};
112+
Configurable<int> LowLimitFT0MMultNorm{"LowLimitFT0MMultNorm", 70, "FT0M selection for omega + high multiplicity trigger with Normalised FT0M"};
113+
Configurable<bool> useNormalisedMult{"useNormalisedMult", 1, "Use avarage multiplicity for HM omega like in multFilter.cxx"};
114+
Configurable<float> avPyT0C{"avPyT0C", 8.83, "nch from pythia T0C"};
115+
Configurable<float> avPyT0A{"avPyT0A", 8.16, "nch from pythia T0A"};
112116
Configurable<bool> isTimeFrameBorderCut{"isTimeFrameBorderCut", 1, "Apply timeframe border cut"};
113117
Configurable<bool> useSigmaBasedMassCutXi{"useSigmaBasedMassCutXi", true, "Mass window based on n*sigma instead of fixed"};
114118
Configurable<bool> useSigmaBasedMassCutOmega{"useSigmaBasedMassCutOmega", true, "Mass window based on n*sigma instead of fixed"};
@@ -221,6 +225,7 @@ struct strangenessFilter {
221225
std::vector<double> centBinning = {0., 1., 5., 10., 20., 30., 40., 50., 70., 100.};
222226
AxisSpec multAxisNTPV = {100, 0.0f, 100.0f, "N. tracks PV estimator"};
223227
AxisSpec multAxisT0M = {600, 0.0f, 6000.0f, "T0M multiplicity estimator"};
228+
AxisSpec multAxisT0MNorm = {150, 0.0f, 150.0f, "Normalised T0M multiplicity estimator"};
224229
AxisSpec multAxisV0A = {500, 0.0f, 25000.0f, "V0A multiplicity estimator"};
225230
AxisSpec ximassAxis = {200, 1.28f, 1.36f};
226231
AxisSpec omegamassAxis = {200, 1.59f, 1.75f};
@@ -282,6 +287,10 @@ struct strangenessFilter {
282287

283288
EventsvsMultiplicity.add("AllEventsvsMultiplicityFT0M", "T0M distribution of all events", HistType::kTH1F, {multAxisT0M});
284289
EventsvsMultiplicity.add("AllEventsvsMultiplicityFT0MwOmega", "T0M distribution of events w/ Omega candidate", HistType::kTH1F, {multAxisT0M});
290+
EventsvsMultiplicity.add("AllEventsvsMultiplicityFT0MNorm", "T0M Normalised of all events", HistType::kTH1F, {multAxisT0MNorm});
291+
EventsvsMultiplicity.add("AllEventsvsMultiplicityFT0MwOmegaNorm", "T0M distribution of events w/ Omega candidate - Normalised FT0M", HistType::kTH1F, {multAxisT0MNorm});
292+
EventsvsMultiplicity.add("AllEventsvsMultiplicityFT0MNoFT0", "T0M distribution of events without FT0", HistType::kTH1F, {multAxisT0M});
293+
285294
if (doextraQA) {
286295
EventsvsMultiplicity.add("AllEventsvsMultiplicityZeqV0A", "ZeqV0A distribution of all events", HistType::kTH1F, {multAxisV0A});
287296
EventsvsMultiplicity.add("hadEventsvsMultiplicityZeqV0A", "ZeqV0A distribution of events with hight pT hadron", HistType::kTH1F, {multAxisV0A});
@@ -409,7 +418,7 @@ struct strangenessFilter {
409418
}
410419

411420
void process(CollisionCandidatesRun3 const& collision, TrackCandidates const& tracks, Cascades const& fullCasc, DaughterTracks& /*dtracks*/,
412-
aod::AssignedTrackedCascades const& trackedCascades, aod::Cascades const& /*cascades*/, aod::AssignedTrackedV0s const& /*trackedV0s*/, aod::AssignedTracked3Bodys const& /*tracked3Bodys*/, aod::V0s const&, aod::BCsWithTimestamps const&)
421+
aod::AssignedTrackedCascades const& trackedCascades, aod::Cascades const& /*cascades*/, aod::AssignedTrackedV0s const& /*trackedV0s*/, aod::AssignedTracked3Bodys const& /*tracked3Bodys*/, aod::V0s const&, aod::BCsWithTimestamps const&, aod::FT0s const& /*ft0s*/)
413422
{
414423
// Is event good? [0] = Omega, [1] = high-pT hadron + Omega, [2] = 2Xi, [3] = 3Xi, [4] = 4Xi, [5] single-Xi, [6] Omega with high radius
415424
// [7] tracked Xi, [8] tracked Omega, [9] Omega + high mult event
@@ -442,9 +451,66 @@ struct strangenessFilter {
442451
}
443452

444453
Bool_t isHighMultEvent = 0;
454+
float multFT0MNorm = 0.f;
445455
EventsvsMultiplicity.fill(HIST("AllEventsvsMultiplicityFT0M"), collision.multFT0M());
446-
if (collision.multFT0M() > LowLimitFT0MMult)
447-
isHighMultEvent = 1;
456+
if (!useNormalisedMult) {
457+
if (collision.multFT0M() > LowLimitFT0MMult) {
458+
isHighMultEvent = 1;
459+
}
460+
} else {
461+
auto bc = collision.template bc_as<aod::BCsWithTimestamps>();
462+
float meanMultT0C = 0.f;
463+
float fac_FT0C_ebe = 1.;
464+
auto vMeanMultT0C = ccdb->getForTimeStamp<std::vector<double>>("Users/e/ekryshen/meanT0C", bc.timestamp());
465+
meanMultT0C = (*vMeanMultT0C)[0];
466+
if (meanMultT0C > 0) {
467+
fac_FT0C_ebe = avPyT0C / meanMultT0C;
468+
}
469+
float meanMultT0A = 0.f;
470+
auto vMeanMultT0A = ccdb->getForTimeStamp<std::vector<double>>("Users/e/ekryshen/meanT0A", bc.timestamp());
471+
meanMultT0A = (*vMeanMultT0A)[0];
472+
float fac_FT0A_ebe = 1.;
473+
if (meanMultT0A > 0) {
474+
fac_FT0A_ebe = avPyT0A / meanMultT0A;
475+
}
476+
LOG(debug) << "Mean mults t0:" << fac_FT0A_ebe << " " << fac_FT0C_ebe;
477+
if (collision.has_foundFT0()) {
478+
auto ft0 = collision.foundFT0();
479+
float sumAmpFT0C = 0.f;
480+
for (std::size_t i_c = 0; i_c < ft0.amplitudeC().size(); i_c++) {
481+
float amplitude = ft0.amplitudeC()[i_c];
482+
sumAmpFT0C += amplitude;
483+
}
484+
float sumAmpFT0A = 0.f;
485+
for (std::size_t i_a = 0; i_a < ft0.amplitudeA().size(); i_a++) {
486+
float amplitude = ft0.amplitudeA()[i_a];
487+
sumAmpFT0A += amplitude;
488+
}
489+
const int nEta5 = 2; // FT0C + FT0A
490+
float weigthsEta5[nEta5] = {0.0490638, 0.010958415};
491+
if (sumAmpFT0C >= 0 || sumAmpFT0A >= 0) {
492+
if (meanMultT0A > 0 && meanMultT0C > 0) {
493+
multFT0MNorm = sumAmpFT0C * fac_FT0C_ebe + sumAmpFT0A * fac_FT0A_ebe;
494+
} else {
495+
multFT0MNorm = sumAmpFT0C * weigthsEta5[0] + sumAmpFT0A * weigthsEta5[1];
496+
}
497+
LOG(info) << "meanMult:" << multFT0MNorm << " multFT0M:" << collision.multFT0M();
498+
EventsvsMultiplicity.fill(HIST("AllEventsvsMultiplicityFT0MNorm"), multFT0MNorm);
499+
if (multFT0MNorm > LowLimitFT0MMultNorm) {
500+
isHighMultEvent = 1;
501+
LOG(info) << "Found FT0 using aver mult";
502+
}
503+
} else {
504+
LOG(warn) << "Found FT0 but, amplitudes are 0 ?";
505+
EventsvsMultiplicity.fill(HIST("AllEventsvsMultiplicityFT0MNorm"), 148);
506+
EventsvsMultiplicity.fill(HIST("AllEventsvsMultiplicityFT0MNoFT0"), collision.multFT0M());
507+
}
508+
} else {
509+
LOG(warn) << "FT0 not Found, using FT0M";
510+
EventsvsMultiplicity.fill(HIST("AllEventsvsMultiplicityFT0MNorm"), 149);
511+
EventsvsMultiplicity.fill(HIST("AllEventsvsMultiplicityFT0MNoFT0"), collision.multFT0M());
512+
}
513+
}
448514

449515
// constants
450516
const float ctauxi = 4.91; // from PDG
@@ -845,8 +911,10 @@ struct strangenessFilter {
845911
}
846912

847913
// Omega in high multiplicity events
848-
if (omegacounter > 0)
914+
if (omegacounter > 0) {
849915
EventsvsMultiplicity.fill(HIST("AllEventsvsMultiplicityFT0MwOmega"), collision.multFT0M());
916+
EventsvsMultiplicity.fill(HIST("AllEventsvsMultiplicityFT0MwOmegaNorm"), multFT0MNorm);
917+
}
850918
if (omegacounter > 0 && isHighMultEvent) {
851919
keepEvent[9] = true;
852920
}

0 commit comments

Comments
 (0)