From 0f1bacf39e58f8ab161feffee79036f094adaf3b Mon Sep 17 00:00:00 2001 From: ypwangg Date: Fri, 3 Jul 2026 19:04:29 +0800 Subject: [PATCH 1/3] add A2 in MC --- PWGDQ/Core/VarManager.h | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/PWGDQ/Core/VarManager.h b/PWGDQ/Core/VarManager.h index d652252ebe8..2e3c02b345d 100644 --- a/PWGDQ/Core/VarManager.h +++ b/PWGDQ/Core/VarManager.h @@ -822,6 +822,14 @@ class VarManager : public TObject kCos2DeltaPhiPP_TPC, kCos2DeltaPhiPP_FT0A, kCos2DeltaPhiPP_FT0C, + kDeltaPhiRP_Random, + kDeltaPhiRP_MC, + kCos2DeltaPhiRP_Random, + kCos2DeltaPhiRP_MC, + kDeltaPhiPP_Random, + kDeltaPhiPP_MC, + kCos2DeltaPhiPP_Random, + kCos2DeltaPhiPP_MC, kNullA2, kInfA2, kSel1, // if track1 is used in TPC Q vector calculation @@ -4632,6 +4640,23 @@ void VarManager::FillPairMC(T1 const& t1, T2 const& t2, float* values) ROOT::Math::XYZVector zaxisTrue = ROOT::Math::XYZVector(TMath::Cos(values[kMCEventPlaneAngle]), TMath::Sin(values[kMCEventPlaneAngle]), 0).Unit(); values[kMCCosThetaStar] = v_CM.Dot(zaxisTrue); } + + if (fgUsedVars[kCos2DeltaPhiRP_Random] || fgUsedVars[kCos2DeltaPhiPP_Random] || fgUsedVars[kCos2DeltaPhiRP_MC] || fgUsedVars[kCos2DeltaPhiPP_MC]) { + ROOT::Math::Boost boostv12{v12.BoostToCM()}; + ROOT::Math::PtEtaPhiMVector v_daughter = boostv12(t1.sign() > 0 ? v1 : v2); + + // reaction plane + float phi = v_daughter.Phi() > T1Math::Pi() ? v_daughter.Phi() - 2. * TMath::Pi() : v_daughter.Phi(); + values[kDeltaPhiRP_Random] = phi - values[kRandomPsi2]; + values[kDeltaPhiRP_Random] = values[kDeltaPhiRP_Random] > TMath::Pi() ? 2. * TMath::Pi() - values[kDeltaPhiRP_Random] : values[kDeltaPhiRP_Random]; + values[kDeltaPhiRP_MC] = phi - values[kMCEventPlaneAngle]; + values[kDeltaPhiRP_MC] = values[kDeltaPhiRP_MC] > TMath::Pi() ? 2. * TMath::Pi() - values[kDeltaPhiRP_MC] : values[kDeltaPhiRP_MC]; + // fold delta phi into [-pi/2, pi/2] + values[kDeltaPhiRP_Random] = values[kDeltaPhiRP_Random] > TMath::Pi() / 2. ? TMath::Pi() - values[kDeltaPhiRP_Random] : values[kDeltaPhiRP_Random]; + values[kDeltaPhiRP_MC] = values[kDeltaPhiRP_MC] > TMath::Pi() / 2. ? TMath::Pi() - values[kDeltaPhiRP_MC] : values[kDeltaPhiRP_MC]; + values[kCos2DeltaPhiRP_Random] = TMath::Cos(2. * (phi - values[kRandomPsi2])); + values[kCos2DeltaPhiRP_MC] = TMath::Cos(2. * (phi - values[kMCEventPlaneAngle])); + } } template From ab4fa439ccd85b1b083465e2f2f4f3b3dd88f28f Mon Sep 17 00:00:00 2001 From: ypwangg Date: Fri, 3 Jul 2026 19:35:58 +0800 Subject: [PATCH 2/3] fix bug --- PWGDQ/Core/VarManager.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PWGDQ/Core/VarManager.h b/PWGDQ/Core/VarManager.h index 2e3c02b345d..1a3ae35142e 100644 --- a/PWGDQ/Core/VarManager.h +++ b/PWGDQ/Core/VarManager.h @@ -4646,7 +4646,7 @@ void VarManager::FillPairMC(T1 const& t1, T2 const& t2, float* values) ROOT::Math::PtEtaPhiMVector v_daughter = boostv12(t1.sign() > 0 ? v1 : v2); // reaction plane - float phi = v_daughter.Phi() > T1Math::Pi() ? v_daughter.Phi() - 2. * TMath::Pi() : v_daughter.Phi(); + float phi = v_daughter.Phi() > TMath::Pi() ? v_daughter.Phi() - 2. * TMath::Pi() : v_daughter.Phi(); values[kDeltaPhiRP_Random] = phi - values[kRandomPsi2]; values[kDeltaPhiRP_Random] = values[kDeltaPhiRP_Random] > TMath::Pi() ? 2. * TMath::Pi() - values[kDeltaPhiRP_Random] : values[kDeltaPhiRP_Random]; values[kDeltaPhiRP_MC] = phi - values[kMCEventPlaneAngle]; From 6617cfdf8159fd23fdae37ae484f2b43db7a1383 Mon Sep 17 00:00:00 2001 From: ypwangg Date: Fri, 3 Jul 2026 19:51:51 +0800 Subject: [PATCH 3/3] fix bug in VM daughter direction --- PWGDQ/Core/VarManager.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PWGDQ/Core/VarManager.h b/PWGDQ/Core/VarManager.h index 1a3ae35142e..2743463dc94 100644 --- a/PWGDQ/Core/VarManager.h +++ b/PWGDQ/Core/VarManager.h @@ -4643,7 +4643,7 @@ void VarManager::FillPairMC(T1 const& t1, T2 const& t2, float* values) if (fgUsedVars[kCos2DeltaPhiRP_Random] || fgUsedVars[kCos2DeltaPhiPP_Random] || fgUsedVars[kCos2DeltaPhiRP_MC] || fgUsedVars[kCos2DeltaPhiPP_MC]) { ROOT::Math::Boost boostv12{v12.BoostToCM()}; - ROOT::Math::PtEtaPhiMVector v_daughter = boostv12(t1.sign() > 0 ? v1 : v2); + ROOT::Math::PtEtaPhiMVector v_daughter = boostv12(t1.pdgCode() > 0 ? v1 : v2); // reaction plane float phi = v_daughter.Phi() > TMath::Pi() ? v_daughter.Phi() - 2. * TMath::Pi() : v_daughter.Phi();