From 86ed94c5924fecdf857806daefb8d97f2849d03a Mon Sep 17 00:00:00 2001 From: MATTEI Date: Thu, 18 Dec 2025 17:23:14 +0100 Subject: [PATCH 1/2] [PWGMM] Adding bc idx and ZN amplitudes to vdm derived data --- PWGMM/Lumi/Tasks/lumiStabilityLightIons.cxx | 24 ++++++++++++++------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/PWGMM/Lumi/Tasks/lumiStabilityLightIons.cxx b/PWGMM/Lumi/Tasks/lumiStabilityLightIons.cxx index 48f7b76be40..d304b232b3b 100644 --- a/PWGMM/Lumi/Tasks/lumiStabilityLightIons.cxx +++ b/PWGMM/Lumi/Tasks/lumiStabilityLightIons.cxx @@ -43,10 +43,13 @@ namespace o2::aod namespace myBc_aod { DECLARE_SOA_COLUMN(Timestamp, timestamp, uint64_t); +DECLARE_SOA_COLUMN(BCid, bcId, int); DECLARE_SOA_COLUMN(TimeZNA, timeZNA, float); DECLARE_SOA_COLUMN(TimeZNC, timeZNC, float); +DECLARE_SOA_COLUMN(AmplitudeZNA, amplitudeZNA, float); +DECLARE_SOA_COLUMN(AmplitudeZNC, amplitudeZNC, float); } // namespace myBc_aod -DECLARE_SOA_TABLE(MyBCaod, "AOD", "MYBCAOD", myBc_aod::Timestamp, myBc_aod::TimeZNA, myBc_aod::TimeZNC); +DECLARE_SOA_TABLE(MyBCaod, "AOD", "MYBCAOD", myBc_aod::Timestamp, myBc_aod:: BCid, myBc_aod::TimeZNA, myBc_aod::TimeZNC, myBc_aod::AmplitudeZNA, myBc_aod::AmplitudeZNC); } // namespace o2::aod using MyBCs = soa::Join; @@ -66,9 +69,9 @@ struct LumiStabilityLightIons { Configurable cfgDoBCL{"cfgDoBCL", false, "Create and fill histograms for leading BCs of type B"}; Configurable cfgDoBCSL{"cfgDoBCSL", false, "Create and fill histograms for super-leading BCs (no preceding FT0/FDD activity) of type B"}; - Configurable cfgRequireZDCTriggerForZDCQA{"cfgRequireZDCTriggerForZDCQA", false, "Require ZDC trigger (1ZNC or 1ZNA) for filling QA histograms"}; - Configurable cfgRequireTVXTriggerForZDCQA{"cfgRequireTVXTriggerForZDCQA", false, "Require FT0 vertex trigger for filling ZDC QA histograms"}; - + Configurable cfgRequireZDCTriggerForZDCQA{"cfgRequireZDCTriggerForZDCQA", false, "Require ZDC trigger (1ZNC) for filling QA histograms"}; + Configurable cfgRequireTVXTriggerForZDCQA{"cfgRequireTVXTriggerForZDCQA", false, "Require FT0 vertex trigger (MTVX) for filling ZDC QA histograms"}; + Configurable cfgRequireNoT0ForSLBC{"cfgRequireNoT0ForSLBC", false, "Require no T0 signal for definition of super leading BC (otherwise only no FDD)"}; Configurable cfgEmptyBCsBeforeLeadingBC{"cfgEmptyBCsBeforeLeadingBC", 5, "Minimum number of empty BCs before a leading BC to identify it as such"}; @@ -253,11 +256,11 @@ struct LumiStabilityLightIons { for (const auto& bc : bcs) { std::bitset<64> ctpInputMask(bc.inputMask()); - if (cfgRequireTVXTriggerForZDCQA && !(ctpInputMask.test(2))) + if (cfgRequireTVXTriggerForZDCQA && !(ctpInputMask.test(2))) //2 = 3 - 1 -> MTVX continue; - if (cfgRequireZDCTriggerForZDCQA && !(ctpInputMask.test(25))) + if (cfgRequireZDCTriggerForZDCQA && !(ctpInputMask.test(25))) //25 = 26 - 1 -> 1ZNC continue; - + bool zdcHit = !bc.has_zdc() ? 0 : ((bc.zdc().energyCommonZNC() > -1 && std::abs(bc.zdc().timeZNC()) < 1E5) ? 1 : 0); mHistManager.fill(HIST("ZDCQA/BCHasZDC"), zdcHit, ctpInputMask.test(25) ? 1 : 0); if (!bc.has_zdc()) @@ -281,9 +284,14 @@ struct LumiStabilityLightIons { mHistManager.fill(HIST("ZDCQA/ZDCTimes"), timeZNA, timeZNC); // For VdM analysis: fill timestamps and ZDC times in output tree, if enabled + // Fill BC idx and ZNA and ZNC amplitudes as well uint64_t timestamp = bc.timestamp(); + int64_t globalBC = bc.globalBC(); + int localBC = globalBC % nBCsPerOrbit; + float amplitudeZNA = bc.zdc().amplitudeZNA(); + float amplitudeZNC = bc.zdc().amplitudeZNC(); if (cfgFillBCao2d && timestamp >= cfgTstampStartFillingBCao2d && timestamp <= cfgTstampEndFillingBCao2d) { - BCaod(timestamp, timeZNA, timeZNC); + BCaod(timestamp, localBC, timeZNA, timeZNC, amplitudeZNA, amplitudeZNC); } } } From 795b7885c87d823e5b2581b51b6be257c673d324 Mon Sep 17 00:00:00 2001 From: ALICE Action Bot Date: Thu, 18 Dec 2025 16:47:01 +0000 Subject: [PATCH 2/2] Please consider the following formatting changes --- PWGMM/Lumi/Tasks/lumiStabilityLightIons.cxx | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/PWGMM/Lumi/Tasks/lumiStabilityLightIons.cxx b/PWGMM/Lumi/Tasks/lumiStabilityLightIons.cxx index d304b232b3b..aaee1103dfb 100644 --- a/PWGMM/Lumi/Tasks/lumiStabilityLightIons.cxx +++ b/PWGMM/Lumi/Tasks/lumiStabilityLightIons.cxx @@ -49,7 +49,7 @@ DECLARE_SOA_COLUMN(TimeZNC, timeZNC, float); DECLARE_SOA_COLUMN(AmplitudeZNA, amplitudeZNA, float); DECLARE_SOA_COLUMN(AmplitudeZNC, amplitudeZNC, float); } // namespace myBc_aod -DECLARE_SOA_TABLE(MyBCaod, "AOD", "MYBCAOD", myBc_aod::Timestamp, myBc_aod:: BCid, myBc_aod::TimeZNA, myBc_aod::TimeZNC, myBc_aod::AmplitudeZNA, myBc_aod::AmplitudeZNC); +DECLARE_SOA_TABLE(MyBCaod, "AOD", "MYBCAOD", myBc_aod::Timestamp, myBc_aod::BCid, myBc_aod::TimeZNA, myBc_aod::TimeZNC, myBc_aod::AmplitudeZNA, myBc_aod::AmplitudeZNC); } // namespace o2::aod using MyBCs = soa::Join; @@ -71,7 +71,7 @@ struct LumiStabilityLightIons { Configurable cfgRequireZDCTriggerForZDCQA{"cfgRequireZDCTriggerForZDCQA", false, "Require ZDC trigger (1ZNC) for filling QA histograms"}; Configurable cfgRequireTVXTriggerForZDCQA{"cfgRequireTVXTriggerForZDCQA", false, "Require FT0 vertex trigger (MTVX) for filling ZDC QA histograms"}; - + Configurable cfgRequireNoT0ForSLBC{"cfgRequireNoT0ForSLBC", false, "Require no T0 signal for definition of super leading BC (otherwise only no FDD)"}; Configurable cfgEmptyBCsBeforeLeadingBC{"cfgEmptyBCsBeforeLeadingBC", 5, "Minimum number of empty BCs before a leading BC to identify it as such"}; @@ -256,11 +256,11 @@ struct LumiStabilityLightIons { for (const auto& bc : bcs) { std::bitset<64> ctpInputMask(bc.inputMask()); - if (cfgRequireTVXTriggerForZDCQA && !(ctpInputMask.test(2))) //2 = 3 - 1 -> MTVX + if (cfgRequireTVXTriggerForZDCQA && !(ctpInputMask.test(2))) // 2 = 3 - 1 -> MTVX continue; - if (cfgRequireZDCTriggerForZDCQA && !(ctpInputMask.test(25))) //25 = 26 - 1 -> 1ZNC + if (cfgRequireZDCTriggerForZDCQA && !(ctpInputMask.test(25))) // 25 = 26 - 1 -> 1ZNC continue; - + bool zdcHit = !bc.has_zdc() ? 0 : ((bc.zdc().energyCommonZNC() > -1 && std::abs(bc.zdc().timeZNC()) < 1E5) ? 1 : 0); mHistManager.fill(HIST("ZDCQA/BCHasZDC"), zdcHit, ctpInputMask.test(25) ? 1 : 0); if (!bc.has_zdc())