Skip to content

Commit e908014

Browse files
authored
[PWGDQ] Add and change some code for the energy correlator study (#15641)
1 parent 37818d7 commit e908014

File tree

3 files changed

+137
-50
lines changed

3 files changed

+137
-50
lines changed

PWGDQ/Core/VarManager.cxx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2239,6 +2239,7 @@ void VarManager::SetDefaultVarNames()
22392239
fgVarNamesMap["kMCPdgCode"] = kMCPdgCode;
22402240
fgVarNamesMap["kMCCosTheta"] = kMCCosTheta;
22412241
fgVarNamesMap["kMCHadronPdgCode"] = kMCHadronPdgCode;
2242+
fgVarNamesMap["kMCAccweight"] = kMCAccweight;
22422243
fgVarNamesMap["kMCCosChi"] = kMCCosChi;
22432244
fgVarNamesMap["kMCHadronPt"] = kMCHadronPt;
22442245
fgVarNamesMap["kMCWeight_before"] = kMCWeight_before;
@@ -2481,6 +2482,7 @@ void VarManager::SetDefaultVarNames()
24812482
fgVarNamesMap["kDeltaPhiSym"] = kDeltaPhiSym;
24822483
fgVarNamesMap["kCosTheta"] = kCosTheta;
24832484
fgVarNamesMap["kCosChi"] = kCosChi;
2485+
fgVarNamesMap["kWeight"] = kWeight;
24842486
fgVarNamesMap["kECWeight"] = kECWeight;
24852487
fgVarNamesMap["kEWeight_before"] = kEWeight_before;
24862488
fgVarNamesMap["kPtDau"] = kPtDau;

PWGDQ/Core/VarManager.h

Lines changed: 21 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -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

33403342
template <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

58335836
template <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

59035906
template <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

Comments
 (0)