Skip to content

Commit 4d34755

Browse files
authored
[PWGLF,PWGMM] Remove particle filtering for MC efficiencies (#18399)
1 parent dc62da0 commit 4d34755

1 file changed

Lines changed: 19 additions & 26 deletions

File tree

‎PWGMM/Mult/Tasks/dndetaMFTPbPb.cxx‎

Lines changed: 19 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@
3636
#include <Framework/AnalysisHelpers.h>
3737
#include <Framework/AnalysisTask.h>
3838
#include <Framework/Configurable.h>
39-
#include <Framework/DataTypes.h>
4039
#include <Framework/HistogramRegistry.h>
4140
#include <Framework/HistogramSpec.h>
4241
#include <Framework/InitContext.h>
@@ -81,7 +80,6 @@ using namespace o2::aod::rctsel;
8180
auto static constexpr CminCharge = 3.f;
8281
auto static constexpr CintZero = 0;
8382
auto static constexpr CintOne = 1;
84-
auto static constexpr CfloatFive = 5.f;
8583
auto static constexpr CInvalid = -999.f;
8684

8785
enum class EvtSel {
@@ -257,7 +255,7 @@ struct DndetaMFTPbPb {
257255
ConfigurableAxis fv0aMultBins{"fv0aMultBins", {501, -0.5, 500.5}, ""};
258256
ConfigurableAxis ft0aMultBins{"ft0aMultBins", {501, -0.5, 500.5}, ""};
259257
ConfigurableAxis ft0cMultBins{"ft0cMultBins", {501, -0.5, 500.5}, ""};
260-
ConfigurableAxis ptBins{"ptBins", {101, -0.5, 10.5}, "pT binning (GeV/c)"};
258+
ConfigurableAxis ptBins{"ptBins", {11, -0.5, 10.5}, "pT binning (GeV/c)"};
261259
ConfigurableAxis multBins{"multBins", {1001, -0.5, 1000.5}, "Multiplicity binning"};
262260
ConfigurableAxis zvtxBins{"zvtxBins", {60, -30., 30.}, "Z-vtx binning (cm)"};
263261
ConfigurableAxis deltaZBins{"deltaZBins", {800, -10., 10.}, "Delta Z-vtx binning (cm)"};
@@ -762,8 +760,6 @@ struct DndetaMFTPbPb {
762760
}
763761
}
764762

765-
/// Filters - particles
766-
Filter primaries = ifnode(nsqrt(aod::mcparticle::vx * aod::mcparticle::vx + aod::mcparticle::vy * aod::mcparticle::vy) > CfloatFive, false, ncheckbit(aod::mcparticle_v2::storedFlags, (uint8_t)o2::aod::mcparticle::enums::PhysicalPrimary));
767763
/// Joined tables
768764
using FullBCs = soa::Join<aod::BCsWithTimestamps, aod::BcSels>;
769765
using CollBCs = soa::Join<aod::BCsWithTimestamps, aod::BcSels, aod::Run3MatchedToBCSparse>;
@@ -781,7 +777,6 @@ struct DndetaMFTPbPb {
781777
using MftBestTracksLabeled = soa::Join<aod::MFTTracks, aod::BestCollisionsFwd3d, aod::McMFTTrackLabels>;
782778
/// Particles
783779
using ParticlesIdx = soa::Join<aod::McParticles, aod::ParticlesToMftTracks>;
784-
using FiltParticlesIdx = soa::Filtered<ParticlesIdx>;
785780

786781
template <typename T>
787782
float getDCAz(const T& track)
@@ -2310,13 +2305,11 @@ struct DndetaMFTPbPb {
23102305

23112306
PROCESS_SWITCH(DndetaMFTPbPb, processMcEfficiencyBestCentFT0C, "Process tracking efficiency (in FT0 centrality bins, based on BestCollisionsFwd3d)", false);
23122307

2313-
// Partition<ParticlesIdx> primariesIdx = ifnode(nsqrt(aod::mcparticle::vx * aod::mcparticle::vx + aod::mcparticle::vy * aod::mcparticle::vy) > 5.f, false, ncheckbit(aod::mcparticle_v2::storedFlags, (uint8_t)o2::aod::mcparticle::enums::PhysicalPrimary)) && (aod::mcparticle::eta < trackCuts.maxEta) && (aod::mcparticle::eta > trackCuts.minEta);
2314-
23152308
/// @brief process template function to calculate tracking efficiency (indexed as particle-to-MFT-tracks)
23162309
template <typename MC, typename C>
23172310
void processEfficiencyIdx(typename MC::iterator const& mcCollision,
23182311
soa::SmallGroups<soa::Join<C, aod::McCollisionLabels>> const& collisions,
2319-
FiltParticlesIdx const& particles,
2312+
ParticlesIdx const& particles,
23202313
MftTracksLabeled const& /*tracks*/)
23212314
{
23222315
LOGP(debug, "MC col {} has {} reco cols", mcCollision.globalIndex(), collisions.size());
@@ -2360,13 +2353,13 @@ struct DndetaMFTPbPb {
23602353
// MC gen
23612354
if constexpr (has_reco_cent<C>) {
23622355
if (particle.eta() > trackCuts.minEta && particle.eta() < trackCuts.maxEta) {
2363-
if (std::abs(mcCollision.posZ()) < eventCuts.maxZvtx) {
2356+
if (!eventCuts.useZVtxCutMC || std::abs(mcCollision.posZ()) < eventCuts.maxZvtx) {
23642357
registryMC.fill(HIST("Tracks/Centrality/hEffIdxGen"), particle.pt(), particle.eta(), static_cast<float>(GenIdxTrkType::kGenIdxAll), cGen, occRec);
23652358
}
23662359
}
23672360
} else {
23682361
if (particle.eta() > trackCuts.minEta && particle.eta() < trackCuts.maxEta) {
2369-
if (std::abs(mcCollision.posZ()) < eventCuts.maxZvtx) {
2362+
if (!eventCuts.useZVtxCutMC || std::abs(mcCollision.posZ()) < eventCuts.maxZvtx) {
23702363
registryMC.fill(HIST("Tracks/hEffIdxGen"), particle.pt(), particle.eta(), static_cast<float>(GenIdxTrkType::kGenIdxAll), occRec);
23712364
}
23722365
}
@@ -2387,7 +2380,7 @@ struct DndetaMFTPbPb {
23872380
if constexpr (has_reco_cent<C>) {
23882381
if (track.eta() > trackCuts.minEta && track.eta() < trackCuts.maxEta) {
23892382
if (!iscounted) { // primaries
2390-
if (std::abs(mcCollision.posZ()) < eventCuts.maxZvtx) {
2383+
if (!eventCuts.useZVtxCutMC || std::abs(mcCollision.posZ()) < eventCuts.maxZvtx) {
23912384
registryMC.fill(HIST("Tracks/Centrality/hEffIdxRec"), particle.pt(), particle.eta(), static_cast<float>(RecIdxTrkType::kRecIdxPrim), getRecoCent(collision), getOccupancy(collision, eventCuts.occupancyEstimator));
23922385
}
23932386
iscounted = true;
@@ -2402,7 +2395,7 @@ struct DndetaMFTPbPb {
24022395
} else {
24032396
if (track.eta() > trackCuts.minEta && track.eta() < trackCuts.maxEta) {
24042397
if (!iscounted) { // primaries
2405-
if (std::abs(mcCollision.posZ()) < eventCuts.maxZvtx) {
2398+
if (!eventCuts.useZVtxCutMC || std::abs(mcCollision.posZ()) < eventCuts.maxZvtx) {
24062399
registryMC.fill(HIST("Tracks/hEffIdxRec"), particle.pt(), particle.eta(), static_cast<float>(RecIdxTrkType::kRecIdxPrim), occRec);
24072400
}
24082401
iscounted = true;
@@ -2433,13 +2426,13 @@ struct DndetaMFTPbPb {
24332426
// MC FAKES
24342427
if constexpr (has_reco_cent<C>) {
24352428
if (particle.eta() > trackCuts.minEta && particle.eta() < trackCuts.maxEta) {
2436-
if (std::abs(mcCollision.posZ()) < eventCuts.maxZvtx) {
2429+
if (!eventCuts.useZVtxCutMC || std::abs(mcCollision.posZ()) < eventCuts.maxZvtx) {
24372430
registryMC.fill(HIST("Tracks/Centrality/hEffIdxGen"), particle.pt(), particle.eta(), static_cast<float>(GenIdxTrkType::kGenIdxFake), cGen, occRec);
24382431
}
24392432
}
24402433
} else {
24412434
if (particle.eta() > trackCuts.minEta && particle.eta() < trackCuts.maxEta) {
2442-
if (std::abs(mcCollision.posZ()) < eventCuts.maxZvtx) {
2435+
if (!eventCuts.useZVtxCutMC || std::abs(mcCollision.posZ()) < eventCuts.maxZvtx) {
24432436
registryMC.fill(HIST("Tracks/hEffIdxGen"), particle.pt(), particle.eta(), static_cast<float>(GenIdxTrkType::kGenIdxFake), occRec);
24442437
}
24452438
}
@@ -2451,7 +2444,7 @@ struct DndetaMFTPbPb {
24512444

24522445
void processMcEfficiencyIdxInlusive(CollsMCExtraMult::iterator const& mccollision,
24532446
soa::SmallGroups<soa::Join<Colls, aod::McCollisionLabels>> const& collisions,
2454-
FiltParticlesIdx const& particles,
2447+
ParticlesIdx const& particles,
24552448
MftTracksLabeled const& tracks)
24562449
{
24572450
processEfficiencyIdx<CollsMCExtraMult, Colls>(mccollision, collisions, particles, tracks);
@@ -2461,7 +2454,7 @@ struct DndetaMFTPbPb {
24612454

24622455
void processMcEfficiencyIdxCentFT0C(CollsMCExtraMult::iterator const& mccollision,
24632456
soa::SmallGroups<soa::Join<CollsCentFT0C, aod::McCollisionLabels>> const& collisions,
2464-
FiltParticlesIdx const& particles,
2457+
ParticlesIdx const& particles,
24652458
MftTracksLabeled const& tracks)
24662459
{
24672460
processEfficiencyIdx<CollsMCExtraMult, CollsCentFT0C>(mccollision, collisions, particles, tracks);
@@ -2472,7 +2465,7 @@ struct DndetaMFTPbPb {
24722465
template <typename MC, typename C>
24732466
void processEfficiencyIdxBest(typename MC::iterator const& mcCollision,
24742467
soa::SmallGroups<soa::Join<C, aod::McCollisionLabels>> const& collisions,
2475-
FiltParticlesIdx const& particles,
2468+
ParticlesIdx const& particles,
24762469
MftBestTracksLabeled const& /*atracks*/)
24772470
{
24782471
LOGP(debug, "MC col {} has {} reco cols", mcCollision.globalIndex(), collisions.size());
@@ -2519,13 +2512,13 @@ struct DndetaMFTPbPb {
25192512
// MC gen
25202513
if constexpr (has_reco_cent<C>) {
25212514
if (particle.eta() > trackCuts.minEta && particle.eta() < trackCuts.maxEta) {
2522-
if (std::abs(mcCollision.posZ()) < eventCuts.maxZvtx) {
2515+
if (!eventCuts.useZVtxCutMC || std::abs(mcCollision.posZ()) < eventCuts.maxZvtx) {
25232516
registryMC.fill(HIST("Tracks/Centrality/hEffIdxGen"), particle.pt(), particle.eta(), static_cast<float>(GenIdxTrkType::kGenIdxAll), cGen, occRec);
25242517
}
25252518
}
25262519
} else {
25272520
if (particle.eta() > trackCuts.minEta && particle.eta() < trackCuts.maxEta) {
2528-
if (std::abs(mcCollision.posZ()) < eventCuts.maxZvtx) {
2521+
if (!eventCuts.useZVtxCutMC || std::abs(mcCollision.posZ()) < eventCuts.maxZvtx) {
25292522
registryMC.fill(HIST("Tracks/hEffIdxGen"), particle.pt(), particle.eta(), static_cast<float>(GenIdxTrkType::kGenIdxAll), occRec);
25302523
}
25312524
}
@@ -2554,7 +2547,7 @@ struct DndetaMFTPbPb {
25542547
if constexpr (has_reco_cent<C>) {
25552548
if (atrack.eta() > trackCuts.minEta && atrack.eta() < trackCuts.maxEta) {
25562549
if (!iscounted) { // primaries
2557-
if (std::abs(mcCollision.posZ()) < eventCuts.maxZvtx) {
2550+
if (!eventCuts.useZVtxCutMC || std::abs(mcCollision.posZ()) < eventCuts.maxZvtx) {
25582551
registryMC.fill(HIST("Tracks/Centrality/hEffIdxRec"), particle.pt(), particle.eta(), static_cast<float>(RecIdxTrkType::kRecIdxPrim), getRecoCent(collision), getOccupancy(collision, eventCuts.occupancyEstimator));
25592552
}
25602553
iscounted = true;
@@ -2569,7 +2562,7 @@ struct DndetaMFTPbPb {
25692562
} else {
25702563
if (atrack.eta() > trackCuts.minEta && atrack.eta() < trackCuts.maxEta) {
25712564
if (!iscounted) { // primaries
2572-
if (std::abs(mcCollision.posZ()) < eventCuts.maxZvtx) {
2565+
if (!eventCuts.useZVtxCutMC || std::abs(mcCollision.posZ()) < eventCuts.maxZvtx) {
25732566
registryMC.fill(HIST("Tracks/hEffIdxRec"), particle.pt(), particle.eta(), static_cast<float>(RecIdxTrkType::kRecIdxPrim), occRec);
25742567
}
25752568
iscounted = true;
@@ -2600,13 +2593,13 @@ struct DndetaMFTPbPb {
26002593
// MC FAKES
26012594
if constexpr (has_reco_cent<C>) {
26022595
if (particle.eta() > trackCuts.minEta && particle.eta() < trackCuts.maxEta) {
2603-
if (std::abs(mcCollision.posZ()) < eventCuts.maxZvtx) {
2596+
if (!eventCuts.useZVtxCutMC || std::abs(mcCollision.posZ()) < eventCuts.maxZvtx) {
26042597
registryMC.fill(HIST("Tracks/Centrality/hEffIdxGen"), particle.pt(), particle.eta(), static_cast<float>(GenIdxTrkType::kGenIdxFake), cGen, occRec);
26052598
}
26062599
}
26072600
} else {
26082601
if (particle.eta() > trackCuts.minEta && particle.eta() < trackCuts.maxEta) {
2609-
if (std::abs(mcCollision.posZ()) < eventCuts.maxZvtx) {
2602+
if (!eventCuts.useZVtxCutMC || std::abs(mcCollision.posZ()) < eventCuts.maxZvtx) {
26102603
registryMC.fill(HIST("Tracks/hEffIdxGen"), particle.pt(), particle.eta(), static_cast<float>(GenIdxTrkType::kGenIdxFake), occRec);
26112604
}
26122605
}
@@ -2618,7 +2611,7 @@ struct DndetaMFTPbPb {
26182611

26192612
void processMcEfficiencyIdxBestInlusive(CollsMCExtraMult::iterator const& mccollision,
26202613
soa::SmallGroups<soa::Join<Colls, aod::McCollisionLabels>> const& collisions,
2621-
FiltParticlesIdx const& particles,
2614+
ParticlesIdx const& particles,
26222615
MftBestTracksLabeled const& atracks)
26232616
{
26242617
processEfficiencyIdxBest<CollsMCExtraMult, Colls>(mccollision, collisions, particles, atracks);
@@ -2628,7 +2621,7 @@ struct DndetaMFTPbPb {
26282621

26292622
void processMcEfficiencyIdxBestCentFT0C(CollsMCExtraMult::iterator const& mccollision,
26302623
soa::SmallGroups<soa::Join<CollsCentFT0C, aod::McCollisionLabels>> const& collisions,
2631-
FiltParticlesIdx const& particles,
2624+
ParticlesIdx const& particles,
26322625
MftBestTracksLabeled const& atracks)
26332626
{
26342627
processEfficiencyIdxBest<CollsMCExtraMult, CollsCentFT0C>(mccollision, collisions, particles, atracks);

0 commit comments

Comments
 (0)