Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 30 additions & 0 deletions PWGDQ/Core/HistogramsLibrary.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -2048,6 +2048,36 @@
hm->AddHistogram(histClass, "hMass_defaultDileptonMass_Chi2OverNDFGeo", "", false, 1000, 3.0, 5.0, VarManager::kQuadDefaultDileptonMass, 150, -5, 10., VarManager::kKFChi2OverNDFGeo);
}
}
if (subGroupStr.Contains("mctruth")) {
hm->AddHistogram(histClass, "PtMC", "MC pT", false, 200, 0.0, 20.0, VarManager::kMCPt);
hm->AddHistogram(histClass, "EtaMC", "MC #eta", false, 50, -5.0, 5.0, VarManager::kMCEta);
hm->AddHistogram(histClass, "PhiMC", "MC #phi", false, 50, -6.3, 6.3, VarManager::kMCPhi);
hm->AddHistogram(histClass, "YMC", "MC y", false, 50, -5.0, 5.0, VarManager::kMCY);
hm->AddHistogram(histClass, "PtMC_YMC", "MC pT vs MC y", false, 120, 0.0, 30.0, VarManager::kMCPt, 1000, -5.0, 5.0, VarManager::kMCY);
hm->AddHistogram(histClass, "EtaMC_PtMC", "", false, 40, -2.0, 2.0, VarManager::kMCEta, 200, 0.0, 20.0, VarManager::kMCPt);
hm->AddHistogram(histClass, "VzMC", "MC vz", false, 100, -15.0, 15.0, VarManager::kMCVz);
hm->AddHistogram(histClass, "VzMC_VtxZMC", "MC vz vs MC vtxZ", false, 50, -15.0, 15.0, VarManager::kMCVz, 50, -15.0, 15.0, VarManager::kMCVtxZ);
hm->AddHistogram(histClass, "LzMC", "", false, 1000, 0.0, 2.0, VarManager::kMCVertexingLz);
hm->AddHistogram(histClass, "LxyMC", "", false, 1000, 0.0, 2.0, VarManager::kMCVertexingLxy);
hm->AddHistogram(histClass, "LxyzMC", "", false, 1000, 0.0, 2.0, VarManager::kMCVertexingLxyz);
hm->AddHistogram(histClass, "LxyMCExpected", "", false, 1000, 0.0, 2.0, VarManager::kMCLxyExpected);
hm->AddHistogram(histClass, "LxyzMCExpected", "", false, 1000, 0.0, 2.0, VarManager::kMCLxyzExpected);
hm->AddHistogram(histClass, "LxyMC_LxyMCExpected", "", false, 500, 0.0, 2.0, VarManager::kMCVertexingLxy, 500, 0.0, 2.0, VarManager::kMCLxyExpected);
hm->AddHistogram(histClass, "LxyzMC_LxyzMCExpected", "", false, 500, 0.0, 2.0, VarManager::kMCVertexingLxyz, 500, 0.0, 2.0, VarManager::kMCLxyzExpected);
hm->AddHistogram(histClass, "TauzMC", "", false, 4000, -0.01, 0.01, VarManager::kMCVertexingTauz);
hm->AddHistogram(histClass, "TauxyMC", "", false, 4000, -0.01, 0.01, VarManager::kMCVertexingTauxy);
hm->AddHistogram(histClass, "TauzMC_PtMC", "", false, 500, -0.01, 0.01, VarManager::kMCVertexingTauz, 200, 0.0, 20.0, VarManager::kMCPt);
hm->AddHistogram(histClass, "TauxyMC_PtMC", "", false, 500, -0.01, 0.01, VarManager::kMCVertexingTauxy, 200, 0.0, 20.0, VarManager::kMCPt);
hm->AddHistogram(histClass, "TauzProjectedMC", "", false, 4000, -0.5, 0.5, VarManager::kMCVertexingTauzProjected);
hm->AddHistogram(histClass, "TauxyProjectedMC", "", false, 4000, -0.5, 0.5, VarManager::kMCVertexingTauxyProjected);
hm->AddHistogram(histClass, "TauzProjectedMC_PtMC", "", false, 500, -0.5, 0.5, VarManager::kMCVertexingTauzProjected, 200, 0.0, 20.0, VarManager::kMCPt);
hm->AddHistogram(histClass, "TauxyProjectedMC_PtMC", "", false, 500, -0.5, 0.5, VarManager::kMCVertexingTauxyProjected, 200, 0.0, 20.0, VarManager::kMCPt);
hm->AddHistogram(histClass, "LzMC_Lz", "", false, 500, 0.0, 2.0, VarManager::kMCVertexingLz, 500, 0.0, 2.0, VarManager::kVertexingLz);
hm->AddHistogram(histClass, "LxyMC_Lxy", "", false, 500, 0.0, 2.0, VarManager::kMCVertexingLxy, 500, 0.0, 2.0, VarManager::kVertexingLxy);
hm->AddHistogram(histClass, "TauzMC_Tauz", "", false, 500, -0.01, 0.01, VarManager::kMCVertexingTauz, 500, -0.01, 0.01, VarManager::kVertexingTauz);
hm->AddHistogram(histClass, "TauxyMC_Tauxy", "", false, 500, -0.01, 0.01, VarManager::kMCVertexingTauxy, 500, -0.01, 0.01, VarManager::kVertexingTauxy);
hm->AddHistogram(histClass, "CosPointingAngleMC", "", false, 100, 0.0, 1.0, VarManager::kMCCosPointingAngle);
}
if (!groupStr.CompareTo("dilepton-photon-mass")) {
hm->AddHistogram(histClass, "Mass_Dilepton", "", false, 500, 0.0, 5.0, VarManager::kPairMassDau);
hm->AddHistogram(histClass, "Mass_Photon", "", false, 500, 0.0, 0.1, VarManager::kMassDau);
Expand Down Expand Up @@ -2081,7 +2111,7 @@

//__________________________________________________________________
template <typename T>
bool o2::aod::dqhistograms::ValidateJSONHistogram(T hist)

Check failure on line 2114 in PWGDQ/Core/HistogramsLibrary.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[const-ref-in-for-loop]

Use constant references for non-modified iterators in range-based for loops.
{
//
// Validate JSON entry for this histogram
Expand Down Expand Up @@ -2237,7 +2267,7 @@
return false;
}
if (hist->HasMember("varY") && (VarManager::fgVarNamesMap.find(hist->FindMember("varY")->value.GetString()) == VarManager::fgVarNamesMap.end())) {
LOG(fatal) << "Bad varY variable (" << hist->FindMember("varY")->value.GetString() << ") specified for histogram";

Check failure on line 2270 in PWGDQ/Core/HistogramsLibrary.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[const-ref-in-for-loop]

Use constant references for non-modified iterators in range-based for loops.
return false;
}
if (hist->HasMember("varZ") && (VarManager::fgVarNamesMap.find(hist->FindMember("varZ")->value.GetString()) == VarManager::fgVarNamesMap.end())) {
Expand Down Expand Up @@ -2300,7 +2330,7 @@

const char* histName = it->name.GetString();
LOG(info) << "Configuring histogram " << histName;
const auto& hist = it->value;

Check failure on line 2333 in PWGDQ/Core/HistogramsLibrary.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[const-ref-in-for-loop]

Use constant references for non-modified iterators in range-based for loops.
if (!ValidateJSONHistogram(&hist)) {
LOG(fatal) << "Histogram not properly defined in the JSON file. Skipping it";
continue;
Expand All @@ -2311,7 +2341,7 @@
bool isTH3 = (histTypeStr.CompareTo("TH3") == 0);
bool isTHn = (histTypeStr.CompareTo("THn") == 0);
bool isConstantBinning = true;
if (!(hist.HasMember("xmin") && hist.HasMember("xmax"))) {

Check failure on line 2344 in PWGDQ/Core/HistogramsLibrary.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[const-ref-in-for-loop]

Use constant references for non-modified iterators in range-based for loops.
isConstantBinning = false;
}

Expand All @@ -2325,27 +2355,27 @@
if (isTHn) {
int nDimensions = hist.FindMember("nDimensions")->value.GetInt();
LOG(debug) << "nDimensions: " << nDimensions;

Check failure on line 2358 in PWGDQ/Core/HistogramsLibrary.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[const-ref-in-for-loop]

Use constant references for non-modified iterators in range-based for loops.
int* vars = new int[nDimensions];
int iDim = 0;
for (auto& v : hist.FindMember("vars")->value.GetArray()) {
LOG(debug) << "iDim " << iDim << ": " << v.GetString();
vars[iDim++] = VarManager::fgVarNamesMap[v.GetString()];

Check failure on line 2363 in PWGDQ/Core/HistogramsLibrary.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[const-ref-in-for-loop]

Use constant references for non-modified iterators in range-based for loops.
}

int* nBins = nullptr;
double* xmin = nullptr;
double* xmax = nullptr;

Check failure on line 2368 in PWGDQ/Core/HistogramsLibrary.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[const-ref-in-for-loop]

Use constant references for non-modified iterators in range-based for loops.
TArrayD* binLimits = nullptr;
if (isConstantBinning) {
nBins = new int[nDimensions];
xmin = new double[nDimensions];
xmax = new double[nDimensions];
int iDim = 0;
for (auto& v : hist.FindMember("nBins")->value.GetArray()) {

Check failure on line 2375 in PWGDQ/Core/HistogramsLibrary.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[const-ref-in-for-loop]

Use constant references for non-modified iterators in range-based for loops.
nBins[iDim++] = v.GetInt();
LOG(debug) << "nBins " << iDim << ": " << nBins[iDim - 1];
}

Check failure on line 2378 in PWGDQ/Core/HistogramsLibrary.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[const-ref-in-for-loop]

Use constant references for non-modified iterators in range-based for loops.
iDim = 0;
for (auto& v : hist.FindMember("xmin")->value.GetArray()) {
xmin[iDim++] = v.GetDouble();
Expand All @@ -2356,7 +2386,7 @@
xmax[iDim++] = v.GetDouble();
LOG(debug) << "xmax " << iDim << ": " << xmax[iDim - 1];
}
} else {

Check failure on line 2389 in PWGDQ/Core/HistogramsLibrary.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[const-ref-in-for-loop]

Use constant references for non-modified iterators in range-based for loops.
int iDim = 0;
binLimits = new TArrayD[nDimensions];
for (auto& v : hist.FindMember("binLimits")->value.GetArray()) {
Expand Down
39 changes: 37 additions & 2 deletions PWGDQ/Core/VarManager.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -806,10 +806,20 @@ void VarManager::SetDefaultVarNames()
fgVariableUnits[kPairType] = "";
fgVariableNames[kVertexingLxy] = "Pair Lxy";
fgVariableUnits[kVertexingLxy] = "cm";
fgVariableNames[kMCVertexingLxy] = "MC Lxy";
fgVariableUnits[kMCVertexingLxy] = "cm";
fgVariableNames[kVertexingLz] = "Pair Lz";
fgVariableUnits[kVertexingLz] = "cm";
fgVariableNames[kMCVertexingLz] = "MC Lz";
fgVariableUnits[kMCVertexingLz] = "cm";
fgVariableNames[kVertexingLxyz] = "Pair Lxyz";
fgVariableUnits[kVertexingLxyz] = "cm";
fgVariableNames[kMCVertexingLxyz] = "MC Lxyz";
fgVariableUnits[kMCVertexingLxyz] = "cm";
fgVariableNames[kMCLxyExpected] = "MC Expected Lxy";
fgVariableUnits[kMCLxyExpected] = "cm";
fgVariableNames[kMCLxyzExpected] = "MC Expected Lxyz";
fgVariableUnits[kMCLxyzExpected] = "cm";
fgVariableNames[kVertexingLxyErr] = "Pair Lxy err.";
fgVariableUnits[kVertexingLxyErr] = "cm";
fgVariableNames[kVertexingLzErr] = "Pair Lz err.";
Expand All @@ -820,6 +830,10 @@ void VarManager::SetDefaultVarNames()
fgVariableUnits[kVertexingTauz] = "ns";
fgVariableNames[kVertexingTauxy] = "Pair pseudo-proper Tauxy";
fgVariableUnits[kVertexingTauxy] = "ns";
fgVariableNames[kMCVertexingTauz] = "MC pseudo-proper Tauz";
fgVariableUnits[kMCVertexingTauz] = "ns";
fgVariableNames[kMCVertexingTauxy] = "MC pseudo-proper Tauxy";
fgVariableUnits[kMCVertexingTauxy] = "ns";
fgVariableNames[kVertexingTauzErr] = "Pair pseudo-proper Tauz err.";
fgVariableUnits[kVertexingTauzErr] = "ns";
fgVariableNames[kVertexingLxyProjected] = "Pair Lxy";
Expand All @@ -836,8 +850,22 @@ void VarManager::SetDefaultVarNames()
fgVariableUnits[kVertexingTauxyProjectedPoleJPsiMass] = "ns";
fgVariableNames[kVertexingTauxyzProjected] = "Pair pseudo-proper Tauxyz";
fgVariableUnits[kVertexingTauxyzProjected] = "ns";
fgVariableNames[kMCVertexingLxyProjected] = "MC Lxy_{proj}";
fgVariableUnits[kMCVertexingLxyProjected] = "cm";
fgVariableNames[kMCVertexingLzProjected] = "MC Lz_{proj}";
fgVariableUnits[kMCVertexingLzProjected] = "cm";
fgVariableNames[kMCVertexingLxyzProjected] = "MC Lxyz_{proj}";
fgVariableUnits[kMCVertexingLxyzProjected] = "cm";
fgVariableNames[kMCVertexingTauzProjected] = "MC Tauz_{proj}";
fgVariableUnits[kMCVertexingTauzProjected] = "ns";
fgVariableNames[kMCVertexingTauxyProjected] = "MC Tauxy_{proj}";
fgVariableUnits[kMCVertexingTauxyProjected] = "ns";
fgVariableNames[kMCVertexingTauxyzProjected] = "MC Tauxyz_{proj}";
fgVariableUnits[kMCVertexingTauxyzProjected] = "ns";
fgVariableNames[kCosPointingAngle] = "cos(#theta_{pointing})";
fgVariableUnits[kCosPointingAngle] = "";
fgVariableNames[kMCCosPointingAngle] = "MC cos(#theta_{pointing})";
fgVariableUnits[kMCCosPointingAngle] = "";
fgVariableNames[kVertexingPz] = "Pz Pair";
fgVariableUnits[kVertexingPz] = "GeV/c";
fgVariableNames[kVertexingSV] = "Secondary Vertexing z";
Expand All @@ -854,8 +882,6 @@ void VarManager::SetDefaultVarNames()
fgVariableUnits[kVertexingLzOverErr] = "";
fgVariableNames[kVertexingLxyzOverErr] = "Pair Lxyz/DLxyz";
fgVariableUnits[kVertexingLxyzOverErr] = "";
fgVariableNames[kCosPointingAngle] = "Cos #theta_{pointing}";
fgVariableUnits[kCosPointingAngle] = "";
fgVariableNames[kKFTrack0DCAxyz] = "Daughter0 DCAxyz";
fgVariableUnits[kKFTrack0DCAxyz] = "cm";
fgVariableNames[kKFTrack1DCAxyz] = "Daughter1 DCAxyz";
Expand Down Expand Up @@ -1756,13 +1782,17 @@ void VarManager::SetDefaultVarNames()
fgVarNamesMap["kPairType"] = kPairType;
fgVarNamesMap["kVertexingLxy"] = kVertexingLxy;
fgVarNamesMap["kVertexingLxyErr"] = kVertexingLxyErr;
fgVarNamesMap["kMCVertexingLxy"] = kMCVertexingLxy;
fgVarNamesMap["kVertexingPseudoCTau"] = kVertexingPseudoCTau;
fgVarNamesMap["kVertexingLxyz"] = kVertexingLxyz;
fgVarNamesMap["kVertexingLxyzErr"] = kVertexingLxyzErr;
fgVarNamesMap["kMCVertexingLxyz"] = kMCVertexingLxyz;
fgVarNamesMap["kVertexingLz"] = kVertexingLz;
fgVarNamesMap["kVertexingLzErr"] = kVertexingLzErr;
fgVarNamesMap["kMCVertexingLz"] = kMCVertexingLz;
fgVarNamesMap["kVertexingTauxy"] = kVertexingTauxy;
fgVarNamesMap["kVertexingTauxyErr"] = kVertexingTauxyErr;
fgVarNamesMap["kMCVertexingTauxy"] = kMCVertexingTauxy;
fgVarNamesMap["kVertexingLzProjected"] = kVertexingLzProjected;
fgVarNamesMap["kVertexingLxyProjected"] = kVertexingLxyProjected;
fgVarNamesMap["kVertexingLxyzProjected"] = kVertexingLxyzProjected;
Expand All @@ -1771,8 +1801,12 @@ void VarManager::SetDefaultVarNames()
fgVarNamesMap["kVertexingTauxyProjectedPoleJPsiMass"] = kVertexingTauxyProjectedPoleJPsiMass;
fgVarNamesMap["kVertexingTauxyProjectedNs"] = kVertexingTauxyProjectedNs;
fgVarNamesMap["kVertexingTauxyzProjected"] = kVertexingTauxyzProjected;
fgVarNamesMap["kMCVertexingTauzProjected"] = kVertexingTauzProjected;
fgVarNamesMap["kMCVertexingTauxyProjected"] = kVertexingTauxyProjected;
fgVarNamesMap["kMCVertexingTauxyzProjected"] = kVertexingTauxyzProjected;
fgVarNamesMap["kVertexingTauz"] = kVertexingTauz;
fgVarNamesMap["kVertexingTauzErr"] = kVertexingTauzErr;
fgVarNamesMap["kMCVertexingTauz"] = kMCVertexingTauz;
fgVarNamesMap["kVertexingPz"] = kVertexingPz;
fgVarNamesMap["kVertexingSV"] = kVertexingSV;
fgVarNamesMap["kVertexingProcCode"] = kVertexingProcCode;
Expand Down Expand Up @@ -1804,6 +1838,7 @@ void VarManager::SetDefaultVarNames()
fgVarNamesMap["kQuadDCAsigXYZ"] = kQuadDCAsigXYZ;
fgVarNamesMap["kSignQuadDCAsigXY"] = kSignQuadDCAsigXY;
fgVarNamesMap["kCosPointingAngle"] = kCosPointingAngle;
fgVarNamesMap["kMCCosPointingAngle"] = kMCCosPointingAngle;
fgVarNamesMap["kImpParXYJpsi"] = kImpParXYJpsi;
fgVarNamesMap["kImpParXYK"] = kImpParXYK;
fgVarNamesMap["kDCATrackProd"] = kDCATrackProd;
Expand Down
63 changes: 63 additions & 0 deletions PWGDQ/Core/VarManager.h
Original file line number Diff line number Diff line change
Expand Up @@ -686,19 +686,34 @@ class VarManager : public TObject
kVertexingPseudoCTau,
kVertexingLxyz,
kVertexingLxyzErr,
kMCVertexingLxy,
kMCVertexingLxyz,
kMCLxyExpected,
kMCLxyzExpected,
kVertexingLz,
kVertexingLzErr,
kMCVertexingLz,
kVertexingTauxy,
kVertexingTauxyErr,
kMCVertexingTauxy,
kVertexingLzProjected,
kVertexingLxyProjected,
kVertexingLxyzProjected,
kMCVertexingLzProjected,
kMCVertexingLxyProjected,
kMCVertexingLxyzProjected,
kVertexingTauzProjected,
kVertexingTauxyProjected,
kVertexingTauxyProjectedPoleJPsiMass,
kVertexingTauxyProjectedNs,
kVertexingTauxyzProjected,
kMCVertexingTauzProjected,
kMCVertexingTauxyProjected,
kMCVertexingTauxyProjectedNs,
kMCVertexingTauxyzProjected,
kMCCosPointingAngle,
kVertexingTauz,
kMCVertexingTauz,
kVertexingTauzErr,
kVertexingPz,
kVertexingSV,
Expand Down Expand Up @@ -1148,6 +1163,8 @@ class VarManager : public TObject
static void FillPhoton(T const& photon, float* values = nullptr);
template <uint32_t fillMap, typename T, typename C>
static void FillTrackCollision(T const& track, C const& collision, float* values = nullptr);
template <int candidateType, typename T1, typename T2, typename C>
static void FillTrackCollisionMC(T1 const& track, T2 const& MotherTrack, C const& collision, float* values = nullptr);
template <uint32_t fillMap, typename T, typename C, typename M, typename P>
static void FillTrackCollisionMatCorr(T const& track, C const& collision, M const& materialCorr, P const& propagator, float* values = nullptr);
template <typename U, typename T>
Expand Down Expand Up @@ -2804,6 +2821,52 @@ void VarManager::FillTrackMC(const U& mcStack, T const& track, float* values)
FillTrackDerived(values);
}

template <int candidateType, typename T1, typename T2, typename C>
void VarManager::FillTrackCollisionMC(T1 const& track, T2 const& MotherTrack, C const& collision, float* values)
{

if (!values) {
values = fgValues;
}

float m = 0.0;
float pdgLifetime = 0.0;
if (std::abs(MotherTrack.pdgCode()) == 521) {
m = o2::constants::physics::MassBPlus;
pdgLifetime = 1.638e-12; // s
}
if (std::abs(MotherTrack.pdgCode()) == 511) {
m = o2::constants::physics::MassB0;
pdgLifetime = 1.517e-12; // s
}

// displaced vertex is compued with decay product (track) and momentum of mother particle (MotherTrack)
values[kMCVertexingLxy] = (collision.mcPosX() - track.vx()) * (collision.mcPosX() - track.vx()) +
(collision.mcPosY() - track.vy()) * (collision.mcPosY() - track.vy());
values[kMCVertexingLz] = (collision.mcPosZ() - track.vz()) * (collision.mcPosZ() - track.vz());
values[kMCVertexingLxyz] = values[kMCVertexingLxy] + values[kMCVertexingLz];
values[kMCVertexingLxy] = std::sqrt(values[kMCVertexingLxy]);
values[kMCVertexingLz] = std::sqrt(values[kMCVertexingLz]);
values[kMCVertexingLxyz] = std::sqrt(values[kMCVertexingLxyz]);
values[kMCVertexingTauz] = (collision.mcPosZ() - track.vz()) * m / (TMath::Abs(MotherTrack.pz()) * o2::constants::physics::LightSpeedCm2NS);
values[kMCVertexingTauxy] = values[kMCVertexingLxy] * m / (MotherTrack.pt() * o2::constants::physics::LightSpeedCm2NS);

values[kMCCosPointingAngle] = ((collision.mcPosX() - track.vx()) * MotherTrack.px() +
(collision.mcPosY() - track.vy()) * MotherTrack.py() +
(collision.mcPosZ() - track.vz()) * MotherTrack.pz()) /
(MotherTrack.p() * values[VarManager::kMCVertexingLxyz]);

values[kMCLxyExpected] = (MotherTrack.pt() / m) * (pdgLifetime * o2::constants::physics::LightSpeedCm2S);
values[kMCLxyzExpected] = (MotherTrack.p() / m) * (pdgLifetime * o2::constants::physics::LightSpeedCm2S);

values[kMCVertexingLzProjected] = ((track.vz() - collision.mcPosZ()) * MotherTrack.pz()) / TMath::Abs(MotherTrack.pz());
values[kMCVertexingLxyProjected] = (((track.vx() - collision.mcPosX()) * MotherTrack.px()) + ((track.vy() - collision.mcPosY()) * MotherTrack.py())) / TMath::Abs(MotherTrack.pt());
values[kMCVertexingLxyzProjected] = (((track.vx() - collision.mcPosX()) * MotherTrack.px()) + ((track.vy() - collision.mcPosY()) * MotherTrack.py()) + ((track.vz() - collision.mcPosZ()) * MotherTrack.pz())) / MotherTrack.p();
values[kMCVertexingTauxyProjected] = values[kMCVertexingLxyProjected] * m / (MotherTrack.pt());
values[kMCVertexingTauzProjected] = values[kMCVertexingLzProjected] * m / TMath::Abs(MotherTrack.pz());
values[kMCVertexingTauxyzProjected] = values[kMCVertexingLxyzProjected] * m / (MotherTrack.p());
}

template <int pairType, typename T, typename T1>
void VarManager::FillEnergyCorrelatorsMC(T const& track, T1 const& t1, float* values)
{
Expand Down
Loading
Loading