@@ -368,10 +368,22 @@ class VarManager : public TObject
368368 kQ2Y0A2 ,
369369 kU2Q2Ev1 ,
370370 kU2Q2Ev2 ,
371- kTwoR2SP1 , // Scalar product resolution of event1 for ME technique
372- kTwoR2SP2 , // Scalar product resolution of event2 for ME technique
373- kTwoR2EP1 , // Event plane resolution of event2 for ME technique
374- kTwoR2EP2 , // Event plane resolution of event2 for ME technique
371+ kTwoR2SP1 , // Scalar product resolution of event1 for ME technique
372+ kTwoR2SP2 , // Scalar product resolution of event2 for ME technique
373+ kTwoR2EP1 , // Event plane resolution of event2 for ME technique
374+ kTwoR2EP2 , // Event plane resolution of event2 for ME technique
375+ kTwoR2SP_AB1 , // Scalar product resolution of event1 for ME technique
376+ kTwoR2SP_AB2 , // Scalar product resolution of event2 for ME technique
377+ kTwoR2SP_AC1 , // Scalar product resolution of event1 for ME technique
378+ kTwoR2SP_AC2 , // Scalar product resolution of event2 for ME technique
379+ kTwoR2SP_BC1 , // Scalar product resolution of event1 for ME technique
380+ kTwoR2SP_BC2 , // Scalar product resolution of event2 for ME technique
381+ kTwoR2EP_AB1 , // Event plane resolution of event2 for ME technique
382+ kTwoR2EP_AB2 , // Event plane resolution of event2 for ME technique
383+ kTwoR2EP_AC1 , // Event plane resolution of event2 for ME technique
384+ kTwoR2EP_AC2 , // Event plane resolution of event2 for ME technique
385+ kTwoR2EP_BC1 , // Event plane resolution of event2 for ME technique
386+ kTwoR2EP_BC2 , // Event plane resolution of event2 for ME technique
375387
376388 // Basic track/muon/pair wise variables
377389 kX ,
@@ -1779,21 +1791,78 @@ void VarManager::FillTwoMixEvents(T1 const& ev1, T1 const& ev2, T2 const& /*trac
17791791 for (auto& track2 : tracks2) { Track2Filter = uint32_t(track2.isMuonSelected());}
17801792 */
17811793 if constexpr ((fillMap & ReducedEventQvector) > 0 ) {
1794+ // Tobe used for the calculation of u1q1 and u2q2
1795+ values[kQ2X0A1 ] = ev1.q2x0a ();
1796+ values[kQ2X0A2 ] = ev2.q2x0a ();
1797+ values[kQ2Y0A1 ] = ev1.q2y0a ();
1798+ values[kQ2Y0A2 ] = ev2.q2y0a ();
1799+
17821800 values[kTwoR2SP1 ] = (ev1.q2x0b () * ev1.q2x0c () + ev1.q2y0b () * ev1.q2y0c ());
17831801 values[kTwoR2SP2 ] = (ev2.q2x0b () * ev2.q2x0c () + ev2.q2y0b () * ev2.q2y0c ());
1802+ values[kTwoR2SP_AB1 ] = (ev1.q2x0a () * ev1.q2x0b () + ev1.q2y0a () * ev1.q2y0b ());
1803+ values[kTwoR2SP_AB2 ] = (ev2.q2x0a () * ev2.q2x0b () + ev2.q2y0a () * ev2.q2y0b ());
1804+ values[kTwoR2SP_AC1 ] = (ev1.q2x0a () * ev1.q2x0c () + ev1.q2y0a () * ev1.q2y0c ());
1805+ values[kTwoR2SP_AC2 ] = (ev2.q2x0a () * ev2.q2x0c () + ev2.q2y0a () * ev2.q2y0c ());
1806+ values[kTwoR2SP_BC1 ] = (ev1.q2x0b () * ev1.q2x0c () + ev1.q2y0b () * ev1.q2y0c ());
1807+ values[kTwoR2SP_BC2 ] = (ev2.q2x0b () * ev2.q2x0c () + ev2.q2y0b () * ev2.q2y0c ());
17841808
1809+ if (ev1.q2y0a () * ev1.q2y0b () != 0.0 ) {
1810+ values[kTwoR2EP_AB1 ] = TMath::Cos (2 * (getEventPlane (2 , ev1.q2x0a (), ev1.q2y0a ()) - getEventPlane (2 , ev1.q2x0b (), ev1.q2y0b ())));
1811+ }
1812+ if (ev2.q2y0a () * ev2.q2y0b () != 0.0 ) {
1813+ values[kTwoR2EP_AB2 ] = TMath::Cos (2 * (getEventPlane (2 , ev2.q2x0a (), ev2.q2y0a ()) - getEventPlane (2 , ev2.q2x0b (), ev2.q2y0b ())));
1814+ }
1815+ if (ev1.q2y0a () * ev1.q2y0c () != 0.0 ) {
1816+ values[kTwoR2EP_AC1 ] = TMath::Cos (2 * (getEventPlane (2 , ev1.q2x0a (), ev1.q2y0a ()) - getEventPlane (2 , ev1.q2x0c (), ev1.q2y0c ())));
1817+ }
1818+ if (ev2.q2y0a () * ev2.q2y0c () != 0.0 ) {
1819+ values[kTwoR2EP_AC2 ] = TMath::Cos (2 * (getEventPlane (2 , ev2.q2x0a (), ev2.q2y0a ()) - getEventPlane (2 , ev2.q2x0c (), ev2.q2y0c ())));
1820+ }
17851821 if (ev1.q2y0b () * ev1.q2y0c () != 0.0 ) {
17861822 values[kTwoR2EP1 ] = TMath::Cos (2 * (getEventPlane (2 , ev1.q2x0b (), ev1.q2y0b ()) - getEventPlane (2 , ev1.q2x0c (), ev1.q2y0c ())));
1823+ values[kTwoR2EP_BC1 ] = TMath::Cos (2 * (getEventPlane (2 , ev1.q2x0b (), ev1.q2y0b ()) - getEventPlane (2 , ev1.q2x0c (), ev1.q2y0c ())));
17871824 }
1788-
17891825 if (ev2.q2y0b () * ev2.q2y0c () != 0.0 ) {
17901826 values[kTwoR2EP2 ] = TMath::Cos (2 * (getEventPlane (2 , ev2.q2x0b (), ev2.q2y0b ()) - getEventPlane (2 , ev2.q2x0c (), ev2.q2y0c ())));
1827+ values[kTwoR2EP_BC2 ] = TMath::Cos (2 * (getEventPlane (2 , ev2.q2x0b (), ev2.q2y0b ()) - getEventPlane (2 , ev2.q2x0c (), ev2.q2y0c ())));
17911828 }
1829+ }
1830+ if constexpr ((fillMap & CollisionQvect) > 0 ) {
17921831 // Tobe used for the calculation of u1q1 and u2q2
1793- values[kQ2X0A1 ] = ev1.q2x0a ();
1794- values[kQ2X0A2 ] = ev2.q2x0a ();
1795- values[kQ2Y0A1 ] = ev1.q2y0a ();
1796- values[kQ2Y0A2 ] = ev2.q2y0a ();
1832+ values[kQ2X0A1 ] = (ev1.qvecBPosRe () * ev1.nTrkBPos () + ev1.qvecBNegRe () * ev1.nTrkBNeg ()) / (ev1.nTrkBPos () + ev1.nTrkBNeg ());
1833+ values[kQ2X0A2 ] = (ev2.qvecBPosRe () * ev2.nTrkBPos () + ev2.qvecBNegRe () * ev2.nTrkBNeg ()) / (ev2.nTrkBPos () + ev2.nTrkBNeg ());
1834+ values[kQ2Y0A1 ] = (ev1.qvecBPosIm () * ev1.nTrkBPos () + ev1.qvecBNegIm () * ev1.nTrkBNeg ()) / (ev1.nTrkBPos () + ev1.nTrkBNeg ());
1835+ values[kQ2Y0A2 ] = (ev2.qvecBPosIm () * ev2.nTrkBPos () + ev2.qvecBNegIm () * ev2.nTrkBNeg ()) / (ev2.nTrkBPos () + ev2.nTrkBNeg ());
1836+
1837+ values[kTwoR2SP1 ] = (ev1.qvecFT0ARe () * ev1.qvecFT0CRe () + ev1.qvecFT0AIm () * ev1.qvecFT0CIm ());
1838+ values[kTwoR2SP2 ] = (ev2.qvecFT0ARe () * ev2.qvecFT0CRe () + ev2.qvecFT0AIm () * ev2.qvecFT0CIm ());
1839+ values[kTwoR2SP_AB1 ] = (values[kQ2X0A1 ] * ev1.qvecFT0ARe () + values[kQ2Y0A1 ] * ev1.qvecFT0AIm ());
1840+ values[kTwoR2SP_AB2 ] = (values[kQ2X0A2 ] * ev2.qvecFT0ARe () + values[kQ2Y0A2 ] * ev2.qvecFT0AIm ());
1841+ values[kTwoR2SP_AC1 ] = (values[kQ2X0A1 ] * ev1.qvecFT0CRe () + values[kQ2Y0A1 ] * ev1.qvecFT0CIm ());
1842+ values[kTwoR2SP_AC2 ] = (values[kQ2X0A2 ] * ev2.qvecFT0CRe () + values[kQ2Y0A2 ] * ev2.qvecFT0CIm ());
1843+ values[kTwoR2SP_BC1 ] = values[kTwoR2SP1 ];
1844+ values[kTwoR2SP_BC2 ] = values[kTwoR2SP2 ];
1845+
1846+ if (values[kQ2Y0A1 ] * ev1.qvecFT0AIm () != 0.0 ) {
1847+ values[kTwoR2EP_AB1 ] = TMath::Cos (2 * (getEventPlane (2 , values[kQ2X0A1 ], values[kQ2Y0A1 ]) - getEventPlane (2 , ev1.qvecFT0ARe (), ev1.qvecFT0AIm ())));
1848+ }
1849+ if (values[kQ2Y0A2 ] * ev2.qvecFT0AIm () != 0.0 ) {
1850+ values[kTwoR2EP_AB2 ] = TMath::Cos (2 * (getEventPlane (2 , values[kQ2X0A2 ], values[kQ2Y0A2 ]) - getEventPlane (2 , ev2.qvecFT0ARe (), ev2.qvecFT0AIm ())));
1851+ }
1852+ if (values[kQ2Y0A1 ] * ev1.qvecFT0CIm () != 0.0 ) {
1853+ values[kTwoR2EP_AC1 ] = TMath::Cos (2 * (getEventPlane (2 , values[kQ2X0A1 ], values[kQ2Y0A1 ]) - getEventPlane (2 , ev1.qvecFT0CRe (), ev1.qvecFT0CIm ())));
1854+ }
1855+ if (values[kQ2Y0A2 ] * ev2.qvecFT0CIm () != 0.0 ) {
1856+ values[kTwoR2EP_AC2 ] = TMath::Cos (2 * (getEventPlane (2 , values[kQ2X0A2 ], values[kQ2Y0A2 ]) - getEventPlane (2 , ev2.qvecFT0CRe (), ev2.qvecFT0CIm ())));
1857+ }
1858+ if (ev1.qvecFT0AIm () * ev1.qvecFT0CIm () != 0.0 ) {
1859+ values[kTwoR2EP1 ] = TMath::Cos (2 * (getEventPlane (2 , ev1.qvecFT0ARe (), ev1.qvecFT0AIm ()) - getEventPlane (2 , ev1.qvecFT0CRe (), ev1.qvecFT0CIm ())));
1860+ values[kTwoR2EP_BC1 ] = values[kTwoR2EP1 ];
1861+ }
1862+ if (ev2.qvecFT0AIm () * ev2.qvecFT0CIm () != 0.0 ) {
1863+ values[kTwoR2EP2 ] = TMath::Cos (2 * (getEventPlane (2 , ev2.qvecFT0ARe (), ev2.qvecFT0AIm ()) - getEventPlane (2 , ev2.qvecFT0CRe (), ev2.qvecFT0CIm ())));
1864+ values[kTwoR2EP_BC2 ] = values[kTwoR2EP2 ];
1865+ }
17971866 }
17981867
17991868 if (std::isnan (VarManager::fgValues[VarManager::kTwoR2SP1 ]) == true || std::isnan (VarManager::fgValues[VarManager::kTwoR2EP1 ]) == true ) {
@@ -1802,6 +1871,24 @@ void VarManager::FillTwoMixEvents(T1 const& ev1, T1 const& ev2, T2 const& /*trac
18021871 values[kTwoR2EP1 ] = -999 .;
18031872 values[kTwoR2EP2 ] = -999 .;
18041873 }
1874+ if (std::isnan (VarManager::fgValues[VarManager::kTwoR2SP_AB1 ]) == true || std::isnan (VarManager::fgValues[VarManager::kTwoR2EP_AB1 ]) == true ) {
1875+ values[kTwoR2SP_AB1 ] = -999 .;
1876+ values[kTwoR2SP_AB2 ] = -999 .;
1877+ values[kTwoR2EP_AB1 ] = -999 .;
1878+ values[kTwoR2EP_AB2 ] = -999 .;
1879+ }
1880+ if (std::isnan (VarManager::fgValues[VarManager::kTwoR2SP_AC1 ]) == true || std::isnan (VarManager::fgValues[VarManager::kTwoR2EP_AC1 ]) == true ) {
1881+ values[kTwoR2SP_AC1 ] = -999 .;
1882+ values[kTwoR2SP_AC2 ] = -999 .;
1883+ values[kTwoR2EP_AC1 ] = -999 .;
1884+ values[kTwoR2EP_AC2 ] = -999 .;
1885+ }
1886+ if (std::isnan (VarManager::fgValues[VarManager::kTwoR2SP_BC1 ]) == true || std::isnan (VarManager::fgValues[VarManager::kTwoR2EP_BC1 ]) == true ) {
1887+ values[kTwoR2SP_BC1 ] = -999 .;
1888+ values[kTwoR2SP_BC2 ] = -999 .;
1889+ values[kTwoR2EP_BC1 ] = -999 .;
1890+ values[kTwoR2EP_BC2 ] = -999 .;
1891+ }
18051892}
18061893
18071894template <uint32_t fillMap, typename T>
@@ -3762,9 +3849,9 @@ void VarManager::FillDileptonTrackVertexing(C const& collision, T1 const& lepton
37623849 values[kVertexingTauxyProjectedNs ] = values[kVertexingTauxyProjected ] / o2::constants::physics::LightSpeedCm2NS;
37633850 values[kVertexingTauzProjected ] = (values[kVertexingLzProjected ] * KFGeoThreeProng.GetMass ()) / TMath::Abs (KFGeoThreeProng.GetPz ());
37643851 } // end Run 2 quantities
3765- } // end eventHasVtxCov
3766- } // end (candidateType == kBtoJpsiEEK) && trackHasCov
3767- } // end KF
3852+ } // end eventHasVtxCov
3853+ } // end (candidateType == kBtoJpsiEEK) && trackHasCov
3854+ } // end KF
37683855}
37693856
37703857template <typename C, typename A>
@@ -3866,14 +3953,14 @@ void VarManager::FillQVectorFromCentralFW(C const& collision, float* values)
38663953 values = fgValues;
38673954 }
38683955
3869- float xQVecFT0a = collision.qvecFT0ARe (); // already normalised
3870- float yQVecFT0a = collision.qvecFT0AIm (); // already normalised
3871- float xQVecFT0c = collision.qvecFT0CRe (); // already normalised
3872- float yQVecFT0c = collision.qvecFT0CIm (); // already normalised
3873- float xQVecFT0m = collision.qvecFT0MRe (); // already normalised
3874- float yQVecFT0m = collision.qvecFT0MIm (); // already normalised
3875- float xQVecFV0a = collision.qvecFV0ARe (); // already normalised
3876- float yQVecFV0a = collision.qvecFV0AIm (); // already normalised
3956+ float xQVecFT0a = collision.qvecFT0ARe (); // already normalised
3957+ float yQVecFT0a = collision.qvecFT0AIm (); // already normalised
3958+ float xQVecFT0c = collision.qvecFT0CRe (); // already normalised
3959+ float yQVecFT0c = collision.qvecFT0CIm (); // already normalised
3960+ float xQVecFT0m = collision.qvecFT0MRe (); // already normalised
3961+ float yQVecFT0m = collision.qvecFT0MIm (); // already normalised
3962+ float xQVecFV0a = collision.qvecFV0ARe (); // already normalised
3963+ float yQVecFV0a = collision.qvecFV0AIm (); // already normalised
38773964 float xQVecBPos = collision.qvecTPCposRe (); // already normalised
38783965 float yQVecBPos = collision.qvecTPCposIm (); // already normalised
38793966 float xQVecBNeg = collision.qvecTPCnegRe (); // already normalised
0 commit comments