From 0d385aeea38006bc27bc4648a261c3c6dfdec93d Mon Sep 17 00:00:00 2001 From: sarahherrmann <83958698+sarahherrmann@users.noreply.github.com> Date: Mon, 29 Nov 2021 13:15:12 +0100 Subject: [PATCH 1/8] First version of analyse-mft-tracks, a task computing histograms for MFT tracks --- PWGMM/Tasks/CMakeLists.txt | 8 +- PWGMM/Tasks/analyse-mft-tracks.cxx | 127 +++++++++++++++++++++++++++++ 2 files changed, 134 insertions(+), 1 deletion(-) create mode 100644 PWGMM/Tasks/analyse-mft-tracks.cxx diff --git a/PWGMM/Tasks/CMakeLists.txt b/PWGMM/Tasks/CMakeLists.txt index ed61a3c5cdd..03c872efe8a 100644 --- a/PWGMM/Tasks/CMakeLists.txt +++ b/PWGMM/Tasks/CMakeLists.txt @@ -17,4 +17,10 @@ o2physics_add_dpl_workflow(run2-dndeta o2physics_add_dpl_workflow(dndeta SOURCES dndeta.cxx dndeta.h PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore - COMPONENT_NAME Analysis) + COMPONENT_NAME Analysis) + + +o2physics_add_dpl_workflow(analyse-mft-tracks + SOURCES analyse-mft-tracks.cxx + PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore + COMPONENT_NAME Analysis) diff --git a/PWGMM/Tasks/analyse-mft-tracks.cxx b/PWGMM/Tasks/analyse-mft-tracks.cxx new file mode 100644 index 00000000000..2fee27ab028 --- /dev/null +++ b/PWGMM/Tasks/analyse-mft-tracks.cxx @@ -0,0 +1,127 @@ +#include "Framework/runDataProcessing.h" +#include "Framework/AnalysisTask.h" + +#include "TDatabasePDG.h" +#include "Common/Core/MC.h" + +using namespace o2; +using namespace o2::framework; + +using Particles = aod::McParticles; + + + +//First approach to analysing an AO2D.root file +//written thanks to https://aliceo2group.github.io/analysis-framework/docs/tutorials/analysistask.html + + + + +struct analyseMFTTracks +{ + int icoll = 0; + + HistogramRegistry registry + { + "registry", + { + {"TracksPhiEta_in_coll", "; #varphi; #eta; tracks", {HistType::kTH2F, {{600, -M_PI, M_PI}, {35, -4.5, -1.}}}}, + {"TracksPhiEta", "; #varphi; #eta; tracks", {HistType::kTH2F, {{600, -M_PI, M_PI}, {35, -4.5, -1.}}}}, // + {"TracksPhiEtaGen", "; #varphi; #eta; tracks", {HistType::kTH2F, {{600, 0, 2 * M_PI}, {35, -4.5, -1.}}}}, // + {"TracksEtaZvtx", "; #eta; Z_{vtx}; tracks", {HistType::kTH2F, {{35, -4.5, -1.}, {201, -20.1, 20.1}}}}, // + {"NtrkZvtx", "; N_{trk}; Z_{vtx}; events", {HistType::kTH2F, {{301, -0.5, 300.5}, {201, -20.1, 20.1}}}}, // + {"NtrkEta", "; N_{trk}; #eta; events", {HistType::kTH2F, {{301, -0.5, 300.5}, {35, -4.5, -1.}}}}, // + {"Multiplicity", "alibi_nightlies/O2DPG_pp_minbias_testbeam.sh/15-11-2021-18:00 - tf13; collisionID; N_{trk}^{MFT}", {HistType::kTH1F, {{101, 0., 100.}}}, true} // + } // + }; + + void process(o2::aod::Collision const& collision, o2::aod::MFTTracks const& tracks) + { + + auto z = collision.posZ(); + registry.fill(HIST("NtrkZvtx"), tracks.size(), z); + + for (auto& track : tracks) + { + registry.fill(HIST("TracksPhiEta_in_coll"), track.phi(), track.eta()); + registry.fill(HIST("TracksEtaZvtx"), track.eta(), z); + registry.fill(HIST("Multiplicity"), icoll); + registry.fill(HIST("NtrkEta"), tracks.size(), track.eta()); + } + icoll++; + + } + //end of process + +//aod::McCollisions +}; +//end of MyTask + + +struct analyseGenTracks +{ + + HistogramRegistry registryGen + { + "registryGen", + { + {"TracksPhiEtaGen", "; #varphi; #eta; tracks", {HistType::kTH2F, {{600, -M_PI, M_PI}, {35, -4.5, -1.}}}}, // + {"TracksEtaZvtxGen", "; #eta; Z_{vtx}; tracks", {HistType::kTH2F, {{35, -4.5, -1.}, {201, -20.1, 20.1}}}}, // + {"NtrkZvtxGen", "; N_{trk}; Z_{vtx}; events", {HistType::kTH2F, {{301, -0.5, 300.5}, {201, -20.1, 20.1}}}}, // + {"NtrkEtaGen", "; N_{trk}; #eta; events", {HistType::kTH2F, {{301, -0.5, 300.5}, {35, -4.5, -1.}}}}, // + } // + }; + + expressions::Filter posZFilterMC = (aod::mccollision::posZ < 15) && (aod::mccollision::posZ > -15); + + void process(soa::Filtered::iterator const& mcCollision, Particles const& particles) + { + int nChargedPrimaryParticles = 0; + auto z = mcCollision.posZ(); + + for (auto& particle : particles) + { + auto p = TDatabasePDG::Instance()->GetParticle(particle.pdgCode()); + int charge = 0; + if (p == nullptr) + { + // unknown particles will be skipped + if (particle.pdgCode() > 1000000000) + { + // auto x = (std::trunc(particle.pdgCode() / 10000) - 100000); + // charge = x - std::trunc(x / 1000) * 1000; + LOGF(debug, "[{}] Nucleus with PDG code {}", particle.globalIndex(), particle.pdgCode() /*, charge*/); // (charge %d) + } + else + { + LOGF(debug, "[{}] Unknown particle with PDG code {}", particle.globalIndex(), particle.pdgCode()); + } + } + else + { + charge = p->Charge(); + } + if (charge != 0 && particle.isPhysicalPrimary()) + { + registryGen.fill(HIST("TracksEtaZvtxGen"), particle.eta(), z); + registryGen.fill(HIST("TracksPhiEtaGen"), particle.phi(), particle.eta()); + + + registryGen.fill(HIST("TracksPhiEtaGen"), particle.phi(), particle.eta()); + nChargedPrimaryParticles++; + } + } + + //registryGen.fill(HIST("NtrkZvtxGen"), nChargedPrimaryParticles, mcCollision.posZ()); + } +}; +//end of the gen task + + +WorkflowSpec defineDataProcessing(ConfigContext const& cfgc) +{ + return WorkflowSpec{ + adaptAnalysisTask(cfgc), + //adaptAnalysisTask(cfgc), + }; +} From a6abc646551c8113b6ad2aa63de91a2d6a90579d Mon Sep 17 00:00:00 2001 From: sarahherrmann <83958698+sarahherrmann@users.noreply.github.com> Date: Mon, 29 Nov 2021 15:35:31 +0100 Subject: [PATCH 2/8] Change in processGen that runs --- PWGMM/Tasks/analyse-mft-tracks.cxx | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/PWGMM/Tasks/analyse-mft-tracks.cxx b/PWGMM/Tasks/analyse-mft-tracks.cxx index 2fee27ab028..aac4f6dbbb2 100644 --- a/PWGMM/Tasks/analyse-mft-tracks.cxx +++ b/PWGMM/Tasks/analyse-mft-tracks.cxx @@ -1,3 +1,16 @@ +// 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. + + + #include "Framework/runDataProcessing.h" #include "Framework/AnalysisTask.h" @@ -65,16 +78,16 @@ struct analyseGenTracks { "registryGen", { - {"TracksPhiEtaGen", "; #varphi; #eta; tracks", {HistType::kTH2F, {{600, -M_PI, M_PI}, {35, -4.5, -1.}}}}, // + {"TracksPhiEtaGen", "; #varphi; #eta; tracks", {HistType::kTH2F, {{600, 0, 2*M_PI}, {35, -4.5, -1.}}}}, // {"TracksEtaZvtxGen", "; #eta; Z_{vtx}; tracks", {HistType::kTH2F, {{35, -4.5, -1.}, {201, -20.1, 20.1}}}}, // {"NtrkZvtxGen", "; N_{trk}; Z_{vtx}; events", {HistType::kTH2F, {{301, -0.5, 300.5}, {201, -20.1, 20.1}}}}, // {"NtrkEtaGen", "; N_{trk}; #eta; events", {HistType::kTH2F, {{301, -0.5, 300.5}, {35, -4.5, -1.}}}}, // } // }; - expressions::Filter posZFilterMC = (aod::mccollision::posZ < 15) && (aod::mccollision::posZ > -15); - void process(soa::Filtered::iterator const& mcCollision, Particles const& particles) + + void process(aod::McCollisions::iterator const& mcCollision, Particles const& particles) { int nChargedPrimaryParticles = 0; auto z = mcCollision.posZ(); @@ -112,7 +125,7 @@ struct analyseGenTracks } } - //registryGen.fill(HIST("NtrkZvtxGen"), nChargedPrimaryParticles, mcCollision.posZ()); + registryGen.fill(HIST("NtrkZvtxGen"), nChargedPrimaryParticles, mcCollision.posZ()); } }; //end of the gen task @@ -122,6 +135,6 @@ WorkflowSpec defineDataProcessing(ConfigContext const& cfgc) { return WorkflowSpec{ adaptAnalysisTask(cfgc), - //adaptAnalysisTask(cfgc), + adaptAnalysisTask(cfgc), }; } From 56b473987b1f433a5fcdc1c3719a2ccfa2e608f9 Mon Sep 17 00:00:00 2001 From: sarahherrmann <83958698+sarahherrmann@users.noreply.github.com> Date: Mon, 29 Nov 2021 15:50:02 +0100 Subject: [PATCH 3/8] Change in processGen that runs --- PWGMM/Tasks/analyse-mft-tracks.cxx | 148 ++++++++++++----------------- 1 file changed, 61 insertions(+), 87 deletions(-) diff --git a/PWGMM/Tasks/analyse-mft-tracks.cxx b/PWGMM/Tasks/analyse-mft-tracks.cxx index aac4f6dbbb2..7ddfec53747 100644 --- a/PWGMM/Tasks/analyse-mft-tracks.cxx +++ b/PWGMM/Tasks/analyse-mft-tracks.cxx @@ -9,8 +9,6 @@ // granted to it by virtue of its status as an Intergovernmental Organization // or submit itself to any jurisdiction. - - #include "Framework/runDataProcessing.h" #include "Framework/AnalysisTask.h" @@ -22,115 +20,91 @@ using namespace o2::framework; using Particles = aod::McParticles; - - //First approach to analysing an AO2D.root file //written thanks to https://aliceo2group.github.io/analysis-framework/docs/tutorials/analysistask.html - - - -struct analyseMFTTracks -{ +struct analyseMFTTracks { int icoll = 0; - HistogramRegistry registry - { - "registry", - { - {"TracksPhiEta_in_coll", "; #varphi; #eta; tracks", {HistType::kTH2F, {{600, -M_PI, M_PI}, {35, -4.5, -1.}}}}, - {"TracksPhiEta", "; #varphi; #eta; tracks", {HistType::kTH2F, {{600, -M_PI, M_PI}, {35, -4.5, -1.}}}}, // - {"TracksPhiEtaGen", "; #varphi; #eta; tracks", {HistType::kTH2F, {{600, 0, 2 * M_PI}, {35, -4.5, -1.}}}}, // - {"TracksEtaZvtx", "; #eta; Z_{vtx}; tracks", {HistType::kTH2F, {{35, -4.5, -1.}, {201, -20.1, 20.1}}}}, // - {"NtrkZvtx", "; N_{trk}; Z_{vtx}; events", {HistType::kTH2F, {{301, -0.5, 300.5}, {201, -20.1, 20.1}}}}, // - {"NtrkEta", "; N_{trk}; #eta; events", {HistType::kTH2F, {{301, -0.5, 300.5}, {35, -4.5, -1.}}}}, // - {"Multiplicity", "alibi_nightlies/O2DPG_pp_minbias_testbeam.sh/15-11-2021-18:00 - tf13; collisionID; N_{trk}^{MFT}", {HistType::kTH1F, {{101, 0., 100.}}}, true} // - } // - }; - - void process(o2::aod::Collision const& collision, o2::aod::MFTTracks const& tracks) + HistogramRegistry registry{ + "registry", { + {"TracksPhiEta_in_coll", "; #varphi; #eta; tracks", {HistType::kTH2F, {{600, -M_PI, M_PI}, {35, -4.5, -1.}}}}, + {"TracksPhiEta", "; #varphi; #eta; tracks", {HistType::kTH2F, {{600, -M_PI, M_PI}, {35, -4.5, -1.}}}}, // + {"TracksPhiEtaGen", "; #varphi; #eta; tracks", {HistType::kTH2F, {{600, 0, 2 * M_PI}, {35, -4.5, -1.}}}}, // + {"TracksEtaZvtx", "; #eta; Z_{vtx}; tracks", {HistType::kTH2F, {{35, -4.5, -1.}, {201, -20.1, 20.1}}}}, // + {"NtrkZvtx", "; N_{trk}; Z_{vtx}; events", {HistType::kTH2F, {{301, -0.5, 300.5}, {201, -20.1, 20.1}}}}, // + {"NtrkEta", "; N_{trk}; #eta; events", {HistType::kTH2F, {{301, -0.5, 300.5}, {35, -4.5, -1.}}}}, // + {"Multiplicity", "alibi_nightlies/O2DPG_pp_minbias_testbeam.sh/15-11-2021-18:00 - tf13; collisionID; N_{trk}^{MFT}", {HistType::kTH1F, {{101, 0., 100.}}}, true} // + } // + }; - auto z = collision.posZ(); - registry.fill(HIST("NtrkZvtx"), tracks.size(), z); + void process(o2::aod::Collision const& collision, o2::aod::MFTTracks const& tracks) + { - for (auto& track : tracks) - { - registry.fill(HIST("TracksPhiEta_in_coll"), track.phi(), track.eta()); - registry.fill(HIST("TracksEtaZvtx"), track.eta(), z); - registry.fill(HIST("Multiplicity"), icoll); - registry.fill(HIST("NtrkEta"), tracks.size(), track.eta()); - } - icoll++; + auto z = collision.posZ(); + registry.fill(HIST("NtrkZvtx"), tracks.size(), z); + for (auto& track : tracks) { + registry.fill(HIST("TracksPhiEta_in_coll"), track.phi(), track.eta()); + registry.fill(HIST("TracksEtaZvtx"), track.eta(), z); + registry.fill(HIST("Multiplicity"), icoll); + registry.fill(HIST("NtrkEta"), tracks.size(), track.eta()); } - //end of process + icoll++; + } + //end of process -//aod::McCollisions + //aod::McCollisions }; //end of MyTask +struct analyseGenTracks { -struct analyseGenTracks -{ - - HistogramRegistry registryGen - { - "registryGen", - { - {"TracksPhiEtaGen", "; #varphi; #eta; tracks", {HistType::kTH2F, {{600, 0, 2*M_PI}, {35, -4.5, -1.}}}}, // - {"TracksEtaZvtxGen", "; #eta; Z_{vtx}; tracks", {HistType::kTH2F, {{35, -4.5, -1.}, {201, -20.1, 20.1}}}}, // - {"NtrkZvtxGen", "; N_{trk}; Z_{vtx}; events", {HistType::kTH2F, {{301, -0.5, 300.5}, {201, -20.1, 20.1}}}}, // - {"NtrkEtaGen", "; N_{trk}; #eta; events", {HistType::kTH2F, {{301, -0.5, 300.5}, {35, -4.5, -1.}}}}, // - } // - }; - - - - void process(aod::McCollisions::iterator const& mcCollision, Particles const& particles) + HistogramRegistry registryGen{ + "registryGen", { - int nChargedPrimaryParticles = 0; - auto z = mcCollision.posZ(); - - for (auto& particle : particles) - { - auto p = TDatabasePDG::Instance()->GetParticle(particle.pdgCode()); - int charge = 0; - if (p == nullptr) - { - // unknown particles will be skipped - if (particle.pdgCode() > 1000000000) - { - // auto x = (std::trunc(particle.pdgCode() / 10000) - 100000); - // charge = x - std::trunc(x / 1000) * 1000; - LOGF(debug, "[{}] Nucleus with PDG code {}", particle.globalIndex(), particle.pdgCode() /*, charge*/); // (charge %d) - } - else - { - LOGF(debug, "[{}] Unknown particle with PDG code {}", particle.globalIndex(), particle.pdgCode()); - } - } - else - { - charge = p->Charge(); - } - if (charge != 0 && particle.isPhysicalPrimary()) - { - registryGen.fill(HIST("TracksEtaZvtxGen"), particle.eta(), z); - registryGen.fill(HIST("TracksPhiEtaGen"), particle.phi(), particle.eta()); - + {"TracksPhiEtaGen", "; #varphi; #eta; tracks", {HistType::kTH2F, {{600, 0, 2 * M_PI}, {35, -4.5, -1.}}}}, // + {"TracksEtaZvtxGen", "; #eta; Z_{vtx}; tracks", {HistType::kTH2F, {{35, -4.5, -1.}, {201, -20.1, 20.1}}}}, // + {"NtrkZvtxGen", "; N_{trk}; Z_{vtx}; events", {HistType::kTH2F, {{301, -0.5, 300.5}, {201, -20.1, 20.1}}}}, // + {"NtrkEtaGen", "; N_{trk}; #eta; events", {HistType::kTH2F, {{301, -0.5, 300.5}, {35, -4.5, -1.}}}}, // + } // + }; - registryGen.fill(HIST("TracksPhiEtaGen"), particle.phi(), particle.eta()); - nChargedPrimaryParticles++; + void process(aod::McCollisions::iterator const& mcCollision, Particles const& particles) + { + int nChargedPrimaryParticles = 0; + auto z = mcCollision.posZ(); + + for (auto& particle : particles) { + auto p = TDatabasePDG::Instance()->GetParticle(particle.pdgCode()); + int charge = 0; + if (p == nullptr) { + // unknown particles will be skipped + if (particle.pdgCode() > 1000000000) { + // auto x = (std::trunc(particle.pdgCode() / 10000) - 100000); + // charge = x - std::trunc(x / 1000) * 1000; + LOGF(debug, "[{}] Nucleus with PDG code {}", particle.globalIndex(), particle.pdgCode() /*, charge*/); // (charge %d) + } else { + LOGF(debug, "[{}] Unknown particle with PDG code {}", particle.globalIndex(), particle.pdgCode()); } + } else { + charge = p->Charge(); } + if (charge != 0 && particle.isPhysicalPrimary()) { + registryGen.fill(HIST("TracksEtaZvtxGen"), particle.eta(), z); + registryGen.fill(HIST("TracksPhiEtaGen"), particle.phi(), particle.eta()); - registryGen.fill(HIST("NtrkZvtxGen"), nChargedPrimaryParticles, mcCollision.posZ()); + registryGen.fill(HIST("TracksPhiEtaGen"), particle.phi(), particle.eta()); + nChargedPrimaryParticles++; + } } + + registryGen.fill(HIST("NtrkZvtxGen"), nChargedPrimaryParticles, mcCollision.posZ()); + } }; //end of the gen task - WorkflowSpec defineDataProcessing(ConfigContext const& cfgc) { return WorkflowSpec{ From 9c0ac43b940cd0463bfbc6c3149aecb427e4cbec Mon Sep 17 00:00:00 2001 From: sarahherrmann <83958698+sarahherrmann@users.noreply.github.com> Date: Fri, 10 Dec 2021 14:31:21 +0100 Subject: [PATCH 4/8] The new CMakeLists.txt --- PWGMM/Tasks/CMakeLists.txt | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/PWGMM/Tasks/CMakeLists.txt b/PWGMM/Tasks/CMakeLists.txt index 4eae7c83a6c..6bb0729a940 100644 --- a/PWGMM/Tasks/CMakeLists.txt +++ b/PWGMM/Tasks/CMakeLists.txt @@ -19,7 +19,10 @@ o2physics_add_dpl_workflow(run2 - dndeta PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore COMPONENT_NAME Analysis) - o2physics_add_dpl_workflow(analyse - mft - tracks SOURCES analyse - mft - tracks.cxx PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore COMPONENT_NAME Analysis) + o2physics_add_dpl_workflow(analyse - mft - tracks + SOURCES analyse - mft - tracks.cxx + PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore + COMPONENT_NAME Analysis) o2physics_add_dpl_workflow(ue - charged SOURCES uecharged.cxx From 33d6d40711777cce6f50cb647a28877dc8a4fab4 Mon Sep 17 00:00:00 2001 From: sarahherrmann <83958698+sarahherrmann@users.noreply.github.com> Date: Tue, 18 Jan 2022 15:14:40 +0100 Subject: [PATCH 5/8] CMakeLists.txt with correct spaces --- PWGMM/Tasks/CMakeLists.txt | 56 ++++++++++++++++++-------------------- 1 file changed, 27 insertions(+), 29 deletions(-) diff --git a/PWGMM/Tasks/CMakeLists.txt b/PWGMM/Tasks/CMakeLists.txt index 6bb0729a940..c31665e0bb2 100644 --- a/PWGMM/Tasks/CMakeLists.txt +++ b/PWGMM/Tasks/CMakeLists.txt @@ -1,37 +1,35 @@ -#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. +# 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". +# 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 +# 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. -o2physics_add_dpl_workflow(run2 - dndeta - SOURCES run2dndeta.cxx dndeta.h - PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore - COMPONENT_NAME Analysis) +o2physics_add_dpl_workflow(run2-dndeta + SOURCES run2dndeta.cxx dndeta.h + PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore + COMPONENT_NAME Analysis) - o2physics_add_dpl_workflow(dndeta - SOURCES dndeta.cxx dndeta.h - PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore - COMPONENT_NAME Analysis) +o2physics_add_dpl_workflow(dndeta + SOURCES dndeta.cxx dndeta.h + PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore + COMPONENT_NAME Analysis) - o2physics_add_dpl_workflow(analyse - mft - tracks - SOURCES analyse - mft - tracks.cxx - PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore - COMPONENT_NAME Analysis) +o2physics_add_dpl_workflow(analyse-mft-tracks + SOURCES analyse-mft-tracks.cxx + PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore + COMPONENT_NAME Analysis) - o2physics_add_dpl_workflow(ue - charged - SOURCES uecharged.cxx - PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore - COMPONENT_NAME Analysis) +o2physics_add_dpl_workflow(ue-charged + SOURCES uecharged.cxx + PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore + COMPONENT_NAME Analysis) - o2physics_add_dpl_workflow(lumi - SOURCES lumi.cxx - PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore - COMPONENT_NAME Analysis) - - o2physics_add_dpl_workflow(my - analyse - mft - tracks SOURCES my - analyse - mft - tracks.cxx PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore COMPONENT_NAME Analysis) +o2physics_add_dpl_workflow(lumi + SOURCES lumi.cxx + PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore + COMPONENT_NAME Analysis) From 9ce33c173066ed3bb1942d427509b70b63aad725 Mon Sep 17 00:00:00 2001 From: sarahherrmann <83958698+sarahherrmann@users.noreply.github.com> Date: Tue, 18 Jan 2022 15:16:12 +0100 Subject: [PATCH 6/8] Added histograms to analyse-mft-tracks.cxx --- PWGMM/Tasks/analyse-mft-tracks.cxx | 103 ++++++++++++++++++++++++++--- 1 file changed, 92 insertions(+), 11 deletions(-) diff --git a/PWGMM/Tasks/analyse-mft-tracks.cxx b/PWGMM/Tasks/analyse-mft-tracks.cxx index be0a64f7f7b..f5db45f1d61 100644 --- a/PWGMM/Tasks/analyse-mft-tracks.cxx +++ b/PWGMM/Tasks/analyse-mft-tracks.cxx @@ -28,14 +28,33 @@ struct analyseMFTTracks { HistogramRegistry registry{ "registry", { - {"TracksPhiEta_in_coll", "; #varphi; #eta; tracks", {HistType::kTH2F, {{600, -M_PI, M_PI}, {35, -4.5, -1.}}}}, // - {"TracksEtaZvtx", "; #eta; Z_{vtx}; tracks", {HistType::kTH2F, {{35, -4.5, -1.}, {201, -20.1, 20.1}}}}, // - {"NtrkZvtx", "; N_{trk}; Z_{vtx}; events", {HistType::kTH2F, {{301, -0.5, 300.5}, {201, -20.1, 20.1}}}}, // - {"NtrkEta", "#eta; N_{trk}; events", {HistType::kTH1F, {{35, -4.5, -1.}}}}, // - {"TracksPhiEtaGen", "; #varphi; #eta; tracks", {HistType::kTH2F, {{600, 0, 2 * M_PI}, {35, -4.5, -1.}}}}, // - {"TracksEtaZvtxGen", "; #eta; Z_{vtx}; tracks", {HistType::kTH2F, {{35, -4.5, -1.}, {201, -20.1, 20.1}}}}, // + {"TracksPhiEta_in_coll", "; #varphi; #eta; ", {HistType::kTH2F, {{600, -M_PI, M_PI}, {35, -4.5, -1.}}}}, // + {"TracksPhiEta", "; #varphi; #eta; ", {HistType::kTH2F, {{600, -M_PI, M_PI}, {35, -4.5, -1.}}}}, // + + {"TracksPhiEta_5", "#eta_{kin} versus #varphi_{kin} of MFT tracks with ncls #\geq 5; #varphi; #eta; ", {HistType::kTH2F, {{600, -M_PI, M_PI}, {35, -4.5, -1.}}}}, // + {"TracksPhiEta_6", "#eta_{kin} versus #varphi_{kin} of MFT tracks with ncls #\geq 6; #varphi; #eta; ", {HistType::kTH2F, {{600, -M_PI, M_PI}, {35, -4.5, -1.}}}}, // + {"TracksPhiEta_7", "#eta_{kin} versus #varphi_{kin} of MFT tracks with ncls #\geq 7; #varphi; #eta; ", {HistType::kTH2F, {{600, -M_PI, M_PI}, {35, -4.5, -1.}}}}, // + {"TracksPhiEta_8", "#eta_{kin} versus #varphi_{kin} of MFT tracks with ncls #\geq 8; #varphi; #eta; ", {HistType::kTH2F, {{600, -M_PI, M_PI}, {35, -4.5, -1.}}}}, // + {"TracksPhiEta_9", "#eta_{kin} versus #varphi_{kin} of MFT tracks with ncls #\geq 9; #varphi; #eta; ", {HistType::kTH2F, {{600, -M_PI, M_PI}, {35, -4.5, -1.}}}}, // + + {"TracksEtaZvtx", "; #eta; Z_{vtx}; ", {HistType::kTH2F, {{35, -4.5, -1.}, {201, -20.1, 20.1}}}}, // + {"NtrkZvtx", "; N_{trk}; Z_{vtx}; ", {HistType::kTH2F, {{301, -0.5, 300.5}, {201, -20.1, 20.1}}}}, // + {"NtrkEta", "#eta; N_{trk}; ", {HistType::kTH1F, {{35, -4.5, -1.}}}}, // + {"TracksXLastClsYLastCls", "; x_{LastCls}; y_{LastCls}; ", {HistType::kTH2F, {{400, -20, 20.}, {400, -20, 20.}}}}, // + {"TracksXLastClsYLastCls_firstFace", "; x_{LastCls}; y_{LastCls}; ", {HistType::kTH2F, {{400, -20, 20.}, {400, -20, 20.}}}}, // + {"TracksXLastClsYLastCls_secondFace", "; x_{LastCls}; y_{LastCls}; ", {HistType::kTH2F, {{400, -20, 20.}, {400, -20, 20.}}}}, + {"TracksPhiEta_LastCls", "; #varphi; #eta; ", {HistType::kTH2F, {{600, -M_PI, M_PI}, {35, -4.5, -1.}}}}, // + {"TracksPhiEta_LastClsLastDisk", "; #varphi; #eta; ", {HistType::kTH2F, {{600, -M_PI, M_PI}, {35, -4.5, -1.}}}}, // + {"TracksPhiEta_LastClsLastDisk_firstFace", "; #varphi; #eta; ", {HistType::kTH2F, {{600, -M_PI, M_PI}, {35, -4.5, -1.}}}}, // + {"TracksPhiEta_LastClsLastDisk_secondFace", "; #varphi; #eta; ", {HistType::kTH2F, {{600, -M_PI, M_PI}, {35, -4.5, -1.}}}}, // + + + + {"TracksPhiEtaGen", "; #varphi; #eta; ", {HistType::kTH2F, {{600, 0, 2 * M_PI}, {35, -4.5, -1.}}}}, // + {"TracksEtaZvtxGen", "; #eta; Z_{vtx}; ", {HistType::kTH2F, {{35, -4.5, -1.}, {201, -20.1, 20.1}}}}, // + {"NtrkZLastCls", "z_{LastCls}; count; ", {HistType::kTH1F, {{26, -79, -66}}}}, //{"NtrkZvtxGen", "; N_{trk}; Z_{vtx}; events", {HistType::kTH2F, {{301, -0.5, 300.5}, {201, -20.1, 20.1}}}}, // - {"NtrkEtaGen", "#eta; N_{trk}; events", {HistType::kTH1F, {{35, -4.5, -1.}}}}, // + {"NtrkEtaGen", "#eta; N_{trk}; ", {HistType::kTH1F, {{35, -4.5, -1.}}}}, // } // }; @@ -44,18 +63,79 @@ struct analyseMFTTracks { auto z = collision.posZ(); registry.fill(HIST("NtrkZvtx"), tracks.size(), z); - double zLastCls = 0; + TVector3 v; for (auto& track : tracks) { + double zLastCls = track.z(); + v.SetXYZ(track.x(),track.y(),zLastCls); + double etaLastCls = v.Eta(); + double phiLastCls = v.Phi(); registry.fill(HIST("TracksPhiEta_in_coll"), track.phi(), track.eta()); registry.fill(HIST("TracksEtaZvtx"), track.eta(), z); registry.fill(HIST("NtrkEta"), track.eta()); + if (zLastCls < -70)//disk 4 + { + registry.fill(HIST("TracksXLastClsYLastCls"), track.x(), track.y()); + registry.fill(HIST("TracksPhiEta_LastClsLastDisk"), phiLastCls, etaLastCls); + + if (zLastCls > -77)//layer 8 + { + registry.fill(HIST("TracksXLastClsYLastCls_firstFace"), track.x(), track.y()); + registry.fill(HIST("TracksPhiEta_LastClsLastDisk_firstFace"), phiLastCls, etaLastCls); + } + + } + if (zLastCls < -77)//layer 9 + { + registry.fill(HIST("TracksXLastClsYLastCls_secondFace"), track.x(), track.y()); + registry.fill(HIST("TracksPhiEta_LastClsLastDisk_secondFace"), phiLastCls, etaLastCls); + } + registry.fill(HIST("TracksPhiEta_LastCls"), phiLastCls, etaLastCls); + registry.fill(HIST("NtrkZLastCls"), track.z()); } icoll++; } //end of processRec PROCESS_SWITCH(analyseMFTTracks, processRec, "Process rec level", true); + + + void processTracks(o2::aod::MFTTracks const& tracks) + { + + for (auto& track : tracks) + { + registry.fill(HIST("TracksPhiEta"), track.phi(), track.eta()); + + if (track.nClusters()>=5) + { + registry.fill(HIST("TracksPhiEta_5"), track.phi(), track.eta()); + } + if (track.nClusters()>=6) + { + registry.fill(HIST("TracksPhiEta_6"), track.phi(), track.eta()); + } + if (track.nClusters()>=7) + { + registry.fill(HIST("TracksPhiEta_7"), track.phi(), track.eta()); + } + if (track.nClusters()>=8) + { + registry.fill(HIST("TracksPhiEta_8"), track.phi(), track.eta()); + } + if (track.nClusters()>=9) + { + registry.fill(HIST("TracksPhiEta_9"), track.phi(), track.eta()); + } + }//end of tracks loop + } + //end of processTracks + PROCESS_SWITCH(analyseMFTTracks, processTracks, "Process rec level for all tracks", true); + + + + + void processGen(aod::McCollisions::iterator const& mcCollision, Particles const& particles) { @@ -63,7 +143,8 @@ struct analyseMFTTracks { auto z = mcCollision.posZ(); for (auto& particle : particles) { - auto p = pdg->GetParticle(particle.pdgCode()); + //auto p = pdg->GetParticle(particle.pdgCode()); + auto p = TDatabasePDG::Instance()->GetParticle(particle.pdgCode()); int charge = 0; if (p == nullptr) { // unknown particles will be skipped @@ -87,10 +168,10 @@ struct analyseMFTTracks { } } - registry.fill(HIST("NtrkZvtxGen"), nChargedPrimaryParticles, mcCollision.posZ()); + //registry.fill(HIST("NtrkZvtxGen"), nChargedPrimaryParticles, mcCollision.posZ()); } - PROCESS_SWITCH(analyseMFTTracks, processGen, "Process gen level", true); + PROCESS_SWITCH(analyseMFTTracks, processGen, "Process gen level", false); }; //end of the task analyseMFTTracks From 04510644ceab948d68f2ca9a27edd5af43eb0493 Mon Sep 17 00:00:00 2001 From: sarahherrmann <83958698+sarahherrmann@users.noreply.github.com> Date: Tue, 18 Jan 2022 15:23:47 +0100 Subject: [PATCH 7/8] Clang format fix to analyse-mft-tracks with the added histograms --- PWGMM/Tasks/analyse-mft-tracks.cxx | 61 +++++++++++------------------- 1 file changed, 23 insertions(+), 38 deletions(-) diff --git a/PWGMM/Tasks/analyse-mft-tracks.cxx b/PWGMM/Tasks/analyse-mft-tracks.cxx index bcc9ac831be..f08e02f9bf3 100644 --- a/PWGMM/Tasks/analyse-mft-tracks.cxx +++ b/PWGMM/Tasks/analyse-mft-tracks.cxx @@ -28,7 +28,7 @@ struct analyseMFTTracks { "registry", { {"TracksPhiEta_in_coll", "; #varphi; #eta; ", {HistType::kTH2F, {{600, -M_PI, M_PI}, {35, -4.5, -1.}}}}, // - {"TracksPhiEta", "; #varphi; #eta; ", {HistType::kTH2F, {{600, -M_PI, M_PI}, {35, -4.5, -1.}}}}, // + {"TracksPhiEta", "; #varphi; #eta; ", {HistType::kTH2F, {{600, -M_PI, M_PI}, {35, -4.5, -1.}}}}, // {"TracksPhiEta_5", "#eta_{kin} versus #varphi_{kin} of MFT tracks with ncls #\geq 5; #varphi; #eta; ", {HistType::kTH2F, {{600, -M_PI, M_PI}, {35, -4.5, -1.}}}}, // {"TracksPhiEta_6", "#eta_{kin} versus #varphi_{kin} of MFT tracks with ncls #\geq 6; #varphi; #eta; ", {HistType::kTH2F, {{600, -M_PI, M_PI}, {35, -4.5, -1.}}}}, // @@ -36,25 +36,23 @@ struct analyseMFTTracks { {"TracksPhiEta_8", "#eta_{kin} versus #varphi_{kin} of MFT tracks with ncls #\geq 8; #varphi; #eta; ", {HistType::kTH2F, {{600, -M_PI, M_PI}, {35, -4.5, -1.}}}}, // {"TracksPhiEta_9", "#eta_{kin} versus #varphi_{kin} of MFT tracks with ncls #\geq 9; #varphi; #eta; ", {HistType::kTH2F, {{600, -M_PI, M_PI}, {35, -4.5, -1.}}}}, // - {"TracksEtaZvtx", "; #eta; Z_{vtx}; ", {HistType::kTH2F, {{35, -4.5, -1.}, {201, -20.1, 20.1}}}}, // - {"NtrkZvtx", "; N_{trk}; Z_{vtx}; ", {HistType::kTH2F, {{301, -0.5, 300.5}, {201, -20.1, 20.1}}}}, // - {"NtrkEta", "#eta; N_{trk}; ", {HistType::kTH1F, {{35, -4.5, -1.}}}}, // - {"TracksXLastClsYLastCls", "; x_{LastCls}; y_{LastCls}; ", {HistType::kTH2F, {{400, -20, 20.}, {400, -20, 20.}}}}, // - {"TracksXLastClsYLastCls_firstFace", "; x_{LastCls}; y_{LastCls}; ", {HistType::kTH2F, {{400, -20, 20.}, {400, -20, 20.}}}}, // + {"TracksEtaZvtx", "; #eta; Z_{vtx}; ", {HistType::kTH2F, {{35, -4.5, -1.}, {201, -20.1, 20.1}}}}, // + {"NtrkZvtx", "; N_{trk}; Z_{vtx}; ", {HistType::kTH2F, {{301, -0.5, 300.5}, {201, -20.1, 20.1}}}}, // + {"NtrkEta", "#eta; N_{trk}; ", {HistType::kTH1F, {{35, -4.5, -1.}}}}, // + {"TracksXLastClsYLastCls", "; x_{LastCls}; y_{LastCls}; ", {HistType::kTH2F, {{400, -20, 20.}, {400, -20, 20.}}}}, // + {"TracksXLastClsYLastCls_firstFace", "; x_{LastCls}; y_{LastCls}; ", {HistType::kTH2F, {{400, -20, 20.}, {400, -20, 20.}}}}, // {"TracksXLastClsYLastCls_secondFace", "; x_{LastCls}; y_{LastCls}; ", {HistType::kTH2F, {{400, -20, 20.}, {400, -20, 20.}}}}, - {"TracksPhiEta_LastCls", "; #varphi; #eta; ", {HistType::kTH2F, {{600, -M_PI, M_PI}, {35, -4.5, -1.}}}}, // - {"TracksPhiEta_LastClsLastDisk", "; #varphi; #eta; ", {HistType::kTH2F, {{600, -M_PI, M_PI}, {35, -4.5, -1.}}}}, // - {"TracksPhiEta_LastClsLastDisk_firstFace", "; #varphi; #eta; ", {HistType::kTH2F, {{600, -M_PI, M_PI}, {35, -4.5, -1.}}}}, // + {"TracksPhiEta_LastCls", "; #varphi; #eta; ", {HistType::kTH2F, {{600, -M_PI, M_PI}, {35, -4.5, -1.}}}}, // + {"TracksPhiEta_LastClsLastDisk", "; #varphi; #eta; ", {HistType::kTH2F, {{600, -M_PI, M_PI}, {35, -4.5, -1.}}}}, // + {"TracksPhiEta_LastClsLastDisk_firstFace", "; #varphi; #eta; ", {HistType::kTH2F, {{600, -M_PI, M_PI}, {35, -4.5, -1.}}}}, // {"TracksPhiEta_LastClsLastDisk_secondFace", "; #varphi; #eta; ", {HistType::kTH2F, {{600, -M_PI, M_PI}, {35, -4.5, -1.}}}}, // - - - {"TracksPhiEtaGen", "; #varphi; #eta; ", {HistType::kTH2F, {{600, 0, 2 * M_PI}, {35, -4.5, -1.}}}}, // - {"TracksEtaZvtxGen", "; #eta; Z_{vtx}; ", {HistType::kTH2F, {{35, -4.5, -1.}, {201, -20.1, 20.1}}}}, // + {"TracksPhiEtaGen", "; #varphi; #eta; ", {HistType::kTH2F, {{600, 0, 2 * M_PI}, {35, -4.5, -1.}}}}, // + {"TracksEtaZvtxGen", "; #eta; Z_{vtx}; ", {HistType::kTH2F, {{35, -4.5, -1.}, {201, -20.1, 20.1}}}}, // {"NtrkZLastCls", "z_{LastCls}; count; ", {HistType::kTH1F, {{26, -79, -66}}}}, //{"NtrkZvtxGen", "; N_{trk}; Z_{vtx}; events", {HistType::kTH2F, {{301, -0.5, 300.5}, {201, -20.1, 20.1}}}}, // {"NtrkEtaGen", "#eta; N_{trk}; ", {HistType::kTH1F, {{35, -4.5, -1.}}}}, // - } // + } // }; void processRec(o2::aod::Collision const& collision, o2::aod::MFTTracks const& tracks) @@ -66,25 +64,24 @@ struct analyseMFTTracks { for (auto& track : tracks) { double zLastCls = track.z(); - v.SetXYZ(track.x(),track.y(),zLastCls); + v.SetXYZ(track.x(), track.y(), zLastCls); double etaLastCls = v.Eta(); double phiLastCls = v.Phi(); registry.fill(HIST("TracksPhiEta_in_coll"), track.phi(), track.eta()); registry.fill(HIST("TracksEtaZvtx"), track.eta(), z); registry.fill(HIST("NtrkEta"), track.eta()); - if (zLastCls < -70)//disk 4 + if (zLastCls < -70) //disk 4 { registry.fill(HIST("TracksXLastClsYLastCls"), track.x(), track.y()); registry.fill(HIST("TracksPhiEta_LastClsLastDisk"), phiLastCls, etaLastCls); - if (zLastCls > -77)//layer 8 + if (zLastCls > -77) //layer 8 { registry.fill(HIST("TracksXLastClsYLastCls_firstFace"), track.x(), track.y()); registry.fill(HIST("TracksPhiEta_LastClsLastDisk_firstFace"), phiLastCls, etaLastCls); } - } - if (zLastCls < -77)//layer 9 + if (zLastCls < -77) //layer 9 { registry.fill(HIST("TracksXLastClsYLastCls_secondFace"), track.x(), track.y()); registry.fill(HIST("TracksPhiEta_LastClsLastDisk_secondFace"), phiLastCls, etaLastCls); @@ -97,44 +94,32 @@ struct analyseMFTTracks { //end of processRec PROCESS_SWITCH(analyseMFTTracks, processRec, "Process rec level", true); - - void processTracks(o2::aod::MFTTracks const& tracks) { - for (auto& track : tracks) - { + for (auto& track : tracks) { registry.fill(HIST("TracksPhiEta"), track.phi(), track.eta()); - if (track.nClusters()>=5) - { + if (track.nClusters() >= 5) { registry.fill(HIST("TracksPhiEta_5"), track.phi(), track.eta()); } - if (track.nClusters()>=6) - { + if (track.nClusters() >= 6) { registry.fill(HIST("TracksPhiEta_6"), track.phi(), track.eta()); } - if (track.nClusters()>=7) - { + if (track.nClusters() >= 7) { registry.fill(HIST("TracksPhiEta_7"), track.phi(), track.eta()); } - if (track.nClusters()>=8) - { + if (track.nClusters() >= 8) { registry.fill(HIST("TracksPhiEta_8"), track.phi(), track.eta()); } - if (track.nClusters()>=9) - { + if (track.nClusters() >= 9) { registry.fill(HIST("TracksPhiEta_9"), track.phi(), track.eta()); } - }//end of tracks loop + } //end of tracks loop } //end of processTracks PROCESS_SWITCH(analyseMFTTracks, processTracks, "Process rec level for all tracks", true); - - - - void processGen(aod::McCollisions::iterator const& mcCollision, Particles const& particles) { From b7a8605ce9c606e3a2ee1b164afe756ab00940b7 Mon Sep 17 00:00:00 2001 From: sarahherrmann <83958698+sarahherrmann@users.noreply.github.com> Date: Wed, 26 Jan 2022 09:24:34 +0100 Subject: [PATCH 8/8] Changes to remove the error messages in AliBuild --- PWGMM/Tasks/analyse-mft-tracks.cxx | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/PWGMM/Tasks/analyse-mft-tracks.cxx b/PWGMM/Tasks/analyse-mft-tracks.cxx index f08e02f9bf3..5a4eda94ef8 100644 --- a/PWGMM/Tasks/analyse-mft-tracks.cxx +++ b/PWGMM/Tasks/analyse-mft-tracks.cxx @@ -13,6 +13,7 @@ #include "Framework/AnalysisTask.h" #include "TDatabasePDG.h" +#include "TVector3.h" using namespace o2; using namespace o2::framework; @@ -30,11 +31,13 @@ struct analyseMFTTracks { {"TracksPhiEta_in_coll", "; #varphi; #eta; ", {HistType::kTH2F, {{600, -M_PI, M_PI}, {35, -4.5, -1.}}}}, // {"TracksPhiEta", "; #varphi; #eta; ", {HistType::kTH2F, {{600, -M_PI, M_PI}, {35, -4.5, -1.}}}}, // - {"TracksPhiEta_5", "#eta_{kin} versus #varphi_{kin} of MFT tracks with ncls #\geq 5; #varphi; #eta; ", {HistType::kTH2F, {{600, -M_PI, M_PI}, {35, -4.5, -1.}}}}, // - {"TracksPhiEta_6", "#eta_{kin} versus #varphi_{kin} of MFT tracks with ncls #\geq 6; #varphi; #eta; ", {HistType::kTH2F, {{600, -M_PI, M_PI}, {35, -4.5, -1.}}}}, // - {"TracksPhiEta_7", "#eta_{kin} versus #varphi_{kin} of MFT tracks with ncls #\geq 7; #varphi; #eta; ", {HistType::kTH2F, {{600, -M_PI, M_PI}, {35, -4.5, -1.}}}}, // - {"TracksPhiEta_8", "#eta_{kin} versus #varphi_{kin} of MFT tracks with ncls #\geq 8; #varphi; #eta; ", {HistType::kTH2F, {{600, -M_PI, M_PI}, {35, -4.5, -1.}}}}, // - {"TracksPhiEta_9", "#eta_{kin} versus #varphi_{kin} of MFT tracks with ncls #\geq 9; #varphi; #eta; ", {HistType::kTH2F, {{600, -M_PI, M_PI}, {35, -4.5, -1.}}}}, // + {"TracksPhiEta_5", "#eta_{kin} versus #varphi_{kin} of MFT tracks with ncls #geq 5; #varphi; #eta; ", {HistType::kTH2F, {{600, -M_PI, M_PI}, {35, -4.5, -1.}}}}, // + {"TracksPhiEta_6", "#eta_{kin} versus #varphi_{kin} of MFT tracks with ncls #geq 6; #varphi; #eta; ", {HistType::kTH2F, {{600, -M_PI, M_PI}, {35, -4.5, -1.}}}}, // + {"TracksPhiEta_7", "#eta_{kin} versus #varphi_{kin} of MFT tracks with ncls #geq 7; #varphi; #eta; ", {HistType::kTH2F, {{600, -M_PI, M_PI}, {35, -4.5, -1.}}}}, // + {"TracksPhiEta_8", "#eta_{kin} versus #varphi_{kin} of MFT tracks with ncls #geq 8; #varphi; #eta; ", {HistType::kTH2F, {{600, -M_PI, M_PI}, {35, -4.5, -1.}}}}, // + {"TracksPhiEta_9", "#eta_{kin} versus #varphi_{kin} of MFT tracks with ncls #geq 9; #varphi; #eta; ", {HistType::kTH2F, {{600, -M_PI, M_PI}, {35, -4.5, -1.}}}}, // + + {"TracksPhiEta_nclustersgt5", "#eta_{kin} versus #varphi_{kin} of MFT tracks with ncls #geq 5; #varphi; #eta; ", {HistType::kTH2F, {{600, -M_PI, M_PI}, {35, -4.5, -1.}}}}, // {"TracksEtaZvtx", "; #eta; Z_{vtx}; ", {HistType::kTH2F, {{35, -4.5, -1.}, {201, -20.1, 20.1}}}}, // {"NtrkZvtx", "; N_{trk}; Z_{vtx}; ", {HistType::kTH2F, {{301, -0.5, 300.5}, {201, -20.1, 20.1}}}}, // @@ -96,6 +99,8 @@ struct analyseMFTTracks { void processTracks(o2::aod::MFTTracks const& tracks) { + using namespace aod::track; + registry.fill(HIST("TracksPhiEta_nclustersgt5"), tracks, nClusters >= 5); for (auto& track : tracks) { registry.fill(HIST("TracksPhiEta"), track.phi(), track.eta());