From d73d2578c155efa28b2d66c5d58f827563f15042 Mon Sep 17 00:00:00 2001 From: Tulika Tripathy Date: Tue, 11 Feb 2025 19:04:42 +0100 Subject: [PATCH 1/4] Updated task for generated MC --- .../GlobalEventProperties/dndeta-mft-pp.cxx | 422 ++++++++++-------- 1 file changed, 224 insertions(+), 198 deletions(-) diff --git a/PWGLF/Tasks/GlobalEventProperties/dndeta-mft-pp.cxx b/PWGLF/Tasks/GlobalEventProperties/dndeta-mft-pp.cxx index 5b67034937a..376c11b4706 100644 --- a/PWGLF/Tasks/GlobalEventProperties/dndeta-mft-pp.cxx +++ b/PWGLF/Tasks/GlobalEventProperties/dndeta-mft-pp.cxx @@ -1,6 +1,6 @@ // Copyright 2020-2022 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. +// 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". @@ -57,16 +57,16 @@ AxisSpec DCAxyAxis = {100, -1, 10}; AxisSpec CentAxis = {{0, 10, 20, 30, 40, 50, 60, 70, 80, 100}}; static constexpr TrackSelectionFlags::flagtype trackSelectionITS = - TrackSelectionFlags::kITSNCls | TrackSelectionFlags::kITSChi2NDF | - TrackSelectionFlags::kITSHits; + TrackSelectionFlags::kITSNCls | TrackSelectionFlags::kITSChi2NDF | + TrackSelectionFlags::kITSHits; static constexpr TrackSelectionFlags::flagtype trackSelectionTPC = - TrackSelectionFlags::kTPCNCls | - TrackSelectionFlags::kTPCCrossedRowsOverNCls | - TrackSelectionFlags::kTPCChi2NDF; + TrackSelectionFlags::kTPCNCls | + TrackSelectionFlags::kTPCCrossedRowsOverNCls | + TrackSelectionFlags::kTPCChi2NDF; static constexpr TrackSelectionFlags::flagtype trackSelectionDCA = - TrackSelectionFlags::kDCAz | TrackSelectionFlags::kDCAxy; + TrackSelectionFlags::kDCAz | TrackSelectionFlags::kDCAxy; using MFTTracksLabeled = soa::Join; @@ -87,8 +87,8 @@ struct PseudorapidityDensityMFT { Configurable useZDiffCut{"useZDiffCut", true, "use Z difference cut"}; Configurable maxZDiff{ - "maxZDiff", 1.0f, - "max allowed Z difference for reconstruced collisions (cm)"}; + "maxZDiff", 1.0f, + "max allowed Z difference for reconstruced collisions (cm)"}; Configurable usePhiCut{"usePhiCut", false, "use azimuthal angle cut"}; Configurable cfgPhiCut{"cfgPhiCut", 0.1f, @@ -99,51 +99,47 @@ struct PseudorapidityDensityMFT { "Cut2 on vertex position of MFT tracks"}; Configurable cfgnCluster{"cfgnCluster", 5.0f, "Cut on no of clusters per MFT track"}; - Configurable cfgnEta1{"cfgnEta1", -4.5f, - "Cut on eta1"}; - Configurable cfgnEta2{"cfgnEta2", -1.0f, - "Cut on eta1"}; + Configurable cfgnEta1{"cfgnEta1", -4.5f, "Cut on eta1"}; + Configurable cfgnEta2{"cfgnEta2", -1.0f, "Cut on eta1"}; HistogramRegistry registry{ - "registry", - { - {"TracksEtaZvtx", - "; #eta; #it{z}_{vtx} (cm); tracks", - {HistType::kTH2F, {EtaAxis, ZAxis}}}, // - {"Tracks/EtaZvtx_gt0", - "; #eta; #it{z}_{vtx} (cm); tracks", - {HistType::kTH2F, {EtaAxis, ZAxis}}}, // - {"TracksPhiEta", - "; #varphi; #eta; tracks", - {HistType::kTH2F, {PhiAxis, EtaAxis}}}, // - {"TracksPhiZvtx", - "; #varphi; #it{z}_{vtx} (cm); tracks", - {HistType::kTH2F, {PhiAxis, ZAxis}}}, // - {"TracksPtEta", - " ; p_{T} (GeV/c); #eta", - {HistType::kTH2F, {PtAxis, EtaAxis}}}, // - {"EventSelection", - ";status;events", - {HistType::kTH1F, {{10, 0.5, 10.5}}}}, - {"EventCounts", - ";status;events", - {HistType::kTH1F, {{2, 0.5, 2.5}}}}, - {"Tracks/Control/TrackCount", ";status;Track counts", {HistType::kTH1F, {{15, 0.5, 15.5}}}}, // added - }}; - - void init(InitContext&) - { + "registry", + { + {"TracksEtaZvtx", + "; #eta; #it{z}_{vtx} (cm); tracks", + {HistType::kTH2F, {EtaAxis, ZAxis}}}, // + {"Tracks/EtaZvtx_gt0", + "; #eta; #it{z}_{vtx} (cm); tracks", + {HistType::kTH2F, {EtaAxis, ZAxis}}}, // + {"TracksPhiEta", + "; #varphi; #eta; tracks", + {HistType::kTH2F, {PhiAxis, EtaAxis}}}, // + {"TracksPhiZvtx", + "; #varphi; #it{z}_{vtx} (cm); tracks", + {HistType::kTH2F, {PhiAxis, ZAxis}}}, // + {"TracksPtEta", + " ; p_{T} (GeV/c); #eta", + {HistType::kTH2F, {PtAxis, EtaAxis}}}, // + {"EventSelection", + ";status;events", + {HistType::kTH1F, {{10, 0.5, 10.5}}}}, + {"EventCounts", ";status;events", {HistType::kTH1F, {{2, 0.5, 2.5}}}}, + {"Tracks/Control/TrackCount", + ";status;Track counts", + {HistType::kTH1F, {{15, 0.5, 15.5}}}}, // added + }}; + + void init(InitContext &) { if (static_cast(doprocessMult) + - static_cast(doprocessMultReassoc) + - static_cast(doprocessCountingCentrality) > + static_cast(doprocessMultReassoc) + + static_cast(doprocessCountingCentrality) > 1) { - LOGP(fatal, - "Exactly one process function between processMult, " - "processMultReassoc and processCountingCentrality should be " - "enabled!"); + LOGP(fatal, "Exactly one process function between processMult, " + "processMultReassoc and processCountingCentrality should be " + "enabled!"); } AxisSpec MultAxis = {multBinning, "N_{trk}"}; auto hstat = registry.get(HIST("EventSelection")); - auto* x = hstat->GetXaxis(); + auto *x = hstat->GetXaxis(); x->SetBinLabel(1, "All"); x->SetBinLabel(2, "Selected"); x->SetBinLabel(3, "Selected INEL>0"); @@ -211,7 +207,8 @@ struct PseudorapidityDensityMFT { registry.add({"EventsZposDiff", " ; Z_{rec} - Z_{gen} (cm)", {HistType::kTH1F, {DeltaZAxis}}}); - registry.add({"EventsSplitMult", " ; N_{gen}", {HistType::kTH1F, {MultAxis}}}); + registry.add( + {"EventsSplitMult", " ; N_{gen}", {HistType::kTH1F, {MultAxis}}}); auto heff = registry.get(HIST("EventEfficiency")); x = heff->GetXaxis(); x->SetBinLabel(1, "Generated"); @@ -234,7 +231,7 @@ struct PseudorapidityDensityMFT { {HistType::kTH1I, {{2, -0.5, 1.5}}}}); auto htrk = registry.get(HIST("Tracks/Control/TrackCount")); - auto* x = htrk->GetXaxis(); + auto *x = htrk->GetXaxis(); x->SetBinLabel(0, "All"); x->SetBinLabel(1, "Reass"); x->SetBinLabel(2, "Not Reass"); @@ -317,18 +314,35 @@ struct PseudorapidityDensityMFT { registry.add({"Tracks/Control/woOrp/woOrpVertexCorr", "; #it{z}_{vtx}^{orig} (cm); #it{z}_{vtx}^{re} (cm)", {HistType::kTH2F, {ZAxis, ZAxis}}}); // - registry.add({"collisionID", " ; Collision ID", + registry.add({"collisionID", + " ; Collision ID", // {HistType::kTH1F,{{100000, 0.5, 100000.0}}}}); // {HistType::kTH1F, {{100000, -50000.0, 50000.0}}}}); // - registry.add({"collisionIDamb", " ; Collision ID amb", + registry.add({"collisionIDamb", + " ; Collision ID amb", // {HistType::kTH1F,{{100000, 0.5, 100000.0}}}}); // - {HistType::kTH1F, {{100000, -50000.0, 50000.0}}}}); // - registry.add({"NonambEventCounts", " ; EventCounts Nonamb", {HistType::kTH1F, {{1, 0.5, 1.5}}}}); // - registry.add({"hNumCollisionsNonAmb_InelMFT", " ; Number of Collisions with Non-Ambiguous Tracks;Count;Frequency", {HistType::kTH1F, {{1, 0.5, 1.5}}}}); // - registry.add({"hNumCollisionsAmb_InelMFT", " ; Number of Collisions with Non-Ambiguous Tracks;Count;Frequency", {HistType::kTH1F, {{1, 0.5, 1.5}}}}); // - registry.add({"hNumCollisions_InelMFT", " ; Number of selected events with Inel>0 and MFT>0;Count;Frequency", {HistType::kTH1F, {{1, 0.5, 1.5}}}}); // - registry.add({"hNumCollisions_Inel", " ; Number of selected events with Inel>0;Count;Frequency", {HistType::kTH1F, {{1, 0.5, 1.5}}}}); // - registry.add({"ambEventCounts", " ; EventCounts Nonamb", {HistType::kTH1F, {{1, 0.5, 1.5}}}}); // + {HistType::kTH1F, {{100000, -50000.0, 50000.0}}}}); // + registry.add({"NonambEventCounts", + " ; EventCounts Nonamb", + {HistType::kTH1F, {{1, 0.5, 1.5}}}}); // + registry.add( + {"hNumCollisionsNonAmb_InelMFT", + " ; Number of Collisions with Non-Ambiguous Tracks;Count;Frequency", + {HistType::kTH1F, {{1, 0.5, 1.5}}}}); // + registry.add( + {"hNumCollisionsAmb_InelMFT", + " ; Number of Collisions with Non-Ambiguous Tracks;Count;Frequency", + {HistType::kTH1F, {{1, 0.5, 1.5}}}}); // + registry.add( + {"hNumCollisions_InelMFT", + " ; Number of selected events with Inel>0 and MFT>0;Count;Frequency", + {HistType::kTH1F, {{1, 0.5, 1.5}}}}); // + registry.add({"hNumCollisions_Inel", + " ; Number of selected events with Inel>0;Count;Frequency", + {HistType::kTH1F, {{1, 0.5, 1.5}}}}); // + registry.add({"ambEventCounts", + " ; EventCounts Nonamb", + {HistType::kTH1F, {{1, 0.5, 1.5}}}}); // } if (doprocessCountingCentrality) { @@ -336,7 +350,7 @@ struct PseudorapidityDensityMFT { ";status;centrality;events", {HistType::kTH2F, {{3, 0.5, 3.5}, CentAxis}}}); auto hstat = registry.get(HIST("Events/Centrality/Selection")); - auto* x = hstat->GetXaxis(); + auto *x = hstat->GetXaxis(); x->SetBinLabel(1, "All"); x->SetBinLabel(2, "Selected"); x->SetBinLabel(3, "Rejected"); @@ -384,7 +398,7 @@ struct PseudorapidityDensityMFT { ";status;centrality;events", {HistType::kTH2F, {{2, 0.5, 2.5}, CentAxis}}}); auto heff = registry.get(HIST("Events/Centrality/EventEfficiency")); - auto* x = heff->GetXaxis(); + auto *x = heff->GetXaxis(); x->SetBinLabel(1, "Generated"); x->SetBinLabel(2, "Selected"); @@ -409,18 +423,18 @@ struct PseudorapidityDensityMFT { } using FullBCs = soa::Join; - void processTagging(FullBCs const& bcs, - soa::Join const& collisions) - { + void + processTagging(FullBCs const &bcs, + soa::Join const &collisions) { std::vector::iterator> cols; - for (auto& bc : bcs) { + for (auto &bc : bcs) { if (!useEvSel || (useEvSel && ((bc.selection_bit(aod::evsel::kIsBBT0A) && bc.selection_bit(aod::evsel::kIsBBT0C)) != 0))) { registry.fill(HIST("EventSelection"), 7); // added 5->12 cols.clear(); - for (auto& collision : collisions) { + for (auto &collision : collisions) { if (collision.has_foundBC()) { if (collision.foundBCId() == bc.globalIndex()) { cols.emplace_back(collision); @@ -444,41 +458,40 @@ struct PseudorapidityDensityMFT { "Collect event sample stats", true); Partition sample = - (aod::fwdtrack::eta < -2.8f) && (aod::fwdtrack::eta > -3.2f); + (aod::fwdtrack::eta < -2.8f) && (aod::fwdtrack::eta > -3.2f); Partition sampleCentral = (nabs(aod::track::eta) < 1.1f); expressions::Filter atrackFilter = - (aod::fwdtrack::bestCollisionId >= 0) && (aod::fwdtrack::eta < -2.0f) && - (aod::fwdtrack::eta > -3.9f) && (nabs(aod::fwdtrack::bestDCAXY) <= 2.f); + (aod::fwdtrack::bestCollisionId >= 0) && (aod::fwdtrack::eta < -2.0f) && + (aod::fwdtrack::eta > -3.9f) && (nabs(aod::fwdtrack::bestDCAXY) <= 2.f); using CollwEv = soa::Join; expressions::Filter trackSelectionCentral = - ((aod::track::trackCutFlag & trackSelectionITS) == trackSelectionITS) && - ifnode((aod::track::v001::detectorMap & (uint8_t)o2::aod::track::TPC) == - (uint8_t)o2::aod::track::TPC, - (aod::track::trackCutFlag & trackSelectionTPC) == - trackSelectionTPC, - true) && - ((aod::track::trackCutFlag & trackSelectionDCA) == trackSelectionDCA) && - (nabs(aod::track::eta) < estimatorEta); + ((aod::track::trackCutFlag & trackSelectionITS) == trackSelectionITS) && + ifnode((aod::track::v001::detectorMap & (uint8_t)o2::aod::track::TPC) == + (uint8_t)o2::aod::track::TPC, + (aod::track::trackCutFlag & trackSelectionTPC) == + trackSelectionTPC, + true) && + ((aod::track::trackCutFlag & trackSelectionDCA) == trackSelectionDCA) && + (nabs(aod::track::eta) < estimatorEta); using FiCentralTracks = soa::Filtered< - soa::Join>; // central tracks for INEL>0 + soa::Join>; // central tracks for INEL>0 - void processMult(CollwEv::iterator const& collision, - aod::MFTTracks const& tracks, - FiCentralTracks const& midtracks, aod::Tracks const&) - { + void processMult(CollwEv::iterator const &collision, + aod::MFTTracks const &tracks, + FiCentralTracks const &midtracks, aod::Tracks const &) { registry.fill(HIST("EventSelection"), 1.); if (!useEvSel || (useEvSel && collision.sel8())) { registry.fill(HIST("EventSelection"), 2.); auto z = collision.posZ(); auto perCollisionSample = sampleCentral->sliceByCached( - o2::aod::track::collisionId, collision.globalIndex(), cache); + o2::aod::track::collisionId, collision.globalIndex(), cache); auto Ntrk = perCollisionSample.size(); registry.fill(HIST("EventsNtrkZvtx"), Ntrk, z); @@ -490,7 +503,7 @@ struct PseudorapidityDensityMFT { } if (tracks.size() > 0) { - for (auto& track : tracks) { + for (auto &track : tracks) { float phi = track.phi(); o2::math_utils::bringTo02Pi(phi); @@ -524,11 +537,11 @@ struct PseudorapidityDensityMFT { PROCESS_SWITCH(PseudorapidityDensityMFT, processMult, "Process reco or data info", true); - void processMultReassoc(CollwEv::iterator const& collision, - o2::aod::MFTTracks const&, - soa::SmallGroups const& retracks, - FiCentralTracks const& midtracks, aod::Tracks const&) - { + void + processMultReassoc(CollwEv::iterator const &collision, + o2::aod::MFTTracks const &, + soa::SmallGroups const &retracks, + FiCentralTracks const &midtracks, aod::Tracks const &) { registry.fill(HIST("EventSelection"), 1.); if (!useEvSel || (useEvSel && collision.sel8())) { registry.fill(HIST("EventSelection"), 2.); @@ -536,7 +549,7 @@ struct PseudorapidityDensityMFT { if ((z >= cfgVzCut1) && (z <= cfgVzCut2)) { registry.fill(HIST("EventSelection"), 3.); auto perCollisionSample = sampleCentral->sliceByCached( - o2::aod::track::collisionId, collision.globalIndex(), cache); + o2::aod::track::collisionId, collision.globalIndex(), cache); auto Ntrk = perCollisionSample.size(); std::unordered_set uniqueEvents; std::unordered_set uniqueEventsAmb; @@ -553,17 +566,19 @@ struct PseudorapidityDensityMFT { int64_t i = 0.0, j = 0.0, k = 0.0; if (retracks.size() > 0) { registry.fill(HIST("EventSelection"), 5.); - for (auto& retrack : retracks) { + for (auto &retrack : retracks) { auto track = retrack.mfttrack(); - if ((cfgnEta1 < track.eta()) && (track.eta() < cfgnEta2) && track.nClusters() >= cfgnCluster) { + if ((cfgnEta1 < track.eta()) && (track.eta() < cfgnEta2) && + track.nClusters() >= cfgnCluster) { registry.fill(HIST("TracksEtaZvtx"), track.eta(), z); if (midtracks.size() > 0 && retrack.ambDegree() > 0) { registry.fill(HIST("Tracks/EtaZvtx_gt0"), track.eta(), z); eventsInelMFT.insert(retrack.bestCollisionId()); } if (retrack.ambDegree() != 0) { - registry.fill(HIST("Tracks/Control/woOrp/woOrpEtaZvtx_gt0"), track.eta(), z); + registry.fill(HIST("Tracks/Control/woOrp/woOrpEtaZvtx_gt0"), + track.eta(), z); ++k; } float phi = track.phi(); @@ -584,21 +599,21 @@ struct PseudorapidityDensityMFT { if (track.collisionId() != retrack.bestCollisionId()) { registry.fill(HIST("Tracks/Control/ReassignedTracksEtaZvtx"), track.eta(), z); - registry.fill(HIST("Tracks/Control/ReassignedTracksPhiEta"), phi, - track.eta()); + registry.fill(HIST("Tracks/Control/ReassignedTracksPhiEta"), + phi, track.eta()); registry.fill(HIST("Tracks/Control/ReassignedVertexCorr"), track.collision_as().posZ(), z); registry.fill(HIST("Tracks/Control/DeltaZ"), track.collision_as().posZ() - - collision.posZ()); + collision.posZ()); registry.fill(HIST("Tracks/Control/TrackCount"), 1); } if (track.collisionId() == retrack.bestCollisionId()) { registry.fill(HIST("Tracks/Control/notReassignedTracksEtaZvtx"), track.eta(), z); - registry.fill(HIST("Tracks/Control/notReassignedTracksPhiEta"), phi, - track.eta()); + registry.fill(HIST("Tracks/Control/notReassignedTracksPhiEta"), + phi, track.eta()); registry.fill(HIST("Tracks/Control/notReassignedVertexCorr"), track.collision_as().posZ(), z); registry.fill(HIST("Tracks/Control/TrackCount"), 2); @@ -613,7 +628,8 @@ struct PseudorapidityDensityMFT { isAmbiguous = 1; ++i; - registry.fill(HIST("Tracks/Control/amb/EtaZvtxAmb_gt0"), track.eta(), z); + registry.fill(HIST("Tracks/Control/amb/EtaZvtxAmb_gt0"), + track.eta(), z); registry.fill(HIST("Tracks/Control/amb/AmbTracksEtaZvtx"), track.eta(), z); @@ -627,18 +643,20 @@ struct PseudorapidityDensityMFT { } uniqueEventsAmb.insert(retrack.bestCollisionId()); } - if (midtracks.size() > 0 && retrack.ambDegree() > 1 && retrack.ambDegree() != 0) { + if (midtracks.size() > 0 && retrack.ambDegree() > 1 && + retrack.ambDegree() != 0) { uniqueCollisionsAmb.insert(collision.globalIndex()); } registry.fill(HIST("Tracks/Control/TrackIsAmb"), isAmbiguous); if (retrack.ambDegree() == 1 && retrack.ambDegree() != 0) { ++j; - registry.fill(HIST("Tracks/Control/nonamb/EtaZvtxNonAmb_gt0"), track.eta(), z); + registry.fill(HIST("Tracks/Control/nonamb/EtaZvtxNonAmb_gt0"), + track.eta(), z); registry.fill(HIST("Tracks/Control/nonamb/nonAmbTracksEtaZvtx"), track.eta(), z); - registry.fill(HIST("Tracks/Control/nonamb/nonAmbTracksPhiEta"), phi, - track.eta()); + registry.fill(HIST("Tracks/Control/nonamb/nonAmbTracksPhiEta"), + phi, track.eta()); registry.fill(HIST("Tracks/Control/nonamb/nonAmbVertexCorr"), track.collision_as().posZ(), z); registry.fill(HIST("Tracks/Control/TrackCount"), 4); @@ -647,7 +665,8 @@ struct PseudorapidityDensityMFT { } uniqueEvents.insert(retrack.bestCollisionId()); } - if (midtracks.size() > 0 && retrack.ambDegree() == 1 && retrack.ambDegree() != 0) { + if (midtracks.size() > 0 && retrack.ambDegree() == 1 && + retrack.ambDegree() != 0) { uniqueCollisions.insert(collision.globalIndex()); } if ((retrack.ambDegree() > 1) || (retrack.ambDegree() <= 1)) @@ -655,19 +674,23 @@ struct PseudorapidityDensityMFT { if (retrack.ambDegree() != 0) { registry.fill(HIST("Tracks/Control/woOrp/woOrpTracksEtaZvtx"), track.eta(), z); - registry.fill(HIST("Tracks/Control/woOrp/woOrpTracksPhiEta"), phi, - track.eta()); + registry.fill(HIST("Tracks/Control/woOrp/woOrpTracksPhiEta"), + phi, track.eta()); registry.fill(HIST("Tracks/Control/woOrp/woOrpVertexCorr"), track.collision_as().posZ(), z); - registry.fill(HIST("Tracks/Control/TrackCount"), 9); // without orphan + registry.fill(HIST("Tracks/Control/TrackCount"), + 9); // without orphan } } } registry.fill(HIST("ambEventCounts"), 1, uniqueEventsAmb.size()); registry.fill(HIST("NonambEventCounts"), 1, uniqueEvents.size()); - registry.fill(HIST("hNumCollisionsNonAmb_InelMFT"), 1, uniqueCollisions.size()); - registry.fill(HIST("hNumCollisionsAmb_InelMFT"), 1, uniqueCollisionsAmb.size()); - registry.fill(HIST("hNumCollisions_InelMFT"), 1, eventsInelMFT.size()); + registry.fill(HIST("hNumCollisionsNonAmb_InelMFT"), 1, + uniqueCollisions.size()); + registry.fill(HIST("hNumCollisionsAmb_InelMFT"), 1, + uniqueCollisionsAmb.size()); + registry.fill(HIST("hNumCollisions_InelMFT"), 1, + eventsInelMFT.size()); } registry.fill(HIST("Tracks/Control/amb/nTrkAmb"), i); registry.fill(HIST("Tracks/Control/nonamb/nTrkNonAmb"), j); @@ -683,9 +706,8 @@ struct PseudorapidityDensityMFT { using ExColsCent = soa::Join; - void processCountingCentrality(ExColsCent::iterator const& collision, - aod::MFTTracks const& tracks) - { + void processCountingCentrality(ExColsCent::iterator const &collision, + aod::MFTTracks const &tracks) { auto c = collision.centFT0C(); registry.fill(HIST("Events/Centrality/Selection"), 1., c); @@ -693,12 +715,12 @@ struct PseudorapidityDensityMFT { auto z = collision.posZ(); registry.fill(HIST("Events/Centrality/Selection"), 2., c); auto perCollisionSample = sample->sliceByCached( - o2::aod::fwdtrack::collisionId, collision.globalIndex(), cache); + o2::aod::fwdtrack::collisionId, collision.globalIndex(), cache); auto Ntrk = perCollisionSample.size(); registry.fill(HIST("Events/Centrality/NtrkZvtx"), Ntrk, z, c); - for (auto& track : tracks) { + for (auto &track : tracks) { float phi = track.phi(); o2::math_utils::bringTo02Pi(phi); @@ -727,26 +749,25 @@ struct PseudorapidityDensityMFT { using Particles = soa::Filtered; expressions::Filter primaries = - (aod::mcparticle::flags & - (uint8_t)o2::aod::mcparticle::enums::PhysicalPrimary) == - (uint8_t)o2::aod::mcparticle::enums::PhysicalPrimary; + (aod::mcparticle::flags & + (uint8_t)o2::aod::mcparticle::enums::PhysicalPrimary) == + (uint8_t)o2::aod::mcparticle::enums::PhysicalPrimary; Partition mcSample = nabs(aod::mcparticle::eta) < 1.1f; Partition mcSampleCentral = - nabs(aod::mcparticle::eta) < estimatorEta; + nabs(aod::mcparticle::eta) < estimatorEta; void processGen( - aod::McCollisions::iterator const& mcCollision, - o2::soa::SmallGroups> const& collisions, - Particles const& particles, aod::MFTTracks const& /*tracks*/, - FiCentralTracks const& midtracks) - { + aod::McCollisions::iterator const &mcCollision, + o2::soa::SmallGroups> const &collisions, + Particles const &particles, aod::MFTTracks const & /*tracks*/, + FiCentralTracks const &midtracks) { registry.fill(HIST("EventEfficiency"), 1.); auto perCollisionMCSample = mcSample->sliceByCached( - aod::mcparticle::mcCollisionId, mcCollision.globalIndex(), cache); + aod::mcparticle::mcCollisionId, mcCollision.globalIndex(), cache); auto nCharged = 0; - for (auto& particle : perCollisionMCSample) { + for (auto &particle : perCollisionMCSample) { auto charge = 0.; auto p = pdg->GetParticle(particle.pdgCode()); if (p != nullptr) { @@ -761,9 +782,9 @@ struct PseudorapidityDensityMFT { //--------for INEL>0 auto perCollisionMCSampleCentral = mcSampleCentral->sliceByCached( - aod::mcparticle::mcCollisionId, mcCollision.globalIndex(), cache); + aod::mcparticle::mcCollisionId, mcCollision.globalIndex(), cache); auto nChargedCentral = 0; - for (auto& particle : perCollisionMCSampleCentral) { + for (auto &particle : perCollisionMCSampleCentral) { auto charge = 0.; auto p = pdg->GetParticle(particle.pdgCode()); if (p != nullptr) { @@ -774,11 +795,13 @@ struct PseudorapidityDensityMFT { } nChargedCentral++; } - - if (nChargedCentral > 0) { - registry.fill(HIST("EventEfficiency"), 2.); - registry.fill(HIST("EventsNtrkZvtxGen_gt0t"), nCharged, - mcCollision.posZ()); + if ((mcCollision.posZ() >= cfgVzCut1) && + (mcCollision.posZ() <= cfgVzCut2)) { + if (nChargedCentral > 0) { + registry.fill(HIST("EventEfficiency"), 2.); + registry.fill(HIST("EventsNtrkZvtxGen_gt0t"), nCharged, + mcCollision.posZ()); + } } //----------- @@ -788,35 +811,39 @@ struct PseudorapidityDensityMFT { LOGP(debug, "MC col {} has {} reco cols", mcCollision.globalIndex(), collisions.size()); - for (auto& collision : collisions) { + for (auto &collision : collisions) { registry.fill(HIST("EventEfficiency"), 3.); if (!useEvSel || (useEvSel && collision.sel8())) { atLeastOne = true; auto perCollisionSample = sample->sliceByCached( - o2::aod::fwdtrack::collisionId, collision.globalIndex(), cache); + o2::aod::fwdtrack::collisionId, collision.globalIndex(), cache); registry.fill(HIST("EventEfficiency"), 4.); auto perCollisionSampleCentral = - midtracks.sliceBy(perColCentral, collision.globalIndex()); - - if (perCollisionSampleCentral.size() > 0) { - registry.fill(HIST("EventEfficiency"), 5.); - atLeastOne_gt0 = true; - registry.fill(HIST("EventsNtrkZvtxGen_gt0"), - perCollisionSample.size(), collision.posZ()); - } + midtracks.sliceBy(perColCentral, collision.globalIndex()); + if ((collision.posZ() >= cfgVzCut1) && + (collision.posZ() <= cfgVzCut2) && + (mcCollision.posZ() >= cfgVzCut1) && + (mcCollision.posZ() <= cfgVzCut2)) { + if (perCollisionSampleCentral.size() > 0) { + registry.fill(HIST("EventEfficiency"), 5.); + atLeastOne_gt0 = true; + registry.fill(HIST("EventsNtrkZvtxGen_gt0"), + perCollisionSample.size(), collision.posZ()); + } - registry.fill(HIST("EventsZposDiff"), - collision.posZ() - mcCollision.posZ()); - if (useZDiffCut) { - if (std::abs(collision.posZ() - mcCollision.posZ()) > maxZDiff) { - continue; + registry.fill(HIST("EventsZposDiff"), + collision.posZ() - mcCollision.posZ()); + if (useZDiffCut) { + if (std::abs(collision.posZ() - mcCollision.posZ()) > maxZDiff) { + continue; + } } + registry.fill(HIST("EventsNtrkZvtxGen"), perCollisionSample.size(), + collision.posZ()); + ++moreThanOne; } - registry.fill(HIST("EventsNtrkZvtxGen"), perCollisionSample.size(), - collision.posZ()); - ++moreThanOne; } } if (collisions.size() == 0) { @@ -825,37 +852,39 @@ struct PseudorapidityDensityMFT { if (moreThanOne > 1) { registry.fill(HIST("EventsSplitMult"), nCharged); } + if ((mcCollision.posZ() >= cfgVzCut1) && + (mcCollision.posZ() <= cfgVzCut2)) { + for (auto &particle : particles) { + auto p = pdg->GetParticle(particle.pdgCode()); + auto charge = 0; + if (p != nullptr) { + charge = static_cast(p->Charge()); + } + if (std::abs(charge) < 3.) { + continue; + } - for (auto& particle : particles) { - auto p = pdg->GetParticle(particle.pdgCode()); - auto charge = 0; - if (p != nullptr) { - charge = static_cast(p->Charge()); - } - if (std::abs(charge) < 3.) { - continue; - } - - registry.fill(HIST("TracksEtaZvtxGen_t"), particle.eta(), - mcCollision.posZ()); - if (perCollisionMCSampleCentral.size() > 0) { - registry.fill(HIST("TracksEtaZvtxGen_gt0t"), particle.eta(), - mcCollision.posZ()); - } - if (atLeastOne) { - registry.fill(HIST("TracksEtaZvtxGen"), particle.eta(), + registry.fill(HIST("TracksEtaZvtxGen_t"), particle.eta(), mcCollision.posZ()); - registry.fill(HIST("TracksPtEtaGen"), particle.pt(), particle.eta()); - if (atLeastOne_gt0) { - registry.fill(HIST("TracksEtaZvtxGen_gt0"), particle.eta(), + if (perCollisionMCSampleCentral.size() > 0) { + registry.fill(HIST("TracksEtaZvtxGen_gt0t"), particle.eta(), mcCollision.posZ()); } - } + if (atLeastOne) { + registry.fill(HIST("TracksEtaZvtxGen"), particle.eta(), + mcCollision.posZ()); + registry.fill(HIST("TracksPtEtaGen"), particle.pt(), particle.eta()); + if (atLeastOne_gt0) { + registry.fill(HIST("TracksEtaZvtxGen_gt0"), particle.eta(), + mcCollision.posZ()); + } + } - registry.fill(HIST("TracksPhiEtaGen"), particle.phi(), particle.eta()); - registry.fill(HIST("TracksPhiZvtxGen"), particle.phi(), - mcCollision.posZ()); - registry.fill(HIST("TracksPtEtaGen_t"), particle.pt(), particle.eta()); + registry.fill(HIST("TracksPhiEtaGen"), particle.phi(), particle.eta()); + registry.fill(HIST("TracksPhiZvtxGen"), particle.phi(), + mcCollision.posZ()); + registry.fill(HIST("TracksPtEtaGen_t"), particle.pt(), particle.eta()); + } } } @@ -863,21 +892,20 @@ struct PseudorapidityDensityMFT { "Process generator-level info", false); using ExColsGenCent = - soa::SmallGroups>; + soa::SmallGroups>; - void processGenCent(aod::McCollisions::iterator const& mcCollision, - ExColsGenCent const& collisions, - Particles const& particles, - MFTTracksLabeled const& /*tracks*/) - { + void processGenCent(aod::McCollisions::iterator const &mcCollision, + ExColsGenCent const &collisions, + Particles const &particles, + MFTTracksLabeled const & /*tracks*/) { LOGP(debug, "MC col {} has {} reco cols", mcCollision.globalIndex(), collisions.size()); float c_gen = -1; bool atLeastOne = false; - for (auto& collision : collisions) { + for (auto &collision : collisions) { float c_rec = -1; if constexpr (ExColsGenCent::template contains()) { c_rec = collision.centFT0C(); @@ -894,7 +922,7 @@ struct PseudorapidityDensityMFT { registry.fill(HIST("Events/Centrality/CentPercentileMCGen"), c_gen); auto perCollisionSample = sample->sliceByCached( - o2::aod::fwdtrack::collisionId, collision.globalIndex(), cache); + o2::aod::fwdtrack::collisionId, collision.globalIndex(), cache); registry.fill(HIST("Events/Centrality/NtrkZvtxGen"), perCollisionSample.size(), collision.posZ(), c_gen); } @@ -903,10 +931,10 @@ struct PseudorapidityDensityMFT { registry.fill(HIST("Events/Centrality/EventEfficiency"), 1., c_gen); auto perCollisionMCSample = mcSample->sliceByCached( - aod::mcparticle::mcCollisionId, mcCollision.globalIndex(), cache); + aod::mcparticle::mcCollisionId, mcCollision.globalIndex(), cache); auto nCharged = 0; - for (auto& particle : perCollisionMCSample) { + for (auto &particle : perCollisionMCSample) { auto p = pdg->GetParticle(particle.pdgCode()); auto charge = 0; if (p != nullptr) { @@ -923,7 +951,7 @@ struct PseudorapidityDensityMFT { mcCollision.posZ(), c_gen); } - for (auto& particle : particles) { + for (auto &particle : particles) { auto p = pdg->GetParticle(particle.pdgCode()); auto charge = 0; if (p != nullptr) { @@ -955,11 +983,10 @@ struct PseudorapidityDensityMFT { "Process generator-level info in centrality bins", false); void processGenPt( - soa::Join::iterator const& collision, - MFTTracksLabeled const& tracks, aod::McParticles const&) - { + soa::Join::iterator const &collision, + MFTTracksLabeled const &tracks, aod::McParticles const &) { if (!useEvSel || (useEvSel && collision.sel8())) { - for (auto& track : tracks) { + for (auto &track : tracks) { if (!track.has_mcParticle()) { continue; } @@ -976,7 +1003,6 @@ struct PseudorapidityDensityMFT { "Process particle-level info of pt", false); }; -WorkflowSpec defineDataProcessing(ConfigContext const& cfgc) -{ +WorkflowSpec defineDataProcessing(ConfigContext const &cfgc) { return WorkflowSpec{adaptAnalysisTask(cfgc)}; } From e469836ffacd6e596ed9d102a22e9049fb2819ac Mon Sep 17 00:00:00 2001 From: tutripat <73981392+tutripat@users.noreply.github.com> Date: Tue, 11 Feb 2025 19:18:47 +0100 Subject: [PATCH 2/4] Update dndeta-mft-pp.cxx --- .../GlobalEventProperties/dndeta-mft-pp.cxx | 426 +++++++++--------- 1 file changed, 201 insertions(+), 225 deletions(-) diff --git a/PWGLF/Tasks/GlobalEventProperties/dndeta-mft-pp.cxx b/PWGLF/Tasks/GlobalEventProperties/dndeta-mft-pp.cxx index 376c11b4706..2bdf863c89e 100644 --- a/PWGLF/Tasks/GlobalEventProperties/dndeta-mft-pp.cxx +++ b/PWGLF/Tasks/GlobalEventProperties/dndeta-mft-pp.cxx @@ -1,6 +1,6 @@ // Copyright 2020-2022 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. +// 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". @@ -57,16 +57,16 @@ AxisSpec DCAxyAxis = {100, -1, 10}; AxisSpec CentAxis = {{0, 10, 20, 30, 40, 50, 60, 70, 80, 100}}; static constexpr TrackSelectionFlags::flagtype trackSelectionITS = - TrackSelectionFlags::kITSNCls | TrackSelectionFlags::kITSChi2NDF | - TrackSelectionFlags::kITSHits; + TrackSelectionFlags::kITSNCls | TrackSelectionFlags::kITSChi2NDF | + TrackSelectionFlags::kITSHits; static constexpr TrackSelectionFlags::flagtype trackSelectionTPC = - TrackSelectionFlags::kTPCNCls | - TrackSelectionFlags::kTPCCrossedRowsOverNCls | - TrackSelectionFlags::kTPCChi2NDF; + TrackSelectionFlags::kTPCNCls | + TrackSelectionFlags::kTPCCrossedRowsOverNCls | + TrackSelectionFlags::kTPCChi2NDF; static constexpr TrackSelectionFlags::flagtype trackSelectionDCA = - TrackSelectionFlags::kDCAz | TrackSelectionFlags::kDCAxy; + TrackSelectionFlags::kDCAz | TrackSelectionFlags::kDCAxy; using MFTTracksLabeled = soa::Join; @@ -87,8 +87,8 @@ struct PseudorapidityDensityMFT { Configurable useZDiffCut{"useZDiffCut", true, "use Z difference cut"}; Configurable maxZDiff{ - "maxZDiff", 1.0f, - "max allowed Z difference for reconstruced collisions (cm)"}; + "maxZDiff", 1.0f, + "max allowed Z difference for reconstruced collisions (cm)"}; Configurable usePhiCut{"usePhiCut", false, "use azimuthal angle cut"}; Configurable cfgPhiCut{"cfgPhiCut", 0.1f, @@ -99,47 +99,51 @@ struct PseudorapidityDensityMFT { "Cut2 on vertex position of MFT tracks"}; Configurable cfgnCluster{"cfgnCluster", 5.0f, "Cut on no of clusters per MFT track"}; - Configurable cfgnEta1{"cfgnEta1", -4.5f, "Cut on eta1"}; - Configurable cfgnEta2{"cfgnEta2", -1.0f, "Cut on eta1"}; + Configurable cfgnEta1{"cfgnEta1", -4.5f, + "Cut on eta1"}; + Configurable cfgnEta2{"cfgnEta2", -1.0f, + "Cut on eta1"}; HistogramRegistry registry{ - "registry", - { - {"TracksEtaZvtx", - "; #eta; #it{z}_{vtx} (cm); tracks", - {HistType::kTH2F, {EtaAxis, ZAxis}}}, // - {"Tracks/EtaZvtx_gt0", - "; #eta; #it{z}_{vtx} (cm); tracks", - {HistType::kTH2F, {EtaAxis, ZAxis}}}, // - {"TracksPhiEta", - "; #varphi; #eta; tracks", - {HistType::kTH2F, {PhiAxis, EtaAxis}}}, // - {"TracksPhiZvtx", - "; #varphi; #it{z}_{vtx} (cm); tracks", - {HistType::kTH2F, {PhiAxis, ZAxis}}}, // - {"TracksPtEta", - " ; p_{T} (GeV/c); #eta", - {HistType::kTH2F, {PtAxis, EtaAxis}}}, // - {"EventSelection", - ";status;events", - {HistType::kTH1F, {{10, 0.5, 10.5}}}}, - {"EventCounts", ";status;events", {HistType::kTH1F, {{2, 0.5, 2.5}}}}, - {"Tracks/Control/TrackCount", - ";status;Track counts", - {HistType::kTH1F, {{15, 0.5, 15.5}}}}, // added - }}; - - void init(InitContext &) { + "registry", + { + {"TracksEtaZvtx", + "; #eta; #it{z}_{vtx} (cm); tracks", + {HistType::kTH2F, {EtaAxis, ZAxis}}}, // + {"Tracks/EtaZvtx_gt0", + "; #eta; #it{z}_{vtx} (cm); tracks", + {HistType::kTH2F, {EtaAxis, ZAxis}}}, // + {"TracksPhiEta", + "; #varphi; #eta; tracks", + {HistType::kTH2F, {PhiAxis, EtaAxis}}}, // + {"TracksPhiZvtx", + "; #varphi; #it{z}_{vtx} (cm); tracks", + {HistType::kTH2F, {PhiAxis, ZAxis}}}, // + {"TracksPtEta", + " ; p_{T} (GeV/c); #eta", + {HistType::kTH2F, {PtAxis, EtaAxis}}}, // + {"EventSelection", + ";status;events", + {HistType::kTH1F, {{10, 0.5, 10.5}}}}, + {"EventCounts", + ";status;events", + {HistType::kTH1F, {{2, 0.5, 2.5}}}}, + {"Tracks/Control/TrackCount", ";status;Track counts", {HistType::kTH1F, {{15, 0.5, 15.5}}}}, // added + }}; + + void init(InitContext&) + { if (static_cast(doprocessMult) + - static_cast(doprocessMultReassoc) + - static_cast(doprocessCountingCentrality) > + static_cast(doprocessMultReassoc) + + static_cast(doprocessCountingCentrality) > 1) { - LOGP(fatal, "Exactly one process function between processMult, " - "processMultReassoc and processCountingCentrality should be " - "enabled!"); + LOGP(fatal, + "Exactly one process function between processMult, " + "processMultReassoc and processCountingCentrality should be " + "enabled!"); } AxisSpec MultAxis = {multBinning, "N_{trk}"}; auto hstat = registry.get(HIST("EventSelection")); - auto *x = hstat->GetXaxis(); + auto* x = hstat->GetXaxis(); x->SetBinLabel(1, "All"); x->SetBinLabel(2, "Selected"); x->SetBinLabel(3, "Selected INEL>0"); @@ -207,8 +211,7 @@ struct PseudorapidityDensityMFT { registry.add({"EventsZposDiff", " ; Z_{rec} - Z_{gen} (cm)", {HistType::kTH1F, {DeltaZAxis}}}); - registry.add( - {"EventsSplitMult", " ; N_{gen}", {HistType::kTH1F, {MultAxis}}}); + registry.add({"EventsSplitMult", " ; N_{gen}", {HistType::kTH1F, {MultAxis}}}); auto heff = registry.get(HIST("EventEfficiency")); x = heff->GetXaxis(); x->SetBinLabel(1, "Generated"); @@ -231,7 +234,7 @@ struct PseudorapidityDensityMFT { {HistType::kTH1I, {{2, -0.5, 1.5}}}}); auto htrk = registry.get(HIST("Tracks/Control/TrackCount")); - auto *x = htrk->GetXaxis(); + auto* x = htrk->GetXaxis(); x->SetBinLabel(0, "All"); x->SetBinLabel(1, "Reass"); x->SetBinLabel(2, "Not Reass"); @@ -314,35 +317,18 @@ struct PseudorapidityDensityMFT { registry.add({"Tracks/Control/woOrp/woOrpVertexCorr", "; #it{z}_{vtx}^{orig} (cm); #it{z}_{vtx}^{re} (cm)", {HistType::kTH2F, {ZAxis, ZAxis}}}); // - registry.add({"collisionID", - " ; Collision ID", + registry.add({"collisionID", " ; Collision ID", // {HistType::kTH1F,{{100000, 0.5, 100000.0}}}}); // {HistType::kTH1F, {{100000, -50000.0, 50000.0}}}}); // - registry.add({"collisionIDamb", - " ; Collision ID amb", + registry.add({"collisionIDamb", " ; Collision ID amb", // {HistType::kTH1F,{{100000, 0.5, 100000.0}}}}); // - {HistType::kTH1F, {{100000, -50000.0, 50000.0}}}}); // - registry.add({"NonambEventCounts", - " ; EventCounts Nonamb", - {HistType::kTH1F, {{1, 0.5, 1.5}}}}); // - registry.add( - {"hNumCollisionsNonAmb_InelMFT", - " ; Number of Collisions with Non-Ambiguous Tracks;Count;Frequency", - {HistType::kTH1F, {{1, 0.5, 1.5}}}}); // - registry.add( - {"hNumCollisionsAmb_InelMFT", - " ; Number of Collisions with Non-Ambiguous Tracks;Count;Frequency", - {HistType::kTH1F, {{1, 0.5, 1.5}}}}); // - registry.add( - {"hNumCollisions_InelMFT", - " ; Number of selected events with Inel>0 and MFT>0;Count;Frequency", - {HistType::kTH1F, {{1, 0.5, 1.5}}}}); // - registry.add({"hNumCollisions_Inel", - " ; Number of selected events with Inel>0;Count;Frequency", - {HistType::kTH1F, {{1, 0.5, 1.5}}}}); // - registry.add({"ambEventCounts", - " ; EventCounts Nonamb", - {HistType::kTH1F, {{1, 0.5, 1.5}}}}); // + {HistType::kTH1F, {{100000, -50000.0, 50000.0}}}}); // + registry.add({"NonambEventCounts", " ; EventCounts Nonamb", {HistType::kTH1F, {{1, 0.5, 1.5}}}}); // + registry.add({"hNumCollisionsNonAmb_InelMFT", " ; Number of Collisions with Non-Ambiguous Tracks;Count;Frequency", {HistType::kTH1F, {{1, 0.5, 1.5}}}}); // + registry.add({"hNumCollisionsAmb_InelMFT", " ; Number of Collisions with Non-Ambiguous Tracks;Count;Frequency", {HistType::kTH1F, {{1, 0.5, 1.5}}}}); // + registry.add({"hNumCollisions_InelMFT", " ; Number of selected events with Inel>0 and MFT>0;Count;Frequency", {HistType::kTH1F, {{1, 0.5, 1.5}}}}); // + registry.add({"hNumCollisions_Inel", " ; Number of selected events with Inel>0;Count;Frequency", {HistType::kTH1F, {{1, 0.5, 1.5}}}}); // + registry.add({"ambEventCounts", " ; EventCounts Nonamb", {HistType::kTH1F, {{1, 0.5, 1.5}}}}); // } if (doprocessCountingCentrality) { @@ -350,7 +336,7 @@ struct PseudorapidityDensityMFT { ";status;centrality;events", {HistType::kTH2F, {{3, 0.5, 3.5}, CentAxis}}}); auto hstat = registry.get(HIST("Events/Centrality/Selection")); - auto *x = hstat->GetXaxis(); + auto* x = hstat->GetXaxis(); x->SetBinLabel(1, "All"); x->SetBinLabel(2, "Selected"); x->SetBinLabel(3, "Rejected"); @@ -398,7 +384,7 @@ struct PseudorapidityDensityMFT { ";status;centrality;events", {HistType::kTH2F, {{2, 0.5, 2.5}, CentAxis}}}); auto heff = registry.get(HIST("Events/Centrality/EventEfficiency")); - auto *x = heff->GetXaxis(); + auto* x = heff->GetXaxis(); x->SetBinLabel(1, "Generated"); x->SetBinLabel(2, "Selected"); @@ -423,18 +409,18 @@ struct PseudorapidityDensityMFT { } using FullBCs = soa::Join; - void - processTagging(FullBCs const &bcs, - soa::Join const &collisions) { + void processTagging(FullBCs const& bcs, + soa::Join const& collisions) + { std::vector::iterator> cols; - for (auto &bc : bcs) { + for (auto& bc : bcs) { if (!useEvSel || (useEvSel && ((bc.selection_bit(aod::evsel::kIsBBT0A) && bc.selection_bit(aod::evsel::kIsBBT0C)) != 0))) { registry.fill(HIST("EventSelection"), 7); // added 5->12 cols.clear(); - for (auto &collision : collisions) { + for (auto& collision : collisions) { if (collision.has_foundBC()) { if (collision.foundBCId() == bc.globalIndex()) { cols.emplace_back(collision); @@ -458,40 +444,41 @@ struct PseudorapidityDensityMFT { "Collect event sample stats", true); Partition sample = - (aod::fwdtrack::eta < -2.8f) && (aod::fwdtrack::eta > -3.2f); + (aod::fwdtrack::eta < -2.8f) && (aod::fwdtrack::eta > -3.2f); Partition sampleCentral = (nabs(aod::track::eta) < 1.1f); expressions::Filter atrackFilter = - (aod::fwdtrack::bestCollisionId >= 0) && (aod::fwdtrack::eta < -2.0f) && - (aod::fwdtrack::eta > -3.9f) && (nabs(aod::fwdtrack::bestDCAXY) <= 2.f); + (aod::fwdtrack::bestCollisionId >= 0) && (aod::fwdtrack::eta < -2.0f) && + (aod::fwdtrack::eta > -3.9f) && (nabs(aod::fwdtrack::bestDCAXY) <= 2.f); using CollwEv = soa::Join; expressions::Filter trackSelectionCentral = - ((aod::track::trackCutFlag & trackSelectionITS) == trackSelectionITS) && - ifnode((aod::track::v001::detectorMap & (uint8_t)o2::aod::track::TPC) == - (uint8_t)o2::aod::track::TPC, - (aod::track::trackCutFlag & trackSelectionTPC) == - trackSelectionTPC, - true) && - ((aod::track::trackCutFlag & trackSelectionDCA) == trackSelectionDCA) && - (nabs(aod::track::eta) < estimatorEta); + ((aod::track::trackCutFlag & trackSelectionITS) == trackSelectionITS) && + ifnode((aod::track::v001::detectorMap & (uint8_t)o2::aod::track::TPC) == + (uint8_t)o2::aod::track::TPC, + (aod::track::trackCutFlag & trackSelectionTPC) == + trackSelectionTPC, + true) && + ((aod::track::trackCutFlag & trackSelectionDCA) == trackSelectionDCA) && + (nabs(aod::track::eta) < estimatorEta); using FiCentralTracks = soa::Filtered< - soa::Join>; // central tracks for INEL>0 + soa::Join>; // central tracks for INEL>0 - void processMult(CollwEv::iterator const &collision, - aod::MFTTracks const &tracks, - FiCentralTracks const &midtracks, aod::Tracks const &) { + void processMult(CollwEv::iterator const& collision, + aod::MFTTracks const& tracks, + FiCentralTracks const& midtracks, aod::Tracks const&) + { registry.fill(HIST("EventSelection"), 1.); if (!useEvSel || (useEvSel && collision.sel8())) { registry.fill(HIST("EventSelection"), 2.); auto z = collision.posZ(); auto perCollisionSample = sampleCentral->sliceByCached( - o2::aod::track::collisionId, collision.globalIndex(), cache); + o2::aod::track::collisionId, collision.globalIndex(), cache); auto Ntrk = perCollisionSample.size(); registry.fill(HIST("EventsNtrkZvtx"), Ntrk, z); @@ -503,7 +490,7 @@ struct PseudorapidityDensityMFT { } if (tracks.size() > 0) { - for (auto &track : tracks) { + for (auto& track : tracks) { float phi = track.phi(); o2::math_utils::bringTo02Pi(phi); @@ -537,11 +524,11 @@ struct PseudorapidityDensityMFT { PROCESS_SWITCH(PseudorapidityDensityMFT, processMult, "Process reco or data info", true); - void - processMultReassoc(CollwEv::iterator const &collision, - o2::aod::MFTTracks const &, - soa::SmallGroups const &retracks, - FiCentralTracks const &midtracks, aod::Tracks const &) { + void processMultReassoc(CollwEv::iterator const& collision, + o2::aod::MFTTracks const&, + soa::SmallGroups const& retracks, + FiCentralTracks const& midtracks, aod::Tracks const&) + { registry.fill(HIST("EventSelection"), 1.); if (!useEvSel || (useEvSel && collision.sel8())) { registry.fill(HIST("EventSelection"), 2.); @@ -549,7 +536,7 @@ struct PseudorapidityDensityMFT { if ((z >= cfgVzCut1) && (z <= cfgVzCut2)) { registry.fill(HIST("EventSelection"), 3.); auto perCollisionSample = sampleCentral->sliceByCached( - o2::aod::track::collisionId, collision.globalIndex(), cache); + o2::aod::track::collisionId, collision.globalIndex(), cache); auto Ntrk = perCollisionSample.size(); std::unordered_set uniqueEvents; std::unordered_set uniqueEventsAmb; @@ -566,19 +553,17 @@ struct PseudorapidityDensityMFT { int64_t i = 0.0, j = 0.0, k = 0.0; if (retracks.size() > 0) { registry.fill(HIST("EventSelection"), 5.); - for (auto &retrack : retracks) { + for (auto& retrack : retracks) { auto track = retrack.mfttrack(); - if ((cfgnEta1 < track.eta()) && (track.eta() < cfgnEta2) && - track.nClusters() >= cfgnCluster) { + if ((cfgnEta1 < track.eta()) && (track.eta() < cfgnEta2) && track.nClusters() >= cfgnCluster) { registry.fill(HIST("TracksEtaZvtx"), track.eta(), z); if (midtracks.size() > 0 && retrack.ambDegree() > 0) { registry.fill(HIST("Tracks/EtaZvtx_gt0"), track.eta(), z); eventsInelMFT.insert(retrack.bestCollisionId()); } if (retrack.ambDegree() != 0) { - registry.fill(HIST("Tracks/Control/woOrp/woOrpEtaZvtx_gt0"), - track.eta(), z); + registry.fill(HIST("Tracks/Control/woOrp/woOrpEtaZvtx_gt0"), track.eta(), z); ++k; } float phi = track.phi(); @@ -599,21 +584,21 @@ struct PseudorapidityDensityMFT { if (track.collisionId() != retrack.bestCollisionId()) { registry.fill(HIST("Tracks/Control/ReassignedTracksEtaZvtx"), track.eta(), z); - registry.fill(HIST("Tracks/Control/ReassignedTracksPhiEta"), - phi, track.eta()); + registry.fill(HIST("Tracks/Control/ReassignedTracksPhiEta"), phi, + track.eta()); registry.fill(HIST("Tracks/Control/ReassignedVertexCorr"), track.collision_as().posZ(), z); registry.fill(HIST("Tracks/Control/DeltaZ"), track.collision_as().posZ() - - collision.posZ()); + collision.posZ()); registry.fill(HIST("Tracks/Control/TrackCount"), 1); } if (track.collisionId() == retrack.bestCollisionId()) { registry.fill(HIST("Tracks/Control/notReassignedTracksEtaZvtx"), track.eta(), z); - registry.fill(HIST("Tracks/Control/notReassignedTracksPhiEta"), - phi, track.eta()); + registry.fill(HIST("Tracks/Control/notReassignedTracksPhiEta"), phi, + track.eta()); registry.fill(HIST("Tracks/Control/notReassignedVertexCorr"), track.collision_as().posZ(), z); registry.fill(HIST("Tracks/Control/TrackCount"), 2); @@ -628,8 +613,7 @@ struct PseudorapidityDensityMFT { isAmbiguous = 1; ++i; - registry.fill(HIST("Tracks/Control/amb/EtaZvtxAmb_gt0"), - track.eta(), z); + registry.fill(HIST("Tracks/Control/amb/EtaZvtxAmb_gt0"), track.eta(), z); registry.fill(HIST("Tracks/Control/amb/AmbTracksEtaZvtx"), track.eta(), z); @@ -643,20 +627,18 @@ struct PseudorapidityDensityMFT { } uniqueEventsAmb.insert(retrack.bestCollisionId()); } - if (midtracks.size() > 0 && retrack.ambDegree() > 1 && - retrack.ambDegree() != 0) { + if (midtracks.size() > 0 && retrack.ambDegree() > 1 && retrack.ambDegree() != 0) { uniqueCollisionsAmb.insert(collision.globalIndex()); } registry.fill(HIST("Tracks/Control/TrackIsAmb"), isAmbiguous); if (retrack.ambDegree() == 1 && retrack.ambDegree() != 0) { ++j; - registry.fill(HIST("Tracks/Control/nonamb/EtaZvtxNonAmb_gt0"), - track.eta(), z); + registry.fill(HIST("Tracks/Control/nonamb/EtaZvtxNonAmb_gt0"), track.eta(), z); registry.fill(HIST("Tracks/Control/nonamb/nonAmbTracksEtaZvtx"), track.eta(), z); - registry.fill(HIST("Tracks/Control/nonamb/nonAmbTracksPhiEta"), - phi, track.eta()); + registry.fill(HIST("Tracks/Control/nonamb/nonAmbTracksPhiEta"), phi, + track.eta()); registry.fill(HIST("Tracks/Control/nonamb/nonAmbVertexCorr"), track.collision_as().posZ(), z); registry.fill(HIST("Tracks/Control/TrackCount"), 4); @@ -665,8 +647,7 @@ struct PseudorapidityDensityMFT { } uniqueEvents.insert(retrack.bestCollisionId()); } - if (midtracks.size() > 0 && retrack.ambDegree() == 1 && - retrack.ambDegree() != 0) { + if (midtracks.size() > 0 && retrack.ambDegree() == 1 && retrack.ambDegree() != 0) { uniqueCollisions.insert(collision.globalIndex()); } if ((retrack.ambDegree() > 1) || (retrack.ambDegree() <= 1)) @@ -674,23 +655,19 @@ struct PseudorapidityDensityMFT { if (retrack.ambDegree() != 0) { registry.fill(HIST("Tracks/Control/woOrp/woOrpTracksEtaZvtx"), track.eta(), z); - registry.fill(HIST("Tracks/Control/woOrp/woOrpTracksPhiEta"), - phi, track.eta()); + registry.fill(HIST("Tracks/Control/woOrp/woOrpTracksPhiEta"), phi, + track.eta()); registry.fill(HIST("Tracks/Control/woOrp/woOrpVertexCorr"), track.collision_as().posZ(), z); - registry.fill(HIST("Tracks/Control/TrackCount"), - 9); // without orphan + registry.fill(HIST("Tracks/Control/TrackCount"), 9); // without orphan } } } registry.fill(HIST("ambEventCounts"), 1, uniqueEventsAmb.size()); registry.fill(HIST("NonambEventCounts"), 1, uniqueEvents.size()); - registry.fill(HIST("hNumCollisionsNonAmb_InelMFT"), 1, - uniqueCollisions.size()); - registry.fill(HIST("hNumCollisionsAmb_InelMFT"), 1, - uniqueCollisionsAmb.size()); - registry.fill(HIST("hNumCollisions_InelMFT"), 1, - eventsInelMFT.size()); + registry.fill(HIST("hNumCollisionsNonAmb_InelMFT"), 1, uniqueCollisions.size()); + registry.fill(HIST("hNumCollisionsAmb_InelMFT"), 1, uniqueCollisionsAmb.size()); + registry.fill(HIST("hNumCollisions_InelMFT"), 1, eventsInelMFT.size()); } registry.fill(HIST("Tracks/Control/amb/nTrkAmb"), i); registry.fill(HIST("Tracks/Control/nonamb/nTrkNonAmb"), j); @@ -706,8 +683,9 @@ struct PseudorapidityDensityMFT { using ExColsCent = soa::Join; - void processCountingCentrality(ExColsCent::iterator const &collision, - aod::MFTTracks const &tracks) { + void processCountingCentrality(ExColsCent::iterator const& collision, + aod::MFTTracks const& tracks) + { auto c = collision.centFT0C(); registry.fill(HIST("Events/Centrality/Selection"), 1., c); @@ -715,12 +693,12 @@ struct PseudorapidityDensityMFT { auto z = collision.posZ(); registry.fill(HIST("Events/Centrality/Selection"), 2., c); auto perCollisionSample = sample->sliceByCached( - o2::aod::fwdtrack::collisionId, collision.globalIndex(), cache); + o2::aod::fwdtrack::collisionId, collision.globalIndex(), cache); auto Ntrk = perCollisionSample.size(); registry.fill(HIST("Events/Centrality/NtrkZvtx"), Ntrk, z, c); - for (auto &track : tracks) { + for (auto& track : tracks) { float phi = track.phi(); o2::math_utils::bringTo02Pi(phi); @@ -749,25 +727,26 @@ struct PseudorapidityDensityMFT { using Particles = soa::Filtered; expressions::Filter primaries = - (aod::mcparticle::flags & - (uint8_t)o2::aod::mcparticle::enums::PhysicalPrimary) == - (uint8_t)o2::aod::mcparticle::enums::PhysicalPrimary; + (aod::mcparticle::flags & + (uint8_t)o2::aod::mcparticle::enums::PhysicalPrimary) == + (uint8_t)o2::aod::mcparticle::enums::PhysicalPrimary; Partition mcSample = nabs(aod::mcparticle::eta) < 1.1f; Partition mcSampleCentral = - nabs(aod::mcparticle::eta) < estimatorEta; + nabs(aod::mcparticle::eta) < estimatorEta; void processGen( - aod::McCollisions::iterator const &mcCollision, - o2::soa::SmallGroups> const &collisions, - Particles const &particles, aod::MFTTracks const & /*tracks*/, - FiCentralTracks const &midtracks) { + aod::McCollisions::iterator const& mcCollision, + o2::soa::SmallGroups> const& collisions, + Particles const& particles, aod::MFTTracks const& /*tracks*/, + FiCentralTracks const& midtracks) + { registry.fill(HIST("EventEfficiency"), 1.); auto perCollisionMCSample = mcSample->sliceByCached( - aod::mcparticle::mcCollisionId, mcCollision.globalIndex(), cache); + aod::mcparticle::mcCollisionId, mcCollision.globalIndex(), cache); auto nCharged = 0; - for (auto &particle : perCollisionMCSample) { + for (auto& particle : perCollisionMCSample) { auto charge = 0.; auto p = pdg->GetParticle(particle.pdgCode()); if (p != nullptr) { @@ -782,9 +761,9 @@ struct PseudorapidityDensityMFT { //--------for INEL>0 auto perCollisionMCSampleCentral = mcSampleCentral->sliceByCached( - aod::mcparticle::mcCollisionId, mcCollision.globalIndex(), cache); + aod::mcparticle::mcCollisionId, mcCollision.globalIndex(), cache); auto nChargedCentral = 0; - for (auto &particle : perCollisionMCSampleCentral) { + for (auto& particle : perCollisionMCSampleCentral) { auto charge = 0.; auto p = pdg->GetParticle(particle.pdgCode()); if (p != nullptr) { @@ -795,15 +774,13 @@ struct PseudorapidityDensityMFT { } nChargedCentral++; } - if ((mcCollision.posZ() >= cfgVzCut1) && - (mcCollision.posZ() <= cfgVzCut2)) { - if (nChargedCentral > 0) { - registry.fill(HIST("EventEfficiency"), 2.); - registry.fill(HIST("EventsNtrkZvtxGen_gt0t"), nCharged, - mcCollision.posZ()); - } + if ((mcCollision.posZ()>= cfgVzCut1) && (mcCollision.posZ() <= cfgVzCut2)){ + if (nChargedCentral > 0) { + registry.fill(HIST("EventEfficiency"), 2.); + registry.fill(HIST("EventsNtrkZvtxGen_gt0t"), nCharged, + mcCollision.posZ()); } - + } //----------- bool atLeastOne = false; bool atLeastOne_gt0 = false; @@ -811,101 +788,98 @@ struct PseudorapidityDensityMFT { LOGP(debug, "MC col {} has {} reco cols", mcCollision.globalIndex(), collisions.size()); - for (auto &collision : collisions) { + for (auto& collision : collisions) { registry.fill(HIST("EventEfficiency"), 3.); if (!useEvSel || (useEvSel && collision.sel8())) { atLeastOne = true; auto perCollisionSample = sample->sliceByCached( - o2::aod::fwdtrack::collisionId, collision.globalIndex(), cache); + o2::aod::fwdtrack::collisionId, collision.globalIndex(), cache); registry.fill(HIST("EventEfficiency"), 4.); auto perCollisionSampleCentral = - midtracks.sliceBy(perColCentral, collision.globalIndex()); - if ((collision.posZ() >= cfgVzCut1) && - (collision.posZ() <= cfgVzCut2) && - (mcCollision.posZ() >= cfgVzCut1) && - (mcCollision.posZ() <= cfgVzCut2)) { - if (perCollisionSampleCentral.size() > 0) { - registry.fill(HIST("EventEfficiency"), 5.); - atLeastOne_gt0 = true; - registry.fill(HIST("EventsNtrkZvtxGen_gt0"), - perCollisionSample.size(), collision.posZ()); - } + midtracks.sliceBy(perColCentral, collision.globalIndex()); + if ((collision.posZ() >= cfgVzCut1) && (collision.posZ() <= cfgVzCut2) && (mcCollision.posZ()>= cfgVzCut1) && (mcCollision.posZ() <= cfgVzCut2)){ + if (perCollisionSampleCentral.size() > 0) { + registry.fill(HIST("EventEfficiency"), 5.); + atLeastOne_gt0 = true; + registry.fill(HIST("EventsNtrkZvtxGen_gt0"), + perCollisionSample.size(), collision.posZ()); + } - registry.fill(HIST("EventsZposDiff"), - collision.posZ() - mcCollision.posZ()); - if (useZDiffCut) { - if (std::abs(collision.posZ() - mcCollision.posZ()) > maxZDiff) { - continue; - } + registry.fill(HIST("EventsZposDiff"), + collision.posZ() - mcCollision.posZ()); + if (useZDiffCut) { + if (std::abs(collision.posZ() - mcCollision.posZ()) > maxZDiff) { + continue; } - registry.fill(HIST("EventsNtrkZvtxGen"), perCollisionSample.size(), - collision.posZ()); - ++moreThanOne; } + registry.fill(HIST("EventsNtrkZvtxGen"), perCollisionSample.size(), + collision.posZ()); + ++moreThanOne; } } + } if (collisions.size() == 0) { registry.fill(HIST("NotFoundEventZvtx"), mcCollision.posZ()); } if (moreThanOne > 1) { registry.fill(HIST("EventsSplitMult"), nCharged); } - if ((mcCollision.posZ() >= cfgVzCut1) && - (mcCollision.posZ() <= cfgVzCut2)) { - for (auto &particle : particles) { - auto p = pdg->GetParticle(particle.pdgCode()); - auto charge = 0; - if (p != nullptr) { - charge = static_cast(p->Charge()); - } - if (std::abs(charge) < 3.) { - continue; - } + if ((mcCollision.posZ()>= cfgVzCut1) && (mcCollision.posZ() <= cfgVzCut2)){ + for (auto& particle : particles) { + auto p = pdg->GetParticle(particle.pdgCode()); + auto charge = 0; + if (p != nullptr) { + charge = static_cast(p->Charge()); + } + if (std::abs(charge) < 3.) { + continue; + } - registry.fill(HIST("TracksEtaZvtxGen_t"), particle.eta(), + registry.fill(HIST("TracksEtaZvtxGen_t"), particle.eta(), + mcCollision.posZ()); + if (perCollisionMCSampleCentral.size() > 0) { + registry.fill(HIST("TracksEtaZvtxGen_gt0t"), particle.eta(), mcCollision.posZ()); - if (perCollisionMCSampleCentral.size() > 0) { - registry.fill(HIST("TracksEtaZvtxGen_gt0t"), particle.eta(), - mcCollision.posZ()); - } - if (atLeastOne) { - registry.fill(HIST("TracksEtaZvtxGen"), particle.eta(), + } + if (atLeastOne) { + registry.fill(HIST("TracksEtaZvtxGen"), particle.eta(), + mcCollision.posZ()); + registry.fill(HIST("TracksPtEtaGen"), particle.pt(), particle.eta()); + if (atLeastOne_gt0) { + registry.fill(HIST("TracksEtaZvtxGen_gt0"), particle.eta(), mcCollision.posZ()); - registry.fill(HIST("TracksPtEtaGen"), particle.pt(), particle.eta()); - if (atLeastOne_gt0) { - registry.fill(HIST("TracksEtaZvtxGen_gt0"), particle.eta(), - mcCollision.posZ()); - } } - - registry.fill(HIST("TracksPhiEtaGen"), particle.phi(), particle.eta()); - registry.fill(HIST("TracksPhiZvtxGen"), particle.phi(), - mcCollision.posZ()); - registry.fill(HIST("TracksPtEtaGen_t"), particle.pt(), particle.eta()); } + + registry.fill(HIST("TracksPhiEtaGen"), particle.phi(), particle.eta()); + registry.fill(HIST("TracksPhiZvtxGen"), particle.phi(), + mcCollision.posZ()); + registry.fill(HIST("TracksPtEtaGen_t"), particle.pt(), particle.eta()); } + } } PROCESS_SWITCH(PseudorapidityDensityMFT, processGen, "Process generator-level info", false); using ExColsGenCent = - soa::SmallGroups>; + soa::SmallGroups>; - void processGenCent(aod::McCollisions::iterator const &mcCollision, - ExColsGenCent const &collisions, - Particles const &particles, - MFTTracksLabeled const & /*tracks*/) { + void processGenCent(aod::McCollisions::iterator const& mcCollision, + ExColsGenCent const& collisions, + Particles const& particles, + MFTTracksLabeled const& /*tracks*/) + { LOGP(debug, "MC col {} has {} reco cols", mcCollision.globalIndex(), collisions.size()); float c_gen = -1; bool atLeastOne = false; - for (auto &collision : collisions) { + for (auto& collision : collisions) { float c_rec = -1; if constexpr (ExColsGenCent::template contains()) { c_rec = collision.centFT0C(); @@ -922,7 +896,7 @@ struct PseudorapidityDensityMFT { registry.fill(HIST("Events/Centrality/CentPercentileMCGen"), c_gen); auto perCollisionSample = sample->sliceByCached( - o2::aod::fwdtrack::collisionId, collision.globalIndex(), cache); + o2::aod::fwdtrack::collisionId, collision.globalIndex(), cache); registry.fill(HIST("Events/Centrality/NtrkZvtxGen"), perCollisionSample.size(), collision.posZ(), c_gen); } @@ -931,10 +905,10 @@ struct PseudorapidityDensityMFT { registry.fill(HIST("Events/Centrality/EventEfficiency"), 1., c_gen); auto perCollisionMCSample = mcSample->sliceByCached( - aod::mcparticle::mcCollisionId, mcCollision.globalIndex(), cache); + aod::mcparticle::mcCollisionId, mcCollision.globalIndex(), cache); auto nCharged = 0; - for (auto &particle : perCollisionMCSample) { + for (auto& particle : perCollisionMCSample) { auto p = pdg->GetParticle(particle.pdgCode()); auto charge = 0; if (p != nullptr) { @@ -951,7 +925,7 @@ struct PseudorapidityDensityMFT { mcCollision.posZ(), c_gen); } - for (auto &particle : particles) { + for (auto& particle : particles) { auto p = pdg->GetParticle(particle.pdgCode()); auto charge = 0; if (p != nullptr) { @@ -983,10 +957,11 @@ struct PseudorapidityDensityMFT { "Process generator-level info in centrality bins", false); void processGenPt( - soa::Join::iterator const &collision, - MFTTracksLabeled const &tracks, aod::McParticles const &) { + soa::Join::iterator const& collision, + MFTTracksLabeled const& tracks, aod::McParticles const&) + { if (!useEvSel || (useEvSel && collision.sel8())) { - for (auto &track : tracks) { + for (auto& track : tracks) { if (!track.has_mcParticle()) { continue; } @@ -1003,6 +978,7 @@ struct PseudorapidityDensityMFT { "Process particle-level info of pt", false); }; -WorkflowSpec defineDataProcessing(ConfigContext const &cfgc) { +WorkflowSpec defineDataProcessing(ConfigContext const& cfgc) +{ return WorkflowSpec{adaptAnalysisTask(cfgc)}; } From f1ccf663d345393390e19c64c6171d3ec391a961 Mon Sep 17 00:00:00 2001 From: ALICE Action Bot Date: Tue, 11 Feb 2025 18:19:13 +0000 Subject: [PATCH 3/4] Please consider the following formatting changes --- .../GlobalEventProperties/dndeta-mft-pp.cxx | 98 +++++++++---------- 1 file changed, 49 insertions(+), 49 deletions(-) diff --git a/PWGLF/Tasks/GlobalEventProperties/dndeta-mft-pp.cxx b/PWGLF/Tasks/GlobalEventProperties/dndeta-mft-pp.cxx index 2bdf863c89e..655c4f68feb 100644 --- a/PWGLF/Tasks/GlobalEventProperties/dndeta-mft-pp.cxx +++ b/PWGLF/Tasks/GlobalEventProperties/dndeta-mft-pp.cxx @@ -774,13 +774,13 @@ struct PseudorapidityDensityMFT { } nChargedCentral++; } - if ((mcCollision.posZ()>= cfgVzCut1) && (mcCollision.posZ() <= cfgVzCut2)){ - if (nChargedCentral > 0) { - registry.fill(HIST("EventEfficiency"), 2.); - registry.fill(HIST("EventsNtrkZvtxGen_gt0t"), nCharged, - mcCollision.posZ()); + if ((mcCollision.posZ() >= cfgVzCut1) && (mcCollision.posZ() <= cfgVzCut2)) { + if (nChargedCentral > 0) { + registry.fill(HIST("EventEfficiency"), 2.); + registry.fill(HIST("EventsNtrkZvtxGen_gt0t"), nCharged, + mcCollision.posZ()); + } } - } //----------- bool atLeastOne = false; bool atLeastOne_gt0 = false; @@ -799,25 +799,25 @@ struct PseudorapidityDensityMFT { auto perCollisionSampleCentral = midtracks.sliceBy(perColCentral, collision.globalIndex()); - if ((collision.posZ() >= cfgVzCut1) && (collision.posZ() <= cfgVzCut2) && (mcCollision.posZ()>= cfgVzCut1) && (mcCollision.posZ() <= cfgVzCut2)){ - if (perCollisionSampleCentral.size() > 0) { - registry.fill(HIST("EventEfficiency"), 5.); - atLeastOne_gt0 = true; - registry.fill(HIST("EventsNtrkZvtxGen_gt0"), - perCollisionSample.size(), collision.posZ()); - } + if ((collision.posZ() >= cfgVzCut1) && (collision.posZ() <= cfgVzCut2) && (mcCollision.posZ() >= cfgVzCut1) && (mcCollision.posZ() <= cfgVzCut2)) { + if (perCollisionSampleCentral.size() > 0) { + registry.fill(HIST("EventEfficiency"), 5.); + atLeastOne_gt0 = true; + registry.fill(HIST("EventsNtrkZvtxGen_gt0"), + perCollisionSample.size(), collision.posZ()); + } - registry.fill(HIST("EventsZposDiff"), - collision.posZ() - mcCollision.posZ()); - if (useZDiffCut) { - if (std::abs(collision.posZ() - mcCollision.posZ()) > maxZDiff) { - continue; + registry.fill(HIST("EventsZposDiff"), + collision.posZ() - mcCollision.posZ()); + if (useZDiffCut) { + if (std::abs(collision.posZ() - mcCollision.posZ()) > maxZDiff) { + continue; + } } + registry.fill(HIST("EventsNtrkZvtxGen"), perCollisionSample.size(), + collision.posZ()); + ++moreThanOne; } - registry.fill(HIST("EventsNtrkZvtxGen"), perCollisionSample.size(), - collision.posZ()); - ++moreThanOne; - } } } if (collisions.size() == 0) { @@ -826,39 +826,39 @@ struct PseudorapidityDensityMFT { if (moreThanOne > 1) { registry.fill(HIST("EventsSplitMult"), nCharged); } - if ((mcCollision.posZ()>= cfgVzCut1) && (mcCollision.posZ() <= cfgVzCut2)){ - for (auto& particle : particles) { - auto p = pdg->GetParticle(particle.pdgCode()); - auto charge = 0; - if (p != nullptr) { - charge = static_cast(p->Charge()); - } - if (std::abs(charge) < 3.) { - continue; - } + if ((mcCollision.posZ() >= cfgVzCut1) && (mcCollision.posZ() <= cfgVzCut2)) { + for (auto& particle : particles) { + auto p = pdg->GetParticle(particle.pdgCode()); + auto charge = 0; + if (p != nullptr) { + charge = static_cast(p->Charge()); + } + if (std::abs(charge) < 3.) { + continue; + } - registry.fill(HIST("TracksEtaZvtxGen_t"), particle.eta(), - mcCollision.posZ()); - if (perCollisionMCSampleCentral.size() > 0) { - registry.fill(HIST("TracksEtaZvtxGen_gt0t"), particle.eta(), - mcCollision.posZ()); - } - if (atLeastOne) { - registry.fill(HIST("TracksEtaZvtxGen"), particle.eta(), + registry.fill(HIST("TracksEtaZvtxGen_t"), particle.eta(), mcCollision.posZ()); - registry.fill(HIST("TracksPtEtaGen"), particle.pt(), particle.eta()); - if (atLeastOne_gt0) { - registry.fill(HIST("TracksEtaZvtxGen_gt0"), particle.eta(), + if (perCollisionMCSampleCentral.size() > 0) { + registry.fill(HIST("TracksEtaZvtxGen_gt0t"), particle.eta(), mcCollision.posZ()); } - } + if (atLeastOne) { + registry.fill(HIST("TracksEtaZvtxGen"), particle.eta(), + mcCollision.posZ()); + registry.fill(HIST("TracksPtEtaGen"), particle.pt(), particle.eta()); + if (atLeastOne_gt0) { + registry.fill(HIST("TracksEtaZvtxGen_gt0"), particle.eta(), + mcCollision.posZ()); + } + } - registry.fill(HIST("TracksPhiEtaGen"), particle.phi(), particle.eta()); - registry.fill(HIST("TracksPhiZvtxGen"), particle.phi(), - mcCollision.posZ()); - registry.fill(HIST("TracksPtEtaGen_t"), particle.pt(), particle.eta()); + registry.fill(HIST("TracksPhiEtaGen"), particle.phi(), particle.eta()); + registry.fill(HIST("TracksPhiZvtxGen"), particle.phi(), + mcCollision.posZ()); + registry.fill(HIST("TracksPtEtaGen_t"), particle.pt(), particle.eta()); + } } - } } PROCESS_SWITCH(PseudorapidityDensityMFT, processGen, From f383f0e53acf4f26438225088b4af3a9f367326b Mon Sep 17 00:00:00 2001 From: tutripat <73981392+tutripat@users.noreply.github.com> Date: Tue, 11 Feb 2025 19:29:18 +0100 Subject: [PATCH 4/4] Update dndeta-mft-pp.cxx --- PWGLF/Tasks/GlobalEventProperties/dndeta-mft-pp.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PWGLF/Tasks/GlobalEventProperties/dndeta-mft-pp.cxx b/PWGLF/Tasks/GlobalEventProperties/dndeta-mft-pp.cxx index 655c4f68feb..7a2f4887a7b 100644 --- a/PWGLF/Tasks/GlobalEventProperties/dndeta-mft-pp.cxx +++ b/PWGLF/Tasks/GlobalEventProperties/dndeta-mft-pp.cxx @@ -818,7 +818,7 @@ struct PseudorapidityDensityMFT { collision.posZ()); ++moreThanOne; } - } + } } if (collisions.size() == 0) { registry.fill(HIST("NotFoundEventZvtx"), mcCollision.posZ());