From 9f1893a4e819bdcd3537144b266ca2bec381697f Mon Sep 17 00:00:00 2001 From: altsybee Date: Tue, 6 Feb 2024 16:16:20 +0100 Subject: [PATCH 1/7] Update eventSelectionQa.cxx - Monitoring of the nContributors vs bc in Time Frames is added (two histograms), in order to estimate the quality deterioration during the last TPC drift time (~the last TF orbit) --- DPG/Tasks/AOTEvent/eventSelectionQa.cxx | 53 ++++++++++++++++++------- 1 file changed, 38 insertions(+), 15 deletions(-) diff --git a/DPG/Tasks/AOTEvent/eventSelectionQa.cxx b/DPG/Tasks/AOTEvent/eventSelectionQa.cxx index 33b09fee4c5..aba04de97bb 100644 --- a/DPG/Tasks/AOTEvent/eventSelectionQa.cxx +++ b/DPG/Tasks/AOTEvent/eventSelectionQa.cxx @@ -47,6 +47,8 @@ struct EventSelectionQaTask { int lastRunNumber = -1; int nOrbits = nOrbitsConf; double minOrbit = minOrbitConf; + int64_t bcSOR = -1; // global bc of the start of the first orbit + int64_t nBCsPerTF = -1; // duration of TF in bcs, should be 128*3564 or 32*3564 std::bitset beamPatternA; std::bitset beamPatternC; std::bitset bcPatternA; @@ -260,6 +262,10 @@ struct EventSelectionQaTask { histos.add("hMultT0MVsNcontribAcc", "", kTH2F, {axisMultT0M, axisNcontrib}); // before ITS RO Frame border cut histos.add("hMultT0MVsNcontribCut", "", kTH2F, {axisMultT0M, axisNcontrib}); // after ITS RO Frame border cut + AxisSpec axisBCinTF{128 * nBCsPerOrbit + 1 + 10, -0.5, 128 * nBCsPerOrbit + 0.5 + 10, "bc in TF"}; + histos.add("hNcontribVsBcInTF", ";bc in TF; n vertex contributors", kTH1D, {axisBCinTF}); + histos.add("hNcontribAfterCutsVsBcInTF", ";bc in TF; n vertex contributors", kTH1D, {axisBCinTF}); + // MC histograms histos.add("hGlobalBcColMC", "", kTH1F, {axisGlobalBCs}); histos.add("hBcColMC", "", kTH1F, {axisBCs}); @@ -494,6 +500,7 @@ struct EventSelectionQaTask { aod::FDDs const& fdds) { int runNumber = bcs.iteratorAt(0).runNumber(); + uint32_t nOrbitsPerTF = 128; // 128 in 2022, 32 in 2023 if (runNumber != lastRunNumber) { lastRunNumber = runNumber; // do it only once int64_t tsSOR = 0; @@ -528,21 +535,21 @@ struct EventSelectionQaTask { LOGP(info, "tsOrbitReset={} us", tsOrbitReset); // access TF duration, start-of-run and end-of-run timestamps from ECS GRP - // std::map metadata; - // metadata["runNumber"] = Form("%d", runNumber); - // auto grpecs = ccdb->getSpecific("GLO/Config/GRPECS", ts, metadata); - // uint32_t nOrbitsPerTF = grpecs->getNHBFPerTF(); // assuming 1 orbit = 1 HBF + std::map metadata; + metadata["runNumber"] = Form("%d", runNumber); + auto grpecs = ccdb->getSpecific("GLO/Config/GRPECS", ts, metadata); + nOrbitsPerTF = grpecs->getNHBFPerTF(); // assuming 1 orbit = 1 HBF // tsSOR = grpecs->getTimeStart(); // ms // tsEOR = grpecs->getTimeEnd(); // ms // Temporary workaround for 22q (due to ZDC bc shifts) - o2::ccdb::CcdbApi ccdb_api; - ccdb_api.init("http://alice-ccdb.cern.ch"); - std::map metadataRCT, headers; - headers = ccdb_api.retrieveHeaders(Form("RCT/Info/RunInformation/%i", runNumber), metadataRCT, -1); - tsSOR = atol(headers["SOR"].c_str()); - tsEOR = atol(headers["EOR"].c_str()); - uint32_t nOrbitsPerTF = 128; + // o2::ccdb::CcdbApi ccdb_api; + // ccdb_api.init("http://alice-ccdb.cern.ch"); + // std::map metadataRCT, headers; + // headers = ccdb_api.retrieveHeaders(Form("RCT/Info/RunInformation/%i", runNumber), metadataRCT, -1); + // tsSOR = atol(headers["SOR"].c_str()); + // tsEOR = atol(headers["EOR"].c_str()); + // uint32_t nOrbitsPerTF = 128; LOGP(info, "nOrbitsPerTF={} tsSOR={} ms tsEOR={} ms", nOrbitsPerTF, tsSOR, tsEOR); // calculate SOR and EOR orbits @@ -550,17 +557,22 @@ struct EventSelectionQaTask { int64_t orbitEOR = (tsEOR * 1000 - tsOrbitReset) / o2::constants::lhc::LHCOrbitMUS; // adjust to the nearest TF edge - orbitSOR = orbitSOR / nOrbitsPerTF * nOrbitsPerTF - 1; - orbitEOR = orbitEOR / nOrbitsPerTF * nOrbitsPerTF - 1; + orbitSOR = orbitSOR / nOrbitsPerTF * nOrbitsPerTF; // was with - 1; + orbitEOR = orbitEOR / nOrbitsPerTF * nOrbitsPerTF; // was with - 1; // set nOrbits and minOrbit used for orbit-axis binning nOrbits = orbitEOR - orbitSOR; minOrbit = orbitSOR; + + // first bc of the first orbit (should coincide with TF start) + bcSOR = orbitSOR * nBCsPerOrbit; + // duration of TF in bcs + nBCsPerTF = nOrbitsPerTF * nBCsPerOrbit; } // create orbit-axis histograms on the fly with binning based on info from GRP if GRP is available // otherwise default minOrbit and nOrbits will be used - const AxisSpec axisOrbits{nOrbits / 128, 0., static_cast(nOrbits), ""}; + const AxisSpec axisOrbits{nOrbits / (int)nOrbitsPerTF /*128*/, 0., static_cast(nOrbits), ""}; histos.add("hOrbitAll", "", kTH1F, {axisOrbits}); histos.add("hOrbitCol", "", kTH1F, {axisOrbits}); histos.add("hOrbitAcc", "", kTH1F, {axisOrbits}); @@ -798,7 +810,7 @@ struct EventSelectionQaTask { for (const auto& track : tracks) { auto mapAmbTrIdsIt = mapAmbTrIds.find(track.globalIndex()); int ambTrId = mapAmbTrIdsIt == mapAmbTrIds.end() ? -1 : mapAmbTrIdsIt->second; - int indexBc = ambTrId < 0 ? track.collision_as().bc_as().globalIndex() : ambTracks.iteratorAt(ambTrId).bc_as().begin().globalIndex(); + int indexBc = ambTrId < 0 ? track.collision_as().bc_as().globalIndex() : ambTracks.iteratorAt(ambTrId).bc().begin().globalIndex(); auto bc = bcs.iteratorAt(indexBc); int64_t globalBC = bc.globalBC() + floor(track.trackTime() / o2::constants::lhc::LHCBunchSpacingNS); @@ -946,11 +958,17 @@ struct EventSelectionQaTask { } } + int nContributorsAfterEtaTPCCuts = 0; + // fill track time histograms for (auto& track : tracksGrouped) { if (!track.isPVContributor()) { continue; } + + if (fabs(track.eta()) < 0.8 && track.tpcNClsFound() > 80 && track.tpcNClsCrossedRows() > 100) + nContributorsAfterEtaTPCCuts++; + if (track.hasTOF()) continue; if (track.hasTRD()) @@ -971,6 +989,11 @@ struct EventSelectionQaTask { histos.fill(HIST("hNcontribCol"), nContributors); + // monitor nContributors vs bc in timeframe: + int64_t bcInTF = (globalBC - bcSOR) % nBCsPerTF; + histos.fill(HIST("hNcontribVsBcInTF"), bcInTF, nContributors); + histos.fill(HIST("hNcontribAfterCutsVsBcInTF"), bcInTF, nContributorsAfterEtaTPCCuts); + const auto& foundBC = col.foundBC_as(); float timeZNA = foundBC.has_zdc() ? foundBC.zdc().timeZNA() : -999.f; From ce860c9ad736ac6572bff84fde50eed9ef6effc3 Mon Sep 17 00:00:00 2001 From: altsybee Date: Tue, 6 Feb 2024 16:25:39 +0100 Subject: [PATCH 2/7] Update eventSelectionQa.cxx --- DPG/Tasks/AOTEvent/eventSelectionQa.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DPG/Tasks/AOTEvent/eventSelectionQa.cxx b/DPG/Tasks/AOTEvent/eventSelectionQa.cxx index aba04de97bb..787d1811fcb 100644 --- a/DPG/Tasks/AOTEvent/eventSelectionQa.cxx +++ b/DPG/Tasks/AOTEvent/eventSelectionQa.cxx @@ -810,7 +810,7 @@ struct EventSelectionQaTask { for (const auto& track : tracks) { auto mapAmbTrIdsIt = mapAmbTrIds.find(track.globalIndex()); int ambTrId = mapAmbTrIdsIt == mapAmbTrIds.end() ? -1 : mapAmbTrIdsIt->second; - int indexBc = ambTrId < 0 ? track.collision_as().bc_as().globalIndex() : ambTracks.iteratorAt(ambTrId).bc().begin().globalIndex(); + int indexBc = ambTrId < 0 ? track.collision_as().bc_as().globalIndex() : ambTracks.iteratorAt(ambTrId).bc_as().begin().globalIndex(); auto bc = bcs.iteratorAt(indexBc); int64_t globalBC = bc.globalBC() + floor(track.trackTime() / o2::constants::lhc::LHCBunchSpacingNS); From 1d07f89a37ca6c8523cfabeead3208b6b5d7dee2 Mon Sep 17 00:00:00 2001 From: altsybee Date: Tue, 6 Feb 2024 16:41:36 +0100 Subject: [PATCH 3/7] Update eventSelectionQa.cxx adding a Configurable "flagMonitorBcInTF" to add or not the bc in TF histograms (default: no) --- DPG/Tasks/AOTEvent/eventSelectionQa.cxx | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/DPG/Tasks/AOTEvent/eventSelectionQa.cxx b/DPG/Tasks/AOTEvent/eventSelectionQa.cxx index 787d1811fcb..49a09924439 100644 --- a/DPG/Tasks/AOTEvent/eventSelectionQa.cxx +++ b/DPG/Tasks/AOTEvent/eventSelectionQa.cxx @@ -38,6 +38,7 @@ struct EventSelectionQaTask { Configurable nOrbitsConf{"nOrbits", 10000, "number of orbits"}; Configurable refBC{"refBC", 1238, "reference bc"}; Configurable isLowFlux{"isLowFlux", 1, "1 - low flux (pp, pPb), 0 - high flux (PbPb)"}; + Configurable flagMonitorBcInTF{"flagMonitorBcInTF", 0, "0 - no, 1 - yes"}; uint64_t minGlobalBC = 0; Service ccdb; @@ -262,9 +263,12 @@ struct EventSelectionQaTask { histos.add("hMultT0MVsNcontribAcc", "", kTH2F, {axisMultT0M, axisNcontrib}); // before ITS RO Frame border cut histos.add("hMultT0MVsNcontribCut", "", kTH2F, {axisMultT0M, axisNcontrib}); // after ITS RO Frame border cut - AxisSpec axisBCinTF{128 * nBCsPerOrbit + 1 + 10, -0.5, 128 * nBCsPerOrbit + 0.5 + 10, "bc in TF"}; - histos.add("hNcontribVsBcInTF", ";bc in TF; n vertex contributors", kTH1D, {axisBCinTF}); - histos.add("hNcontribAfterCutsVsBcInTF", ";bc in TF; n vertex contributors", kTH1D, {axisBCinTF}); + if( flagMonitorBcInTF ) + { + AxisSpec axisBCinTF{128 * nBCsPerOrbit + 1 + 10, -0.5, 128 * nBCsPerOrbit + 0.5 + 10, "bc in TF"}; + histos.add("hNcontribVsBcInTF", ";bc in TF; n vertex contributors", kTH1D, {axisBCinTF}); + histos.add("hNcontribAfterCutsVsBcInTF", ";bc in TF; n vertex contributors", kTH1D, {axisBCinTF}); + } // MC histograms histos.add("hGlobalBcColMC", "", kTH1F, {axisGlobalBCs}); @@ -990,9 +994,12 @@ struct EventSelectionQaTask { histos.fill(HIST("hNcontribCol"), nContributors); // monitor nContributors vs bc in timeframe: - int64_t bcInTF = (globalBC - bcSOR) % nBCsPerTF; - histos.fill(HIST("hNcontribVsBcInTF"), bcInTF, nContributors); - histos.fill(HIST("hNcontribAfterCutsVsBcInTF"), bcInTF, nContributorsAfterEtaTPCCuts); + if( flagMonitorBcInTF ) + { + int64_t bcInTF = (globalBC - bcSOR) % nBCsPerTF; + histos.fill(HIST("hNcontribVsBcInTF"), bcInTF, nContributors); + histos.fill(HIST("hNcontribAfterCutsVsBcInTF"), bcInTF, nContributorsAfterEtaTPCCuts); + } const auto& foundBC = col.foundBC_as(); From 9f8dcff1495c144df75ee07ad2920310ae4d633b Mon Sep 17 00:00:00 2001 From: altsybee Date: Tue, 6 Feb 2024 17:26:24 +0100 Subject: [PATCH 4/7] Update eventSelectionQa.cxx minor changes --- DPG/Tasks/AOTEvent/eventSelectionQa.cxx | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/DPG/Tasks/AOTEvent/eventSelectionQa.cxx b/DPG/Tasks/AOTEvent/eventSelectionQa.cxx index 49a09924439..13cf3946ed9 100644 --- a/DPG/Tasks/AOTEvent/eventSelectionQa.cxx +++ b/DPG/Tasks/AOTEvent/eventSelectionQa.cxx @@ -38,7 +38,7 @@ struct EventSelectionQaTask { Configurable nOrbitsConf{"nOrbits", 10000, "number of orbits"}; Configurable refBC{"refBC", 1238, "reference bc"}; Configurable isLowFlux{"isLowFlux", 1, "1 - low flux (pp, pPb), 0 - high flux (PbPb)"}; - Configurable flagMonitorBcInTF{"flagMonitorBcInTF", 0, "0 - no, 1 - yes"}; + Configurable flagMonitorBcInTF{"flagMonitorBcInTF", 1, "0 - no, 1 - yes"}; uint64_t minGlobalBC = 0; Service ccdb; @@ -263,11 +263,10 @@ struct EventSelectionQaTask { histos.add("hMultT0MVsNcontribAcc", "", kTH2F, {axisMultT0M, axisNcontrib}); // before ITS RO Frame border cut histos.add("hMultT0MVsNcontribCut", "", kTH2F, {axisMultT0M, axisNcontrib}); // after ITS RO Frame border cut - if( flagMonitorBcInTF ) - { + if( flagMonitorBcInTF ) { AxisSpec axisBCinTF{128 * nBCsPerOrbit + 1 + 10, -0.5, 128 * nBCsPerOrbit + 0.5 + 10, "bc in TF"}; - histos.add("hNcontribVsBcInTF", ";bc in TF; n vertex contributors", kTH1D, {axisBCinTF}); - histos.add("hNcontribAfterCutsVsBcInTF", ";bc in TF; n vertex contributors", kTH1D, {axisBCinTF}); + histos.add("hNcontribVsBcInTF", ";bc in TF; n vertex contributors", kTH1F, {axisBCinTF}); + histos.add("hNcontribAfterCutsVsBcInTF", ";bc in TF; n vertex contributors", kTH1F, {axisBCinTF}); } // MC histograms @@ -543,8 +542,8 @@ struct EventSelectionQaTask { metadata["runNumber"] = Form("%d", runNumber); auto grpecs = ccdb->getSpecific("GLO/Config/GRPECS", ts, metadata); nOrbitsPerTF = grpecs->getNHBFPerTF(); // assuming 1 orbit = 1 HBF - // tsSOR = grpecs->getTimeStart(); // ms - // tsEOR = grpecs->getTimeEnd(); // ms + tsSOR = grpecs->getTimeStart(); // ms + tsEOR = grpecs->getTimeEnd(); // ms // Temporary workaround for 22q (due to ZDC bc shifts) // o2::ccdb::CcdbApi ccdb_api; @@ -576,7 +575,7 @@ struct EventSelectionQaTask { // create orbit-axis histograms on the fly with binning based on info from GRP if GRP is available // otherwise default minOrbit and nOrbits will be used - const AxisSpec axisOrbits{nOrbits / (int)nOrbitsPerTF /*128*/, 0., static_cast(nOrbits), ""}; + const AxisSpec axisOrbits{nOrbits / static_cast(nOrbitsPerTF) /*128*/, 0., static_cast(nOrbits), ""}; histos.add("hOrbitAll", "", kTH1F, {axisOrbits}); histos.add("hOrbitCol", "", kTH1F, {axisOrbits}); histos.add("hOrbitAcc", "", kTH1F, {axisOrbits}); @@ -994,8 +993,7 @@ struct EventSelectionQaTask { histos.fill(HIST("hNcontribCol"), nContributors); // monitor nContributors vs bc in timeframe: - if( flagMonitorBcInTF ) - { + if( flagMonitorBcInTF ) { int64_t bcInTF = (globalBC - bcSOR) % nBCsPerTF; histos.fill(HIST("hNcontribVsBcInTF"), bcInTF, nContributors); histos.fill(HIST("hNcontribAfterCutsVsBcInTF"), bcInTF, nContributorsAfterEtaTPCCuts); From c01ea6c64924ae044506617b6e5e16048bc34b01 Mon Sep 17 00:00:00 2001 From: altsybee Date: Tue, 6 Feb 2024 17:28:03 +0100 Subject: [PATCH 5/7] Update eventSelectionQa.cxx --- DPG/Tasks/AOTEvent/eventSelectionQa.cxx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/DPG/Tasks/AOTEvent/eventSelectionQa.cxx b/DPG/Tasks/AOTEvent/eventSelectionQa.cxx index 13cf3946ed9..0997ef6aa83 100644 --- a/DPG/Tasks/AOTEvent/eventSelectionQa.cxx +++ b/DPG/Tasks/AOTEvent/eventSelectionQa.cxx @@ -263,7 +263,7 @@ struct EventSelectionQaTask { histos.add("hMultT0MVsNcontribAcc", "", kTH2F, {axisMultT0M, axisNcontrib}); // before ITS RO Frame border cut histos.add("hMultT0MVsNcontribCut", "", kTH2F, {axisMultT0M, axisNcontrib}); // after ITS RO Frame border cut - if( flagMonitorBcInTF ) { + if(flagMonitorBcInTF ) { AxisSpec axisBCinTF{128 * nBCsPerOrbit + 1 + 10, -0.5, 128 * nBCsPerOrbit + 0.5 + 10, "bc in TF"}; histos.add("hNcontribVsBcInTF", ";bc in TF; n vertex contributors", kTH1F, {axisBCinTF}); histos.add("hNcontribAfterCutsVsBcInTF", ";bc in TF; n vertex contributors", kTH1F, {axisBCinTF}); @@ -993,7 +993,7 @@ struct EventSelectionQaTask { histos.fill(HIST("hNcontribCol"), nContributors); // monitor nContributors vs bc in timeframe: - if( flagMonitorBcInTF ) { + if(flagMonitorBcInTF ) { int64_t bcInTF = (globalBC - bcSOR) % nBCsPerTF; histos.fill(HIST("hNcontribVsBcInTF"), bcInTF, nContributors); histos.fill(HIST("hNcontribAfterCutsVsBcInTF"), bcInTF, nContributorsAfterEtaTPCCuts); From 8d683aff94b5b49581e6b5893a121f17713c8480 Mon Sep 17 00:00:00 2001 From: altsybee Date: Tue, 6 Feb 2024 17:32:42 +0100 Subject: [PATCH 6/7] Update eventSelectionQa.cxx --- DPG/Tasks/AOTEvent/eventSelectionQa.cxx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/DPG/Tasks/AOTEvent/eventSelectionQa.cxx b/DPG/Tasks/AOTEvent/eventSelectionQa.cxx index 0997ef6aa83..3407c843dc5 100644 --- a/DPG/Tasks/AOTEvent/eventSelectionQa.cxx +++ b/DPG/Tasks/AOTEvent/eventSelectionQa.cxx @@ -263,7 +263,7 @@ struct EventSelectionQaTask { histos.add("hMultT0MVsNcontribAcc", "", kTH2F, {axisMultT0M, axisNcontrib}); // before ITS RO Frame border cut histos.add("hMultT0MVsNcontribCut", "", kTH2F, {axisMultT0M, axisNcontrib}); // after ITS RO Frame border cut - if(flagMonitorBcInTF ) { + if(flagMonitorBcInTF) { AxisSpec axisBCinTF{128 * nBCsPerOrbit + 1 + 10, -0.5, 128 * nBCsPerOrbit + 0.5 + 10, "bc in TF"}; histos.add("hNcontribVsBcInTF", ";bc in TF; n vertex contributors", kTH1F, {axisBCinTF}); histos.add("hNcontribAfterCutsVsBcInTF", ";bc in TF; n vertex contributors", kTH1F, {axisBCinTF}); @@ -993,7 +993,7 @@ struct EventSelectionQaTask { histos.fill(HIST("hNcontribCol"), nContributors); // monitor nContributors vs bc in timeframe: - if(flagMonitorBcInTF ) { + if(flagMonitorBcInTF) { int64_t bcInTF = (globalBC - bcSOR) % nBCsPerTF; histos.fill(HIST("hNcontribVsBcInTF"), bcInTF, nContributors); histos.fill(HIST("hNcontribAfterCutsVsBcInTF"), bcInTF, nContributorsAfterEtaTPCCuts); From ce1f13b9bbc059339a0b1e222c7d00c884ef2ef2 Mon Sep 17 00:00:00 2001 From: ALICE Action Bot Date: Tue, 6 Feb 2024 16:36:25 +0000 Subject: [PATCH 7/7] MegaLinter fixes --- DPG/Tasks/AOTEvent/eventSelectionQa.cxx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/DPG/Tasks/AOTEvent/eventSelectionQa.cxx b/DPG/Tasks/AOTEvent/eventSelectionQa.cxx index 3407c843dc5..39e2cf6c7cf 100644 --- a/DPG/Tasks/AOTEvent/eventSelectionQa.cxx +++ b/DPG/Tasks/AOTEvent/eventSelectionQa.cxx @@ -263,7 +263,7 @@ struct EventSelectionQaTask { histos.add("hMultT0MVsNcontribAcc", "", kTH2F, {axisMultT0M, axisNcontrib}); // before ITS RO Frame border cut histos.add("hMultT0MVsNcontribCut", "", kTH2F, {axisMultT0M, axisNcontrib}); // after ITS RO Frame border cut - if(flagMonitorBcInTF) { + if (flagMonitorBcInTF) { AxisSpec axisBCinTF{128 * nBCsPerOrbit + 1 + 10, -0.5, 128 * nBCsPerOrbit + 0.5 + 10, "bc in TF"}; histos.add("hNcontribVsBcInTF", ";bc in TF; n vertex contributors", kTH1F, {axisBCinTF}); histos.add("hNcontribAfterCutsVsBcInTF", ";bc in TF; n vertex contributors", kTH1F, {axisBCinTF}); @@ -542,8 +542,8 @@ struct EventSelectionQaTask { metadata["runNumber"] = Form("%d", runNumber); auto grpecs = ccdb->getSpecific("GLO/Config/GRPECS", ts, metadata); nOrbitsPerTF = grpecs->getNHBFPerTF(); // assuming 1 orbit = 1 HBF - tsSOR = grpecs->getTimeStart(); // ms - tsEOR = grpecs->getTimeEnd(); // ms + tsSOR = grpecs->getTimeStart(); // ms + tsEOR = grpecs->getTimeEnd(); // ms // Temporary workaround for 22q (due to ZDC bc shifts) // o2::ccdb::CcdbApi ccdb_api; @@ -993,7 +993,7 @@ struct EventSelectionQaTask { histos.fill(HIST("hNcontribCol"), nContributors); // monitor nContributors vs bc in timeframe: - if(flagMonitorBcInTF) { + if (flagMonitorBcInTF) { int64_t bcInTF = (globalBC - bcSOR) % nBCsPerTF; histos.fill(HIST("hNcontribVsBcInTF"), bcInTF, nContributors); histos.fill(HIST("hNcontribAfterCutsVsBcInTF"), bcInTF, nContributorsAfterEtaTPCCuts);