From a6bf194257853f1bffad1c12cfc12678265b4aa2 Mon Sep 17 00:00:00 2001 From: Rosario Turrisi Date: Tue, 26 Jul 2022 09:33:53 +0000 Subject: [PATCH 1/3] Added histos with conditions pt>0.5, no primary pions --- DPG/Tasks/qaMatchEff.cxx | 229 +++++++++++++++++++++++++-------------- 1 file changed, 147 insertions(+), 82 deletions(-) diff --git a/DPG/Tasks/qaMatchEff.cxx b/DPG/Tasks/qaMatchEff.cxx index 66ec62defe3..b9254b2835c 100644 --- a/DPG/Tasks/qaMatchEff.cxx +++ b/DPG/Tasks/qaMatchEff.cxx @@ -9,9 +9,9 @@ // granted to it by virtue of its status as an Intergovernmental Organization // or submit itself to any jurisdiction. // -/// \brief A task for basic checks on track matching efficiency +/// \brief A task for basic checks on ITS-TPC track matching efficiency /// \author Rosario Turrisi (rosario.turrisi@pd.infn.it) -/// \since 1887 +/// \since 2022 #include "Framework/runDataProcessing.h" #include "Framework/AnalysisTask.h" @@ -50,13 +50,19 @@ struct qaMatchEff { // histo axes // // non uniform pt binning - std::vector ptBinning = {0.0, 0.05, 0.1, 0.15, 0.2, 0.25, 0.3, 0.35, 0.4, 0.45, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0}; + // std::vector ptBinning = {0.0, 0.05, 0.1, 0.15, 0.2, 0.25, 0.3, 0.35, 0.4, 0.45, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0}; + std::vector ptBinning = {0.0, 0.5, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0}; + // + // pdg codes histo + std::vector pdgBinning = {0.0, 110.0, 400.0, 1000.0, 2000.0, 3000.0, 4000.0, 5000.0, 6000.0, 10000.0, 100000.0, 1000000.0}; + // + AxisSpec axisPDG{pdgBinning, "PDG code"}; + // AxisSpec axisPt{ptBinning, "#it{p}_{T} (GeV/#it{c})"}; - // const AxisSpec axisPt{ptBins, ptMin, ptMax, "#it{p}_{T} (GeV/#it{c})"}; // - AxisSpec axisEta{etaBins, etaMin, etaMax, "#it{#eta}"}; + AxisSpec axisEta{etaBins, etaMin, etaMax, "#eta"}; AxisSpec axisPhi{phiBins, phiMin, phiMax, "#it{#varphi} (rad)"}; - AxisSpec axisDEta{etaBins, etaMin, etaMax, "D#it{#eta}"}; + AxisSpec axisDEta{etaBins, etaMin, etaMax, "D#eta"}; AxisSpec axisDPh{phiBins, -PI, PI, "D#it{#varphi} (rad)"}; // // Init function @@ -84,23 +90,31 @@ struct qaMatchEff { // data histos // tpc request and tpc+its request for all, positive and negative charges vs pt, phi, eta (18 histos tot) histos.add("data/pthist_tpc", "#it{p}_{T} distribution - data TPC tag", kTH1F, {axisPt}, true); - histos.add("data/etahist_tpc", "#it{#eta} distribution - data TPC tag", kTH1F, {axisEta}, true); - histos.add("data/phihist_tpc", "#it{#phi} distribution - data TPC tag", kTH1F, {axisPhi}, true); + histos.add("data/etahist_tpc", "#eta distribution - data TPC tag", kTH1F, {axisEta}, true); + histos.add("data/phihist_tpc", "#phi distribution - data TPC tag", kTH1F, {axisPhi}, true); histos.add("data/pthist_tpcits", "#it{p}_{T} distribution - data TPC+ITS tag", kTH1F, {axisPt}, true); - histos.add("data/etahist_tpcits", "#it{#eta} distribution - data TPC+ITS tag", kTH1F, {axisEta}, true); - histos.add("data/phihist_tpcits", "#it{#phi} distribution - data TPC+ITS tag", kTH1F, {axisPhi}, true); + histos.add("data/etahist_tpcits", "#eta distribution - data TPC+ITS tag", kTH1F, {axisEta}, true); + histos.add("data/phihist_tpcits", "#phi distribution - data TPC+ITS tag", kTH1F, {axisPhi}, true); histos.add("data/pthist_tpc_pos", "#it{p}_{T} distribution - data q>0 TPC tag", kTH1F, {axisPt}, true); - histos.add("data/etahist_tpc_pos", "#it{#eta} distribution - data q>0 TPC tag", kTH1F, {axisEta}, true); - histos.add("data/phihist_tpc_pos", "#it{#phi} distribution - data q>0 TPC tag", kTH1F, {axisPhi}, true); + histos.add("data/etahist_tpc_pos", "#eta distribution - data q>0 TPC tag", kTH1F, {axisEta}, true); + histos.add("data/phihist_tpc_pos", "#phi distribution - data q>0 TPC tag", kTH1F, {axisPhi}, true); histos.add("data/pthist_tpcits_pos", "#it{p}_{T} distribution - data q>0 TPC+ITS tag", kTH1F, {axisPt}, true); - histos.add("data/etahist_tpcits_pos", "#it{#eta} distribution - data q>0 TPC+ITS tag", kTH1F, {axisEta}, true); - histos.add("data/phihist_tpcits_pos", "#it{#phi} distribution - data q>0 TPC+ITS tag", kTH1F, {axisPhi}, true); + histos.add("data/etahist_tpcits_pos", "#eta distribution - data q>0 TPC+ITS tag", kTH1F, {axisEta}, true); + histos.add("data/phihist_tpcits_pos", "#phi distribution - data q>0 TPC+ITS tag", kTH1F, {axisPhi}, true); histos.add("data/pthist_tpc_neg", "#it{p}_{T} distribution - data q<0 TPC tag", kTH1F, {axisPt}, true); - histos.add("data/etahist_tpc_neg", "#it{#eta} distribution - data q<0 TPC tag", kTH1F, {axisEta}, true); - histos.add("data/phihist_tpc_neg", "#it{#phi} distribution - data q<0 TPC tag", kTH1F, {axisPhi}, true); + histos.add("data/etahist_tpc_neg", "#eta distribution - data q<0 TPC tag", kTH1F, {axisEta}, true); + histos.add("data/phihist_tpc_neg", "#phi distribution - data q<0 TPC tag", kTH1F, {axisPhi}, true); histos.add("data/pthist_tpcits_neg", "#it{p}_{T} distribution - data q<0 TPC+ITS tag", kTH1F, {axisPt}, true); - histos.add("data/etahist_tpcits_neg", "#it{#eta} distribution - data q<0 TPC+ITS tag", kTH1F, {axisEta}, true); - histos.add("data/phihist_tpcits_neg", "#it{#phi} distribution - data q<0 TPC+ITS tag", kTH1F, {axisPhi}, true); + histos.add("data/etahist_tpcits_neg", "#eta distribution - data q<0 TPC+ITS tag", kTH1F, {axisEta}, true); + histos.add("data/phihist_tpcits_neg", "#phi distribution - data q<0 TPC+ITS tag", kTH1F, {axisPhi}, true); + // + // pt>0.5 GeV/c threshold + histos.add("data/pthist_tpc_05", "#it{p}_{T} distribution - data TPC tag, #it{p}_{T}>0.5", kTH1F, {axisPt}, true); + histos.add("data/etahist_tpc_05", "#eta distribution - data TPC tag, #it{p}_{T}>0.5", kTH1F, {axisEta}, true); + histos.add("data/phihist_tpc_05", "#phi distribution - data TPC tag, #it{p}_{T}>0.5", kTH1F, {axisPhi}, true); + histos.add("data/pthist_tpcits_05", "#it{p}_{T} distribution - data TPC+ITS tag #it{p}_{T}>0.5", kTH1F, {axisPt}, true); + histos.add("data/etahist_tpcits_05", "#eta distribution - data TPC+ITS tag #it{p}_{T}>0.5", kTH1F, {axisEta}, true); + histos.add("data/phihist_tpcits_05", "#phi distribution - data TPC+ITS tag #it{p}_{T}>0.5", kTH1F, {axisPhi}, true); } // // Init MC function @@ -118,99 +132,119 @@ struct qaMatchEff { // // all, positive, negative histos.add("MC/pthist_tpc", "#it{p}_{T} distribution - MC TPC tag", kTH1F, {axisPt}, true); - histos.add("MC/etahist_tpc", "#it{#eta} distribution - MC TPC tag", kTH1F, {axisEta}, true); - histos.add("MC/phihist_tpc", "#it{#phi} distribution - MC TPC tag", kTH1F, {axisPhi}, true); + histos.add("MC/etahist_tpc", "#eta distribution - MC TPC tag", kTH1F, {axisEta}, true); + histos.add("MC/phihist_tpc", "#phi distribution - MC TPC tag", kTH1F, {axisPhi}, true); histos.add("MC/pthist_tpcits", "#it{p}_{T} distribution - MC TPC+ITS tag", kTH1F, {axisPt}, true); - histos.add("MC/etahist_tpcits", "#it{#eta} distribution - MC TPC+ITS tag", kTH1F, {axisEta}, true); - histos.add("MC/phihist_tpcits", "#it{#phi} distribution - MC TPC+ITS tag", kTH1F, {axisPhi}, true); + histos.add("MC/etahist_tpcits", "#eta distribution - MC TPC+ITS tag", kTH1F, {axisEta}, true); + histos.add("MC/phihist_tpcits", "#phi distribution - MC TPC+ITS tag", kTH1F, {axisPhi}, true); histos.add("MC/pthist_tpc_pos", "#it{p}_{T} distribution - MC q>0 TPC tag", kTH1F, {axisPt}, true); - histos.add("MC/etahist_tpc_pos", "#it{#eta} distribution - MC q>0 TPC tag", kTH1F, {axisEta}, true); - histos.add("MC/phihist_tpc_pos", "#it{#phi} distribution - MC q>0 TPC tag", kTH1F, {axisPhi}, true); + histos.add("MC/etahist_tpc_pos", "#eta distribution - MC q>0 TPC tag", kTH1F, {axisEta}, true); + histos.add("MC/phihist_tpc_pos", "#phi distribution - MC q>0 TPC tag", kTH1F, {axisPhi}, true); histos.add("MC/pthist_tpcits_pos", "#it{p}_{T} distribution - MC q>0 TPC+ITS tag", kTH1F, {axisPt}, true); - histos.add("MC/etahist_tpcits_pos", "#it{#eta} distribution - MC q>0 TPC+ITS tag", kTH1F, {axisEta}, true); - histos.add("MC/phihist_tpcits_pos", "#it{#phi} distribution - MC q>0 TPC+ITS tag", kTH1F, {axisPhi}, true); + histos.add("MC/etahist_tpcits_pos", "#eta distribution - MC q>0 TPC+ITS tag", kTH1F, {axisEta}, true); + histos.add("MC/phihist_tpcits_pos", "#phi distribution - MC q>0 TPC+ITS tag", kTH1F, {axisPhi}, true); histos.add("MC/pthist_tpc_neg", "#it{p}_{T} distribution - MC q<0 TPC tag", kTH1F, {axisPt}, true); - histos.add("MC/etahist_tpc_neg", "#it{#eta} distribution - MC q<0 TPC tag", kTH1F, {axisEta}, true); - histos.add("MC/phihist_tpc_neg", "#it{#phi} distribution - MC q<0 TPC tag", kTH1F, {axisPhi}, true); + histos.add("MC/etahist_tpc_neg", "#eta distribution - MC q<0 TPC tag", kTH1F, {axisEta}, true); + histos.add("MC/phihist_tpc_neg", "#phi distribution - MC q<0 TPC tag", kTH1F, {axisPhi}, true); histos.add("MC/pthist_tpcits_neg", "#it{p}_{T} distribution - MC q<0 TPC+ITS tag", kTH1F, {axisPt}, true); - histos.add("MC/etahist_tpcits_neg", "#it{#eta} distribution - MC q<0 TPC+ITS tag", kTH1F, {axisEta}, true); - histos.add("MC/phihist_tpcits_neg", "#it{#phi} distribution - MC q<0 TPC+ITS tag", kTH1F, {axisPhi}, true); + histos.add("MC/etahist_tpcits_neg", "#eta distribution - MC q<0 TPC+ITS tag", kTH1F, {axisEta}, true); + histos.add("MC/phihist_tpcits_neg", "#phi distribution - MC q<0 TPC+ITS tag", kTH1F, {axisPhi}, true); // // primaries, secondaries histos.add("MC/pthist_tpc_prim", "#it{p}_{T} distribution - MC prim TPC tag", kTH1F, {axisPt}, true); - histos.add("MC/etahist_tpc_prim", "#it{#eta} distribution - MC prim TPC tag", kTH1F, {axisEta}, true); - histos.add("MC/phihist_tpc_prim", "#it{#phi} distribution - MC prim TPC tag", kTH1F, {axisPhi}, true); + histos.add("MC/etahist_tpc_prim", "#eta distribution - MC prim TPC tag", kTH1F, {axisEta}, true); + histos.add("MC/phihist_tpc_prim", "#phi distribution - MC prim TPC tag", kTH1F, {axisPhi}, true); histos.add("MC/pthist_tpcits_prim", "#it{p}_{T} distribution - MC prim TPC+ITS tag", kTH1F, {axisPt}, true); - histos.add("MC/etahist_tpcits_prim", "#it{#eta} distribution - MC prim TPC+ITS tag", kTH1F, {axisEta}, true); - histos.add("MC/phihist_tpcits_prim", "#it{#phi} distribution - MC prim TPC+ITS tag", kTH1F, {axisPhi}, true); + histos.add("MC/etahist_tpcits_prim", "#eta distribution - MC prim TPC+ITS tag", kTH1F, {axisEta}, true); + histos.add("MC/phihist_tpcits_prim", "#phi distribution - MC prim TPC+ITS tag", kTH1F, {axisPhi}, true); histos.add("MC/pthist_tpc_secd", "#it{p}_{T} distribution - MC dec. sec. TPC tag", kTH1F, {axisPt}, true); - histos.add("MC/etahist_tpc_secd", "#it{#eta} distribution - MC dec. sec. TPC tag", kTH1F, {axisEta}, true); - histos.add("MC/phihist_tpc_secd", "#it{#phi} distribution - MC dec. sec. TPC tag", kTH1F, {axisPhi}, true); + histos.add("MC/etahist_tpc_secd", "#eta distribution - MC dec. sec. TPC tag", kTH1F, {axisEta}, true); + histos.add("MC/phihist_tpc_secd", "#phi distribution - MC dec. sec. TPC tag", kTH1F, {axisPhi}, true); histos.add("MC/pthist_tpcits_secd", "#it{p}_{T} distribution - MC dec.sec. TPC+ITS tag", kTH1F, {axisPt}, true); - histos.add("MC/etahist_tpcits_secd", "#it{#eta} distribution - MC dec. sec. TPC+ITS tag", kTH1F, {axisEta}, true); - histos.add("MC/phihist_tpcits_secd", "#it{#phi} distribution - MC dec. sec. TPC+ITS tag", kTH1F, {axisPhi}, true); + histos.add("MC/etahist_tpcits_secd", "#eta distribution - MC dec. sec. TPC+ITS tag", kTH1F, {axisEta}, true); + histos.add("MC/phihist_tpcits_secd", "#phi distribution - MC dec. sec. TPC+ITS tag", kTH1F, {axisPhi}, true); histos.add("MC/pthist_tpc_secm", "#it{p}_{T} distribution - MC mat. sec. TPC tag", kTH1F, {axisPt}, true); - histos.add("MC/etahist_tpc_secm", "#it{#eta} distribution - MC mat. sec. TPC tag", kTH1F, {axisEta}, true); - histos.add("MC/phihist_tpc_secm", "#it{#phi} distribution - MC mat. sec. TPC tag", kTH1F, {axisPhi}, true); + histos.add("MC/etahist_tpc_secm", "#eta distribution - MC mat. sec. TPC tag", kTH1F, {axisEta}, true); + histos.add("MC/phihist_tpc_secm", "#phi distribution - MC mat. sec. TPC tag", kTH1F, {axisPhi}, true); histos.add("MC/pthist_tpcits_secm", "#it{p}_{T} distribution - MC mat.sec. TPC+ITS tag", kTH1F, {axisPt}, true); - histos.add("MC/etahist_tpcits_secm", "#it{#eta} distribution - MC mat. sec. TPC+ITS tag", kTH1F, {axisEta}, true); - histos.add("MC/phihist_tpcits_secm", "#it{#phi} distribution - MC mat. sec. TPC+ITS tag", kTH1F, {axisPhi}, true); + histos.add("MC/etahist_tpcits_secm", "#eta distribution - MC mat. sec. TPC+ITS tag", kTH1F, {axisEta}, true); + histos.add("MC/phihist_tpcits_secm", "#phi distribution - MC mat. sec. TPC+ITS tag", kTH1F, {axisPhi}, true); // // pions only // all - histos.add("MC/pthist_tpc_pi", "#it{p}_{T} distribution - {#pi} MC TPC tag", kTH1F, {axisPt}, true); - histos.add("MC/etahist_tpc_pi", "#it{#eta} distribution - {#pi} MC TPC tag", kTH1F, {axisEta}, true); - histos.add("MC/phihist_tpc_pi", "#it{#phi} distribution - {#pi} MC TPC tag", kTH1F, {axisPhi}, true); - histos.add("MC/pthist_tpcits_pi", "#it{p}_{T} distribution - {#pi} MC TPC+ITS tag", kTH1F, {axisPt}, true); - histos.add("MC/etahist_tpcits_pi", "#it{#eta} distribution - {#pi} MC TPC+ITS tag", kTH1F, {axisEta}, true); - histos.add("MC/phihist_tpcits_pi", "#it{#phi} distribution - {#pi} MC TPC+ITS tag", kTH1F, {axisPhi}, true); + histos.add("MC/pthist_tpc_pi", "#it{p}_{T} distribution - #pi MC TPC tag", kTH1F, {axisPt}, true); + histos.add("MC/etahist_tpc_pi", "#eta distribution - #pi MC TPC tag", kTH1F, {axisEta}, true); + histos.add("MC/phihist_tpc_pi", "#phi distribution - #pi MC TPC tag", kTH1F, {axisPhi}, true); + histos.add("MC/pthist_tpcits_pi", "#it{p}_{T} distribution - #pi MC TPC+ITS tag", kTH1F, {axisPt}, true); + histos.add("MC/etahist_tpcits_pi", "#eta distribution - #pi MC TPC+ITS tag", kTH1F, {axisEta}, true); + histos.add("MC/phihist_tpcits_pi", "#phi distribution - #pi MC TPC+ITS tag", kTH1F, {axisPhi}, true); // split in prim secd secm - histos.add("MC/pthist_tpc_pi_prim", "#it{p}_{T} distribution - {#pi} MC prim TPC tag", kTH1F, {axisPt}, true); - histos.add("MC/etahist_tpc_pi_prim", "#it{#eta} distribution - {#pi} MC prim TPC tag", kTH1F, {axisEta}, true); - histos.add("MC/phihist_tpc_pi_prim", "#it{#phi} distribution - {#pi} MC prim TPC tag", kTH1F, {axisPhi}, true); - histos.add("MC/pthist_tpcits_pi_prim", "#it{p}_{T} distribution - {#pi} MC prim TPC+ITS tag", kTH1F, {axisPt}, true); - histos.add("MC/etahist_tpcits_pi_prim", "#it{#eta} distribution - {#pi} MC prim TPC+ITS tag", kTH1F, {axisEta}, true); - histos.add("MC/phihist_tpcits_pi_prim", "#it{#phi} distribution - {#pi} MC prim TPC+ITS tag", kTH1F, {axisPhi}, true); - histos.add("MC/pthist_tpc_pi_secd", "#it{p}_{T} distribution - {#pi} MC dec. sec. TPC tag", kTH1F, {axisPt}, true); - histos.add("MC/etahist_tpc_pi_secd", "#it{#eta} distribution - {#pi} MC dec. sec. TPC tag", kTH1F, {axisEta}, true); - histos.add("MC/phihist_tpc_pi_secd", "#it{#phi} distribution - {#pi} MC dec. sec. TPC tag", kTH1F, {axisPhi}, true); - histos.add("MC/pthist_tpcits_pi_secd", "#it{p}_{T} distribution - {#pi} MC dec.sec. TPC+ITS tag", kTH1F, {axisPt}, true); - histos.add("MC/etahist_tpcits_pi_secd", "#it{#eta} distribution - {#pi} MC dec. sec. TPC+ITS tag", kTH1F, {axisEta}, true); - histos.add("MC/phihist_tpcits_pi_secd", "#it{#phi} distribution - {#pi} MC dec. sec. TPC+ITS tag", kTH1F, {axisPhi}, true); - histos.add("MC/pthist_tpc_pi_secm", "#it{p}_{T} distribution - {#pi} MC mat. sec. TPC tag", kTH1F, {axisPt}, true); - histos.add("MC/etahist_tpc_pi_secm", "#it{#eta} distribution - {#pi} MC mat. sec. TPC tag", kTH1F, {axisEta}, true); - histos.add("MC/phihist_tpc_pi_secm", "#it{#phi} distribution - {#pi} MC mat. sec. TPC tag", kTH1F, {axisPhi}, true); - histos.add("MC/pthist_tpcits_pi_secm", "#it{p}_{T} distribution - {#pi} MC mat.sec. TPC+ITS tag", kTH1F, {axisPt}, true); - histos.add("MC/etahist_tpcits_pi_secm", "#it{#eta} distribution - {#pi} MC mat. sec. TPC+ITS tag", kTH1F, {axisEta}, true); - histos.add("MC/phihist_tpcits_pi_secm", "#it{#phi} distribution - {#pi} MC mat. sec. TPC+ITS tag", kTH1F, {axisPhi}, true); + histos.add("MC/pthist_tpc_pi_prim", "#it{p}_{T} distribution - #pi MC prim TPC tag", kTH1F, {axisPt}, true); + histos.add("MC/etahist_tpc_pi_prim", "#eta distribution - #pi MC prim TPC tag", kTH1F, {axisEta}, true); + histos.add("MC/phihist_tpc_pi_prim", "#phi distribution - #pi MC prim TPC tag", kTH1F, {axisPhi}, true); + histos.add("MC/pthist_tpcits_pi_prim", "#it{p}_{T} distribution - #pi MC prim TPC+ITS tag", kTH1F, {axisPt}, true); + histos.add("MC/etahist_tpcits_pi_prim", "#eta distribution - #pi MC prim TPC+ITS tag", kTH1F, {axisEta}, true); + histos.add("MC/phihist_tpcits_pi_prim", "#phi distribution - #pi MC prim TPC+ITS tag", kTH1F, {axisPhi}, true); + histos.add("MC/pthist_tpc_pi_secd", "#it{p}_{T} distribution - #pi MC dec. sec. TPC tag", kTH1F, {axisPt}, true); + histos.add("MC/etahist_tpc_pi_secd", "#eta distribution - #pi MC dec. sec. TPC tag", kTH1F, {axisEta}, true); + histos.add("MC/phihist_tpc_pi_secd", "#phi distribution - #pi MC dec. sec. TPC tag", kTH1F, {axisPhi}, true); + histos.add("MC/pthist_tpcits_pi_secd", "#it{p}_{T} distribution - #pi MC dec.sec. TPC+ITS tag", kTH1F, {axisPt}, true); + histos.add("MC/etahist_tpcits_pi_secd", "#eta distribution - #pi MC dec. sec. TPC+ITS tag", kTH1F, {axisEta}, true); + histos.add("MC/phihist_tpcits_pi_secd", "#phi distribution - #pi MC dec. sec. TPC+ITS tag", kTH1F, {axisPhi}, true); + histos.add("MC/pthist_tpc_pi_secm", "#it{p}_{T} distribution - #pi MC mat. sec. TPC tag", kTH1F, {axisPt}, true); + histos.add("MC/etahist_tpc_pi_secm", "#eta distribution - #pi MC mat. sec. TPC tag", kTH1F, {axisEta}, true); + histos.add("MC/phihist_tpc_pi_secm", "#phi distribution - #pi MC mat. sec. TPC tag", kTH1F, {axisPhi}, true); + histos.add("MC/pthist_tpcits_pi_secm", "#it{p}_{T} distribution - #pi MC mat.sec. TPC+ITS tag", kTH1F, {axisPt}, true); + histos.add("MC/etahist_tpcits_pi_secm", "#eta distribution - #pi MC mat. sec. TPC+ITS tag", kTH1F, {axisEta}, true); + histos.add("MC/phihist_tpcits_pi_secm", "#phi distribution - #pi MC mat. sec. TPC+ITS tag", kTH1F, {axisPhi}, true); // protons only // all histos.add("MC/pthist_tpc_P", "#it{p}_{T} distribution - prot MC TPC tag", kTH1F, {axisPt}, true); - histos.add("MC/etahist_tpc_P", "#it{#eta} distribution - prot MC TPC tag", kTH1F, {axisEta}, true); - histos.add("MC/phihist_tpc_P", "#it{#phi} distribution - prot MC TPC tag", kTH1F, {axisPhi}, true); + histos.add("MC/etahist_tpc_P", "#eta distribution - prot MC TPC tag", kTH1F, {axisEta}, true); + histos.add("MC/phihist_tpc_P", "#phi distribution - prot MC TPC tag", kTH1F, {axisPhi}, true); histos.add("MC/pthist_tpcits_P", "#it{p}_{T} distribution - prot MC TPC+ITS tag", kTH1F, {axisPt}, true); - histos.add("MC/etahist_tpcits_P", "#it{#eta} distribution - prot MC TPC+ITS tag", kTH1F, {axisEta}, true); - histos.add("MC/phihist_tpcits_P", "#it{#phi} distribution - prot MC TPC+ITS tag", kTH1F, {axisPhi}, true); + histos.add("MC/etahist_tpcits_P", "#eta distribution - prot MC TPC+ITS tag", kTH1F, {axisEta}, true); + histos.add("MC/phihist_tpcits_P", "#phi distribution - prot MC TPC+ITS tag", kTH1F, {axisPhi}, true); // kaons only // all histos.add("MC/pthist_tpc_K", "#it{p}_{T} distribution - kaons MC TPC tag", kTH1F, {axisPt}, true); - histos.add("MC/etahist_tpc_K", "#it{#eta} distribution - kaons MC TPC tag", kTH1F, {axisEta}, true); - histos.add("MC/phihist_tpc_K", "#it{#phi} distribution - kaons MC TPC tag", kTH1F, {axisPhi}, true); + histos.add("MC/etahist_tpc_K", "#eta distribution - kaons MC TPC tag", kTH1F, {axisEta}, true); + histos.add("MC/phihist_tpc_K", "#phi distribution - kaons MC TPC tag", kTH1F, {axisPhi}, true); histos.add("MC/pthist_tpcits_K", "#it{p}_{T} distribution - kaons MC TPC+ITS tag", kTH1F, {axisPt}, true); - histos.add("MC/etahist_tpcits_K", "#it{#eta} distribution - kaons MC TPC+ITS tag", kTH1F, {axisEta}, true); - histos.add("MC/phihist_tpcits_K", "#it{#phi} distribution - kaons MC TPC+ITS tag", kTH1F, {axisPhi}, true); + histos.add("MC/etahist_tpcits_K", "#eta distribution - kaons MC TPC+ITS tag", kTH1F, {axisEta}, true); + histos.add("MC/phihist_tpcits_K", "#phi distribution - kaons MC TPC+ITS tag", kTH1F, {axisPhi}, true); // pions+kaons // all - histos.add("MC/pthist_tpc_piK", "#it{p}_{T} distribution - {#pi}+kaons MC TPC tag", kTH1F, {axisPt}, true); - histos.add("MC/etahist_tpc_piK", "#it{#eta} distribution - {#pi}+kaons MC TPC tag", kTH1F, {axisEta}, true); - histos.add("MC/phihist_tpc_piK", "#it{#phi} distribution - {#pi}+kaons MC TPC tag", kTH1F, {axisPhi}, true); - histos.add("MC/pthist_tpcits_piK", "#it{p}_{T} distribution - {#pi}+kaons MC TPC+ITS tag", kTH1F, {axisPt}, true); - histos.add("MC/etahist_tpcits_piK", "#it{#eta} distribution - {#pi}+kaons MC TPC+ITS tag", kTH1F, {axisEta}, true); - histos.add("MC/phihist_tpcits_piK", "#it{#phi} distribution - {#pi}+kaons MC TPC+ITS tag", kTH1F, {axisPhi}, true); + histos.add("MC/pthist_tpc_piK", "#it{p}_{T} distribution - #pi+kaons MC TPC tag", kTH1F, {axisPt}, true); + histos.add("MC/etahist_tpc_piK", "#eta distribution - #pi+kaons MC TPC tag", kTH1F, {axisEta}, true); + histos.add("MC/phihist_tpc_piK", "#phi distribution - #pi+kaons MC TPC tag", kTH1F, {axisPhi}, true); + histos.add("MC/pthist_tpcits_piK", "#it{p}_{T} distribution - #pi+kaons MC TPC+ITS tag", kTH1F, {axisPt}, true); + histos.add("MC/etahist_tpcits_piK", "#eta distribution - #pi+kaons MC TPC+ITS tag", kTH1F, {axisEta}, true); + histos.add("MC/phihist_tpcits_piK", "#phi distribution - #pi+kaons MC TPC+ITS tag", kTH1F, {axisPhi}, true); + // + // pt>0.5 GeV/c threshold + histos.add("MC/pthist_tpc_05", "#it{p}_{T} distribution - MC TPC tag, #it{p}_{T}>0.5", kTH1F, {axisPt}, true); + histos.add("MC/etahist_tpc_05", "#eta distribution - MC TPC tag, #it{p}_{T}>0.5", kTH1F, {axisEta}, true); + histos.add("MC/phihist_tpc_05", "#phi distribution - MC TPC tag, #it{p}_{T}>0.5", kTH1F, {axisPhi}, true); + histos.add("MC/pthist_tpcits_05", "#it{p}_{T} distribution - MC TPC+ITS tag, #it{p}_{T}>0.5", kTH1F, {axisPt}, true); + histos.add("MC/etahist_tpcits_05", "#eta distribution - MC TPC+ITS tag, #it{p}_{T}>0.5", kTH1F, {axisEta}, true); + histos.add("MC/phihist_tpcits_05", "#phi distribution - MC TPC+ITS tag, #it{p}_{T}>0.5", kTH1F, {axisPhi}, true); + // + // all but primary/secondary pions + histos.add("MC/pthist_tpc_nopi", "#it{p}_{T} distribution - MC TPC tag ! prim/secd #pi", kTH1F, {axisPt}, true); + histos.add("MC/etahist_tpc_nopi", "#eta distribution - MC TPC tag ! prim/secd #pi", kTH1F, {axisEta}, true); + histos.add("MC/phihist_tpc_nopi", "#phi distribution - MC TPC tag ! prim/secd #pi", kTH1F, {axisPhi}, true); + histos.add("MC/pthist_tpcits_nopi", "#it{p}_{T} distribution - MC TPC+ITS tag ! prim/secd #pi", kTH1F, {axisPt}, true); + histos.add("MC/etahist_tpcits_nopi", "#eta distribution - MC TPC+ITS tag ! prim/secd #pi", kTH1F, {axisEta}, true); + histos.add("MC/phihist_tpcits_nopi", "#phi distribution - MC TPC+ITS tag ! prim/secd #pi", kTH1F, {axisPhi}, true); // // extras: difference between reconstructed and MC truth for eta, phi - histos.add("MC/etahist_diff", "#it{#eta} difference track-MC ", kTH1F, {axisDEta}, true); - histos.add("MC/phihist_diff", "#it{#phi} difference track-MC", kTH1F, {axisDPh}, true); + histos.add("MC/etahist_diff", "#eta difference track-MC ", kTH1F, {axisDEta}, true); + histos.add("MC/phihist_diff", "#phi difference track-MC", kTH1F, {axisDPh}, true); + // + // hist sorting out PDG codes in wide bins + histos.add("MC/pdghist_num", "PDG code - when non primary/sec-d #pi TPC+ITS tag", kTH1F, {axisPDG}, true); + histos.add("MC/pdghist_den", "PDG code - when non primary/sec-d #pi TPC tag", kTH1F, {axisPDG}, true); } // // // // fill histos for TPC (all tracks) @@ -273,6 +307,20 @@ struct qaMatchEff { } // end if ITS } // end if TPC // + // all tracks with pt>0.5 + if (jT.pt()>0.5) { + if (jT.hasTPC()) { + histos.get(HIST("MC/pthist_tpc_05"))->Fill(jT.pt()); + histos.get(HIST("MC/phihist_tpc_05"))->Fill(jT.phi()); + histos.get(HIST("MC/etahist_tpc_05"))->Fill(jT.eta()); + if (jT.hasITS()) { + histos.get(HIST("MC/pthist_tpcits_05"))->Fill(jT.pt()); + histos.get(HIST("MC/phihist_tpcits_05"))->Fill(jT.phi()); + histos.get(HIST("MC/etahist_tpcits_05"))->Fill(jT.eta()); + } // end if ITS + } // end if TPC + } // end if pt > 0.5 + // // positive only if (jT.signed1Pt() > 0) { if (jT.hasTPC()) { @@ -420,6 +468,23 @@ struct qaMatchEff { // } // end pions only // + // no primary/sec-d pions + if (!((TMath::Abs(mcpart.pdgCode()) == 211) && (mcpart.isPhysicalPrimary())) && !((TMath::Abs(mcpart.pdgCode()) == 211) && (!mcpart.isPhysicalPrimary() && (mcpart.getProcess() == 4))) ) + { + if (jT.hasTPC()) { + histos.get(HIST("MC/pthist_tpc_nopi"))->Fill(jT.pt()); + histos.get(HIST("MC/phihist_tpc_nopi"))->Fill(jT.phi()); + histos.get(HIST("MC/etahist_tpc_nopi"))->Fill(jT.eta()); + histos.get(HIST("MC/pdghist_den"))->Fill(TMath::Abs(mcpart.pdgCode())); + if (jT.hasITS()) { + histos.get(HIST("MC/pthist_tpcits_nopi"))->Fill(jT.pt()); + histos.get(HIST("MC/phihist_tpcits_nopi"))->Fill(jT.phi()); + histos.get(HIST("MC/etahist_tpcits_nopi"))->Fill(jT.eta()); + histos.get(HIST("MC/pdghist_num"))->Fill(TMath::Abs(mcpart.pdgCode())); + } // end if ITS + } // end if TPC + } // end if not prim/sec-d pi + // // kaons only if (TMath::Abs(mcpart.pdgCode()) == 321) { if (jT.hasTPC()) { From 4874449fd972f5e2301dead2ccc0142329234749 Mon Sep 17 00:00:00 2001 From: Rosario Turrisi Date: Tue, 26 Jul 2022 18:28:10 +0000 Subject: [PATCH 2/3] Added histos with conditions: pt>0.5, no primary pions --- DPG/Tasks/qaMatchEff.cxx | 49 +++++++++++++++++++++++++++------------- 1 file changed, 33 insertions(+), 16 deletions(-) diff --git a/DPG/Tasks/qaMatchEff.cxx b/DPG/Tasks/qaMatchEff.cxx index b9254b2835c..8689da6c5dc 100644 --- a/DPG/Tasks/qaMatchEff.cxx +++ b/DPG/Tasks/qaMatchEff.cxx @@ -47,16 +47,16 @@ struct qaMatchEff { // histos bins Configurable etaBins{"eta-bins", 40, "Number of eta bins"}; Configurable phiBins{"phi-bins", 18, "Number of phi bins"}; + // + // special histo, few particles explicitly stored, then pdg>3000 + Configurable pdgBins{"pdg-bins", 14, "Number of pdg values counted"}; + // // histo axes // // non uniform pt binning - // std::vector ptBinning = {0.0, 0.05, 0.1, 0.15, 0.2, 0.25, 0.3, 0.35, 0.4, 0.45, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0}; - std::vector ptBinning = {0.0, 0.5, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0}; + std::vector ptBinning = {0.0, 0.05, 0.1, 0.15, 0.2, 0.25, 0.3, 0.35, 0.4, 0.45, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0}; // - // pdg codes histo - std::vector pdgBinning = {0.0, 110.0, 400.0, 1000.0, 2000.0, 3000.0, 4000.0, 5000.0, 6000.0, 10000.0, 100000.0, 1000000.0}; - // - AxisSpec axisPDG{pdgBinning, "PDG code"}; + AxisSpec axisPDG{pdgBins, 0, pdgBins+1.000, "pdgclass"}; // AxisSpec axisPt{ptBinning, "#it{p}_{T} (GeV/#it{c})"}; // @@ -65,6 +65,10 @@ struct qaMatchEff { AxisSpec axisDEta{etaBins, etaMin, etaMax, "D#eta"}; AxisSpec axisDPh{phiBins, -PI, PI, "D#it{#varphi} (rad)"}; // + // pdg codes vector + std::vector pdgChoice = {211, 213, 215, 217, 219, 221, 223, 321, 411, 521, 2212, 1114, 2214}; + // + // // Init function // void init(InitContext&) @@ -243,9 +247,11 @@ struct qaMatchEff { histos.add("MC/phihist_diff", "#phi difference track-MC", kTH1F, {axisDPh}, true); // // hist sorting out PDG codes in wide bins - histos.add("MC/pdghist_num", "PDG code - when non primary/sec-d #pi TPC+ITS tag", kTH1F, {axisPDG}, true); - histos.add("MC/pdghist_den", "PDG code - when non primary/sec-d #pi TPC tag", kTH1F, {axisPDG}, true); - } + histos.add("MC/pdghist_num", "PDG code - when non primary #pi TPC+ITS tag", kTH1F, {axisPDG}, true); + histos.add("MC/pdghist_den", "PDG code - when non primary #pi TPC tag", kTH1F, {axisPDG}, true); + + } // end initMC + // // // // // fill histos for TPC (all tracks) // void fillAllTPC(){ @@ -265,6 +271,9 @@ struct qaMatchEff { int count = 0; int countData = 0; int countNoMC = 0; + int tpPDGCode = 0; + std::vector::iterator itr_pdg; + float pdg_fill=0.0; // //////////////////////////////////////////////// PROCESS FUNCTIONS ////////////////////////////////////////////////// // @@ -281,6 +290,7 @@ struct qaMatchEff { continue; } auto mcpart = jT.mcParticle(); + tpPDGCode=TMath::Abs(mcpart.pdgCode()); if (mcpart.isPhysicalPrimary()) { histos.get(HIST("MC/etahist_diff"))->Fill(mcpart.eta() - jT.eta()); auto delta = mcpart.phi() - jT.phi(); @@ -395,7 +405,7 @@ struct qaMatchEff { } // end if secondaries from decay // // protons only - if (TMath::Abs(mcpart.pdgCode()) == 2212) { + if (tpPDGCode == 2212) { if (jT.hasTPC()) { histos.get(HIST("MC/pthist_tpc_P"))->Fill(jT.pt()); histos.get(HIST("MC/phihist_tpc_P"))->Fill(jT.phi()); @@ -409,7 +419,7 @@ struct qaMatchEff { } // // pions only - if (TMath::Abs(mcpart.pdgCode()) == 211) { + if (tpPDGCode == 211) { // // all tracks if (jT.hasTPC()) { @@ -469,24 +479,31 @@ struct qaMatchEff { } // end pions only // // no primary/sec-d pions - if (!((TMath::Abs(mcpart.pdgCode()) == 211) && (mcpart.isPhysicalPrimary())) && !((TMath::Abs(mcpart.pdgCode()) == 211) && (!mcpart.isPhysicalPrimary() && (mcpart.getProcess() == 4))) ) + if (!((tpPDGCode == 211) && (mcpart.isPhysicalPrimary()))) { + // gets the pdg code and finds its index in our vector + itr_pdg = std::find(pdgChoice.begin(), pdgChoice.end(), tpPDGCode); + if (itr_pdg != pdgChoice.cend()) + // index from zero, so increase by 1 to put in the right bin (and 0.5 not needed but just not to sit in the edge) + pdg_fill=(float)std::distance(pdgChoice.begin(), itr_pdg)+1.5; + else pdg_fill=-10.0; + // if (jT.hasTPC()) { histos.get(HIST("MC/pthist_tpc_nopi"))->Fill(jT.pt()); histos.get(HIST("MC/phihist_tpc_nopi"))->Fill(jT.phi()); histos.get(HIST("MC/etahist_tpc_nopi"))->Fill(jT.eta()); - histos.get(HIST("MC/pdghist_den"))->Fill(TMath::Abs(mcpart.pdgCode())); + histos.get(HIST("MC/pdghist_den"))->Fill(pdg_fill); if (jT.hasITS()) { histos.get(HIST("MC/pthist_tpcits_nopi"))->Fill(jT.pt()); histos.get(HIST("MC/phihist_tpcits_nopi"))->Fill(jT.phi()); histos.get(HIST("MC/etahist_tpcits_nopi"))->Fill(jT.eta()); - histos.get(HIST("MC/pdghist_num"))->Fill(TMath::Abs(mcpart.pdgCode())); + histos.get(HIST("MC/pdghist_num"))->Fill(pdg_fill); } // end if ITS } // end if TPC } // end if not prim/sec-d pi // // kaons only - if (TMath::Abs(mcpart.pdgCode()) == 321) { + if (tpPDGCode == 321) { if (jT.hasTPC()) { histos.get(HIST("MC/pthist_tpc_K"))->Fill(jT.pt()); histos.get(HIST("MC/phihist_tpc_K"))->Fill(jT.phi()); @@ -500,7 +517,7 @@ struct qaMatchEff { } // // pions and kaons together - if (TMath::Abs(mcpart.pdgCode()) == 211 || TMath::Abs(mcpart.pdgCode()) == 321) { + if (tpPDGCode == 211 || tpPDGCode == 321) { if (jT.hasTPC()) { histos.get(HIST("MC/pthist_tpc_piK"))->Fill(jT.pt()); histos.get(HIST("MC/phihist_tpc_piK"))->Fill(jT.phi()); From 36a1f7e75a1951e25d2e6c67da567afb504b6aca Mon Sep 17 00:00:00 2001 From: Rosario Turrisi Date: Tue, 26 Jul 2022 18:43:23 +0000 Subject: [PATCH 3/3] corrected clang-format issue --- DPG/Tasks/qaMatchEff.cxx | 78 ++++++++++++++++++++-------------------- 1 file changed, 39 insertions(+), 39 deletions(-) diff --git a/DPG/Tasks/qaMatchEff.cxx b/DPG/Tasks/qaMatchEff.cxx index 8689da6c5dc..d3059e73963 100644 --- a/DPG/Tasks/qaMatchEff.cxx +++ b/DPG/Tasks/qaMatchEff.cxx @@ -56,7 +56,7 @@ struct qaMatchEff { // non uniform pt binning std::vector ptBinning = {0.0, 0.05, 0.1, 0.15, 0.2, 0.25, 0.3, 0.35, 0.4, 0.45, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0}; // - AxisSpec axisPDG{pdgBins, 0, pdgBins+1.000, "pdgclass"}; + AxisSpec axisPDG{pdgBins, 0, pdgBins + 1.000, "pdgclass"}; // AxisSpec axisPt{ptBinning, "#it{p}_{T} (GeV/#it{c})"}; // @@ -248,8 +248,8 @@ struct qaMatchEff { // // hist sorting out PDG codes in wide bins histos.add("MC/pdghist_num", "PDG code - when non primary #pi TPC+ITS tag", kTH1F, {axisPDG}, true); - histos.add("MC/pdghist_den", "PDG code - when non primary #pi TPC tag", kTH1F, {axisPDG}, true); - + histos.add("MC/pdghist_den", "PDG code - when non primary #pi TPC tag", kTH1F, {axisPDG}, true); + } // end initMC // // // @@ -273,7 +273,7 @@ struct qaMatchEff { int countNoMC = 0; int tpPDGCode = 0; std::vector::iterator itr_pdg; - float pdg_fill=0.0; + float pdg_fill = 0.0; // //////////////////////////////////////////////// PROCESS FUNCTIONS ////////////////////////////////////////////////// // @@ -290,7 +290,7 @@ struct qaMatchEff { continue; } auto mcpart = jT.mcParticle(); - tpPDGCode=TMath::Abs(mcpart.pdgCode()); + tpPDGCode = TMath::Abs(mcpart.pdgCode()); if (mcpart.isPhysicalPrimary()) { histos.get(HIST("MC/etahist_diff"))->Fill(mcpart.eta() - jT.eta()); auto delta = mcpart.phi() - jT.phi(); @@ -318,18 +318,18 @@ struct qaMatchEff { } // end if TPC // // all tracks with pt>0.5 - if (jT.pt()>0.5) { - if (jT.hasTPC()) { - histos.get(HIST("MC/pthist_tpc_05"))->Fill(jT.pt()); - histos.get(HIST("MC/phihist_tpc_05"))->Fill(jT.phi()); - histos.get(HIST("MC/etahist_tpc_05"))->Fill(jT.eta()); - if (jT.hasITS()) { - histos.get(HIST("MC/pthist_tpcits_05"))->Fill(jT.pt()); - histos.get(HIST("MC/phihist_tpcits_05"))->Fill(jT.phi()); - histos.get(HIST("MC/etahist_tpcits_05"))->Fill(jT.eta()); - } // end if ITS - } // end if TPC - } // end if pt > 0.5 + if (jT.pt() > 0.5) { + if (jT.hasTPC()) { + histos.get(HIST("MC/pthist_tpc_05"))->Fill(jT.pt()); + histos.get(HIST("MC/phihist_tpc_05"))->Fill(jT.phi()); + histos.get(HIST("MC/etahist_tpc_05"))->Fill(jT.eta()); + if (jT.hasITS()) { + histos.get(HIST("MC/pthist_tpcits_05"))->Fill(jT.pt()); + histos.get(HIST("MC/phihist_tpcits_05"))->Fill(jT.phi()); + histos.get(HIST("MC/etahist_tpcits_05"))->Fill(jT.eta()); + } // end if ITS + } // end if TPC + } // end if pt > 0.5 // // positive only if (jT.signed1Pt() > 0) { @@ -479,28 +479,28 @@ struct qaMatchEff { } // end pions only // // no primary/sec-d pions - if (!((tpPDGCode == 211) && (mcpart.isPhysicalPrimary()))) - { - // gets the pdg code and finds its index in our vector - itr_pdg = std::find(pdgChoice.begin(), pdgChoice.end(), tpPDGCode); - if (itr_pdg != pdgChoice.cend()) - // index from zero, so increase by 1 to put in the right bin (and 0.5 not needed but just not to sit in the edge) - pdg_fill=(float)std::distance(pdgChoice.begin(), itr_pdg)+1.5; - else pdg_fill=-10.0; - // - if (jT.hasTPC()) { - histos.get(HIST("MC/pthist_tpc_nopi"))->Fill(jT.pt()); - histos.get(HIST("MC/phihist_tpc_nopi"))->Fill(jT.phi()); - histos.get(HIST("MC/etahist_tpc_nopi"))->Fill(jT.eta()); - histos.get(HIST("MC/pdghist_den"))->Fill(pdg_fill); - if (jT.hasITS()) { - histos.get(HIST("MC/pthist_tpcits_nopi"))->Fill(jT.pt()); - histos.get(HIST("MC/phihist_tpcits_nopi"))->Fill(jT.phi()); - histos.get(HIST("MC/etahist_tpcits_nopi"))->Fill(jT.eta()); - histos.get(HIST("MC/pdghist_num"))->Fill(pdg_fill); - } // end if ITS - } // end if TPC - } // end if not prim/sec-d pi + if (!((tpPDGCode == 211) && (mcpart.isPhysicalPrimary()))) { + // gets the pdg code and finds its index in our vector + itr_pdg = std::find(pdgChoice.begin(), pdgChoice.end(), tpPDGCode); + if (itr_pdg != pdgChoice.cend()) + // index from zero, so increase by 1 to put in the right bin (and 0.5 not needed but just not to sit in the edge) + pdg_fill = (float)std::distance(pdgChoice.begin(), itr_pdg) + 1.5; + else + pdg_fill = -10.0; + // + if (jT.hasTPC()) { + histos.get(HIST("MC/pthist_tpc_nopi"))->Fill(jT.pt()); + histos.get(HIST("MC/phihist_tpc_nopi"))->Fill(jT.phi()); + histos.get(HIST("MC/etahist_tpc_nopi"))->Fill(jT.eta()); + histos.get(HIST("MC/pdghist_den"))->Fill(pdg_fill); + if (jT.hasITS()) { + histos.get(HIST("MC/pthist_tpcits_nopi"))->Fill(jT.pt()); + histos.get(HIST("MC/phihist_tpcits_nopi"))->Fill(jT.phi()); + histos.get(HIST("MC/etahist_tpcits_nopi"))->Fill(jT.eta()); + histos.get(HIST("MC/pdghist_num"))->Fill(pdg_fill); + } // end if ITS + } // end if TPC + } // end if not prim/sec-d pi // // kaons only if (tpPDGCode == 321) {