Skip to content
Merged
98 changes: 38 additions & 60 deletions PWGMM/Mult/Tasks/dndeta-mft-pbpb.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -259,7 +259,7 @@
{HistType::kTH3F, {PhiAxis, EtaAxis, CentAxis}}});
QAregistry.add({"Events/Centrality/hcentFT0C",
" ; cent FT0C",
{HistType::kTH1F, {{1000, 0, 100}}},
{HistType::kTH1F, {CentAxis}},
true});
QAregistry.add(
{"Tracks/Centrality/Chi2Eta",
Expand Down Expand Up @@ -505,11 +505,6 @@
}
}

/// Filters - collision
Filter filterCollCent = nabs(aod::cent::centFT0C) < cfgCutCent;
Filter filterCollZvtx = nabs(aod::collision::posZ) < cfgCutZvtx;
Filter filterMcCollZvtx = nabs(aod::mccollision::posZ) < cfgCutZvtx;

/// Filters - tracks
Filter filtTrkEta = (aod::fwdtrack::eta < trkcuts.cfg_eta_max) &&
(aod::fwdtrack::eta > trkcuts.cfg_eta_min);
Expand All @@ -536,28 +531,9 @@
using MFTTracksLabeled = soa::Join<o2::aod::MFTTracks, aod::McMFTTrackLabels>;

/// Filtered tables
using filtColls = soa::Filtered<soa::Join<aod::Collisions, aod::EvSels>>;
using filtColl =
soa::Filtered<soa::Join<aod::Collisions, aod::EvSels>>::iterator;
using filtCollsCent =
soa::Filtered<soa::Join<aod::Collisions, aod::CentFT0Cs, aod::EvSels>>;
using filtCollCent = soa::Filtered<
soa::Join<aod::Collisions, aod::CentFT0Cs, aod::EvSels>>::iterator;
using CollsGenCentSmallG =
o2::soa::SmallGroups<soa::Join<aod::McCollisionLabels, aod::Collisions,
aod::CentFT0Cs, aod::EvSels>>;
using filtCollsGenCentSmallG =
soa::SmallGroups<soa::Join<aod::McCollisionLabels, filtCollsCent>>;
using filtCollsGenCent =
soa::Filtered<soa::Join<aod::McCollisionLabels, aod::Collisions,
aod::CentFT0Cs, aod::EvSels>>;
using filtMcGenColls = soa::Filtered<aod::McCollisions>;
using filtMcGenColl = soa::Filtered<aod::McCollisions>::iterator;
using filtMftTracks = soa::Filtered<aod::MFTTracks>;
using filtMcMftTracks = soa::Filtered<MFTTracksLabeled>;
using filtBestTracks = soa::Filtered<aod::BestCollisionsFwd>;
using filtBestTracksJ =
soa::Filtered<soa::Join<aod::BestCollisionsFwd, aod::MFTTracks>>;
using filtParticles = soa::Filtered<aod::McParticles>;

