From 71d97d26352c2d1ac08999efd872641feed5b5de Mon Sep 17 00:00:00 2001 From: Victor Gonzalez Date: Mon, 17 Jan 2022 23:12:43 +0100 Subject: [PATCH] Tracking the collision mutltiplicity Also fixing few warnings on not used parameters --- PWGCF/TableProducer/dptdptfilter.cxx | 14 ++++++++- PWGCF/TableProducer/dptdptfilter.h | 43 +++++++++++++++++++++++----- 2 files changed, 49 insertions(+), 8 deletions(-) diff --git a/PWGCF/TableProducer/dptdptfilter.cxx b/PWGCF/TableProducer/dptdptfilter.cxx index 3f23ba8b95d..41f32ebece6 100644 --- a/PWGCF/TableProducer/dptdptfilter.cxx +++ b/PWGCF/TableProducer/dptdptfilter.cxx @@ -77,6 +77,8 @@ TH1F* fhCentMultB = nullptr; TH1F* fhCentMultA = nullptr; TH1F* fhVertexZB = nullptr; TH1F* fhVertexZA = nullptr; +TH1F* fhMultB = nullptr; +TH1F* fhMultA = nullptr; TH1F* fhPB = nullptr; TH1F* fhPA[kDptDptNoOfSpecies] = {nullptr}; TH1F* fhPtB = nullptr; @@ -430,10 +432,14 @@ struct DptDptFilter { if (fSystem > kPbp) { fhCentMultB = new TH1F("CentralityB", "Centrality before cut; centrality (%)", 100, 0, 100); fhCentMultA = new TH1F("CentralityA", "Centrality; centrality (%)", 100, 0, 100); + fhMultB = new TH1F("V0MB", "V0 Multiplicity before cut;V0 Multiplicity;Collisions", 4001, -0.5, 4000.5); + fhMultA = new TH1F("V0MA", "V0 Multiplicity;V0 Multiplicity;Collisions", 4001, -0.5, 4000.5); } else { /* for pp, pPb and Pbp systems use multiplicity instead */ fhCentMultB = new TH1F("MultiplicityB", "Multiplicity before cut; multiplicity (%)", 100, 0, 100); fhCentMultA = new TH1F("MultiplicityA", "Multiplicity; multiplicity (%)", 100, 0, 100); + fhMultB = new TH1F("V0MB", "V0 Multiplicity before cut;V0 Multiplicity;Collisions", 601, -0.5, 600.5); + fhMultA = new TH1F("V0MA", "V0 Multiplicity;V0 Multiplicity;Collisions", 601, -0.5, 600.5); } fhVertexZB = new TH1F("VertexZB", "Vertex Z; z_{vtx}", 60, -15, 15); @@ -476,6 +482,8 @@ struct DptDptFilter { /* add the hstograms to the output list */ fOutputList->Add(fhCentMultB); fOutputList->Add(fhCentMultA); + fOutputList->Add(fhMultB); + fOutputList->Add(fhMultA); fOutputList->Add(fhVertexZB); fOutputList->Add(fhVertexZA); fOutputList->Add(fhPB); @@ -726,7 +734,7 @@ void DptDptFilter::filterParticles(ParticleListObject const& particles, MCCollis } template -void DptDptFilter::filterTracks(TrackListObject const& ftracks, int colix) +void DptDptFilter::filterTracks(TrackListObject const&, int) { LOGF(fatal, "Track filtering not implemented for the passed track table"); } @@ -806,13 +814,17 @@ void DptDptFilter::processReconstructed(CollisionObject const& collision, Tracks LOGF(DPTDPTFILTERLOGCOLLISIONS, "DptDptFilterTask::processReconstructed(). New collision with %d tracks", ftracks.size()); + float mult = extractMultiplicity(collision); + fhCentMultB->Fill(passedcent); + fhMultB->Fill(mult); fhVertexZB->Fill(collision.posZ()); bool acceptedevent = false; float centormult = passedcent; if (IsEvtSelected(collision, centormult)) { acceptedevent = true; fhCentMultA->Fill(centormult); + fhMultA->Fill(mult); fhVertexZA->Fill(collision.posZ()); acceptedcollisions(collision.bcId(), collision.posZ(), acceptedevent, centormult); diff --git a/PWGCF/TableProducer/dptdptfilter.h b/PWGCF/TableProducer/dptdptfilter.h index 57e1ad05a25..92b0e56fc95 100644 --- a/PWGCF/TableProducer/dptdptfilter.h +++ b/PWGCF/TableProducer/dptdptfilter.h @@ -14,6 +14,7 @@ #include "Framework/AnalysisTask.h" #include "Framework/AnalysisDataModel.h" #include "Common/DataModel/EventSelection.h" +#include "Common/DataModel/Multiplicity.h" #include "Common/DataModel/Centrality.h" #include "Common/DataModel/TrackSelectionTables.h" #include "Common/Core/TrackSelection.h" @@ -25,10 +26,10 @@ namespace o2 { namespace aod { -using CollisionsEvSelCent = soa::Join; -using CollisionEvSelCent = soa::Join::iterator; -using CollisionsEvSel = soa::Join; -using CollisionEvSel = soa::Join::iterator; +using CollisionsEvSelCent = soa::Join; +using CollisionEvSelCent = soa::Join::iterator; +using CollisionsEvSel = soa::Join; +using CollisionEvSel = soa::Join::iterator; using TrackData = soa::Join::iterator; } // namespace aod namespace analysis @@ -196,7 +197,7 @@ inline bool triggerSelectionReco(CollisionObject const& collision) /// \brief Trigger selection by default: unknow subscribed collision table template -inline bool triggerSelection(CollisionObject const& collision) +inline bool triggerSelection(CollisionObject const&) { LOGF(fatal, "Trigger selection not implemented for this kind of collisions"); return false; @@ -232,11 +233,39 @@ inline bool triggerSelection -inline bool triggerSelection(aod::McCollision const& collision) +inline bool triggerSelection(aod::McCollision const&) { return true; } +////////////////////////////////////////////////////////////////////////////////// +/// Multiplicity extraction +////////////////////////////////////////////////////////////////////////////////// + +/// \brief Extract the collision multiplicity from the event selection information +template +inline float extractMultiplicity(CollisionObject const& collision) +{ + float mult = 0.0; + switch (fSystem) { + case kpp: + case kpPb: + case kPbp: + case kPbPb: + case kXeXe: + /* for the time being let's extract V0M */ + mult = collision.multV0M(); + break; + case kppRun3: + /* for the time being let's extract T0M */ + mult = collision.multT0M(); + break; + default: + break; + } + return mult; +} + ////////////////////////////////////////////////////////////////////////////////// /// Centrality selection ////////////////////////////////////////////////////////////////////////////////// @@ -277,7 +306,7 @@ inline bool centralitySelectionNoMult(CollisionObject collision, float& centmult /// \brief Centrality selection by default: unknown subscribed collision table template -inline bool centralitySelection(CollisionObject const& collision, float& centmult) +inline bool centralitySelection(CollisionObject const&, float&) { LOGF(fatal, "Centrality selection not implemented for this kind of collisions"); return false;