Skip to content
11 changes: 8 additions & 3 deletions PWGDQ/Core/VarManager.h
Original file line number Diff line number Diff line change
Expand Up @@ -1364,7 +1364,7 @@ class VarManager : public TObject
template <typename T1, typename T2, typename T3>
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);
template <int pairType, typename T1, typename T2, typename T3, typename T4, typename T5>
static void FillEnergyCorrelatorsUnfoldingTriple(T1 const& lepton1, T2 const& lepton2, T3 const& hadron, T4 const& track, T5 const& t1, float* values = nullptr);
static void FillEnergyCorrelatorsUnfoldingTriple(T1 const& lepton1, T2 const& lepton2, T3 const& hadron, T4 const& track, T5 const& t1, float* values = nullptr, bool applyFitMass = false);
template <typename T1, typename T2>
static void FillDileptonPhoton(T1 const& dilepton, T2 const& photon, float* values = nullptr);
template <typename T>
Expand Down Expand Up @@ -5858,7 +5858,7 @@ void VarManager::FillEnergyCorrelatorTriple(T1 const& lepton1, T2 const& lepton2
}

template <int pairType, typename T1, typename T2, typename T3, typename T4, typename T5>
void VarManager::FillEnergyCorrelatorsUnfoldingTriple(T1 const& lepton1, T2 const& lepton2, T3 const& hadron, T4 const& track, T5 const& t1, float* values)
void VarManager::FillEnergyCorrelatorsUnfoldingTriple(T1 const& lepton1, T2 const& lepton2, T3 const& hadron, T4 const& track, T5 const& t1, float* values, bool applyFitMass)
{
if (fgUsedVars[kMCCosChi_gen] || fgUsedVars[kMCWeight_gen] || fgUsedVars[kMCdeltaeta_gen] || fgUsedVars[kMCCosChi_rec] || fgUsedVars[kMCWeight_rec] || fgUsedVars[kMCdeltaeta_rec]) {
// energy correlators
Expand All @@ -5870,6 +5870,11 @@ void VarManager::FillEnergyCorrelatorsUnfoldingTriple(T1 const& lepton1, T2 cons
ROOT::Math::PtEtaPhiMVector v_lepton2(lepton2.pt(), lepton2.eta(), lepton2.phi(), m2);
ROOT::Math::PtEtaPhiMVector dilepton = v_lepton1 + v_lepton2;

float dileptonmass = o2::constants::physics::MassJPsi;
if (applyFitMass) {
dileptonmass = dilepton.mass();
}

float MassHadron;
if constexpr (pairType == kJpsiHadronMass) {
MassHadron = TMath::Sqrt(t1.e() * t1.e() - t1.p() * t1.p());
Expand All @@ -5885,7 +5890,7 @@ void VarManager::FillEnergyCorrelatorsUnfoldingTriple(T1 const& lepton1, T2 cons
values[kMCWeight_gen] = E_boost_gen / o2::constants::physics::MassJPsi;
values[kMCdeltaeta_gen] = track.eta() - t1.eta();

ROOT::Math::PtEtaPhiMVector v1_rec(dilepton.pt(), dilepton.eta(), dilepton.phi(), dilepton.mass());
ROOT::Math::PtEtaPhiMVector v1_rec(dilepton.pt(), dilepton.eta(), dilepton.phi(), dileptonmass);
ROOT::Math::PtEtaPhiMVector v2_rec(hadron.pt(), hadron.eta(), hadron.phi(), o2::constants::physics::MassPionCharged);
values[kMCCosChi_rec] = LorentzTransformJpsihadroncosChi("coschi", v1_rec, v2_rec);
float E_boost_rec = LorentzTransformJpsihadroncosChi("weight_boost", v1_rec, v2_rec);
Expand Down
5 changes: 3 additions & 2 deletions PWGDQ/Tasks/dqEnergyCorrelator_direct.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -223,6 +223,7 @@ struct AnalysisEnergyCorrelator {
for (auto& t : addTrackCuts) {
fTrackCuts.push_back(reinterpret_cast<AnalysisCompositeCut*>(t));
fTrackCutNames.push_back(t->GetName());
trackCutStr += Form(",%s", t->GetName());
}
}

Expand Down Expand Up @@ -797,13 +798,13 @@ struct AnalysisEnergyCorrelator {
groupedMCTracks1.bindInternalIndicesTo(&mcTracks);
groupedMCTracks2.bindInternalIndicesTo(&mcTracks);
for (auto& t1 : groupedMCTracks1) {
auto t1_raw = groupedMCTracks1.rawIteratorAt(t1.globalIndex());
auto t1_raw = mcTracks.rawIteratorAt(t1.globalIndex());
for (auto& sig : fGenMCSignals) {
if (sig->CheckSignal(true, t1_raw)) {
if (t1.mcCollisionId() != event1.mcCollisionId()) { // check that the mc track belongs to the same mc collision as the reconstructed event
continue;
}
VarManager::FillTrackMC(groupedMCTracks1, t1_raw);
VarManager::FillTrackMC(mcTracks, t1_raw);
if (!MixedEvent && !PionMass) {
fHistMan->FillHistClass(Form("MCTruthGenSel_%s", sig->GetName()), VarManager::fgValues);
}
Expand Down
Loading