From 1e2080238a5326c683c47de6a845d74429ec217a Mon Sep 17 00:00:00 2001 From: Arvind Khuntia Date: Wed, 7 Aug 2024 20:57:08 +0200 Subject: [PATCH 01/13] [PWGJE] Task for the nuclei study with FastJet framework --- PWGJE/Tasks/CMakeLists.txt | 4 + PWGJE/Tasks/nucleiWithFastJet.cxx | 1501 +++++++++++++++++++++++++++++ 2 files changed, 1505 insertions(+) create mode 100644 PWGJE/Tasks/nucleiWithFastJet.cxx diff --git a/PWGJE/Tasks/CMakeLists.txt b/PWGJE/Tasks/CMakeLists.txt index 050decc2ba7..253e2b90c6c 100644 --- a/PWGJE/Tasks/CMakeLists.txt +++ b/PWGJE/Tasks/CMakeLists.txt @@ -132,6 +132,10 @@ if(FastJet_FOUND) SOURCES phiInJets.cxx PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::PWGJECore O2Physics::AnalysisCore COMPONENT_NAME Analysis) + o2physics_add_dpl_workflow(nuclei-with-fastjet + SOURCES nucleiWithFastJet.cxx + PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::PWGJECore O2Physics::AnalysisCore + COMPONENT_NAME Analysis) o2physics_add_dpl_workflow(jet-taggerhf-qa SOURCES jettaggerhfQA.cxx PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::PWGJECore O2Physics::AnalysisCore diff --git a/PWGJE/Tasks/nucleiWithFastJet.cxx b/PWGJE/Tasks/nucleiWithFastJet.cxx new file mode 100644 index 00000000000..0812b3cdcd3 --- /dev/null +++ b/PWGJE/Tasks/nucleiWithFastJet.cxx @@ -0,0 +1,1501 @@ +// Copyright 2019-2020 CERN and copyright holders of ALICE O2. +// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders. +// All rights not expressly granted are reserved. +// +// This software is distributed under the terms of the GNU General Public +// License v3 (GPL Version 3), copied verbatim in the file "COPYING". +// +// In applying this license CERN does not waive the privileges and immunities +// granted to it by virtue of its status as an Intergovernmental Organization +// or submit itself to any jurisdiction. + +// author: Arvind Khuntia (arvind.khuntia@cern.ch) INFN Bologna, Italy + +#include +#include + +#include "Framework/ASoA.h" +#include "Framework/AnalysisDataModel.h" +#include "Framework/AnalysisTask.h" +#include "Framework/HistogramRegistry.h" +#include "Framework/runDataProcessing.h" + +#include "Common/Core/RecoDecay.h" +#include "Common/Core/TrackSelection.h" +#include "Common/Core/TrackSelectionDefaults.h" +#include "Common/Core/trackUtilities.h" +#include "Common/DataModel/EventSelection.h" +#include "Common/DataModel/TrackSelectionTables.h" +#include "Common/DataModel/Multiplicity.h" +#include "Common/DataModel/PIDResponse.h" +#include "CommonConstants/PhysicsConstants.h" +#include "ReconstructionDataFormats/Track.h" +#include "PWGJE/Core/FastJetUtilities.h" +#include "PWGJE/Core/JetDerivedDataUtilities.h" +#include "PWGJE/DataModel/Jet.h" +#include "PWGJE/JetFinders/jetfinder.cxx" + +using namespace o2; +using namespace o2::framework; +using namespace o2::framework::expressions; +struct nucleiWithFastJet { + Configurable cfgeventSelections{"cfgeventSelections", "sel8", "choose event selection"}; + Configurable cfgtrackSelections{"cfgtrackSelections", "globalTracks", "set track selections"}; + + Configurable isMC{"isMC", false, "flag for the MC"}; + Configurable cfgtrkMinPt{"cfgtrkMinPt", 0.15, "set track min pT"}; + Configurable cfgtrkMaxEta{"cfgtrkMaxEta", 0.8, "set track max Eta"}; + Configurable cfgtrkMaxRap{"cfgtrkMaxRap", 0.5, "set track max y"}; + Configurable cfgMaxDCArToPVcut{"cfgMaxDCArToPVcut", 0.12, "Track DCAr cut to PV Maximum"}; + Configurable cfgMaxDCAzToPVcut{"cfgMaxDCAzToPVcut", 1.0, "Track DCAz cut to PV Maximum"}; + Configurable cfgPrimaryTrack{"cfgPrimaryTrack", true, "Primary track selection"}; + Configurable cfgConnectedToPV{"cfgConnectedToPV", true, "PV contributor track selection"}; // PV Contriuibutor + Configurable cfgGlobalWoDCATrack{"cfgGlobalWoDCATrack", true, "Global track selection without DCA"}; // kQualityTracks (kTrackType | kTPCNCls | kTPCCrossedRows | kTPCCrossedRowsOverNCls | kTPCChi2NDF | kTPCRefit | kITSNCls | kITSChi2NDF | kITSRefit | kITSHits) | kInAcceptanceTracks (kPtRange | kEtaRange) + Configurable cfgnFindableTPCClusters{"cfgnFindableTPCClusters", 120, "nFindable TPC Clusters"}; + Configurable cfgnTPCCrossedRows{"cfgnTPCCrossedRows", 70, "nCrossed TPC Rows"}; + Configurable cfgnTPCChi2{"cfgnTPChi2", 4.0, "nTPC Chi2 per Cluster"}; + Configurable cfgnITSChi2{"cfgnITShi2", 36.0, "nITS Chi2 per Cluster"}; + + Configurable cfgjetPtMin{"cfgjetPtMin", 5.0, "minimum jet pT cut"}; + Configurable cfgjetR{"cfgjetR", 0.4, "jet resolution parameter"}; + Configurable cDebugLevel{"cDebugLevel", 0, "print debug msg"}; + Configurable cMaxPt{"cMaxPt", 10, "max pt for Hist"}; + + Configurable cfgnTPCPIDPr{"cfgnTPCPIDPr", 3, "nTPC PID Pr"}; + Configurable cfgnTPCPIDDe{"cfgnTPCPIDDe", 3, "nTPC PID De"}; + Configurable cfgnTPCPIDHe{"cfgnTPCPIDHe", 3, "nTPC PID He"}; + Configurable cfgnTPCPIDTr{"cfgnTPCPIDTr", 3, "nTPC PID Tr"}; + + Configurable cEnableProtonQA{"cEnableProtonQA", true, "nTPC PID Pr"}; + Configurable cEnableDeuteronQA{"cEnableDeuteronQA", true, "nTPC PID De"}; + Configurable cEnableHeliumQA{"cEnableHeliumQA", true, "nTPC PID He"}; + Configurable cEnableTritonQA{"cEnableTritonQA", true, "nTPC PID Tr"}; + Configurable addTOFplots{"addTOFplots", true, "add TOF plots"}; + Configurable useTPCpreSel{"useTPCpreSel", 3, "add TPC nsgma preselection for TOF: (0) no selection (!0) selction on TPC"}; + + Configurable addpik{"addpik", true, "add pion and kaon hist"}; + + ConfigurableAxis binsDCA{"binsDCA", {400, -1.f, 1.f}, ""}; + ConfigurableAxis binsdEdx{"binsdEdx", {1000, 0.f, 1000.f}, ""}; + ConfigurableAxis binsBeta{"binsBeta", {120, 0.0, 1.2}, ""}; + + ConfigurableAxis binsMassPr{"binsMassPr", {100, -1., 1.f}, ""}; + ConfigurableAxis binsMassDe{"binsMassDe", {180, -1.8, 1.8f}, ""}; + ConfigurableAxis binsMassTr{"binsMassTr", {250, -2.5, 2.5f}, ""}; + ConfigurableAxis binsMassHe{"binsMassHe", {300, -3., 3.f}, ""}; + + ConfigurableAxis binsPtZHe{"binsPtZHe", {VARIABLE_WIDTH, 0.5, 0.625, 0.75, 0.875, 1.0, 1.125, 1.25, 1.375, 1.5, 1.625, 1.75, 1.875, 2.0, 2.25, 2.5, 3.0, 3.5, 4.0}, ""}; + + static constexpr float gMassProton = 0.93827208f; + static constexpr float gMassDeuteron = 1.87561f; + static constexpr float gMassTriton = 2.80892f; + static constexpr float gMassHelium = 2.80839f; + static constexpr int PDGProton = 2212; + static constexpr int PDGDeuteron = 1000010020; + static constexpr int PDGTriton = 1000010030; + static constexpr int PDGHelium = 1000020030; + + using EventCandidates = soa::Join; // , aod::CentFT0Ms, aod::CentFT0As, aod::CentFT0Cs + using TrackCandidates = soa::Join; + + using TrackCandidatesMC = soa::Join; + + Filter jetCuts = aod::jet::pt > cfgjetPtMin&& aod::jet::r == nround(cfgjetR.node() * 100.0f); + + using chargedJetstrack = soa::Filtered>; + using JetMCPartTable = soa::Filtered>; + using JetMCDetTable = soa::Filtered>; + + SliceCache cache; + HistogramRegistry jetHist{"jetHist", {}, OutputObjHandlingPolicy::AnalysisObject}; + + void init(o2::framework::InitContext&) + { + const AxisSpec PtAxis = {100, 0, 10.0}; + const AxisSpec PtJetAxis = {300, 0, 30.0}; + const AxisSpec MultAxis = {100, 0, 100}; + const AxisSpec dRAxis = {100, 0, 3.6}; + const AxisSpec dcaxyAxis{binsDCA, "DCAxy (cm)"}; + const AxisSpec dcazAxis{binsDCA, "DCAz (cm)"}; + const AxisSpec dedxAxis{binsdEdx, "d#it{E}/d#it{x} A.U."}; + + const AxisSpec betaAxis{binsBeta, "TOF #beta"}; + const AxisSpec ptZHeAxis{binsPtZHe, "#it{p}_{T}"}; + + const AxisSpec massPrAxis{binsMassPr, ""}; + const AxisSpec massDeAxis{binsMassDe, ""}; + const AxisSpec massTrAxis{binsMassTr, ""}; + const AxisSpec massHeAxis{binsMassHe, ""}; + + // jet property + jetHist.add("jet/h1JetPt", "jet_{p_{T}}", kTH1F, {PtJetAxis}); + jetHist.add("jet/h1JetEta", "jet_{#eta}", kTH1F, {{100, -1.0, 1.0}}); + jetHist.add("jet/h1JetPhi", "jet_{#phi}", kTH1F, {{80, -1.0, 7.}}); + jetHist.add("jet/nJetsPerEvent", "nJetsPerEvent", kTH1F, {{15, .0, 15.}}); + jetHist.add("mcpJet/nJetsPerEvent", "nJetsPerEvent", kTH1F, {{15, .0, 15.}}); + jetHist.add("mcdJet/nJetsPerEvent", "nJetsPerEvent", kTH1F, {{15, .0, 15.}}); + jetHist.add("jet/vertexZ", "vertexZ (Jet flag)", kTH1F, {{100, -15.0, 15.0}}); + jetHist.add("vertexZ", "vertexZ (all)", kTH1F, {{100, -15.0, 15.0}}); + jetHist.add("jetOut/vertexZ", "vertexZ (without z-flag)", kTH1F, {{100, -15.0, 15.0}}); + //////////////////////////// + // MC + //////////////////////////// + jetHist.add("mcpJet/eventStat", "vertexZ (All)", kTH1F, {{5, .0, 5.0}}); + auto h = jetHist.get(HIST("mcpJet/eventStat")); + h->GetXaxis()->SetBinLabel(1, "All"); + h->GetXaxis()->SetBinLabel(2, "Sel8-goodRecJet"); + h->GetXaxis()->SetBinLabel(3, "vz< 10"); + h->GetXaxis()->SetBinLabel(4, "ingt0"); + + jetHist.add("mcpJet/vertexZ", "vertexZ (All)", kTH1F, {{100, -15.0, 15.0}}); + jetHist.add("mcdJet/vertexZ", "vertexZ (All)", kTH1F, {{100, -15.0, 15.0}}); + jetHist.add("mcdJet/eventStat", "vertexZ (All)", kTH1F, {{5, .0, 5.0}}); + auto h1 = jetHist.get(HIST("mcdJet/eventStat")); + h1->GetXaxis()->SetBinLabel(1, "All"); + h1->GetXaxis()->SetBinLabel(2, "Sel8-goodRecJet"); + h1->GetXaxis()->SetBinLabel(3, "vz< 10"); + h1->GetXaxis()->SetBinLabel(4, "ingt0"); + + jetHist.add("recmatched/vertexZ", "vertexZ (All)", kTH1F, {{100, -15.0, 15.0}}); + jetHist.add("genmatched/vertexZ", "vertexZ (All)", kTH1F, {{100, -15.0, 15.0}}); + + ////////////////////////////////////////////// + // inside jet + ////////////////////////////////////////////// + if (addpik) { + jetHist.add("tracks/pion/h3PtVsPionNSigmaTPCVsPtJet_jet", "pT(p) vs NSigmaTPC (p) vs jet pT; #it{p}_{T} (GeV/#it{c}; NSigmaTPC; p^{jet}_{T}", HistType::kTH3F, {{PtAxis}, {200, -10, 10}, {PtJetAxis}}); + jetHist.add("tracks/antiPion/h3PtVsPionNSigmaTPCVsPtJet_jet", "pT(p) vs NSigmaTPC (p) vs jet pT; #it{p}_{T} (GeV/#it{c}; NSigmaTPC; p^{jet}_{T}", HistType::kTH3F, {{PtAxis}, {200, -10, 10}, {PtJetAxis}}); + jetHist.add("tracks/kaon/h3PtVsKaonNSigmaTPCVsPtJet_jet", "pT(p) vs NSigmaTPC (p) vs jet pT; #it{p}_{T} (GeV/#it{c}; NSigmaTPC; p^{jet}_{T}", HistType::kTH3F, {{PtAxis}, {200, -10, 10}, {PtJetAxis}}); + jetHist.add("tracks/antiKaon/h3PtVsKaonNSigmaTPCVsPtJet_jet", "pT(p) vs NSigmaTPC (p) vs jet pT; #it{p}_{T} (GeV/#it{c}; NSigmaTPC; p^{jet}_{T}", HistType::kTH3F, {{PtAxis}, {200, -10, 10}, {PtJetAxis}}); + } + jetHist.add("tracks/proton/h3PtVsProtonNSigmaTPCVsPtJet_jet", "pT(p) vs NSigmaTPC (p) vs jet pT; #it{p}_{T} (GeV/#it{c}; NSigmaTPC; p^{jet}_{T}", HistType::kTH3F, {{PtAxis}, {200, -10, 10}, {PtJetAxis}}); + jetHist.add("tracks/antiProton/h3PtVsantiProtonNSigmaTPCVsPtJet_jet", "pT(#bar{p}) vs NSigmaTPC (#bar{p}) vs jet pT; #it{p}_{T} (GeV/#it{c}; NSigmaTPC; p^{jet}_{T}", HistType::kTH3F, {{PtAxis}, {200, -10, 10}, {PtJetAxis}}); + jetHist.add("tracks/deuteron/h3PtVsDeuteronNSigmaTPCVsPtJet_jet", "pT(d) vs NSigmaTPC (d) vs jet pT; #it{p}_{T} (GeV/#it{c}; NSigmaTPC; p^{jet}_{T}", HistType::kTH3F, {{PtAxis}, {200, -10, 10}, {PtJetAxis}}); + jetHist.add("tracks/antiDeuteron/h3PtVsantiDeuteronNSigmaTPCVsPtJet_jet", "pT(#bar{d}) vs NSigmaTPC (#bar{d}) vs jet pT; #it{p}_{T} (GeV/#it{c}; NSigmaTPC; p^{jet}_{T}", HistType::kTH3F, {{PtAxis}, {200, -10, 10}, {PtJetAxis}}); + jetHist.add("tracks/helium/h3PtVsHeliumNSigmaTPCVsPtJet_jet", "pT(He) vs NSigmaTPC (He) vs jet pT; #it{p}_{T} (GeV/#it{c}; NSigmaTPC; p^{jet}_{T}", HistType::kTH3F, {{PtAxis}, {200, -10, 10}, {PtJetAxis}}); + jetHist.add("tracks/antiHelium/h3PtVsantiHeliumNSigmaTPCVsPtJet_jet", "pT(#bar{He}) vs NSigmaTPC (#bar{He}) vs jet pT; #it{p}_{T} (GeV/#it{c}; NSigmaTPC; p^{jet}_{T}", HistType::kTH3F, {{PtAxis}, {200, -10, 10}, {PtJetAxis}}); + jetHist.add("tracks/triton/h3PtVsTritonNSigmaTPCVsPtJet_jet", "pT(Tr) vs NSigmaTPC (Tr) vs jet pT; #it{p}_{T} (GeV/#it{c}; NSigmaTPC; p^{jet}_{T}", HistType::kTH3F, {{PtAxis}, {200, -10, 10}, {PtJetAxis}}); + jetHist.add("tracks/antiTriton/h3PtVsantiTritonNSigmaTPCVsPtJet_jet", "pT(#bar{Tr}) vs NSigmaTPC (#bar{Tr}) vs jet pT; #it{p}_{T} (GeV/#it{c}; NSigmaTPC; p^{jet}_{T}", HistType::kTH3F, {{PtAxis}, {200, -10, 10}, {PtJetAxis}}); + + if (cEnableProtonQA) { + jetHist.add("tracks/proton/dca/after/hDCAxyVsPtProton_jet", "DCAxy vs Pt (p)", HistType::kTH2F, {{dcaxyAxis}, {PtAxis}}); + jetHist.add("tracks/antiProton/dca/after/hDCAxyVsPtantiProton_jet", "DCAxy vs Pt (#bar{p})", HistType::kTH2F, {{dcaxyAxis}, {PtAxis}}); + jetHist.add("tracks/proton/dca/after/hDCAzVsPtProton_jet", "DCAz vs Pt (p)", HistType::kTH2F, {{dcazAxis}, {PtAxis}}); + jetHist.add("tracks/antiProton/dca/after/hDCAzVsPtantiProton_jet", "DCAz vs Pt (#bar{p})", HistType::kTH2F, {{dcazAxis}, {PtAxis}}); + } + + if (cEnableDeuteronQA) { + jetHist.add("tracks/deuteron/dca/after/hDCAxyVsPtDeuteron_jet", "DCAxy vs Pt (d)", HistType::kTH2F, {{dcaxyAxis}, {PtAxis}}); + jetHist.add("tracks/antiDeuteron/dca/after/hDCAxyVsPtantiDeuteron_jet", "DCAxy vs Pt (#bar{d})", HistType::kTH2F, {{dcaxyAxis}, {PtAxis}}); + jetHist.add("tracks/deuteron/dca/after/hDCAzVsPtDeuteron_jet", "DCAz vs Pt (d)", HistType::kTH2F, {{dcazAxis}, {PtAxis}}); + jetHist.add("tracks/antiDeuteron/dca/after/hDCAzVsPtantiDeuteron_jet", "DCAz vs Pt (#bar{d})", HistType::kTH2F, {{dcazAxis}, {PtAxis}}); + } + + if (cEnableTritonQA) { + jetHist.add("tracks/triton/dca/after/hDCAxyVsPtTriton_jet", "DCAxy vs Pt (t)", HistType::kTH2F, {{dcaxyAxis}, {PtAxis}}); + jetHist.add("tracks/antiTriton/dca/after/hDCAxyVsPtantiTriton_jet", "DCAxy vs Pt (#bar{t})", HistType::kTH2F, {{dcaxyAxis}, {PtAxis}}); + jetHist.add("tracks/triton/dca/after/hDCAzVsPtTriton_jet", "DCAz vs Pt (t)", HistType::kTH2F, {{dcazAxis}, {PtAxis}}); + jetHist.add("tracks/antiTriton/dca/after/hDCAzVsPtantiTriton_jet", "DCAz vs Pt (#bar{t})", HistType::kTH2F, {{dcazAxis}, {PtAxis}}); + } + if (cEnableHeliumQA) { + jetHist.add("tracks/helium/dca/after/hDCAxyVsPtHelium_jet", "DCAxy vs Pt (He)", HistType::kTH2F, {{dcaxyAxis}, {450, 0.5f, 5.f}}); + jetHist.add("tracks/antiHelium/dca/after/hDCAxyVsPtantiHelium_jet", "DCAxy vs Pt (#bar{He})", HistType::kTH2F, {{dcaxyAxis}, {450, 0.5f, 5.f}}); + jetHist.add("tracks/helium/dca/after/hDCAzVsPtHelium_jet", "DCAz vs Pt (He)", HistType::kTH2F, {{dcazAxis}, {450, 0.5f, 5.f}}); + jetHist.add("tracks/antiHelium/dca/after/hDCAzVsPtantiHelium_jet", "DCAz vs Pt (#bar{He})", HistType::kTH2F, {{dcazAxis}, {450, 0.5f, 5.f}}); + } + + jetHist.add("tracks/h2TPCsignVsTPCmomentum", "TPC <-dE/dX> vs #it{p}/Z; Signed #it{p} (GeV/#it{c}); TPC <-dE/dx> (a.u.)", HistType::kTH2F, {{500, -5.f, 5.f}, {dedxAxis}}); + jetHist.add("tracks/h2TPCsignVsTPCmomentum_Jet", "TPC <-dE/dX> vs #it{p}/Z; Signed #it{p} (GeV/#it{c}); TPC <-dE/dx> (a.u.)", HistType::kTH2F, {{500, -5.f, 5.f}, {dedxAxis}}); + jetHist.add("tracks/h2TPCsignVsTPCmomentum_OutJet", "TPC <-dE/dX> vs #it{p}/Z; Signed #it{p} (GeV/#it{c}); TPC <-dE/dx> (a.u.)", HistType::kTH2F, {{500, -5.f, 5.f}, {dedxAxis}}); + + jetHist.add("tracks/h2TOFbetaVsP_Jet", "TOF #beta vs #it{p}/Z; Signed #it{p} (GeV/#it{c}); TOF #beta", HistType::kTH2F, {{250, -5.f, 5.f}, {betaAxis}}); + jetHist.add("tracks/h2TOFbetaVsP_OutJet", "TOF #beta vs #it{p}/Z; Signed #it{p} (GeV/#it{c}); TOF #beta", HistType::kTH2F, {{250, -5.f, 5.f}, {betaAxis}}); + jetHist.add("tracks/h2TOFbetaVsP", "TOF #beta vs #it{p}/Z; Signed #it{p} (GeV/#it{c}); TOF #beta", HistType::kTH2F, {{250, -5.f, 5.f}, {betaAxis}}); + + // TOF hist + jetHist.add("tracks/proton/h2TOFmassProtonVsPt_jet", "h2TOFmassProtonVsPt_jet; TOFmass; #it{p}_{T} (GeV)", HistType::kTH2F, {{80, 0.4, 4.}, {50, 0., 5.}}); + jetHist.add("tracks/antiProton/h2TOFmassantiProtonVsPt_jet", "h2TOFmassantiProtonVsPt_jet; TOFmass; #it{p}_{T} (GeV)", HistType::kTH2F, {{80, 0.4, 4.}, {50, 0., 5.}}); + jetHist.add("tracks/proton/h2TOFmass2ProtonVsPt_jet", "#Delta M^{2} (t) vs #it{p}_{T}; TOFmass2; #it{p}_{T} (GeV)", HistType::kTH2F, {{massPrAxis}, {250, 0., 5.}}); + jetHist.add("tracks/antiProton/h2TOFmass2antiProtonVsPt_jet", "#Delta M^{2} (t) vs #it{p}_{T}; TOFmass2; #it{p}_{T} (GeV)", HistType::kTH2F, {{massPrAxis}, {250, 0., 5.}}); + + jetHist.add("tracks/deuteron/h2TOFmassDeuteronVsPt_jet", "h2TOFmassDeuteronVsPt_jet; TOFmass; #it{p}_{T} (GeV)", HistType::kTH2F, {{80, 0.4, 4.}, {50, 0., 5.}}); + jetHist.add("tracks/antiDeuteron/h2TOFmassantiDeuteronVsPt_jet", "h2TOFmassantiDeuteronVsPt_jet; TOFmass; #it{p}_{T} (GeV)", HistType::kTH2F, {{80, 0.4, 4.}, {50, 0., 5.}}); + jetHist.add("tracks/deuteron/h2TOFmass2DeuteronVsPt_jet", "#Delta M^{2} (t) vs #it{p}_{T}; TOFmass2; #it{p}_{T} (GeV)", HistType::kTH2F, {{massDeAxis}, {250, 0., 5.}}); + jetHist.add("tracks/antiDeuteron/h2TOFmass2antiDeuteronVsPt_jet", "#Delta M^{2} (t) vs #it{p}_{T}; TOFmass2; #it{p}_{T} (GeV)", HistType::kTH2F, {{massDeAxis}, {250, 0., 5.}}); + + jetHist.add("tracks/triton/h2TOFmassTritonVsPt_jet", "h2TOFmassTritonVsPt_jet; TOFmass; #it{p}_{T} (GeV)", HistType::kTH2F, {{80, 0.4, 4.}, {50, 0., 5.}}); + jetHist.add("tracks/antiTriton/h2TOFmassantiTritonVsPt_jet", "h2TOFmassantiTritonVsPt_jet; TOFmass; #it{p}_{T} (GeV)", HistType::kTH2F, {{80, 0.4, 4.}, {50, 0., 5.}}); + jetHist.add("tracks/triton/h2TOFmass2TritonVsPt_jet", "#Delta M^{2} (t) vs #it{p}_{T}; TOFmass2; #it{p}_{T} (GeV)", HistType::kTH2F, {{massTrAxis}, {250, 0., 5.}}); + jetHist.add("tracks/antiTriton/h2TOFmass2antiTritonVsPt_jet", "#Delta M^{2} (t) vs #it{p}_{T}; TOFmass2; #it{p}_{T} (GeV)", HistType::kTH2F, {{massTrAxis}, {250, 0., 5.}}); + + jetHist.add("tracks/helium/h2TOFmassHeliumVsPt_jet", "h2TOFmassHeliumVsPt_jet; TOFmass; #it{p}_{T}/z (GeV)", HistType::kTH2F, {{180, 0.4, 4.}, {ptZHeAxis}}); + jetHist.add("tracks/antiHelium/h2TOFmassantiHeliumVsPt_jet", "h2TOFmassantiHeliumVsPt_jet; TOFmass; #it{p}_{T}/z (GeV)", HistType::kTH2F, {{180, 0.4, 4.}, {ptZHeAxis}}); + jetHist.add("tracks/helium/h2TOFmass2HeliumVsPt_jet", "#Delta M^{2} (t) vs #it{p}_{T}t; TOFmass2; #it{p}_{T}/z (GeV)", HistType::kTH2F, {{massHeAxis}, {ptZHeAxis}}); + jetHist.add("tracks/antiHelium/h2TOFmass2antiHeliumVsPt_jet", "#Delta M^{2} (t) vs #it{p}_{T}; TOFmass2; #it{p}_{T}/z (GeV)", HistType::kTH2F, {{massHeAxis}, {ptZHeAxis}}); + + // TOF hist nSigma + if (addpik) { + jetHist.add("tracks/pion/h2TofNsigmaPionVsPt_jet", "h2TofNsigmaPionVsPt_jet; TofNsigma; #it{p}_{T} (GeV)", HistType::kTH2F, {{100, -5, 5}, {50, 0., 5.}}); + jetHist.add("tracks/antiPion/h2TofNsigmaantiPionVsPt_jet", "h2TofNsigmaantiPionVsPt_jet; TofNsigma; #it{p}_{T} (GeV)", HistType::kTH2F, {{100, -5, 5}, {50, 0., 5.}}); + jetHist.add("tracks/kaon/h2TofNsigmaKaonVsPt_jet", "h2TofNsigmaKaonVsPt_jet; TofNsigma; #it{p}_{T} (GeV)", HistType::kTH2F, {{100, -5, 5}, {50, 0., 5.}}); + jetHist.add("tracks/antiKaon/h2TofNsigmaantiKaonVsPt_jet", "h2TofNsigmaantiKaonVsPt_jet; TofNsigma; #it{p}_{T} (GeV)", HistType::kTH2F, {{100, -5, 5}, {50, 0., 5.}}); + } + jetHist.add("tracks/proton/h2TofNsigmaProtonVsPt_jet", "h2TofNsigmaProtonVsPt_jet; TofNsigma; #it{p}_{T} (GeV)", HistType::kTH2F, {{100, -5, 5}, {50, 0., 5.}}); + jetHist.add("tracks/antiProton/h2TofNsigmaantiProtonVsPt_jet", "h2TofNsigmaantiProtonVsPt_jet; TofNsigma; #it{p}_{T} (GeV)", HistType::kTH2F, {{100, -5, 5}, {50, 0., 5.}}); + jetHist.add("tracks/deuteron/h2TofNsigmaDeuteronVsPt_jet", "h2TofNsigmaDeuteronVsPt_jet; TofNsigma; #it{p}_{T} (GeV)", HistType::kTH2F, {{100, -5, 5}, {50, 0., 5.}}); + jetHist.add("tracks/antiDeuteron/h2TofNsigmaantiDeuteronVsPt_jet", "h2TofNsigmaantiDeuteronVsPt_jet; TofNsigma; #it{p}_{T} (GeV)", HistType::kTH2F, {{100, -5, 5}, {50, 0., 5.}}); + jetHist.add("tracks/triton/h2TofNsigmaTritonVsPt_jet", "h2TofNsigmaTritonVsPt_jet; TofNsigma; #it{p}_{T} (GeV)", HistType::kTH2F, {{100, -5, 5}, {50, 0., 5.}}); + jetHist.add("tracks/antiTriton/h2TofNsigmaantiTritonVsPt_jet", "h2TofNsigmaantiTritonVsPt_jet; TofNsigma; #it{p}_{T} (GeV)", HistType::kTH2F, {{100, -5, 5}, {50, 0., 5.}}); + jetHist.add("tracks/helium/h2TofNsigmaHeliumVsPt_jet", "h2TofNsigmaHeliumVsPt_jet; TofNsigma; #it{p}_{T}/z (GeV)", HistType::kTH2F, {{100, -5, 5}, {50, 0., 5.}}); + jetHist.add("tracks/antiHelium/h2TofNsigmaantiHeliumVsPt_jet", "h2TofNsigmaantiHeliumVsPt_jet; TofNsigma; #it{p}_{T}/z (GeV)", HistType::kTH2F, {{100, -5, 5}, {50, 0., 5.}}); + ////////////////////////////////////////////// + // outside jet + ////////////////////////////////////////////// + jetHist.add("tracks/proton/h3PtVsProtonNSigmaTPC", "pT(p) vs NSigmaTPC (p); #it{p}_{T} (GeV/#it{c}; NSigmaTPC;", HistType::kTH2F, {{PtAxis}, {200, -10, 10}}); + jetHist.add("tracks/antiProton/h3PtVsantiProtonNSigmaTPC", "pT(#bar{p}) vs NSigmaTPC (#bar{p}); #it{p}_{T} (GeV/#it{c}; NSigmaTPC;", HistType::kTH2F, {{PtAxis}, {200, -10, 10}}); + jetHist.add("tracks/deuteron/h3PtVsDeuteronNSigmaTPC", "pT(d) vs NSigmaTPC (d); #it{p}_{T} (GeV/#it{c}; NSigmaTPC;", HistType::kTH2F, {{PtAxis}, {200, -10, 10}}); + jetHist.add("tracks/antiDeuteron/h3PtVsantiDeuteronNSigmaTPC", "pT(#bar{d}) vs NSigmaTPC (#bar{d}); #it{p}_{T} (GeV/#it{c}; NSigmaTPC;", HistType::kTH2F, {{PtAxis}, {200, -10, 10}}); + jetHist.add("tracks/helium/h3PtVsHeliumNSigmaTPC", "pT(He) vs NSigmaTPC (He); #it{p}_{T} (GeV/#it{c}; NSigmaTPC;", HistType::kTH2F, {{PtAxis}, {200, -10, 10}}); + jetHist.add("tracks/antiHelium/h3PtVsantiHeliumNSigmaTPC", "pT(#bar{He}) vs NSigmaTPC (#bar{He}); #it{p}_{T} (GeV/#it{c}; NSigmaTPC;", HistType::kTH2F, {{PtAxis}, {200, -10, 10}}); + jetHist.add("tracks/triton/h3PtVsTritonNSigmaTPC", "pT(Tr) vs NSigmaTPC(Tr); #it{p}_{T} (GeV/#it{c}; NSigmaTPC;", HistType::kTH2F, {{PtAxis}, {200, -10, 10}}); + jetHist.add("tracks/antiTriton/h3PtVsantiTritonNSigmaTPC", "pT(#barTr}) vs NSigmaTPC (#bar{Tr}); #it{p}_{T} (GeV/#it{c}; NSigmaTPC;", HistType::kTH2F, {{PtAxis}, {200, -10, 10}}); + + if (cEnableProtonQA) { + jetHist.add("tracks/proton/dca/after/hDCAxyVsPtProton", "DCAxy vs Pt (p)", HistType::kTH2F, {{dcaxyAxis}, {PtAxis}}); + jetHist.add("tracks/antiProton/dca/after/hDCAxyVsPtantiProton", "DCAxy vs Pt (#bar{p})", HistType::kTH2F, {{dcaxyAxis}, {PtAxis}}); + jetHist.add("tracks/proton/dca/after/hDCAzVsPtProton", "DCAz vs Pt (p)", HistType::kTH2F, {{dcazAxis}, {PtAxis}}); + jetHist.add("tracks/antiProton/dca/after/hDCAzVsPtantiProton", "DCAz vs Pt (#bar{p})", HistType::kTH2F, {{dcazAxis}, {PtAxis}}); + } + if (cEnableDeuteronQA) { + jetHist.add("tracks/deuteron/dca/after/hDCAxyVsPtDeuteron", "DCAxy vs Pt (d)", HistType::kTH2F, {{dcaxyAxis}, {PtAxis}}); + jetHist.add("tracks/antiDeuteron/dca/after/hDCAxyVsPtantiDeuteron", "DCAxy vs Pt (#bar{d})", HistType::kTH2F, {{dcaxyAxis}, {PtAxis}}); + jetHist.add("tracks/deuteron/dca/after/hDCAzVsPtDeuteron", "DCAz vs Pt (d)", HistType::kTH2F, {{dcazAxis}, {PtAxis}}); + jetHist.add("tracks/antiDeuteron/dca/after/hDCAzVsPtantiDeuteron", "DCAz vs Pt (#bar{d})", HistType::kTH2F, {{dcazAxis}, {PtAxis}}); + } + if (cEnableTritonQA) { + jetHist.add("tracks/triton/dca/after/hDCAxyVsPtTriton", "DCAxy vs Pt (t)", HistType::kTH2F, {{dcaxyAxis}, {PtAxis}}); + jetHist.add("tracks/antiTriton/dca/after/hDCAxyVsPtantiTriton", "DCAxy vs Pt (#bar{t})", HistType::kTH2F, {{dcaxyAxis}, {PtAxis}}); + jetHist.add("tracks/triton/dca/after/hDCAzVsPtTriton", "DCAz vs Pt (t)", HistType::kTH2F, {{dcazAxis}, {PtAxis}}); + jetHist.add("tracks/antiTriton/dca/after/hDCAzVsPtantiTriton", "DCAz vs Pt (#bar{t})", HistType::kTH2F, {{dcazAxis}, {PtAxis}}); + } + if (cEnableHeliumQA) { + jetHist.add("tracks/helium/dca/after/hDCAxyVsPtHelium", "DCAxy vs Pt (He)", HistType::kTH2F, {{dcaxyAxis}, {450, 0.5f, 5.f}}); + jetHist.add("tracks/antiHelium/dca/after/hDCAxyVsPtantiHelium", "DCAxy vs Pt (#bar{He})", HistType::kTH2F, {{dcaxyAxis}, {450, 0.5f, 5.f}}); + jetHist.add("tracks/helium/dca/after/hDCAzVsPtHelium", "DCAz vs Pt (He)", HistType::kTH2F, {{dcazAxis}, {450, 0.5f, 5.f}}); + jetHist.add("tracks/antiHelium/dca/after/hDCAzVsPtantiHelium", "DCAz vs Pt (#bar{He})", HistType::kTH2F, {{dcazAxis}, {450, 0.5f, 5.f}}); + } + + // TOF hist #DeltaMass2 + jetHist.add("tracks/proton/h2TOFmassProtonVsPt", "h2TOFmassProtonVsPt; TOFmass; #it{p}_{T} (GeV)", HistType::kTH2F, {{80, 0.4, 4.}, {50, 0., 5.}}); + jetHist.add("tracks/antiProton/h2TOFmassantiProtonVsPt", "h2TOFmassantiProtonVsPt; TOFmass; #it{p}_{T} (GeV)", HistType::kTH2F, {{80, 0.4, 4.}, {50, 0., 5.}}); + jetHist.add("tracks/proton/h2TOFmass2ProtonVsPt", "#Delta M^{2} (t) vs #it{p}_{T}; TOFmass2; #it{p}_{T} (GeV)", HistType::kTH2F, {{massPrAxis}, {250, 0., 5.}}); + jetHist.add("tracks/antiProton/h2TOFmass2antiProtonVsPt", "#Delta M^{2} (t) vs #it{p}_{T}; TOFmass2; #it{p}_{T} (GeV)", HistType::kTH2F, {{massPrAxis}, {250, 0., 5.}}); + + jetHist.add("tracks/deuteron/h2TOFmassDeuteronVsPt", "h2TOFmassDeuteronVsPt; TOFmass; #it{p}_{T} (GeV)", HistType::kTH2F, {{80, 0.4, 4.}, {50, 0., 5.}}); + jetHist.add("tracks/antiDeuteron/h2TOFmassantiDeuteronVsPt", "h2TOFmassantiDeuteronVsPt; TOFmass; #it{p}_{T} (GeV)", HistType::kTH2F, {{80, 0.4, 4.}, {50, 0., 5.}}); + jetHist.add("tracks/deuteron/h2TOFmass2DeuteronVsPt", "#Delta M^{2} (t) vs #it{p}_{T}; TOFmass2; #it{p}_{T} (GeV)", HistType::kTH2F, {{massDeAxis}, {250, 0., 5.}}); + jetHist.add("tracks/antiDeuteron/h2TOFmass2antiDeuteronVsPt", "#Delta M^{2} (t) vs #it{p}_{T}; TOFmass2; #it{p}_{T} (GeV)", HistType::kTH2F, {{massDeAxis}, {250, 0., 5.}}); + + jetHist.add("tracks/triton/h2TOFmassTritonVsPt", "h2TOFmassTritonVsPt; TOFmass; #it{p}_{T} (GeV)", HistType::kTH2F, {{80, 0.4, 4.}, {50, 0., 5.}}); + jetHist.add("tracks/antiTriton/h2TOFmassantiTritonVsPt", "h2TOFmassantiTritonVsPt; TOFmass; #it{p}_{T} (GeV)", HistType::kTH2F, {{80, 0.4, 4.}, {50, 0., 5.}}); + jetHist.add("tracks/triton/h2TOFmass2TritonVsPt", "#Delta M^{2} (t) vs #it{p}_{T}; TOFmass2; #it{p}_{T} (GeV)", HistType::kTH2F, {{massTrAxis}, {250, 0., 5.}}); + jetHist.add("tracks/antiTriton/h2TOFmass2antiTritonVsPt", "#Delta M^{2} (t) vs #it{p}_{T}; TOFmass2; #it{p}_{T} (GeV)", HistType::kTH2F, {{massTrAxis}, {250, 0., 5.}}); + + jetHist.add("tracks/helium/h2TOFmassHeliumVsPt", "h2TOFmassHeliumVsPt; TOFmass; #it{p}_{T}/z (GeV)", HistType::kTH2F, {{180, 0.4, 4.}, {ptZHeAxis}}); + jetHist.add("tracks/antiHelium/h2TOFmassantiHeliumVsPt", "h2TOFmassantiHeliumVsPt; TOFmass; #it{p}_{T}/z (GeV)", HistType::kTH2F, {{180, 0.4, 4.}, {ptZHeAxis}}); + jetHist.add("tracks/helium/h2TOFmass2HeliumVsPt", "#Delta M^{2} (t) vs #it{p}_{T}t; TOFmass2; #it{p}_{T}/z (GeV)", HistType::kTH2F, {{massHeAxis}, {ptZHeAxis}}); + jetHist.add("tracks/antiHelium/h2TOFmass2antiHeliumVsPt", "#Delta M^{2} (t) vs #it{p}_{T}; TOFmass2; #it{p}_{T}/z (GeV)", HistType::kTH2F, {{massHeAxis}, {ptZHeAxis}}); + + // TOF hist nSigma + jetHist.add("tracks/proton/h2TofNsigmaProtonVsPt", "h2TofNsigmaProtonVsPt; TofNsigma; #it{p}_{T} (GeV)", HistType::kTH2F, {{100, -5, 5}, {50, 0., 5.}}); + jetHist.add("tracks/antiProton/h2TofNsigmaantiProtonVsPt", "h2TofNsigmaantiProtonVsPt; TofNsigma; #it{p}_{T} (GeV)", HistType::kTH2F, {{100, -5, 5}, {50, 0., 5.}}); + jetHist.add("tracks/deuteron/h2TofNsigmaDeuteronVsPt", "h2TofNsigmaDeuteronVsPt; TofNsigma; #it{p}_{T} (GeV)", HistType::kTH2F, {{100, -5, 5}, {50, 0., 5.}}); + jetHist.add("tracks/antiDeuteron/h2TofNsigmaantiDeuteronVsPt", "h2TofNsigmaantiDeuteronVsPt; TofNsigma; #it{p}_{T} (GeV)", HistType::kTH2F, {{100, -5, 5}, {50, 0., 5.}}); + jetHist.add("tracks/triton/h2TofNsigmaTritonVsPt", "h2TofNsigmaTritonVsPt; TofNsigma; #it{p}_{T} (GeV)", HistType::kTH2F, {{100, -5, 5}, {50, 0., 5.}}); + jetHist.add("tracks/antiTriton/h2TofNsigmaantiTritonVsPt", "h2TofNsigmaantiTritonVsPt; TofNsigma; #it{p}_{T} (GeV)", HistType::kTH2F, {{100, -5, 5}, {50, 0., 5.}}); + jetHist.add("tracks/helium/h2TofNsigmaHeliumVsPt", "h2TofNsigmaHeliumVsPt; TofNsigma; #it{p}_{T}/z (GeV)", HistType::kTH2F, {{100, -5, 5}, {50, 0., 5.}}); + jetHist.add("tracks/antiHelium/h2TofNsigmaantiHeliumVsPt", "h2TofNsigmaantiHeliumVsPt; TofNsigma; #it{p}_{T}/z (GeV)", HistType::kTH2F, {{100, -5, 5}, {50, 0., 5.}}); + + if (isMC) { + // inside jet + jetHist.add("tracks/mc/proton/h3PtVsProtonNSigmaTPCVsPtJet_jet", "pT(p) vs NSigmaTPC (p) vs jet pT; #it{p}_{T} (GeV/#it{c}; NSigmaTPC; p^{jet}_{T}", HistType::kTH3F, {{PtAxis}, {200, -10, 10}, {PtJetAxis}}); + jetHist.add("tracks/mc/antiProton/h3PtVsantiProtonNSigmaTPCVsPtJet_jet", "pT(#bar{p}) vs NSigmaTPC (#bar{p}) vs jet pT; #it{p}_{T} (GeV/#it{c}; NSigmaTPC; p^{jet}_{T}", HistType::kTH3F, {{PtAxis}, {200, -10, 10}, {PtJetAxis}}); + jetHist.add("tracks/mc/deuteron/h3PtVsDeuteronNSigmaTPCVsPtJet_jet", "pT(d) vs NSigmaTPC (d) vs jet pT; #it{p}_{T} (GeV/#it{c}; NSigmaTPC; p^{jet}_{T}", HistType::kTH3F, {{PtAxis}, {200, -10, 10}, {PtJetAxis}}); + jetHist.add("tracks/mc/antiDeuteron/h3PtVsantiDeuteronNSigmaTPCVsPtJet_jet", "pT(#bar{d}) vs NSigmaTPC (#bar{d}) vs jet pT; #it{p}_{T} (GeV/#it{c}; NSigmaTPC; p^{jet}_{T}", HistType::kTH3F, {{PtAxis}, {200, -10, 10}, {PtJetAxis}}); + jetHist.add("tracks/mc/helium/h3PtVsHeliumNSigmaTPCVsPtJet_jet", "pT(He) vs NSigmaTPC (He) vs jet pT; #it{p}_{T} (GeV/#it{c}; NSigmaTPC; p^{jet}_{T}", HistType::kTH3F, {{PtAxis}, {200, -10, 10}, {PtJetAxis}}); + jetHist.add("tracks/mc/antiHelium/h3PtVsantiHeliumNSigmaTPCVsPtJet_jet", "pT(#bar{He}) vs NSigmaTPC (#bar{He}) vs jet pT; #it{p}_{T} (GeV/#it{c}; NSigmaTPC; p^{jet}_{T}", HistType::kTH3F, {{PtAxis}, {200, -10, 10}, {PtJetAxis}}); + jetHist.add("tracks/mc/triton/h3PtVsTritonNSigmaTPCVsPtJet_jet", "pT(Tr) vs NSigmaTPC (Tr) vs jet pT; #it{p}_{T} (GeV/#it{c}; NSigmaTPC; p^{jet}_{T}", HistType::kTH3F, {{PtAxis}, {200, -10, 10}, {PtJetAxis}}); + jetHist.add("tracks/mc/antiTriton/h3PtVsantiTritonNSigmaTPCVsPtJet_jet", "pT(#bar{Tr}) vs NSigmaTPC (#bar{Tr}) vs jet pT; #it{p}_{T} (GeV/#it{c}; NSigmaTPC; p^{jet}_{T}", HistType::kTH3F, {{PtAxis}, {200, -10, 10}, {PtJetAxis}}); + + if (cEnableProtonQA) { + jetHist.add("tracks/proton/dca/before/hDCAxyVsPtProton_jet", "DCAxy vs Pt (p)", HistType::kTH2F, {{PtAxis}, {dcaxyAxis}}); + jetHist.add("tracks/antiProton/dca/before/hDCAxyVsPtantiProton_jet", "DCAxy vs Pt (#bar{p})", HistType::kTH2F, {{PtAxis}, {dcaxyAxis}}); + jetHist.add("tracks/proton/dca/before/hDCAzVsPtProton_jet", "DCAz vs Pt (p)", HistType::kTH2F, {{dcazAxis}, {PtAxis}}); + jetHist.add("tracks/antiProton/dca/before/hDCAzVsPtantiProton_jet", "DCAz vs Pt (#bar{p})", HistType::kTH2F, {{dcazAxis}, {PtAxis}}); + } + + if (cEnableDeuteronQA) { + jetHist.add("tracks/deuteron/dca/before/hDCAxyVsPtDeuteron_jet", "DCAxy vs Pt (d)", HistType::kTH2F, {{PtAxis}, {dcaxyAxis}}); + jetHist.add("tracks/antiDeuteron/dca/before/hDCAxyVsPtantiDeuteron_jet", "DCAxy vs Pt (#bar{d})", HistType::kTH2F, {{PtAxis}, {dcaxyAxis}}); + jetHist.add("tracks/deuteron/dca/before/hDCAzVsPtDeuteron_jet", "DCAz vs Pt (d)", HistType::kTH2F, {{dcazAxis}, {PtAxis}}); + jetHist.add("tracks/antiDeuteron/dca/before/hDCAzVsPtantiDeuteron_jet", "DCAz vs Pt (#bar{d})", HistType::kTH2F, {{dcazAxis}, {PtAxis}}); + } + + if (cEnableTritonQA) { + jetHist.add("tracks/triton/dca/before/hDCAxyVsPtTriton_jet", "DCAxy vs Pt (t)", HistType::kTH2F, {{PtAxis}, {dcaxyAxis}}); + jetHist.add("tracks/antiTriton/dca/before/hDCAxyVsPtantiTriton_jet", "DCAxy vs Pt (#bar{t})", HistType::kTH2F, {{PtAxis}, {dcaxyAxis}}); + jetHist.add("tracks/triton/dca/before/hDCAzVsPtTriton_jet", "DCAz vs Pt (t)", HistType::kTH2F, {{dcazAxis}, {PtAxis}}); + jetHist.add("tracks/antiTriton/dca/before/hDCAzVsPtantiTriton_jet", "DCAz vs Pt (#bar{t})", HistType::kTH2F, {{dcazAxis}, {PtAxis}}); + } + + if (cEnableHeliumQA) { + jetHist.add("tracks/helium/dca/before/hDCAxyVsPtHelium_jet", "DCAxy vs Pt (He)", HistType::kTH2F, {{dcaxyAxis}, {450, 0.5f, 5.f}}); + jetHist.add("tracks/antiHelium/dca/before/hDCAxyVsPtantiHelium_jet", "DCAxy vs Pt (#bar{He})", HistType::kTH2F, {{dcaxyAxis}, {450, 0.5f, 5.f}}); + jetHist.add("tracks/helium/dca/before/hDCAzVsPtHelium_jet", "DCAz vs Pt (He)", HistType::kTH2F, {{dcazAxis}, {450, 0.5f, 5.f}}); + jetHist.add("tracks/antiHelium/dca/before/hDCAzVsPtantiHelium_jet", "DCAz vs Pt (#bar{He})", HistType::kTH2F, {{dcazAxis}, {450, 0.5f, 5.f}}); + } + + // outside jet + if (cEnableProtonQA) { + jetHist.add("tracks/proton/dca/before/hDCAxyVsPtProton", "DCAxy vs Pt (p)", HistType::kTH2F, {{dcaxyAxis}, {PtAxis}}); + jetHist.add("tracks/antiProton/dca/before/hDCAxyVsPtantiProton", "DCAxy vs Pt (#bar{p})", HistType::kTH2F, {{dcaxyAxis}, {PtAxis}}); + jetHist.add("tracks/proton/dca/before/hDCAzVsPtProton", "DCAz vs Pt (p)", HistType::kTH2F, {{dcazAxis}, {PtAxis}}); + jetHist.add("tracks/antiProton/dca/before/hDCAzVsPtantiProton", "DCAz vs Pt (#bar{p})", HistType::kTH2F, {{dcazAxis}, {PtAxis}}); + } + + if (cEnableDeuteronQA) { + jetHist.add("tracks/deuteron/dca/before/hDCAxyVsPtDeuteron", "DCAxy vs Pt (d)", HistType::kTH2F, {{dcaxyAxis}, {PtAxis}}); + jetHist.add("tracks/antiDeuteron/dca/before/hDCAxyVsPtantiDeuteron", "DCAxy vs Pt (#bar{d})", HistType::kTH2F, {{dcaxyAxis}, {PtAxis}}); + jetHist.add("tracks/deuteron/dca/before/hDCAzVsPtDeuteron", "DCAz vs Pt (d)", HistType::kTH2F, {{dcazAxis}, {PtAxis}}); + jetHist.add("tracks/antiDeuteron/dca/before/hDCAzVsPtantiDeuteron", "DCAz vs Pt (#bar{d})", HistType::kTH2F, {{dcazAxis}, {PtAxis}}); + } + + if (cEnableTritonQA) { + jetHist.add("tracks/triton/dca/before/hDCAxyVsPtTriton", "DCAxy vs Pt (t)", HistType::kTH2F, {{dcaxyAxis}, {PtAxis}}); + jetHist.add("tracks/antiTriton/dca/before/hDCAxyVsPtantiTriton", "DCAxy vs Pt (#bar{t})", HistType::kTH2F, {{dcaxyAxis}, {PtAxis}}); + jetHist.add("tracks/triton/dca/before/hDCAzVsPtTriton", "DCAz vs Pt (t)", HistType::kTH2F, {{dcazAxis}, {PtAxis}}); + jetHist.add("tracks/antiTriton/dca/before/hDCAzVsPtantiTriton", "DCAz vs Pt (#bar{t})", HistType::kTH2F, {{dcazAxis}, {PtAxis}}); + } + + if (cEnableHeliumQA) { + jetHist.add("tracks/helium/dca/before/hDCAxyVsPtHelium", "DCAxy vs Pt (He)", HistType::kTH2F, {{450, 0.5f, 5.f}, {dcaxyAxis}}); + jetHist.add("tracks/antiHelium/dca/before/hDCAxyVsPtantiHelium", "DCAxy vs Pt (#bar{He})", HistType::kTH2F, {{450, 0.5f, 5.f}, {dcaxyAxis}}); + jetHist.add("tracks/helium/dca/before/hDCAzVsPtHelium", "DCAz vs Pt (He)", HistType::kTH2F, {{dcazAxis}, {450, 0.5f, 5.f}}); + jetHist.add("tracks/antiHelium/dca/before/hDCAzVsPtantiHelium", "DCAz vs Pt (#bar{He})", HistType::kTH2F, {{dcazAxis}, {450, 0.5f, 5.f}}); + } + + // PartilceJet-constituents + jetHist.add("mcpJet/proton/pt/PtProton", "Pt (p)", HistType::kTH1F, {{100, 0.f, 10.f}}); + jetHist.add("mcpJet/antiProton/pt/PtantiProton", "Pt (#bar{p})", HistType::kTH1F, {{100, 0.f, 10.f}}); + jetHist.add("mcpJet/deuteron/pt/PtDeuteron", "Pt (De)", HistType::kTH1F, {{100, 0.f, 10.f}}); + jetHist.add("mcpJet/antiDeuteron/pt/PtantiDeuteron", "Pt (#bar{De})", HistType::kTH1F, {{100, 0.f, 10.f}}); + jetHist.add("mcpJet/helium/pt/PtHelium", "Pt (He)", HistType::kTH1F, {{100, 0.f, 10.f}}); + jetHist.add("mcpJet/antiHelium/pt/PtantiHelium", "Pt (#bar{He})", HistType::kTH1F, {{100, 0.f, 10.f}}); + jetHist.add("mcpJet/triton/pt/PtTriton", "Pt (Tr)", HistType::kTH1F, {{100, 0.f, 10.f}}); + jetHist.add("mcpJet/antiTriton/pt/PtantiTriton", "Pt (#bar{Tr})", HistType::kTH1F, {{100, 0.f, 10.f}}); + + jetHist.add("mcpJet/proton/pt/PtProton_jet", "Pt (p)", HistType::kTH1F, {{100, 0.f, 10.f}}); + jetHist.add("mcpJet/antiProton/pt/PtantiProton_jet", "Pt (#bar{p})", HistType::kTH1F, {{100, 0.f, 10.f}}); + jetHist.add("mcpJet/deuteron/pt/PtDeuteron_jet", "Pt (De)", HistType::kTH1F, {{100, 0.f, 10.f}}); + jetHist.add("mcpJet/antiDeuteron/pt/PtantiDeuteron_jet", "Pt (#bar{De})", HistType::kTH1F, {{100, 0.f, 10.f}}); + jetHist.add("mcpJet/helium/pt/PtHelium_jet", "Pt (He)", HistType::kTH1F, {{100, 0.f, 10.f}}); + jetHist.add("mcpJet/antiHelium/pt/PtantiHelium_jet", "Pt (#bar{He})", HistType::kTH1F, {{100, 0.f, 10.f}}); + jetHist.add("mcpJet/triton/pt/PtTriton_jet", "Pt (Tr)", HistType::kTH1F, {{100, 0.f, 10.f}}); + jetHist.add("mcpJet/antiTriton/pt/PtantiTriton_jet", "Pt (#bar{Tr})", HistType::kTH1F, {{100, 0.f, 10.f}}); + + jetHist.add("mcpJet/proton/pt/PtProton_outJet", "Pt (p)", HistType::kTH1F, {{100, 0.f, 10.f}}); + jetHist.add("mcpJet/antiProton/pt/PtantiProton_outJet", "Pt (#bar{p})", HistType::kTH1F, {{100, 0.f, 10.f}}); + jetHist.add("mcpJet/deuteron/pt/PtDeuteron_outJet", "Pt (De)", HistType::kTH1F, {{100, 0.f, 10.f}}); + jetHist.add("mcpJet/antiDeuteron/pt/PtantiDeuteron_outJet", "Pt (#bar{De})", HistType::kTH1F, {{100, 0.f, 10.f}}); + jetHist.add("mcpJet/helium/pt/PtHelium_outJet", "Pt (He)", HistType::kTH1F, {{100, 0.f, 10.f}}); + jetHist.add("mcpJet/antiHelium/pt/PtantiHelium_outJet", "Pt (#bar{He})", HistType::kTH1F, {{100, 0.f, 10.f}}); + jetHist.add("mcpJet/triton/pt/PtTriton_outJet", "Pt (Tr)", HistType::kTH1F, {{100, 0.f, 10.f}}); + jetHist.add("mcpJet/antiTriton/pt/PtantiTriton_outJet", "Pt (#bar{Tr})", HistType::kTH1F, {{100, 0.f, 10.f}}); + + // detectorJet-constituents + jetHist.add("mcdJet/proton/pt/PtProton", "Pt (p)", HistType::kTH1F, {{100, 0.f, 10.f}}); + jetHist.add("mcdJet/antiProton/pt/PtantiProton", "Pt (#bar{p})", HistType::kTH1F, {{100, 0.f, 10.f}}); + jetHist.add("mcdJet/deuteron/pt/PtDeuteron", "Pt (De)", HistType::kTH1F, {{100, 0.f, 10.f}}); + jetHist.add("mcdJet/antiDeuteron/pt/PtantiDeuteron", "Pt (#bar{De})", HistType::kTH1F, {{100, 0.f, 10.f}}); + jetHist.add("mcdJet/helium/pt/PtHelium", "Pt (He)", HistType::kTH1F, {{100, 0.f, 10.f}}); + jetHist.add("mcdJet/antiHelium/pt/PtantiHelium", "Pt (#bar{He})", HistType::kTH1F, {{100, 0.f, 10.f}}); + jetHist.add("mcdJet/triton/pt/PtTriton", "Pt (Tr)", HistType::kTH1F, {{100, 0.f, 10.f}}); + jetHist.add("mcdJet/antiTriton/pt/PtantiTriton", "Pt (#bar{Tr})", HistType::kTH1F, {{100, 0.f, 10.f}}); + + jetHist.add("mcdJet/proton/pt/PtProton_jet", "Pt (p)", HistType::kTH1F, {{100, 0.f, 10.f}}); + jetHist.add("mcdJet/antiProton/pt/PtantiProton_jet", "Pt (#bar{p})", HistType::kTH1F, {{100, 0.f, 10.f}}); + jetHist.add("mcdJet/deuteron/pt/PtDeuteron_jet", "Pt (De)", HistType::kTH1F, {{100, 0.f, 10.f}}); + jetHist.add("mcdJet/antiDeuteron/pt/PtantiDeuteron_jet", "Pt (#bar{De})", HistType::kTH1F, {{100, 0.f, 10.f}}); + jetHist.add("mcdJet/helium/pt/PtHelium_jet", "Pt (He)", HistType::kTH1F, {{100, 0.f, 10.f}}); + jetHist.add("mcdJet/antiHelium/pt/PtantiHelium_jet", "Pt (#bar{He})", HistType::kTH1F, {{100, 0.f, 10.f}}); + jetHist.add("mcdJet/triton/pt/PtTriton_jet", "Pt (Tr)", HistType::kTH1F, {{100, 0.f, 10.f}}); + jetHist.add("mcdJet/antiTriton/pt/PtantiTriton_jet", "Pt (#bar{Tr})", HistType::kTH1F, {{100, 0.f, 10.f}}); + + jetHist.add("mcdJet/proton/pt/PtProton_outJet", "Pt (p)", HistType::kTH1F, {{100, 0.f, 10.f}}); + jetHist.add("mcdJet/antiProton/pt/PtantiProton_outJet", "Pt (#bar{p})", HistType::kTH1F, {{100, 0.f, 10.f}}); + jetHist.add("mcdJet/deuteron/pt/PtDeuteron_outJet", "Pt (De)", HistType::kTH1F, {{100, 0.f, 10.f}}); + jetHist.add("mcdJet/antiDeuteron/pt/PtantiDeuteron_outJet", "Pt (#bar{De})", HistType::kTH1F, {{100, 0.f, 10.f}}); + jetHist.add("mcdJet/helium/pt/PtHelium_outJet", "Pt (He)", HistType::kTH1F, {{100, 0.f, 10.f}}); + jetHist.add("mcdJet/antiHelium/pt/PtantiHelium_outJet", "Pt (#bar{He})", HistType::kTH1F, {{100, 0.f, 10.f}}); + jetHist.add("mcdJet/triton/pt/PtTriton_outJet", "Pt (Tr)", HistType::kTH1F, {{100, 0.f, 10.f}}); + jetHist.add("mcdJet/antiTriton/pt/PtantiTriton_outJet", "Pt (#bar{Tr})", HistType::kTH1F, {{100, 0.f, 10.f}}); + + jetHist.add("mcpJet/hJetPt", "Pt (jet)", HistType::kTH1F, {{100, 0.f, 50.f}}); + jetHist.add("mcpJet/hJetEta", "Eta (jet)", HistType::kTH1F, {{100, 1.5, 1.5}}); + jetHist.add("mcpJet/hJetPhi", "Phi (jet)", HistType::kTH1F, {{70, 0.f, 7.f}}); + + jetHist.add("mcdJet/hJetPt", "Pt (jet)", HistType::kTH1F, {{100, 0.f, 50.f}}); + jetHist.add("mcdJet/hJetEta", "Eta (jet)", HistType::kTH1F, {{100, 1.5, 1.5}}); + jetHist.add("mcdJet/hJetPhi", "Phi (jet)", HistType::kTH1F, {{70, 0.f, 7.f}}); + + // rec matched + jetHist.add("recmatched/hRecMatchedJetPt", "matched jet pT (Rec level);#it{p}_{T,jet part} (GeV/#it{c}); #it{p}_{T,jet part} - #it{p}_{T,jet det}", HistType::kTH2F, {{100, 0., 100.}, {400, -20., 20.}}); + jetHist.add("recmatched/hRecMatchedJetPhi", "matched jet #varphi (Rec level);#varphi_{T,jet part}; #varphi_{jet part}-#varphi_{jet det}", HistType::kTH2F, {{700, 0., 7.}, {200, -5., 5.}}); + jetHist.add("recmatched/hRecMatchedJetEta", "matched jet #eta (Rec level);#eta_{T,jet part}; #eta_{jet part}-#eta_{jet det} ", HistType::kTH2F, {{200, -1., 1.}, {500, -2.5, 2.5}}); + + jetHist.add("recmatched/h2ResponseMatrix", "matched jet pT;#it{p}_{T} (true); #it{p}_{T} (measured)", HistType::kTH2F, {{40, 0., 100.}, {40, 0., 100.}}); + ///////// + jetHist.add("recmatched/hRecJetPt", "matched jet pT (Rec level);#it{p}_{T,jet part} (GeV/#it{c}); #it{p}_{T,jet part} - #it{p}_{T,jet det}", HistType::kTH1F, {{100, 0., 100.}}); + jetHist.add("recmatched/hGenJetPt", "matched jet pT (Rec level);#it{p}_{T,jet part} (GeV/#it{c}); #it{p}_{T,jet part} - #it{p}_{T,jet det}", HistType::kTH1F, {{100, 0., 100.}}); + + jetHist.add("recmatched/proton/pt/PtProton", "Pt (p)", HistType::kTH1F, {{100, 0.f, 10.f}}); + jetHist.add("recmatched/antiProton/pt/PtantiProton", "Pt (#bar{p})", HistType::kTH1F, {{100, 0.f, 10.f}}); + jetHist.add("recmatched/deuteron/pt/PtDeuteron", "Pt (De)", HistType::kTH1F, {{100, 0.f, 10.f}}); + jetHist.add("recmatched/antiDeuteron/pt/PtantiDeuteron", "Pt (#bar{De})", HistType::kTH1F, {{100, 0.f, 10.f}}); + jetHist.add("recmatched/helium/pt/PtHelium", "Pt (He)", HistType::kTH1F, {{100, 0.f, 10.f}}); + jetHist.add("recmatched/antiHelium/pt/PtantiHelium", "Pt (#bar{He})", HistType::kTH1F, {{100, 0.f, 10.f}}); + jetHist.add("recmatched/triton/pt/PtTriton", "Pt (Tr)", HistType::kTH1F, {{100, 0.f, 10.f}}); + jetHist.add("recmatched/antiTriton/pt/PtantiTriton", "Pt (#bar{Tr})", HistType::kTH1F, {{100, 0.f, 10.f}}); + + jetHist.add("recmatched/proton/pt/PtProton_jet", "Pt (p)", HistType::kTH1F, {{100, 0.f, 10.f}}); + jetHist.add("recmatched/antiProton/pt/PtantiProton_jet", "Pt (#bar{p})", HistType::kTH1F, {{100, 0.f, 10.f}}); + jetHist.add("recmatched/deuteron/pt/PtDeuteron_jet", "Pt (De)", HistType::kTH1F, {{100, 0.f, 10.f}}); + jetHist.add("recmatched/antiDeuteron/pt/PtantiDeuteron_jet", "Pt (#bar{De})", HistType::kTH1F, {{100, 0.f, 10.f}}); + jetHist.add("recmatched/helium/pt/PtHelium_jet", "Pt (He)", HistType::kTH1F, {{100, 0.f, 10.f}}); + jetHist.add("recmatched/antiHelium/pt/PtantiHelium_jet", "Pt (#bar{He})", HistType::kTH1F, {{100, 0.f, 10.f}}); + jetHist.add("recmatched/triton/pt/PtTriton_jet", "Pt (Tr)", HistType::kTH1F, {{100, 0.f, 10.f}}); + jetHist.add("recmatched/antiTriton/pt/PtantiTriton_jet", "Pt (#bar{Tr})", HistType::kTH1F, {{100, 0.f, 10.f}}); + + jetHist.add("recmatched/proton/pt/PtProton_outJet", "Pt (p)", HistType::kTH1F, {{100, 0.f, 10.f}}); + jetHist.add("recmatched/antiProton/pt/PtantiProton_outJet", "Pt (#bar{p})", HistType::kTH1F, {{100, 0.f, 10.f}}); + jetHist.add("recmatched/deuteron/pt/PtDeuteron_outJet", "Pt (De)", HistType::kTH1F, {{100, 0.f, 10.f}}); + jetHist.add("recmatched/antiDeuteron/pt/PtantiDeuteron_outJet", "Pt (#bar{De})", HistType::kTH1F, {{100, 0.f, 10.f}}); + jetHist.add("recmatched/helium/pt/PtHelium_outJet", "Pt (He)", HistType::kTH1F, {{100, 0.f, 10.f}}); + jetHist.add("recmatched/antiHelium/pt/PtantiHelium_outJet", "Pt (#bar{He})", HistType::kTH1F, {{100, 0.f, 10.f}}); + jetHist.add("recmatched/triton/pt/PtTriton_outJet", "Pt (Tr)", HistType::kTH1F, {{100, 0.f, 10.f}}); + jetHist.add("recmatched/antiTriton/pt/PtantiTriton_outJet", "Pt (#bar{Tr})", HistType::kTH1F, {{100, 0.f, 10.f}}); + + // gen matched + jetHist.add("genmatched/hRecMatchedJetPt", "matched jet pT (Rec level);#it{p}_{T,jet part} (GeV/#it{c}); #it{p}_{T,jet part} - #it{p}_{T,jet det}", HistType::kTH2F, {{100, 0., 100.}, {400, -20., 20.}}); + jetHist.add("genmatched/hRecMatchedJetPhi", "matched jet #varphi (Rec level);#varphi_{T,jet part}; #varphi_{jet part}-#varphi_{jet det}", HistType::kTH2F, {{700, 0., 7.}, {200, -5., 5.}}); + jetHist.add("genmatched/hRecMatchedJetEta", "matched jet #eta (Rec level);#eta_{T,jet part}; #eta_{jet part}-#eta_{jet det} ", HistType::kTH2F, {{200, -1., 1.}, {500, -2.5, 2.5}}); + + ///////// + jetHist.add("genmatched/hRecJetPt", "matched jet pT (Rec level);#it{p}_{T,jet part} (GeV/#it{c}); #it{p}_{T,jet part} - #it{p}_{T,jet det}", HistType::kTH1F, {{100, 0., 100.}}); + jetHist.add("genmatched/hGenJetPt", "matched jet pT (Rec level);#it{p}_{T,jet part} (GeV/#it{c}); #it{p}_{T,jet part} - #it{p}_{T,jet det}", HistType::kTH1F, {{100, 0., 100.}}); + jetHist.add("genmatched/hRecJetWithGenPt", "matched jet pT (Rec level);#it{p}_{T,jet part} (GeV/#it{c}); #it{p}_{T,jet part} - #it{p}_{T,jet det}", HistType::kTH1F, {{100, 0., 100.}}); + jetHist.add("genmatched/hGenJetPtMatched", "matched jet pT (Rec level);#it{p}_{T,jet part} (GeV/#it{c}); #it{p}_{T,jet part} - #it{p}_{T,jet det}", HistType::kTH1F, {{100, 0., 100.}}); + + jetHist.add("genmatched/proton/pt/PtProton", "Pt (p)", HistType::kTH1F, {{100, 0.f, 10.f}}); + jetHist.add("genmatched/antiProton/pt/PtantiProton", "Pt (#bar{p})", HistType::kTH1F, {{100, 0.f, 10.f}}); + jetHist.add("genmatched/deuteron/pt/PtDeuteron", "Pt (De)", HistType::kTH1F, {{100, 0.f, 10.f}}); + jetHist.add("genmatched/antiDeuteron/pt/PtantiDeuteron", "Pt (#bar{De})", HistType::kTH1F, {{100, 0.f, 10.f}}); + jetHist.add("genmatched/helium/pt/PtHelium", "Pt (He)", HistType::kTH1F, {{100, 0.f, 10.f}}); + jetHist.add("genmatched/antiHelium/pt/PtantiHelium", "Pt (#bar{He})", HistType::kTH1F, {{100, 0.f, 10.f}}); + jetHist.add("genmatched/triton/pt/PtTriton", "Pt (Tr)", HistType::kTH1F, {{100, 0.f, 10.f}}); + jetHist.add("genmatched/antiTriton/pt/PtantiTriton", "Pt (#bar{Tr})", HistType::kTH1F, {{100, 0.f, 10.f}}); + + jetHist.add("genmatched/proton/pt/PtProton_jet", "Pt (p)", HistType::kTH1F, {{100, 0.f, 10.f}}); + jetHist.add("genmatched/antiProton/pt/PtantiProton_jet", "Pt (#bar{p})", HistType::kTH1F, {{100, 0.f, 10.f}}); + jetHist.add("genmatched/deuteron/pt/PtDeuteron_jet", "Pt (De)", HistType::kTH1F, {{100, 0.f, 10.f}}); + jetHist.add("genmatched/antiDeuteron/pt/PtantiDeuteron_jet", "Pt (#bar{De})", HistType::kTH1F, {{100, 0.f, 10.f}}); + jetHist.add("genmatched/helium/pt/PtHelium_jet", "Pt (He)", HistType::kTH1F, {{100, 0.f, 10.f}}); + jetHist.add("genmatched/antiHelium/pt/PtantiHelium_jet", "Pt (#bar{He})", HistType::kTH1F, {{100, 0.f, 10.f}}); + jetHist.add("genmatched/triton/pt/PtTriton_jet", "Pt (Tr)", HistType::kTH1F, {{100, 0.f, 10.f}}); + jetHist.add("genmatched/antiTriton/pt/PtantiTriton_jet", "Pt (#bar{Tr})", HistType::kTH1F, {{100, 0.f, 10.f}}); + + jetHist.add("genmatched/proton/pt/PtProton_outJet", "Pt (p)", HistType::kTH1F, {{100, 0.f, 10.f}}); + jetHist.add("genmatched/antiProton/pt/PtantiProton_outJet", "Pt (#bar{p})", HistType::kTH1F, {{100, 0.f, 10.f}}); + jetHist.add("genmatched/deuteron/pt/PtDeuteron_outJet", "Pt (De)", HistType::kTH1F, {{100, 0.f, 10.f}}); + jetHist.add("genmatched/antiDeuteron/pt/PtantiDeuteron_outJet", "Pt (#bar{De})", HistType::kTH1F, {{100, 0.f, 10.f}}); + jetHist.add("genmatched/helium/pt/PtHelium_outJet", "Pt (He)", HistType::kTH1F, {{100, 0.f, 10.f}}); + jetHist.add("genmatched/antiHelium/pt/PtantiHelium_outJet", "Pt (#bar{He})", HistType::kTH1F, {{100, 0.f, 10.f}}); + jetHist.add("genmatched/triton/pt/PtTriton_outJet", "Pt (Tr)", HistType::kTH1F, {{100, 0.f, 10.f}}); + jetHist.add("genmatched/antiTriton/pt/PtantiTriton_outJet", "Pt (#bar{Tr})", HistType::kTH1F, {{100, 0.f, 10.f}}); + } + } + + template + bool isTrackSelected(const TrackType track) + { + // standard track selection + if (track.pt() < cfgtrkMinPt) + return false; + if (std::abs(track.eta()) > cfgtrkMaxEta) + return false; + if (std::abs(track.dcaXY()) > cfgMaxDCArToPVcut) + return false; + if (std::abs(track.dcaZ()) > cfgMaxDCAzToPVcut) + return false; + if (track.tpcNClsFindable() < cfgnFindableTPCClusters) + return false; + if (track.tpcNClsCrossedRows() < cfgnTPCCrossedRows) + return false; + if (track.tpcChi2NCl() > cfgnTPCChi2) + return false; + if (track.itsChi2NCl() > cfgnITSChi2) + return false; + if (cfgConnectedToPV && !track.isPVContributor()) + return false; + return true; + } + + int nEvents = 0; + template + void fillTrackInfo(const TracksType& trk, const JetType& jets) + { + + if (!isTrackSelected(trk)) + return; + if (trk.pt() > cMaxPt) + return; + jetHist.fill(HIST("tracks/h2TPCsignVsTPCmomentum"), trk.tpcInnerParam() / (1.f * trk.sign()), trk.tpcSignal()); + bool jetFlag = false; + float jetPt = -999.; + for (auto const& jet : jets) { + double delPhi = TVector2::Phi_mpi_pi(jet.phi() - trk.phi()); + double delEta = jet.eta() - trk.eta(); + double R = TMath::Sqrt((delEta * delEta) + (delPhi * delPhi)); + if (R < cfgjetR) + jetFlag = true; + jetPt = jet.pt(); + break; + } + // tof + // float gamma =-999; + float massTOF = -999; + if (trk.hasTOF()) { + // gamma = 1.f / TMath::Sqrt(1.f - (trk.beta() * trk.beta())); + massTOF = trk.p() * TMath::Sqrt(1.f / (trk.beta() * trk.beta()) - 1.f); + } + + if (addTOFplots && trk.hasTOF()) { + jetHist.fill(HIST("tracks/h2TOFbetaVsP"), trk.p() / (1.f * trk.sign()), trk.beta()); + } + if (jetFlag) { + jetHist.fill(HIST("tracks/h2TPCsignVsTPCmomentum_Jet"), trk.tpcInnerParam() / (1.f * trk.sign()), trk.tpcSignal()); + if (addTOFplots && trk.hasTOF()) { + jetHist.fill(HIST("tracks/h2TOFbetaVsP_Jet"), trk.p() / (1.f * trk.sign()), trk.beta()); + } + if (trk.sign() > 0) { // particle info + if (addpik) { + jetHist.fill(HIST("tracks/pion/h3PtVsPionNSigmaTPCVsPtJet_jet"), trk.pt(), trk.tpcNSigmaPi(), jetPt); + jetHist.fill(HIST("tracks/kaon/h3PtVsKaonNSigmaTPCVsPtJet_jet"), trk.pt(), trk.tpcNSigmaKa(), jetPt); + } + jetHist.fill(HIST("tracks/proton/h3PtVsProtonNSigmaTPCVsPtJet_jet"), trk.pt(), trk.tpcNSigmaPr(), jetPt); + jetHist.fill(HIST("tracks/deuteron/h3PtVsDeuteronNSigmaTPCVsPtJet_jet"), trk.pt(), trk.tpcNSigmaDe(), jetPt); + jetHist.fill(HIST("tracks/helium/h3PtVsHeliumNSigmaTPCVsPtJet_jet"), trk.pt(), trk.tpcNSigmaHe(), jetPt); + jetHist.fill(HIST("tracks/triton/h3PtVsTritonNSigmaTPCVsPtJet_jet"), trk.pt(), trk.tpcNSigmaTr(), jetPt); + + if (cEnableProtonQA && std::abs(trk.tpcNSigmaPr()) < cfgnTPCPIDPr) { + jetHist.fill(HIST("tracks/proton/dca/after/hDCAxyVsPtProton_jet"), trk.dcaXY(), trk.pt()); + jetHist.fill(HIST("tracks/proton/dca/after/hDCAzVsPtProton_jet"), trk.dcaZ(), trk.pt()); + } + if (cEnableDeuteronQA && std::abs(trk.tpcNSigmaDe()) < cfgnTPCPIDDe) { + jetHist.fill(HIST("tracks/deuteron/dca/after/hDCAxyVsPtDeuteron_jet"), trk.dcaXY(), trk.pt()); + jetHist.fill(HIST("tracks/deuteron/dca/after/hDCAzVsPtDeuteron_jet"), trk.dcaZ(), trk.pt()); + } + if (cEnableTritonQA && std::abs(trk.tpcNSigmaHe()) < cfgnTPCPIDTr) { + jetHist.fill(HIST("tracks/triton/dca/after/hDCAxyVsPtTriton_jet"), trk.dcaXY(), trk.pt()); + jetHist.fill(HIST("tracks/triton/dca/after/hDCAzVsPtTriton_jet"), trk.dcaZ(), trk.pt()); + } + if (cEnableHeliumQA && std::abs(trk.tpcNSigmaHe()) < cfgnTPCPIDHe) { + jetHist.fill(HIST("tracks/helium/dca/after/hDCAxyVsPtHelium_jet"), trk.dcaXY(), trk.pt()); + jetHist.fill(HIST("tracks/helium/dca/after/hDCAzVsPtHelium_jet"), trk.dcaZ(), trk.pt()); + } + + if (addTOFplots && trk.hasTOF()) { + if (!useTPCpreSel) { + jetHist.fill(HIST("tracks/proton/h2TOFmassProtonVsPt_jet"), massTOF, trk.pt()); + jetHist.fill(HIST("tracks/proton/h2TOFmass2ProtonVsPt_jet"), massTOF * massTOF - gMassProton * gMassProton, trk.pt()); + + jetHist.fill(HIST("tracks/deuteron/h2TOFmassDeuteronVsPt_jet"), massTOF, trk.pt()); + jetHist.fill(HIST("tracks/deuteron/h2TOFmass2DeuteronVsPt_jet"), massTOF * massTOF - gMassDeuteron * gMassDeuteron, trk.pt()); + + jetHist.fill(HIST("tracks/triton/h2TOFmassTritonVsPt_jet"), massTOF, trk.pt()); + jetHist.fill(HIST("tracks/triton/h2TOFmass2TritonVsPt_jet"), massTOF * massTOF - gMassTriton * gMassTriton, trk.pt()); + + jetHist.fill(HIST("tracks/helium/h2TOFmassHeliumVsPt_jet"), massTOF, trk.pt()); + jetHist.fill(HIST("tracks/helium/h2TOFmass2HeliumVsPt_jet"), massTOF * massTOF - gMassHelium * gMassHelium, trk.pt()); + + jetHist.fill(HIST("tracks/proton/h2TofNsigmaProtonVsPt_jet"), trk.tofNSigmaPr(), trk.pt()); + jetHist.fill(HIST("tracks/deuteron/h2TofNsigmaDeuteronVsPt_jet"), trk.tofNSigmaDe(), trk.pt()); + jetHist.fill(HIST("tracks/helium/h2TofNsigmaHeliumVsPt_jet"), trk.tofNSigmaHe(), trk.pt()); + jetHist.fill(HIST("tracks/triton/h2TofNsigmaTritonVsPt_jet"), trk.tofNSigmaTr(), trk.pt()); + + } else { + if (trk.tpcNSigmaPr() < useTPCpreSel) { + jetHist.fill(HIST("tracks/proton/h2TOFmassProtonVsPt_jet"), massTOF, trk.pt()); + jetHist.fill(HIST("tracks/proton/h2TOFmass2ProtonVsPt_jet"), massTOF * massTOF - gMassProton * gMassProton, trk.pt()); + jetHist.fill(HIST("tracks/proton/h2TofNsigmaProtonVsPt_jet"), trk.tofNSigmaPr(), trk.pt()); + } + + if (trk.tpcNSigmaDe() < useTPCpreSel) { + jetHist.fill(HIST("tracks/deuteron/h2TOFmassDeuteronVsPt_jet"), massTOF, trk.pt()); + jetHist.fill(HIST("tracks/deuteron/h2TOFmass2DeuteronVsPt_jet"), massTOF * massTOF - gMassDeuteron * gMassDeuteron, trk.pt()); + jetHist.fill(HIST("tracks/deuteron/h2TofNsigmaDeuteronVsPt_jet"), trk.tofNSigmaDe(), trk.pt()); + } + if (trk.tpcNSigmaTr() < useTPCpreSel) { + jetHist.fill(HIST("tracks/triton/h2TOFmassTritonVsPt_jet"), massTOF, trk.pt()); + jetHist.fill(HIST("tracks/triton/h2TOFmass2TritonVsPt_jet"), massTOF * massTOF - gMassTriton * gMassTriton, trk.pt()); + jetHist.fill(HIST("tracks/helium/h2TofNsigmaHeliumVsPt_jet"), trk.tofNSigmaHe(), trk.pt()); + } + if (trk.tpcNSigmaHe() < useTPCpreSel) { + jetHist.fill(HIST("tracks/helium/h2TOFmassHeliumVsPt_jet"), massTOF, trk.pt()); + jetHist.fill(HIST("tracks/helium/h2TOFmass2HeliumVsPt_jet"), massTOF * massTOF - gMassHelium * gMassHelium, trk.pt()); + jetHist.fill(HIST("tracks/triton/h2TofNsigmaTritonVsPt_jet"), trk.tofNSigmaTr(), trk.pt()); + } + } + // nSigma + if (addpik) { + jetHist.fill(HIST("tracks/pion/h2TofNsigmaPionVsPt_jet"), trk.tofNSigmaPi(), trk.pt()); + jetHist.fill(HIST("tracks/kaon/h2TofNsigmaKaonVsPt_jet"), trk.tofNSigmaKa(), trk.pt()); + } + + } // tof info + + } else { // anti-particle info + if (addpik) { + jetHist.fill(HIST("tracks/antiPion/h3PtVsPionNSigmaTPCVsPtJet_jet"), trk.pt(), trk.tpcNSigmaPi(), jetPt); + jetHist.fill(HIST("tracks/antiKaon/h3PtVsKaonNSigmaTPCVsPtJet_jet"), trk.pt(), trk.tpcNSigmaKa(), jetPt); + } + jetHist.fill(HIST("tracks/antiProton/h3PtVsantiProtonNSigmaTPCVsPtJet_jet"), trk.pt(), trk.tpcNSigmaPr(), jetPt); + jetHist.fill(HIST("tracks/antiDeuteron/h3PtVsantiDeuteronNSigmaTPCVsPtJet_jet"), trk.pt(), trk.tpcNSigmaDe(), jetPt); + jetHist.fill(HIST("tracks/antiHelium/h3PtVsantiHeliumNSigmaTPCVsPtJet_jet"), trk.pt(), trk.tpcNSigmaHe(), jetPt); + jetHist.fill(HIST("tracks/antiTriton/h3PtVsantiTritonNSigmaTPCVsPtJet_jet"), trk.pt(), trk.tpcNSigmaTr(), jetPt); + + if (cEnableProtonQA && std::abs(trk.tpcNSigmaPr()) < cfgnTPCPIDPr) { + jetHist.fill(HIST("tracks/antiProton/dca/after/hDCAxyVsPtantiProton_jet"), trk.dcaXY(), trk.pt()); + jetHist.fill(HIST("tracks/antiProton/dca/after/hDCAzVsPtantiProton_jet"), trk.dcaZ(), trk.pt()); + } + if (cEnableDeuteronQA && std::abs(trk.tpcNSigmaDe()) < cfgnTPCPIDDe) { + jetHist.fill(HIST("tracks/antiDeuteron/dca/after/hDCAxyVsPtantiDeuteron_jet"), trk.dcaXY(), trk.pt()); + jetHist.fill(HIST("tracks/antiDeuteron/dca/after/hDCAzVsPtantiDeuteron_jet"), trk.dcaZ(), trk.pt()); + } + if (cEnableHeliumQA && std::abs(trk.tpcNSigmaHe()) < cfgnTPCPIDHe) { + jetHist.fill(HIST("tracks/antiTriton/dca/after/hDCAxyVsPtantiTriton_jet"), trk.dcaXY(), trk.pt()); + jetHist.fill(HIST("tracks/antiTriton/dca/after/hDCAzVsPtantiTriton_jet"), trk.dcaZ(), trk.pt()); + } + if (cEnableTritonQA && std::abs(trk.tpcNSigmaHe()) < cfgnTPCPIDHe) { + jetHist.fill(HIST("tracks/antiHelium/dca/after/hDCAxyVsPtantiHelium_jet"), trk.dcaXY(), trk.pt()); + jetHist.fill(HIST("tracks/antiHelium/dca/after/hDCAzVsPtantiHelium_jet"), trk.dcaZ(), trk.pt()); + } + + if (addTOFplots && trk.hasTOF()) { + if (!useTPCpreSel) { + jetHist.fill(HIST("tracks/antiProton/h2TOFmassantiProtonVsPt_jet"), massTOF, trk.pt()); + jetHist.fill(HIST("tracks/antiProton/h2TOFmass2antiProtonVsPt_jet"), massTOF * massTOF - gMassProton * gMassProton, trk.pt()); + jetHist.fill(HIST("tracks/antiProton/h2TofNsigmaantiProtonVsPt_jet"), trk.tofNSigmaPr(), trk.pt()); + + jetHist.fill(HIST("tracks/antiDeuteron/h2TOFmassantiDeuteronVsPt_jet"), massTOF, trk.pt()); + jetHist.fill(HIST("tracks/antiDeuteron/h2TOFmass2antiDeuteronVsPt_jet"), massTOF * massTOF - gMassDeuteron * gMassDeuteron, trk.pt()); + jetHist.fill(HIST("tracks/antiDeuteron/h2TofNsigmaantiDeuteronVsPt_jet"), trk.tofNSigmaDe(), trk.pt()); + + jetHist.fill(HIST("tracks/antiTriton/h2TOFmassantiTritonVsPt_jet"), massTOF, trk.pt()); + jetHist.fill(HIST("tracks/antiTriton/h2TOFmass2antiTritonVsPt_jet"), massTOF * massTOF - gMassTriton * gMassTriton, trk.pt()); + jetHist.fill(HIST("tracks/antiTriton/h2TofNsigmaantiTritonVsPt_jet"), trk.tofNSigmaTr(), trk.pt()); + + jetHist.fill(HIST("tracks/antiHelium/h2TOFmassantiHeliumVsPt_jet"), massTOF, trk.pt()); + jetHist.fill(HIST("tracks/antiHelium/h2TOFmass2antiHeliumVsPt_jet"), massTOF * massTOF - gMassHelium * gMassHelium, trk.pt()); + jetHist.fill(HIST("tracks/antiHelium/h2TofNsigmaantiHeliumVsPt_jet"), trk.tofNSigmaHe(), trk.pt()); + } else { + if (trk.tpcNSigmaPr() < useTPCpreSel) { + jetHist.fill(HIST("tracks/antiProton/h2TOFmassantiProtonVsPt_jet"), massTOF, trk.pt()); + jetHist.fill(HIST("tracks/antiProton/h2TOFmass2antiProtonVsPt_jet"), massTOF * massTOF - gMassProton * gMassProton, trk.pt()); + jetHist.fill(HIST("tracks/antiProton/h2TofNsigmaantiProtonVsPt_jet"), trk.tofNSigmaPr(), trk.pt()); + } + if (trk.tpcNSigmaDe() < useTPCpreSel) { + jetHist.fill(HIST("tracks/antiDeuteron/h2TOFmassantiDeuteronVsPt_jet"), massTOF, trk.pt()); + jetHist.fill(HIST("tracks/antiDeuteron/h2TOFmass2antiDeuteronVsPt_jet"), massTOF * massTOF - gMassDeuteron * gMassDeuteron, trk.pt()); + jetHist.fill(HIST("tracks/antiDeuteron/h2TofNsigmaantiDeuteronVsPt_jet"), trk.tofNSigmaDe(), trk.pt()); + } + if (trk.tpcNSigmaTr() < useTPCpreSel) { + jetHist.fill(HIST("tracks/antiTriton/h2TOFmassantiTritonVsPt_jet"), massTOF, trk.pt()); + jetHist.fill(HIST("tracks/antiTriton/h2TOFmass2antiTritonVsPt_jet"), massTOF * massTOF - gMassTriton * gMassTriton, trk.pt()); + jetHist.fill(HIST("tracks/antiTriton/h2TofNsigmaantiTritonVsPt_jet"), trk.tofNSigmaTr(), trk.pt()); + } + if (trk.tpcNSigmaHe() < useTPCpreSel) { + jetHist.fill(HIST("tracks/antiHelium/h2TOFmassantiHeliumVsPt_jet"), massTOF, trk.pt()); + jetHist.fill(HIST("tracks/antiHelium/h2TOFmass2antiHeliumVsPt_jet"), massTOF * massTOF - gMassHelium * gMassHelium, trk.pt()); + jetHist.fill(HIST("tracks/antiHelium/h2TofNsigmaantiHeliumVsPt_jet"), trk.tofNSigmaHe(), trk.pt()); + } + } + + if (addpik) { + if (!useTPCpreSel) { + jetHist.fill(HIST("tracks/antiPion/h2TofNsigmaantiPionVsPt_jet"), trk.tofNSigmaPi(), trk.pt()); + jetHist.fill(HIST("tracks/antiKaon/h2TofNsigmaantiKaonVsPt_jet"), trk.tofNSigmaKa(), trk.pt()); + } else { + if (trk.tpcNSigmaPi() < useTPCpreSel) { + jetHist.fill(HIST("tracks/antiPion/h2TofNsigmaantiPionVsPt_jet"), trk.tofNSigmaPi(), trk.pt()); + } + if (trk.tpcNSigmaKa() < useTPCpreSel) { + jetHist.fill(HIST("tracks/antiKaon/h2TofNsigmaantiKaonVsPt_jet"), trk.tofNSigmaKa(), trk.pt()); + } + } + } // pikEnd + } + } // anti-particle + } //////////////////////////////////////// + // within jet end + ////////////////////////////////////////// + else { + jetHist.fill(HIST("tracks/h2TPCsignVsTPCmomentum_OutJet"), trk.tpcInnerParam() / (1.f * trk.sign()), trk.tpcSignal()); + if (addTOFplots && trk.hasTOF()) { + jetHist.fill(HIST("tracks/h2TOFbetaVsP_OutJet"), trk.p() / (1.f * trk.sign()), trk.beta()); + } + if (trk.sign() > 0) { + jetHist.fill(HIST("tracks/proton/h3PtVsProtonNSigmaTPC"), trk.pt(), trk.tpcNSigmaPr()); // Pr + jetHist.fill(HIST("tracks/deuteron/h3PtVsDeuteronNSigmaTPC"), trk.pt(), trk.tpcNSigmaDe()); // De + jetHist.fill(HIST("tracks/helium/h3PtVsHeliumNSigmaTPC"), trk.pt(), trk.tpcNSigmaHe()); // He + jetHist.fill(HIST("tracks/triton/h3PtVsTritonNSigmaTPC"), trk.pt(), trk.tpcNSigmaTr()); // Tr + + if (cEnableProtonQA && std::abs(trk.tpcNSigmaPr()) < cfgnTPCPIDPr) { + jetHist.fill(HIST("tracks/proton/dca/after/hDCAxyVsPtProton"), trk.dcaXY(), trk.pt()); + jetHist.fill(HIST("tracks/proton/dca/after/hDCAzVsPtProton"), trk.dcaZ(), trk.pt()); + } + if (cEnableDeuteronQA && std::abs(trk.tpcNSigmaDe()) < cfgnTPCPIDDe) { + jetHist.fill(HIST("tracks/deuteron/dca/after/hDCAxyVsPtDeuteron"), trk.dcaXY(), trk.pt()); + jetHist.fill(HIST("tracks/deuteron/dca/after/hDCAzVsPtDeuteron"), trk.dcaZ(), trk.pt()); + } + if (cEnableTritonQA && std::abs(trk.tpcNSigmaHe()) < cfgnTPCPIDTr) { + jetHist.fill(HIST("tracks/triton/dca/after/hDCAxyVsPtTriton"), trk.dcaXY(), trk.pt()); + jetHist.fill(HIST("tracks/triton/dca/after/hDCAzVsPtTriton"), trk.dcaZ(), trk.pt()); + } + if (cEnableHeliumQA && std::abs(trk.tpcNSigmaHe()) < cfgnTPCPIDHe) { + jetHist.fill(HIST("tracks/helium/dca/after/hDCAxyVsPtHelium"), trk.dcaXY(), trk.pt()); + jetHist.fill(HIST("tracks/helium/dca/after/hDCAzVsPtHelium"), trk.dcaZ(), trk.pt()); + } + if (addTOFplots && trk.hasTOF()) { + if (!useTPCpreSel) { + jetHist.fill(HIST("tracks/proton/h2TOFmassProtonVsPt"), massTOF, trk.pt()); + jetHist.fill(HIST("tracks/proton/h2TOFmass2ProtonVsPt"), massTOF * massTOF - gMassProton * gMassProton, trk.pt()); + jetHist.fill(HIST("tracks/proton/h2TofNsigmaProtonVsPt"), trk.tofNSigmaPr(), trk.pt()); + + jetHist.fill(HIST("tracks/deuteron/h2TOFmassDeuteronVsPt"), massTOF, trk.pt()); + jetHist.fill(HIST("tracks/deuteron/h2TOFmass2DeuteronVsPt"), massTOF * massTOF - gMassDeuteron * gMassDeuteron, trk.pt()); + jetHist.fill(HIST("tracks/deuteron/h2TofNsigmaDeuteronVsPt"), trk.tofNSigmaDe(), trk.pt()); + + jetHist.fill(HIST("tracks/triton/h2TOFmassTritonVsPt"), massTOF, trk.pt()); + jetHist.fill(HIST("tracks/triton/h2TOFmass2TritonVsPt"), massTOF * massTOF - gMassTriton * gMassTriton, trk.pt()); + jetHist.fill(HIST("tracks/helium/h2TofNsigmaHeliumVsPt"), trk.tofNSigmaHe(), trk.pt()); + + jetHist.fill(HIST("tracks/helium/h2TOFmassHeliumVsPt"), massTOF, trk.pt()); + jetHist.fill(HIST("tracks/helium/h2TOFmass2HeliumVsPt"), massTOF * massTOF - gMassHelium * gMassHelium, trk.pt()); + jetHist.fill(HIST("tracks/triton/h2TofNsigmaTritonVsPt"), trk.tofNSigmaTr(), trk.pt()); + } else { + if (trk.tpcNSigmaPr() < useTPCpreSel) { + jetHist.fill(HIST("tracks/proton/h2TOFmassProtonVsPt"), massTOF, trk.pt()); + jetHist.fill(HIST("tracks/proton/h2TOFmass2ProtonVsPt"), massTOF * massTOF - gMassProton * gMassProton, trk.pt()); + jetHist.fill(HIST("tracks/proton/h2TofNsigmaProtonVsPt"), trk.tofNSigmaPr(), trk.pt()); + } + if (trk.tpcNSigmaDe() < useTPCpreSel) { + jetHist.fill(HIST("tracks/deuteron/h2TOFmassDeuteronVsPt"), massTOF, trk.pt()); + jetHist.fill(HIST("tracks/deuteron/h2TOFmass2DeuteronVsPt"), massTOF * massTOF - gMassDeuteron * gMassDeuteron, trk.pt()); + jetHist.fill(HIST("tracks/deuteron/h2TofNsigmaDeuteronVsPt"), trk.tofNSigmaDe(), trk.pt()); + } + if (trk.tpcNSigmaTr() < useTPCpreSel) { + jetHist.fill(HIST("tracks/triton/h2TOFmassTritonVsPt"), massTOF, trk.pt()); + jetHist.fill(HIST("tracks/triton/h2TOFmass2TritonVsPt"), massTOF * massTOF - gMassTriton * gMassTriton, trk.pt()); + jetHist.fill(HIST("tracks/triton/h2TofNsigmaTritonVsPt"), trk.tofNSigmaTr(), trk.pt()); + } + if (trk.tpcNSigmaHe() < useTPCpreSel) { + jetHist.fill(HIST("tracks/helium/h2TOFmassHeliumVsPt"), massTOF, trk.pt()); + jetHist.fill(HIST("tracks/helium/h2TOFmass2HeliumVsPt"), massTOF * massTOF - gMassHelium * gMassHelium, trk.pt()); + jetHist.fill(HIST("tracks/helium/h2TofNsigmaHeliumVsPt"), trk.tofNSigmaHe(), trk.pt()); + } + } + + } // tof info + } else { + jetHist.fill(HIST("tracks/antiProton/h3PtVsantiProtonNSigmaTPC"), trk.pt(), trk.tpcNSigmaPr()); // Pr + jetHist.fill(HIST("tracks/antiDeuteron/h3PtVsantiDeuteronNSigmaTPC"), trk.pt(), trk.tpcNSigmaDe()); // De + jetHist.fill(HIST("tracks/antiHelium/h3PtVsantiHeliumNSigmaTPC"), trk.pt(), trk.tpcNSigmaHe()); // He + jetHist.fill(HIST("tracks/antiTriton/h3PtVsantiTritonNSigmaTPC"), trk.pt(), trk.tpcNSigmaTr()); // Tr + + if (cEnableProtonQA && std::abs(trk.tpcNSigmaPr()) < cfgnTPCPIDPr) { + jetHist.fill(HIST("tracks/antiProton/dca/after/hDCAxyVsPtantiProton"), trk.dcaXY(), trk.pt()); + jetHist.fill(HIST("tracks/antiProton/dca/after/hDCAzVsPtantiProton"), trk.dcaZ(), trk.pt()); + } + if (cEnableDeuteronQA && std::abs(trk.tpcNSigmaDe()) < cfgnTPCPIDDe) { + jetHist.fill(HIST("tracks/antiDeuteron/dca/after/hDCAxyVsPtantiDeuteron"), trk.dcaXY(), trk.pt()); + jetHist.fill(HIST("tracks/antiDeuteron/dca/after/hDCAzVsPtantiDeuteron"), trk.dcaZ(), trk.pt()); + } + if (cEnableHeliumQA && std::abs(trk.tpcNSigmaHe()) < cfgnTPCPIDHe) { + jetHist.fill(HIST("tracks/antiTriton/dca/after/hDCAxyVsPtantiTriton"), trk.dcaXY(), trk.pt()); + jetHist.fill(HIST("tracks/antiTriton/dca/after/hDCAzVsPtantiTriton"), trk.dcaZ(), trk.pt()); + } + if (cEnableTritonQA && std::abs(trk.tpcNSigmaHe()) < cfgnTPCPIDHe) { + jetHist.fill(HIST("tracks/antiHelium/dca/after/hDCAxyVsPtantiHelium"), trk.dcaXY(), trk.pt()); + jetHist.fill(HIST("tracks/antiHelium/dca/after/hDCAzVsPtantiHelium"), trk.dcaZ(), trk.pt()); + } + + if (addTOFplots && trk.hasTOF()) { + if (!useTPCpreSel) { + jetHist.fill(HIST("tracks/antiProton/h2TOFmassantiProtonVsPt"), massTOF, trk.pt()); + jetHist.fill(HIST("tracks/antiProton/h2TOFmass2antiProtonVsPt"), massTOF * massTOF - gMassProton * gMassProton, trk.pt()); + jetHist.fill(HIST("tracks/antiProton/h2TofNsigmaantiProtonVsPt"), trk.tofNSigmaPr(), trk.pt()); + + jetHist.fill(HIST("tracks/antiDeuteron/h2TOFmassantiDeuteronVsPt"), massTOF, trk.pt()); + jetHist.fill(HIST("tracks/antiDeuteron/h2TOFmass2antiDeuteronVsPt"), massTOF * massTOF - gMassDeuteron * gMassDeuteron, trk.pt()); + jetHist.fill(HIST("tracks/antiDeuteron/h2TofNsigmaantiDeuteronVsPt"), trk.tofNSigmaDe(), trk.pt()); + + jetHist.fill(HIST("tracks/antiTriton/h2TOFmassantiTritonVsPt"), massTOF, trk.pt()); + jetHist.fill(HIST("tracks/antiTriton/h2TOFmass2antiTritonVsPt"), massTOF * massTOF - gMassTriton * gMassTriton, trk.pt()); + jetHist.fill(HIST("tracks/antiHelium/h2TofNsigmaantiHeliumVsPt"), trk.tofNSigmaHe(), trk.pt()); + + jetHist.fill(HIST("tracks/antiHelium/h2TOFmassantiHeliumVsPt"), massTOF, trk.pt()); + jetHist.fill(HIST("tracks/antiHelium/h2TOFmass2antiHeliumVsPt"), massTOF * massTOF - gMassHelium * gMassHelium, trk.pt()); + jetHist.fill(HIST("tracks/antiTriton/h2TofNsigmaantiTritonVsPt"), trk.tofNSigmaTr(), trk.pt()); + } else { + if (trk.tpcNSigmaPr() < useTPCpreSel) { + jetHist.fill(HIST("tracks/antiProton/h2TOFmassantiProtonVsPt"), massTOF, trk.pt()); + jetHist.fill(HIST("tracks/antiProton/h2TOFmass2antiProtonVsPt"), massTOF * massTOF - gMassProton * gMassProton, trk.pt()); + jetHist.fill(HIST("tracks/antiProton/h2TofNsigmaantiProtonVsPt"), trk.tofNSigmaPr(), trk.pt()); + } + if (trk.tpcNSigmaDe() < useTPCpreSel) { + jetHist.fill(HIST("tracks/antiDeuteron/h2TOFmassantiDeuteronVsPt"), massTOF, trk.pt()); + jetHist.fill(HIST("tracks/antiDeuteron/h2TOFmass2antiDeuteronVsPt"), massTOF * massTOF - gMassDeuteron * gMassDeuteron, trk.pt()); + jetHist.fill(HIST("tracks/antiDeuteron/h2TofNsigmaantiDeuteronVsPt"), trk.tofNSigmaDe(), trk.pt()); + } + if (trk.tpcNSigmaTr() < useTPCpreSel) { + jetHist.fill(HIST("tracks/antiTriton/h2TOFmassantiTritonVsPt"), massTOF, trk.pt()); + jetHist.fill(HIST("tracks/antiTriton/h2TOFmass2antiTritonVsPt"), massTOF * massTOF - gMassTriton * gMassTriton, trk.pt()); + jetHist.fill(HIST("tracks/antiTriton/h2TofNsigmaantiTritonVsPt"), trk.tofNSigmaTr(), trk.pt()); + } + if (trk.tpcNSigmaHe() < useTPCpreSel) { + jetHist.fill(HIST("tracks/antiHelium/h2TOFmassantiHeliumVsPt"), massTOF, trk.pt()); + jetHist.fill(HIST("tracks/antiHelium/h2TOFmass2antiHeliumVsPt"), massTOF * massTOF - gMassHelium * gMassHelium, trk.pt()); + jetHist.fill(HIST("tracks/antiHelium/h2TofNsigmaantiHeliumVsPt"), trk.tofNSigmaHe(), trk.pt()); + } + } + } + } + + } //////////////////////////////////////// + // outside jet + //////////////////////////////////////// + } + + void processJetTracksData(aod::JCollision const& collision, chargedJetstrack const& chargedjets, soa::Join const& tracks, TrackCandidates const&) + { + + if (fabs(collision.posZ()) > 10) + return; + if (!jetderiveddatautilities::selectCollision(collision, jetderiveddatautilities::JCollisionSel::sel8)) + return; + + int nJets = 0; + + for (const auto& chargedjet : chargedjets) { + jetHist.fill(HIST("jet/h1JetPt"), chargedjet.pt()); + jetHist.fill(HIST("jet/h1JetEta"), chargedjet.eta()); + jetHist.fill(HIST("jet/h1JetPhi"), chargedjet.phi()); + nJets++; + } + + jetHist.fill(HIST("jet/nJetsPerEvent"), nJets); + jetHist.fill(HIST("vertexZ"), collision.posZ()); + if (nJets > 0) + jetHist.fill(HIST("jet/vertexZ"), collision.posZ()); + else + jetHist.fill(HIST("jetOut/vertexZ"), collision.posZ()); + + for (auto& track : tracks) { + auto trk = track.track_as(); + fillTrackInfo(trk, chargedjets); + } + } + + void processMCGen(o2::aod::JMcCollision const& collision, soa::SmallGroups> const& recoColls, aod::JMcParticles const& mcParticles, soa::Filtered const& mcpjets) + { + jetHist.fill(HIST("mcpJet/eventStat"), 0.5); + jetHist.fill(HIST("mcpJet/eventStat"), 1.5); + + if (fabs(collision.posZ()) > 10) // bad vertex + return; + + jetHist.fill(HIST("mcpJet/eventStat"), 2.5); + + jetHist.fill(HIST("mcpJet/vertexZ"), collision.posZ()); + + bool INELgt0 = false; + for (const auto& mcParticle : mcParticles) { + if (fabs(mcParticle.eta()) < cfgtrkMaxEta) { + INELgt0 = true; + break; + } + } + if (!INELgt0) // not true INEL + return; + + jetHist.fill(HIST("mcpJet/eventStat"), 3.5); + + int nJets = 0; + for (auto& mcpjet : mcpjets) { + jetHist.fill(HIST("mcpJet/hJetPt"), mcpjet.pt()); + jetHist.fill(HIST("mcpJet/hJetEta"), mcpjet.eta()); + jetHist.fill(HIST("mcpJet/hJetPhi"), mcpjet.phi()); + nJets++; + } + jetHist.fill(HIST("mcpJet/nJetsPerEvent"), nJets); + + for (const auto& mcParticle : mcParticles) { + + if (!mcParticle.isPhysicalPrimary()) + continue; + if (fabs(mcParticle.eta()) > cfgtrkMaxEta) + continue; + if (fabs(mcParticle.y()) > cfgtrkMaxRap) + continue; + + bool jetFlag = false; + // float jetPt = -999.; + for (auto& mcpjet : mcpjets) { + double delPhi = TVector2::Phi_mpi_pi(mcpjet.phi() - mcParticle.phi()); + double delEta = mcpjet.eta() - mcParticle.eta(); + double R = TMath::Sqrt((delEta * delEta) + (delPhi * delPhi)); + if (R < cfgjetR) + jetFlag = true; + // jetPt = mcpjet.pt(); + break; + } // jet + + if (mcParticle.pdgCode() == PDGProton) { + jetHist.fill(HIST("mcpJet/proton/pt/PtProton"), mcParticle.pt()); + if (jetFlag) { + jetHist.fill(HIST("mcpJet/proton/pt/PtProton_jet"), mcParticle.pt()); + } else { + jetHist.fill(HIST("mcpJet/proton/pt/PtProton_outJet"), mcParticle.pt()); + } + } + + if (mcParticle.pdgCode() == -PDGProton) { + jetHist.fill(HIST("mcpJet/antiProton/pt/PtantiProton"), mcParticle.pt()); + if (jetFlag) { + jetHist.fill(HIST("mcpJet/antiProton/pt/PtantiProton_jet"), mcParticle.pt()); + } else { + jetHist.fill(HIST("mcpJet/antiProton/pt/PtantiProton_outJet"), mcParticle.pt()); + } + } + + if (mcParticle.pdgCode() == PDGDeuteron) { + jetHist.fill(HIST("mcpJet/deuteron/pt/PtDeuteron"), mcParticle.pt()); + if (jetFlag) { + jetHist.fill(HIST("mcpJet/deuteron/pt/PtDeuteron_jet"), mcParticle.pt()); + } else { + jetHist.fill(HIST("mcpJet/deuteron/pt/PtDeuteron_outJet"), mcParticle.pt()); + } + } + + if (mcParticle.pdgCode() == -PDGDeuteron) { + jetHist.fill(HIST("mcpJet/antiDeuteron/pt/PtantiDeuteron"), mcParticle.pt()); + if (jetFlag) { + jetHist.fill(HIST("mcpJet/antiDeuteron/pt/PtantiDeuteron_jet"), mcParticle.pt()); + } else { + jetHist.fill(HIST("mcpJet/antiDeuteron/pt/PtantiDeuteron_outJet"), mcParticle.pt()); + } + } + + if (mcParticle.pdgCode() == PDGHelium) { + jetHist.fill(HIST("mcpJet/helium/pt/PtHelium"), mcParticle.pt()); + if (jetFlag) { + jetHist.fill(HIST("mcpJet/helium/pt/PtHelium_jet"), mcParticle.pt()); + } else { + jetHist.fill(HIST("mcpJet/helium/pt/PtHelium_outJet"), mcParticle.pt()); + } + } + + if (mcParticle.pdgCode() == -PDGHelium) { + jetHist.fill(HIST("mcpJet/antiHelium/pt/PtantiHelium"), mcParticle.pt()); + if (jetFlag) { + jetHist.fill(HIST("mcpJet/antiHelium/pt/PtantiHelium_jet"), mcParticle.pt()); + } else { + jetHist.fill(HIST("mcpJet/antiHelium/pt/PtantiHelium_outJet"), mcParticle.pt()); + } + } + + if (mcParticle.pdgCode() == PDGTriton) { + jetHist.fill(HIST("mcpJet/triton/pt/PtTriton"), mcParticle.pt()); + if (jetFlag) { + jetHist.fill(HIST("mcpJet/triton/pt/PtTriton_jet"), mcParticle.pt()); + } else { + jetHist.fill(HIST("mcpJet/triton/pt/PtTriton_outJet"), mcParticle.pt()); + } + } + + if (mcParticle.pdgCode() == -PDGTriton) { + jetHist.fill(HIST("mcpJet/antiTriton/pt/PtantiTriton"), mcParticle.pt()); + if (jetFlag) { + jetHist.fill(HIST("mcpJet/antiTriton/pt/PtantiTriton_jet"), mcParticle.pt()); + } else { + jetHist.fill(HIST("mcpJet/antiTriton/pt/PtantiTriton_outJet"), mcParticle.pt()); + } + } + } // track + } // process mc + + void processMCRec(o2::aod::JCollision const& collisionJet, soa::Join const& tracks, + soa::Filtered const& mcdjets, aod::McParticles const&, TrackCandidatesMC const& fulltracks) + { + jetHist.fill(HIST("mcdJet/eventStat"), 0.5); + // JEhistos.fill(HIST("nEvents_MCRec"), 0.5); + + if (!jetderiveddatautilities::selectCollision(collisionJet, jetderiveddatautilities::JCollisionSel::sel8)) + return; + // bool jetFlag = kFALSE; + + jetHist.fill(HIST("mcdJet/eventStat"), 1.5); + + if (fabs(collisionJet.posZ()) > 10) + return; + + jetHist.fill(HIST("mcdJet/eventStat"), 2.5); + bool INELgt0 = false; + for (const auto& track : tracks) { + if (fabs(track.eta()) < cfgtrkMaxEta) { + INELgt0 = true; + break; + } + } + if (!INELgt0) + return; + jetHist.fill(HIST("mcdJet/eventStat"), 3.5); + int nJets = 0; + for (auto& mcdjet : mcdjets) { + jetHist.fill(HIST("mcdJet/hJetPt"), mcdjet.pt()); + jetHist.fill(HIST("mcdJet/hJetEta"), mcdjet.eta()); + jetHist.fill(HIST("mcdJet/hJetPhi"), mcdjet.phi()); + nJets++; + } + + jetHist.fill(HIST("mcdJet/vertexZ"), collisionJet.posZ()); + jetHist.fill(HIST("mcdJet/nJetsPerEvent"), nJets); + + for (const auto& track : tracks) { + auto fullTrack = track.track_as(); + + if (!isTrackSelected(fullTrack)) + continue; + if (fabs(fullTrack.eta()) > cfgtrkMaxEta) + continue; + if (!track.has_mcParticle()) + continue; + if (!track.mcParticle().isPhysicalPrimary()) + continue; + if (fabs(track.mcParticle().y()) > cfgtrkMaxRap) + continue; + + bool jetFlag = false; + // float jetPt = -999.; + + for (auto& mcdjet : mcdjets) { + double delPhi = TVector2::Phi_mpi_pi(mcdjet.phi() - track.phi()); + double delEta = mcdjet.eta() - track.eta(); + double R = TMath::Sqrt((delEta * delEta) + (delPhi * delPhi)); + if (R < cfgjetR) + jetFlag = true; + // jetPt = mcdjet.pt(); + break; + } // jet + + if (track.mcParticle().pdgCode() == PDGProton) { + jetHist.fill(HIST("mcdJet/proton/pt/PtProton"), track.mcParticle().pt()); + if (jetFlag) { + jetHist.fill(HIST("mcdJet/proton/pt/PtProton_jet"), track.mcParticle().pt()); + } else { + jetHist.fill(HIST("mcdJet/proton/pt/PtProton_outJet"), track.mcParticle().pt()); + } + } + + if (track.mcParticle().pdgCode() == -PDGProton) { + jetHist.fill(HIST("mcdJet/antiProton/pt/PtantiProton"), track.mcParticle().pt()); + if (jetFlag) { + jetHist.fill(HIST("mcdJet/antiProton/pt/PtantiProton_jet"), track.mcParticle().pt()); + } else { + jetHist.fill(HIST("mcdJet/antiProton/pt/PtantiProton_outJet"), track.mcParticle().pt()); + } + } + + if (track.mcParticle().pdgCode() == PDGDeuteron) { + jetHist.fill(HIST("mcdJet/deuteron/pt/PtDeuteron"), track.mcParticle().pt()); + if (jetFlag) { + jetHist.fill(HIST("mcdJet/deuteron/pt/PtDeuteron_jet"), track.mcParticle().pt()); + } else { + jetHist.fill(HIST("mcdJet/deuteron/pt/PtDeuteron_outJet"), track.mcParticle().pt()); + } + } + + if (track.mcParticle().pdgCode() == -PDGDeuteron) { + jetHist.fill(HIST("mcdJet/antiDeuteron/pt/PtantiDeuteron"), track.mcParticle().pt()); + if (jetFlag) { + jetHist.fill(HIST("mcdJet/antiDeuteron/pt/PtantiDeuteron_jet"), track.mcParticle().pt()); + } else { + jetHist.fill(HIST("mcdJet/antiDeuteron/pt/PtantiDeuteron_outJet"), track.mcParticle().pt()); + } + } + + if (track.mcParticle().pdgCode() == PDGHelium) { + jetHist.fill(HIST("mcdJet/helium/pt/PtHelium"), track.mcParticle().pt()); + if (jetFlag) { + jetHist.fill(HIST("mcdJet/helium/pt/PtHelium_jet"), track.mcParticle().pt()); + } else { + jetHist.fill(HIST("mcdJet/helium/pt/PtHelium_outJet"), track.mcParticle().pt()); + } + } + + if (track.mcParticle().pdgCode() == -PDGHelium) { + jetHist.fill(HIST("mcdJet/antiHelium/pt/PtantiHelium"), track.mcParticle().pt()); + if (jetFlag) { + jetHist.fill(HIST("mcdJet/antiHelium/pt/PtantiHelium_jet"), track.mcParticle().pt()); + } else { + jetHist.fill(HIST("mcdJet/antiHelium/pt/PtantiHelium_outJet"), track.mcParticle().pt()); + } + } + + if (track.mcParticle().pdgCode() == PDGTriton) { + jetHist.fill(HIST("mcdJet/triton/pt/PtTriton"), track.mcParticle().pt()); + if (jetFlag) { + jetHist.fill(HIST("mcdJet/triton/pt/PtTriton_jet"), track.mcParticle().pt()); + } else { + jetHist.fill(HIST("mcdJet/triton/pt/PtTriton_outJet"), track.mcParticle().pt()); + } + } + + if (track.mcParticle().pdgCode() == -PDGTriton) { + jetHist.fill(HIST("mcdJet/antiTriton/pt/PtantiTriton"), track.mcParticle().pt()); + if (jetFlag) { + jetHist.fill(HIST("mcdJet/antiTriton/pt/PtantiTriton_jet"), track.mcParticle().pt()); + } else { + jetHist.fill(HIST("mcdJet/antiTriton/pt/PtantiTriton_outJet"), track.mcParticle().pt()); + } + } + } // tracks + } + + void processRecMatched(aod::JCollision const& collision, JetMCDetTable const& mcdjets, + soa::Join const& tracks, + JetMCPartTable const&, TrackCandidatesMC const&, aod::McParticles const&) + { + if (fabs(collision.posZ()) > 10) + return; + if (!jetderiveddatautilities::selectCollision(collision, jetderiveddatautilities::JCollisionSel::sel8)) + return; + + jetHist.fill(HIST("recmatched/vertexZ"), collision.posZ()); + bool INELgt0 = false; + for (const auto& track : tracks) { + if (fabs(track.eta()) < cfgtrkMaxEta) { + INELgt0 = true; + break; + } + } + if (!INELgt0) + return; + + std::vector mcdJetPt{}; + std::vector mcdJetPhi{}; + std::vector mcdJetEta{}; + std::vector mcpJetPt{}; + std::vector mcpJetPhi{}; + std::vector mcpJetEta{}; + + for (auto& mcdjet : mcdjets) { + + if (!mcdjet.has_matchedJetGeo()) + continue; + for (auto& mcpjet : mcdjet.template matchedJetGeo_as()) { + if (!mcpjet.has_matchedJetGeo()) + continue; + + mcdJetPt.push_back(mcdjet.pt()); + mcdJetPhi.push_back(mcdjet.phi()); + mcdJetEta.push_back(mcdjet.eta()); + mcpJetPt.push_back(mcpjet.pt()); + mcpJetPhi.push_back(mcpjet.phi()); + mcpJetEta.push_back(mcpjet.eta()); + + jetHist.fill(HIST("recmatched/hRecMatchedJetPt"), mcpjet.pt(), mcpjet.pt() - mcdjet.pt()); + jetHist.fill(HIST("recmatched/hRecMatchedJetPhi"), mcpjet.phi(), mcpjet.phi() - mcdjet.phi()); + jetHist.fill(HIST("recmatched/hRecMatchedJetEta"), mcpjet.eta(), mcpjet.eta() - mcdjet.eta()); + + jetHist.fill(HIST("recmatched/hRecJetPt"), mcdjet.pt()); + jetHist.fill(HIST("recmatched/hGenJetPt"), mcpjet.pt()); + jetHist.fill(HIST("recmatched/h2ResponseMatrix"), mcpjet.pt(), mcdjet.pt()); + + } // mcpJet + + } // mcdJet + + for (const auto& track : tracks) { + auto completeTrack = track.track_as(); + if (fabs(completeTrack.eta()) > cfgtrkMaxEta) + continue; + if (!isTrackSelected(completeTrack)) + continue; + if (!completeTrack.has_mcParticle()) + continue; + // add pid later + + bool jetFlag = false; + for (int iDJet = 0; iDJet < mcdJetPt.size(); iDJet++) { + double delPhi = TVector2::Phi_mpi_pi(mcdJetPhi[iDJet] - track.phi()); + double delEta = mcdJetEta[iDJet] - track.eta(); + double R = TMath::Sqrt((delEta * delEta) + (delPhi * delPhi)); + + if (R < cfgjetR) { + jetFlag = true; + // break; + } + + if (track.mcParticle().pdgCode() == PDGProton) { + jetHist.fill(HIST("recmatched/proton/pt/PtProton"), track.mcParticle().pt()); + if (jetFlag) { + jetHist.fill(HIST("recmatched/proton/pt/PtProton_jet"), track.mcParticle().pt()); + } else { + jetHist.fill(HIST("recmatched/proton/pt/PtProton_outJet"), track.mcParticle().pt()); + } + } + + if (track.mcParticle().pdgCode() == -PDGProton) { + jetHist.fill(HIST("recmatched/antiProton/pt/PtantiProton"), track.mcParticle().pt()); + if (jetFlag) { + jetHist.fill(HIST("recmatched/antiProton/pt/PtantiProton_jet"), track.mcParticle().pt()); + } else { + jetHist.fill(HIST("recmatched/antiProton/pt/PtantiProton_outJet"), track.mcParticle().pt()); + } + } + + if (track.mcParticle().pdgCode() == PDGDeuteron) { + jetHist.fill(HIST("recmatched/deuteron/pt/PtDeuteron"), track.mcParticle().pt()); + if (jetFlag) { + jetHist.fill(HIST("recmatched/deuteron/pt/PtDeuteron_jet"), track.mcParticle().pt()); + } else { + jetHist.fill(HIST("recmatched/deuteron/pt/PtDeuteron_outJet"), track.mcParticle().pt()); + } + } + + if (track.mcParticle().pdgCode() == -PDGDeuteron) { + jetHist.fill(HIST("recmatched/antiDeuteron/pt/PtantiDeuteron"), track.mcParticle().pt()); + if (jetFlag) { + jetHist.fill(HIST("recmatched/antiDeuteron/pt/PtantiDeuteron_jet"), track.mcParticle().pt()); + } else { + jetHist.fill(HIST("recmatched/antiDeuteron/pt/PtantiDeuteron_outJet"), track.mcParticle().pt()); + } + } + + if (track.mcParticle().pdgCode() == PDGHelium) { + jetHist.fill(HIST("recmatched/helium/pt/PtHelium"), track.mcParticle().pt()); + if (jetFlag) { + jetHist.fill(HIST("recmatched/helium/pt/PtHelium_jet"), track.mcParticle().pt()); + } else { + jetHist.fill(HIST("recmatched/helium/pt/PtHelium_outJet"), track.mcParticle().pt()); + } + } + + if (track.mcParticle().pdgCode() == -PDGHelium) { + jetHist.fill(HIST("recmatched/antiHelium/pt/PtantiHelium"), track.mcParticle().pt()); + if (jetFlag) { + jetHist.fill(HIST("recmatched/antiHelium/pt/PtantiHelium_jet"), track.mcParticle().pt()); + } else { + jetHist.fill(HIST("recmatched/antiHelium/pt/PtantiHelium_outJet"), track.mcParticle().pt()); + } + } + + if (track.mcParticle().pdgCode() == PDGTriton) { + jetHist.fill(HIST("recmatched/triton/pt/PtTriton"), track.mcParticle().pt()); + if (jetFlag) { + jetHist.fill(HIST("recmatched/triton/pt/PtTriton_jet"), track.mcParticle().pt()); + } else { + jetHist.fill(HIST("recmatched/triton/pt/PtTriton_outJet"), track.mcParticle().pt()); + } + } + + if (track.mcParticle().pdgCode() == -PDGTriton) { + jetHist.fill(HIST("recmatched/antiTriton/pt/PtantiTriton"), track.mcParticle().pt()); + if (jetFlag) { + jetHist.fill(HIST("recmatched/antiTriton/pt/PtantiTriton_jet"), track.mcParticle().pt()); + } else { + jetHist.fill(HIST("recmatched/antiTriton/pt/PtantiTriton_outJet"), track.mcParticle().pt()); + } + } + + } // DetJet + } // jet constituents + + } // process + + int nprocessSimJEEvents = 0; + void processGenMatched(aod::JMcCollision const& collision, + soa::SmallGroups> const& recocolls, + JetMCDetTable const& mcdjets, JetMCPartTable const& mcpjets, aod::JMcParticles const& mcParticles) + { + + if (cDebugLevel > 0) { + nprocessSimJEEvents++; + if ((nprocessSimJEEvents + 1) % 100000 == 0) + LOG(debug) << "Jet Events: " << nprocessSimJEEvents; + } + if (fabs(collision.posZ()) > 10) + return; + + jetHist.fill(HIST("genmatched/vertexZ"), collision.posZ()); + + bool INELgt0 = false; + for (const auto& mcParticle : mcParticles) { + if (fabs(mcParticle.eta()) < cfgtrkMaxEta) { + INELgt0 = true; + break; + } + } + if (!INELgt0) + return; + + std::vector mcdJetPt{}; + std::vector mcdJetPhi{}; + std::vector mcdJetEta{}; + std::vector mcpJetPt{}; + std::vector mcpJetPhi{}; + std::vector mcpJetEta{}; + + for (auto& mcpjet : mcpjets) { + jetHist.fill(HIST("genmatched/hGenJetPt"), mcpjet.pt()); + if (!mcpjet.has_matchedJetGeo()) + continue; + jetHist.fill(HIST("genmatched/hGenJetPtMatched"), mcpjet.pt()); + for (auto& mcdjet : mcpjet.template matchedJetGeo_as()) { + if (!mcdjet.has_matchedJetGeo()) + continue; + mcdJetPt.push_back(mcdjet.pt()); + mcdJetPhi.push_back(mcdjet.phi()); + mcdJetEta.push_back(mcdjet.eta()); + mcpJetPt.push_back(mcpjet.pt()); + mcpJetPhi.push_back(mcpjet.phi()); + mcpJetEta.push_back(mcpjet.eta()); + + jetHist.fill(HIST("genmatched/hRecJetPt"), mcpjet.pt()); + jetHist.fill(HIST("genmatched/hRecJetWithGenPt"), mcdjet.pt()); + jetHist.fill(HIST("genmatched/hRecMatchedJetPt"), mcpjet.pt(), mcpjet.pt() - mcdjet.pt()); + jetHist.fill(HIST("genmatched/hRecMatchedJetPhi"), mcpjet.phi(), mcpjet.phi() - mcdjet.phi()); + jetHist.fill(HIST("genmatched/hRecMatchedJetEta"), mcpjet.eta(), mcpjet.eta() - mcdjet.eta()); + + } // mcdJet + } // mcpJet + + for (const auto& mcParticle : mcParticles) { + if (fabs(mcParticle.eta()) > cfgtrkMaxEta) + continue; + // add pid later + + bool jetFlag = false; + for (int iDJet = 0; iDJet < mcpJetPt.size(); iDJet++) { + double delPhi = TVector2::Phi_mpi_pi(mcpJetPhi[iDJet] - mcParticle.phi()); + double delEta = mcpJetEta[iDJet] - mcParticle.eta(); + double R = TMath::Sqrt((delEta * delEta) + (delPhi * delPhi)); + + if (R < cfgjetR) { + jetFlag = true; + // break; + } + } // DetJet + if (mcParticle.pdgCode() == PDGProton) { + jetHist.fill(HIST("genmatched/proton/pt/PtProton"), mcParticle.pt()); + if (jetFlag) { + jetHist.fill(HIST("genmatched/proton/pt/PtProton_jet"), mcParticle.pt()); + } else { + jetHist.fill(HIST("genmatched/proton/pt/PtProton_outJet"), mcParticle.pt()); + } + } + + if (mcParticle.pdgCode() == -PDGProton) { + jetHist.fill(HIST("genmatched/antiProton/pt/PtantiProton"), mcParticle.pt()); + if (jetFlag) { + jetHist.fill(HIST("genmatched/antiProton/pt/PtantiProton_jet"), mcParticle.pt()); + } else { + jetHist.fill(HIST("genmatched/antiProton/pt/PtantiProton_outJet"), mcParticle.pt()); + } + } + + if (mcParticle.pdgCode() == PDGDeuteron) { + jetHist.fill(HIST("genmatched/deuteron/pt/PtDeuteron"), mcParticle.pt()); + if (jetFlag) { + jetHist.fill(HIST("genmatched/deuteron/pt/PtDeuteron_jet"), mcParticle.pt()); + } else { + jetHist.fill(HIST("genmatched/deuteron/pt/PtDeuteron_outJet"), mcParticle.pt()); + } + } + + if (mcParticle.pdgCode() == -PDGDeuteron) { + jetHist.fill(HIST("genmatched/antiDeuteron/pt/PtantiDeuteron"), mcParticle.pt()); + if (jetFlag) { + jetHist.fill(HIST("genmatched/antiDeuteron/pt/PtantiDeuteron_jet"), mcParticle.pt()); + } else { + jetHist.fill(HIST("genmatched/antiDeuteron/pt/PtantiDeuteron_outJet"), mcParticle.pt()); + } + } + + if (mcParticle.pdgCode() == PDGHelium) { + jetHist.fill(HIST("genmatched/helium/pt/PtHelium"), mcParticle.pt()); + if (jetFlag) { + jetHist.fill(HIST("genmatched/helium/pt/PtHelium_jet"), mcParticle.pt()); + } else { + jetHist.fill(HIST("genmatched/helium/pt/PtHelium_outJet"), mcParticle.pt()); + } + } + + if (mcParticle.pdgCode() == -PDGHelium) { + jetHist.fill(HIST("genmatched/antiHelium/pt/PtantiHelium"), mcParticle.pt()); + if (jetFlag) { + jetHist.fill(HIST("genmatched/antiHelium/pt/PtantiHelium_jet"), mcParticle.pt()); + } else { + jetHist.fill(HIST("genmatched/antiHelium/pt/PtantiHelium_outJet"), mcParticle.pt()); + } + } + + if (mcParticle.pdgCode() == PDGTriton) { + jetHist.fill(HIST("genmatched/triton/pt/PtTriton"), mcParticle.pt()); + if (jetFlag) { + jetHist.fill(HIST("genmatched/triton/pt/PtTriton_jet"), mcParticle.pt()); + } else { + jetHist.fill(HIST("genmatched/triton/pt/PtTriton_outJet"), mcParticle.pt()); + } + } + + if (mcParticle.pdgCode() == -PDGTriton) { + jetHist.fill(HIST("genmatched/antiTriton/pt/PtantiTriton"), mcParticle.pt()); + if (jetFlag) { + jetHist.fill(HIST("genmatched/antiTriton/pt/PtantiTriton_jet"), mcParticle.pt()); + } else { + jetHist.fill(HIST("genmatched/antiTriton/pt/PtantiTriton_outJet"), mcParticle.pt()); + } + } + } // jet constituents + + } // process + + PROCESS_SWITCH(nucleiWithFastJet, processJetTracksData, "nuclei in Jets data", true); + PROCESS_SWITCH(nucleiWithFastJet, processMCRec, "nuclei in Jets for detectorlevel Jets", true); + PROCESS_SWITCH(nucleiWithFastJet, processMCGen, "nuclei in Jets MC particlelevel Jets", false); + PROCESS_SWITCH(nucleiWithFastJet, processRecMatched, "nuclei in Jets rec matched", false); + PROCESS_SWITCH(nucleiWithFastJet, processGenMatched, "nuclei in Jets gen matched", false); +}; + +WorkflowSpec defineDataProcessing(ConfigContext const& cfgc) +{ + return WorkflowSpec{adaptAnalysisTask(cfgc, TaskName{"nuclei-with-fastjet"})}; +}; From f75dda6f01be31b011bd15bc8bc78cd0caf14ffd Mon Sep 17 00:00:00 2001 From: ALICE Action Bot Date: Wed, 7 Aug 2024 19:02:12 +0000 Subject: [PATCH 02/13] Please consider the following formatting changes --- PWGJE/Tasks/nucleiWithFastJet.cxx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/PWGJE/Tasks/nucleiWithFastJet.cxx b/PWGJE/Tasks/nucleiWithFastJet.cxx index 0812b3cdcd3..f31eebf5f4e 100644 --- a/PWGJE/Tasks/nucleiWithFastJet.cxx +++ b/PWGJE/Tasks/nucleiWithFastJet.cxx @@ -751,7 +751,7 @@ struct nucleiWithFastJet { } // pikEnd } } // anti-particle - } //////////////////////////////////////// + } //////////////////////////////////////// // within jet end ////////////////////////////////////////// else { @@ -1048,7 +1048,7 @@ struct nucleiWithFastJet { } } } // track - } // process mc + } // process mc void processMCRec(o2::aod::JCollision const& collisionJet, soa::Join const& tracks, soa::Filtered const& mcdjets, aod::McParticles const&, TrackCandidatesMC const& fulltracks) @@ -1336,7 +1336,7 @@ struct nucleiWithFastJet { } } // DetJet - } // jet constituents + } // jet constituents } // process @@ -1395,7 +1395,7 @@ struct nucleiWithFastJet { jetHist.fill(HIST("genmatched/hRecMatchedJetEta"), mcpjet.eta(), mcpjet.eta() - mcdjet.eta()); } // mcdJet - } // mcpJet + } // mcpJet for (const auto& mcParticle : mcParticles) { if (fabs(mcParticle.eta()) > cfgtrkMaxEta) From a81fd66520f79c081a3c629119209cd594acd09f Mon Sep 17 00:00:00 2001 From: Arvind Khuntia Date: Wed, 7 Aug 2024 21:25:51 +0200 Subject: [PATCH 03/13] Megalinter fixes --- PWGJE/Tasks/nucleiWithFastJet.cxx | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/PWGJE/Tasks/nucleiWithFastJet.cxx b/PWGJE/Tasks/nucleiWithFastJet.cxx index f31eebf5f4e..84098fa1888 100644 --- a/PWGJE/Tasks/nucleiWithFastJet.cxx +++ b/PWGJE/Tasks/nucleiWithFastJet.cxx @@ -33,7 +33,6 @@ #include "PWGJE/Core/FastJetUtilities.h" #include "PWGJE/Core/JetDerivedDataUtilities.h" #include "PWGJE/DataModel/Jet.h" -#include "PWGJE/JetFinders/jetfinder.cxx" using namespace o2; using namespace o2::framework; @@ -754,7 +753,7 @@ struct nucleiWithFastJet { } //////////////////////////////////////// // within jet end ////////////////////////////////////////// - else { + else { jetHist.fill(HIST("tracks/h2TPCsignVsTPCmomentum_OutJet"), trk.tpcInnerParam() / (1.f * trk.sign()), trk.tpcSignal()); if (addTOFplots && trk.hasTOF()) { jetHist.fill(HIST("tracks/h2TOFbetaVsP_OutJet"), trk.p() / (1.f * trk.sign()), trk.beta()); From f7a94244893400edc87e0adf5ea48219dc3c8ac5 Mon Sep 17 00:00:00 2001 From: Arvind Khuntia Date: Wed, 7 Aug 2024 21:46:53 +0200 Subject: [PATCH 04/13] Megalinter fixes --- PWGJE/Tasks/nucleiWithFastJet.cxx | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/PWGJE/Tasks/nucleiWithFastJet.cxx b/PWGJE/Tasks/nucleiWithFastJet.cxx index 84098fa1888..a6d37e4ddbe 100644 --- a/PWGJE/Tasks/nucleiWithFastJet.cxx +++ b/PWGJE/Tasks/nucleiWithFastJet.cxx @@ -750,10 +750,10 @@ struct nucleiWithFastJet { } // pikEnd } } // anti-particle - } //////////////////////////////////////// + //////////////////////////////////////// // within jet end - ////////////////////////////////////////// - else { + ////////////////////////////////////////// + } else { jetHist.fill(HIST("tracks/h2TPCsignVsTPCmomentum_OutJet"), trk.tpcInnerParam() / (1.f * trk.sign()), trk.tpcSignal()); if (addTOFplots && trk.hasTOF()) { jetHist.fill(HIST("tracks/h2TOFbetaVsP_OutJet"), trk.p() / (1.f * trk.sign()), trk.beta()); @@ -1047,7 +1047,7 @@ struct nucleiWithFastJet { } } } // track - } // process mc + } // process mc void processMCRec(o2::aod::JCollision const& collisionJet, soa::Join const& tracks, soa::Filtered const& mcdjets, aod::McParticles const&, TrackCandidatesMC const& fulltracks) @@ -1335,7 +1335,7 @@ struct nucleiWithFastJet { } } // DetJet - } // jet constituents + } // jet constituents } // process @@ -1394,7 +1394,7 @@ struct nucleiWithFastJet { jetHist.fill(HIST("genmatched/hRecMatchedJetEta"), mcpjet.eta(), mcpjet.eta() - mcdjet.eta()); } // mcdJet - } // mcpJet + } // mcpJet for (const auto& mcParticle : mcParticles) { if (fabs(mcParticle.eta()) > cfgtrkMaxEta) From 1852de4306c9f22dc60d43a523239626c0f8aaf3 Mon Sep 17 00:00:00 2001 From: arvindkhuntia <31609955+arvindkhuntia@users.noreply.github.com> Date: Wed, 7 Aug 2024 21:59:44 +0200 Subject: [PATCH 05/13] Update nucleiWithFastJet.cxx --- PWGJE/Tasks/nucleiWithFastJet.cxx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/PWGJE/Tasks/nucleiWithFastJet.cxx b/PWGJE/Tasks/nucleiWithFastJet.cxx index a6d37e4ddbe..81553536cca 100644 --- a/PWGJE/Tasks/nucleiWithFastJet.cxx +++ b/PWGJE/Tasks/nucleiWithFastJet.cxx @@ -1047,7 +1047,7 @@ struct nucleiWithFastJet { } } } // track - } // process mc + } // process mc void processMCRec(o2::aod::JCollision const& collisionJet, soa::Join const& tracks, soa::Filtered const& mcdjets, aod::McParticles const&, TrackCandidatesMC const& fulltracks) @@ -1335,7 +1335,7 @@ struct nucleiWithFastJet { } } // DetJet - } // jet constituents + } // jet constituents } // process @@ -1394,7 +1394,7 @@ struct nucleiWithFastJet { jetHist.fill(HIST("genmatched/hRecMatchedJetEta"), mcpjet.eta(), mcpjet.eta() - mcdjet.eta()); } // mcdJet - } // mcpJet + } // mcpJet for (const auto& mcParticle : mcParticles) { if (fabs(mcParticle.eta()) > cfgtrkMaxEta) From db5715ff16af3c16434e7a6bac08b091f7764798 Mon Sep 17 00:00:00 2001 From: ALICE Action Bot Date: Wed, 7 Aug 2024 20:00:07 +0000 Subject: [PATCH 06/13] Please consider the following formatting changes --- PWGJE/Tasks/nucleiWithFastJet.cxx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/PWGJE/Tasks/nucleiWithFastJet.cxx b/PWGJE/Tasks/nucleiWithFastJet.cxx index 81553536cca..47443bf8c50 100644 --- a/PWGJE/Tasks/nucleiWithFastJet.cxx +++ b/PWGJE/Tasks/nucleiWithFastJet.cxx @@ -1047,7 +1047,7 @@ struct nucleiWithFastJet { } } } // track - } // process mc + } // process mc void processMCRec(o2::aod::JCollision const& collisionJet, soa::Join const& tracks, soa::Filtered const& mcdjets, aod::McParticles const&, TrackCandidatesMC const& fulltracks) @@ -1335,7 +1335,7 @@ struct nucleiWithFastJet { } } // DetJet - } // jet constituents + } // jet constituents } // process @@ -1394,7 +1394,7 @@ struct nucleiWithFastJet { jetHist.fill(HIST("genmatched/hRecMatchedJetEta"), mcpjet.eta(), mcpjet.eta() - mcdjet.eta()); } // mcdJet - } // mcpJet + } // mcpJet for (const auto& mcParticle : mcParticles) { if (fabs(mcParticle.eta()) > cfgtrkMaxEta) From fdb704e61c82ccda0c8ac0cb3722ba6f63ccf3d8 Mon Sep 17 00:00:00 2001 From: arvindkhuntia <31609955+arvindkhuntia@users.noreply.github.com> Date: Thu, 8 Aug 2024 09:45:05 +0200 Subject: [PATCH 07/13] Update nucleiWithFastJet.cxx --- PWGJE/Tasks/nucleiWithFastJet.cxx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/PWGJE/Tasks/nucleiWithFastJet.cxx b/PWGJE/Tasks/nucleiWithFastJet.cxx index 47443bf8c50..6b4d5ec9647 100644 --- a/PWGJE/Tasks/nucleiWithFastJet.cxx +++ b/PWGJE/Tasks/nucleiWithFastJet.cxx @@ -921,7 +921,7 @@ struct nucleiWithFastJet { } } - void processMCGen(o2::aod::JMcCollision const& collision, soa::SmallGroups> const& recoColls, aod::JMcParticles const& mcParticles, soa::Filtered const& mcpjets) + void processMCGen(o2::aod::JMcCollision const& collision, /*soa::SmallGroups> const& recoColls,*/ aod::JMcParticles const& mcParticles, soa::Filtered const& mcpjets) { jetHist.fill(HIST("mcpJet/eventStat"), 0.5); jetHist.fill(HIST("mcpJet/eventStat"), 1.5); @@ -1050,7 +1050,7 @@ struct nucleiWithFastJet { } // process mc void processMCRec(o2::aod::JCollision const& collisionJet, soa::Join const& tracks, - soa::Filtered const& mcdjets, aod::McParticles const&, TrackCandidatesMC const& fulltracks) + soa::Filtered const& mcdjets, aod::McParticles const&, TrackCandidatesMC const&) { jetHist.fill(HIST("mcdJet/eventStat"), 0.5); // JEhistos.fill(HIST("nEvents_MCRec"), 0.5); @@ -1341,8 +1341,8 @@ struct nucleiWithFastJet { int nprocessSimJEEvents = 0; void processGenMatched(aod::JMcCollision const& collision, - soa::SmallGroups> const& recocolls, - JetMCDetTable const& mcdjets, JetMCPartTable const& mcpjets, aod::JMcParticles const& mcParticles) + soa::SmallGroups> const& recocolls,*/ + JetMCDetTable const&, JetMCPartTable const& mcpjets, aod::JMcParticles const& mcParticles) { if (cDebugLevel > 0) { From 9d66fdfb8070af44129bbd0b0ab02521348bee1c Mon Sep 17 00:00:00 2001 From: arvindkhuntia <31609955+arvindkhuntia@users.noreply.github.com> Date: Thu, 8 Aug 2024 09:49:04 +0200 Subject: [PATCH 08/13] Update nucleiWithFastJet.cxx --- PWGJE/Tasks/nucleiWithFastJet.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PWGJE/Tasks/nucleiWithFastJet.cxx b/PWGJE/Tasks/nucleiWithFastJet.cxx index 6b4d5ec9647..0af40894125 100644 --- a/PWGJE/Tasks/nucleiWithFastJet.cxx +++ b/PWGJE/Tasks/nucleiWithFastJet.cxx @@ -1341,7 +1341,7 @@ struct nucleiWithFastJet { int nprocessSimJEEvents = 0; void processGenMatched(aod::JMcCollision const& collision, - soa::SmallGroups> const& recocolls,*/ + /*soa::SmallGroups> const& recocolls,*/ JetMCDetTable const&, JetMCPartTable const& mcpjets, aod::JMcParticles const& mcParticles) { From ed73a6056f8bdb32f2c303e647f54ea20c575a40 Mon Sep 17 00:00:00 2001 From: Arvind Khuntia Date: Mon, 12 Aug 2024 10:18:52 +0200 Subject: [PATCH 09/13] Comments addressed --- PWGJE/Tasks/nucleiWithFastJet.cxx | 484 +++++------------------------- 1 file changed, 78 insertions(+), 406 deletions(-) diff --git a/PWGJE/Tasks/nucleiWithFastJet.cxx b/PWGJE/Tasks/nucleiWithFastJet.cxx index 0af40894125..669fca1c48b 100644 --- a/PWGJE/Tasks/nucleiWithFastJet.cxx +++ b/PWGJE/Tasks/nucleiWithFastJet.cxx @@ -30,6 +30,7 @@ #include "Common/DataModel/PIDResponse.h" #include "CommonConstants/PhysicsConstants.h" #include "ReconstructionDataFormats/Track.h" + #include "PWGJE/Core/FastJetUtilities.h" #include "PWGJE/Core/JetDerivedDataUtilities.h" #include "PWGJE/DataModel/Jet.h" @@ -38,6 +39,53 @@ using namespace o2; using namespace o2::framework; using namespace o2::framework::expressions; struct nucleiWithFastJet { + + enum Particle { + kPion = 1, // π+ + kKaon = 2, // K+ + kProton = 3, // p + kDeuteron = 4, // d + kTriton = 5, // Tr + kHelium = 6 // He + }; + + int mapPDGToValue(int pdgCode) + { + switch (pdgCode) { + case 211: // π+ + return Particle::kPion; + case -211: // π- + return -Particle::kPion; + + case 321: // k+ + return Particle::kKaon; + case -321: // k- + return -Particle::kKaon; + + case 2212: // p + return Particle::kProton; + case -2212: // antip + return -Particle::kProton; + + case 1000010020: // Deuteron + return Particle::kDeuteron; + case -1000010020: // AntiDeuteron + return -Particle::kDeuteron; + + case 1000010030: // Triton + return Particle::kTriton; + case -1000010030: // AntiTriton + return -Particle::kTriton; + + case 1000020030: // Helium + return Particle::kHelium; + case -1000020030: // AntiHelium + return -Particle::kHelium; + default: + return 0; // Default case for unknown or unmapped PDG codes + } + } + Configurable cfgeventSelections{"cfgeventSelections", "sel8", "choose event selection"}; Configurable cfgtrackSelections{"cfgtrackSelections", "globalTracks", "set track selections"}; @@ -102,7 +150,7 @@ struct nucleiWithFastJet { using TrackCandidatesMC = soa::Join; + aod::TOFSignal /*, aod::McTrackLabels*/>; Filter jetCuts = aod::jet::pt > cfgjetPtMin&& aod::jet::r == nround(cfgjetR.node() * 100.0f); @@ -389,60 +437,9 @@ struct nucleiWithFastJet { } // PartilceJet-constituents - jetHist.add("mcpJet/proton/pt/PtProton", "Pt (p)", HistType::kTH1F, {{100, 0.f, 10.f}}); - jetHist.add("mcpJet/antiProton/pt/PtantiProton", "Pt (#bar{p})", HistType::kTH1F, {{100, 0.f, 10.f}}); - jetHist.add("mcpJet/deuteron/pt/PtDeuteron", "Pt (De)", HistType::kTH1F, {{100, 0.f, 10.f}}); - jetHist.add("mcpJet/antiDeuteron/pt/PtantiDeuteron", "Pt (#bar{De})", HistType::kTH1F, {{100, 0.f, 10.f}}); - jetHist.add("mcpJet/helium/pt/PtHelium", "Pt (He)", HistType::kTH1F, {{100, 0.f, 10.f}}); - jetHist.add("mcpJet/antiHelium/pt/PtantiHelium", "Pt (#bar{He})", HistType::kTH1F, {{100, 0.f, 10.f}}); - jetHist.add("mcpJet/triton/pt/PtTriton", "Pt (Tr)", HistType::kTH1F, {{100, 0.f, 10.f}}); - jetHist.add("mcpJet/antiTriton/pt/PtantiTriton", "Pt (#bar{Tr})", HistType::kTH1F, {{100, 0.f, 10.f}}); - - jetHist.add("mcpJet/proton/pt/PtProton_jet", "Pt (p)", HistType::kTH1F, {{100, 0.f, 10.f}}); - jetHist.add("mcpJet/antiProton/pt/PtantiProton_jet", "Pt (#bar{p})", HistType::kTH1F, {{100, 0.f, 10.f}}); - jetHist.add("mcpJet/deuteron/pt/PtDeuteron_jet", "Pt (De)", HistType::kTH1F, {{100, 0.f, 10.f}}); - jetHist.add("mcpJet/antiDeuteron/pt/PtantiDeuteron_jet", "Pt (#bar{De})", HistType::kTH1F, {{100, 0.f, 10.f}}); - jetHist.add("mcpJet/helium/pt/PtHelium_jet", "Pt (He)", HistType::kTH1F, {{100, 0.f, 10.f}}); - jetHist.add("mcpJet/antiHelium/pt/PtantiHelium_jet", "Pt (#bar{He})", HistType::kTH1F, {{100, 0.f, 10.f}}); - jetHist.add("mcpJet/triton/pt/PtTriton_jet", "Pt (Tr)", HistType::kTH1F, {{100, 0.f, 10.f}}); - jetHist.add("mcpJet/antiTriton/pt/PtantiTriton_jet", "Pt (#bar{Tr})", HistType::kTH1F, {{100, 0.f, 10.f}}); - - jetHist.add("mcpJet/proton/pt/PtProton_outJet", "Pt (p)", HistType::kTH1F, {{100, 0.f, 10.f}}); - jetHist.add("mcpJet/antiProton/pt/PtantiProton_outJet", "Pt (#bar{p})", HistType::kTH1F, {{100, 0.f, 10.f}}); - jetHist.add("mcpJet/deuteron/pt/PtDeuteron_outJet", "Pt (De)", HistType::kTH1F, {{100, 0.f, 10.f}}); - jetHist.add("mcpJet/antiDeuteron/pt/PtantiDeuteron_outJet", "Pt (#bar{De})", HistType::kTH1F, {{100, 0.f, 10.f}}); - jetHist.add("mcpJet/helium/pt/PtHelium_outJet", "Pt (He)", HistType::kTH1F, {{100, 0.f, 10.f}}); - jetHist.add("mcpJet/antiHelium/pt/PtantiHelium_outJet", "Pt (#bar{He})", HistType::kTH1F, {{100, 0.f, 10.f}}); - jetHist.add("mcpJet/triton/pt/PtTriton_outJet", "Pt (Tr)", HistType::kTH1F, {{100, 0.f, 10.f}}); - jetHist.add("mcpJet/antiTriton/pt/PtantiTriton_outJet", "Pt (#bar{Tr})", HistType::kTH1F, {{100, 0.f, 10.f}}); - + jetHist.add("mcpJet/pt/PtParticleType", "Pt (p) vs jetflag vs particletype", HistType::kTH3D, {{100, 0.f, 10.f}, {2, 0, 2}, {14, -7, 7}}); // detectorJet-constituents - jetHist.add("mcdJet/proton/pt/PtProton", "Pt (p)", HistType::kTH1F, {{100, 0.f, 10.f}}); - jetHist.add("mcdJet/antiProton/pt/PtantiProton", "Pt (#bar{p})", HistType::kTH1F, {{100, 0.f, 10.f}}); - jetHist.add("mcdJet/deuteron/pt/PtDeuteron", "Pt (De)", HistType::kTH1F, {{100, 0.f, 10.f}}); - jetHist.add("mcdJet/antiDeuteron/pt/PtantiDeuteron", "Pt (#bar{De})", HistType::kTH1F, {{100, 0.f, 10.f}}); - jetHist.add("mcdJet/helium/pt/PtHelium", "Pt (He)", HistType::kTH1F, {{100, 0.f, 10.f}}); - jetHist.add("mcdJet/antiHelium/pt/PtantiHelium", "Pt (#bar{He})", HistType::kTH1F, {{100, 0.f, 10.f}}); - jetHist.add("mcdJet/triton/pt/PtTriton", "Pt (Tr)", HistType::kTH1F, {{100, 0.f, 10.f}}); - jetHist.add("mcdJet/antiTriton/pt/PtantiTriton", "Pt (#bar{Tr})", HistType::kTH1F, {{100, 0.f, 10.f}}); - - jetHist.add("mcdJet/proton/pt/PtProton_jet", "Pt (p)", HistType::kTH1F, {{100, 0.f, 10.f}}); - jetHist.add("mcdJet/antiProton/pt/PtantiProton_jet", "Pt (#bar{p})", HistType::kTH1F, {{100, 0.f, 10.f}}); - jetHist.add("mcdJet/deuteron/pt/PtDeuteron_jet", "Pt (De)", HistType::kTH1F, {{100, 0.f, 10.f}}); - jetHist.add("mcdJet/antiDeuteron/pt/PtantiDeuteron_jet", "Pt (#bar{De})", HistType::kTH1F, {{100, 0.f, 10.f}}); - jetHist.add("mcdJet/helium/pt/PtHelium_jet", "Pt (He)", HistType::kTH1F, {{100, 0.f, 10.f}}); - jetHist.add("mcdJet/antiHelium/pt/PtantiHelium_jet", "Pt (#bar{He})", HistType::kTH1F, {{100, 0.f, 10.f}}); - jetHist.add("mcdJet/triton/pt/PtTriton_jet", "Pt (Tr)", HistType::kTH1F, {{100, 0.f, 10.f}}); - jetHist.add("mcdJet/antiTriton/pt/PtantiTriton_jet", "Pt (#bar{Tr})", HistType::kTH1F, {{100, 0.f, 10.f}}); - - jetHist.add("mcdJet/proton/pt/PtProton_outJet", "Pt (p)", HistType::kTH1F, {{100, 0.f, 10.f}}); - jetHist.add("mcdJet/antiProton/pt/PtantiProton_outJet", "Pt (#bar{p})", HistType::kTH1F, {{100, 0.f, 10.f}}); - jetHist.add("mcdJet/deuteron/pt/PtDeuteron_outJet", "Pt (De)", HistType::kTH1F, {{100, 0.f, 10.f}}); - jetHist.add("mcdJet/antiDeuteron/pt/PtantiDeuteron_outJet", "Pt (#bar{De})", HistType::kTH1F, {{100, 0.f, 10.f}}); - jetHist.add("mcdJet/helium/pt/PtHelium_outJet", "Pt (He)", HistType::kTH1F, {{100, 0.f, 10.f}}); - jetHist.add("mcdJet/antiHelium/pt/PtantiHelium_outJet", "Pt (#bar{He})", HistType::kTH1F, {{100, 0.f, 10.f}}); - jetHist.add("mcdJet/triton/pt/PtTriton_outJet", "Pt (Tr)", HistType::kTH1F, {{100, 0.f, 10.f}}); - jetHist.add("mcdJet/antiTriton/pt/PtantiTriton_outJet", "Pt (#bar{Tr})", HistType::kTH1F, {{100, 0.f, 10.f}}); + jetHist.add("mcdJet/pt/PtParticleType", "Pt (p) vs jetflag vs particletype", HistType::kTH3D, {{100, 0.f, 10.f}, {2, 0, 2}, {14, -7, 7}}); jetHist.add("mcpJet/hJetPt", "Pt (jet)", HistType::kTH1F, {{100, 0.f, 50.f}}); jetHist.add("mcpJet/hJetEta", "Eta (jet)", HistType::kTH1F, {{100, 1.5, 1.5}}); @@ -462,32 +459,7 @@ struct nucleiWithFastJet { jetHist.add("recmatched/hRecJetPt", "matched jet pT (Rec level);#it{p}_{T,jet part} (GeV/#it{c}); #it{p}_{T,jet part} - #it{p}_{T,jet det}", HistType::kTH1F, {{100, 0., 100.}}); jetHist.add("recmatched/hGenJetPt", "matched jet pT (Rec level);#it{p}_{T,jet part} (GeV/#it{c}); #it{p}_{T,jet part} - #it{p}_{T,jet det}", HistType::kTH1F, {{100, 0., 100.}}); - jetHist.add("recmatched/proton/pt/PtProton", "Pt (p)", HistType::kTH1F, {{100, 0.f, 10.f}}); - jetHist.add("recmatched/antiProton/pt/PtantiProton", "Pt (#bar{p})", HistType::kTH1F, {{100, 0.f, 10.f}}); - jetHist.add("recmatched/deuteron/pt/PtDeuteron", "Pt (De)", HistType::kTH1F, {{100, 0.f, 10.f}}); - jetHist.add("recmatched/antiDeuteron/pt/PtantiDeuteron", "Pt (#bar{De})", HistType::kTH1F, {{100, 0.f, 10.f}}); - jetHist.add("recmatched/helium/pt/PtHelium", "Pt (He)", HistType::kTH1F, {{100, 0.f, 10.f}}); - jetHist.add("recmatched/antiHelium/pt/PtantiHelium", "Pt (#bar{He})", HistType::kTH1F, {{100, 0.f, 10.f}}); - jetHist.add("recmatched/triton/pt/PtTriton", "Pt (Tr)", HistType::kTH1F, {{100, 0.f, 10.f}}); - jetHist.add("recmatched/antiTriton/pt/PtantiTriton", "Pt (#bar{Tr})", HistType::kTH1F, {{100, 0.f, 10.f}}); - - jetHist.add("recmatched/proton/pt/PtProton_jet", "Pt (p)", HistType::kTH1F, {{100, 0.f, 10.f}}); - jetHist.add("recmatched/antiProton/pt/PtantiProton_jet", "Pt (#bar{p})", HistType::kTH1F, {{100, 0.f, 10.f}}); - jetHist.add("recmatched/deuteron/pt/PtDeuteron_jet", "Pt (De)", HistType::kTH1F, {{100, 0.f, 10.f}}); - jetHist.add("recmatched/antiDeuteron/pt/PtantiDeuteron_jet", "Pt (#bar{De})", HistType::kTH1F, {{100, 0.f, 10.f}}); - jetHist.add("recmatched/helium/pt/PtHelium_jet", "Pt (He)", HistType::kTH1F, {{100, 0.f, 10.f}}); - jetHist.add("recmatched/antiHelium/pt/PtantiHelium_jet", "Pt (#bar{He})", HistType::kTH1F, {{100, 0.f, 10.f}}); - jetHist.add("recmatched/triton/pt/PtTriton_jet", "Pt (Tr)", HistType::kTH1F, {{100, 0.f, 10.f}}); - jetHist.add("recmatched/antiTriton/pt/PtantiTriton_jet", "Pt (#bar{Tr})", HistType::kTH1F, {{100, 0.f, 10.f}}); - - jetHist.add("recmatched/proton/pt/PtProton_outJet", "Pt (p)", HistType::kTH1F, {{100, 0.f, 10.f}}); - jetHist.add("recmatched/antiProton/pt/PtantiProton_outJet", "Pt (#bar{p})", HistType::kTH1F, {{100, 0.f, 10.f}}); - jetHist.add("recmatched/deuteron/pt/PtDeuteron_outJet", "Pt (De)", HistType::kTH1F, {{100, 0.f, 10.f}}); - jetHist.add("recmatched/antiDeuteron/pt/PtantiDeuteron_outJet", "Pt (#bar{De})", HistType::kTH1F, {{100, 0.f, 10.f}}); - jetHist.add("recmatched/helium/pt/PtHelium_outJet", "Pt (He)", HistType::kTH1F, {{100, 0.f, 10.f}}); - jetHist.add("recmatched/antiHelium/pt/PtantiHelium_outJet", "Pt (#bar{He})", HistType::kTH1F, {{100, 0.f, 10.f}}); - jetHist.add("recmatched/triton/pt/PtTriton_outJet", "Pt (Tr)", HistType::kTH1F, {{100, 0.f, 10.f}}); - jetHist.add("recmatched/antiTriton/pt/PtantiTriton_outJet", "Pt (#bar{Tr})", HistType::kTH1F, {{100, 0.f, 10.f}}); + jetHist.add("recmatched/pt/PtParticleType", "Pt (p) vs jetflag vs particletype", HistType::kTH3D, {{100, 0.f, 10.f}, {2, 0, 2}, {14, -7, 7}}); // gen matched jetHist.add("genmatched/hRecMatchedJetPt", "matched jet pT (Rec level);#it{p}_{T,jet part} (GeV/#it{c}); #it{p}_{T,jet part} - #it{p}_{T,jet det}", HistType::kTH2F, {{100, 0., 100.}, {400, -20., 20.}}); @@ -500,32 +472,7 @@ struct nucleiWithFastJet { jetHist.add("genmatched/hRecJetWithGenPt", "matched jet pT (Rec level);#it{p}_{T,jet part} (GeV/#it{c}); #it{p}_{T,jet part} - #it{p}_{T,jet det}", HistType::kTH1F, {{100, 0., 100.}}); jetHist.add("genmatched/hGenJetPtMatched", "matched jet pT (Rec level);#it{p}_{T,jet part} (GeV/#it{c}); #it{p}_{T,jet part} - #it{p}_{T,jet det}", HistType::kTH1F, {{100, 0., 100.}}); - jetHist.add("genmatched/proton/pt/PtProton", "Pt (p)", HistType::kTH1F, {{100, 0.f, 10.f}}); - jetHist.add("genmatched/antiProton/pt/PtantiProton", "Pt (#bar{p})", HistType::kTH1F, {{100, 0.f, 10.f}}); - jetHist.add("genmatched/deuteron/pt/PtDeuteron", "Pt (De)", HistType::kTH1F, {{100, 0.f, 10.f}}); - jetHist.add("genmatched/antiDeuteron/pt/PtantiDeuteron", "Pt (#bar{De})", HistType::kTH1F, {{100, 0.f, 10.f}}); - jetHist.add("genmatched/helium/pt/PtHelium", "Pt (He)", HistType::kTH1F, {{100, 0.f, 10.f}}); - jetHist.add("genmatched/antiHelium/pt/PtantiHelium", "Pt (#bar{He})", HistType::kTH1F, {{100, 0.f, 10.f}}); - jetHist.add("genmatched/triton/pt/PtTriton", "Pt (Tr)", HistType::kTH1F, {{100, 0.f, 10.f}}); - jetHist.add("genmatched/antiTriton/pt/PtantiTriton", "Pt (#bar{Tr})", HistType::kTH1F, {{100, 0.f, 10.f}}); - - jetHist.add("genmatched/proton/pt/PtProton_jet", "Pt (p)", HistType::kTH1F, {{100, 0.f, 10.f}}); - jetHist.add("genmatched/antiProton/pt/PtantiProton_jet", "Pt (#bar{p})", HistType::kTH1F, {{100, 0.f, 10.f}}); - jetHist.add("genmatched/deuteron/pt/PtDeuteron_jet", "Pt (De)", HistType::kTH1F, {{100, 0.f, 10.f}}); - jetHist.add("genmatched/antiDeuteron/pt/PtantiDeuteron_jet", "Pt (#bar{De})", HistType::kTH1F, {{100, 0.f, 10.f}}); - jetHist.add("genmatched/helium/pt/PtHelium_jet", "Pt (He)", HistType::kTH1F, {{100, 0.f, 10.f}}); - jetHist.add("genmatched/antiHelium/pt/PtantiHelium_jet", "Pt (#bar{He})", HistType::kTH1F, {{100, 0.f, 10.f}}); - jetHist.add("genmatched/triton/pt/PtTriton_jet", "Pt (Tr)", HistType::kTH1F, {{100, 0.f, 10.f}}); - jetHist.add("genmatched/antiTriton/pt/PtantiTriton_jet", "Pt (#bar{Tr})", HistType::kTH1F, {{100, 0.f, 10.f}}); - - jetHist.add("genmatched/proton/pt/PtProton_outJet", "Pt (p)", HistType::kTH1F, {{100, 0.f, 10.f}}); - jetHist.add("genmatched/antiProton/pt/PtantiProton_outJet", "Pt (#bar{p})", HistType::kTH1F, {{100, 0.f, 10.f}}); - jetHist.add("genmatched/deuteron/pt/PtDeuteron_outJet", "Pt (De)", HistType::kTH1F, {{100, 0.f, 10.f}}); - jetHist.add("genmatched/antiDeuteron/pt/PtantiDeuteron_outJet", "Pt (#bar{De})", HistType::kTH1F, {{100, 0.f, 10.f}}); - jetHist.add("genmatched/helium/pt/PtHelium_outJet", "Pt (He)", HistType::kTH1F, {{100, 0.f, 10.f}}); - jetHist.add("genmatched/antiHelium/pt/PtantiHelium_outJet", "Pt (#bar{He})", HistType::kTH1F, {{100, 0.f, 10.f}}); - jetHist.add("genmatched/triton/pt/PtTriton_outJet", "Pt (Tr)", HistType::kTH1F, {{100, 0.f, 10.f}}); - jetHist.add("genmatched/antiTriton/pt/PtantiTriton_outJet", "Pt (#bar{Tr})", HistType::kTH1F, {{100, 0.f, 10.f}}); + jetHist.add("genmatched/pt/PtParticleType", "Pt (p) vs jetflag vs particletype", HistType::kTH3D, {{100, 0.f, 10.f}, {2, 0, 2}, {14, -7, 7}}); } } @@ -974,83 +921,15 @@ struct nucleiWithFastJet { // jetPt = mcpjet.pt(); break; } // jet - - if (mcParticle.pdgCode() == PDGProton) { - jetHist.fill(HIST("mcpJet/proton/pt/PtProton"), mcParticle.pt()); - if (jetFlag) { - jetHist.fill(HIST("mcpJet/proton/pt/PtProton_jet"), mcParticle.pt()); - } else { - jetHist.fill(HIST("mcpJet/proton/pt/PtProton_outJet"), mcParticle.pt()); - } + if (mapPDGToValue(mcParticle.pdgCode())) { + jetHist.fill(HIST("mcpJet/pt/PtParticleType"), mcParticle.pt(), jetFlag, mapPDGToValue(mcParticle.pdgCode())); } - if (mcParticle.pdgCode() == -PDGProton) { - jetHist.fill(HIST("mcpJet/antiProton/pt/PtantiProton"), mcParticle.pt()); - if (jetFlag) { - jetHist.fill(HIST("mcpJet/antiProton/pt/PtantiProton_jet"), mcParticle.pt()); - } else { - jetHist.fill(HIST("mcpJet/antiProton/pt/PtantiProton_outJet"), mcParticle.pt()); - } - } - - if (mcParticle.pdgCode() == PDGDeuteron) { - jetHist.fill(HIST("mcpJet/deuteron/pt/PtDeuteron"), mcParticle.pt()); - if (jetFlag) { - jetHist.fill(HIST("mcpJet/deuteron/pt/PtDeuteron_jet"), mcParticle.pt()); - } else { - jetHist.fill(HIST("mcpJet/deuteron/pt/PtDeuteron_outJet"), mcParticle.pt()); - } - } - - if (mcParticle.pdgCode() == -PDGDeuteron) { - jetHist.fill(HIST("mcpJet/antiDeuteron/pt/PtantiDeuteron"), mcParticle.pt()); - if (jetFlag) { - jetHist.fill(HIST("mcpJet/antiDeuteron/pt/PtantiDeuteron_jet"), mcParticle.pt()); - } else { - jetHist.fill(HIST("mcpJet/antiDeuteron/pt/PtantiDeuteron_outJet"), mcParticle.pt()); - } - } - - if (mcParticle.pdgCode() == PDGHelium) { - jetHist.fill(HIST("mcpJet/helium/pt/PtHelium"), mcParticle.pt()); - if (jetFlag) { - jetHist.fill(HIST("mcpJet/helium/pt/PtHelium_jet"), mcParticle.pt()); - } else { - jetHist.fill(HIST("mcpJet/helium/pt/PtHelium_outJet"), mcParticle.pt()); - } - } - - if (mcParticle.pdgCode() == -PDGHelium) { - jetHist.fill(HIST("mcpJet/antiHelium/pt/PtantiHelium"), mcParticle.pt()); - if (jetFlag) { - jetHist.fill(HIST("mcpJet/antiHelium/pt/PtantiHelium_jet"), mcParticle.pt()); - } else { - jetHist.fill(HIST("mcpJet/antiHelium/pt/PtantiHelium_outJet"), mcParticle.pt()); - } - } - - if (mcParticle.pdgCode() == PDGTriton) { - jetHist.fill(HIST("mcpJet/triton/pt/PtTriton"), mcParticle.pt()); - if (jetFlag) { - jetHist.fill(HIST("mcpJet/triton/pt/PtTriton_jet"), mcParticle.pt()); - } else { - jetHist.fill(HIST("mcpJet/triton/pt/PtTriton_outJet"), mcParticle.pt()); - } - } - - if (mcParticle.pdgCode() == -PDGTriton) { - jetHist.fill(HIST("mcpJet/antiTriton/pt/PtantiTriton"), mcParticle.pt()); - if (jetFlag) { - jetHist.fill(HIST("mcpJet/antiTriton/pt/PtantiTriton_jet"), mcParticle.pt()); - } else { - jetHist.fill(HIST("mcpJet/antiTriton/pt/PtantiTriton_outJet"), mcParticle.pt()); - } - } } // track - } // process mc + } // process mc - void processMCRec(o2::aod::JCollision const& collisionJet, soa::Join const& tracks, - soa::Filtered const& mcdjets, aod::McParticles const&, TrackCandidatesMC const&) + void processMCRec(o2::aod::JCollision const& collisionJet, soa::Join const& tracks, + soa::Filtered const& mcdjets, TrackCandidatesMC const&, JetParticles const&) { jetHist.fill(HIST("mcdJet/eventStat"), 0.5); // JEhistos.fill(HIST("nEvents_MCRec"), 0.5); @@ -1086,23 +965,20 @@ struct nucleiWithFastJet { jetHist.fill(HIST("mcdJet/vertexZ"), collisionJet.posZ()); jetHist.fill(HIST("mcdJet/nJetsPerEvent"), nJets); - for (const auto& track : tracks) { + for (auto& track : tracks) { auto fullTrack = track.track_as(); - if (!isTrackSelected(fullTrack)) continue; - if (fabs(fullTrack.eta()) > cfgtrkMaxEta) - continue; if (!track.has_mcParticle()) continue; - if (!track.mcParticle().isPhysicalPrimary()) + auto mcTrack = track.mcParticle_as(); + if (fabs(mcTrack.eta()) > cfgtrkMaxEta) continue; - if (fabs(track.mcParticle().y()) > cfgtrkMaxRap) + if (!mcTrack.isPhysicalPrimary()) continue; bool jetFlag = false; // float jetPt = -999.; - for (auto& mcdjet : mcdjets) { double delPhi = TVector2::Phi_mpi_pi(mcdjet.phi() - track.phi()); double delEta = mcdjet.eta() - track.eta(); @@ -1113,83 +989,16 @@ struct nucleiWithFastJet { break; } // jet - if (track.mcParticle().pdgCode() == PDGProton) { - jetHist.fill(HIST("mcdJet/proton/pt/PtProton"), track.mcParticle().pt()); - if (jetFlag) { - jetHist.fill(HIST("mcdJet/proton/pt/PtProton_jet"), track.mcParticle().pt()); - } else { - jetHist.fill(HIST("mcdJet/proton/pt/PtProton_outJet"), track.mcParticle().pt()); - } + if (mapPDGToValue(mcTrack.pdgCode())) { + jetHist.fill(HIST("mcdJet/pt/PtParticleType"), mcTrack.pt(), jetFlag, mapPDGToValue(mcTrack.pdgCode())); } - if (track.mcParticle().pdgCode() == -PDGProton) { - jetHist.fill(HIST("mcdJet/antiProton/pt/PtantiProton"), track.mcParticle().pt()); - if (jetFlag) { - jetHist.fill(HIST("mcdJet/antiProton/pt/PtantiProton_jet"), track.mcParticle().pt()); - } else { - jetHist.fill(HIST("mcdJet/antiProton/pt/PtantiProton_outJet"), track.mcParticle().pt()); - } - } - - if (track.mcParticle().pdgCode() == PDGDeuteron) { - jetHist.fill(HIST("mcdJet/deuteron/pt/PtDeuteron"), track.mcParticle().pt()); - if (jetFlag) { - jetHist.fill(HIST("mcdJet/deuteron/pt/PtDeuteron_jet"), track.mcParticle().pt()); - } else { - jetHist.fill(HIST("mcdJet/deuteron/pt/PtDeuteron_outJet"), track.mcParticle().pt()); - } - } - - if (track.mcParticle().pdgCode() == -PDGDeuteron) { - jetHist.fill(HIST("mcdJet/antiDeuteron/pt/PtantiDeuteron"), track.mcParticle().pt()); - if (jetFlag) { - jetHist.fill(HIST("mcdJet/antiDeuteron/pt/PtantiDeuteron_jet"), track.mcParticle().pt()); - } else { - jetHist.fill(HIST("mcdJet/antiDeuteron/pt/PtantiDeuteron_outJet"), track.mcParticle().pt()); - } - } - - if (track.mcParticle().pdgCode() == PDGHelium) { - jetHist.fill(HIST("mcdJet/helium/pt/PtHelium"), track.mcParticle().pt()); - if (jetFlag) { - jetHist.fill(HIST("mcdJet/helium/pt/PtHelium_jet"), track.mcParticle().pt()); - } else { - jetHist.fill(HIST("mcdJet/helium/pt/PtHelium_outJet"), track.mcParticle().pt()); - } - } - - if (track.mcParticle().pdgCode() == -PDGHelium) { - jetHist.fill(HIST("mcdJet/antiHelium/pt/PtantiHelium"), track.mcParticle().pt()); - if (jetFlag) { - jetHist.fill(HIST("mcdJet/antiHelium/pt/PtantiHelium_jet"), track.mcParticle().pt()); - } else { - jetHist.fill(HIST("mcdJet/antiHelium/pt/PtantiHelium_outJet"), track.mcParticle().pt()); - } - } - - if (track.mcParticle().pdgCode() == PDGTriton) { - jetHist.fill(HIST("mcdJet/triton/pt/PtTriton"), track.mcParticle().pt()); - if (jetFlag) { - jetHist.fill(HIST("mcdJet/triton/pt/PtTriton_jet"), track.mcParticle().pt()); - } else { - jetHist.fill(HIST("mcdJet/triton/pt/PtTriton_outJet"), track.mcParticle().pt()); - } - } - - if (track.mcParticle().pdgCode() == -PDGTriton) { - jetHist.fill(HIST("mcdJet/antiTriton/pt/PtantiTriton"), track.mcParticle().pt()); - if (jetFlag) { - jetHist.fill(HIST("mcdJet/antiTriton/pt/PtantiTriton_jet"), track.mcParticle().pt()); - } else { - jetHist.fill(HIST("mcdJet/antiTriton/pt/PtantiTriton_outJet"), track.mcParticle().pt()); - } - } } // tracks } void processRecMatched(aod::JCollision const& collision, JetMCDetTable const& mcdjets, - soa::Join const& tracks, - JetMCPartTable const&, TrackCandidatesMC const&, aod::McParticles const&) + soa::Join const& tracks, + JetMCPartTable const&, TrackCandidatesMC const&, aod::JMcParticles const&) { if (fabs(collision.posZ()) > 10) return; @@ -1247,8 +1056,9 @@ struct nucleiWithFastJet { continue; if (!isTrackSelected(completeTrack)) continue; - if (!completeTrack.has_mcParticle()) + if (!track.has_mcParticle()) continue; + auto mcTrack = track.mcParticle_as(); // add pid later bool jetFlag = false; @@ -1259,84 +1069,14 @@ struct nucleiWithFastJet { if (R < cfgjetR) { jetFlag = true; - // break; - } - - if (track.mcParticle().pdgCode() == PDGProton) { - jetHist.fill(HIST("recmatched/proton/pt/PtProton"), track.mcParticle().pt()); - if (jetFlag) { - jetHist.fill(HIST("recmatched/proton/pt/PtProton_jet"), track.mcParticle().pt()); - } else { - jetHist.fill(HIST("recmatched/proton/pt/PtProton_outJet"), track.mcParticle().pt()); - } - } - - if (track.mcParticle().pdgCode() == -PDGProton) { - jetHist.fill(HIST("recmatched/antiProton/pt/PtantiProton"), track.mcParticle().pt()); - if (jetFlag) { - jetHist.fill(HIST("recmatched/antiProton/pt/PtantiProton_jet"), track.mcParticle().pt()); - } else { - jetHist.fill(HIST("recmatched/antiProton/pt/PtantiProton_outJet"), track.mcParticle().pt()); - } - } - - if (track.mcParticle().pdgCode() == PDGDeuteron) { - jetHist.fill(HIST("recmatched/deuteron/pt/PtDeuteron"), track.mcParticle().pt()); - if (jetFlag) { - jetHist.fill(HIST("recmatched/deuteron/pt/PtDeuteron_jet"), track.mcParticle().pt()); - } else { - jetHist.fill(HIST("recmatched/deuteron/pt/PtDeuteron_outJet"), track.mcParticle().pt()); - } - } - - if (track.mcParticle().pdgCode() == -PDGDeuteron) { - jetHist.fill(HIST("recmatched/antiDeuteron/pt/PtantiDeuteron"), track.mcParticle().pt()); - if (jetFlag) { - jetHist.fill(HIST("recmatched/antiDeuteron/pt/PtantiDeuteron_jet"), track.mcParticle().pt()); - } else { - jetHist.fill(HIST("recmatched/antiDeuteron/pt/PtantiDeuteron_outJet"), track.mcParticle().pt()); - } - } - - if (track.mcParticle().pdgCode() == PDGHelium) { - jetHist.fill(HIST("recmatched/helium/pt/PtHelium"), track.mcParticle().pt()); - if (jetFlag) { - jetHist.fill(HIST("recmatched/helium/pt/PtHelium_jet"), track.mcParticle().pt()); - } else { - jetHist.fill(HIST("recmatched/helium/pt/PtHelium_outJet"), track.mcParticle().pt()); - } - } - - if (track.mcParticle().pdgCode() == -PDGHelium) { - jetHist.fill(HIST("recmatched/antiHelium/pt/PtantiHelium"), track.mcParticle().pt()); - if (jetFlag) { - jetHist.fill(HIST("recmatched/antiHelium/pt/PtantiHelium_jet"), track.mcParticle().pt()); - } else { - jetHist.fill(HIST("recmatched/antiHelium/pt/PtantiHelium_outJet"), track.mcParticle().pt()); - } - } - - if (track.mcParticle().pdgCode() == PDGTriton) { - jetHist.fill(HIST("recmatched/triton/pt/PtTriton"), track.mcParticle().pt()); - if (jetFlag) { - jetHist.fill(HIST("recmatched/triton/pt/PtTriton_jet"), track.mcParticle().pt()); - } else { - jetHist.fill(HIST("recmatched/triton/pt/PtTriton_outJet"), track.mcParticle().pt()); - } - } - - if (track.mcParticle().pdgCode() == -PDGTriton) { - jetHist.fill(HIST("recmatched/antiTriton/pt/PtantiTriton"), track.mcParticle().pt()); - if (jetFlag) { - jetHist.fill(HIST("recmatched/antiTriton/pt/PtantiTriton_jet"), track.mcParticle().pt()); - } else { - jetHist.fill(HIST("recmatched/antiTriton/pt/PtantiTriton_outJet"), track.mcParticle().pt()); - } + break; } + } - } // DetJet - } // jet constituents - + if (mapPDGToValue(mcTrack.pdgCode())) { + jetHist.fill(HIST("recmatched/pt/PtParticleType"), mcTrack.pt(), jetFlag, mapPDGToValue(mcTrack.pdgCode())); + } + } // tracks } // process int nprocessSimJEEvents = 0; @@ -1394,7 +1134,7 @@ struct nucleiWithFastJet { jetHist.fill(HIST("genmatched/hRecMatchedJetEta"), mcpjet.eta(), mcpjet.eta() - mcdjet.eta()); } // mcdJet - } // mcpJet + } // mcpJet for (const auto& mcParticle : mcParticles) { if (fabs(mcParticle.eta()) > cfgtrkMaxEta) @@ -1409,79 +1149,11 @@ struct nucleiWithFastJet { if (R < cfgjetR) { jetFlag = true; - // break; + break; } } // DetJet - if (mcParticle.pdgCode() == PDGProton) { - jetHist.fill(HIST("genmatched/proton/pt/PtProton"), mcParticle.pt()); - if (jetFlag) { - jetHist.fill(HIST("genmatched/proton/pt/PtProton_jet"), mcParticle.pt()); - } else { - jetHist.fill(HIST("genmatched/proton/pt/PtProton_outJet"), mcParticle.pt()); - } - } - - if (mcParticle.pdgCode() == -PDGProton) { - jetHist.fill(HIST("genmatched/antiProton/pt/PtantiProton"), mcParticle.pt()); - if (jetFlag) { - jetHist.fill(HIST("genmatched/antiProton/pt/PtantiProton_jet"), mcParticle.pt()); - } else { - jetHist.fill(HIST("genmatched/antiProton/pt/PtantiProton_outJet"), mcParticle.pt()); - } - } - - if (mcParticle.pdgCode() == PDGDeuteron) { - jetHist.fill(HIST("genmatched/deuteron/pt/PtDeuteron"), mcParticle.pt()); - if (jetFlag) { - jetHist.fill(HIST("genmatched/deuteron/pt/PtDeuteron_jet"), mcParticle.pt()); - } else { - jetHist.fill(HIST("genmatched/deuteron/pt/PtDeuteron_outJet"), mcParticle.pt()); - } - } - - if (mcParticle.pdgCode() == -PDGDeuteron) { - jetHist.fill(HIST("genmatched/antiDeuteron/pt/PtantiDeuteron"), mcParticle.pt()); - if (jetFlag) { - jetHist.fill(HIST("genmatched/antiDeuteron/pt/PtantiDeuteron_jet"), mcParticle.pt()); - } else { - jetHist.fill(HIST("genmatched/antiDeuteron/pt/PtantiDeuteron_outJet"), mcParticle.pt()); - } - } - - if (mcParticle.pdgCode() == PDGHelium) { - jetHist.fill(HIST("genmatched/helium/pt/PtHelium"), mcParticle.pt()); - if (jetFlag) { - jetHist.fill(HIST("genmatched/helium/pt/PtHelium_jet"), mcParticle.pt()); - } else { - jetHist.fill(HIST("genmatched/helium/pt/PtHelium_outJet"), mcParticle.pt()); - } - } - - if (mcParticle.pdgCode() == -PDGHelium) { - jetHist.fill(HIST("genmatched/antiHelium/pt/PtantiHelium"), mcParticle.pt()); - if (jetFlag) { - jetHist.fill(HIST("genmatched/antiHelium/pt/PtantiHelium_jet"), mcParticle.pt()); - } else { - jetHist.fill(HIST("genmatched/antiHelium/pt/PtantiHelium_outJet"), mcParticle.pt()); - } - } - - if (mcParticle.pdgCode() == PDGTriton) { - jetHist.fill(HIST("genmatched/triton/pt/PtTriton"), mcParticle.pt()); - if (jetFlag) { - jetHist.fill(HIST("genmatched/triton/pt/PtTriton_jet"), mcParticle.pt()); - } else { - jetHist.fill(HIST("genmatched/triton/pt/PtTriton_outJet"), mcParticle.pt()); - } - } - - if (mcParticle.pdgCode() == -PDGTriton) { - jetHist.fill(HIST("genmatched/antiTriton/pt/PtantiTriton"), mcParticle.pt()); - if (jetFlag) { - jetHist.fill(HIST("genmatched/antiTriton/pt/PtantiTriton_jet"), mcParticle.pt()); - } else { - jetHist.fill(HIST("genmatched/antiTriton/pt/PtantiTriton_outJet"), mcParticle.pt()); - } + if (mapPDGToValue(mcParticle.pdgCode())) { + jetHist.fill(HIST("genmatched/pt/PtParticleType"), mcParticle.pt(), jetFlag, mapPDGToValue(mcParticle.pdgCode())); } } // jet constituents From 03d725a2d3ee869e249ebf5767caabf60de7d157 Mon Sep 17 00:00:00 2001 From: ALICE Action Bot Date: Mon, 12 Aug 2024 08:19:40 +0000 Subject: [PATCH 10/13] Please consider the following formatting changes --- PWGJE/Tasks/nucleiWithFastJet.cxx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/PWGJE/Tasks/nucleiWithFastJet.cxx b/PWGJE/Tasks/nucleiWithFastJet.cxx index 669fca1c48b..7f02d155cf8 100644 --- a/PWGJE/Tasks/nucleiWithFastJet.cxx +++ b/PWGJE/Tasks/nucleiWithFastJet.cxx @@ -926,7 +926,7 @@ struct nucleiWithFastJet { } } // track - } // process mc + } // process mc void processMCRec(o2::aod::JCollision const& collisionJet, soa::Join const& tracks, soa::Filtered const& mcdjets, TrackCandidatesMC const&, JetParticles const&) @@ -1077,7 +1077,7 @@ struct nucleiWithFastJet { jetHist.fill(HIST("recmatched/pt/PtParticleType"), mcTrack.pt(), jetFlag, mapPDGToValue(mcTrack.pdgCode())); } } // tracks - } // process + } // process int nprocessSimJEEvents = 0; void processGenMatched(aod::JMcCollision const& collision, @@ -1134,7 +1134,7 @@ struct nucleiWithFastJet { jetHist.fill(HIST("genmatched/hRecMatchedJetEta"), mcpjet.eta(), mcpjet.eta() - mcdjet.eta()); } // mcdJet - } // mcpJet + } // mcpJet for (const auto& mcParticle : mcParticles) { if (fabs(mcParticle.eta()) > cfgtrkMaxEta) From a2038f92c5de735828c250e6f04bb0ef2b4f8f9e Mon Sep 17 00:00:00 2001 From: Arvind Khuntia Date: Wed, 14 Aug 2024 10:45:49 +0200 Subject: [PATCH 11/13] Comment addressed --- PWGJE/Tasks/nucleiWithFastJet.cxx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/PWGJE/Tasks/nucleiWithFastJet.cxx b/PWGJE/Tasks/nucleiWithFastJet.cxx index 7f02d155cf8..fb10c0958d5 100644 --- a/PWGJE/Tasks/nucleiWithFastJet.cxx +++ b/PWGJE/Tasks/nucleiWithFastJet.cxx @@ -921,7 +921,7 @@ struct nucleiWithFastJet { // jetPt = mcpjet.pt(); break; } // jet - if (mapPDGToValue(mcParticle.pdgCode())) { + if (mapPDGToValue(mcParticle.pdgCode()) != 0) { jetHist.fill(HIST("mcpJet/pt/PtParticleType"), mcParticle.pt(), jetFlag, mapPDGToValue(mcParticle.pdgCode())); } @@ -989,7 +989,7 @@ struct nucleiWithFastJet { break; } // jet - if (mapPDGToValue(mcTrack.pdgCode())) { + if (mapPDGToValue(mcTrack.pdgCode()) != 0) { jetHist.fill(HIST("mcdJet/pt/PtParticleType"), mcTrack.pt(), jetFlag, mapPDGToValue(mcTrack.pdgCode())); } @@ -1073,7 +1073,7 @@ struct nucleiWithFastJet { } } - if (mapPDGToValue(mcTrack.pdgCode())) { + if (mapPDGToValue(mcTrack.pdgCode()) != 0) { jetHist.fill(HIST("recmatched/pt/PtParticleType"), mcTrack.pt(), jetFlag, mapPDGToValue(mcTrack.pdgCode())); } } // tracks @@ -1152,7 +1152,7 @@ struct nucleiWithFastJet { break; } } // DetJet - if (mapPDGToValue(mcParticle.pdgCode())) { + if (mapPDGToValue(mcParticle.pdgCode())!=0) { jetHist.fill(HIST("genmatched/pt/PtParticleType"), mcParticle.pt(), jetFlag, mapPDGToValue(mcParticle.pdgCode())); } } // jet constituents From f4469b16bee1461c4fb472591a1e5a6ba7210459 Mon Sep 17 00:00:00 2001 From: ALICE Action Bot Date: Wed, 14 Aug 2024 08:52:36 +0000 Subject: [PATCH 12/13] Please consider the following formatting changes --- PWGJE/Tasks/nucleiWithFastJet.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PWGJE/Tasks/nucleiWithFastJet.cxx b/PWGJE/Tasks/nucleiWithFastJet.cxx index fb10c0958d5..5c2fed2378b 100644 --- a/PWGJE/Tasks/nucleiWithFastJet.cxx +++ b/PWGJE/Tasks/nucleiWithFastJet.cxx @@ -1152,7 +1152,7 @@ struct nucleiWithFastJet { break; } } // DetJet - if (mapPDGToValue(mcParticle.pdgCode())!=0) { + if (mapPDGToValue(mcParticle.pdgCode()) != 0) { jetHist.fill(HIST("genmatched/pt/PtParticleType"), mcParticle.pt(), jetFlag, mapPDGToValue(mcParticle.pdgCode())); } } // jet constituents From 50446b3cf0d31839473af0dff4b9efb906c91fe6 Mon Sep 17 00:00:00 2001 From: Arvind Khuntia Date: Tue, 20 Aug 2024 17:06:41 +0200 Subject: [PATCH 13/13] Task and executable name changed --- PWGJE/Tasks/CMakeLists.txt | 4 +- PWGJE/Tasks/nucleiInJets.cxx | 1172 ++++++++++++++++++++++++++++++++++ 2 files changed, 1174 insertions(+), 2 deletions(-) create mode 100644 PWGJE/Tasks/nucleiInJets.cxx diff --git a/PWGJE/Tasks/CMakeLists.txt b/PWGJE/Tasks/CMakeLists.txt index 253e2b90c6c..0edbf84c574 100644 --- a/PWGJE/Tasks/CMakeLists.txt +++ b/PWGJE/Tasks/CMakeLists.txt @@ -132,8 +132,8 @@ if(FastJet_FOUND) SOURCES phiInJets.cxx PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::PWGJECore O2Physics::AnalysisCore COMPONENT_NAME Analysis) - o2physics_add_dpl_workflow(nuclei-with-fastjet - SOURCES nucleiWithFastJet.cxx + o2physics_add_dpl_workflow(nuclei-in-jets + SOURCES nucleiInJets.cxx PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::PWGJECore O2Physics::AnalysisCore COMPONENT_NAME Analysis) o2physics_add_dpl_workflow(jet-taggerhf-qa diff --git a/PWGJE/Tasks/nucleiInJets.cxx b/PWGJE/Tasks/nucleiInJets.cxx new file mode 100644 index 00000000000..897774b8874 --- /dev/null +++ b/PWGJE/Tasks/nucleiInJets.cxx @@ -0,0 +1,1172 @@ +// Copyright 2019-2020 CERN and copyright holders of ALICE O2. +// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders. +// All rights not expressly granted are reserved. +// +// This software is distributed under the terms of the GNU General Public +// License v3 (GPL Version 3), copied verbatim in the file "COPYING". +// +// In applying this license CERN does not waive the privileges and immunities +// granted to it by virtue of its status as an Intergovernmental Organization +// or submit itself to any jurisdiction. + +// author: Arvind Khuntia (arvind.khuntia@cern.ch) INFN Bologna, Italy + +#include +#include + +#include "Framework/ASoA.h" +#include "Framework/AnalysisDataModel.h" +#include "Framework/AnalysisTask.h" +#include "Framework/HistogramRegistry.h" +#include "Framework/runDataProcessing.h" + +#include "Common/Core/RecoDecay.h" +#include "Common/Core/TrackSelection.h" +#include "Common/Core/TrackSelectionDefaults.h" +#include "Common/Core/trackUtilities.h" +#include "Common/DataModel/EventSelection.h" +#include "Common/DataModel/TrackSelectionTables.h" +#include "Common/DataModel/Multiplicity.h" +#include "Common/DataModel/PIDResponse.h" +#include "CommonConstants/PhysicsConstants.h" +#include "ReconstructionDataFormats/Track.h" + +#include "PWGJE/Core/FastJetUtilities.h" +#include "PWGJE/Core/JetDerivedDataUtilities.h" +#include "PWGJE/DataModel/Jet.h" + +using namespace o2; +using namespace o2::framework; +using namespace o2::framework::expressions; +struct nucleiInJets { + + enum Particle { + kPion = 1, // π+ + kKaon = 2, // K+ + kProton = 3, // p + kDeuteron = 4, // d + kTriton = 5, // Tr + kHelium = 6 // He + }; + + int mapPDGToValue(int pdgCode) + { + switch (pdgCode) { + case 211: // π+ + return Particle::kPion; + case -211: // π- + return -Particle::kPion; + + case 321: // k+ + return Particle::kKaon; + case -321: // k- + return -Particle::kKaon; + + case 2212: // p + return Particle::kProton; + case -2212: // antip + return -Particle::kProton; + + case 1000010020: // Deuteron + return Particle::kDeuteron; + case -1000010020: // AntiDeuteron + return -Particle::kDeuteron; + + case 1000010030: // Triton + return Particle::kTriton; + case -1000010030: // AntiTriton + return -Particle::kTriton; + + case 1000020030: // Helium + return Particle::kHelium; + case -1000020030: // AntiHelium + return -Particle::kHelium; + default: + return 0; // Default case for unknown or unmapped PDG codes + } + } + + Configurable cfgeventSelections{"cfgeventSelections", "sel8", "choose event selection"}; + Configurable cfgtrackSelections{"cfgtrackSelections", "globalTracks", "set track selections"}; + + Configurable isMC{"isMC", false, "flag for the MC"}; + Configurable cfgtrkMinPt{"cfgtrkMinPt", 0.15, "set track min pT"}; + Configurable cfgtrkMaxEta{"cfgtrkMaxEta", 0.8, "set track max Eta"}; + Configurable cfgtrkMaxRap{"cfgtrkMaxRap", 0.5, "set track max y"}; + Configurable cfgMaxDCArToPVcut{"cfgMaxDCArToPVcut", 0.12, "Track DCAr cut to PV Maximum"}; + Configurable cfgMaxDCAzToPVcut{"cfgMaxDCAzToPVcut", 1.0, "Track DCAz cut to PV Maximum"}; + Configurable cfgPrimaryTrack{"cfgPrimaryTrack", true, "Primary track selection"}; + Configurable cfgConnectedToPV{"cfgConnectedToPV", true, "PV contributor track selection"}; // PV Contriuibutor + Configurable cfgGlobalWoDCATrack{"cfgGlobalWoDCATrack", true, "Global track selection without DCA"}; // kQualityTracks (kTrackType | kTPCNCls | kTPCCrossedRows | kTPCCrossedRowsOverNCls | kTPCChi2NDF | kTPCRefit | kITSNCls | kITSChi2NDF | kITSRefit | kITSHits) | kInAcceptanceTracks (kPtRange | kEtaRange) + Configurable cfgnFindableTPCClusters{"cfgnFindableTPCClusters", 120, "nFindable TPC Clusters"}; + Configurable cfgnTPCCrossedRows{"cfgnTPCCrossedRows", 70, "nCrossed TPC Rows"}; + Configurable cfgnTPCChi2{"cfgnTPChi2", 4.0, "nTPC Chi2 per Cluster"}; + Configurable cfgnITSChi2{"cfgnITShi2", 36.0, "nITS Chi2 per Cluster"}; + + Configurable cfgjetPtMin{"cfgjetPtMin", 5.0, "minimum jet pT cut"}; + Configurable cfgjetR{"cfgjetR", 0.4, "jet resolution parameter"}; + Configurable cDebugLevel{"cDebugLevel", 0, "print debug msg"}; + Configurable cMaxPt{"cMaxPt", 10, "max pt for Hist"}; + + Configurable cfgnTPCPIDPr{"cfgnTPCPIDPr", 3, "nTPC PID Pr"}; + Configurable cfgnTPCPIDDe{"cfgnTPCPIDDe", 3, "nTPC PID De"}; + Configurable cfgnTPCPIDHe{"cfgnTPCPIDHe", 3, "nTPC PID He"}; + Configurable cfgnTPCPIDTr{"cfgnTPCPIDTr", 3, "nTPC PID Tr"}; + + Configurable cEnableProtonQA{"cEnableProtonQA", true, "nTPC PID Pr"}; + Configurable cEnableDeuteronQA{"cEnableDeuteronQA", true, "nTPC PID De"}; + Configurable cEnableHeliumQA{"cEnableHeliumQA", true, "nTPC PID He"}; + Configurable cEnableTritonQA{"cEnableTritonQA", true, "nTPC PID Tr"}; + Configurable addTOFplots{"addTOFplots", true, "add TOF plots"}; + Configurable useTPCpreSel{"useTPCpreSel", 3, "add TPC nsgma preselection for TOF: (0) no selection (!0) selction on TPC"}; + + Configurable addpik{"addpik", true, "add pion and kaon hist"}; + + ConfigurableAxis binsDCA{"binsDCA", {400, -1.f, 1.f}, ""}; + ConfigurableAxis binsdEdx{"binsdEdx", {1000, 0.f, 1000.f}, ""}; + ConfigurableAxis binsBeta{"binsBeta", {120, 0.0, 1.2}, ""}; + + ConfigurableAxis binsMassPr{"binsMassPr", {100, -1., 1.f}, ""}; + ConfigurableAxis binsMassDe{"binsMassDe", {180, -1.8, 1.8f}, ""}; + ConfigurableAxis binsMassTr{"binsMassTr", {250, -2.5, 2.5f}, ""}; + ConfigurableAxis binsMassHe{"binsMassHe", {300, -3., 3.f}, ""}; + + ConfigurableAxis binsPtZHe{"binsPtZHe", {VARIABLE_WIDTH, 0.5, 0.625, 0.75, 0.875, 1.0, 1.125, 1.25, 1.375, 1.5, 1.625, 1.75, 1.875, 2.0, 2.25, 2.5, 3.0, 3.5, 4.0}, ""}; + + static constexpr float gMassProton = 0.93827208f; + static constexpr float gMassDeuteron = 1.87561f; + static constexpr float gMassTriton = 2.80892f; + static constexpr float gMassHelium = 2.80839f; + static constexpr int PDGProton = 2212; + static constexpr int PDGDeuteron = 1000010020; + static constexpr int PDGTriton = 1000010030; + static constexpr int PDGHelium = 1000020030; + + using EventCandidates = soa::Join; // , aod::CentFT0Ms, aod::CentFT0As, aod::CentFT0Cs + using TrackCandidates = soa::Join; + + using TrackCandidatesMC = soa::Join; + + Filter jetCuts = aod::jet::pt > cfgjetPtMin&& aod::jet::r == nround(cfgjetR.node() * 100.0f); + + using chargedJetstrack = soa::Filtered>; + using JetMCPartTable = soa::Filtered>; + using JetMCDetTable = soa::Filtered>; + + SliceCache cache; + HistogramRegistry jetHist{"jetHist", {}, OutputObjHandlingPolicy::AnalysisObject}; + + void init(o2::framework::InitContext&) + { + const AxisSpec PtAxis = {100, 0, 10.0}; + const AxisSpec PtJetAxis = {300, 0, 30.0}; + const AxisSpec MultAxis = {100, 0, 100}; + const AxisSpec dRAxis = {100, 0, 3.6}; + const AxisSpec dcaxyAxis{binsDCA, "DCAxy (cm)"}; + const AxisSpec dcazAxis{binsDCA, "DCAz (cm)"}; + const AxisSpec dedxAxis{binsdEdx, "d#it{E}/d#it{x} A.U."}; + + const AxisSpec betaAxis{binsBeta, "TOF #beta"}; + const AxisSpec ptZHeAxis{binsPtZHe, "#it{p}_{T}"}; + + const AxisSpec massPrAxis{binsMassPr, ""}; + const AxisSpec massDeAxis{binsMassDe, ""}; + const AxisSpec massTrAxis{binsMassTr, ""}; + const AxisSpec massHeAxis{binsMassHe, ""}; + + // jet property + jetHist.add("jet/h1JetPt", "jet_{p_{T}}", kTH1F, {PtJetAxis}); + jetHist.add("jet/h1JetEta", "jet_{#eta}", kTH1F, {{100, -1.0, 1.0}}); + jetHist.add("jet/h1JetPhi", "jet_{#phi}", kTH1F, {{80, -1.0, 7.}}); + jetHist.add("jet/nJetsPerEvent", "nJetsPerEvent", kTH1F, {{15, .0, 15.}}); + jetHist.add("mcpJet/nJetsPerEvent", "nJetsPerEvent", kTH1F, {{15, .0, 15.}}); + jetHist.add("mcdJet/nJetsPerEvent", "nJetsPerEvent", kTH1F, {{15, .0, 15.}}); + jetHist.add("jet/vertexZ", "vertexZ (Jet flag)", kTH1F, {{100, -15.0, 15.0}}); + jetHist.add("vertexZ", "vertexZ (all)", kTH1F, {{100, -15.0, 15.0}}); + jetHist.add("jetOut/vertexZ", "vertexZ (without z-flag)", kTH1F, {{100, -15.0, 15.0}}); + //////////////////////////// + // MC + //////////////////////////// + jetHist.add("mcpJet/eventStat", "vertexZ (All)", kTH1F, {{5, .0, 5.0}}); + auto h = jetHist.get(HIST("mcpJet/eventStat")); + h->GetXaxis()->SetBinLabel(1, "All"); + h->GetXaxis()->SetBinLabel(2, "Sel8-goodRecJet"); + h->GetXaxis()->SetBinLabel(3, "vz< 10"); + h->GetXaxis()->SetBinLabel(4, "ingt0"); + + jetHist.add("mcpJet/vertexZ", "vertexZ (All)", kTH1F, {{100, -15.0, 15.0}}); + jetHist.add("mcdJet/vertexZ", "vertexZ (All)", kTH1F, {{100, -15.0, 15.0}}); + jetHist.add("mcdJet/eventStat", "vertexZ (All)", kTH1F, {{5, .0, 5.0}}); + auto h1 = jetHist.get(HIST("mcdJet/eventStat")); + h1->GetXaxis()->SetBinLabel(1, "All"); + h1->GetXaxis()->SetBinLabel(2, "Sel8-goodRecJet"); + h1->GetXaxis()->SetBinLabel(3, "vz< 10"); + h1->GetXaxis()->SetBinLabel(4, "ingt0"); + + jetHist.add("recmatched/vertexZ", "vertexZ (All)", kTH1F, {{100, -15.0, 15.0}}); + jetHist.add("genmatched/vertexZ", "vertexZ (All)", kTH1F, {{100, -15.0, 15.0}}); + + ////////////////////////////////////////////// + // inside jet + ////////////////////////////////////////////// + if (addpik) { + jetHist.add("tracks/pion/h3PtVsPionNSigmaTPCVsPtJet_jet", "pT(p) vs NSigmaTPC (p) vs jet pT; #it{p}_{T} (GeV/#it{c}; NSigmaTPC; p^{jet}_{T}", HistType::kTH3F, {{PtAxis}, {200, -10, 10}, {PtJetAxis}}); + jetHist.add("tracks/antiPion/h3PtVsPionNSigmaTPCVsPtJet_jet", "pT(p) vs NSigmaTPC (p) vs jet pT; #it{p}_{T} (GeV/#it{c}; NSigmaTPC; p^{jet}_{T}", HistType::kTH3F, {{PtAxis}, {200, -10, 10}, {PtJetAxis}}); + jetHist.add("tracks/kaon/h3PtVsKaonNSigmaTPCVsPtJet_jet", "pT(p) vs NSigmaTPC (p) vs jet pT; #it{p}_{T} (GeV/#it{c}; NSigmaTPC; p^{jet}_{T}", HistType::kTH3F, {{PtAxis}, {200, -10, 10}, {PtJetAxis}}); + jetHist.add("tracks/antiKaon/h3PtVsKaonNSigmaTPCVsPtJet_jet", "pT(p) vs NSigmaTPC (p) vs jet pT; #it{p}_{T} (GeV/#it{c}; NSigmaTPC; p^{jet}_{T}", HistType::kTH3F, {{PtAxis}, {200, -10, 10}, {PtJetAxis}}); + } + jetHist.add("tracks/proton/h3PtVsProtonNSigmaTPCVsPtJet_jet", "pT(p) vs NSigmaTPC (p) vs jet pT; #it{p}_{T} (GeV/#it{c}; NSigmaTPC; p^{jet}_{T}", HistType::kTH3F, {{PtAxis}, {200, -10, 10}, {PtJetAxis}}); + jetHist.add("tracks/antiProton/h3PtVsantiProtonNSigmaTPCVsPtJet_jet", "pT(#bar{p}) vs NSigmaTPC (#bar{p}) vs jet pT; #it{p}_{T} (GeV/#it{c}; NSigmaTPC; p^{jet}_{T}", HistType::kTH3F, {{PtAxis}, {200, -10, 10}, {PtJetAxis}}); + jetHist.add("tracks/deuteron/h3PtVsDeuteronNSigmaTPCVsPtJet_jet", "pT(d) vs NSigmaTPC (d) vs jet pT; #it{p}_{T} (GeV/#it{c}; NSigmaTPC; p^{jet}_{T}", HistType::kTH3F, {{PtAxis}, {200, -10, 10}, {PtJetAxis}}); + jetHist.add("tracks/antiDeuteron/h3PtVsantiDeuteronNSigmaTPCVsPtJet_jet", "pT(#bar{d}) vs NSigmaTPC (#bar{d}) vs jet pT; #it{p}_{T} (GeV/#it{c}; NSigmaTPC; p^{jet}_{T}", HistType::kTH3F, {{PtAxis}, {200, -10, 10}, {PtJetAxis}}); + jetHist.add("tracks/helium/h3PtVsHeliumNSigmaTPCVsPtJet_jet", "pT(He) vs NSigmaTPC (He) vs jet pT; #it{p}_{T} (GeV/#it{c}; NSigmaTPC; p^{jet}_{T}", HistType::kTH3F, {{PtAxis}, {200, -10, 10}, {PtJetAxis}}); + jetHist.add("tracks/antiHelium/h3PtVsantiHeliumNSigmaTPCVsPtJet_jet", "pT(#bar{He}) vs NSigmaTPC (#bar{He}) vs jet pT; #it{p}_{T} (GeV/#it{c}; NSigmaTPC; p^{jet}_{T}", HistType::kTH3F, {{PtAxis}, {200, -10, 10}, {PtJetAxis}}); + jetHist.add("tracks/triton/h3PtVsTritonNSigmaTPCVsPtJet_jet", "pT(Tr) vs NSigmaTPC (Tr) vs jet pT; #it{p}_{T} (GeV/#it{c}; NSigmaTPC; p^{jet}_{T}", HistType::kTH3F, {{PtAxis}, {200, -10, 10}, {PtJetAxis}}); + jetHist.add("tracks/antiTriton/h3PtVsantiTritonNSigmaTPCVsPtJet_jet", "pT(#bar{Tr}) vs NSigmaTPC (#bar{Tr}) vs jet pT; #it{p}_{T} (GeV/#it{c}; NSigmaTPC; p^{jet}_{T}", HistType::kTH3F, {{PtAxis}, {200, -10, 10}, {PtJetAxis}}); + + if (cEnableProtonQA) { + jetHist.add("tracks/proton/dca/after/hDCAxyVsPtProton_jet", "DCAxy vs Pt (p)", HistType::kTH2F, {{dcaxyAxis}, {PtAxis}}); + jetHist.add("tracks/antiProton/dca/after/hDCAxyVsPtantiProton_jet", "DCAxy vs Pt (#bar{p})", HistType::kTH2F, {{dcaxyAxis}, {PtAxis}}); + jetHist.add("tracks/proton/dca/after/hDCAzVsPtProton_jet", "DCAz vs Pt (p)", HistType::kTH2F, {{dcazAxis}, {PtAxis}}); + jetHist.add("tracks/antiProton/dca/after/hDCAzVsPtantiProton_jet", "DCAz vs Pt (#bar{p})", HistType::kTH2F, {{dcazAxis}, {PtAxis}}); + } + + if (cEnableDeuteronQA) { + jetHist.add("tracks/deuteron/dca/after/hDCAxyVsPtDeuteron_jet", "DCAxy vs Pt (d)", HistType::kTH2F, {{dcaxyAxis}, {PtAxis}}); + jetHist.add("tracks/antiDeuteron/dca/after/hDCAxyVsPtantiDeuteron_jet", "DCAxy vs Pt (#bar{d})", HistType::kTH2F, {{dcaxyAxis}, {PtAxis}}); + jetHist.add("tracks/deuteron/dca/after/hDCAzVsPtDeuteron_jet", "DCAz vs Pt (d)", HistType::kTH2F, {{dcazAxis}, {PtAxis}}); + jetHist.add("tracks/antiDeuteron/dca/after/hDCAzVsPtantiDeuteron_jet", "DCAz vs Pt (#bar{d})", HistType::kTH2F, {{dcazAxis}, {PtAxis}}); + } + + if (cEnableTritonQA) { + jetHist.add("tracks/triton/dca/after/hDCAxyVsPtTriton_jet", "DCAxy vs Pt (t)", HistType::kTH2F, {{dcaxyAxis}, {PtAxis}}); + jetHist.add("tracks/antiTriton/dca/after/hDCAxyVsPtantiTriton_jet", "DCAxy vs Pt (#bar{t})", HistType::kTH2F, {{dcaxyAxis}, {PtAxis}}); + jetHist.add("tracks/triton/dca/after/hDCAzVsPtTriton_jet", "DCAz vs Pt (t)", HistType::kTH2F, {{dcazAxis}, {PtAxis}}); + jetHist.add("tracks/antiTriton/dca/after/hDCAzVsPtantiTriton_jet", "DCAz vs Pt (#bar{t})", HistType::kTH2F, {{dcazAxis}, {PtAxis}}); + } + if (cEnableHeliumQA) { + jetHist.add("tracks/helium/dca/after/hDCAxyVsPtHelium_jet", "DCAxy vs Pt (He)", HistType::kTH2F, {{dcaxyAxis}, {450, 0.5f, 5.f}}); + jetHist.add("tracks/antiHelium/dca/after/hDCAxyVsPtantiHelium_jet", "DCAxy vs Pt (#bar{He})", HistType::kTH2F, {{dcaxyAxis}, {450, 0.5f, 5.f}}); + jetHist.add("tracks/helium/dca/after/hDCAzVsPtHelium_jet", "DCAz vs Pt (He)", HistType::kTH2F, {{dcazAxis}, {450, 0.5f, 5.f}}); + jetHist.add("tracks/antiHelium/dca/after/hDCAzVsPtantiHelium_jet", "DCAz vs Pt (#bar{He})", HistType::kTH2F, {{dcazAxis}, {450, 0.5f, 5.f}}); + } + + jetHist.add("tracks/h2TPCsignVsTPCmomentum", "TPC <-dE/dX> vs #it{p}/Z; Signed #it{p} (GeV/#it{c}); TPC <-dE/dx> (a.u.)", HistType::kTH2F, {{500, -5.f, 5.f}, {dedxAxis}}); + jetHist.add("tracks/h2TPCsignVsTPCmomentum_Jet", "TPC <-dE/dX> vs #it{p}/Z; Signed #it{p} (GeV/#it{c}); TPC <-dE/dx> (a.u.)", HistType::kTH2F, {{500, -5.f, 5.f}, {dedxAxis}}); + jetHist.add("tracks/h2TPCsignVsTPCmomentum_OutJet", "TPC <-dE/dX> vs #it{p}/Z; Signed #it{p} (GeV/#it{c}); TPC <-dE/dx> (a.u.)", HistType::kTH2F, {{500, -5.f, 5.f}, {dedxAxis}}); + + jetHist.add("tracks/h2TOFbetaVsP_Jet", "TOF #beta vs #it{p}/Z; Signed #it{p} (GeV/#it{c}); TOF #beta", HistType::kTH2F, {{250, -5.f, 5.f}, {betaAxis}}); + jetHist.add("tracks/h2TOFbetaVsP_OutJet", "TOF #beta vs #it{p}/Z; Signed #it{p} (GeV/#it{c}); TOF #beta", HistType::kTH2F, {{250, -5.f, 5.f}, {betaAxis}}); + jetHist.add("tracks/h2TOFbetaVsP", "TOF #beta vs #it{p}/Z; Signed #it{p} (GeV/#it{c}); TOF #beta", HistType::kTH2F, {{250, -5.f, 5.f}, {betaAxis}}); + + // TOF hist + jetHist.add("tracks/proton/h2TOFmassProtonVsPt_jet", "h2TOFmassProtonVsPt_jet; TOFmass; #it{p}_{T} (GeV)", HistType::kTH2F, {{80, 0.4, 4.}, {50, 0., 5.}}); + jetHist.add("tracks/antiProton/h2TOFmassantiProtonVsPt_jet", "h2TOFmassantiProtonVsPt_jet; TOFmass; #it{p}_{T} (GeV)", HistType::kTH2F, {{80, 0.4, 4.}, {50, 0., 5.}}); + jetHist.add("tracks/proton/h2TOFmass2ProtonVsPt_jet", "#Delta M^{2} (t) vs #it{p}_{T}; TOFmass2; #it{p}_{T} (GeV)", HistType::kTH2F, {{massPrAxis}, {250, 0., 5.}}); + jetHist.add("tracks/antiProton/h2TOFmass2antiProtonVsPt_jet", "#Delta M^{2} (t) vs #it{p}_{T}; TOFmass2; #it{p}_{T} (GeV)", HistType::kTH2F, {{massPrAxis}, {250, 0., 5.}}); + + jetHist.add("tracks/deuteron/h2TOFmassDeuteronVsPt_jet", "h2TOFmassDeuteronVsPt_jet; TOFmass; #it{p}_{T} (GeV)", HistType::kTH2F, {{80, 0.4, 4.}, {50, 0., 5.}}); + jetHist.add("tracks/antiDeuteron/h2TOFmassantiDeuteronVsPt_jet", "h2TOFmassantiDeuteronVsPt_jet; TOFmass; #it{p}_{T} (GeV)", HistType::kTH2F, {{80, 0.4, 4.}, {50, 0., 5.}}); + jetHist.add("tracks/deuteron/h2TOFmass2DeuteronVsPt_jet", "#Delta M^{2} (t) vs #it{p}_{T}; TOFmass2; #it{p}_{T} (GeV)", HistType::kTH2F, {{massDeAxis}, {250, 0., 5.}}); + jetHist.add("tracks/antiDeuteron/h2TOFmass2antiDeuteronVsPt_jet", "#Delta M^{2} (t) vs #it{p}_{T}; TOFmass2; #it{p}_{T} (GeV)", HistType::kTH2F, {{massDeAxis}, {250, 0., 5.}}); + + jetHist.add("tracks/triton/h2TOFmassTritonVsPt_jet", "h2TOFmassTritonVsPt_jet; TOFmass; #it{p}_{T} (GeV)", HistType::kTH2F, {{80, 0.4, 4.}, {50, 0., 5.}}); + jetHist.add("tracks/antiTriton/h2TOFmassantiTritonVsPt_jet", "h2TOFmassantiTritonVsPt_jet; TOFmass; #it{p}_{T} (GeV)", HistType::kTH2F, {{80, 0.4, 4.}, {50, 0., 5.}}); + jetHist.add("tracks/triton/h2TOFmass2TritonVsPt_jet", "#Delta M^{2} (t) vs #it{p}_{T}; TOFmass2; #it{p}_{T} (GeV)", HistType::kTH2F, {{massTrAxis}, {250, 0., 5.}}); + jetHist.add("tracks/antiTriton/h2TOFmass2antiTritonVsPt_jet", "#Delta M^{2} (t) vs #it{p}_{T}; TOFmass2; #it{p}_{T} (GeV)", HistType::kTH2F, {{massTrAxis}, {250, 0., 5.}}); + + jetHist.add("tracks/helium/h2TOFmassHeliumVsPt_jet", "h2TOFmassHeliumVsPt_jet; TOFmass; #it{p}_{T}/z (GeV)", HistType::kTH2F, {{180, 0.4, 4.}, {ptZHeAxis}}); + jetHist.add("tracks/antiHelium/h2TOFmassantiHeliumVsPt_jet", "h2TOFmassantiHeliumVsPt_jet; TOFmass; #it{p}_{T}/z (GeV)", HistType::kTH2F, {{180, 0.4, 4.}, {ptZHeAxis}}); + jetHist.add("tracks/helium/h2TOFmass2HeliumVsPt_jet", "#Delta M^{2} (t) vs #it{p}_{T}t; TOFmass2; #it{p}_{T}/z (GeV)", HistType::kTH2F, {{massHeAxis}, {ptZHeAxis}}); + jetHist.add("tracks/antiHelium/h2TOFmass2antiHeliumVsPt_jet", "#Delta M^{2} (t) vs #it{p}_{T}; TOFmass2; #it{p}_{T}/z (GeV)", HistType::kTH2F, {{massHeAxis}, {ptZHeAxis}}); + + // TOF hist nSigma + if (addpik) { + jetHist.add("tracks/pion/h2TofNsigmaPionVsPt_jet", "h2TofNsigmaPionVsPt_jet; TofNsigma; #it{p}_{T} (GeV)", HistType::kTH2F, {{100, -5, 5}, {50, 0., 5.}}); + jetHist.add("tracks/antiPion/h2TofNsigmaantiPionVsPt_jet", "h2TofNsigmaantiPionVsPt_jet; TofNsigma; #it{p}_{T} (GeV)", HistType::kTH2F, {{100, -5, 5}, {50, 0., 5.}}); + jetHist.add("tracks/kaon/h2TofNsigmaKaonVsPt_jet", "h2TofNsigmaKaonVsPt_jet; TofNsigma; #it{p}_{T} (GeV)", HistType::kTH2F, {{100, -5, 5}, {50, 0., 5.}}); + jetHist.add("tracks/antiKaon/h2TofNsigmaantiKaonVsPt_jet", "h2TofNsigmaantiKaonVsPt_jet; TofNsigma; #it{p}_{T} (GeV)", HistType::kTH2F, {{100, -5, 5}, {50, 0., 5.}}); + } + jetHist.add("tracks/proton/h2TofNsigmaProtonVsPt_jet", "h2TofNsigmaProtonVsPt_jet; TofNsigma; #it{p}_{T} (GeV)", HistType::kTH2F, {{100, -5, 5}, {50, 0., 5.}}); + jetHist.add("tracks/antiProton/h2TofNsigmaantiProtonVsPt_jet", "h2TofNsigmaantiProtonVsPt_jet; TofNsigma; #it{p}_{T} (GeV)", HistType::kTH2F, {{100, -5, 5}, {50, 0., 5.}}); + jetHist.add("tracks/deuteron/h2TofNsigmaDeuteronVsPt_jet", "h2TofNsigmaDeuteronVsPt_jet; TofNsigma; #it{p}_{T} (GeV)", HistType::kTH2F, {{100, -5, 5}, {50, 0., 5.}}); + jetHist.add("tracks/antiDeuteron/h2TofNsigmaantiDeuteronVsPt_jet", "h2TofNsigmaantiDeuteronVsPt_jet; TofNsigma; #it{p}_{T} (GeV)", HistType::kTH2F, {{100, -5, 5}, {50, 0., 5.}}); + jetHist.add("tracks/triton/h2TofNsigmaTritonVsPt_jet", "h2TofNsigmaTritonVsPt_jet; TofNsigma; #it{p}_{T} (GeV)", HistType::kTH2F, {{100, -5, 5}, {50, 0., 5.}}); + jetHist.add("tracks/antiTriton/h2TofNsigmaantiTritonVsPt_jet", "h2TofNsigmaantiTritonVsPt_jet; TofNsigma; #it{p}_{T} (GeV)", HistType::kTH2F, {{100, -5, 5}, {50, 0., 5.}}); + jetHist.add("tracks/helium/h2TofNsigmaHeliumVsPt_jet", "h2TofNsigmaHeliumVsPt_jet; TofNsigma; #it{p}_{T}/z (GeV)", HistType::kTH2F, {{100, -5, 5}, {50, 0., 5.}}); + jetHist.add("tracks/antiHelium/h2TofNsigmaantiHeliumVsPt_jet", "h2TofNsigmaantiHeliumVsPt_jet; TofNsigma; #it{p}_{T}/z (GeV)", HistType::kTH2F, {{100, -5, 5}, {50, 0., 5.}}); + ////////////////////////////////////////////// + // outside jet + ////////////////////////////////////////////// + jetHist.add("tracks/proton/h3PtVsProtonNSigmaTPC", "pT(p) vs NSigmaTPC (p); #it{p}_{T} (GeV/#it{c}; NSigmaTPC;", HistType::kTH2F, {{PtAxis}, {200, -10, 10}}); + jetHist.add("tracks/antiProton/h3PtVsantiProtonNSigmaTPC", "pT(#bar{p}) vs NSigmaTPC (#bar{p}); #it{p}_{T} (GeV/#it{c}; NSigmaTPC;", HistType::kTH2F, {{PtAxis}, {200, -10, 10}}); + jetHist.add("tracks/deuteron/h3PtVsDeuteronNSigmaTPC", "pT(d) vs NSigmaTPC (d); #it{p}_{T} (GeV/#it{c}; NSigmaTPC;", HistType::kTH2F, {{PtAxis}, {200, -10, 10}}); + jetHist.add("tracks/antiDeuteron/h3PtVsantiDeuteronNSigmaTPC", "pT(#bar{d}) vs NSigmaTPC (#bar{d}); #it{p}_{T} (GeV/#it{c}; NSigmaTPC;", HistType::kTH2F, {{PtAxis}, {200, -10, 10}}); + jetHist.add("tracks/helium/h3PtVsHeliumNSigmaTPC", "pT(He) vs NSigmaTPC (He); #it{p}_{T} (GeV/#it{c}; NSigmaTPC;", HistType::kTH2F, {{PtAxis}, {200, -10, 10}}); + jetHist.add("tracks/antiHelium/h3PtVsantiHeliumNSigmaTPC", "pT(#bar{He}) vs NSigmaTPC (#bar{He}); #it{p}_{T} (GeV/#it{c}; NSigmaTPC;", HistType::kTH2F, {{PtAxis}, {200, -10, 10}}); + jetHist.add("tracks/triton/h3PtVsTritonNSigmaTPC", "pT(Tr) vs NSigmaTPC(Tr); #it{p}_{T} (GeV/#it{c}; NSigmaTPC;", HistType::kTH2F, {{PtAxis}, {200, -10, 10}}); + jetHist.add("tracks/antiTriton/h3PtVsantiTritonNSigmaTPC", "pT(#barTr}) vs NSigmaTPC (#bar{Tr}); #it{p}_{T} (GeV/#it{c}; NSigmaTPC;", HistType::kTH2F, {{PtAxis}, {200, -10, 10}}); + + if (cEnableProtonQA) { + jetHist.add("tracks/proton/dca/after/hDCAxyVsPtProton", "DCAxy vs Pt (p)", HistType::kTH2F, {{dcaxyAxis}, {PtAxis}}); + jetHist.add("tracks/antiProton/dca/after/hDCAxyVsPtantiProton", "DCAxy vs Pt (#bar{p})", HistType::kTH2F, {{dcaxyAxis}, {PtAxis}}); + jetHist.add("tracks/proton/dca/after/hDCAzVsPtProton", "DCAz vs Pt (p)", HistType::kTH2F, {{dcazAxis}, {PtAxis}}); + jetHist.add("tracks/antiProton/dca/after/hDCAzVsPtantiProton", "DCAz vs Pt (#bar{p})", HistType::kTH2F, {{dcazAxis}, {PtAxis}}); + } + if (cEnableDeuteronQA) { + jetHist.add("tracks/deuteron/dca/after/hDCAxyVsPtDeuteron", "DCAxy vs Pt (d)", HistType::kTH2F, {{dcaxyAxis}, {PtAxis}}); + jetHist.add("tracks/antiDeuteron/dca/after/hDCAxyVsPtantiDeuteron", "DCAxy vs Pt (#bar{d})", HistType::kTH2F, {{dcaxyAxis}, {PtAxis}}); + jetHist.add("tracks/deuteron/dca/after/hDCAzVsPtDeuteron", "DCAz vs Pt (d)", HistType::kTH2F, {{dcazAxis}, {PtAxis}}); + jetHist.add("tracks/antiDeuteron/dca/after/hDCAzVsPtantiDeuteron", "DCAz vs Pt (#bar{d})", HistType::kTH2F, {{dcazAxis}, {PtAxis}}); + } + if (cEnableTritonQA) { + jetHist.add("tracks/triton/dca/after/hDCAxyVsPtTriton", "DCAxy vs Pt (t)", HistType::kTH2F, {{dcaxyAxis}, {PtAxis}}); + jetHist.add("tracks/antiTriton/dca/after/hDCAxyVsPtantiTriton", "DCAxy vs Pt (#bar{t})", HistType::kTH2F, {{dcaxyAxis}, {PtAxis}}); + jetHist.add("tracks/triton/dca/after/hDCAzVsPtTriton", "DCAz vs Pt (t)", HistType::kTH2F, {{dcazAxis}, {PtAxis}}); + jetHist.add("tracks/antiTriton/dca/after/hDCAzVsPtantiTriton", "DCAz vs Pt (#bar{t})", HistType::kTH2F, {{dcazAxis}, {PtAxis}}); + } + if (cEnableHeliumQA) { + jetHist.add("tracks/helium/dca/after/hDCAxyVsPtHelium", "DCAxy vs Pt (He)", HistType::kTH2F, {{dcaxyAxis}, {450, 0.5f, 5.f}}); + jetHist.add("tracks/antiHelium/dca/after/hDCAxyVsPtantiHelium", "DCAxy vs Pt (#bar{He})", HistType::kTH2F, {{dcaxyAxis}, {450, 0.5f, 5.f}}); + jetHist.add("tracks/helium/dca/after/hDCAzVsPtHelium", "DCAz vs Pt (He)", HistType::kTH2F, {{dcazAxis}, {450, 0.5f, 5.f}}); + jetHist.add("tracks/antiHelium/dca/after/hDCAzVsPtantiHelium", "DCAz vs Pt (#bar{He})", HistType::kTH2F, {{dcazAxis}, {450, 0.5f, 5.f}}); + } + + // TOF hist #DeltaMass2 + jetHist.add("tracks/proton/h2TOFmassProtonVsPt", "h2TOFmassProtonVsPt; TOFmass; #it{p}_{T} (GeV)", HistType::kTH2F, {{80, 0.4, 4.}, {50, 0., 5.}}); + jetHist.add("tracks/antiProton/h2TOFmassantiProtonVsPt", "h2TOFmassantiProtonVsPt; TOFmass; #it{p}_{T} (GeV)", HistType::kTH2F, {{80, 0.4, 4.}, {50, 0., 5.}}); + jetHist.add("tracks/proton/h2TOFmass2ProtonVsPt", "#Delta M^{2} (t) vs #it{p}_{T}; TOFmass2; #it{p}_{T} (GeV)", HistType::kTH2F, {{massPrAxis}, {250, 0., 5.}}); + jetHist.add("tracks/antiProton/h2TOFmass2antiProtonVsPt", "#Delta M^{2} (t) vs #it{p}_{T}; TOFmass2; #it{p}_{T} (GeV)", HistType::kTH2F, {{massPrAxis}, {250, 0., 5.}}); + + jetHist.add("tracks/deuteron/h2TOFmassDeuteronVsPt", "h2TOFmassDeuteronVsPt; TOFmass; #it{p}_{T} (GeV)", HistType::kTH2F, {{80, 0.4, 4.}, {50, 0., 5.}}); + jetHist.add("tracks/antiDeuteron/h2TOFmassantiDeuteronVsPt", "h2TOFmassantiDeuteronVsPt; TOFmass; #it{p}_{T} (GeV)", HistType::kTH2F, {{80, 0.4, 4.}, {50, 0., 5.}}); + jetHist.add("tracks/deuteron/h2TOFmass2DeuteronVsPt", "#Delta M^{2} (t) vs #it{p}_{T}; TOFmass2; #it{p}_{T} (GeV)", HistType::kTH2F, {{massDeAxis}, {250, 0., 5.}}); + jetHist.add("tracks/antiDeuteron/h2TOFmass2antiDeuteronVsPt", "#Delta M^{2} (t) vs #it{p}_{T}; TOFmass2; #it{p}_{T} (GeV)", HistType::kTH2F, {{massDeAxis}, {250, 0., 5.}}); + + jetHist.add("tracks/triton/h2TOFmassTritonVsPt", "h2TOFmassTritonVsPt; TOFmass; #it{p}_{T} (GeV)", HistType::kTH2F, {{80, 0.4, 4.}, {50, 0., 5.}}); + jetHist.add("tracks/antiTriton/h2TOFmassantiTritonVsPt", "h2TOFmassantiTritonVsPt; TOFmass; #it{p}_{T} (GeV)", HistType::kTH2F, {{80, 0.4, 4.}, {50, 0., 5.}}); + jetHist.add("tracks/triton/h2TOFmass2TritonVsPt", "#Delta M^{2} (t) vs #it{p}_{T}; TOFmass2; #it{p}_{T} (GeV)", HistType::kTH2F, {{massTrAxis}, {250, 0., 5.}}); + jetHist.add("tracks/antiTriton/h2TOFmass2antiTritonVsPt", "#Delta M^{2} (t) vs #it{p}_{T}; TOFmass2; #it{p}_{T} (GeV)", HistType::kTH2F, {{massTrAxis}, {250, 0., 5.}}); + + jetHist.add("tracks/helium/h2TOFmassHeliumVsPt", "h2TOFmassHeliumVsPt; TOFmass; #it{p}_{T}/z (GeV)", HistType::kTH2F, {{180, 0.4, 4.}, {ptZHeAxis}}); + jetHist.add("tracks/antiHelium/h2TOFmassantiHeliumVsPt", "h2TOFmassantiHeliumVsPt; TOFmass; #it{p}_{T}/z (GeV)", HistType::kTH2F, {{180, 0.4, 4.}, {ptZHeAxis}}); + jetHist.add("tracks/helium/h2TOFmass2HeliumVsPt", "#Delta M^{2} (t) vs #it{p}_{T}t; TOFmass2; #it{p}_{T}/z (GeV)", HistType::kTH2F, {{massHeAxis}, {ptZHeAxis}}); + jetHist.add("tracks/antiHelium/h2TOFmass2antiHeliumVsPt", "#Delta M^{2} (t) vs #it{p}_{T}; TOFmass2; #it{p}_{T}/z (GeV)", HistType::kTH2F, {{massHeAxis}, {ptZHeAxis}}); + + // TOF hist nSigma + jetHist.add("tracks/proton/h2TofNsigmaProtonVsPt", "h2TofNsigmaProtonVsPt; TofNsigma; #it{p}_{T} (GeV)", HistType::kTH2F, {{100, -5, 5}, {50, 0., 5.}}); + jetHist.add("tracks/antiProton/h2TofNsigmaantiProtonVsPt", "h2TofNsigmaantiProtonVsPt; TofNsigma; #it{p}_{T} (GeV)", HistType::kTH2F, {{100, -5, 5}, {50, 0., 5.}}); + jetHist.add("tracks/deuteron/h2TofNsigmaDeuteronVsPt", "h2TofNsigmaDeuteronVsPt; TofNsigma; #it{p}_{T} (GeV)", HistType::kTH2F, {{100, -5, 5}, {50, 0., 5.}}); + jetHist.add("tracks/antiDeuteron/h2TofNsigmaantiDeuteronVsPt", "h2TofNsigmaantiDeuteronVsPt; TofNsigma; #it{p}_{T} (GeV)", HistType::kTH2F, {{100, -5, 5}, {50, 0., 5.}}); + jetHist.add("tracks/triton/h2TofNsigmaTritonVsPt", "h2TofNsigmaTritonVsPt; TofNsigma; #it{p}_{T} (GeV)", HistType::kTH2F, {{100, -5, 5}, {50, 0., 5.}}); + jetHist.add("tracks/antiTriton/h2TofNsigmaantiTritonVsPt", "h2TofNsigmaantiTritonVsPt; TofNsigma; #it{p}_{T} (GeV)", HistType::kTH2F, {{100, -5, 5}, {50, 0., 5.}}); + jetHist.add("tracks/helium/h2TofNsigmaHeliumVsPt", "h2TofNsigmaHeliumVsPt; TofNsigma; #it{p}_{T}/z (GeV)", HistType::kTH2F, {{100, -5, 5}, {50, 0., 5.}}); + jetHist.add("tracks/antiHelium/h2TofNsigmaantiHeliumVsPt", "h2TofNsigmaantiHeliumVsPt; TofNsigma; #it{p}_{T}/z (GeV)", HistType::kTH2F, {{100, -5, 5}, {50, 0., 5.}}); + + if (isMC) { + // inside jet + jetHist.add("tracks/mc/proton/h3PtVsProtonNSigmaTPCVsPtJet_jet", "pT(p) vs NSigmaTPC (p) vs jet pT; #it{p}_{T} (GeV/#it{c}; NSigmaTPC; p^{jet}_{T}", HistType::kTH3F, {{PtAxis}, {200, -10, 10}, {PtJetAxis}}); + jetHist.add("tracks/mc/antiProton/h3PtVsantiProtonNSigmaTPCVsPtJet_jet", "pT(#bar{p}) vs NSigmaTPC (#bar{p}) vs jet pT; #it{p}_{T} (GeV/#it{c}; NSigmaTPC; p^{jet}_{T}", HistType::kTH3F, {{PtAxis}, {200, -10, 10}, {PtJetAxis}}); + jetHist.add("tracks/mc/deuteron/h3PtVsDeuteronNSigmaTPCVsPtJet_jet", "pT(d) vs NSigmaTPC (d) vs jet pT; #it{p}_{T} (GeV/#it{c}; NSigmaTPC; p^{jet}_{T}", HistType::kTH3F, {{PtAxis}, {200, -10, 10}, {PtJetAxis}}); + jetHist.add("tracks/mc/antiDeuteron/h3PtVsantiDeuteronNSigmaTPCVsPtJet_jet", "pT(#bar{d}) vs NSigmaTPC (#bar{d}) vs jet pT; #it{p}_{T} (GeV/#it{c}; NSigmaTPC; p^{jet}_{T}", HistType::kTH3F, {{PtAxis}, {200, -10, 10}, {PtJetAxis}}); + jetHist.add("tracks/mc/helium/h3PtVsHeliumNSigmaTPCVsPtJet_jet", "pT(He) vs NSigmaTPC (He) vs jet pT; #it{p}_{T} (GeV/#it{c}; NSigmaTPC; p^{jet}_{T}", HistType::kTH3F, {{PtAxis}, {200, -10, 10}, {PtJetAxis}}); + jetHist.add("tracks/mc/antiHelium/h3PtVsantiHeliumNSigmaTPCVsPtJet_jet", "pT(#bar{He}) vs NSigmaTPC (#bar{He}) vs jet pT; #it{p}_{T} (GeV/#it{c}; NSigmaTPC; p^{jet}_{T}", HistType::kTH3F, {{PtAxis}, {200, -10, 10}, {PtJetAxis}}); + jetHist.add("tracks/mc/triton/h3PtVsTritonNSigmaTPCVsPtJet_jet", "pT(Tr) vs NSigmaTPC (Tr) vs jet pT; #it{p}_{T} (GeV/#it{c}; NSigmaTPC; p^{jet}_{T}", HistType::kTH3F, {{PtAxis}, {200, -10, 10}, {PtJetAxis}}); + jetHist.add("tracks/mc/antiTriton/h3PtVsantiTritonNSigmaTPCVsPtJet_jet", "pT(#bar{Tr}) vs NSigmaTPC (#bar{Tr}) vs jet pT; #it{p}_{T} (GeV/#it{c}; NSigmaTPC; p^{jet}_{T}", HistType::kTH3F, {{PtAxis}, {200, -10, 10}, {PtJetAxis}}); + + if (cEnableProtonQA) { + jetHist.add("tracks/proton/dca/before/hDCAxyVsPtProton_jet", "DCAxy vs Pt (p)", HistType::kTH2F, {{PtAxis}, {dcaxyAxis}}); + jetHist.add("tracks/antiProton/dca/before/hDCAxyVsPtantiProton_jet", "DCAxy vs Pt (#bar{p})", HistType::kTH2F, {{PtAxis}, {dcaxyAxis}}); + jetHist.add("tracks/proton/dca/before/hDCAzVsPtProton_jet", "DCAz vs Pt (p)", HistType::kTH2F, {{dcazAxis}, {PtAxis}}); + jetHist.add("tracks/antiProton/dca/before/hDCAzVsPtantiProton_jet", "DCAz vs Pt (#bar{p})", HistType::kTH2F, {{dcazAxis}, {PtAxis}}); + } + + if (cEnableDeuteronQA) { + jetHist.add("tracks/deuteron/dca/before/hDCAxyVsPtDeuteron_jet", "DCAxy vs Pt (d)", HistType::kTH2F, {{PtAxis}, {dcaxyAxis}}); + jetHist.add("tracks/antiDeuteron/dca/before/hDCAxyVsPtantiDeuteron_jet", "DCAxy vs Pt (#bar{d})", HistType::kTH2F, {{PtAxis}, {dcaxyAxis}}); + jetHist.add("tracks/deuteron/dca/before/hDCAzVsPtDeuteron_jet", "DCAz vs Pt (d)", HistType::kTH2F, {{dcazAxis}, {PtAxis}}); + jetHist.add("tracks/antiDeuteron/dca/before/hDCAzVsPtantiDeuteron_jet", "DCAz vs Pt (#bar{d})", HistType::kTH2F, {{dcazAxis}, {PtAxis}}); + } + + if (cEnableTritonQA) { + jetHist.add("tracks/triton/dca/before/hDCAxyVsPtTriton_jet", "DCAxy vs Pt (t)", HistType::kTH2F, {{PtAxis}, {dcaxyAxis}}); + jetHist.add("tracks/antiTriton/dca/before/hDCAxyVsPtantiTriton_jet", "DCAxy vs Pt (#bar{t})", HistType::kTH2F, {{PtAxis}, {dcaxyAxis}}); + jetHist.add("tracks/triton/dca/before/hDCAzVsPtTriton_jet", "DCAz vs Pt (t)", HistType::kTH2F, {{dcazAxis}, {PtAxis}}); + jetHist.add("tracks/antiTriton/dca/before/hDCAzVsPtantiTriton_jet", "DCAz vs Pt (#bar{t})", HistType::kTH2F, {{dcazAxis}, {PtAxis}}); + } + + if (cEnableHeliumQA) { + jetHist.add("tracks/helium/dca/before/hDCAxyVsPtHelium_jet", "DCAxy vs Pt (He)", HistType::kTH2F, {{dcaxyAxis}, {450, 0.5f, 5.f}}); + jetHist.add("tracks/antiHelium/dca/before/hDCAxyVsPtantiHelium_jet", "DCAxy vs Pt (#bar{He})", HistType::kTH2F, {{dcaxyAxis}, {450, 0.5f, 5.f}}); + jetHist.add("tracks/helium/dca/before/hDCAzVsPtHelium_jet", "DCAz vs Pt (He)", HistType::kTH2F, {{dcazAxis}, {450, 0.5f, 5.f}}); + jetHist.add("tracks/antiHelium/dca/before/hDCAzVsPtantiHelium_jet", "DCAz vs Pt (#bar{He})", HistType::kTH2F, {{dcazAxis}, {450, 0.5f, 5.f}}); + } + + // outside jet + if (cEnableProtonQA) { + jetHist.add("tracks/proton/dca/before/hDCAxyVsPtProton", "DCAxy vs Pt (p)", HistType::kTH2F, {{dcaxyAxis}, {PtAxis}}); + jetHist.add("tracks/antiProton/dca/before/hDCAxyVsPtantiProton", "DCAxy vs Pt (#bar{p})", HistType::kTH2F, {{dcaxyAxis}, {PtAxis}}); + jetHist.add("tracks/proton/dca/before/hDCAzVsPtProton", "DCAz vs Pt (p)", HistType::kTH2F, {{dcazAxis}, {PtAxis}}); + jetHist.add("tracks/antiProton/dca/before/hDCAzVsPtantiProton", "DCAz vs Pt (#bar{p})", HistType::kTH2F, {{dcazAxis}, {PtAxis}}); + } + + if (cEnableDeuteronQA) { + jetHist.add("tracks/deuteron/dca/before/hDCAxyVsPtDeuteron", "DCAxy vs Pt (d)", HistType::kTH2F, {{dcaxyAxis}, {PtAxis}}); + jetHist.add("tracks/antiDeuteron/dca/before/hDCAxyVsPtantiDeuteron", "DCAxy vs Pt (#bar{d})", HistType::kTH2F, {{dcaxyAxis}, {PtAxis}}); + jetHist.add("tracks/deuteron/dca/before/hDCAzVsPtDeuteron", "DCAz vs Pt (d)", HistType::kTH2F, {{dcazAxis}, {PtAxis}}); + jetHist.add("tracks/antiDeuteron/dca/before/hDCAzVsPtantiDeuteron", "DCAz vs Pt (#bar{d})", HistType::kTH2F, {{dcazAxis}, {PtAxis}}); + } + + if (cEnableTritonQA) { + jetHist.add("tracks/triton/dca/before/hDCAxyVsPtTriton", "DCAxy vs Pt (t)", HistType::kTH2F, {{dcaxyAxis}, {PtAxis}}); + jetHist.add("tracks/antiTriton/dca/before/hDCAxyVsPtantiTriton", "DCAxy vs Pt (#bar{t})", HistType::kTH2F, {{dcaxyAxis}, {PtAxis}}); + jetHist.add("tracks/triton/dca/before/hDCAzVsPtTriton", "DCAz vs Pt (t)", HistType::kTH2F, {{dcazAxis}, {PtAxis}}); + jetHist.add("tracks/antiTriton/dca/before/hDCAzVsPtantiTriton", "DCAz vs Pt (#bar{t})", HistType::kTH2F, {{dcazAxis}, {PtAxis}}); + } + + if (cEnableHeliumQA) { + jetHist.add("tracks/helium/dca/before/hDCAxyVsPtHelium", "DCAxy vs Pt (He)", HistType::kTH2F, {{450, 0.5f, 5.f}, {dcaxyAxis}}); + jetHist.add("tracks/antiHelium/dca/before/hDCAxyVsPtantiHelium", "DCAxy vs Pt (#bar{He})", HistType::kTH2F, {{450, 0.5f, 5.f}, {dcaxyAxis}}); + jetHist.add("tracks/helium/dca/before/hDCAzVsPtHelium", "DCAz vs Pt (He)", HistType::kTH2F, {{dcazAxis}, {450, 0.5f, 5.f}}); + jetHist.add("tracks/antiHelium/dca/before/hDCAzVsPtantiHelium", "DCAz vs Pt (#bar{He})", HistType::kTH2F, {{dcazAxis}, {450, 0.5f, 5.f}}); + } + + // PartilceJet-constituents + jetHist.add("mcpJet/pt/PtParticleType", "Pt (p) vs jetflag vs particletype", HistType::kTH3D, {{100, 0.f, 10.f}, {2, 0, 2}, {14, -7, 7}}); + // detectorJet-constituents + jetHist.add("mcdJet/pt/PtParticleType", "Pt (p) vs jetflag vs particletype", HistType::kTH3D, {{100, 0.f, 10.f}, {2, 0, 2}, {14, -7, 7}}); + + jetHist.add("mcpJet/hJetPt", "Pt (jet)", HistType::kTH1F, {{100, 0.f, 50.f}}); + jetHist.add("mcpJet/hJetEta", "Eta (jet)", HistType::kTH1F, {{100, 1.5, 1.5}}); + jetHist.add("mcpJet/hJetPhi", "Phi (jet)", HistType::kTH1F, {{70, 0.f, 7.f}}); + + jetHist.add("mcdJet/hJetPt", "Pt (jet)", HistType::kTH1F, {{100, 0.f, 50.f}}); + jetHist.add("mcdJet/hJetEta", "Eta (jet)", HistType::kTH1F, {{100, 1.5, 1.5}}); + jetHist.add("mcdJet/hJetPhi", "Phi (jet)", HistType::kTH1F, {{70, 0.f, 7.f}}); + + // rec matched + jetHist.add("recmatched/hRecMatchedJetPt", "matched jet pT (Rec level);#it{p}_{T,jet part} (GeV/#it{c}); #it{p}_{T,jet part} - #it{p}_{T,jet det}", HistType::kTH2F, {{100, 0., 100.}, {400, -20., 20.}}); + jetHist.add("recmatched/hRecMatchedJetPhi", "matched jet #varphi (Rec level);#varphi_{T,jet part}; #varphi_{jet part}-#varphi_{jet det}", HistType::kTH2F, {{700, 0., 7.}, {200, -5., 5.}}); + jetHist.add("recmatched/hRecMatchedJetEta", "matched jet #eta (Rec level);#eta_{T,jet part}; #eta_{jet part}-#eta_{jet det} ", HistType::kTH2F, {{200, -1., 1.}, {500, -2.5, 2.5}}); + + jetHist.add("recmatched/h2ResponseMatrix", "matched jet pT;#it{p}_{T} (true); #it{p}_{T} (measured)", HistType::kTH2F, {{40, 0., 100.}, {40, 0., 100.}}); + ///////// + jetHist.add("recmatched/hRecJetPt", "matched jet pT (Rec level);#it{p}_{T,jet part} (GeV/#it{c}); #it{p}_{T,jet part} - #it{p}_{T,jet det}", HistType::kTH1F, {{100, 0., 100.}}); + jetHist.add("recmatched/hGenJetPt", "matched jet pT (Rec level);#it{p}_{T,jet part} (GeV/#it{c}); #it{p}_{T,jet part} - #it{p}_{T,jet det}", HistType::kTH1F, {{100, 0., 100.}}); + + jetHist.add("recmatched/pt/PtParticleType", "Pt (p) vs jetflag vs particletype", HistType::kTH3D, {{100, 0.f, 10.f}, {2, 0, 2}, {14, -7, 7}}); + + // gen matched + jetHist.add("genmatched/hRecMatchedJetPt", "matched jet pT (Rec level);#it{p}_{T,jet part} (GeV/#it{c}); #it{p}_{T,jet part} - #it{p}_{T,jet det}", HistType::kTH2F, {{100, 0., 100.}, {400, -20., 20.}}); + jetHist.add("genmatched/hRecMatchedJetPhi", "matched jet #varphi (Rec level);#varphi_{T,jet part}; #varphi_{jet part}-#varphi_{jet det}", HistType::kTH2F, {{700, 0., 7.}, {200, -5., 5.}}); + jetHist.add("genmatched/hRecMatchedJetEta", "matched jet #eta (Rec level);#eta_{T,jet part}; #eta_{jet part}-#eta_{jet det} ", HistType::kTH2F, {{200, -1., 1.}, {500, -2.5, 2.5}}); + + ///////// + jetHist.add("genmatched/hRecJetPt", "matched jet pT (Rec level);#it{p}_{T,jet part} (GeV/#it{c}); #it{p}_{T,jet part} - #it{p}_{T,jet det}", HistType::kTH1F, {{100, 0., 100.}}); + jetHist.add("genmatched/hGenJetPt", "matched jet pT (Rec level);#it{p}_{T,jet part} (GeV/#it{c}); #it{p}_{T,jet part} - #it{p}_{T,jet det}", HistType::kTH1F, {{100, 0., 100.}}); + jetHist.add("genmatched/hRecJetWithGenPt", "matched jet pT (Rec level);#it{p}_{T,jet part} (GeV/#it{c}); #it{p}_{T,jet part} - #it{p}_{T,jet det}", HistType::kTH1F, {{100, 0., 100.}}); + jetHist.add("genmatched/hGenJetPtMatched", "matched jet pT (Rec level);#it{p}_{T,jet part} (GeV/#it{c}); #it{p}_{T,jet part} - #it{p}_{T,jet det}", HistType::kTH1F, {{100, 0., 100.}}); + + jetHist.add("genmatched/pt/PtParticleType", "Pt (p) vs jetflag vs particletype", HistType::kTH3D, {{100, 0.f, 10.f}, {2, 0, 2}, {14, -7, 7}}); + } + } + + template + bool isTrackSelected(const TrackType track) + { + // standard track selection + if (track.pt() < cfgtrkMinPt) + return false; + if (std::abs(track.eta()) > cfgtrkMaxEta) + return false; + if (std::abs(track.dcaXY()) > cfgMaxDCArToPVcut) + return false; + if (std::abs(track.dcaZ()) > cfgMaxDCAzToPVcut) + return false; + if (track.tpcNClsFindable() < cfgnFindableTPCClusters) + return false; + if (track.tpcNClsCrossedRows() < cfgnTPCCrossedRows) + return false; + if (track.tpcChi2NCl() > cfgnTPCChi2) + return false; + if (track.itsChi2NCl() > cfgnITSChi2) + return false; + if (cfgConnectedToPV && !track.isPVContributor()) + return false; + return true; + } + + int nEvents = 0; + template + void fillTrackInfo(const TracksType& trk, const JetType& jets) + { + + if (!isTrackSelected(trk)) + return; + if (trk.pt() > cMaxPt) + return; + jetHist.fill(HIST("tracks/h2TPCsignVsTPCmomentum"), trk.tpcInnerParam() / (1.f * trk.sign()), trk.tpcSignal()); + bool jetFlag = false; + float jetPt = -999.; + for (auto const& jet : jets) { + double delPhi = TVector2::Phi_mpi_pi(jet.phi() - trk.phi()); + double delEta = jet.eta() - trk.eta(); + double R = TMath::Sqrt((delEta * delEta) + (delPhi * delPhi)); + if (R < cfgjetR) + jetFlag = true; + jetPt = jet.pt(); + break; + } + // tof + // float gamma =-999; + float massTOF = -999; + if (trk.hasTOF()) { + // gamma = 1.f / TMath::Sqrt(1.f - (trk.beta() * trk.beta())); + massTOF = trk.p() * TMath::Sqrt(1.f / (trk.beta() * trk.beta()) - 1.f); + } + + if (addTOFplots && trk.hasTOF()) { + jetHist.fill(HIST("tracks/h2TOFbetaVsP"), trk.p() / (1.f * trk.sign()), trk.beta()); + } + if (jetFlag) { + jetHist.fill(HIST("tracks/h2TPCsignVsTPCmomentum_Jet"), trk.tpcInnerParam() / (1.f * trk.sign()), trk.tpcSignal()); + if (addTOFplots && trk.hasTOF()) { + jetHist.fill(HIST("tracks/h2TOFbetaVsP_Jet"), trk.p() / (1.f * trk.sign()), trk.beta()); + } + if (trk.sign() > 0) { // particle info + if (addpik) { + jetHist.fill(HIST("tracks/pion/h3PtVsPionNSigmaTPCVsPtJet_jet"), trk.pt(), trk.tpcNSigmaPi(), jetPt); + jetHist.fill(HIST("tracks/kaon/h3PtVsKaonNSigmaTPCVsPtJet_jet"), trk.pt(), trk.tpcNSigmaKa(), jetPt); + } + jetHist.fill(HIST("tracks/proton/h3PtVsProtonNSigmaTPCVsPtJet_jet"), trk.pt(), trk.tpcNSigmaPr(), jetPt); + jetHist.fill(HIST("tracks/deuteron/h3PtVsDeuteronNSigmaTPCVsPtJet_jet"), trk.pt(), trk.tpcNSigmaDe(), jetPt); + jetHist.fill(HIST("tracks/helium/h3PtVsHeliumNSigmaTPCVsPtJet_jet"), trk.pt(), trk.tpcNSigmaHe(), jetPt); + jetHist.fill(HIST("tracks/triton/h3PtVsTritonNSigmaTPCVsPtJet_jet"), trk.pt(), trk.tpcNSigmaTr(), jetPt); + + if (cEnableProtonQA && std::abs(trk.tpcNSigmaPr()) < cfgnTPCPIDPr) { + jetHist.fill(HIST("tracks/proton/dca/after/hDCAxyVsPtProton_jet"), trk.dcaXY(), trk.pt()); + jetHist.fill(HIST("tracks/proton/dca/after/hDCAzVsPtProton_jet"), trk.dcaZ(), trk.pt()); + } + if (cEnableDeuteronQA && std::abs(trk.tpcNSigmaDe()) < cfgnTPCPIDDe) { + jetHist.fill(HIST("tracks/deuteron/dca/after/hDCAxyVsPtDeuteron_jet"), trk.dcaXY(), trk.pt()); + jetHist.fill(HIST("tracks/deuteron/dca/after/hDCAzVsPtDeuteron_jet"), trk.dcaZ(), trk.pt()); + } + if (cEnableTritonQA && std::abs(trk.tpcNSigmaHe()) < cfgnTPCPIDTr) { + jetHist.fill(HIST("tracks/triton/dca/after/hDCAxyVsPtTriton_jet"), trk.dcaXY(), trk.pt()); + jetHist.fill(HIST("tracks/triton/dca/after/hDCAzVsPtTriton_jet"), trk.dcaZ(), trk.pt()); + } + if (cEnableHeliumQA && std::abs(trk.tpcNSigmaHe()) < cfgnTPCPIDHe) { + jetHist.fill(HIST("tracks/helium/dca/after/hDCAxyVsPtHelium_jet"), trk.dcaXY(), trk.pt()); + jetHist.fill(HIST("tracks/helium/dca/after/hDCAzVsPtHelium_jet"), trk.dcaZ(), trk.pt()); + } + + if (addTOFplots && trk.hasTOF()) { + if (!useTPCpreSel) { + jetHist.fill(HIST("tracks/proton/h2TOFmassProtonVsPt_jet"), massTOF, trk.pt()); + jetHist.fill(HIST("tracks/proton/h2TOFmass2ProtonVsPt_jet"), massTOF * massTOF - gMassProton * gMassProton, trk.pt()); + + jetHist.fill(HIST("tracks/deuteron/h2TOFmassDeuteronVsPt_jet"), massTOF, trk.pt()); + jetHist.fill(HIST("tracks/deuteron/h2TOFmass2DeuteronVsPt_jet"), massTOF * massTOF - gMassDeuteron * gMassDeuteron, trk.pt()); + + jetHist.fill(HIST("tracks/triton/h2TOFmassTritonVsPt_jet"), massTOF, trk.pt()); + jetHist.fill(HIST("tracks/triton/h2TOFmass2TritonVsPt_jet"), massTOF * massTOF - gMassTriton * gMassTriton, trk.pt()); + + jetHist.fill(HIST("tracks/helium/h2TOFmassHeliumVsPt_jet"), massTOF, trk.pt()); + jetHist.fill(HIST("tracks/helium/h2TOFmass2HeliumVsPt_jet"), massTOF * massTOF - gMassHelium * gMassHelium, trk.pt()); + + jetHist.fill(HIST("tracks/proton/h2TofNsigmaProtonVsPt_jet"), trk.tofNSigmaPr(), trk.pt()); + jetHist.fill(HIST("tracks/deuteron/h2TofNsigmaDeuteronVsPt_jet"), trk.tofNSigmaDe(), trk.pt()); + jetHist.fill(HIST("tracks/helium/h2TofNsigmaHeliumVsPt_jet"), trk.tofNSigmaHe(), trk.pt()); + jetHist.fill(HIST("tracks/triton/h2TofNsigmaTritonVsPt_jet"), trk.tofNSigmaTr(), trk.pt()); + + } else { + if (trk.tpcNSigmaPr() < useTPCpreSel) { + jetHist.fill(HIST("tracks/proton/h2TOFmassProtonVsPt_jet"), massTOF, trk.pt()); + jetHist.fill(HIST("tracks/proton/h2TOFmass2ProtonVsPt_jet"), massTOF * massTOF - gMassProton * gMassProton, trk.pt()); + jetHist.fill(HIST("tracks/proton/h2TofNsigmaProtonVsPt_jet"), trk.tofNSigmaPr(), trk.pt()); + } + + if (trk.tpcNSigmaDe() < useTPCpreSel) { + jetHist.fill(HIST("tracks/deuteron/h2TOFmassDeuteronVsPt_jet"), massTOF, trk.pt()); + jetHist.fill(HIST("tracks/deuteron/h2TOFmass2DeuteronVsPt_jet"), massTOF * massTOF - gMassDeuteron * gMassDeuteron, trk.pt()); + jetHist.fill(HIST("tracks/deuteron/h2TofNsigmaDeuteronVsPt_jet"), trk.tofNSigmaDe(), trk.pt()); + } + if (trk.tpcNSigmaTr() < useTPCpreSel) { + jetHist.fill(HIST("tracks/triton/h2TOFmassTritonVsPt_jet"), massTOF, trk.pt()); + jetHist.fill(HIST("tracks/triton/h2TOFmass2TritonVsPt_jet"), massTOF * massTOF - gMassTriton * gMassTriton, trk.pt()); + jetHist.fill(HIST("tracks/helium/h2TofNsigmaHeliumVsPt_jet"), trk.tofNSigmaHe(), trk.pt()); + } + if (trk.tpcNSigmaHe() < useTPCpreSel) { + jetHist.fill(HIST("tracks/helium/h2TOFmassHeliumVsPt_jet"), massTOF, trk.pt()); + jetHist.fill(HIST("tracks/helium/h2TOFmass2HeliumVsPt_jet"), massTOF * massTOF - gMassHelium * gMassHelium, trk.pt()); + jetHist.fill(HIST("tracks/triton/h2TofNsigmaTritonVsPt_jet"), trk.tofNSigmaTr(), trk.pt()); + } + } + // nSigma + if (addpik) { + jetHist.fill(HIST("tracks/pion/h2TofNsigmaPionVsPt_jet"), trk.tofNSigmaPi(), trk.pt()); + jetHist.fill(HIST("tracks/kaon/h2TofNsigmaKaonVsPt_jet"), trk.tofNSigmaKa(), trk.pt()); + } + + } // tof info + + } else { // anti-particle info + if (addpik) { + jetHist.fill(HIST("tracks/antiPion/h3PtVsPionNSigmaTPCVsPtJet_jet"), trk.pt(), trk.tpcNSigmaPi(), jetPt); + jetHist.fill(HIST("tracks/antiKaon/h3PtVsKaonNSigmaTPCVsPtJet_jet"), trk.pt(), trk.tpcNSigmaKa(), jetPt); + } + jetHist.fill(HIST("tracks/antiProton/h3PtVsantiProtonNSigmaTPCVsPtJet_jet"), trk.pt(), trk.tpcNSigmaPr(), jetPt); + jetHist.fill(HIST("tracks/antiDeuteron/h3PtVsantiDeuteronNSigmaTPCVsPtJet_jet"), trk.pt(), trk.tpcNSigmaDe(), jetPt); + jetHist.fill(HIST("tracks/antiHelium/h3PtVsantiHeliumNSigmaTPCVsPtJet_jet"), trk.pt(), trk.tpcNSigmaHe(), jetPt); + jetHist.fill(HIST("tracks/antiTriton/h3PtVsantiTritonNSigmaTPCVsPtJet_jet"), trk.pt(), trk.tpcNSigmaTr(), jetPt); + + if (cEnableProtonQA && std::abs(trk.tpcNSigmaPr()) < cfgnTPCPIDPr) { + jetHist.fill(HIST("tracks/antiProton/dca/after/hDCAxyVsPtantiProton_jet"), trk.dcaXY(), trk.pt()); + jetHist.fill(HIST("tracks/antiProton/dca/after/hDCAzVsPtantiProton_jet"), trk.dcaZ(), trk.pt()); + } + if (cEnableDeuteronQA && std::abs(trk.tpcNSigmaDe()) < cfgnTPCPIDDe) { + jetHist.fill(HIST("tracks/antiDeuteron/dca/after/hDCAxyVsPtantiDeuteron_jet"), trk.dcaXY(), trk.pt()); + jetHist.fill(HIST("tracks/antiDeuteron/dca/after/hDCAzVsPtantiDeuteron_jet"), trk.dcaZ(), trk.pt()); + } + if (cEnableHeliumQA && std::abs(trk.tpcNSigmaHe()) < cfgnTPCPIDHe) { + jetHist.fill(HIST("tracks/antiTriton/dca/after/hDCAxyVsPtantiTriton_jet"), trk.dcaXY(), trk.pt()); + jetHist.fill(HIST("tracks/antiTriton/dca/after/hDCAzVsPtantiTriton_jet"), trk.dcaZ(), trk.pt()); + } + if (cEnableTritonQA && std::abs(trk.tpcNSigmaHe()) < cfgnTPCPIDHe) { + jetHist.fill(HIST("tracks/antiHelium/dca/after/hDCAxyVsPtantiHelium_jet"), trk.dcaXY(), trk.pt()); + jetHist.fill(HIST("tracks/antiHelium/dca/after/hDCAzVsPtantiHelium_jet"), trk.dcaZ(), trk.pt()); + } + + if (addTOFplots && trk.hasTOF()) { + if (!useTPCpreSel) { + jetHist.fill(HIST("tracks/antiProton/h2TOFmassantiProtonVsPt_jet"), massTOF, trk.pt()); + jetHist.fill(HIST("tracks/antiProton/h2TOFmass2antiProtonVsPt_jet"), massTOF * massTOF - gMassProton * gMassProton, trk.pt()); + jetHist.fill(HIST("tracks/antiProton/h2TofNsigmaantiProtonVsPt_jet"), trk.tofNSigmaPr(), trk.pt()); + + jetHist.fill(HIST("tracks/antiDeuteron/h2TOFmassantiDeuteronVsPt_jet"), massTOF, trk.pt()); + jetHist.fill(HIST("tracks/antiDeuteron/h2TOFmass2antiDeuteronVsPt_jet"), massTOF * massTOF - gMassDeuteron * gMassDeuteron, trk.pt()); + jetHist.fill(HIST("tracks/antiDeuteron/h2TofNsigmaantiDeuteronVsPt_jet"), trk.tofNSigmaDe(), trk.pt()); + + jetHist.fill(HIST("tracks/antiTriton/h2TOFmassantiTritonVsPt_jet"), massTOF, trk.pt()); + jetHist.fill(HIST("tracks/antiTriton/h2TOFmass2antiTritonVsPt_jet"), massTOF * massTOF - gMassTriton * gMassTriton, trk.pt()); + jetHist.fill(HIST("tracks/antiTriton/h2TofNsigmaantiTritonVsPt_jet"), trk.tofNSigmaTr(), trk.pt()); + + jetHist.fill(HIST("tracks/antiHelium/h2TOFmassantiHeliumVsPt_jet"), massTOF, trk.pt()); + jetHist.fill(HIST("tracks/antiHelium/h2TOFmass2antiHeliumVsPt_jet"), massTOF * massTOF - gMassHelium * gMassHelium, trk.pt()); + jetHist.fill(HIST("tracks/antiHelium/h2TofNsigmaantiHeliumVsPt_jet"), trk.tofNSigmaHe(), trk.pt()); + } else { + if (trk.tpcNSigmaPr() < useTPCpreSel) { + jetHist.fill(HIST("tracks/antiProton/h2TOFmassantiProtonVsPt_jet"), massTOF, trk.pt()); + jetHist.fill(HIST("tracks/antiProton/h2TOFmass2antiProtonVsPt_jet"), massTOF * massTOF - gMassProton * gMassProton, trk.pt()); + jetHist.fill(HIST("tracks/antiProton/h2TofNsigmaantiProtonVsPt_jet"), trk.tofNSigmaPr(), trk.pt()); + } + if (trk.tpcNSigmaDe() < useTPCpreSel) { + jetHist.fill(HIST("tracks/antiDeuteron/h2TOFmassantiDeuteronVsPt_jet"), massTOF, trk.pt()); + jetHist.fill(HIST("tracks/antiDeuteron/h2TOFmass2antiDeuteronVsPt_jet"), massTOF * massTOF - gMassDeuteron * gMassDeuteron, trk.pt()); + jetHist.fill(HIST("tracks/antiDeuteron/h2TofNsigmaantiDeuteronVsPt_jet"), trk.tofNSigmaDe(), trk.pt()); + } + if (trk.tpcNSigmaTr() < useTPCpreSel) { + jetHist.fill(HIST("tracks/antiTriton/h2TOFmassantiTritonVsPt_jet"), massTOF, trk.pt()); + jetHist.fill(HIST("tracks/antiTriton/h2TOFmass2antiTritonVsPt_jet"), massTOF * massTOF - gMassTriton * gMassTriton, trk.pt()); + jetHist.fill(HIST("tracks/antiTriton/h2TofNsigmaantiTritonVsPt_jet"), trk.tofNSigmaTr(), trk.pt()); + } + if (trk.tpcNSigmaHe() < useTPCpreSel) { + jetHist.fill(HIST("tracks/antiHelium/h2TOFmassantiHeliumVsPt_jet"), massTOF, trk.pt()); + jetHist.fill(HIST("tracks/antiHelium/h2TOFmass2antiHeliumVsPt_jet"), massTOF * massTOF - gMassHelium * gMassHelium, trk.pt()); + jetHist.fill(HIST("tracks/antiHelium/h2TofNsigmaantiHeliumVsPt_jet"), trk.tofNSigmaHe(), trk.pt()); + } + } + + if (addpik) { + if (!useTPCpreSel) { + jetHist.fill(HIST("tracks/antiPion/h2TofNsigmaantiPionVsPt_jet"), trk.tofNSigmaPi(), trk.pt()); + jetHist.fill(HIST("tracks/antiKaon/h2TofNsigmaantiKaonVsPt_jet"), trk.tofNSigmaKa(), trk.pt()); + } else { + if (trk.tpcNSigmaPi() < useTPCpreSel) { + jetHist.fill(HIST("tracks/antiPion/h2TofNsigmaantiPionVsPt_jet"), trk.tofNSigmaPi(), trk.pt()); + } + if (trk.tpcNSigmaKa() < useTPCpreSel) { + jetHist.fill(HIST("tracks/antiKaon/h2TofNsigmaantiKaonVsPt_jet"), trk.tofNSigmaKa(), trk.pt()); + } + } + } // pikEnd + } + } // anti-particle + //////////////////////////////////////// + // within jet end + ////////////////////////////////////////// + } else { + jetHist.fill(HIST("tracks/h2TPCsignVsTPCmomentum_OutJet"), trk.tpcInnerParam() / (1.f * trk.sign()), trk.tpcSignal()); + if (addTOFplots && trk.hasTOF()) { + jetHist.fill(HIST("tracks/h2TOFbetaVsP_OutJet"), trk.p() / (1.f * trk.sign()), trk.beta()); + } + if (trk.sign() > 0) { + jetHist.fill(HIST("tracks/proton/h3PtVsProtonNSigmaTPC"), trk.pt(), trk.tpcNSigmaPr()); // Pr + jetHist.fill(HIST("tracks/deuteron/h3PtVsDeuteronNSigmaTPC"), trk.pt(), trk.tpcNSigmaDe()); // De + jetHist.fill(HIST("tracks/helium/h3PtVsHeliumNSigmaTPC"), trk.pt(), trk.tpcNSigmaHe()); // He + jetHist.fill(HIST("tracks/triton/h3PtVsTritonNSigmaTPC"), trk.pt(), trk.tpcNSigmaTr()); // Tr + + if (cEnableProtonQA && std::abs(trk.tpcNSigmaPr()) < cfgnTPCPIDPr) { + jetHist.fill(HIST("tracks/proton/dca/after/hDCAxyVsPtProton"), trk.dcaXY(), trk.pt()); + jetHist.fill(HIST("tracks/proton/dca/after/hDCAzVsPtProton"), trk.dcaZ(), trk.pt()); + } + if (cEnableDeuteronQA && std::abs(trk.tpcNSigmaDe()) < cfgnTPCPIDDe) { + jetHist.fill(HIST("tracks/deuteron/dca/after/hDCAxyVsPtDeuteron"), trk.dcaXY(), trk.pt()); + jetHist.fill(HIST("tracks/deuteron/dca/after/hDCAzVsPtDeuteron"), trk.dcaZ(), trk.pt()); + } + if (cEnableTritonQA && std::abs(trk.tpcNSigmaHe()) < cfgnTPCPIDTr) { + jetHist.fill(HIST("tracks/triton/dca/after/hDCAxyVsPtTriton"), trk.dcaXY(), trk.pt()); + jetHist.fill(HIST("tracks/triton/dca/after/hDCAzVsPtTriton"), trk.dcaZ(), trk.pt()); + } + if (cEnableHeliumQA && std::abs(trk.tpcNSigmaHe()) < cfgnTPCPIDHe) { + jetHist.fill(HIST("tracks/helium/dca/after/hDCAxyVsPtHelium"), trk.dcaXY(), trk.pt()); + jetHist.fill(HIST("tracks/helium/dca/after/hDCAzVsPtHelium"), trk.dcaZ(), trk.pt()); + } + if (addTOFplots && trk.hasTOF()) { + if (!useTPCpreSel) { + jetHist.fill(HIST("tracks/proton/h2TOFmassProtonVsPt"), massTOF, trk.pt()); + jetHist.fill(HIST("tracks/proton/h2TOFmass2ProtonVsPt"), massTOF * massTOF - gMassProton * gMassProton, trk.pt()); + jetHist.fill(HIST("tracks/proton/h2TofNsigmaProtonVsPt"), trk.tofNSigmaPr(), trk.pt()); + + jetHist.fill(HIST("tracks/deuteron/h2TOFmassDeuteronVsPt"), massTOF, trk.pt()); + jetHist.fill(HIST("tracks/deuteron/h2TOFmass2DeuteronVsPt"), massTOF * massTOF - gMassDeuteron * gMassDeuteron, trk.pt()); + jetHist.fill(HIST("tracks/deuteron/h2TofNsigmaDeuteronVsPt"), trk.tofNSigmaDe(), trk.pt()); + + jetHist.fill(HIST("tracks/triton/h2TOFmassTritonVsPt"), massTOF, trk.pt()); + jetHist.fill(HIST("tracks/triton/h2TOFmass2TritonVsPt"), massTOF * massTOF - gMassTriton * gMassTriton, trk.pt()); + jetHist.fill(HIST("tracks/helium/h2TofNsigmaHeliumVsPt"), trk.tofNSigmaHe(), trk.pt()); + + jetHist.fill(HIST("tracks/helium/h2TOFmassHeliumVsPt"), massTOF, trk.pt()); + jetHist.fill(HIST("tracks/helium/h2TOFmass2HeliumVsPt"), massTOF * massTOF - gMassHelium * gMassHelium, trk.pt()); + jetHist.fill(HIST("tracks/triton/h2TofNsigmaTritonVsPt"), trk.tofNSigmaTr(), trk.pt()); + } else { + if (trk.tpcNSigmaPr() < useTPCpreSel) { + jetHist.fill(HIST("tracks/proton/h2TOFmassProtonVsPt"), massTOF, trk.pt()); + jetHist.fill(HIST("tracks/proton/h2TOFmass2ProtonVsPt"), massTOF * massTOF - gMassProton * gMassProton, trk.pt()); + jetHist.fill(HIST("tracks/proton/h2TofNsigmaProtonVsPt"), trk.tofNSigmaPr(), trk.pt()); + } + if (trk.tpcNSigmaDe() < useTPCpreSel) { + jetHist.fill(HIST("tracks/deuteron/h2TOFmassDeuteronVsPt"), massTOF, trk.pt()); + jetHist.fill(HIST("tracks/deuteron/h2TOFmass2DeuteronVsPt"), massTOF * massTOF - gMassDeuteron * gMassDeuteron, trk.pt()); + jetHist.fill(HIST("tracks/deuteron/h2TofNsigmaDeuteronVsPt"), trk.tofNSigmaDe(), trk.pt()); + } + if (trk.tpcNSigmaTr() < useTPCpreSel) { + jetHist.fill(HIST("tracks/triton/h2TOFmassTritonVsPt"), massTOF, trk.pt()); + jetHist.fill(HIST("tracks/triton/h2TOFmass2TritonVsPt"), massTOF * massTOF - gMassTriton * gMassTriton, trk.pt()); + jetHist.fill(HIST("tracks/triton/h2TofNsigmaTritonVsPt"), trk.tofNSigmaTr(), trk.pt()); + } + if (trk.tpcNSigmaHe() < useTPCpreSel) { + jetHist.fill(HIST("tracks/helium/h2TOFmassHeliumVsPt"), massTOF, trk.pt()); + jetHist.fill(HIST("tracks/helium/h2TOFmass2HeliumVsPt"), massTOF * massTOF - gMassHelium * gMassHelium, trk.pt()); + jetHist.fill(HIST("tracks/helium/h2TofNsigmaHeliumVsPt"), trk.tofNSigmaHe(), trk.pt()); + } + } + + } // tof info + } else { + jetHist.fill(HIST("tracks/antiProton/h3PtVsantiProtonNSigmaTPC"), trk.pt(), trk.tpcNSigmaPr()); // Pr + jetHist.fill(HIST("tracks/antiDeuteron/h3PtVsantiDeuteronNSigmaTPC"), trk.pt(), trk.tpcNSigmaDe()); // De + jetHist.fill(HIST("tracks/antiHelium/h3PtVsantiHeliumNSigmaTPC"), trk.pt(), trk.tpcNSigmaHe()); // He + jetHist.fill(HIST("tracks/antiTriton/h3PtVsantiTritonNSigmaTPC"), trk.pt(), trk.tpcNSigmaTr()); // Tr + + if (cEnableProtonQA && std::abs(trk.tpcNSigmaPr()) < cfgnTPCPIDPr) { + jetHist.fill(HIST("tracks/antiProton/dca/after/hDCAxyVsPtantiProton"), trk.dcaXY(), trk.pt()); + jetHist.fill(HIST("tracks/antiProton/dca/after/hDCAzVsPtantiProton"), trk.dcaZ(), trk.pt()); + } + if (cEnableDeuteronQA && std::abs(trk.tpcNSigmaDe()) < cfgnTPCPIDDe) { + jetHist.fill(HIST("tracks/antiDeuteron/dca/after/hDCAxyVsPtantiDeuteron"), trk.dcaXY(), trk.pt()); + jetHist.fill(HIST("tracks/antiDeuteron/dca/after/hDCAzVsPtantiDeuteron"), trk.dcaZ(), trk.pt()); + } + if (cEnableHeliumQA && std::abs(trk.tpcNSigmaHe()) < cfgnTPCPIDHe) { + jetHist.fill(HIST("tracks/antiTriton/dca/after/hDCAxyVsPtantiTriton"), trk.dcaXY(), trk.pt()); + jetHist.fill(HIST("tracks/antiTriton/dca/after/hDCAzVsPtantiTriton"), trk.dcaZ(), trk.pt()); + } + if (cEnableTritonQA && std::abs(trk.tpcNSigmaHe()) < cfgnTPCPIDHe) { + jetHist.fill(HIST("tracks/antiHelium/dca/after/hDCAxyVsPtantiHelium"), trk.dcaXY(), trk.pt()); + jetHist.fill(HIST("tracks/antiHelium/dca/after/hDCAzVsPtantiHelium"), trk.dcaZ(), trk.pt()); + } + + if (addTOFplots && trk.hasTOF()) { + if (!useTPCpreSel) { + jetHist.fill(HIST("tracks/antiProton/h2TOFmassantiProtonVsPt"), massTOF, trk.pt()); + jetHist.fill(HIST("tracks/antiProton/h2TOFmass2antiProtonVsPt"), massTOF * massTOF - gMassProton * gMassProton, trk.pt()); + jetHist.fill(HIST("tracks/antiProton/h2TofNsigmaantiProtonVsPt"), trk.tofNSigmaPr(), trk.pt()); + + jetHist.fill(HIST("tracks/antiDeuteron/h2TOFmassantiDeuteronVsPt"), massTOF, trk.pt()); + jetHist.fill(HIST("tracks/antiDeuteron/h2TOFmass2antiDeuteronVsPt"), massTOF * massTOF - gMassDeuteron * gMassDeuteron, trk.pt()); + jetHist.fill(HIST("tracks/antiDeuteron/h2TofNsigmaantiDeuteronVsPt"), trk.tofNSigmaDe(), trk.pt()); + + jetHist.fill(HIST("tracks/antiTriton/h2TOFmassantiTritonVsPt"), massTOF, trk.pt()); + jetHist.fill(HIST("tracks/antiTriton/h2TOFmass2antiTritonVsPt"), massTOF * massTOF - gMassTriton * gMassTriton, trk.pt()); + jetHist.fill(HIST("tracks/antiHelium/h2TofNsigmaantiHeliumVsPt"), trk.tofNSigmaHe(), trk.pt()); + + jetHist.fill(HIST("tracks/antiHelium/h2TOFmassantiHeliumVsPt"), massTOF, trk.pt()); + jetHist.fill(HIST("tracks/antiHelium/h2TOFmass2antiHeliumVsPt"), massTOF * massTOF - gMassHelium * gMassHelium, trk.pt()); + jetHist.fill(HIST("tracks/antiTriton/h2TofNsigmaantiTritonVsPt"), trk.tofNSigmaTr(), trk.pt()); + } else { + if (trk.tpcNSigmaPr() < useTPCpreSel) { + jetHist.fill(HIST("tracks/antiProton/h2TOFmassantiProtonVsPt"), massTOF, trk.pt()); + jetHist.fill(HIST("tracks/antiProton/h2TOFmass2antiProtonVsPt"), massTOF * massTOF - gMassProton * gMassProton, trk.pt()); + jetHist.fill(HIST("tracks/antiProton/h2TofNsigmaantiProtonVsPt"), trk.tofNSigmaPr(), trk.pt()); + } + if (trk.tpcNSigmaDe() < useTPCpreSel) { + jetHist.fill(HIST("tracks/antiDeuteron/h2TOFmassantiDeuteronVsPt"), massTOF, trk.pt()); + jetHist.fill(HIST("tracks/antiDeuteron/h2TOFmass2antiDeuteronVsPt"), massTOF * massTOF - gMassDeuteron * gMassDeuteron, trk.pt()); + jetHist.fill(HIST("tracks/antiDeuteron/h2TofNsigmaantiDeuteronVsPt"), trk.tofNSigmaDe(), trk.pt()); + } + if (trk.tpcNSigmaTr() < useTPCpreSel) { + jetHist.fill(HIST("tracks/antiTriton/h2TOFmassantiTritonVsPt"), massTOF, trk.pt()); + jetHist.fill(HIST("tracks/antiTriton/h2TOFmass2antiTritonVsPt"), massTOF * massTOF - gMassTriton * gMassTriton, trk.pt()); + jetHist.fill(HIST("tracks/antiTriton/h2TofNsigmaantiTritonVsPt"), trk.tofNSigmaTr(), trk.pt()); + } + if (trk.tpcNSigmaHe() < useTPCpreSel) { + jetHist.fill(HIST("tracks/antiHelium/h2TOFmassantiHeliumVsPt"), massTOF, trk.pt()); + jetHist.fill(HIST("tracks/antiHelium/h2TOFmass2antiHeliumVsPt"), massTOF * massTOF - gMassHelium * gMassHelium, trk.pt()); + jetHist.fill(HIST("tracks/antiHelium/h2TofNsigmaantiHeliumVsPt"), trk.tofNSigmaHe(), trk.pt()); + } + } + } + } + + } //////////////////////////////////////// + // outside jet + //////////////////////////////////////// + } + + void processJetTracksData(aod::JCollision const& collision, chargedJetstrack const& chargedjets, soa::Join const& tracks, TrackCandidates const&) + { + + if (fabs(collision.posZ()) > 10) + return; + if (!jetderiveddatautilities::selectCollision(collision, jetderiveddatautilities::JCollisionSel::sel8)) + return; + + int nJets = 0; + + for (const auto& chargedjet : chargedjets) { + jetHist.fill(HIST("jet/h1JetPt"), chargedjet.pt()); + jetHist.fill(HIST("jet/h1JetEta"), chargedjet.eta()); + jetHist.fill(HIST("jet/h1JetPhi"), chargedjet.phi()); + nJets++; + } + + jetHist.fill(HIST("jet/nJetsPerEvent"), nJets); + jetHist.fill(HIST("vertexZ"), collision.posZ()); + if (nJets > 0) + jetHist.fill(HIST("jet/vertexZ"), collision.posZ()); + else + jetHist.fill(HIST("jetOut/vertexZ"), collision.posZ()); + + for (auto& track : tracks) { + auto trk = track.track_as(); + fillTrackInfo(trk, chargedjets); + } + } + + void processMCGen(o2::aod::JMcCollision const& collision, /*soa::SmallGroups> const& recoColls,*/ aod::JMcParticles const& mcParticles, soa::Filtered const& mcpjets) + { + jetHist.fill(HIST("mcpJet/eventStat"), 0.5); + jetHist.fill(HIST("mcpJet/eventStat"), 1.5); + + if (fabs(collision.posZ()) > 10) // bad vertex + return; + + jetHist.fill(HIST("mcpJet/eventStat"), 2.5); + + jetHist.fill(HIST("mcpJet/vertexZ"), collision.posZ()); + + bool INELgt0 = false; + for (const auto& mcParticle : mcParticles) { + if (fabs(mcParticle.eta()) < cfgtrkMaxEta) { + INELgt0 = true; + break; + } + } + if (!INELgt0) // not true INEL + return; + + jetHist.fill(HIST("mcpJet/eventStat"), 3.5); + + int nJets = 0; + for (auto& mcpjet : mcpjets) { + jetHist.fill(HIST("mcpJet/hJetPt"), mcpjet.pt()); + jetHist.fill(HIST("mcpJet/hJetEta"), mcpjet.eta()); + jetHist.fill(HIST("mcpJet/hJetPhi"), mcpjet.phi()); + nJets++; + } + jetHist.fill(HIST("mcpJet/nJetsPerEvent"), nJets); + + for (const auto& mcParticle : mcParticles) { + + if (!mcParticle.isPhysicalPrimary()) + continue; + if (fabs(mcParticle.eta()) > cfgtrkMaxEta) + continue; + if (fabs(mcParticle.y()) > cfgtrkMaxRap) + continue; + + bool jetFlag = false; + // float jetPt = -999.; + for (auto& mcpjet : mcpjets) { + double delPhi = TVector2::Phi_mpi_pi(mcpjet.phi() - mcParticle.phi()); + double delEta = mcpjet.eta() - mcParticle.eta(); + double R = TMath::Sqrt((delEta * delEta) + (delPhi * delPhi)); + if (R < cfgjetR) + jetFlag = true; + // jetPt = mcpjet.pt(); + break; + } // jet + if (mapPDGToValue(mcParticle.pdgCode()) != 0) { + jetHist.fill(HIST("mcpJet/pt/PtParticleType"), mcParticle.pt(), jetFlag, mapPDGToValue(mcParticle.pdgCode())); + } + + } // track + } // process mc + + void processMCRec(o2::aod::JCollision const& collisionJet, soa::Join const& tracks, + soa::Filtered const& mcdjets, TrackCandidatesMC const&, JetParticles const&) + { + jetHist.fill(HIST("mcdJet/eventStat"), 0.5); + // JEhistos.fill(HIST("nEvents_MCRec"), 0.5); + + if (!jetderiveddatautilities::selectCollision(collisionJet, jetderiveddatautilities::JCollisionSel::sel8)) + return; + // bool jetFlag = kFALSE; + + jetHist.fill(HIST("mcdJet/eventStat"), 1.5); + + if (fabs(collisionJet.posZ()) > 10) + return; + + jetHist.fill(HIST("mcdJet/eventStat"), 2.5); + bool INELgt0 = false; + for (const auto& track : tracks) { + if (fabs(track.eta()) < cfgtrkMaxEta) { + INELgt0 = true; + break; + } + } + if (!INELgt0) + return; + jetHist.fill(HIST("mcdJet/eventStat"), 3.5); + int nJets = 0; + for (auto& mcdjet : mcdjets) { + jetHist.fill(HIST("mcdJet/hJetPt"), mcdjet.pt()); + jetHist.fill(HIST("mcdJet/hJetEta"), mcdjet.eta()); + jetHist.fill(HIST("mcdJet/hJetPhi"), mcdjet.phi()); + nJets++; + } + + jetHist.fill(HIST("mcdJet/vertexZ"), collisionJet.posZ()); + jetHist.fill(HIST("mcdJet/nJetsPerEvent"), nJets); + + for (auto& track : tracks) { + auto fullTrack = track.track_as(); + if (!isTrackSelected(fullTrack)) + continue; + if (!track.has_mcParticle()) + continue; + auto mcTrack = track.mcParticle_as(); + if (fabs(mcTrack.eta()) > cfgtrkMaxEta) + continue; + if (!mcTrack.isPhysicalPrimary()) + continue; + + bool jetFlag = false; + // float jetPt = -999.; + for (auto& mcdjet : mcdjets) { + double delPhi = TVector2::Phi_mpi_pi(mcdjet.phi() - track.phi()); + double delEta = mcdjet.eta() - track.eta(); + double R = TMath::Sqrt((delEta * delEta) + (delPhi * delPhi)); + if (R < cfgjetR) + jetFlag = true; + // jetPt = mcdjet.pt(); + break; + } // jet + + if (mapPDGToValue(mcTrack.pdgCode()) != 0) { + jetHist.fill(HIST("mcdJet/pt/PtParticleType"), mcTrack.pt(), jetFlag, mapPDGToValue(mcTrack.pdgCode())); + } + + } // tracks + } + + void processRecMatched(aod::JCollision const& collision, JetMCDetTable const& mcdjets, + soa::Join const& tracks, + JetMCPartTable const&, TrackCandidatesMC const&, aod::JMcParticles const&) + { + if (fabs(collision.posZ()) > 10) + return; + if (!jetderiveddatautilities::selectCollision(collision, jetderiveddatautilities::JCollisionSel::sel8)) + return; + + jetHist.fill(HIST("recmatched/vertexZ"), collision.posZ()); + bool INELgt0 = false; + for (const auto& track : tracks) { + if (fabs(track.eta()) < cfgtrkMaxEta) { + INELgt0 = true; + break; + } + } + if (!INELgt0) + return; + + std::vector mcdJetPt{}; + std::vector mcdJetPhi{}; + std::vector mcdJetEta{}; + std::vector mcpJetPt{}; + std::vector mcpJetPhi{}; + std::vector mcpJetEta{}; + + for (auto& mcdjet : mcdjets) { + + if (!mcdjet.has_matchedJetGeo()) + continue; + for (auto& mcpjet : mcdjet.template matchedJetGeo_as()) { + if (!mcpjet.has_matchedJetGeo()) + continue; + + mcdJetPt.push_back(mcdjet.pt()); + mcdJetPhi.push_back(mcdjet.phi()); + mcdJetEta.push_back(mcdjet.eta()); + mcpJetPt.push_back(mcpjet.pt()); + mcpJetPhi.push_back(mcpjet.phi()); + mcpJetEta.push_back(mcpjet.eta()); + + jetHist.fill(HIST("recmatched/hRecMatchedJetPt"), mcpjet.pt(), mcpjet.pt() - mcdjet.pt()); + jetHist.fill(HIST("recmatched/hRecMatchedJetPhi"), mcpjet.phi(), mcpjet.phi() - mcdjet.phi()); + jetHist.fill(HIST("recmatched/hRecMatchedJetEta"), mcpjet.eta(), mcpjet.eta() - mcdjet.eta()); + + jetHist.fill(HIST("recmatched/hRecJetPt"), mcdjet.pt()); + jetHist.fill(HIST("recmatched/hGenJetPt"), mcpjet.pt()); + jetHist.fill(HIST("recmatched/h2ResponseMatrix"), mcpjet.pt(), mcdjet.pt()); + + } // mcpJet + + } // mcdJet + + for (const auto& track : tracks) { + auto completeTrack = track.track_as(); + if (fabs(completeTrack.eta()) > cfgtrkMaxEta) + continue; + if (!isTrackSelected(completeTrack)) + continue; + if (!track.has_mcParticle()) + continue; + auto mcTrack = track.mcParticle_as(); + // add pid later + + bool jetFlag = false; + for (int iDJet = 0; iDJet < mcdJetPt.size(); iDJet++) { + double delPhi = TVector2::Phi_mpi_pi(mcdJetPhi[iDJet] - track.phi()); + double delEta = mcdJetEta[iDJet] - track.eta(); + double R = TMath::Sqrt((delEta * delEta) + (delPhi * delPhi)); + + if (R < cfgjetR) { + jetFlag = true; + break; + } + } + + if (mapPDGToValue(mcTrack.pdgCode()) != 0) { + jetHist.fill(HIST("recmatched/pt/PtParticleType"), mcTrack.pt(), jetFlag, mapPDGToValue(mcTrack.pdgCode())); + } + } // tracks + } // process + + int nprocessSimJEEvents = 0; + void processGenMatched(aod::JMcCollision const& collision, + /*soa::SmallGroups> const& recocolls,*/ + JetMCDetTable const&, JetMCPartTable const& mcpjets, aod::JMcParticles const& mcParticles) + { + + if (cDebugLevel > 0) { + nprocessSimJEEvents++; + if ((nprocessSimJEEvents + 1) % 100000 == 0) + LOG(debug) << "Jet Events: " << nprocessSimJEEvents; + } + if (fabs(collision.posZ()) > 10) + return; + + jetHist.fill(HIST("genmatched/vertexZ"), collision.posZ()); + + bool INELgt0 = false; + for (const auto& mcParticle : mcParticles) { + if (fabs(mcParticle.eta()) < cfgtrkMaxEta) { + INELgt0 = true; + break; + } + } + if (!INELgt0) + return; + + std::vector mcdJetPt{}; + std::vector mcdJetPhi{}; + std::vector mcdJetEta{}; + std::vector mcpJetPt{}; + std::vector mcpJetPhi{}; + std::vector mcpJetEta{}; + + for (auto& mcpjet : mcpjets) { + jetHist.fill(HIST("genmatched/hGenJetPt"), mcpjet.pt()); + if (!mcpjet.has_matchedJetGeo()) + continue; + jetHist.fill(HIST("genmatched/hGenJetPtMatched"), mcpjet.pt()); + for (auto& mcdjet : mcpjet.template matchedJetGeo_as()) { + if (!mcdjet.has_matchedJetGeo()) + continue; + mcdJetPt.push_back(mcdjet.pt()); + mcdJetPhi.push_back(mcdjet.phi()); + mcdJetEta.push_back(mcdjet.eta()); + mcpJetPt.push_back(mcpjet.pt()); + mcpJetPhi.push_back(mcpjet.phi()); + mcpJetEta.push_back(mcpjet.eta()); + + jetHist.fill(HIST("genmatched/hRecJetPt"), mcpjet.pt()); + jetHist.fill(HIST("genmatched/hRecJetWithGenPt"), mcdjet.pt()); + jetHist.fill(HIST("genmatched/hRecMatchedJetPt"), mcpjet.pt(), mcpjet.pt() - mcdjet.pt()); + jetHist.fill(HIST("genmatched/hRecMatchedJetPhi"), mcpjet.phi(), mcpjet.phi() - mcdjet.phi()); + jetHist.fill(HIST("genmatched/hRecMatchedJetEta"), mcpjet.eta(), mcpjet.eta() - mcdjet.eta()); + + } // mcdJet + } // mcpJet + + for (const auto& mcParticle : mcParticles) { + if (fabs(mcParticle.eta()) > cfgtrkMaxEta) + continue; + // add pid later + + bool jetFlag = false; + for (int iDJet = 0; iDJet < mcpJetPt.size(); iDJet++) { + double delPhi = TVector2::Phi_mpi_pi(mcpJetPhi[iDJet] - mcParticle.phi()); + double delEta = mcpJetEta[iDJet] - mcParticle.eta(); + double R = TMath::Sqrt((delEta * delEta) + (delPhi * delPhi)); + + if (R < cfgjetR) { + jetFlag = true; + break; + } + } // DetJet + if (mapPDGToValue(mcParticle.pdgCode()) != 0) { + jetHist.fill(HIST("genmatched/pt/PtParticleType"), mcParticle.pt(), jetFlag, mapPDGToValue(mcParticle.pdgCode())); + } + } // jet constituents + + } // process + + PROCESS_SWITCH(nucleiInJets, processJetTracksData, "nuclei in Jets data", true); + PROCESS_SWITCH(nucleiInJets, processMCRec, "nuclei in Jets for detectorlevel Jets", true); + PROCESS_SWITCH(nucleiInJets, processMCGen, "nuclei in Jets MC particlelevel Jets", false); + PROCESS_SWITCH(nucleiInJets, processRecMatched, "nuclei in Jets rec matched", false); + PROCESS_SWITCH(nucleiInJets, processGenMatched, "nuclei in Jets gen matched", false); +}; + +WorkflowSpec defineDataProcessing(ConfigContext const& cfgc) +{ + return WorkflowSpec{adaptAnalysisTask(cfgc, TaskName{"nuclei-in-jets"})}; +};