From b1460631fd791835be60b2a1d29002b8b2735e8a Mon Sep 17 00:00:00 2001 From: Magnus Date: Wed, 11 Nov 2026 15:22:32 +0100 Subject: [PATCH 1/9] [PWGDQ] Add new process function and fix variables in VarManager --- PWGDQ/Core/VarManager.cxx | 24 ++++++++++++++++++------ PWGDQ/Core/VarManager.h | 6 ++++++ PWGDQ/Tasks/tableReader_withAssoc.h | 16 +++++++++++++++- 3 files changed, 39 insertions(+), 7 deletions(-) diff --git a/PWGDQ/Core/VarManager.cxx b/PWGDQ/Core/VarManager.cxx index b85e284dd40..34479fefb90 100644 --- a/PWGDQ/Core/VarManager.cxx +++ b/PWGDQ/Core/VarManager.cxx @@ -1345,12 +1345,16 @@ void VarManager::SetDefaultVarNames() fgVariableUnits[kVertexingLxyzProjected] = "cm"; fgVariableNames[kVertexingTauzProjected] = "Pair pseudo-proper Tauz"; fgVariableUnits[kVertexingTauzProjected] = "ns"; - fgVariableNames[kVertexingTauxyProjected] = "Pair pseudo-proper Tauxy"; - fgVariableUnits[kVertexingTauxyProjected] = "ns"; - fgVariableNames[kVertexingTauxyProjectedPoleJPsiMass] = "Pair pseudo-proper Tauxy (with pole JPsi mass)"; - fgVariableUnits[kVertexingTauxyProjectedPoleJPsiMass] = "ns"; - fgVariableNames[kVertexingTauxyzProjected] = "Pair pseudo-proper Tauxyz"; - fgVariableUnits[kVertexingTauxyzProjected] = "ns"; + // Magnus, Change of incorrect unit labeling (from ns to cm) + fgVariableNames[kVertexingTauxyProjected] = "Pair pseudo-proper decay length"; + fgVariableUnits[kVertexingTauxyProjected] = "cm"; + fgVariableNames[kVertexingTauxyProjectedPoleJPsiMass] = "Pair pseudo-proper decay length (with pole JPsi mass)"; + fgVariableUnits[kVertexingTauxyProjectedPoleJPsiMass] = "cm"; + fgVariableNames[kVertexingTauxyProjectedNs] = "Pair pseudo-proper decay time"; + fgVariableUnits[kVertexingTauxyProjectedNs] = "ns"; + fgVariableNames[kVertexingTauxyzProjected] = "Pair pseudo-proper decay length"; + fgVariableUnits[kVertexingTauxyzProjected] = "cm"; + fgVariableNames[kMCVertexingLxyProjected] = "MC Lxy_{proj}"; fgVariableUnits[kMCVertexingLxyProjected] = "cm"; fgVariableNames[kMCVertexingLzProjected] = "MC Lz_{proj}"; @@ -1511,6 +1515,11 @@ void VarManager::SetDefaultVarNames() fgVariableUnits[kQ4Y0C] = ""; fgVariableNames[kU2Q2] = "u_{2}Q_{2}^{A} "; fgVariableUnits[kU2Q2] = ""; + // Magnus, Added variable for the U2Q2-values for FT0A and FT0C + fgVariableNames[kU2Q2FT0A] = "u_{2}Q_{2}^{FT0A} "; + fgVariableUnits[kU2Q2FT0A] = ""; + fgVariableNames[kU2Q2FT0C] = "u_{2}Q_{2}^{FT0C} "; + fgVariableUnits[kU2Q2FT0C] = ""; fgVariableNames[kU3Q3] = "u_{3}Q_{3}^{A} "; fgVariableUnits[kU3Q3] = ""; fgVariableNames[kQ42XA] = "Q_{42,x}^{A} "; @@ -2709,6 +2718,9 @@ void VarManager::SetDefaultVarNames() fgVarNamesMap["kWV2SP"] = kWV2SP; fgVarNamesMap["kWV2EP"] = kWV2EP; fgVarNamesMap["kU2Q2"] = kU2Q2; + // Magnus, Added variable names for U2Q2 in FT0A and FT0C + fgVarNamesMap["kU2Q2FT0A"] = kU2Q2FT0A; + fgVarNamesMap["kU2Q2FT0C"] = kU2Q2FT0C; fgVarNamesMap["kU3Q3"] = kU3Q3; fgVarNamesMap["kQ42XA"] = kQ42XA; fgVarNamesMap["kQ42YA"] = kQ42YA; diff --git a/PWGDQ/Core/VarManager.h b/PWGDQ/Core/VarManager.h index 99c049374e8..35867b957af 100644 --- a/PWGDQ/Core/VarManager.h +++ b/PWGDQ/Core/VarManager.h @@ -914,6 +914,9 @@ class VarManager : public TObject kU2Q2, kU2Q2POS, kU2Q2NEG, + //Magnus, Variable definition of U2Q2 for FT0A and FT0C + kU2Q2FT0A, + kU2Q2FT0C, kU3Q3, kQ42XA, kQ42YA, @@ -6416,6 +6419,9 @@ void VarManager::FillPairVn(T1 const& t1, T2 const& t2, float* values) values[kU2Q2] = values[kQ2X0A] * TMath::Cos(2 * v12.Phi()) + values[kQ2Y0A] * TMath::Sin(2 * v12.Phi()); values[kU2Q2POS] = values[kQ2X0APOS] * TMath::Cos(2 * v12.Phi()) + values[kQ2Y0APOS] * TMath::Sin(2 * v12.Phi()); values[kU2Q2NEG] = values[kQ2X0ANEG] * TMath::Cos(2 * v12.Phi()) + values[kQ2Y0ANEG] * TMath::Sin(2 * v12.Phi()); + // Magnus, Addition of new U2Q2 values for FT0A and FT0C + values[kU2Q2FT0A] = values[kQ2X0B] * TMath::Cos(2 * v12.Phi()) + values[kQ2Y0B] * TMath::Sin(2 * v12.Phi()); + values[kU2Q2FT0C] = values[kQ2X0C] * TMath::Cos(2 * v12.Phi()) + values[kQ2Y0C] * TMath::Sin(2 * v12.Phi()); values[kU3Q3] = values[kQ3X0A] * TMath::Cos(3 * v12.Phi()) + values[kQ3Y0A] * TMath::Sin(3 * v12.Phi()); values[kR2SP_AB] = (values[kQ2X0A] * values[kQ2X0B] + values[kQ2Y0A] * values[kQ2Y0B]); values[kR2SP_AC] = (values[kQ2X0A] * values[kQ2X0C] + values[kQ2Y0A] * values[kQ2Y0C]); diff --git a/PWGDQ/Tasks/tableReader_withAssoc.h b/PWGDQ/Tasks/tableReader_withAssoc.h index 1aff98249a4..b1cda3d6679 100644 --- a/PWGDQ/Tasks/tableReader_withAssoc.h +++ b/PWGDQ/Tasks/tableReader_withAssoc.h @@ -261,6 +261,7 @@ using MyEventsHashSelected = o2::soa::Join; using MyEventsVtxCovSelected = o2::soa::Join; using MyEventsVtxCovSelectedInfo = o2::soa::Join; +// Magnus, Declaration of name for event table with vertex covariance and Qvector information. using MyEventsVtxCovSelectedQvector = o2::soa::Join; using MyEventsVtxCovSelectedQvectorWithHash = o2::soa::Join; using MyEventsVtxCovZdcFitSelected = o2::soa::Join; @@ -287,6 +288,8 @@ using MyMuonTracksWithCov = o2::soa::Join; using MyMuonTracksSelectedWithColl = o2::soa::Join; +// Magnus, Added a new fillmap for event with Qvector and centrality. +constexpr static uint32_t gkEventFillMapWithCovQvectorCentr = VarManager::ObjTypes::ReducedEvent | VarManager::ObjTypes::ReducedEventExtended | VarManager::ObjTypes::ReducedEventVtxCov | VarManager::ObjTypes::CollisionQvect | VarManager::ObjTypes::ReducedEventMultExtra; // bit maps used for the Fill functions of the VarManager constexpr static uint32_t gkEventFillMap = VarManager::ObjTypes::ReducedEvent | VarManager::ObjTypes::ReducedEventExtended; constexpr static uint32_t gkEventFillMapWithZdc = VarManager::ObjTypes::ReducedEvent | VarManager::ObjTypes::ReducedEventExtended | VarManager::ReducedZdc; @@ -1574,7 +1577,8 @@ struct AnalysisSameEventPairing { void init(o2::framework::InitContext& context) { - fEnableBarrelHistos = context.mOptions.get("processAllSkimmed") || context.mOptions.get("processBarrelOnlySkimmed") || context.mOptions.get("processBarrelOnlyWithCollSkimmed") || context.mOptions.get("processBarrelOnlySkimmedNoCov") || context.mOptions.get("processBarrelOnlySkimmedNoCovWithMultExtra") || context.mOptions.get("processBarrelOnlyWithQvectorCentrSkimmedNoCov") || context.mOptions.get("processBarrelOnlyWithQvectorCentrSkimmed") || context.mOptions.get("processBarrelOnlyDiKaons") || context.mOptions.get("processBarrelOnlyDiProtons"); + // Magnus, Added new process function to enabled histograms. + fEnableBarrelHistos = context.mOptions.get("processAllSkimmed") || context.mOptions.get("processBarrelOnlySkimmed") || context.mOptions.get("processBarrelOnlyWithCollSkimmed") || context.mOptions.get("processBarrelOnlySkimmedNoCov") || context.mOptions.get("processBarrelOnlySkimmedNoCovWithMultExtra") || context.mOptions.get("processBarrelOnlyWithQvectorCentrSkimmedNoCov") || context.mOptions.get("processBarrelOnlyWithQvectorCentrSkimmed") || context.mOptions.get("processBarrelOnlyWithQvectorCentrVtxCovSkimmed") || context.mOptions.get("processBarrelOnlyDiKaons") || context.mOptions.get("processBarrelOnlyDiProtons"); fEnableBarrelMixingHistos = context.mOptions.get("processMixingAllSkimmed") || context.mOptions.get("processMixingBarrelSkimmed") || context.mOptions.get("processMixingBarrelSkimmedFlow") || context.mOptions.get("processMixingBarrelWithQvectorCentrSkimmedNoCov"); fEnableBarrelMixingHistos |= fConfigRunMixingAcrossTFs; fEnableMuonHistos = context.mOptions.get("processAllSkimmed") || context.mOptions.get("processMuonOnlySkimmed") || context.mOptions.get("processMuonOnlySkimmedMultExtra") || context.mOptions.get("processMuonOnlySkimmedFlow") || context.mOptions.get("processMuonOnlyVertexingSkimmed"); @@ -3262,6 +3266,14 @@ struct AnalysisSameEventPairing { runSameEventPairing(events, trackAssocsPerCollision, barrelAssocs, barrelTracks); } + // Magnus, Defined a new process function with Qvector, Centrality and Vertex Covariance. + void processBarrelOnlyWithQvectorCentrVtxCovSkimmed(MyEventsVtxCovSelectedQvector const& events, + o2::soa::Join const& barrelAssocs, + MyBarrelTracksWithCovWithAmbiguities const& barrelTracks) + { + runSameEventPairing(events, trackAssocsPerCollision, barrelAssocs, barrelTracks); + } + void processMuonOnlySkimmed(MyEventsVtxCovSelected const& events, o2::soa::Join const& muonAssocs, MyMuonTracksWithCovWithAmbiguities const& muons) { @@ -3365,6 +3377,8 @@ struct AnalysisSameEventPairing { PROCESS_SWITCH(AnalysisSameEventPairing, processMixingMuonSkimmed, "Run muon type mixing pairing, with skimmed muons", false); PROCESS_SWITCH(AnalysisSameEventPairing, processMixingMuonSkimmedFlow, "Run muon type mixing pairing, with skimmed muons and flow", false); PROCESS_SWITCH(AnalysisSameEventPairing, processMixingElectronMuonSkimmed, "Run electron-muon mixing pairing, with skimmed tracks/muons", false); + // Magnus, Added process switch for pairing with Qvector from central framework and event vertex covariance + PROCESS_SWITCH(AnalysisSameEventPairing, processBarrelOnlyWithQvectorCentrVtxCovSkimmed, "Run barrel only pairing, with skimmed tracks with covariances, event vertex covariance, and Qvector from central framework", false); PROCESS_SWITCH(AnalysisSameEventPairing, processDummy, "Dummy function, enabled only if none of the others are enabled", true); }; From 3058df5d3c6a02b45dee3f8fd7240ed273a6d50c Mon Sep 17 00:00:00 2001 From: Magnus <57144728+ThePhDane@users.noreply.github.com> Date: Wed, 11 Nov 2026 16:24:01 +0100 Subject: [PATCH 2/9] Refactor comments for clarity on Qvector processes Removed comments indicating the addition of new fill maps and process functions related to Qvector and vertex covariance. --- PWGDQ/Tasks/tableReader_withAssoc.h | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/PWGDQ/Tasks/tableReader_withAssoc.h b/PWGDQ/Tasks/tableReader_withAssoc.h index b1cda3d6679..0cb511cea00 100644 --- a/PWGDQ/Tasks/tableReader_withAssoc.h +++ b/PWGDQ/Tasks/tableReader_withAssoc.h @@ -261,7 +261,6 @@ using MyEventsHashSelected = o2::soa::Join; using MyEventsVtxCovSelected = o2::soa::Join; using MyEventsVtxCovSelectedInfo = o2::soa::Join; -// Magnus, Declaration of name for event table with vertex covariance and Qvector information. using MyEventsVtxCovSelectedQvector = o2::soa::Join; using MyEventsVtxCovSelectedQvectorWithHash = o2::soa::Join; using MyEventsVtxCovZdcFitSelected = o2::soa::Join; @@ -288,7 +287,6 @@ using MyMuonTracksWithCov = o2::soa::Join; using MyMuonTracksSelectedWithColl = o2::soa::Join; -// Magnus, Added a new fillmap for event with Qvector and centrality. constexpr static uint32_t gkEventFillMapWithCovQvectorCentr = VarManager::ObjTypes::ReducedEvent | VarManager::ObjTypes::ReducedEventExtended | VarManager::ObjTypes::ReducedEventVtxCov | VarManager::ObjTypes::CollisionQvect | VarManager::ObjTypes::ReducedEventMultExtra; // bit maps used for the Fill functions of the VarManager constexpr static uint32_t gkEventFillMap = VarManager::ObjTypes::ReducedEvent | VarManager::ObjTypes::ReducedEventExtended; @@ -1577,7 +1575,6 @@ struct AnalysisSameEventPairing { void init(o2::framework::InitContext& context) { - // Magnus, Added new process function to enabled histograms. fEnableBarrelHistos = context.mOptions.get("processAllSkimmed") || context.mOptions.get("processBarrelOnlySkimmed") || context.mOptions.get("processBarrelOnlyWithCollSkimmed") || context.mOptions.get("processBarrelOnlySkimmedNoCov") || context.mOptions.get("processBarrelOnlySkimmedNoCovWithMultExtra") || context.mOptions.get("processBarrelOnlyWithQvectorCentrSkimmedNoCov") || context.mOptions.get("processBarrelOnlyWithQvectorCentrSkimmed") || context.mOptions.get("processBarrelOnlyWithQvectorCentrVtxCovSkimmed") || context.mOptions.get("processBarrelOnlyDiKaons") || context.mOptions.get("processBarrelOnlyDiProtons"); fEnableBarrelMixingHistos = context.mOptions.get("processMixingAllSkimmed") || context.mOptions.get("processMixingBarrelSkimmed") || context.mOptions.get("processMixingBarrelSkimmedFlow") || context.mOptions.get("processMixingBarrelWithQvectorCentrSkimmedNoCov"); fEnableBarrelMixingHistos |= fConfigRunMixingAcrossTFs; @@ -3266,7 +3263,7 @@ struct AnalysisSameEventPairing { runSameEventPairing(events, trackAssocsPerCollision, barrelAssocs, barrelTracks); } - // Magnus, Defined a new process function with Qvector, Centrality and Vertex Covariance. + // New process function with Qvector, Centrality and Vertex Covariance. void processBarrelOnlyWithQvectorCentrVtxCovSkimmed(MyEventsVtxCovSelectedQvector const& events, o2::soa::Join const& barrelAssocs, MyBarrelTracksWithCovWithAmbiguities const& barrelTracks) @@ -3377,7 +3374,7 @@ struct AnalysisSameEventPairing { PROCESS_SWITCH(AnalysisSameEventPairing, processMixingMuonSkimmed, "Run muon type mixing pairing, with skimmed muons", false); PROCESS_SWITCH(AnalysisSameEventPairing, processMixingMuonSkimmedFlow, "Run muon type mixing pairing, with skimmed muons and flow", false); PROCESS_SWITCH(AnalysisSameEventPairing, processMixingElectronMuonSkimmed, "Run electron-muon mixing pairing, with skimmed tracks/muons", false); - // Magnus, Added process switch for pairing with Qvector from central framework and event vertex covariance + // Process switch added for pairing with Qvector from central framework and event vertex covariance PROCESS_SWITCH(AnalysisSameEventPairing, processBarrelOnlyWithQvectorCentrVtxCovSkimmed, "Run barrel only pairing, with skimmed tracks with covariances, event vertex covariance, and Qvector from central framework", false); PROCESS_SWITCH(AnalysisSameEventPairing, processDummy, "Dummy function, enabled only if none of the others are enabled", true); }; From df284b74c7129d143f8005325d8609a1892aacd9 Mon Sep 17 00:00:00 2001 From: Magnus <57144728+ThePhDane@users.noreply.github.com> Date: Wed, 11 Nov 2026 16:24:31 +0100 Subject: [PATCH 3/9] Changed comments regarding new U2Q2 variables for FT0A and FT0C --- PWGDQ/Core/VarManager.h | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/PWGDQ/Core/VarManager.h b/PWGDQ/Core/VarManager.h index 35867b957af..f267fb8d7f8 100644 --- a/PWGDQ/Core/VarManager.h +++ b/PWGDQ/Core/VarManager.h @@ -914,9 +914,8 @@ class VarManager : public TObject kU2Q2, kU2Q2POS, kU2Q2NEG, - //Magnus, Variable definition of U2Q2 for FT0A and FT0C - kU2Q2FT0A, - kU2Q2FT0C, + kU2Q2FT0A, // New U2Q2-variable for FT0A + kU2Q2FT0C, // New U2Q2-variable for FT0C kU3Q3, kQ42XA, kQ42YA, From be9ec7b91221bc6a397d99f80c10db42431cb044 Mon Sep 17 00:00:00 2001 From: Magnus <57144728+ThePhDane@users.noreply.github.com> Date: Wed, 11 Nov 2026 16:26:56 +0100 Subject: [PATCH 4/9] Fix unit labeling and add U2Q2 variable names --- PWGDQ/Core/VarManager.cxx | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/PWGDQ/Core/VarManager.cxx b/PWGDQ/Core/VarManager.cxx index 34479fefb90..0d6d7d4ff53 100644 --- a/PWGDQ/Core/VarManager.cxx +++ b/PWGDQ/Core/VarManager.cxx @@ -1345,7 +1345,7 @@ void VarManager::SetDefaultVarNames() fgVariableUnits[kVertexingLxyzProjected] = "cm"; fgVariableNames[kVertexingTauzProjected] = "Pair pseudo-proper Tauz"; fgVariableUnits[kVertexingTauzProjected] = "ns"; - // Magnus, Change of incorrect unit labeling (from ns to cm) + // Change of incorrect unit labeling (from ns to cm) fgVariableNames[kVertexingTauxyProjected] = "Pair pseudo-proper decay length"; fgVariableUnits[kVertexingTauxyProjected] = "cm"; fgVariableNames[kVertexingTauxyProjectedPoleJPsiMass] = "Pair pseudo-proper decay length (with pole JPsi mass)"; @@ -1515,10 +1515,9 @@ void VarManager::SetDefaultVarNames() fgVariableUnits[kQ4Y0C] = ""; fgVariableNames[kU2Q2] = "u_{2}Q_{2}^{A} "; fgVariableUnits[kU2Q2] = ""; - // Magnus, Added variable for the U2Q2-values for FT0A and FT0C - fgVariableNames[kU2Q2FT0A] = "u_{2}Q_{2}^{FT0A} "; + fgVariableNames[kU2Q2FT0A] = "u_{2}Q_{2}^{FT0A} "; // Added variable for the U2Q2-values for FT0A fgVariableUnits[kU2Q2FT0A] = ""; - fgVariableNames[kU2Q2FT0C] = "u_{2}Q_{2}^{FT0C} "; + fgVariableNames[kU2Q2FT0C] = "u_{2}Q_{2}^{FT0C} "; // Added variable for the U2Q2-values for FT0C fgVariableUnits[kU2Q2FT0C] = ""; fgVariableNames[kU3Q3] = "u_{3}Q_{3}^{A} "; fgVariableUnits[kU3Q3] = ""; @@ -2718,9 +2717,8 @@ void VarManager::SetDefaultVarNames() fgVarNamesMap["kWV2SP"] = kWV2SP; fgVarNamesMap["kWV2EP"] = kWV2EP; fgVarNamesMap["kU2Q2"] = kU2Q2; - // Magnus, Added variable names for U2Q2 in FT0A and FT0C - fgVarNamesMap["kU2Q2FT0A"] = kU2Q2FT0A; - fgVarNamesMap["kU2Q2FT0C"] = kU2Q2FT0C; + fgVarNamesMap["kU2Q2FT0A"] = kU2Q2FT0A; // Added variable names for U2Q2 in FT0A + fgVarNamesMap["kU2Q2FT0C"] = kU2Q2FT0C; // Added variable names for U2Q2 in FT0C fgVarNamesMap["kU3Q3"] = kU3Q3; fgVarNamesMap["kQ42XA"] = kQ42XA; fgVarNamesMap["kQ42YA"] = kQ42YA; From baa4e6241076650edb544f7e152a7dda0d9be825 Mon Sep 17 00:00:00 2001 From: Magnus <57144728+ThePhDane@users.noreply.github.com> Date: Wed, 11 Nov 2026 16:41:12 +0100 Subject: [PATCH 5/9] Changed U2Q2 value comments for FT0A and FT0C --- PWGDQ/Core/VarManager.h | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/PWGDQ/Core/VarManager.h b/PWGDQ/Core/VarManager.h index f0607f7e9ca..7785e8c660d 100644 --- a/PWGDQ/Core/VarManager.h +++ b/PWGDQ/Core/VarManager.h @@ -6428,9 +6428,8 @@ void VarManager::FillPairVn(T1 const& t1, T2 const& t2, float* values) values[kU2Q2] = values[kQ2X0A] * TMath::Cos(2 * v12.Phi()) + values[kQ2Y0A] * TMath::Sin(2 * v12.Phi()); values[kU2Q2POS] = values[kQ2X0APOS] * TMath::Cos(2 * v12.Phi()) + values[kQ2Y0APOS] * TMath::Sin(2 * v12.Phi()); values[kU2Q2NEG] = values[kQ2X0ANEG] * TMath::Cos(2 * v12.Phi()) + values[kQ2Y0ANEG] * TMath::Sin(2 * v12.Phi()); - // Magnus, Addition of new U2Q2 values for FT0A and FT0C - values[kU2Q2FT0A] = values[kQ2X0B] * TMath::Cos(2 * v12.Phi()) + values[kQ2Y0B] * TMath::Sin(2 * v12.Phi()); - values[kU2Q2FT0C] = values[kQ2X0C] * TMath::Cos(2 * v12.Phi()) + values[kQ2Y0C] * TMath::Sin(2 * v12.Phi()); + values[kU2Q2FT0A] = values[kQ2X0B] * TMath::Cos(2 * v12.Phi()) + values[kQ2Y0B] * TMath::Sin(2 * v12.Phi()); // Addition of new U2Q2 values for FT0A + values[kU2Q2FT0C] = values[kQ2X0C] * TMath::Cos(2 * v12.Phi()) + values[kQ2Y0C] * TMath::Sin(2 * v12.Phi()); // Addition of new U2Q2 values for FT0C values[kU3Q3] = values[kQ3X0A] * TMath::Cos(3 * v12.Phi()) + values[kQ3Y0A] * TMath::Sin(3 * v12.Phi()); values[kR2SP_AB] = (values[kQ2X0A] * values[kQ2X0B] + values[kQ2Y0A] * values[kQ2Y0B]); values[kR2SP_AC] = (values[kQ2X0A] * values[kQ2X0C] + values[kQ2Y0A] * values[kQ2Y0C]); From ca4a2feca1575e9d19e48648a2f025c2474c8e6a Mon Sep 17 00:00:00 2001 From: Magnus <57144728+ThePhDane@users.noreply.github.com> Date: Wed, 11 Nov 2026 16:56:39 +0100 Subject: [PATCH 6/9] Refactor histogram enabling logic in init function --- PWGDQ/Tasks/tableReader_withAssoc.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PWGDQ/Tasks/tableReader_withAssoc.h b/PWGDQ/Tasks/tableReader_withAssoc.h index d6e8d9e0a79..8bc1363227a 100644 --- a/PWGDQ/Tasks/tableReader_withAssoc.h +++ b/PWGDQ/Tasks/tableReader_withAssoc.h @@ -1584,7 +1584,7 @@ struct AnalysisSameEventPairing { void init(o2::framework::InitContext& context) { - fEnableBarrelHistos = context.mOptions.get("processAllSkimmed") || context.mOptions.get("processBarrelOnlySkimmed") || context.mOptions.get("processBarrelOnlyWithCollSkimmed") || context.mOptions.get("processBarrelOnlySkimmedNoCov") || context.mOptions.get("processBarrelOnlySkimmedNoCovWithMultExtra") || context.mOptions.get("processBarrelOnlyWithQvectorCentrSkimmedNoCov") || context.mOptions.get("processBarrelOnlyWithQvectorCentrSkimmed") || context.mOptions.get("processBarrelOnlyDiKaons") || context.mOptions.get("processBarrelOnlyDiProtons") || context.mOptions.get("processBarrelOnlySkimmedWithGlobalMult"); + fEnableBarrelHistos = context.mOptions.get("processAllSkimmed") || context.mOptions.get("processBarrelOnlySkimmed") || context.mOptions.get("processBarrelOnlyWithCollSkimmed") || context.mOptions.get("processBarrelOnlySkimmedNoCov") || context.mOptions.get("processBarrelOnlySkimmedNoCovWithMultExtra") || context.mOptions.get("processBarrelOnlyWithQvectorCentrSkimmedNoCov") || context.mOptions.get("processBarrelOnlyWithQvectorCentrSkimmed") || context.mOptions.get("processBarrelOnlyWithQvectorCentrVtxCovSkimmed") ||context.mOptions.get("processBarrelOnlyDiKaons") || context.mOptions.get("processBarrelOnlyDiProtons") || context.mOptions.get("processBarrelOnlySkimmedWithGlobalMult"); fEnableBarrelMixingHistos = context.mOptions.get("processMixingAllSkimmed") || context.mOptions.get("processMixingBarrelSkimmed") || context.mOptions.get("processMixingBarrelSkimmedFlow") || context.mOptions.get("processMixingBarrelWithQvectorCentrSkimmedNoCov") || context.mOptions.get("processMixingBarrelSkimmedGlobalMult"); fEnableBarrelMixingHistos |= fConfigRunMixingAcrossTFs; fEnableMuonHistos = context.mOptions.get("processAllSkimmed") || context.mOptions.get("processMuonOnlySkimmed") || context.mOptions.get("processMuonOnlySkimmedMultExtra") || context.mOptions.get("processMuonOnlySkimmedFlow") || context.mOptions.get("processMuonOnlyVertexingSkimmed"); From 95a6f424d43a6c317d38b23b65ec3a619c4c64cb Mon Sep 17 00:00:00 2001 From: Magnus <57144728+ThePhDane@users.noreply.github.com> Date: Wed, 11 Nov 2026 17:22:34 +0100 Subject: [PATCH 7/9] Added a missing bracket for processBarrelOnlyWithQvectorCentrVtxCovSkimmed --- PWGDQ/Tasks/tableReader_withAssoc.h | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/PWGDQ/Tasks/tableReader_withAssoc.h b/PWGDQ/Tasks/tableReader_withAssoc.h index 8bc1363227a..bdef445bbc6 100644 --- a/PWGDQ/Tasks/tableReader_withAssoc.h +++ b/PWGDQ/Tasks/tableReader_withAssoc.h @@ -1584,7 +1584,7 @@ struct AnalysisSameEventPairing { void init(o2::framework::InitContext& context) { - fEnableBarrelHistos = context.mOptions.get("processAllSkimmed") || context.mOptions.get("processBarrelOnlySkimmed") || context.mOptions.get("processBarrelOnlyWithCollSkimmed") || context.mOptions.get("processBarrelOnlySkimmedNoCov") || context.mOptions.get("processBarrelOnlySkimmedNoCovWithMultExtra") || context.mOptions.get("processBarrelOnlyWithQvectorCentrSkimmedNoCov") || context.mOptions.get("processBarrelOnlyWithQvectorCentrSkimmed") || context.mOptions.get("processBarrelOnlyWithQvectorCentrVtxCovSkimmed") ||context.mOptions.get("processBarrelOnlyDiKaons") || context.mOptions.get("processBarrelOnlyDiProtons") || context.mOptions.get("processBarrelOnlySkimmedWithGlobalMult"); + fEnableBarrelHistos = context.mOptions.get("processAllSkimmed") || context.mOptions.get("processBarrelOnlySkimmed") || context.mOptions.get("processBarrelOnlyWithCollSkimmed") || context.mOptions.get("processBarrelOnlySkimmedNoCov") || context.mOptions.get("processBarrelOnlySkimmedNoCovWithMultExtra") || context.mOptions.get("processBarrelOnlyWithQvectorCentrSkimmedNoCov") || context.mOptions.get("processBarrelOnlyWithQvectorCentrSkimmed") || context.mOptions.get("processBarrelOnlyWithQvectorCentrVtxCovSkimmed") || context.mOptions.get("processBarrelOnlyDiKaons") || context.mOptions.get("processBarrelOnlyDiProtons") || context.mOptions.get("processBarrelOnlySkimmedWithGlobalMult"); fEnableBarrelMixingHistos = context.mOptions.get("processMixingAllSkimmed") || context.mOptions.get("processMixingBarrelSkimmed") || context.mOptions.get("processMixingBarrelSkimmedFlow") || context.mOptions.get("processMixingBarrelWithQvectorCentrSkimmedNoCov") || context.mOptions.get("processMixingBarrelSkimmedGlobalMult"); fEnableBarrelMixingHistos |= fConfigRunMixingAcrossTFs; fEnableMuonHistos = context.mOptions.get("processAllSkimmed") || context.mOptions.get("processMuonOnlySkimmed") || context.mOptions.get("processMuonOnlySkimmedMultExtra") || context.mOptions.get("processMuonOnlySkimmedFlow") || context.mOptions.get("processMuonOnlyVertexingSkimmed"); @@ -3274,10 +3274,12 @@ struct AnalysisSameEventPairing { // New process function with Qvector, Centrality and Vertex Covariance. void processBarrelOnlyWithQvectorCentrVtxCovSkimmed(MyEventsVtxCovSelectedQvector const& events, - o2::soa::Join const& barrelAssocs, - MyBarrelTracksWithCovWithAmbiguities const& barrelTracks) + o2::soa::Join const& barrelAssocs, + MyBarrelTracksWithCovWithAmbiguities const& barrelTracks) { runSameEventPairing(events, trackAssocsPerCollision, barrelAssocs, barrelTracks); + } + void processBarrelOnlySkimmedWithGlobalMult(MyEventsVtxCovGlobalMultSelected const& events, o2::soa::Join const& barrelAssocs, MyBarrelTracksWithCovWithAmbiguities const& barrelTracks) From 2037cef09312375c9fbb8b21dbfaded31e93d133 Mon Sep 17 00:00:00 2001 From: Magnus <57144728+ThePhDane@users.noreply.github.com> Date: Thu, 12 Nov 2026 08:10:57 +0100 Subject: [PATCH 8/9] Suppress reinterpret cast warning in addTrackCuts Added NOLINT comment to suppress reinterpret cast warning of line 834 fTrackCuts.push_back(reinterpret_cast(t)); // NOLINT(cppcoreguidelines-pro-type-reinterpret-cast) --- PWGDQ/Tasks/tableReader_withAssoc.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PWGDQ/Tasks/tableReader_withAssoc.h b/PWGDQ/Tasks/tableReader_withAssoc.h index bdef445bbc6..ac03632c272 100644 --- a/PWGDQ/Tasks/tableReader_withAssoc.h +++ b/PWGDQ/Tasks/tableReader_withAssoc.h @@ -831,7 +831,7 @@ struct AnalysisTrackSelection { if (addTrackCutsStr != "") { std::vector addTrackCuts = o2::aod::dqcuts::GetCutsFromJSON(addTrackCutsStr.Data()); for (auto const& t : addTrackCuts) { - fTrackCuts.push_back(reinterpret_cast(t)); + fTrackCuts.push_back(reinterpret_cast(t)); // NOLINT(cppcoreguidelines-pro-type-reinterpret-cast) } } From 73127b097cf8590794c7c0e8373fe08d1c9a69ca Mon Sep 17 00:00:00 2001 From: Magnus <57144728+ThePhDane@users.noreply.github.com> Date: Thu, 12 Nov 2026 09:56:31 +0100 Subject: [PATCH 9/9] Removed suppression of error Removed the suppression of an unrelated error. This is a known issue which is being worked on --- PWGDQ/Tasks/tableReader_withAssoc.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PWGDQ/Tasks/tableReader_withAssoc.h b/PWGDQ/Tasks/tableReader_withAssoc.h index ac03632c272..bdef445bbc6 100644 --- a/PWGDQ/Tasks/tableReader_withAssoc.h +++ b/PWGDQ/Tasks/tableReader_withAssoc.h @@ -831,7 +831,7 @@ struct AnalysisTrackSelection { if (addTrackCutsStr != "") { std::vector addTrackCuts = o2::aod::dqcuts::GetCutsFromJSON(addTrackCutsStr.Data()); for (auto const& t : addTrackCuts) { - fTrackCuts.push_back(reinterpret_cast(t)); // NOLINT(cppcoreguidelines-pro-type-reinterpret-cast) + fTrackCuts.push_back(reinterpret_cast(t)); } }