@@ -675,6 +675,7 @@ class VarManager : public TObject
675675 kMCHadronPdgCode ,
676676 kMCCosTheta ,
677677 kMCJpsiPt ,
678+ kMCAccweight ,
678679 kMCCosChi ,
679680 kMCdeltaphi ,
680681 kMCdeltaeta ,
@@ -930,6 +931,7 @@ class VarManager : public TObject
930931 kCosChi ,
931932 kEtaDau ,
932933 kPhiDau ,
934+ kWeight ,
933935 kECWeight ,
934936 kPtDau ,
935937 kCosTheta ,
@@ -1337,7 +1339,7 @@ class VarManager : public TObject
13371339 template <typename U, typename T>
13381340 static void FillTrackMC (const U& mcStack, T const & track, float * values = nullptr );
13391341 template <int pairType, typename T, typename T1>
1340- static void FillEnergyCorrelatorsMC (T const & track, T1 const & t1, float * values = nullptr , float Translow = 1 . / 3 , float Transhigh = 2 . / 3 );
1342+ static void FillEnergyCorrelatorsMC (T const & track, T1 const & t1, float * values = nullptr , float Translow = 1 . / 3 , float Transhigh = 2 . / 3 , float Accweight = 1 . 0f );
13411343 template <uint32_t fillMap, typename T1, typename T2, typename C>
13421344 static void FillPairPropagateMuon (T1 const & muon1, T2 const & muon2, const C& collision, float * values = nullptr );
13431345 template <uint32_t fillMap, typename T1, typename T2, typename C>
@@ -1371,9 +1373,9 @@ class VarManager : public TObject
13711373 template <typename T1, typename T2>
13721374 static void FillDileptonHadron (T1 const & dilepton, T2 const & hadron, float * values = nullptr , float hadronMass = 0 .0f );
13731375 template <typename T1, typename T2, typename T3>
1374- static void FillEnergyCorrelatorTriple (T1 const & lepton1, T2 const & lepton2, T3 const & hadron, float * values = nullptr , float Translow = 1 . / 3 , float Transhigh = 2 . / 3 , bool applyFitMass = false , float sidebandMass = 0 .0f );
1376+ static void FillEnergyCorrelatorTriple (T1 const & lepton1, T2 const & lepton2, T3 const & hadron, float * values = nullptr , float Translow = 1 . / 3 , float Transhigh = 2 . / 3 , bool applyFitMass = false , float sidebandMass = 0 .0f , float weight = 1 . 0f );
13751377 template <int pairType, typename T1, typename T2, typename T3, typename T4, typename T5>
1376- static void FillEnergyCorrelatorsUnfoldingTriple (T1 const & lepton1, T2 const & lepton2, T3 const & hadron, T4 const & track, T5 const & t1, float * values = nullptr , bool applyFitMass = false );
1378+ static void FillEnergyCorrelatorsUnfoldingTriple (T1 const & lepton1, T2 const & lepton2, T3 const & hadron, T4 const & track, T5 const & t1, float * values = nullptr , bool applyFitMass = false , float Effweight_rec = 1 .f, float Accweight_gen = 1 .f );
13771379 template <typename T1, typename T2>
13781380 static void FillDileptonPhoton (T1 const & dilepton, T2 const & photon, float * values = nullptr );
13791381 template <typename T>
@@ -3338,7 +3340,7 @@ void VarManager::FillTrackCollisionMC(T1 const& track, const std::array<double,
33383340}
33393341
33403342template <int pairType, typename T, typename T1>
3341- void VarManager::FillEnergyCorrelatorsMC (T const & track, T1 const & t1, float * values, float Translow, float Transhigh)
3343+ void VarManager::FillEnergyCorrelatorsMC (T const & track, T1 const & t1, float * values, float Translow, float Transhigh, float Accweight )
33423344{
33433345 // energy correlators
33443346 float MassHadron;
@@ -3355,8 +3357,9 @@ void VarManager::FillEnergyCorrelatorsMC(T const& track, T1 const& t1, float* va
33553357 float E_boost = LorentzTransformJpsihadroncosChi (" weight_boost" , v1, v2);
33563358 float CosChi = LorentzTransformJpsihadroncosChi (" coschi" , v1, v2);
33573359 float CosTheta = LorentzTransformJpsihadroncosChi (" costheta" , v1, v2);
3360+ values[kMCAccweight ] = Accweight;
33583361 values[kMCCosChi ] = CosChi;
3359- values[kMCWeight_before ] = t1.pt () / o2::constants::physics::MassJPsi;
3362+ values[kMCWeight_before ] = t1.pt () / o2::constants::physics::MassJPsi * Accweight ;
33603363 values[kMCCosTheta ] = CosTheta;
33613364 values[kMCdeltaphi ] = deltaphi;
33623365 values[kMCdeltaeta ] = deltaeta;
@@ -3386,15 +3389,15 @@ void VarManager::FillEnergyCorrelatorsMC(T const& track, T1 const& t1, float* va
33863389
33873390 ROOT::Math::PtEtaPhiMVector v2_randomPhi_trans (v2.pt (), v2.eta (), randomPhi_trans, MassHadron);
33883391 values[kMCCosChi_randomPhi_trans ] = LorentzTransformJpsihadroncosChi (" coschi" , v1, v2_randomPhi_trans);
3389- values[kMCWeight_randomPhi_trans ] = LorentzTransformJpsihadroncosChi (" weight_boost" , v1, v2_randomPhi_trans) / v1.M ();
3392+ values[kMCWeight_randomPhi_trans ] = LorentzTransformJpsihadroncosChi (" weight_boost" , v1, v2_randomPhi_trans) / v1.M () * Accweight ;
33903393
33913394 ROOT::Math::PtEtaPhiMVector v2_randomPhi_toward (v2.pt (), v2.eta (), randomPhi_toward, MassHadron);
33923395 values[kMCCosChi_randomPhi_toward ] = LorentzTransformJpsihadroncosChi (" coschi" , v1, v2_randomPhi_toward);
3393- values[kMCWeight_randomPhi_toward ] = LorentzTransformJpsihadroncosChi (" weight_boost" , v1, v2_randomPhi_toward) / v1.M ();
3396+ values[kMCWeight_randomPhi_toward ] = LorentzTransformJpsihadroncosChi (" weight_boost" , v1, v2_randomPhi_toward) / v1.M () * Accweight ;
33943397
33953398 ROOT::Math::PtEtaPhiMVector v2_randomPhi_away (v2.pt (), v2.eta (), randomPhi_away, MassHadron);
33963399 values[kMCCosChi_randomPhi_away ] = LorentzTransformJpsihadroncosChi (" coschi" , v1, v2_randomPhi_away);
3397- values[kMCWeight_randomPhi_away ] = LorentzTransformJpsihadroncosChi (" weight_boost" , v1, v2_randomPhi_away) / v1.M ();
3400+ values[kMCWeight_randomPhi_away ] = LorentzTransformJpsihadroncosChi (" weight_boost" , v1, v2_randomPhi_away) / v1.M () * Accweight ;
33983401
33993402 values[kMCdeltaphi_randomPhi_trans ] = RecoDecay::constrainAngle (v1.phi () - randomPhi_trans, -o2::constants::math::PIHalf);
34003403 values[kMCdeltaphi_randomPhi_toward ] = RecoDecay::constrainAngle (v1.phi () - randomPhi_toward, -o2::constants::math::PIHalf);
@@ -5831,7 +5834,7 @@ void VarManager::FillDileptonHadron(T1 const& dilepton, T2 const& hadron, float*
58315834}
58325835
58335836template <typename T1, typename T2, typename T3>
5834- void VarManager::FillEnergyCorrelatorTriple (T1 const & lepton1, T2 const & lepton2, T3 const & hadron, float * values, float Translow, float Transhigh, bool applyFitMass, float sidebandMass)
5837+ void VarManager::FillEnergyCorrelatorTriple (T1 const & lepton1, T2 const & lepton2, T3 const & hadron, float * values, float Translow, float Transhigh, bool applyFitMass, float sidebandMass, float weight )
58355838{
58365839 float m1 = o2::constants::physics::MassElectron;
58375840 float m2 = o2::constants::physics::MassElectron;
@@ -5854,9 +5857,10 @@ void VarManager::FillEnergyCorrelatorTriple(T1 const& lepton1, T2 const& lepton2
58545857 ROOT::Math::PtEtaPhiMVector v2 (hadron.pt (), hadron.eta (), hadron.phi (), o2::constants::physics::MassPionCharged);
58555858 values[kCosChi ] = LorentzTransformJpsihadroncosChi (" coschi" , v1, v2);
58565859 float E_boost = LorentzTransformJpsihadroncosChi (" weight_boost" , v1, v2);
5857- values[kECWeight ] = E_boost / v1.M ();
5860+ values[kWeight ] = weight;
5861+ values[kECWeight ] = E_boost / v1.M () * weight;
58585862 values[kCosTheta ] = LorentzTransformJpsihadroncosChi (" costheta" , v1, v2);
5859- values[kEWeight_before ] = v2.Pt () / v1.M ();
5863+ values[kEWeight_before ] = v2.Pt () / v1.M () * weight ;
58605864 values[kPtDau ] = v2.pt ();
58615865 values[kEtaDau ] = v2.eta ();
58625866 values[kPhiDau ] = RecoDecay::constrainAngle (v2.phi (), -o2::constants::math::PIHalf);
@@ -5883,15 +5887,14 @@ void VarManager::FillEnergyCorrelatorTriple(T1 const& lepton1, T2 const& lepton2
58835887
58845888 ROOT::Math::PtEtaPhiMVector v2_randomPhi_trans (v2.pt (), v2.eta (), randomPhi_trans, o2::constants::physics::MassPionCharged);
58855889 values[kCosChi_randomPhi_trans ] = LorentzTransformJpsihadroncosChi (" coschi" , v1, v2_randomPhi_trans);
5886- values[kWeight_randomPhi_trans ] = LorentzTransformJpsihadroncosChi (" weight_boost" , v1, v2_randomPhi_trans) / v1.M ();
5890+ values[kWeight_randomPhi_trans ] = LorentzTransformJpsihadroncosChi (" weight_boost" , v1, v2_randomPhi_trans) / v1.M () * weight ;
58875891
58885892 ROOT::Math::PtEtaPhiMVector v2_randomPhi_toward (v2.pt (), v2.eta (), randomPhi_toward, o2::constants::physics::MassPionCharged);
58895893 values[kCosChi_randomPhi_toward ] = LorentzTransformJpsihadroncosChi (" coschi" , v1, v2_randomPhi_toward);
5890- values[kWeight_randomPhi_toward ] = LorentzTransformJpsihadroncosChi (" weight_boost" , v1, v2_randomPhi_toward) / v1.M ();
5891-
5894+ values[kWeight_randomPhi_toward ] = LorentzTransformJpsihadroncosChi (" weight_boost" , v1, v2_randomPhi_toward) / v1.M () * weight;
58925895 ROOT::Math::PtEtaPhiMVector v2_randomPhi_away (v2.pt (), v2.eta (), randomPhi_away, o2::constants::physics::MassPionCharged);
58935896 values[kCosChi_randomPhi_away ] = LorentzTransformJpsihadroncosChi (" coschi" , v1, v2_randomPhi_away);
5894- values[kWeight_randomPhi_away ] = LorentzTransformJpsihadroncosChi (" weight_boost" , v1, v2_randomPhi_away) / v1.M ();
5897+ values[kWeight_randomPhi_away ] = LorentzTransformJpsihadroncosChi (" weight_boost" , v1, v2_randomPhi_away) / v1.M () * weight ;
58955898
58965899 values[kdeltaphi_randomPhi_trans] = RecoDecay::constrainAngle (v1.phi () - randomPhi_trans, -o2::constants::math::PIHalf);
58975900 values[kdeltaphi_randomPhi_toward] = RecoDecay::constrainAngle (v1.phi () - randomPhi_toward, -o2::constants::math::PIHalf);
@@ -5901,7 +5904,7 @@ void VarManager::FillEnergyCorrelatorTriple(T1 const& lepton1, T2 const& lepton2
59015904}
59025905
59035906template <int pairType, typename T1, typename T2, typename T3, typename T4, typename T5>
5904- void VarManager::FillEnergyCorrelatorsUnfoldingTriple (T1 const & lepton1, T2 const & lepton2, T3 const & hadron, T4 const & track, T5 const & t1, float * values, bool applyFitMass)
5907+ void VarManager::FillEnergyCorrelatorsUnfoldingTriple (T1 const & lepton1, T2 const & lepton2, T3 const & hadron, T4 const & track, T5 const & t1, float * values, bool applyFitMass, float Effweight_rec, float Accweight_gen )
59055908{
59065909 if (fgUsedVars[kMCCosChi_gen ] || fgUsedVars[kMCWeight_gen ] || fgUsedVars[kMCdeltaeta_gen ] || fgUsedVars[kMCCosChi_rec ] || fgUsedVars[kMCWeight_rec ] || fgUsedVars[kMCdeltaeta_rec ]) {
59075910 // energy correlators
@@ -5930,14 +5933,14 @@ void VarManager::FillEnergyCorrelatorsUnfoldingTriple(T1 const& lepton1, T2 cons
59305933 float E_boost_gen = LorentzTransformJpsihadroncosChi (" weight_boost" , v1_gen, v2_gen);
59315934 float CosChi_gen = LorentzTransformJpsihadroncosChi (" coschi" , v1_gen, v2_gen);
59325935 values[kMCCosChi_gen ] = CosChi_gen;
5933- values[kMCWeight_gen ] = E_boost_gen / o2::constants::physics::MassJPsi;
5936+ values[kMCWeight_gen ] = E_boost_gen / o2::constants::physics::MassJPsi * Accweight_gen ;
59345937 values[kMCdeltaeta_gen ] = track.eta () - t1.eta ();
59355938
59365939 ROOT::Math::PtEtaPhiMVector v1_rec (dilepton.pt (), dilepton.eta (), dilepton.phi (), dileptonmass);
59375940 ROOT::Math::PtEtaPhiMVector v2_rec (hadron.pt (), hadron.eta (), hadron.phi (), o2::constants::physics::MassPionCharged);
59385941 values[kMCCosChi_rec ] = LorentzTransformJpsihadroncosChi (" coschi" , v1_rec, v2_rec);
59395942 float E_boost_rec = LorentzTransformJpsihadroncosChi (" weight_boost" , v1_rec, v2_rec);
5940- values[kMCWeight_rec ] = E_boost_rec / v1_rec.M ();
5943+ values[kMCWeight_rec ] = E_boost_rec / v1_rec.M () * Effweight_rec ;
59415944 values[kMCdeltaeta_rec ] = dilepton.eta () - hadron.eta ();
59425945 }
59435946}
0 commit comments