Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 13 additions & 1 deletion PWGCF/TableProducer/dptdptfilter.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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);
Expand Down Expand Up @@ -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);
Expand Down Expand Up @@ -726,7 +734,7 @@ void DptDptFilter::filterParticles(ParticleListObject const& particles, MCCollis
}

template <typename TrackListObject>
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");
}
Expand Down Expand Up @@ -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);

Expand Down
43 changes: 36 additions & 7 deletions PWGCF/TableProducer/dptdptfilter.h
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand All @@ -25,10 +26,10 @@ namespace o2
{
namespace aod
{
using CollisionsEvSelCent = soa::Join<aod::Collisions, aod::EvSels, aod::CentV0Ms>;
using CollisionEvSelCent = soa::Join<aod::Collisions, aod::EvSels, aod::CentV0Ms>::iterator;
using CollisionsEvSel = soa::Join<aod::Collisions, aod::EvSels>;
using CollisionEvSel = soa::Join<aod::Collisions, aod::EvSels>::iterator;
using CollisionsEvSelCent = soa::Join<aod::Collisions, aod::Mults, aod::EvSels, aod::CentV0Ms>;
using CollisionEvSelCent = soa::Join<aod::Collisions, aod::Mults, aod::EvSels, aod::CentV0Ms>::iterator;
using CollisionsEvSel = soa::Join<aod::Collisions, aod::Mults, aod::EvSels>;
using CollisionEvSel = soa::Join<aod::Collisions, aod::Mults, aod::EvSels>::iterator;
using TrackData = soa::Join<aod::Tracks, aod::TracksCov, aod::TracksExtra, aod::TracksExtended, aod::TrackSelection>::iterator;
} // namespace aod
namespace analysis
Expand Down Expand Up @@ -196,7 +197,7 @@ inline bool triggerSelectionReco(CollisionObject const& collision)

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

/// \brief Trigger selection for generator level collison table
template <>
inline bool triggerSelection<aod::McCollision>(aod::McCollision const& collision)
inline bool triggerSelection<aod::McCollision>(aod::McCollision const&)
{
return true;
}

//////////////////////////////////////////////////////////////////////////////////
/// Multiplicity extraction
//////////////////////////////////////////////////////////////////////////////////

/// \brief Extract the collision multiplicity from the event selection information
template <typename CollisionObject>
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
//////////////////////////////////////////////////////////////////////////////////
Expand Down Expand Up @@ -277,7 +306,7 @@ inline bool centralitySelectionNoMult(CollisionObject collision, float& centmult

/// \brief Centrality selection by default: unknown subscribed collision table
template <typename CollisionObject>
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;
Expand Down