@@ -411,6 +411,9 @@ class VarManager : public TObject
411411 kDCATrackVtxProd ,
412412 kU2Q2 ,
413413 kU3Q3 ,
414+ kPsi2A ,
415+ kPsi2B ,
416+ kPsi2C ,
414417 kCos2DeltaPhi ,
415418 kCos3DeltaPhi ,
416419 kNPairVariables ,
@@ -648,7 +651,6 @@ class VarManager : public TObject
648651 static void FillQVectorFromGFW (C const & collision, A const & compA2, A const & compB2, A const & compC2, A const & compA3, A const & compB3, A const & compC3, float normA = 1.0 , float normB = 1.0 , float normC = 1.0 , float * values = nullptr );
649652 template <int pairType, typename T1, typename T2>
650653 static void FillPairVn (T1 const & t1, T2 const & t2, float * values = nullptr );
651-
652654 static void SetCalibrationObject (CalibObjects calib, TObject* obj)
653655 {
654656 fgCalibs[calib] = obj;
@@ -1051,6 +1053,11 @@ void VarManager::FillEvent(T const& event, float* values)
10511053 if (event.q3y0b () * event.q3y0c () != 0.0 ) {
10521054 values[kR3EP ] = TMath::Cos (3 * (getEventPlane (3 , event.q3x0b (), event.q3y0b ()) - getEventPlane (3 , event.q3x0c (), event.q3y0c ())));
10531055 }
1056+
1057+ values[kPsi2A ] = getEventPlane (2 , event.q2x0a (), event.q2y0a ());
1058+ values[kPsi2B ] = getEventPlane (2 , event.q2x0b (), event.q2y0b ());
1059+ values[kPsi2C ] = getEventPlane (2 , event.q2x0c (), event.q2y0c ());
1060+
10541061 }
10551062
10561063 if constexpr ((fillMap & CollisionMC) > 0 ) {
@@ -2414,10 +2421,12 @@ void VarManager::FillQVectorFromGFW(C const& collision, A const& compA2, A const
24142421
24152422 // TODO: provide different computations for R
24162423 // Compute the R factor using the 2 sub-events technique for second and third harmonic
2424+ // Compute event planes
24172425 auto Psi2B = getEventPlane (2 , values[kQ2X0B ], values[kQ2Y0B ]);
24182426 auto Psi3B = getEventPlane (3 , values[kQ3X0B ], values[kQ3Y0B ]);
24192427 auto Psi2C = getEventPlane (2 , values[kQ2X0C ], values[kQ2Y0C ]);
24202428 auto Psi3C = getEventPlane (3 , values[kQ3X0C ], values[kQ3Y0C ]);
2429+
24212430 values[kR2SP ] = (values[kQ2X0B ] * values[kQ2X0C ] + values[kQ2Y0B ] * values[kQ2Y0C ]);
24222431 values[kR3SP ] = (values[kQ3X0B ] * values[kQ3X0C ] + values[kQ3Y0B ] * values[kQ3Y0C ]);
24232432 if (values[kQ2Y0B ] * values[kQ2Y0C ] != 0.0 ) {
@@ -2426,6 +2435,10 @@ void VarManager::FillQVectorFromGFW(C const& collision, A const& compA2, A const
24262435 if (values[kQ3Y0B ] * values[kQ3Y0C ] != 0.0 ) {
24272436 values[kR3EP ] = TMath::Cos (3 * (Psi3B - Psi3C));
24282437 }
2438+
2439+ values[kPsi2A ] = getEventPlane (2 , values[kQ2X0A ], values[kQ2Y0A ]);
2440+ values[kPsi2B ] = getEventPlane (2 , values[kQ2X0B ], values[kQ2Y0B ]);
2441+ values[kPsi2C ] = getEventPlane (2 , values[kQ2X0C ], values[kQ2Y0C ]);
24292442}
24302443
24312444template <int pairType, typename T1, typename T2>
@@ -2451,12 +2464,10 @@ void VarManager::FillPairVn(T1 const& t1, T2 const& t2, float* values)
24512464 if constexpr (pairType == kElectronMuon ) {
24522465 m2 = o2::constants::physics::MassMuon;
24532466 }
2454-
24552467 // Fill dilepton information
24562468 ROOT::Math::PtEtaPhiMVector v1 (t1.pt (), t1.eta (), t1.phi (), m1);
24572469 ROOT::Math::PtEtaPhiMVector v2 (t2.pt (), t2.eta (), t2.phi (), m2);
24582470 ROOT::Math::PtEtaPhiMVector v12 = v1 + v2;
2459-
24602471 // TODO: provide different computations for vn
24612472 // Compute the scalar product UQ using Q-vector from A, for second and third harmonic
24622473 // Dilepton vn could be accessible after dividing this product with the R factor
@@ -2469,6 +2480,9 @@ void VarManager::FillPairVn(T1 const& t1, T2 const& t2, float* values)
24692480 values[kU3Q3 ] = -999 .;
24702481 values[kCos2DeltaPhi ] = -999 .;
24712482 values[kCos3DeltaPhi ] = -999 .;
2483+ values[kPsi2A ] = -999 .;
2484+ values[kPsi2B ] = -999 .;
2485+ values[kPsi2C ] = -999 .;
24722486 }
24732487}
24742488
0 commit comments