From 4530fca22bc733c7f0b1fb5c94bcd4667882ba5e Mon Sep 17 00:00:00 2001 From: Daiki Sekihata Date: Sun, 26 Jan 2025 05:12:14 +0900 Subject: [PATCH] PWGEM/Dilepton: remove unnecessary tagging in PID --- PWGEM/Dilepton/Tasks/eventQC.cxx | 431 +++---------------------------- 1 file changed, 34 insertions(+), 397 deletions(-) diff --git a/PWGEM/Dilepton/Tasks/eventQC.cxx b/PWGEM/Dilepton/Tasks/eventQC.cxx index 8219b7dcd1a..b93128c3a06 100644 --- a/PWGEM/Dilepton/Tasks/eventQC.cxx +++ b/PWGEM/Dilepton/Tasks/eventQC.cxx @@ -126,10 +126,9 @@ struct eventQC { std::string prefix = "v0cut_group"; Configurable cfg_min_mass_k0s{"cfg_min_mass_k0s", 0.49, "min mass for K0S"}; Configurable cfg_max_mass_k0s{"cfg_max_mass_k0s", 0.50, "max mass for K0S"}; - Configurable cfg_min_mass_lambda{"cfg_min_mass_lambda", 1.113, "min mass for Lambda and AntiLambda"}; - Configurable cfg_max_mass_lambda{"cfg_max_mass_lambda", 1.118, "max mass for Lambda and AntiLambda"}; Configurable cfg_min_cospa_v0hadron{"cfg_min_cospa_v0hadron", 0.999, "min cospa for v0hadron"}; Configurable cfg_max_pca_v0hadron{"cfg_max_pca_v0hadron", 0.5, "max distance between 2 legs for v0hadron"}; + Configurable cfg_min_radius_v0hadron{"cfg_min_radius_v0hadron", 0.1, "min rxy for v0hadron"}; Configurable cfg_max_kfchi2{"cfg_max_kfchi2", 1e+10, "max kfchi2 for PCM"}; Configurable cfg_min_cr2findable_ratio_tpc{"cfg_min_cr2findable_ratio_tpc", 0.8, "min. TPC Ncr/Nf ratio"}; Configurable cfg_max_frac_shared_clusters_tpc{"cfg_max_frac_shared_clusters_tpc", 999.f, "max fraction of shared clusters in TPC"}; @@ -143,60 +142,8 @@ struct eventQC { Configurable cfg_max_TPCNsigmaEl{"cfg_max_TPCNsigmaEl", +4, "max n sigma e in TPC"}; Configurable cfg_min_TPCNsigmaPi{"cfg_min_TPCNsigmaPi", -4, "min n sigma pi in TPC"}; Configurable cfg_max_TPCNsigmaPi{"cfg_max_TPCNsigmaPi", +4, "max n sigma pi in TPC"}; - Configurable cfg_min_TPCNsigmaPi_tight{"cfg_min_TPCNsigmaPi_tight", -2, "min n sigma pi in TPC to tag pi from L"}; // for proton - Configurable cfg_max_TPCNsigmaPi_tight{"cfg_max_TPCNsigmaPi_tight", +2, "max n sigma pi in TPC to tag pi from L"}; // for proton - - Configurable cfg_min_TPCNsigmaKa{"cfg_min_TPCNsigmaKa", -4, "min n sigma ka in TPC"}; - Configurable cfg_max_TPCNsigmaKa{"cfg_max_TPCNsigmaKa", +4, "max n sigma ka in TPC"}; - Configurable cfg_min_TPCNsigmaPr{"cfg_min_TPCNsigmaPr", -4, "min n sigma pr in TPC"}; - Configurable cfg_max_TPCNsigmaPr{"cfg_max_TPCNsigmaPr", +4, "max n sigma pr in TPC"}; - Configurable cfg_min_TOFNsigmaEl{"cfg_min_TOFNsigmaEl", -4, "min n sigma el in TOF"}; - Configurable cfg_max_TOFNsigmaEl{"cfg_max_TOFNsigmaEl", +4, "max n sigma el in TOF"}; - Configurable cfg_min_TOFNsigmaPi{"cfg_min_TOFNsigmaPi", -2, "min n sigma pi in TOF"}; - Configurable cfg_max_TOFNsigmaPi{"cfg_max_TOFNsigmaPi", +2, "max n sigma pi in TOF"}; - Configurable cfg_min_TOFNsigmaKa{"cfg_min_TOFNsigmaKa", -2, "min n sigma ka in TOF"}; - Configurable cfg_max_TOFNsigmaKa{"cfg_max_TOFNsigmaKa", +2, "max n sigma ka in TOF"}; - Configurable cfg_min_TOFNsigmaPr{"cfg_min_TOFNsigmaPr", -2, "min n sigma pr in TOF"}; - Configurable cfg_max_TOFNsigmaPr{"cfg_max_TOFNsigmaPr", +2, "max n sigma pr in TOF"}; - // Configurable cfg_min_pin_for_tofreq_ka{"cfg_min_pin_for_tofreq_ka", 0.4f, "min pin for Kaon with TOFreq"}; - // Configurable cfg_min_pin_for_tofreq_pr{"cfg_min_pin_for_tofreq_pr", 0.6f, "min pin for Proton with TOFreq"}; } v0cuts; - struct : ConfigurableGroup { - std::string prefix = "cascadecut_group"; - Configurable cfg_min_mass_Xi{"cfg_min_mass_Xi", 1.31, "min mass for Xi"}; - Configurable cfg_max_mass_Xi{"cfg_max_mass_Xi", 1.33, "max mass for Xi"}; - Configurable cfg_min_mass_Omega{"cfg_min_mass_Omega", 1.662, "min mass for Omega"}; - Configurable cfg_max_mass_Omega{"cfg_max_mass_Omega", 1.682, "max mass for Omega"}; - Configurable cfg_min_mass_lambda{"cfg_min_mass_lambda", 1.113, "min mass for Lambda in cascade"}; - Configurable cfg_max_mass_lambda{"cfg_max_mass_lambda", 1.118, "max mass for Lambda in cascade"}; - - Configurable cfg_min_dcaxy_v0{"cfg_min_dcaxy_v0", 0.1, "min dca XY to PV for V0 in cascade in cm"}; - - Configurable cfg_min_rxy_v0{"cfg_min_rxy_v0", 3.f, "min radius for v0 in cascade in cm"}; - Configurable cfg_min_rxy_cascade{"cfg_min_rxy_cascade", 1.f, "min radius for cascade in cm"}; - - Configurable cfg_min_cospa_v0{"cfg_min_cospa_v0", 0.95, "min cospa for v0"}; - Configurable cfg_min_cospa_cascade{"cfg_min_cospa_cascade", 0.999, "min cospa for cascade"}; - - Configurable cfg_max_pca_v0{"cfg_max_pca_v0", 1.2, "max distance between 2 legs for v0"}; - Configurable cfg_max_pca_cascade{"cfg_max_pca_cascade", 1.0, "max distance between v0 and bachelor"}; - - Configurable cfg_min_dcaxy_v0leg{"cfg_min_dcaxy_v0leg", 0.2, "min dca XY to PV for v0 legs in cascade in cm"}; - Configurable cfg_min_dcaxy_bachelor{"cfg_min_dcaxy_bachelor", 0.1, "min dca XY for bachelor in cascade in cm"}; - - Configurable cfg_min_TPCNsigmaPi{"cfg_min_TPCNsigmaPi", -2, "min n sigma pi in TPC"}; - Configurable cfg_max_TPCNsigmaPi{"cfg_max_TPCNsigmaPi", +2, "max n sigma pi in TPC"}; - Configurable cfg_min_TPCNsigmaPr{"cfg_min_TPCNsigmaPr", -2, "min n sigma pr in TPC"}; - Configurable cfg_max_TPCNsigmaPr{"cfg_max_TPCNsigmaPr", +2, "max n sigma pr in TPC"}; - Configurable cfg_min_TOFNsigmaPi{"cfg_min_TOFNsigmaPi", -2, "min n sigma pi in TOF"}; - Configurable cfg_max_TOFNsigmaPi{"cfg_max_TOFNsigmaPi", +2, "max n sigma pi in TOF"}; - Configurable cfg_min_TOFNsigmaPr{"cfg_min_TOFNsigmaPr", -2, "min n sigma pr in TOF"}; - Configurable cfg_max_TOFNsigmaPr{"cfg_max_TOFNsigmaPr", +2, "max n sigma pr in TOF"}; - Configurable cfg_min_TOFNsigmaKa{"cfg_min_TOFNsigmaKa", -2, "min n sigma ka in TOF"}; - Configurable cfg_max_TOFNsigmaKa{"cfg_max_TOFNsigmaKa", +2, "max n sigma ka in TOF"}; - } cascadecuts; - Service ccdb; HistogramRegistry fRegistry{"output", {}, OutputObjHandlingPolicy::AnalysisObject, false, false}; @@ -391,8 +338,6 @@ struct eventQC { fRegistry.add("Track/hITSNsigmaPi", "ITS n sigma pi;p_{pv} (GeV/c);n #sigma_{#pi}^{ITS}", kTH2F, {{1000, 0, 10}, {100, -5, +5}}, false); fRegistry.add("Track/hITSNsigmaKa", "ITS n sigma ka;p_{pv} (GeV/c);n #sigma_{K}^{ITS}", kTH2F, {{1000, 0, 10}, {100, -5, +5}}, false); fRegistry.add("Track/hITSNsigmaPr", "ITS n sigma pr;p_{pv} (GeV/c);n #sigma_{p}^{ITS}", kTH2F, {{1000, 0, 10}, {100, -5, +5}}, false); - fRegistry.add("Track/hTPCNsigmaKa_ITSNsigmaKa", "ITS vs. TPC n sigma ka in 0.4 < p_{in} < 0.7 (GeV/c);n #sigma_{K}^{TPC};n #sigma_{K}^{ITS}", kTH2F, {{100, -5, +5}, {100, -5, +5}}, false); - fRegistry.add("Track/hTPCNsigmaPr_ITSNsigmaPr", "ITS vs. TPC n sigma pr in 0.8 < p_{in} < 1.4 (GeV/c);n #sigma_{p}^{TPC};n #sigma_{p}^{ITS}", kTH2F, {{100, -5, +5}, {100, -5, +5}}, false); } } } @@ -402,50 +347,21 @@ struct eventQC { fRegistry.add("V0/hAP", "AP plot", kTH2F, {{200, -1, +1}, {250, 0, 0.25}}, false); fRegistry.add("V0/hPCA", "distance between 2 legs", kTH1F, {{200, 0, 2}}, false); fRegistry.add("V0/hCosPA", "cos pointing angle", kTH1F, {{100, 0.99, 1}}, false); - + fRegistry.add("V0/hRadius", "radius", kTH1F, {{200, 0, 20}}, false); fRegistry.add("V0/K0S/pion/hTPCdEdx", "TPC dE/dx;p_{in} (GeV/c);TPC dE/dx (a.u.)", kTH2F, {{1000, 0, 10}, {200, 0, 200}}, false); fRegistry.add("V0/K0S/pion/hTPCNsigmaEl", "TPC n sigma el;p_{in} (GeV/c);n #sigma_{e}^{TPC}", kTH2F, {{1000, 0, 10}, {200, -10, +10}}, false); - fRegistry.add("V0/K0S/pion/hTPCNsigmaMu", "TPC n sigma mu;p_{in} (GeV/c);n #sigma_{#mu}^{TPC}", kTH2F, {{1000, 0, 10}, {100, -10, +10}}, false); fRegistry.add("V0/K0S/pion/hTPCNsigmaPi", "TPC n sigma pi;p_{in} (GeV/c);n #sigma_{#pi}^{TPC}", kTH2F, {{1000, 0, 10}, {100, -10, +10}}, false); - fRegistry.add("V0/K0S/pion/hTPCNsigmaKa", "TPC n sigma ka;p_{in} (GeV/c);n #sigma_{K}^{TPC}", kTH2F, {{1000, 0, 10}, {100, -10, +10}}, false); - fRegistry.add("V0/K0S/pion/hTPCNsigmaPr", "TPC n sigma pr;p_{in} (GeV/c);n #sigma_{p}^{TPC}", kTH2F, {{1000, 0, 10}, {100, -10, +10}}, false); - fRegistry.addClone("V0/K0S/pion/", "V0/Lambda/proton/"); - fRegistry.addClone("V0/K0S/pion/", "V0/Lambda/pion/"); - // fRegistry.addClone("V0/K0S/pion/", "V0/Dummy/kaon/"); // not V0, but only for consistent file structure - - fRegistry.add("V0/K0S/hMass", "mass vs. p_{T} of K_{0}_{S}", kTH2F, {{200, 0.4, 0.6}, {100, 0, 10}}, false); - fRegistry.add("V0/Lambda/hMass", "mass vs. p_{T} of #Lambda", kTH2F, {{100, 1.08, 1.18}, {100, 0, 10}}, false); - fRegistry.add("V0/AntiLambda/hMass", "mass vs. p_{T} of #bar{#Lambda}", kTH2F, {{100, 1.08, 1.18}, {100, 0, 10}}, false); - - fRegistry.add("Cascade/Xi/hPCA", "distance between bachelor and V0", kTH1F, {{200, 0, 2}}, false); - fRegistry.add("Cascade/Xi/hCosPA", "cos pointing angle", kTH1F, {{100, 0.9, 1}}, false); - fRegistry.add("Cascade/Xi/hRadius", "cascade radius", kTH1F, {{100, 0, 10}}, false); - fRegistry.add("Cascade/Xi/V0/hMass", "mass", kTH1F, {{100, 1.08, 1.18}}, false); - fRegistry.add("Cascade/Xi/V0/hRadius", "v0 radius", kTH1F, {{100, 0, 10}}, false); - fRegistry.add("Cascade/Xi/V0/hPCA", "distance between 2 legs", kTH1F, {{200, 0, 2}}, false); - fRegistry.add("Cascade/Xi/V0/hCosPA", "cos pointing angle", kTH1F, {{100, 0.99, 1}}, false); - fRegistry.add("Cascade/Xi/Bachelor/hTPCdEdx", "TPC dE/dx;p_{in} (GeV/c);TPC dE/dx (a.u.)", kTH2F, {{1000, 0, 10}, {200, 0, 200}}, false); - fRegistry.add("Cascade/Xi/Bachelor/hTPCNsigmaEl", "TPC n sigma el;p_{in} (GeV/c);n #sigma_{e}^{TPC}", kTH2F, {{1000, 0, 10}, {200, -10, +10}}, false); - fRegistry.add("Cascade/Xi/Bachelor/hTPCNsigmaMu", "TPC n sigma mu;p_{in} (GeV/c);n #sigma_{#mu}^{TPC}", kTH2F, {{1000, 0, 10}, {100, -10, +10}}, false); - fRegistry.add("Cascade/Xi/Bachelor/hTPCNsigmaPi", "TPC n sigma pi;p_{in} (GeV/c);n #sigma_{#pi}^{TPC}", kTH2F, {{1000, 0, 10}, {100, -10, +10}}, false); - fRegistry.add("Cascade/Xi/Bachelor/hTPCNsigmaKa", "TPC n sigma ka;p_{in} (GeV/c);n #sigma_{K}^{TPC}", kTH2F, {{1000, 0, 10}, {100, -10, +10}}, false); - fRegistry.add("Cascade/Xi/Bachelor/hTPCNsigmaPr", "TPC n sigma pr;p_{in} (GeV/c);n #sigma_{p}^{TPC}", kTH2F, {{1000, 0, 10}, {100, -10, +10}}, false); - fRegistry.add("Cascade/Xi/Bachelor/hTOFbeta", "TOF #beta;p_{pv} (GeV/c);#beta", kTH2F, {{1000, 0, 10}, {240, 0, 1.2}}, false); - fRegistry.addClone("Cascade/Xi/", "Cascade/Omega/"); - fRegistry.add("Cascade/Xi/hMass", "mass vs. p_{T} of #Xi^{#mp}", kTH2F, {{100, 1.27, 1.37}, {100, 0, 10}}, false); - fRegistry.add("Cascade/Omega/hMass", "mass vs. p_{T} of #Omega^{#mp}", kTH2F, {{100, 1.62, 1.72}, {100, 0, 10}}, false); - - // fRegistry.add("V0/Dummy/kaon/hChi2TOF", "chi2 of TOF", kTH2F, {{1000, 0, 10}, {100, 0, 10}}, false); - // fRegistry.add("V0/Dummy/kaon/hTOFbeta", "TOF #beta;p_{pv} (GeV/c);#beta", kTH2F, {{1000, 0, 10}, {240, 0, 1.2}}, false); + + fRegistry.add("V0/K0S/hMass", "mass vs. p_{T} of K^{0}_{S}", kTH2F, {{200, 0.4, 0.6}, {100, 0, 10}}, false); + // fRegistry.add("V0/Lambda/hMass", "mass vs. p_{T} of #Lambda", kTH2F, {{100, 1.08, 1.18}, {100, 0, 10}}, false); + // fRegistry.add("V0/AntiLambda/hMass", "mass vs. p_{T} of #bar{#Lambda}", kTH2F, {{100, 1.08, 1.18}, {100, 0, 10}}, false); fRegistry.add("V0/Photon/hMass", "mass vs. p_{T}", kTH2F, {{100, 0, 0.1}, {100, 0, 10}}, false); + fRegistry.add("V0/Photon/hChi2", "radius vs. KF chi2", kTH2F, {{100, 0, 100}, {100, 0, 100}}, false); fRegistry.add("V0/Photon/hXY", "photon conversion point;X (cm);Y(cm)", kTH2F, {{400, -100, +100}, {400, -100, 100}}, false); fRegistry.add("V0/Photon/electron/hTPCdEdx", "TPC dE/dx;p_{in} (GeV/c);TPC dE/dx (a.u.)", kTH2F, {{1000, 0, 10}, {200, 0, 200}}, false); fRegistry.add("V0/Photon/electron/hTPCNsigmaEl", "TPC n sigma el;p_{in} (GeV/c);n #sigma_{e}^{TPC}", kTH2F, {{1000, 0, 10}, {200, -10, +10}}, false); - fRegistry.add("V0/Photon/electron/hTPCNsigmaMu", "TPC n sigma mu;p_{in} (GeV/c);n #sigma_{#mu}^{TPC}", kTH2F, {{1000, 0, 10}, {200, -10, +10}}, false); fRegistry.add("V0/Photon/electron/hTPCNsigmaPi", "TPC n sigma pi;p_{in} (GeV/c);n #sigma_{#pi}^{TPC}", kTH2F, {{1000, 0, 10}, {200, -10, +10}}, false); - fRegistry.add("V0/Photon/electron/hTPCNsigmaKa", "TPC n sigma ka;p_{in} (GeV/c);n #sigma_{K}^{TPC}", kTH2F, {{1000, 0, 10}, {200, -10, +10}}, false); - fRegistry.add("V0/Photon/electron/hTPCNsigmaPr", "TPC n sigma pi;p_{in} (GeV/c);n #sigma_{p}^{TPC}", kTH2F, {{1000, 0, 10}, {200, -10, +10}}, false); } template @@ -497,12 +413,6 @@ struct eventQC { fRegistry.fill(HIST("Track/hITSNsigmaPi"), track.p(), track.itsNSigmaPi()); fRegistry.fill(HIST("Track/hITSNsigmaKa"), track.p(), track.itsNSigmaKa()); fRegistry.fill(HIST("Track/hITSNsigmaPr"), track.p(), track.itsNSigmaPr()); - - if (0.4 < track.tpcInnerParam() && track.tpcInnerParam() < 0.7) { - fRegistry.fill(HIST("Track/hTPCNsigmaKa_ITSNsigmaKa"), track.tpcNSigmaKa(), track.itsNSigmaKa()); - } else if (0.8 < track.tpcInnerParam() && track.tpcInnerParam() < 1.4) { - fRegistry.fill(HIST("Track/hTPCNsigmaPr_ITSNsigmaPr"), track.tpcNSigmaPr(), track.itsNSigmaPr()); - } } } } @@ -952,8 +862,8 @@ struct eventQC { Preslice perCol_v0 = o2::aod::v0data::collisionId; Preslice perCol_casc = o2::aod::cascdata::collisionId; - template - void runQC(TCollisions const& collisions, TTracks const& tracks, TV0Photons const& v0photons, TV0Legs const&, TV0StrHadrons const& v0strhadrons, TCascades const& cascades) + template + void runQC(TCollisions const& collisions, TTracks const& tracks, TV0Photons const& v0photons, TV0Legs const&, TV0StrHadrons const& v0strhadrons) { for (auto& collision : collisions) { const float centralities[3] = {collision.centFT0M(), collision.centFT0A(), collision.centFT0C()}; @@ -1013,53 +923,20 @@ struct eventQC { // for V0 PID if constexpr (doV0s) { - // // only for charged kaon - // for (auto& track : tracks_per_coll) { - // if (!isSelectedTrack(track)) { - // continue; - // } - // if (track.tpcNSigmaKa() < v0cuts.cfg_min_TPCNsigmaKa || v0cuts.cfg_max_TPCNsigmaKa < track.tpcNSigmaKa()) { - // continue; - // } - // - // if (track.tpcInnerParam() < v0cuts.cfg_min_pin_for_tofreq_ka) { // kaon is isolated well in TPC dE/dx. - // fRegistry.fill(HIST("V0/Dummy/kaon/hTPCdEdx"), track.tpcInnerParam(), track.tpcSignal()); - // fRegistry.fill(HIST("V0/Dummy/kaon/hTPCNsigmaEl"), track.tpcInnerParam(), track.tpcNSigmaEl()); - // fRegistry.fill(HIST("V0/Dummy/kaon/hTPCNsigmaMu"), track.tpcInnerParam(), track.tpcNSigmaMu()); - // fRegistry.fill(HIST("V0/Dummy/kaon/hTPCNsigmaPi"), track.tpcInnerParam(), track.tpcNSigmaPi()); - // fRegistry.fill(HIST("V0/Dummy/kaon/hTPCNsigmaKa"), track.tpcInnerParam(), track.tpcNSigmaKa()); - // fRegistry.fill(HIST("V0/Dummy/kaon/hTPCNsigmaPr"), track.tpcInnerParam(), track.tpcNSigmaPr()); - // } else { - // if (!track.hasTOF() || v0cuts.cfg_max_chi2tof < track.tofChi2()) { - // continue; - // } - // if (track.tofNSigmaKa() < v0cuts.cfg_min_TOFNsigmaKa || v0cuts.cfg_max_TOFNsigmaKa < track.tofNSigmaKa()) { - // continue; - // } - // fRegistry.fill(HIST("V0/Dummy/kaon/hChi2TOF"), track.p(), track.tofChi2()); - // fRegistry.fill(HIST("V0/Dummy/kaon/hTOFbeta"), track.p(), track.beta()); - // fRegistry.fill(HIST("V0/Dummy/kaon/hTPCdEdx"), track.tpcInnerParam(), track.tpcSignal()); - // fRegistry.fill(HIST("V0/Dummy/kaon/hTPCNsigmaEl"), track.tpcInnerParam(), track.tpcNSigmaEl()); - // fRegistry.fill(HIST("V0/Dummy/kaon/hTPCNsigmaMu"), track.tpcInnerParam(), track.tpcNSigmaMu()); - // fRegistry.fill(HIST("V0/Dummy/kaon/hTPCNsigmaPi"), track.tpcInnerParam(), track.tpcNSigmaPi()); - // fRegistry.fill(HIST("V0/Dummy/kaon/hTPCNsigmaKa"), track.tpcInnerParam(), track.tpcNSigmaKa()); - // fRegistry.fill(HIST("V0/Dummy/kaon/hTPCNsigmaPr"), track.tpcInnerParam(), track.tpcNSigmaPr()); - // } - // } // end of track loop - auto v0hadrons_per_coll = v0strhadrons.sliceBy(perCol_v0, collision.globalIndex()); for (auto& v0hadron : v0hadrons_per_coll) { - if (v0hadron.dcaV0daughters() > v0cuts.cfg_max_pca_v0hadron || v0hadron.v0cosPA() < v0cuts.cfg_min_cospa_v0hadron) { + if (v0hadron.dcaV0daughters() > v0cuts.cfg_max_pca_v0hadron || v0hadron.v0cosPA() < v0cuts.cfg_min_cospa_v0hadron || v0hadron.v0radius() < v0cuts.cfg_min_radius_v0hadron) { continue; } fRegistry.fill(HIST("V0/hAP"), v0hadron.alpha(), v0hadron.qtarm()); fRegistry.fill(HIST("V0/hPCA"), v0hadron.dcaV0daughters()); fRegistry.fill(HIST("V0/hCosPA"), v0hadron.v0cosPA()); + fRegistry.fill(HIST("V0/hRadius"), v0hadron.v0radius()); fRegistry.fill(HIST("V0/K0S/hMass"), v0hadron.mK0Short(), v0hadron.pt()); - fRegistry.fill(HIST("V0/Lambda/hMass"), v0hadron.mLambda(), v0hadron.pt()); - fRegistry.fill(HIST("V0/AntiLambda/hMass"), v0hadron.mAntiLambda(), v0hadron.pt()); + // fRegistry.fill(HIST("V0/Lambda/hMass"), v0hadron.mLambda(), v0hadron.pt()); + // fRegistry.fill(HIST("V0/AntiLambda/hMass"), v0hadron.mAntiLambda(), v0hadron.pt()); if (v0cuts.cfg_min_mass_k0s < v0hadron.mK0Short() && v0hadron.mK0Short() < v0cuts.cfg_max_mass_k0s) { // K0S auto pos = tracks.rawIteratorAt(v0hadron.posTrackId()); @@ -1080,100 +957,12 @@ struct eventQC { continue; } - bool isTOFOK_pos = pos.hasTOF() ? (pos.tofChi2() < v0cuts.cfg_max_chi2tof ? v0cuts.cfg_min_TOFNsigmaPi < pos.tofNSigmaPi() && pos.tofNSigmaPi() < v0cuts.cfg_max_TOFNsigmaPi : false) : true; // TOFif // proton - bool isTOFOK_neg = neg.hasTOF() ? (neg.tofChi2() < v0cuts.cfg_max_chi2tof ? v0cuts.cfg_min_TOFNsigmaPi < neg.tofNSigmaPi() && neg.tofNSigmaPi() < v0cuts.cfg_max_TOFNsigmaPi : false) : true; // TOFif // pi- - if (isTOFOK_pos && isTOFOK_neg) { - fRegistry.fill(HIST("V0/K0S/pion/hTPCdEdx"), pos.tpcInnerParam(), pos.tpcSignal()); - fRegistry.fill(HIST("V0/K0S/pion/hTPCNsigmaEl"), pos.tpcInnerParam(), pos.tpcNSigmaEl()); - fRegistry.fill(HIST("V0/K0S/pion/hTPCNsigmaMu"), pos.tpcInnerParam(), pos.tpcNSigmaMu()); - fRegistry.fill(HIST("V0/K0S/pion/hTPCNsigmaPi"), pos.tpcInnerParam(), pos.tpcNSigmaPi()); - fRegistry.fill(HIST("V0/K0S/pion/hTPCNsigmaKa"), pos.tpcInnerParam(), pos.tpcNSigmaKa()); - fRegistry.fill(HIST("V0/K0S/pion/hTPCNsigmaPr"), pos.tpcInnerParam(), pos.tpcNSigmaPr()); - - fRegistry.fill(HIST("V0/K0S/pion/hTPCdEdx"), neg.tpcInnerParam(), neg.tpcSignal()); - fRegistry.fill(HIST("V0/K0S/pion/hTPCNsigmaEl"), neg.tpcInnerParam(), neg.tpcNSigmaEl()); - fRegistry.fill(HIST("V0/K0S/pion/hTPCNsigmaMu"), neg.tpcInnerParam(), neg.tpcNSigmaMu()); - fRegistry.fill(HIST("V0/K0S/pion/hTPCNsigmaPi"), neg.tpcInnerParam(), neg.tpcNSigmaPi()); - fRegistry.fill(HIST("V0/K0S/pion/hTPCNsigmaKa"), neg.tpcInnerParam(), neg.tpcNSigmaKa()); - fRegistry.fill(HIST("V0/K0S/pion/hTPCNsigmaPr"), neg.tpcInnerParam(), neg.tpcNSigmaPr()); - } - } - - if (v0cuts.cfg_min_mass_lambda < v0hadron.mLambda() && v0hadron.mLambda() < v0cuts.cfg_max_mass_lambda) { // Lambda - auto pos = tracks.rawIteratorAt(v0hadron.posTrackId()); // proton - auto neg = tracks.rawIteratorAt(v0hadron.negTrackId()); // pi- - if (!isSelectedV0Leg(pos) || !isSelectedV0Leg(neg)) { - continue; - } - if (!pos.hasITS() || !neg.hasITS()) { - continue; - } - if (std::fabs(pos.dcaXY()) < v0cuts.cfg_min_dcaxy_v0leg || std::fabs(neg.dcaXY()) < v0cuts.cfg_min_dcaxy_v0leg) { - continue; - } - if (pos.tpcNSigmaPr() < v0cuts.cfg_min_TPCNsigmaPr || v0cuts.cfg_max_TPCNsigmaPr < pos.tpcNSigmaPr()) { - continue; - } - if (neg.tpcNSigmaPi() < v0cuts.cfg_min_TPCNsigmaPi_tight || v0cuts.cfg_max_TPCNsigmaPi_tight < neg.tpcNSigmaPi()) { - continue; - } - - bool isTOFOK_pos = pos.hasTOF() ? (pos.tofChi2() < v0cuts.cfg_max_chi2tof ? v0cuts.cfg_min_TOFNsigmaPr < pos.tofNSigmaPr() && pos.tofNSigmaPr() < v0cuts.cfg_max_TOFNsigmaPr : false) : true; // TOFif // proton - bool isTOFOK_neg = neg.hasTOF() ? (neg.tofChi2() < v0cuts.cfg_max_chi2tof ? v0cuts.cfg_min_TOFNsigmaPi < neg.tofNSigmaPi() && neg.tofNSigmaPi() < v0cuts.cfg_max_TOFNsigmaPi : false) : true; // TOFif // pi- - - if (isTOFOK_pos && isTOFOK_neg) { - fRegistry.fill(HIST("V0/Lambda/proton/hTPCdEdx"), pos.tpcInnerParam(), pos.tpcSignal()); - fRegistry.fill(HIST("V0/Lambda/proton/hTPCNsigmaEl"), pos.tpcInnerParam(), pos.tpcNSigmaEl()); - fRegistry.fill(HIST("V0/Lambda/proton/hTPCNsigmaMu"), pos.tpcInnerParam(), pos.tpcNSigmaMu()); - fRegistry.fill(HIST("V0/Lambda/proton/hTPCNsigmaPi"), pos.tpcInnerParam(), pos.tpcNSigmaPi()); - fRegistry.fill(HIST("V0/Lambda/proton/hTPCNsigmaKa"), pos.tpcInnerParam(), pos.tpcNSigmaKa()); - fRegistry.fill(HIST("V0/Lambda/proton/hTPCNsigmaPr"), pos.tpcInnerParam(), pos.tpcNSigmaPr()); - - fRegistry.fill(HIST("V0/Lambda/pion/hTPCdEdx"), neg.tpcInnerParam(), neg.tpcSignal()); - fRegistry.fill(HIST("V0/Lambda/pion/hTPCNsigmaEl"), neg.tpcInnerParam(), neg.tpcNSigmaEl()); - fRegistry.fill(HIST("V0/Lambda/pion/hTPCNsigmaMu"), neg.tpcInnerParam(), neg.tpcNSigmaMu()); - fRegistry.fill(HIST("V0/Lambda/pion/hTPCNsigmaPi"), neg.tpcInnerParam(), neg.tpcNSigmaPi()); - fRegistry.fill(HIST("V0/Lambda/pion/hTPCNsigmaKa"), neg.tpcInnerParam(), neg.tpcNSigmaKa()); - fRegistry.fill(HIST("V0/Lambda/pion/hTPCNsigmaPr"), neg.tpcInnerParam(), neg.tpcNSigmaPr()); - } - } - if (v0cuts.cfg_min_mass_lambda < v0hadron.mAntiLambda() && v0hadron.mAntiLambda() < v0cuts.cfg_max_mass_lambda) { // AntiLambda - auto pos = tracks.rawIteratorAt(v0hadron.posTrackId()); // pi+ - auto neg = tracks.rawIteratorAt(v0hadron.negTrackId()); // anti-proton - if (!isSelectedV0Leg(pos) || !isSelectedV0Leg(neg)) { - continue; - } - if (!pos.hasITS() || !neg.hasITS()) { - continue; - } - if (std::fabs(pos.dcaXY()) < v0cuts.cfg_min_dcaxy_v0leg || std::fabs(neg.dcaXY()) < v0cuts.cfg_min_dcaxy_v0leg) { - continue; - } - if (neg.tpcNSigmaPr() < v0cuts.cfg_min_TPCNsigmaPr || v0cuts.cfg_max_TPCNsigmaPr < neg.tpcNSigmaPr()) { - continue; - } - if (pos.tpcNSigmaPi() < v0cuts.cfg_min_TPCNsigmaPi_tight || v0cuts.cfg_max_TPCNsigmaPi_tight < pos.tpcNSigmaPi()) { - continue; - } - - bool isTOFOK_neg = neg.hasTOF() ? (neg.tofChi2() < v0cuts.cfg_max_chi2tof ? v0cuts.cfg_min_TOFNsigmaPr < neg.tofNSigmaPr() && neg.tofNSigmaPr() < v0cuts.cfg_max_TOFNsigmaPr : false) : true; // TOFif // anti-proton - bool isTOFOK_pos = pos.hasTOF() ? (pos.tofChi2() < v0cuts.cfg_max_chi2tof ? v0cuts.cfg_min_TOFNsigmaPi < pos.tofNSigmaPi() && pos.tofNSigmaPi() < v0cuts.cfg_max_TOFNsigmaPi : false) : true; // TOFif // pi+ - - if (isTOFOK_pos && isTOFOK_neg) { - fRegistry.fill(HIST("V0/Lambda/pion/hTPCdEdx"), pos.tpcInnerParam(), pos.tpcSignal()); - fRegistry.fill(HIST("V0/Lambda/pion/hTPCNsigmaEl"), pos.tpcInnerParam(), pos.tpcNSigmaEl()); - fRegistry.fill(HIST("V0/Lambda/pion/hTPCNsigmaMu"), pos.tpcInnerParam(), pos.tpcNSigmaMu()); - fRegistry.fill(HIST("V0/Lambda/pion/hTPCNsigmaPi"), pos.tpcInnerParam(), pos.tpcNSigmaPi()); - fRegistry.fill(HIST("V0/Lambda/pion/hTPCNsigmaKa"), pos.tpcInnerParam(), pos.tpcNSigmaKa()); - fRegistry.fill(HIST("V0/Lambda/pion/hTPCNsigmaPr"), pos.tpcInnerParam(), pos.tpcNSigmaPr()); - - fRegistry.fill(HIST("V0/Lambda/proton/hTPCdEdx"), neg.tpcInnerParam(), neg.tpcSignal()); - fRegistry.fill(HIST("V0/Lambda/proton/hTPCNsigmaEl"), neg.tpcInnerParam(), neg.tpcNSigmaEl()); - fRegistry.fill(HIST("V0/Lambda/proton/hTPCNsigmaMu"), neg.tpcInnerParam(), neg.tpcNSigmaMu()); - fRegistry.fill(HIST("V0/Lambda/proton/hTPCNsigmaPi"), neg.tpcInnerParam(), neg.tpcNSigmaPi()); - fRegistry.fill(HIST("V0/Lambda/proton/hTPCNsigmaKa"), neg.tpcInnerParam(), neg.tpcNSigmaKa()); - fRegistry.fill(HIST("V0/Lambda/proton/hTPCNsigmaPr"), neg.tpcInnerParam(), neg.tpcNSigmaPr()); - } + fRegistry.fill(HIST("V0/K0S/pion/hTPCdEdx"), pos.tpcInnerParam(), pos.tpcSignal()); + fRegistry.fill(HIST("V0/K0S/pion/hTPCNsigmaEl"), pos.tpcInnerParam(), pos.tpcNSigmaEl()); + fRegistry.fill(HIST("V0/K0S/pion/hTPCNsigmaPi"), pos.tpcInnerParam(), pos.tpcNSigmaPi()); + fRegistry.fill(HIST("V0/K0S/pion/hTPCdEdx"), neg.tpcInnerParam(), neg.tpcSignal()); + fRegistry.fill(HIST("V0/K0S/pion/hTPCNsigmaEl"), neg.tpcInnerParam(), neg.tpcNSigmaEl()); + fRegistry.fill(HIST("V0/K0S/pion/hTPCNsigmaPi"), neg.tpcInnerParam(), neg.tpcNSigmaPi()); } } // end of v0hadron loop @@ -1185,10 +974,11 @@ struct eventQC { fRegistry.fill(HIST("V0/Photon/hMass"), v0photon.mGamma(), v0photon.pt()); fRegistry.fill(HIST("V0/Photon/hXY"), v0photon.vx(), v0photon.vy()); - auto pos_v0leg = v0photon.template posTrack_as(); - auto neg_v0leg = v0photon.template negTrack_as(); - auto pos = tracks.rawIteratorAt(pos_v0leg.trackId()); - auto neg = tracks.rawIteratorAt(neg_v0leg.trackId()); + fRegistry.fill(HIST("V0/Photon/hChi2"), v0photon.v0radius(), v0photon.chiSquareNDF()); + auto pos = v0photon.template posTrack_as(); + auto neg = v0photon.template negTrack_as(); + // auto pos = tracks.rawIteratorAt(pos_v0leg.trackId()); + // auto neg = tracks.rawIteratorAt(neg_v0leg.trackId()); if (!isSelectedV0Leg(pos) || !isSelectedV0Leg(neg)) { continue; @@ -1203,166 +993,13 @@ struct eventQC { continue; } - bool isTOFOK_neg = neg.hasTOF() ? (neg.tofChi2() < v0cuts.cfg_max_chi2tof ? v0cuts.cfg_min_TOFNsigmaEl < neg.tofNSigmaEl() && neg.tofNSigmaEl() < v0cuts.cfg_max_TOFNsigmaEl : false) : true; // TOFif // anti-proton - bool isTOFOK_pos = pos.hasTOF() ? (pos.tofChi2() < v0cuts.cfg_max_chi2tof ? v0cuts.cfg_min_TOFNsigmaEl < pos.tofNSigmaEl() && pos.tofNSigmaEl() < v0cuts.cfg_max_TOFNsigmaEl : false) : true; // TOFif // pi+ - if (isTOFOK_pos && isTOFOK_neg) { - fRegistry.fill(HIST("V0/Photon/electron/hTPCdEdx"), pos.tpcInnerParam(), pos.tpcSignal()); - fRegistry.fill(HIST("V0/Photon/electron/hTPCNsigmaEl"), pos.tpcInnerParam(), pos.tpcNSigmaEl()); - fRegistry.fill(HIST("V0/Photon/electron/hTPCNsigmaMu"), pos.tpcInnerParam(), pos.tpcNSigmaMu()); - fRegistry.fill(HIST("V0/Photon/electron/hTPCNsigmaPi"), pos.tpcInnerParam(), pos.tpcNSigmaPi()); - fRegistry.fill(HIST("V0/Photon/electron/hTPCNsigmaKa"), pos.tpcInnerParam(), pos.tpcNSigmaKa()); - fRegistry.fill(HIST("V0/Photon/electron/hTPCNsigmaPr"), pos.tpcInnerParam(), pos.tpcNSigmaPr()); - - fRegistry.fill(HIST("V0/Photon/electron/hTPCdEdx"), neg.tpcInnerParam(), neg.tpcSignal()); - fRegistry.fill(HIST("V0/Photon/electron/hTPCNsigmaEl"), neg.tpcInnerParam(), neg.tpcNSigmaEl()); - fRegistry.fill(HIST("V0/Photon/electron/hTPCNsigmaMu"), neg.tpcInnerParam(), neg.tpcNSigmaMu()); - fRegistry.fill(HIST("V0/Photon/electron/hTPCNsigmaPi"), neg.tpcInnerParam(), neg.tpcNSigmaPi()); - fRegistry.fill(HIST("V0/Photon/electron/hTPCNsigmaKa"), neg.tpcInnerParam(), neg.tpcNSigmaKa()); - fRegistry.fill(HIST("V0/Photon/electron/hTPCNsigmaPr"), neg.tpcInnerParam(), neg.tpcNSigmaPr()); - } + fRegistry.fill(HIST("V0/Photon/electron/hTPCdEdx"), pos.tpcInnerParam(), pos.tpcSignal()); + fRegistry.fill(HIST("V0/Photon/electron/hTPCNsigmaEl"), pos.tpcInnerParam(), pos.tpcNSigmaEl()); + fRegistry.fill(HIST("V0/Photon/electron/hTPCNsigmaPi"), pos.tpcInnerParam(), pos.tpcNSigmaPi()); + fRegistry.fill(HIST("V0/Photon/electron/hTPCdEdx"), neg.tpcInnerParam(), neg.tpcSignal()); + fRegistry.fill(HIST("V0/Photon/electron/hTPCNsigmaEl"), neg.tpcInnerParam(), neg.tpcNSigmaEl()); + fRegistry.fill(HIST("V0/Photon/electron/hTPCNsigmaPi"), neg.tpcInnerParam(), neg.tpcNSigmaPi()); } // end of v0photon loop - - auto cascades_per_coll = cascades.sliceBy(perCol_casc, collision.globalIndex()); - for (auto& cascade : cascades_per_coll) { - auto bachelor = tracks.rawIteratorAt(cascade.bachelorId()); - auto pos = tracks.rawIteratorAt(cascade.posTrackId()); - auto neg = tracks.rawIteratorAt(cascade.negTrackId()); - - if (!isSelectedV0Leg(pos) || !isSelectedV0Leg(neg) || !isSelectedV0Leg(bachelor)) { - continue; - } - if (!pos.hasITS() || !neg.hasITS() || !bachelor.hasITS()) { - continue; - } - if (std::fabs(pos.dcaXY()) < cascadecuts.cfg_min_dcaxy_v0leg || std::fabs(neg.dcaXY()) < cascadecuts.cfg_min_dcaxy_v0leg || std::fabs(bachelor.dcaXY()) < cascadecuts.cfg_min_dcaxy_bachelor) { - continue; - } - - if (cascade.mLambda() < cascadecuts.cfg_min_mass_lambda || cascadecuts.cfg_max_mass_lambda < cascade.mLambda()) { - continue; - } - - if (cascade.dcav0topv(collision.posX(), collision.posY(), collision.posZ()) < cascadecuts.cfg_min_dcaxy_v0) { - continue; - } - - if (cascade.v0radius() < cascadecuts.cfg_min_rxy_v0 || cascade.cascradius() < cascadecuts.cfg_min_rxy_cascade) { - continue; - } - - if (cascade.v0cosPA(collision.posX(), collision.posY(), collision.posZ()) < cascadecuts.cfg_min_cospa_v0 || cascade.casccosPA(collision.posX(), collision.posY(), collision.posZ()) < cascadecuts.cfg_min_cospa_cascade) { - continue; - } - - if (bachelor.sign() < 0) { // Xi- or Omega- - bool isTPCOK_pos = cascadecuts.cfg_min_TPCNsigmaPr < pos.tpcNSigmaPr() && pos.tpcNSigmaPr() < cascadecuts.cfg_max_TPCNsigmaPr; // proton - bool isTPCOK_neg = cascadecuts.cfg_min_TPCNsigmaPi < neg.tpcNSigmaPi() && neg.tpcNSigmaPi() < cascadecuts.cfg_max_TPCNsigmaPi; // pi- - bool isTOFOK_pos = pos.hasTOF() ? (pos.tofChi2() < v0cuts.cfg_max_chi2tof ? cascadecuts.cfg_min_TOFNsigmaPr < pos.tofNSigmaPr() && pos.tofNSigmaPr() < cascadecuts.cfg_max_TOFNsigmaPr : false) : true; // TOFif // proton - bool isTOFOK_neg = neg.hasTOF() ? (neg.tofChi2() < v0cuts.cfg_max_chi2tof ? cascadecuts.cfg_min_TOFNsigmaPi < neg.tofNSigmaPi() && neg.tofNSigmaPi() < cascadecuts.cfg_max_TOFNsigmaPi : false) : true; // TOFif // pi- - - if (isTPCOK_pos && isTPCOK_neg && isTOFOK_pos && isTOFOK_neg) { - - bool isPion_bach = bachelor.hasTOF() ? (bachelor.tofChi2() < v0cuts.cfg_max_chi2tof ? cascadecuts.cfg_min_TOFNsigmaPi < bachelor.tofNSigmaPi() && bachelor.tofNSigmaPi() < cascadecuts.cfg_max_TOFNsigmaPi : false) : true; // TOFif // pion - bool isXi = cascadecuts.cfg_min_mass_Xi < cascade.mXi() && cascade.mXi() < cascadecuts.cfg_max_mass_Xi; - if (isPion_bach) { - fRegistry.fill(HIST("Cascade/Xi/V0/hMass"), cascade.mLambda()); - fRegistry.fill(HIST("Cascade/Xi/V0/hRadius"), cascade.v0radius()); - fRegistry.fill(HIST("Cascade/Xi/V0/hPCA"), cascade.dcaV0daughters()); - fRegistry.fill(HIST("Cascade/Xi/V0/hCosPA"), cascade.v0cosPA(collision.posX(), collision.posY(), collision.posZ())); - - fRegistry.fill(HIST("Cascade/Xi/hMass"), cascade.mXi(), cascade.pt()); - fRegistry.fill(HIST("Cascade/Xi/hCosPA"), cascade.casccosPA(collision.posX(), collision.posY(), collision.posZ())); - fRegistry.fill(HIST("Cascade/Xi/hPCA"), cascade.dcacascdaughters()); - fRegistry.fill(HIST("Cascade/Xi/hRadius"), cascade.cascradius()); - if (isXi) { - fRegistry.fill(HIST("Cascade/Xi/Bachelor/hTOFbeta"), bachelor.p(), bachelor.beta()); - fRegistry.fill(HIST("Cascade/Xi/Bachelor/hTPCdEdx"), bachelor.tpcInnerParam(), bachelor.tpcSignal()); - fRegistry.fill(HIST("Cascade/Xi/Bachelor/hTPCNsigmaEl"), bachelor.tpcInnerParam(), bachelor.tpcNSigmaEl()); - fRegistry.fill(HIST("Cascade/Xi/Bachelor/hTPCNsigmaMu"), bachelor.tpcInnerParam(), bachelor.tpcNSigmaMu()); - fRegistry.fill(HIST("Cascade/Xi/Bachelor/hTPCNsigmaPi"), bachelor.tpcInnerParam(), bachelor.tpcNSigmaPi()); - fRegistry.fill(HIST("Cascade/Xi/Bachelor/hTPCNsigmaKa"), bachelor.tpcInnerParam(), bachelor.tpcNSigmaKa()); - fRegistry.fill(HIST("Cascade/Xi/Bachelor/hTPCNsigmaPr"), bachelor.tpcInnerParam(), bachelor.tpcNSigmaPr()); - } - } - - bool isKaon_bach = bachelor.hasTOF() ? (bachelor.tofChi2() < v0cuts.cfg_max_chi2tof ? cascadecuts.cfg_min_TOFNsigmaKa < bachelor.tofNSigmaKa() && bachelor.tofNSigmaKa() < cascadecuts.cfg_max_TOFNsigmaKa : false) : true; // TOFif // kaon - bool isOmega = cascadecuts.cfg_min_mass_Omega < cascade.mOmega() && cascade.mOmega() < cascadecuts.cfg_max_mass_Omega; - if (isKaon_bach) { - fRegistry.fill(HIST("Cascade/Omega/V0/hMass"), cascade.mLambda()); - fRegistry.fill(HIST("Cascade/Omega/V0/hRadius"), cascade.v0radius()); - fRegistry.fill(HIST("Cascade/Omega/V0/hPCA"), cascade.dcaV0daughters()); - fRegistry.fill(HIST("Cascade/Omega/V0/hCosPA"), cascade.v0cosPA(collision.posX(), collision.posY(), collision.posZ())); - - fRegistry.fill(HIST("Cascade/Omega/hMass"), cascade.mOmega(), cascade.pt()); - fRegistry.fill(HIST("Cascade/Omega/hCosPA"), cascade.casccosPA(collision.posX(), collision.posY(), collision.posZ())); - fRegistry.fill(HIST("Cascade/Omega/hPCA"), cascade.dcacascdaughters()); - fRegistry.fill(HIST("Cascade/Omega/hRadius"), cascade.cascradius()); - if (isOmega && !isXi) { - fRegistry.fill(HIST("Cascade/Omega/Bachelor/hTOFbeta"), bachelor.p(), bachelor.beta()); - fRegistry.fill(HIST("Cascade/Omega/Bachelor/hTPCdEdx"), bachelor.tpcInnerParam(), bachelor.tpcSignal()); - fRegistry.fill(HIST("Cascade/Omega/Bachelor/hTPCNsigmaEl"), bachelor.tpcInnerParam(), bachelor.tpcNSigmaEl()); - fRegistry.fill(HIST("Cascade/Omega/Bachelor/hTPCNsigmaMu"), bachelor.tpcInnerParam(), bachelor.tpcNSigmaMu()); - fRegistry.fill(HIST("Cascade/Omega/Bachelor/hTPCNsigmaPi"), bachelor.tpcInnerParam(), bachelor.tpcNSigmaPi()); - fRegistry.fill(HIST("Cascade/Omega/Bachelor/hTPCNsigmaKa"), bachelor.tpcInnerParam(), bachelor.tpcNSigmaKa()); - fRegistry.fill(HIST("Cascade/Omega/Bachelor/hTPCNsigmaPr"), bachelor.tpcInnerParam(), bachelor.tpcNSigmaPr()); - } - } - } - } else { // Xi+ or Omega+ - bool isTPCOK_neg = cascadecuts.cfg_min_TPCNsigmaPr < neg.tpcNSigmaPr() && neg.tpcNSigmaPr() < cascadecuts.cfg_max_TPCNsigmaPr; // anti-proton - bool isTPCOK_pos = cascadecuts.cfg_min_TPCNsigmaPi < pos.tpcNSigmaPi() && pos.tpcNSigmaPi() < cascadecuts.cfg_max_TPCNsigmaPi; // pi+ - bool isTOFOK_neg = neg.hasTOF() ? (neg.tofChi2() < v0cuts.cfg_max_chi2tof ? cascadecuts.cfg_min_TOFNsigmaPr < neg.tofNSigmaPr() && neg.tofNSigmaPr() < cascadecuts.cfg_max_TOFNsigmaPr : false) : true; // TOFif // anti-proton - bool isTOFOK_pos = pos.hasTOF() ? (pos.tofChi2() < v0cuts.cfg_max_chi2tof ? cascadecuts.cfg_min_TOFNsigmaPi < pos.tofNSigmaPi() && pos.tofNSigmaPi() < cascadecuts.cfg_max_TOFNsigmaPi : false) : true; // TOFif // pi+ - - if (isTPCOK_pos && isTPCOK_neg && isTOFOK_pos && isTOFOK_neg) { - - bool isPion_bach = bachelor.hasTOF() ? (bachelor.tofChi2() < v0cuts.cfg_max_chi2tof ? cascadecuts.cfg_min_TOFNsigmaPi < bachelor.tofNSigmaPi() && bachelor.tofNSigmaPi() < cascadecuts.cfg_max_TOFNsigmaPi : false) : true; // TOFif // pion - bool isXi = cascadecuts.cfg_min_mass_Xi < cascade.mXi() && cascade.mXi() < cascadecuts.cfg_max_mass_Xi; - if (isPion_bach) { - fRegistry.fill(HIST("Cascade/Xi/V0/hMass"), cascade.mLambda()); - fRegistry.fill(HIST("Cascade/Xi/V0/hRadius"), cascade.v0radius()); - fRegistry.fill(HIST("Cascade/Xi/V0/hPCA"), cascade.dcaV0daughters()); - fRegistry.fill(HIST("Cascade/Xi/V0/hCosPA"), cascade.v0cosPA(collision.posX(), collision.posY(), collision.posZ())); - - fRegistry.fill(HIST("Cascade/Xi/hMass"), cascade.mXi(), cascade.pt()); - fRegistry.fill(HIST("Cascade/Xi/hCosPA"), cascade.casccosPA(collision.posX(), collision.posY(), collision.posZ())); - fRegistry.fill(HIST("Cascade/Xi/hPCA"), cascade.dcacascdaughters()); - fRegistry.fill(HIST("Cascade/Xi/hRadius"), cascade.cascradius()); - if (isXi) { - fRegistry.fill(HIST("Cascade/Xi/Bachelor/hTOFbeta"), bachelor.p(), bachelor.beta()); - fRegistry.fill(HIST("Cascade/Xi/Bachelor/hTPCdEdx"), bachelor.tpcInnerParam(), bachelor.tpcSignal()); - fRegistry.fill(HIST("Cascade/Xi/Bachelor/hTPCNsigmaEl"), bachelor.tpcInnerParam(), bachelor.tpcNSigmaEl()); - fRegistry.fill(HIST("Cascade/Xi/Bachelor/hTPCNsigmaMu"), bachelor.tpcInnerParam(), bachelor.tpcNSigmaMu()); - fRegistry.fill(HIST("Cascade/Xi/Bachelor/hTPCNsigmaPi"), bachelor.tpcInnerParam(), bachelor.tpcNSigmaPi()); - fRegistry.fill(HIST("Cascade/Xi/Bachelor/hTPCNsigmaKa"), bachelor.tpcInnerParam(), bachelor.tpcNSigmaKa()); - fRegistry.fill(HIST("Cascade/Xi/Bachelor/hTPCNsigmaPr"), bachelor.tpcInnerParam(), bachelor.tpcNSigmaPr()); - } - } - - bool isKaon_bach = bachelor.hasTOF() ? (bachelor.tofChi2() < v0cuts.cfg_max_chi2tof ? cascadecuts.cfg_min_TOFNsigmaKa < bachelor.tofNSigmaKa() && bachelor.tofNSigmaKa() < cascadecuts.cfg_max_TOFNsigmaKa : false) : true; // TOFif // kaon - bool isOmega = cascadecuts.cfg_min_mass_Omega < cascade.mOmega() && cascade.mOmega() < cascadecuts.cfg_max_mass_Omega; - if (isKaon_bach) { - fRegistry.fill(HIST("Cascade/Omega/V0/hMass"), cascade.mLambda()); - fRegistry.fill(HIST("Cascade/Omega/V0/hRadius"), cascade.v0radius()); - fRegistry.fill(HIST("Cascade/Omega/V0/hPCA"), cascade.dcaV0daughters()); - fRegistry.fill(HIST("Cascade/Omega/V0/hCosPA"), cascade.v0cosPA(collision.posX(), collision.posY(), collision.posZ())); - fRegistry.fill(HIST("Cascade/Omega/hMass"), cascade.mOmega(), cascade.pt()); - fRegistry.fill(HIST("Cascade/Omega/hCosPA"), cascade.casccosPA(collision.posX(), collision.posY(), collision.posZ())); - fRegistry.fill(HIST("Cascade/Omega/hPCA"), cascade.dcacascdaughters()); - fRegistry.fill(HIST("Cascade/Omega/hRadius"), cascade.cascradius()); - if (isOmega && !isXi) { - fRegistry.fill(HIST("Cascade/Omega/Bachelor/hTOFbeta"), bachelor.p(), bachelor.beta()); - fRegistry.fill(HIST("Cascade/Omega/Bachelor/hTPCdEdx"), bachelor.tpcInnerParam(), bachelor.tpcSignal()); - fRegistry.fill(HIST("Cascade/Omega/Bachelor/hTPCNsigmaEl"), bachelor.tpcInnerParam(), bachelor.tpcNSigmaEl()); - fRegistry.fill(HIST("Cascade/Omega/Bachelor/hTPCNsigmaMu"), bachelor.tpcInnerParam(), bachelor.tpcNSigmaMu()); - fRegistry.fill(HIST("Cascade/Omega/Bachelor/hTPCNsigmaPi"), bachelor.tpcInnerParam(), bachelor.tpcNSigmaPi()); - fRegistry.fill(HIST("Cascade/Omega/Bachelor/hTPCNsigmaKa"), bachelor.tpcInnerParam(), bachelor.tpcNSigmaKa()); - fRegistry.fill(HIST("Cascade/Omega/Bachelor/hTPCNsigmaPr"), bachelor.tpcInnerParam(), bachelor.tpcNSigmaPr()); - } - } - } - } - } // end of cascade loop } // end of V0 PID } // end of collision loop } // end of process @@ -1370,14 +1007,14 @@ struct eventQC { void processEventQC(FilteredMyCollisions const& collisions, FilteredMyTracks const& tracks) { auto tracksWithITSPid = soa::Attach(tracks); - runQC(collisions, tracksWithITSPid, nullptr, nullptr, nullptr, nullptr); + runQC(collisions, tracksWithITSPid, nullptr, nullptr, nullptr); } PROCESS_SWITCH(eventQC, processEventQC, "event QC", true); void processEventQC_Cent_Qvec(FilteredMyCollisions_Qvec const& collisions, FilteredMyTracks const& tracks) { auto tracksWithITSPid = soa::Attach(tracks); - runQC(collisions, tracksWithITSPid, nullptr, nullptr, nullptr, nullptr); + runQC(collisions, tracksWithITSPid, nullptr, nullptr, nullptr); } PROCESS_SWITCH(eventQC, processEventQC_Cent_Qvec, "event QC + q vector", false); @@ -1385,10 +1022,10 @@ struct eventQC { Filter v0Filter = o2::aod::v0data::v0Type == uint8_t(1) && o2::aod::v0data::v0cosPA > v0cuts.cfg_min_cospa_v0hadron.value&& o2::aod::v0data::dcaV0daughters < v0cuts.cfg_max_pca_v0hadron.value; using filteredV0s = soa::Filtered; - void processEventQC_V0_PID(FilteredMyCollisions const& collisions, FilteredMyTracks const& tracks, aod::V0PhotonsKF const& v0photons, aod::V0Legs const& v0legs, filteredV0s const& v0strhadrons, aod::CascDatas const& cascades) + void processEventQC_V0_PID(FilteredMyCollisions const& collisions, FilteredMyTracks const& tracks, aod::V0PhotonsKF const& v0photons, aod::V0Legs const& v0legs, filteredV0s const& v0strhadrons) { auto tracksWithITSPid = soa::Attach(tracks); - runQC(collisions, tracksWithITSPid, v0photons, v0legs, v0strhadrons, cascades); + runQC(collisions, tracksWithITSPid, v0photons, v0legs, v0strhadrons); } PROCESS_SWITCH(eventQC, processEventQC_V0_PID, "event QC + V0 PID", false); };