template <typename T>
Expand All @@ -574,14 +550,14 @@
if (usePhiCut) {
float phi = track.phi();
o2::math_utils::bringTo02Pi(phi);
if (phi < 0.f || 2.f * M_PI < phi) {

Check warning on line 553 in PWGMM/Mult/Tasks/dndeta-mft-pbpb.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[external-pi]

Consider using the PI constant (and its multiples and fractions) defined in o2::constants::math.

Check warning on line 553 in PWGMM/Mult/Tasks/dndeta-mft-pbpb.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[pi-multiple-fraction]

Consider using multiples/fractions of PI defined in o2::constants::math.
return false;
}
if ((phi < cfgPhiCut) ||
((phi > M_PI - cfgPhiCut) && (phi < M_PI + cfgPhiCut)) ||

Check warning on line 557 in PWGMM/Mult/Tasks/dndeta-mft-pbpb.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[external-pi]

Consider using the PI constant (and its multiples and fractions) defined in o2::constants::math.
(phi > 2. * M_PI - cfgPhiCut) ||

Check warning on line 558 in PWGMM/Mult/Tasks/dndeta-mft-pbpb.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[external-pi]

Consider using the PI constant (and its multiples and fractions) defined in o2::constants::math.
((phi > ((M_PI / 2. - 0.1) * M_PI) - cfgPhiCut) &&

Check warning on line 559 in PWGMM/Mult/Tasks/dndeta-mft-pbpb.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[external-pi]

Consider using the PI constant (and its multiples and fractions) defined in o2::constants::math.
(phi < ((M_PI / 2. - 0.1) * M_PI) + cfgPhiCut)))

Check warning on line 560 in PWGMM/Mult/Tasks/dndeta-mft-pbpb.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[external-pi]

Consider using the PI constant (and its multiples and fractions) defined in o2::constants::math.
return false;
}
return true;
Expand Down Expand Up @@ -613,7 +589,7 @@
if (fillHis) {
float phi = track.phi();
o2::math_utils::bringTo02Pi(phi);
if (phi < 0.f || 2.f * M_PI < phi) {

Check warning on line 592 in PWGMM/Mult/Tasks/dndeta-mft-pbpb.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[external-pi]

Consider using the PI constant (and its multiples and fractions) defined in o2::constants::math.
continue;
}
if constexpr (C::template contains<aod::CentFT0Cs>()) {
Expand Down Expand Up @@ -647,7 +623,7 @@
if (fillHis) {
float phi = itrack.phi();
o2::math_utils::bringTo02Pi(phi);
if (phi < 0.f || 2.f * M_PI < phi) {

Check warning on line 626 in PWGMM/Mult/Tasks/dndeta-mft-pbpb.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[external-pi]

Consider using the PI constant (and its multiples and fractions) defined in o2::constants::math.
continue;
}
if constexpr (C::template contains<aod::CentFT0Cs>()) {
Expand Down Expand Up @@ -789,7 +765,7 @@

float phi = particle.phi();
o2::math_utils::bringTo02Pi(phi);
if (phi < 0.f || 2.f * M_PI < phi) {

Check warning on line 768 in PWGMM/Mult/Tasks/dndeta-mft-pbpb.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[external-pi]

Consider using the PI constant (and its multiples and fractions) defined in o2::constants::math.
continue;
}
if constexpr (isCent) {
Expand All @@ -805,7 +781,7 @@
if (atLeastOne) {
float phi = particle.phi();
o2::math_utils::bringTo02Pi(phi);
if (phi < 0.f || 2.f * M_PI < phi) {

Check warning on line 784 in PWGMM/Mult/Tasks/dndeta-mft-pbpb.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[external-pi]

Consider using the PI constant (and its multiples and fractions) defined in o2::constants::math.
continue;
}
if constexpr (isCent) {
Expand Down Expand Up @@ -921,20 +897,20 @@
}

/// @brief process fnc. to run on DATA and REC MC w/o centrality selection
void processDataInclusive(filtColls::iterator const& collision,
void processDataInclusive(Colls::iterator const& collision,
filtMftTracks const& tracks)
{
processData<filtColls>(collision, tracks);
processData<Colls>(collision, tracks);
}

PROCESS_SWITCH(PseudorapidityDensityMFT, processDataInclusive, "Count tracks",
false);

/// @brief process fnc. to run on DATA and REC MC w/ FT0C centrality selection
void processDataCent(filtCollsCent::iterator const& collision,
void processDataCent(CollsCent::iterator const& collision,
filtMftTracks const& tracks)
{
processData<filtCollsCent>(collision, tracks);
processData<CollsCent>(collision, tracks);
}

PROCESS_SWITCH(PseudorapidityDensityMFT, processDataCent,
Expand All @@ -943,10 +919,10 @@
/// @brief process fnc. to run on DATA and REC MC based on BestCollisionsFwd
/// table w/o centrality selection
void processDatawBestTracksInclusive(
filtColls::iterator const& collision, filtMftTracks const& tracks,
Colls::iterator const& collision, filtMftTracks const& tracks,
soa::SmallGroups<aod::BestCollisionsFwd> const& besttracks)
{
processDatawBestTracks<filtColls>(collision, tracks, besttracks);
processDatawBestTracks<Colls>(collision, tracks, besttracks);
}

PROCESS_SWITCH(PseudorapidityDensityMFT, processDatawBestTracksInclusive,
Expand All @@ -955,10 +931,10 @@
/// @brief process fnc. to run on DATA and REC MC based on BestCollisionsFwd
/// table w/ FT0C centrality selection
void processDatawBestTracksCent(
filtCollsCent::iterator const& collision, filtMftTracks const& tracks,
CollsCent::iterator const& collision, filtMftTracks const& tracks,
soa::SmallGroups<aod::BestCollisionsFwd> const& besttracks)
{
processDatawBestTracks<filtCollsCent>(collision, tracks, besttracks);
processDatawBestTracks<CollsCent>(collision, tracks, besttracks);
}

PROCESS_SWITCH(PseudorapidityDensityMFT, processDatawBestTracksCent,
Expand Down Expand Up @@ -1077,25 +1053,25 @@

/// @brief process fnc. to run on MC w/o centrality selection
void processMCInclusive(
filtMcGenColls::iterator const& mccollision,
soa::SmallGroups<soa::Join<filtColls, aod::McCollisionLabels>> const& collisions,
aod::McCollisions::iterator const& mccollision,
soa::SmallGroups<soa::Join<Colls, aod::McCollisionLabels>> const& collisions,
filtParticles const& particles, filtMcMftTracks const& tracks)
{
processMC<filtMcGenColls, filtColls>(mccollision, collisions, particles,
tracks);
processMC<aod::McCollisions, Colls>(mccollision, collisions, particles,
tracks);
}

PROCESS_SWITCH(PseudorapidityDensityMFT, processMCInclusive,
"Count MC particles", false);

/// @brief process fnc. to run on MC w FT0C centrality selection
void processMCCent(
filtMcGenColls::iterator const& mccollision,
soa::SmallGroups<soa::Join<filtCollsCent, aod::McCollisionLabels>> const& collisions,
aod::McCollisions::iterator const& mccollision,
soa::SmallGroups<soa::Join<CollsCent, aod::McCollisionLabels>> const& collisions,
filtParticles const& particles, filtMcMftTracks const& tracks)
{
processMC<filtMcGenColls, filtCollsCent>(mccollision, collisions, particles,
tracks);
processMC<aod::McCollisions, CollsCent>(mccollision, collisions, particles,
tracks);
}

PROCESS_SWITCH(PseudorapidityDensityMFT, processMCCent,
Expand Down Expand Up @@ -1189,14 +1165,14 @@
/// @brief process fnc. to run on MC (inclusive, using aod::BestCollisionsFwd
/// tracks)
void processMCwBestTracksInclusive(
filtMcGenColls::iterator const& mccollision,
soa::SmallGroups<soa::Join<filtColls, aod::McCollisionLabels>> const& collisions,
aod::McCollisions::iterator const& mccollision,
soa::SmallGroups<soa::Join<Colls, aod::McCollisionLabels>> const& collisions,
filtParticles const& particles, filtMcMftTracks const& tracks,
// aod::BestCollisionsFwd const
// &besttracks
filtBestTracks const& besttracks)
{
processMCwBestTracks<filtMcGenColls, filtColls>(
processMCwBestTracks<aod::McCollisions, Colls>(
mccollision, collisions, particles, tracks, besttracks);
}

Expand All @@ -1206,12 +1182,12 @@
/// @brief process fnc. to run on MC (FT0C centrality, using
/// aod::BestCollisionsFwd tracks)
void processMCwBestTracksCent(
filtMcGenColls::iterator const& mccollision,
soa::SmallGroups<soa::Join<filtCollsCent, aod::McCollisionLabels>> const& collisions,
aod::McCollisions::iterator const& mccollision,
soa::SmallGroups<soa::Join<CollsCent, aod::McCollisionLabels>> const& collisions,
filtParticles const& particles, filtMcMftTracks const& tracks,
filtBestTracks const& besttracks)
{
processMCwBestTracks<filtMcGenColls, filtCollsCent>(
processMCwBestTracks<aod::McCollisions, CollsCent>(
mccollision, collisions, particles, tracks, besttracks);
}

Expand Down Expand Up @@ -1463,18 +1439,21 @@
template <typename C>
void processMcQA(
typename soa::SmallGroups<soa::Join<C, aod::McCollisionLabels>> const& collisions,
filtMcGenColls const& mcCollisions, filtParticles const& /*particles*/,
MFTTracksLabeled const& tracks, aod::AmbiguousMFTTracks const& atracks)
aod::McCollisions const& mcCollisions,
filtParticles const& /*particles*/, MFTTracksLabeled const& tracks,
aod::AmbiguousMFTTracks const& atracks)
{
for (const auto& collision : collisions) {
float c_rec = -1;
if constexpr (C::template contains<aod::CentFT0Cs>()) {
c_rec = collision.centFT0C();
QAregistry.fill(HIST("Events/Centrality/hRecPerGenColls"),
static_cast<float>(collisions.size()) / mcCollisions.size(), c_rec);
QAregistry.fill(
HIST("Events/Centrality/hRecPerGenColls"),
static_cast<float>(collisions.size()) / mcCollisions.size(), c_rec);
} else {
QAregistry.fill(HIST("Events/hRecPerGenColls"),
static_cast<float>(collisions.size()) / mcCollisions.size());
static_cast<float>(collisions.size()) /
mcCollisions.size());
}

if (!isGoodEvent<false>(collision)) {
Expand Down Expand Up @@ -1506,25 +1485,24 @@

/// @brief process function for QA checks (inclusive)
void processMcQAInclusive(
soa::SmallGroups<soa::Join<filtColls, aod::McCollisionLabels>> const& collisions,
filtMcGenColls const& mcCollisions, filtParticles const& particles,
soa::SmallGroups<soa::Join<Colls, aod::McCollisionLabels>> const& collisions,
aod::McCollisions const& mcCollisions, filtParticles const& particles,
MFTTracksLabeled const& tracks, aod::AmbiguousMFTTracks const& atracks)
{
processMcQA<filtColls>(collisions, mcCollisions, particles, tracks,
atracks);
processMcQA<Colls>(collisions, mcCollisions, particles, tracks, atracks);
}

PROCESS_SWITCH(PseudorapidityDensityMFT, processMcQAInclusive,
"Process MC QA checks (inclusive)", false);

/// @brief process function for QA checks (in FT0 bins)
void processMcQACent(
soa::SmallGroups<soa::Join<filtCollsCent, aod::McCollisionLabels>> const& collisions,
filtMcGenColls const& mcCollisions, filtParticles const& particles,
soa::SmallGroups<soa::Join<CollsCent, aod::McCollisionLabels>> const& collisions,
aod::McCollisions const& mcCollisions, filtParticles const& particles,
MFTTracksLabeled const& tracks, aod::AmbiguousMFTTracks const& atracks)
{
processMcQA<filtCollsCent>(collisions, mcCollisions, particles, tracks,
atracks);
processMcQA<CollsCent>(collisions, mcCollisions, particles, tracks,
atracks);
}

PROCESS_SWITCH(PseudorapidityDensityMFT, processMcQACent,
Expand Down
Loading