Skip to content

Commit db4d43a

Browse files
Tracking the collision mutltiplicity (#453)
Also fixing few warnings on not used parameters
1 parent 9ee1ce6 commit db4d43a

2 files changed

Lines changed: 49 additions & 8 deletions

File tree

PWGCF/TableProducer/dptdptfilter.cxx

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,8 @@ TH1F* fhCentMultB = nullptr;
7777
TH1F* fhCentMultA = nullptr;
7878
TH1F* fhVertexZB = nullptr;
7979
TH1F* fhVertexZA = nullptr;
80+
TH1F* fhMultB = nullptr;
81+
TH1F* fhMultA = nullptr;
8082
TH1F* fhPB = nullptr;
8183
TH1F* fhPA[kDptDptNoOfSpecies] = {nullptr};
8284
TH1F* fhPtB = nullptr;
@@ -430,10 +432,14 @@ struct DptDptFilter {
430432
if (fSystem > kPbp) {
431433
fhCentMultB = new TH1F("CentralityB", "Centrality before cut; centrality (%)", 100, 0, 100);
432434
fhCentMultA = new TH1F("CentralityA", "Centrality; centrality (%)", 100, 0, 100);
435+
fhMultB = new TH1F("V0MB", "V0 Multiplicity before cut;V0 Multiplicity;Collisions", 4001, -0.5, 4000.5);
436+
fhMultA = new TH1F("V0MA", "V0 Multiplicity;V0 Multiplicity;Collisions", 4001, -0.5, 4000.5);
433437
} else {
434438
/* for pp, pPb and Pbp systems use multiplicity instead */
435439
fhCentMultB = new TH1F("MultiplicityB", "Multiplicity before cut; multiplicity (%)", 100, 0, 100);
436440
fhCentMultA = new TH1F("MultiplicityA", "Multiplicity; multiplicity (%)", 100, 0, 100);
441+
fhMultB = new TH1F("V0MB", "V0 Multiplicity before cut;V0 Multiplicity;Collisions", 601, -0.5, 600.5);
442+
fhMultA = new TH1F("V0MA", "V0 Multiplicity;V0 Multiplicity;Collisions", 601, -0.5, 600.5);
437443
}
438444

439445
fhVertexZB = new TH1F("VertexZB", "Vertex Z; z_{vtx}", 60, -15, 15);
@@ -476,6 +482,8 @@ struct DptDptFilter {
476482
/* add the hstograms to the output list */
477483
fOutputList->Add(fhCentMultB);
478484
fOutputList->Add(fhCentMultA);
485+
fOutputList->Add(fhMultB);
486+
fOutputList->Add(fhMultA);
479487
fOutputList->Add(fhVertexZB);
480488
fOutputList->Add(fhVertexZA);
481489
fOutputList->Add(fhPB);
@@ -726,7 +734,7 @@ void DptDptFilter::filterParticles(ParticleListObject const& particles, MCCollis
726734
}
727735

728736
template <typename TrackListObject>
729-
void DptDptFilter::filterTracks(TrackListObject const& ftracks, int colix)
737+
void DptDptFilter::filterTracks(TrackListObject const&, int)
730738
{
731739
LOGF(fatal, "Track filtering not implemented for the passed track table");
732740
}
@@ -806,13 +814,17 @@ void DptDptFilter::processReconstructed(CollisionObject const& collision, Tracks
806814

807815
LOGF(DPTDPTFILTERLOGCOLLISIONS, "DptDptFilterTask::processReconstructed(). New collision with %d tracks", ftracks.size());
808816

817+
float mult = extractMultiplicity(collision);
818+
809819
fhCentMultB->Fill(passedcent);
820+
fhMultB->Fill(mult);
810821
fhVertexZB->Fill(collision.posZ());
811822
bool acceptedevent = false;
812823
float centormult = passedcent;
813824
if (IsEvtSelected(collision, centormult)) {
814825
acceptedevent = true;
815826
fhCentMultA->Fill(centormult);
827+
fhMultA->Fill(mult);
816828
fhVertexZA->Fill(collision.posZ());
817829
acceptedcollisions(collision.bcId(), collision.posZ(), acceptedevent, centormult);
818830

PWGCF/TableProducer/dptdptfilter.h

Lines changed: 36 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
#include "Framework/AnalysisTask.h"
1515
#include "Framework/AnalysisDataModel.h"
1616
#include "Common/DataModel/EventSelection.h"
17+
#include "Common/DataModel/Multiplicity.h"
1718
#include "Common/DataModel/Centrality.h"
1819
#include "Common/DataModel/TrackSelectionTables.h"
1920
#include "Common/Core/TrackSelection.h"
@@ -25,10 +26,10 @@ namespace o2
2526
{
2627
namespace aod
2728
{
28-
using CollisionsEvSelCent = soa::Join<aod::Collisions, aod::EvSels, aod::CentV0Ms>;
29-
using CollisionEvSelCent = soa::Join<aod::Collisions, aod::EvSels, aod::CentV0Ms>::iterator;
30-
using CollisionsEvSel = soa::Join<aod::Collisions, aod::EvSels>;
31-
using CollisionEvSel = soa::Join<aod::Collisions, aod::EvSels>::iterator;
29+
using CollisionsEvSelCent = soa::Join<aod::Collisions, aod::Mults, aod::EvSels, aod::CentV0Ms>;
30+
using CollisionEvSelCent = soa::Join<aod::Collisions, aod::Mults, aod::EvSels, aod::CentV0Ms>::iterator;
31+
using CollisionsEvSel = soa::Join<aod::Collisions, aod::Mults, aod::EvSels>;
32+
using CollisionEvSel = soa::Join<aod::Collisions, aod::Mults, aod::EvSels>::iterator;
3233
using TrackData = soa::Join<aod::Tracks, aod::TracksCov, aod::TracksExtra, aod::TracksExtended, aod::TrackSelection>::iterator;
3334
} // namespace aod
3435
namespace analysis
@@ -196,7 +197,7 @@ inline bool triggerSelectionReco(CollisionObject const& collision)
196197

197198
/// \brief Trigger selection by default: unknow subscribed collision table
198199
template <typename CollisionObject>
199-
inline bool triggerSelection(CollisionObject const& collision)
200+
inline bool triggerSelection(CollisionObject const&)
200201
{
201202
LOGF(fatal, "Trigger selection not implemented for this kind of collisions");
202203
return false;
@@ -232,11 +233,39 @@ inline bool triggerSelection<soa::Join<aod::CollisionsEvSelCent, aod::McCollisio
232233

233234
/// \brief Trigger selection for generator level collison table
234235
template <>
235-
inline bool triggerSelection<aod::McCollision>(aod::McCollision const& collision)
236+
inline bool triggerSelection<aod::McCollision>(aod::McCollision const&)
236237
{
237238
return true;
238239
}
239240

241+
//////////////////////////////////////////////////////////////////////////////////
242+
/// Multiplicity extraction
243+
//////////////////////////////////////////////////////////////////////////////////
244+
245+
/// \brief Extract the collision multiplicity from the event selection information
246+
template <typename CollisionObject>
247+
inline float extractMultiplicity(CollisionObject const& collision)
248+
{
249+
float mult = 0.0;
250+
switch (fSystem) {
251+
case kpp:
252+
case kpPb:
253+
case kPbp:
254+
case kPbPb:
255+
case kXeXe:
256+
/* for the time being let's extract V0M */
257+
mult = collision.multV0M();
258+
break;
259+
case kppRun3:
260+
/* for the time being let's extract T0M */
261+
mult = collision.multT0M();
262+
break;
263+
default:
264+
break;
265+
}
266+
return mult;
267+
}
268+
240269
//////////////////////////////////////////////////////////////////////////////////
241270
/// Centrality selection
242271
//////////////////////////////////////////////////////////////////////////////////
@@ -277,7 +306,7 @@ inline bool centralitySelectionNoMult(CollisionObject collision, float& centmult
277306

278307
/// \brief Centrality selection by default: unknown subscribed collision table
279308
template <typename CollisionObject>
280-
inline bool centralitySelection(CollisionObject const& collision, float& centmult)
309+
inline bool centralitySelection(CollisionObject const&, float&)
281310
{
282311
LOGF(fatal, "Centrality selection not implemented for this kind of collisions");
283312
return false;

0 commit comments

Comments
 (0)