From c7cc22c08c3c653af1348efda4713f8bab5c03c9 Mon Sep 17 00:00:00 2001 From: sigurd Date: Fri, 2 Jan 2026 11:08:06 +0100 Subject: [PATCH 1/3] Add variable for event not having a rapidity gap --- PWGDQ/Core/HistogramsLibrary.cxx | 1 + PWGDQ/Core/VarManager.cxx | 3 +++ PWGDQ/Core/VarManager.h | 7 ++++--- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/PWGDQ/Core/HistogramsLibrary.cxx b/PWGDQ/Core/HistogramsLibrary.cxx index 6f22a670d37..6949e1fd6e0 100644 --- a/PWGDQ/Core/HistogramsLibrary.cxx +++ b/PWGDQ/Core/HistogramsLibrary.cxx @@ -423,6 +423,7 @@ void o2::aod::dqhistograms::DefineHistograms(HistogramManager* hm, const char* h hm->AddHistogram(histClass, "IsDoubleGap", "Is double gap", false, 2, -0.5, 1.5, VarManager::kIsDoubleGap); hm->AddHistogram(histClass, "IsSingleGapA", "Is single gap on side A", false, 2, -0.5, 1.5, VarManager::kIsSingleGapA); hm->AddHistogram(histClass, "IsSingleGapC", "Is single gap on side C", false, 2, -0.5, 1.5, VarManager::kIsSingleGapC); + hm->AddHistogram(histClass, "IsNoGap", "Is no gap event", false, 2, -0.5, 1.5, VarManager::kIsNoGap); hm->AddHistogram(histClass, "IsITSUPCMode", "UPC settings used", false, 2, -0.5, 1.5, VarManager::kIsITSUPCMode); hm->AddHistogram(histClass, "IsITSUPCMode_IsSingleGap", "UPC settings used vs Is single gap", false, 2, -0.5, 1.5, VarManager::kIsITSUPCMode, 2, -0.5, 1.5, VarManager::kIsSingleGap); } diff --git a/PWGDQ/Core/VarManager.cxx b/PWGDQ/Core/VarManager.cxx index 3d5475649a9..02fcd1633a8 100644 --- a/PWGDQ/Core/VarManager.cxx +++ b/PWGDQ/Core/VarManager.cxx @@ -1308,6 +1308,8 @@ void VarManager::SetDefaultVarNames() fgVariableUnits[kIsSingleGapC] = ""; fgVariableNames[kIsSingleGap] = "is single gap event"; fgVariableUnits[kIsSingleGap] = ""; + fgVariableNames[kIsNoGap] = "is no gap event"; + fgVariableUnits[kIsNoGap] = ""; fgVariableNames[kIsITSUPCMode] = "UPC settings used"; fgVariableUnits[kIsITSUPCMode] = ""; fgVariableNames[kQuadMass] = "mass quadruplet"; @@ -1619,6 +1621,7 @@ void VarManager::SetDefaultVarNames() fgVarNamesMap["kIsSingleGapA"] = kIsSingleGapA; fgVarNamesMap["kIsSingleGapC"] = kIsSingleGapC; fgVarNamesMap["kIsSingleGap"] = kIsSingleGap; + fgVarNamesMap["kIsNoGap"] = kIsNoGap; fgVarNamesMap["kIsITSUPCMode"] = kIsITSUPCMode; fgVarNamesMap["kTwoEvPosZ1"] = kTwoEvPosZ1; fgVarNamesMap["kTwoEvPosZ2"] = kTwoEvPosZ2; diff --git a/PWGDQ/Core/VarManager.h b/PWGDQ/Core/VarManager.h index da047fbaed4..5e6318f4776 100644 --- a/PWGDQ/Core/VarManager.h +++ b/PWGDQ/Core/VarManager.h @@ -404,6 +404,7 @@ class VarManager : public TObject kIsSingleGapA, // Rapidity gap on side A kIsSingleGapC, // Rapidity gap on side C kIsSingleGap, // Rapidity gap on either side + kIsNoGap, // No rapidity gap kIsITSUPCMode, // UPC mode used for event kTwoEvPosZ1, // vtx-z for collision 1 in two events correlations kTwoEvPosZ2, // vtx-z for collision 2 in two events correlations @@ -1848,13 +1849,12 @@ void VarManager::FillEvent(T const& event, float* values) values[kVtxY] = event.posY(); values[kVtxZ] = event.posZ(); values[kVtxNcontrib] = event.numContrib(); - if (fgUsedVars[kIsDoubleGap]) { + if (fgUsedVars[kIsDoubleGap] || fgUsedVars[kIsSingleGap] || fgUsedVars[kIsSingleGapA] || fgUsedVars[kIsSingleGapC] || fgUsedVars[kIsNoGap]) { values[kIsDoubleGap] = (event.tag_bit(56 + kDoubleGap) > 0); - } - if (fgUsedVars[kIsSingleGap] || fgUsedVars[kIsSingleGapA] || fgUsedVars[kIsSingleGapC]) { values[kIsSingleGapA] = (event.tag_bit(56 + kSingleGapA) > 0); values[kIsSingleGapC] = (event.tag_bit(56 + kSingleGapC) > 0); values[kIsSingleGap] = values[kIsSingleGapA] || values[kIsSingleGapC]; + values[kIsNoGap] = !values[kIsDoubleGap] && !values[kIsSingleGap]; } if (fgUsedVars[kIsITSUPCMode]) { values[kIsITSUPCMode] = (event.tag_bit(56 + kITSUPCMode) > 0); @@ -2136,6 +2136,7 @@ void VarManager::FillEvent(T const& event, float* values) values[kIsSingleGapA] = (event.eventFilter() & (static_cast(1) << kSingleGapA)) > 0; values[kIsSingleGapC] = (event.eventFilter() & (static_cast(1) << kSingleGapC)) > 0; values[kIsSingleGap] = values[kIsSingleGapA] || values[kIsSingleGapC]; + values[kIsNoGap] = !values[kIsDoubleGap] && !values[kIsSingleGap]; values[kIsITSUPCMode] = (event.eventFilter() & (static_cast(1) << kITSUPCMode)) > 0; } From 15b3418ae4d2a199e04dc1e4959113124ea45f3d Mon Sep 17 00:00:00 2001 From: sigurd Date: Fri, 2 Jan 2026 11:11:25 +0100 Subject: [PATCH 2/3] Rename 'filter' hist class to 'rapidity-gap' --- PWGDQ/Core/HistogramsLibrary.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PWGDQ/Core/HistogramsLibrary.cxx b/PWGDQ/Core/HistogramsLibrary.cxx index 6949e1fd6e0..fb0b240728f 100644 --- a/PWGDQ/Core/HistogramsLibrary.cxx +++ b/PWGDQ/Core/HistogramsLibrary.cxx @@ -419,7 +419,7 @@ void o2::aod::dqhistograms::DefineHistograms(HistogramManager* hm, const char* h hm->AddHistogram(histClass, "Profile_R2EP_Im_TPCFT0C_CentFT0C", "Profile_R2EP_Im_TPCFT0C_CentFT0C", true, 90, 0.0, 90.0, VarManager::kCentFT0C, 500, 0.0, 5.0, VarManager::kR2EP_AC_Im, 0, 0, 0, -1, "", "", "", -1, VarManager::kWR2EP_AC_Im); hm->AddHistogram(histClass, "Profile_R2EP_Im_FT0AFT0C_CentFT0C", "Profile_R2EP_Im_FT0AFT0C_CentFT0C", true, 90, 0.0, 90.0, VarManager::kCentFT0C, 500, 0.0, 5.0, VarManager::kR2EP_BC_Im, 0, 0, 0, -1, "", "", "", -1, VarManager::kWR2EP_BC_Im); } - if (subGroupStr.Contains("filter")) { + if (subGroupStr.Contains("rapidity-gap")) { hm->AddHistogram(histClass, "IsDoubleGap", "Is double gap", false, 2, -0.5, 1.5, VarManager::kIsDoubleGap); hm->AddHistogram(histClass, "IsSingleGapA", "Is single gap on side A", false, 2, -0.5, 1.5, VarManager::kIsSingleGapA); hm->AddHistogram(histClass, "IsSingleGapC", "Is single gap on side C", false, 2, -0.5, 1.5, VarManager::kIsSingleGapC); From 9d5117bab0ba20b96afb5306e8d531a0678d6feb Mon Sep 17 00:00:00 2001 From: sigurd Date: Fri, 2 Jan 2026 10:31:23 +0100 Subject: [PATCH 3/3] Add event cuts for neutron classes based on ZDC time --- PWGDQ/Core/CutsLibrary.cxx | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/PWGDQ/Core/CutsLibrary.cxx b/PWGDQ/Core/CutsLibrary.cxx index ac4af0432b8..df6c2d74329 100644 --- a/PWGDQ/Core/CutsLibrary.cxx +++ b/PWGDQ/Core/CutsLibrary.cxx @@ -4090,6 +4090,30 @@ AnalysisCut* o2::aod::dqcuts::GetAnalysisCut(const char* cutName) return cutAorC; } + if (!nameStr.compare("eventXn0nTime")) { + cut->AddCut(VarManager::kTimeZNA, -2.0, 2.0); + cut->AddCut(VarManager::kTimeZNC, -2.0, 2.0, true); + return cut; + } + + if (!nameStr.compare("event0nXnTime")) { + cut->AddCut(VarManager::kTimeZNA, -2.0, 2.0, true); + cut->AddCut(VarManager::kTimeZNC, -2.0, 2.0); + return cut; + } + + if (!nameStr.compare("event0n0nTime")) { + cut->AddCut(VarManager::kTimeZNA, -2.0, 2.0, true); + cut->AddCut(VarManager::kTimeZNC, -2.0, 2.0, true); + return cut; + } + + if (!nameStr.compare("eventXnXnTime")) { + cut->AddCut(VarManager::kTimeZNA, -2.0, 2.0); + cut->AddCut(VarManager::kTimeZNC, -2.0, 2.0); + return cut; + } + // Event cuts based on centrality if (!nameStr.compare("eventStandardNoINT7Cent090")) { cut->AddCut(VarManager::kVtxZ, -10.0, 10.0);