diff --git a/PWGDQ/Core/VarManager.cxx b/PWGDQ/Core/VarManager.cxx index 7299984bdfb..6e4820edba0 100644 --- a/PWGDQ/Core/VarManager.cxx +++ b/PWGDQ/Core/VarManager.cxx @@ -1349,12 +1349,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"; + // 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}"; @@ -1515,6 +1519,10 @@ void VarManager::SetDefaultVarNames() fgVariableUnits[kQ4Y0C] = ""; fgVariableNames[kU2Q2] = "u_{2}Q_{2}^{A} "; fgVariableUnits[kU2Q2] = ""; + fgVariableNames[kU2Q2FT0A] = "u_{2}Q_{2}^{FT0A} "; // Added variable for the U2Q2-values for FT0A + fgVariableUnits[kU2Q2FT0A] = ""; + 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] = ""; fgVariableNames[kQ42XA] = "Q_{42,x}^{A} "; @@ -2715,6 +2723,8 @@ void VarManager::SetDefaultVarNames() fgVarNamesMap["kWV2SP"] = kWV2SP; fgVarNamesMap["kWV2EP"] = kWV2EP; fgVarNamesMap["kU2Q2"] = kU2Q2; + 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; diff --git a/PWGDQ/Core/VarManager.h b/PWGDQ/Core/VarManager.h index 1e82643a611..7785e8c660d 100644 --- a/PWGDQ/Core/VarManager.h +++ b/PWGDQ/Core/VarManager.h @@ -916,6 +916,8 @@ class VarManager : public TObject kU2Q2, kU2Q2POS, kU2Q2NEG, + kU2Q2FT0A, // New U2Q2-variable for FT0A + kU2Q2FT0C, // New U2Q2-variable for FT0C kU3Q3, kQ42XA, kQ42YA, @@ -6426,6 +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()); + 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]); diff --git a/PWGDQ/Tasks/tableReader_withAssoc.h b/PWGDQ/Tasks/tableReader_withAssoc.h index f831e7bd791..bdef445bbc6 100644 --- a/PWGDQ/Tasks/tableReader_withAssoc.h +++ b/PWGDQ/Tasks/tableReader_withAssoc.h @@ -290,6 +290,7 @@ using MyMuonTracksWithCov = o2::soa::Join; using MyMuonTracksSelectedWithColl = o2::soa::Join; +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; @@ -1583,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"); @@ -3271,6 +3272,14 @@ struct AnalysisSameEventPairing { runSameEventPairing(events, trackAssocsPerCollision, barrelAssocs, barrelTracks); } + // 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 processBarrelOnlySkimmedWithGlobalMult(MyEventsVtxCovGlobalMultSelected const& events, o2::soa::Join const& barrelAssocs, MyBarrelTracksWithCovWithAmbiguities const& barrelTracks) @@ -3389,6 +3398,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); + // 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); };