Skip to content

Commit

Permalink
PWGEM/PhotonMeson: update PCM tasks
Browse files Browse the repository at this point in the history
  • Loading branch information
dsekihat committed Mar 6, 2025
1 parent 3cd7dc0 commit 3dfee9b
Show file tree
Hide file tree
Showing 6 changed files with 226 additions and 283 deletions.
266 changes: 133 additions & 133 deletions PWGEM/Dilepton/Core/PhotonHBT.h

Large diffs are not rendered by default.

43 changes: 8 additions & 35 deletions PWGEM/PhotonMeson/Core/Pi0EtaToGammaGamma.h
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,6 @@ struct Pi0EtaToGammaGamma {
Configurable<bool> cfg_require_v0_with_itstpc{"cfg_require_v0_with_itstpc", false, "flag to select V0s with ITS-TPC matched tracks"};
Configurable<bool> cfg_require_v0_with_itsonly{"cfg_require_v0_with_itsonly", false, "flag to select V0s with ITSonly tracks"};
Configurable<bool> cfg_require_v0_with_tpconly{"cfg_require_v0_with_tpconly", false, "flag to select V0s with TPConly tracks"};
Configurable<bool> cfg_require_v0_on_wwire_ib{"cfg_require_v0_on_wwire_ib", false, "flag to select V0s on W wires ITSib"};
Configurable<float> cfg_min_pt_v0{"cfg_min_pt_v0", 0.1, "min pT for v0 photons at PV"};
Configurable<float> cfg_max_pt_v0{"cfg_max_pt_v0", 1e+10, "max pT for v0 photons at PV"};
Configurable<float> cfg_min_eta_v0{"cfg_min_eta_v0", -0.8, "min eta for v0 photons at PV"};
Expand Down Expand Up @@ -246,8 +245,6 @@ struct Pi0EtaToGammaGamma {
o2::aod::pwgem::photonmeson::utils::eventhistogram::addEventHistograms(&fRegistry);
if constexpr (pairtype == PairType::kPCMDalitzEE) {
o2::aod::pwgem::photonmeson::utils::nmhistogram::addNMHistograms(&fRegistry, false, "ee#gamma");
} else if constexpr (pairtype == PairType::kPCMDalitzMuMu) {
o2::aod::pwgem::photonmeson::utils::nmhistogram::addNMHistograms(&fRegistry, false, "#mu#mu#gamma");
} else {
o2::aod::pwgem::photonmeson::utils::nmhistogram::addNMHistograms(&fRegistry, false, "#gamma#gamma");
}
Expand Down Expand Up @@ -361,38 +358,14 @@ struct Pi0EtaToGammaGamma {
fV0PhotonCut.SetChi2PerClusterTPC(0.0, pcmcuts.cfg_max_chi2tpc);
fV0PhotonCut.SetTPCNsigmaElRange(pcmcuts.cfg_min_TPCNsigmaEl, pcmcuts.cfg_max_TPCNsigmaEl);
fV0PhotonCut.SetChi2PerClusterITS(-1e+10, pcmcuts.cfg_max_chi2its);
fV0PhotonCut.SetDisableITSonly(pcmcuts.cfg_disable_itsonly_track);
fV0PhotonCut.SetDisableTPConly(pcmcuts.cfg_disable_tpconly_track);

if (pcmcuts.cfg_reject_v0_on_itsib) {
fV0PhotonCut.SetNClustersITS(2, 4);
} else {
fV0PhotonCut.SetNClustersITS(0, 7);
}
fV0PhotonCut.SetNClustersITS(0, 7);
fV0PhotonCut.SetMeanClusterSizeITSob(0.0, 16.0);
fV0PhotonCut.SetIsWithinBeamPipe(pcmcuts.cfg_require_v0_with_correct_xz);

if (pcmcuts.cfg_require_v0_with_itstpc) {
fV0PhotonCut.SetRequireITSTPC(true);
fV0PhotonCut.SetMaxPCA(1.0);
fV0PhotonCut.SetRxyRange(4, 40);
}
if (pcmcuts.cfg_require_v0_with_itsonly) {
fV0PhotonCut.SetRequireITSonly(true);
fV0PhotonCut.SetMaxPCA(1.0);
fV0PhotonCut.SetRxyRange(4, 24);
}
if (pcmcuts.cfg_require_v0_with_tpconly) {
fV0PhotonCut.SetRequireTPConly(true);
fV0PhotonCut.SetMaxPCA(3.0);
fV0PhotonCut.SetRxyRange(36, 90);
}
if (pcmcuts.cfg_require_v0_on_wwire_ib) {
fV0PhotonCut.SetMaxPCA(0.3);
fV0PhotonCut.SetOnWwireIB(true);
fV0PhotonCut.SetOnWwireOB(false);
fV0PhotonCut.SetRxyRange(7, 14);
}
fV0PhotonCut.SetDisableITSonly(pcmcuts.cfg_disable_itsonly_track);
fV0PhotonCut.SetDisableTPConly(pcmcuts.cfg_disable_tpconly_track);
fV0PhotonCut.SetRequireITSTPC(pcmcuts.cfg_require_v0_with_itstpc);
fV0PhotonCut.SetRequireITSonly(pcmcuts.cfg_require_v0_with_itsonly);
fV0PhotonCut.SetRequireTPConly(pcmcuts.cfg_require_v0_with_tpconly);
}

void DefineDileptonCut()
Expand Down Expand Up @@ -824,7 +797,7 @@ struct Pi0EtaToGammaGamma {
for (const auto& g2 : photons2_from_event_pool) {
ROOT::Math::PtEtaPhiMVector v1(g1.pt(), g1.eta(), g1.phi(), 0.);
ROOT::Math::PtEtaPhiMVector v2(g2.pt(), g2.eta(), g2.phi(), 0.);
if constexpr (pairtype == PairType::kPCMDalitzEE || pairtype == PairType::kPCMDalitzMuMu) { //[photon from event1, dilepton from event2] and [photon from event2, dilepton from event1]
if constexpr (pairtype == PairType::kPCMDalitzEE) { //[photon from event1, dilepton from event2] and [photon from event2, dilepton from event1]
v2.SetM(g2.mass());
}
ROOT::Math::PtEtaPhiMVector v12 = v1 + v2;
Expand All @@ -850,7 +823,7 @@ struct Pi0EtaToGammaGamma {
for (const auto& g2 : photons1_from_event_pool) {
ROOT::Math::PtEtaPhiMVector v1(g1.pt(), g1.eta(), g1.phi(), 0.);
ROOT::Math::PtEtaPhiMVector v2(g2.pt(), g2.eta(), g2.phi(), 0.);
if constexpr (pairtype == PairType::kPCMDalitzEE || pairtype == PairType::kPCMDalitzMuMu) { //[photon from event1, dilepton from event2] and [photon from event2, dilepton from event1]
if constexpr (pairtype == PairType::kPCMDalitzEE) { //[photon from event1, dilepton from event2] and [photon from event2, dilepton from event1]
v1.SetM(g1.mass());
}
ROOT::Math::PtEtaPhiMVector v12 = v1 + v2;
Expand Down
52 changes: 19 additions & 33 deletions PWGEM/PhotonMeson/Core/Pi0EtaToGammaGammaMC.h
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,7 @@ struct Pi0EtaToGammaGammaMC {
Configurable<float> cfgCentMax{"cfgCentMax", 999, "max. centrality"};
Configurable<float> maxY_rec{"maxY_rec", 0.9, "maximum rapidity for reconstructed particles"};
Configurable<std::string> fd_k0s_to_pi0{"fd_k0s_pi0", "1.0", "feed down correction to pi0"};
Configurable<bool> cfgRequireTrueAssociation{"cfgRequireTrueAssociation", false, "flag to require true mc collision association"};

EMPhotonEventCut fEMEventCut;
struct : ConfigurableGroup {
Expand Down Expand Up @@ -118,7 +119,6 @@ struct Pi0EtaToGammaGammaMC {
Configurable<bool> cfg_require_v0_with_itstpc{"cfg_require_v0_with_itstpc", false, "flag to select V0s with ITS-TPC matched tracks"};
Configurable<bool> cfg_require_v0_with_itsonly{"cfg_require_v0_with_itsonly", false, "flag to select V0s with ITSonly tracks"};
Configurable<bool> cfg_require_v0_with_tpconly{"cfg_require_v0_with_tpconly", false, "flag to select V0s with TPConly tracks"};
Configurable<bool> cfg_require_v0_on_wwire_ib{"cfg_require_v0_on_wwire_ib", false, "flag to select V0s on W wires ITSib"};
Configurable<float> cfg_min_pt_v0{"cfg_min_pt_v0", 0.1, "min pT for v0 photons at PV"};
Configurable<float> cfg_max_pt_v0{"cfg_max_pt_v0", 1e+10, "max pT for v0 photons at PV"};
Configurable<float> cfg_min_eta_v0{"cfg_min_eta_v0", -0.8, "min eta for v0 photons at PV"};
Expand Down Expand Up @@ -216,8 +216,6 @@ struct Pi0EtaToGammaGammaMC {
o2::aod::pwgem::photonmeson::utils::eventhistogram::addEventHistograms(&fRegistry);
if constexpr (pairtype == PairType::kPCMDalitzEE) {
o2::aod::pwgem::photonmeson::utils::nmhistogram::addNMHistograms(&fRegistry, true, "ee#gamma");
} else if constexpr (pairtype == PairType::kPCMDalitzMuMu) {
o2::aod::pwgem::photonmeson::utils::nmhistogram::addNMHistograms(&fRegistry, true, "#mu#mu#gamma");
} else {
o2::aod::pwgem::photonmeson::utils::nmhistogram::addNMHistograms(&fRegistry, true, "#gamma#gamma");
}
Expand Down Expand Up @@ -322,38 +320,14 @@ struct Pi0EtaToGammaGammaMC {
fV0PhotonCut.SetChi2PerClusterTPC(0.0, pcmcuts.cfg_max_chi2tpc);
fV0PhotonCut.SetTPCNsigmaElRange(pcmcuts.cfg_min_TPCNsigmaEl, pcmcuts.cfg_max_TPCNsigmaEl);
fV0PhotonCut.SetChi2PerClusterITS(-1e+10, pcmcuts.cfg_max_chi2its);
fV0PhotonCut.SetDisableITSonly(pcmcuts.cfg_disable_itsonly_track);
fV0PhotonCut.SetDisableTPConly(pcmcuts.cfg_disable_tpconly_track);

if (pcmcuts.cfg_reject_v0_on_itsib) {
fV0PhotonCut.SetNClustersITS(2, 4);
} else {
fV0PhotonCut.SetNClustersITS(0, 7);
}
fV0PhotonCut.SetNClustersITS(0, 7);
fV0PhotonCut.SetMeanClusterSizeITSob(0.0, 16.0);
fV0PhotonCut.SetIsWithinBeamPipe(pcmcuts.cfg_require_v0_with_correct_xz);

if (pcmcuts.cfg_require_v0_with_itstpc) {
fV0PhotonCut.SetRequireITSTPC(true);
fV0PhotonCut.SetMaxPCA(1.0);
fV0PhotonCut.SetRxyRange(4, 40);
}
if (pcmcuts.cfg_require_v0_with_itsonly) {
fV0PhotonCut.SetRequireITSonly(true);
fV0PhotonCut.SetMaxPCA(1.0);
fV0PhotonCut.SetRxyRange(4, 24);
}
if (pcmcuts.cfg_require_v0_with_tpconly) {
fV0PhotonCut.SetRequireTPConly(true);
fV0PhotonCut.SetMaxPCA(3.0);
fV0PhotonCut.SetRxyRange(36, 90);
}
if (pcmcuts.cfg_require_v0_on_wwire_ib) {
fV0PhotonCut.SetMaxPCA(0.3);
fV0PhotonCut.SetOnWwireIB(true);
fV0PhotonCut.SetOnWwireOB(false);
fV0PhotonCut.SetRxyRange(7, 14);
}
fV0PhotonCut.SetDisableITSonly(pcmcuts.cfg_disable_itsonly_track);
fV0PhotonCut.SetDisableTPConly(pcmcuts.cfg_disable_tpconly_track);
fV0PhotonCut.SetRequireITSTPC(pcmcuts.cfg_require_v0_with_itstpc);
fV0PhotonCut.SetRequireITSonly(pcmcuts.cfg_require_v0_with_itsonly);
fV0PhotonCut.SetRequireTPConly(pcmcuts.cfg_require_v0_with_tpconly);
}

void DefineDileptonCut()
Expand Down Expand Up @@ -538,9 +512,15 @@ struct Pi0EtaToGammaGammaMC {

if (pi0id > 0) {
auto pi0mc = mcparticles.iteratorAt(pi0id);
if (cfgRequireTrueAssociation && (pi0mc.emmceventId() != collision.emmceventId())) {
continue;
}
o2::aod::pwgem::photonmeson::utils::nmhistogram::fillTruePairInfo(&fRegistry, v12, pi0mc, mcparticles, mccollisions, f1fd_k0s_to_pi0, collision.weight());
} else if (etaid > 0) {
auto etamc = mcparticles.iteratorAt(etaid);
if (cfgRequireTrueAssociation && (etamc.emmceventId() != collision.emmceventId())) {
continue;
}
o2::aod::pwgem::photonmeson::utils::nmhistogram::fillTruePairInfo(&fRegistry, v12, etamc, mcparticles, mccollisions, f1fd_k0s_to_pi0, collision.weight());
}
} // end of pairing loop
Expand Down Expand Up @@ -598,9 +578,15 @@ struct Pi0EtaToGammaGammaMC {
}
if (pi0id > 0) {
auto pi0mc = mcparticles.iteratorAt(pi0id);
if (cfgRequireTrueAssociation && (pi0mc.emmceventId() != collision.emmceventId())) {
continue;
}
o2::aod::pwgem::photonmeson::utils::nmhistogram::fillTruePairInfo(&fRegistry, veeg, pi0mc, mcparticles, mccollisions, f1fd_k0s_to_pi0, collision.weight());
} else if (etaid > 0) {
auto etamc = mcparticles.iteratorAt(etaid);
if (cfgRequireTrueAssociation && (etamc.emmceventId() != collision.emmceventId())) {
continue;
}
o2::aod::pwgem::photonmeson::utils::nmhistogram::fillTruePairInfo(&fRegistry, veeg, etamc, mcparticles, mccollisions, f1fd_k0s_to_pi0, collision.weight());
}
} // end of dielectron loop
Expand Down
29 changes: 28 additions & 1 deletion PWGEM/PhotonMeson/DataModel/gammaTables.h
Original file line number Diff line number Diff line change
Expand Up @@ -245,6 +245,31 @@ DECLARE_SOA_DYNAMIC_COLUMN(Eta, eta, [](float px, float py, float pz) -> float {
DECLARE_SOA_DYNAMIC_COLUMN(Phi, phi, [](float px, float py) -> float { return RecoDecay::phi(px, py); });
DECLARE_SOA_DYNAMIC_COLUMN(P, p, [](float px, float py, float pz) -> float { return RecoDecay::sqrtSumOfSquares(px, py, pz); });
DECLARE_SOA_DYNAMIC_COLUMN(V0Radius, v0radius, [](float vx, float vy) -> float { return RecoDecay::sqrtSumOfSquares(vx, vy); });
DECLARE_SOA_DYNAMIC_COLUMN(CosPAXY, cosPAXY, [](float px, float py, float vx, float vy, float pvx, float pvy) -> float {
float lx = vx - pvx; // flight length X
float ly = vy - pvy; // flight length Y
float cospaXY = RecoDecay::dotProd(std::array{lx, ly}, std::array{px, py}) / (RecoDecay::sqrtSumOfSquares(lx, ly) * RecoDecay::sqrtSumOfSquares(px, py));
if (cospaXY < -1.) {
return -1.;
} else if (cospaXY > 1.) {
return 1.;
}
return cospaXY;
});
DECLARE_SOA_DYNAMIC_COLUMN(CosPARZ, cosPARZ, [](float px, float py, float pz, float vx, float vy, float vz, float pvx, float pvy, float pvz) -> float {
float lx = vx - pvx; // flight length X
float ly = vy - pvy; // flight length Y
float lz = vz - pvz; // flight length Z
float lt = RecoDecay::sqrtSumOfSquares(lx, ly); // flight length R, i.e. transverse plane.
float pt = RecoDecay::sqrtSumOfSquares(px, py);
float cospaRZ = RecoDecay::dotProd(std::array{lt, lz}, std::array{pt, pz}) / (RecoDecay::sqrtSumOfSquares(lt, lz) * RecoDecay::sqrtSumOfSquares(pt, pz));
if (cospaRZ < -1.) {
return -1.;
} else if (cospaRZ > 1.) {
return 1.;
}
return cospaRZ;
});
} // namespace v0photonkf
DECLARE_SOA_TABLE(V0PhotonsKF, "AOD", "V0PHOTONKF", //!
o2::soa::Index<>, v0photonkf::CollisionId, v0photonkf::V0Id, v0photonkf::PosTrackId, v0photonkf::NegTrackId,
Expand All @@ -262,7 +287,9 @@ DECLARE_SOA_TABLE(V0PhotonsKF, "AOD", "V0PHOTONKF", //!
v0photonkf::Eta<v0photonkf::Px, v0photonkf::Py, v0photonkf::Pz>,
v0photonkf::Phi<v0photonkf::Px, v0photonkf::Py>,
v0photonkf::P<v0photonkf::Px, v0photonkf::Py, v0photonkf::Pz>,
v0photonkf::V0Radius<v0photonkf::Vx, v0photonkf::Vy>);
v0photonkf::V0Radius<v0photonkf::Vx, v0photonkf::Vy>,
v0photonkf::CosPAXY<v0photonkf::Px, v0photonkf::Py, v0photonkf::Vx, v0photonkf::Vy>,
v0photonkf::CosPARZ<v0photonkf::Px, v0photonkf::Py, v0photonkf::Pz, v0photonkf::Vx, v0photonkf::Vy, v0photonkf::Vz>);
// iterators
using V0PhotonKF = V0PhotonsKF::iterator;

Expand Down
53 changes: 15 additions & 38 deletions PWGEM/PhotonMeson/Tasks/pcmQC.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,6 @@ struct PCMQC {
Configurable<bool> cfg_require_v0_with_itstpc{"cfg_require_v0_with_itstpc", false, "flag to select V0s with ITS-TPC matched tracks"};
Configurable<bool> cfg_require_v0_with_itsonly{"cfg_require_v0_with_itsonly", false, "flag to select V0s with ITSonly tracks"};
Configurable<bool> cfg_require_v0_with_tpconly{"cfg_require_v0_with_tpconly", false, "flag to select V0s with TPConly tracks"};
Configurable<bool> cfg_require_v0_on_wwire_ib{"cfg_require_v0_on_wwire_ib", false, "flag to select V0s on W wires ITSib"};
Configurable<float> cfg_min_pt_v0{"cfg_min_pt_v0", 0.1, "min pT for v0 photons at PV"};
Configurable<float> cfg_max_pt_v0{"cfg_max_pt_v0", 1e+10, "max pT for v0 photons at PV"};
Configurable<float> cfg_min_eta_v0{"cfg_min_eta_v0", -0.8, "min eta for v0 photons at PV"};
Expand Down Expand Up @@ -138,12 +137,12 @@ struct PCMQC {
fRegistry.add("V0/hPt", "pT;p_{T,#gamma} (GeV/c)", kTH1F, {{2000, 0.0f, 20}}, false);
fRegistry.add("V0/hEtaPhi", "#eta vs. #varphi;#varphi (rad.);#eta", kTH2F, {{90, 0, 2 * M_PI}, {200, -1.0f, 1.0f}}, false);
fRegistry.add("V0/hRadius", "V0Radius; radius in Z (cm);radius in XY (cm)", kTH2F, {{200, -100, 100}, {200, 0.0f, 100.0f}}, false);
fRegistry.add("V0/hCosPA", "V0CosPA;cosine pointing angle", kTH1F, {{100, 0.99f, 1.0f}}, false);
fRegistry.add("V0/hCosPA_Rxy", "cos PA vs. R_{xy};R_{xy} (cm);cosine pointing angle", kTH2F, {{200, 0.f, 100.f}, {100, 0.99f, 1.0f}}, false);
fRegistry.add("V0/hCosPA", "V0CosPA;cosine pointing angle in 3D", kTH1F, {{100, 0.99f, 1.0f}}, false);
fRegistry.add("V0/hCosPAXY", "V0CosPA;cosine pointing angle in XY", kTH1F, {{100, 0.99f, 1.0f}}, false);
fRegistry.add("V0/hCosPARZ", "V0CosPA;cosine pointing angle in RZ", kTH1F, {{100, 0.99f, 1.0f}}, false);
fRegistry.add("V0/hPCA", "distance between 2 legs;PCA (cm)", kTH1F, {{500, 0.0f, 5.0f}}, false);
fRegistry.add("V0/hPCA_Rxy", "distance between 2 legs vs. R_{xy};R_{xy} (cm);PCA (cm)", kTH2F, {{200, 0.f, 100.f}, {500, 0.0f, 5.0f}}, false);
fRegistry.add("V0/hPCA_CosPA", "distance between 2 legs vs. cosPA;cosine of pointing angle;PCA (cm)", kTH2F, {{100, 0.99f, 1.f}, {500, 0.0f, 5.0f}}, false);
fRegistry.add("V0/hDCAxyz", "DCA to PV;DCA_{xy} (cm);DCA_{z} (cm)", kTH2F, {{200, -5.f, +5.f}, {200, -5.f, +5.f}}, false);
fRegistry.add("V0/hDCAz_Pt", "DCA_{z} to PV vs. p_{T};DCA_{z} (cm);p_{T} (GeV/c)", kTH2F, {{200, -5.f, +5.f}, {2000, 0.0f, 20}}, false);
fRegistry.add("V0/hAPplot", "AP plot;#alpha;q_{T} (GeV/c)", kTH2F, {{200, -1.0f, +1.0f}, {250, 0.0f, 0.25f}}, false);
fRegistry.add("V0/hMassGamma", "hMassGamma;R_{xy} (cm);m_{ee} (GeV/c^{2})", kTH2F, {{200, 0.0f, 100.0f}, {100, 0.0f, 0.1f}}, false);
fRegistry.add("V0/hGammaRxy", "conversion point in XY;V_{x} (cm);V_{y} (cm)", kTH2F, {{400, -100.0f, 100.0f}, {400, -100.0f, 100.0f}}, false);
Expand All @@ -158,7 +157,6 @@ struct PCMQC {
fRegistry.add("V0/hThetaResolution", "#theta resolution;p_{#gamma} (GeV/c);#Delta#theta (rad.)", kTH2F, {{1000, 0.0f, 10}, {100, 0, 0.01}}, false);
fRegistry.add("V0/hPhiResolution", "#varphi resolution;p_{#gamma} (GeV/c);#Delta#varphi (rad.)", kTH2F, {{1000, 0.0f, 10}, {100, 0, 0.01}}, false);
fRegistry.add("V0/hNgamma", "Number of #gamma candidates per collision", kTH1F, {{101, -0.5f, 100.5f}});
fRegistry.add("V0/hDCAz_Pt", "DCA to PV vs. p_{T} (GeV/c);DCA_{z} (cm);p_{T} (GeV/c)", kTH2F, {{200, -5.f, +5.f}, {1000, 0.0f, 10}}, false);

// v0leg info
fRegistry.add("V0Leg/hPt", "pT;p_{T,e} (GeV/c)", kTH1F, {{1000, 0.0f, 10}}, false);
Expand Down Expand Up @@ -225,34 +223,14 @@ struct PCMQC {
fV0PhotonCut.SetChi2PerClusterTPC(0.0, pcmcuts.cfg_max_chi2tpc);
fV0PhotonCut.SetTPCNsigmaElRange(pcmcuts.cfg_min_TPCNsigmaEl, pcmcuts.cfg_max_TPCNsigmaEl);
fV0PhotonCut.SetChi2PerClusterITS(-1e+10, pcmcuts.cfg_max_chi2its);
fV0PhotonCut.SetDisableITSonly(pcmcuts.cfg_disable_itsonly_track);
fV0PhotonCut.SetDisableTPConly(pcmcuts.cfg_disable_tpconly_track);

if (pcmcuts.cfg_reject_v0_on_itsib) {
fV0PhotonCut.SetNClustersITS(2, 4);
} else {
fV0PhotonCut.SetNClustersITS(0, 7);
}
fV0PhotonCut.SetNClustersITS(0, 7);
fV0PhotonCut.SetMeanClusterSizeITSob(0.0, 16.0);
fV0PhotonCut.SetIsWithinBeamPipe(pcmcuts.cfg_require_v0_with_correct_xz);

if (pcmcuts.cfg_require_v0_with_itstpc) {
fV0PhotonCut.SetRequireITSTPC(true);
fV0PhotonCut.SetRxyRange(4, 40);
}
if (pcmcuts.cfg_require_v0_with_itsonly) {
fV0PhotonCut.SetRequireITSonly(true);
fV0PhotonCut.SetRxyRange(4, 24);
}
if (pcmcuts.cfg_require_v0_with_tpconly) {
fV0PhotonCut.SetRequireTPConly(true);
fV0PhotonCut.SetRxyRange(32, 90);
}
if (pcmcuts.cfg_require_v0_on_wwire_ib) {
fV0PhotonCut.SetOnWwireIB(true);
fV0PhotonCut.SetOnWwireOB(false);
fV0PhotonCut.SetRxyRange(7, 14);
}
fV0PhotonCut.SetDisableITSonly(pcmcuts.cfg_disable_itsonly_track);
fV0PhotonCut.SetDisableTPConly(pcmcuts.cfg_disable_tpconly_track);
fV0PhotonCut.SetRequireITSTPC(pcmcuts.cfg_require_v0_with_itstpc);
fV0PhotonCut.SetRequireITSonly(pcmcuts.cfg_require_v0_with_itsonly);
fV0PhotonCut.SetRequireTPConly(pcmcuts.cfg_require_v0_with_tpconly);
}

template <const int ev_id, typename TCollision>
Expand Down Expand Up @@ -295,17 +273,16 @@ struct PCMQC {
fRegistry.fill(HIST("Event/") + HIST(event_types[ev_id]) + HIST("hMultFT0MvsMultNTracksPV"), collision.multFT0A() + collision.multFT0C(), collision.multNTracksPV());
}

template <typename TV0>
void fillV0Info(TV0 const& v0)
template <typename TCollision, typename TV0>
void fillV0Info(TCollision const& collision, TV0 const& v0)
{
fRegistry.fill(HIST("V0/hPt"), v0.pt());
fRegistry.fill(HIST("V0/hEtaPhi"), v0.phi(), v0.eta());
fRegistry.fill(HIST("V0/hRadius"), v0.vz(), v0.v0radius());
fRegistry.fill(HIST("V0/hCosPA"), v0.cospa());
fRegistry.fill(HIST("V0/hCosPA_Rxy"), v0.v0radius(), v0.cospa());
fRegistry.fill(HIST("V0/hCosPAXY"), v0.cosPAXY(collision.posX(), collision.posY()));
fRegistry.fill(HIST("V0/hCosPARZ"), v0.cosPARZ(collision.posX(), collision.posY(), collision.posZ()));
fRegistry.fill(HIST("V0/hPCA"), v0.pca());
fRegistry.fill(HIST("V0/hPCA_CosPA"), v0.cospa(), v0.pca());
fRegistry.fill(HIST("V0/hPCA_Rxy"), v0.v0radius(), v0.pca());
fRegistry.fill(HIST("V0/hDCAxyz"), v0.dcaXYtopv(), v0.dcaZtopv());
fRegistry.fill(HIST("V0/hAPplot"), v0.alpha(), v0.qtarm());
fRegistry.fill(HIST("V0/hMassGamma"), v0.v0radius(), v0.mGamma());
Expand Down Expand Up @@ -381,7 +358,7 @@ struct PCMQC {
if (!fV0PhotonCut.IsSelected<aod::V0Legs>(v0)) {
continue;
}
fillV0Info(v0);
fillV0Info(collision, v0);
for (auto& leg : {pos, ele}) {
fillV0LegInfo(leg);
}
Expand Down
Loading

0 comments on commit 3dfee9b

Please sign in to comment.