Skip to content

Commit 425c812

Browse files
authored
[PWGLF,PWGMM] Update phi selection for data and mc (#18296)
1 parent 3264d4a commit 425c812

1 file changed

Lines changed: 47 additions & 32 deletions

File tree

‎PWGMM/Mult/Tasks/dndetaMFTPbPb.cxx‎

Lines changed: 47 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@
4343
#include <Framework/O2DatabasePDGPlugin.h>
4444
#include <Framework/OutputObjHeader.h>
4545
#include <Framework/runDataProcessing.h>
46+
#include <MathUtils/Utils.h>
4647

4748
#include <TGeoGlobalMagField.h>
4849
#include <TH1.h>
@@ -108,6 +109,7 @@ enum class TrkSel {
108109
trkSelNCls,
109110
trkSelChi2Ncl,
110111
trkSelEta,
112+
trkSelPhi,
111113
trkSelPhiCut,
112114
trkSelPt,
113115
trkSelCA,
@@ -449,6 +451,7 @@ struct DndetaMFTPbPb {
449451
"Ncls",
450452
"Chi2",
451453
"Eta",
454+
"Phi",
452455
"Phi cut",
453456
"Pt",
454457
"CA"};
@@ -771,7 +774,6 @@ struct DndetaMFTPbPb {
771774
using CollsCorr = soa::Join<aod::Collisions, aod::EvSels, aod::Mults, aod::PVMults, aod::CentFT0Cs, aod::CentFV0As, aod::CentFT0CVariant1s, aod::CentFT0Ms, aod::CentNGlobals, aod::CentMFTs>;
772775
using CollsMCExtra = soa::Join<aod::McCollisions, aod::McCollsExtra>;
773776
using CollsMCExtraMult = soa::Join<aod::McCollisions, aod::MultMCExtras, aod::McCollsExtra>;
774-
775777
/// Tracks
776778
using MftTracksLabeled = soa::Join<aod::MFTTracks, aod::McMFTTrackLabels>;
777779
using MftBestTracksLabeled = soa::Join<aod::MFTTracks, aod::BestCollisionsFwd3d, aod::McMFTTrackLabels>;
@@ -977,8 +979,15 @@ struct DndetaMFTPbPb {
977979
if constexpr (fillHis) {
978980
registryQC.fill(HIST("Tracks/hTrkSel"), static_cast<int>(TrkSel::trkSelEta));
979981
}
982+
float phi = track.phi();
983+
o2::math_utils::bringTo02Pi(phi);
984+
if (phi < trackCuts.minPhi || trackCuts.maxPhi < phi) {
985+
return false;
986+
}
987+
if constexpr (fillHis) {
988+
registryQC.fill(HIST("Tracks/hTrkSel"), static_cast<int>(TrkSel::trkSelPhi));
989+
}
980990
if (trackCuts.usephiCut) {
981-
float phi = track.phi();
982991
if ((phi < trackCuts.phiCut) ||
983992
((phi > PI - trackCuts.phiCut) && (phi < PI + trackCuts.phiCut)) ||
984993
(phi > TwoPI - trackCuts.phiCut) ||
@@ -1023,14 +1032,16 @@ struct DndetaMFTPbPb {
10231032
continue;
10241033
}
10251034
if (fillHis) {
1035+
float phi = track.phi();
1036+
o2::math_utils::bringTo02Pi(phi);
10261037
if constexpr (has_reco_cent<C>) {
10271038
registryData.fill(HIST("Tracks/Centrality/EtaZvtx"), track.eta(), z, c, occ);
1028-
registryData.fill(HIST("Tracks/Centrality/PhiEta"), track.phi(), track.eta(), c, occ);
1039+
registryData.fill(HIST("Tracks/Centrality/PhiEta"), phi, track.eta(), c, occ);
10291040
registryData.fill(HIST("Tracks/Centrality/TanLambda"), track.tgl(), c, occ);
10301041
registryData.fill(HIST("Tracks/Centrality/InvQPt"), track.signed1Pt(), c, occ);
10311042
} else {
10321043
registryData.fill(HIST("Tracks/EtaZvtx"), track.eta(), z, occ);
1033-
registryData.fill(HIST("Tracks/PhiEta"), track.phi(), track.eta(), occ);
1044+
registryData.fill(HIST("Tracks/PhiEta"), phi, track.eta(), occ);
10341045
registryData.fill(HIST("Tracks/TanLambda"), track.tgl(), occ);
10351046
registryData.fill(HIST("Tracks/InvQPt"), track.signed1Pt(), occ);
10361047
}
@@ -1062,16 +1073,18 @@ struct DndetaMFTPbPb {
10621073
}
10631074
++nATrk;
10641075
if (fillHis) {
1076+
float phi = itrack.phi();
1077+
o2::math_utils::bringTo02Pi(phi);
10651078
if constexpr (has_reco_cent<C>) {
10661079
registryData.fill(HIST("Tracks/Centrality/EtaZvtx"), itrack.eta(), z, c, occ);
1067-
registryData.fill(HIST("Tracks/Centrality/PhiEta"), itrack.phi(), itrack.eta(), c, occ);
1080+
registryData.fill(HIST("Tracks/Centrality/PhiEta"), phi, itrack.eta(), c, occ);
10681081
registryData.fill(HIST("Tracks/Centrality/TanLambda"), itrack.tgl(), c, occ);
10691082
registryData.fill(HIST("Tracks/Centrality/InvQPt"), itrack.signed1Pt(), c, occ);
10701083
registryData.fill(HIST("Tracks/Centrality/DCA3d"), itrack.pt(), itrack.eta(), atrack.bestDCAXY(), bestDcaZ, c, occ);
10711084
registryData.fill(HIST("Tracks/Centrality/TrackAmbDegree"), atrack.ambDegree(), c, occ);
10721085
} else {
10731086
registryData.fill(HIST("Tracks/EtaZvtx"), itrack.eta(), z, occ);
1074-
registryData.fill(HIST("Tracks/PhiEta"), itrack.phi(), itrack.eta(), occ);
1087+
registryData.fill(HIST("Tracks/PhiEta"), phi, itrack.eta(), occ);
10751088
registryData.fill(HIST("Tracks/TanLambda"), itrack.tgl(), occ);
10761089
registryData.fill(HIST("Tracks/InvQPt"), itrack.signed1Pt(), occ);
10771090
registryData.fill(HIST("Tracks/DCA3d"), itrack.pt(), itrack.eta(), atrack.bestDCAXY(), bestDcaZ, occ);
@@ -1080,13 +1093,15 @@ struct DndetaMFTPbPb {
10801093
}
10811094
if (itrack.has_collision() && itrack.collisionId() != atrack.bestCollisionId()) {
10821095
if (fillHis) {
1096+
float phi = itrack.phi();
1097+
o2::math_utils::bringTo02Pi(phi);
10831098
registryQC.fill(HIST("Tracks/hBestTrkSel"), static_cast<int>(TrkBestSel::trkBestSelNumReassoc));
10841099
if constexpr (has_reco_cent<C>) {
10851100
registryData.fill(HIST("Tracks/Centrality/ReTracksEtaZvtx"), itrack.eta(), itrack.template collision_as<C>().posZ(), c, occ);
1086-
registryData.fill(HIST("Tracks/Centrality/ReTracksPhiEta"), itrack.phi(), itrack.eta(), c, occ);
1101+
registryData.fill(HIST("Tracks/Centrality/ReTracksPhiEta"), phi, itrack.eta(), c, occ);
10871102
} else {
10881103
registryData.fill(HIST("Tracks/ReTracksEtaZvtx"), itrack.eta(), itrack.template collision_as<C>().posZ(), occ);
1089-
registryData.fill(HIST("Tracks/ReTracksPhiEta"), itrack.phi(), itrack.eta(), occ);
1104+
registryData.fill(HIST("Tracks/ReTracksPhiEta"), phi, itrack.eta(), occ);
10901105
}
10911106
}
10921107
}
@@ -1175,8 +1190,12 @@ struct DndetaMFTPbPb {
11751190
if (particle.eta() < trackCuts.minEta || particle.eta() > trackCuts.maxEta) {
11761191
return false;
11771192
}
1193+
float phi = particle.phi();
1194+
o2::math_utils::bringTo02Pi(phi);
1195+
if (phi < trackCuts.minPhi || trackCuts.maxPhi < phi) {
1196+
return false;
1197+
}
11781198
if (trackCuts.usephiCut) {
1179-
float phi = particle.phi();
11801199
if ((phi < trackCuts.phiCut) ||
11811200
((phi > PI - trackCuts.phiCut) && (phi < PI + trackCuts.phiCut)) ||
11821201
(phi > TwoPI - trackCuts.phiCut) ||
@@ -1188,16 +1207,6 @@ struct DndetaMFTPbPb {
11881207
return true;
11891208
}
11901209

1191-
template <typename P>
1192-
bool cutInPhi(P const& particle)
1193-
{
1194-
if (!trackCuts.usephiCut) {
1195-
return true;
1196-
}
1197-
auto phi = particle.phi();
1198-
return (phi < trackCuts.phiCut) || ((phi > PI - trackCuts.phiCut) && (phi < PI + trackCuts.phiCut)) || (phi > TwoPI - trackCuts.phiCut) || ((phi > ((PIHalf - 0.1) * PI) - trackCuts.phiCut) && (phi < ((PIHalf - 0.1) * PI) + trackCuts.phiCut));
1199-
}
1200-
12011210
template <typename C>
12021211
float getOccupancy(C const& collision, uint occEstimator)
12031212
{
@@ -1358,20 +1367,22 @@ struct DndetaMFTPbPb {
13581367
if (gConf.useParticleSel && !isParticleSelected(particle)) {
13591368
continue;
13601369
}
1370+
float phi = particle.phi();
1371+
o2::math_utils::bringTo02Pi(phi);
13611372
if constexpr (isCent) {
13621373
registryMC.fill(HIST("Tracks/Centrality/EtaZvtxGen_t"), particle.eta(), zvtx, c, occ);
1363-
registryMC.fill(HIST("Tracks/Centrality/PhiEtaGen_t"), particle.phi(), particle.eta(), c, occ);
1374+
registryMC.fill(HIST("Tracks/Centrality/PhiEtaGen_t"), phi, particle.eta(), c, occ);
13641375
} else {
13651376
registryMC.fill(HIST("Tracks/EtaZvtxGen_t"), particle.eta(), zvtx, occ);
1366-
registryMC.fill(HIST("Tracks/PhiEtaGen_t"), particle.phi(), particle.eta(), occ);
1377+
registryMC.fill(HIST("Tracks/PhiEtaGen_t"), phi, particle.eta(), occ);
13671378
}
13681379
if (gtZeroColl) {
13691380
if constexpr (isCent) {
13701381
registryMC.fill(HIST("Tracks/Centrality/EtaZvtxGen"), particle.eta(), zvtx, c, occ);
1371-
registryMC.fill(HIST("Tracks/Centrality/PhiEtaGen"), particle.phi(), particle.eta(), c, occ);
1382+
registryMC.fill(HIST("Tracks/Centrality/PhiEtaGen"), phi, particle.eta(), c, occ);
13721383
} else {
13731384
registryMC.fill(HIST("Tracks/EtaZvtxGen"), particle.eta(), zvtx, occ);
1374-
registryMC.fill(HIST("Tracks/PhiEtaGen"), particle.phi(), particle.eta(), occ);
1385+
registryMC.fill(HIST("Tracks/PhiEtaGen"), phi, particle.eta(), occ);
13751386
}
13761387
}
13771388
}
@@ -1702,6 +1713,8 @@ struct DndetaMFTPbPb {
17021713
if (!isTrackSelected(track)) {
17031714
continue;
17041715
}
1716+
float phi = track.phi();
1717+
o2::math_utils::bringTo02Pi(phi);
17051718
if (track.has_mcParticle() && (!trackCuts.removeFakeByMcMask || (track.mcMask() == trackCuts.selMcMask))) {
17061719
const auto& particle = track.template mcParticle_as<aod::McParticles>();
17071720
if (!isChrgParticle(particle.pdgCode())) {
@@ -1715,11 +1728,11 @@ struct DndetaMFTPbPb {
17151728
}
17161729
if constexpr (has_reco_cent<C>) {
17171730
registryMC.fill(HIST("Tracks/Centrality/EtaZvtx"), track.eta(), collision.posZ(), cRec, occRec);
1718-
registryMC.fill(HIST("Tracks/Centrality/PhiEta"), track.phi(), track.eta(), cRec, occRec);
1731+
registryMC.fill(HIST("Tracks/Centrality/PhiEta"), phi, track.eta(), cRec, occRec);
17191732
registryMC.fill(HIST("Tracks/Centrality/NclustersEta"), track.nClusters(), track.eta(), cRec, occRec);
17201733
} else {
17211734
registryMC.fill(HIST("Tracks/EtaZvtx"), track.eta(), collision.posZ(), occRec);
1722-
registryMC.fill(HIST("Tracks/PhiEta"), track.phi(), track.eta(), occRec);
1735+
registryMC.fill(HIST("Tracks/PhiEta"), phi, track.eta(), occRec);
17231736
registryMC.fill(HIST("Tracks/NclustersEta"), track.nClusters(), track.eta(), occRec);
17241737
}
17251738
++nTrkRec;
@@ -1890,6 +1903,8 @@ struct DndetaMFTPbPb {
18901903
if (!isTrackSelected(itrack)) {
18911904
continue;
18921905
}
1906+
float phi = itrack.phi();
1907+
o2::math_utils::bringTo02Pi(phi);
18931908
if constexpr (has_reco_cent<C>) {
18941909
registryMC.fill(HIST("Tracks/Centrality/hMcTrackStatus"), static_cast<int>(McTrackStatus::kTrkAsBestSel), cRec, occRec);
18951910
} else {
@@ -1939,13 +1954,13 @@ struct DndetaMFTPbPb {
19391954
}
19401955
if constexpr (has_reco_cent<C>) {
19411956
registryMC.fill(HIST("Tracks/Centrality/EtaZvtx"), itrack.eta(), collision.posZ(), cRec, occRec);
1942-
registryMC.fill(HIST("Tracks/Centrality/PhiEta"), itrack.phi(), itrack.eta(), cRec, occRec);
1957+
registryMC.fill(HIST("Tracks/Centrality/PhiEta"), phi, itrack.eta(), cRec, occRec);
19431958
registryMC.fill(HIST("Tracks/Centrality/NclustersEta"), itrack.nClusters(), itrack.eta(), cRec, occRec);
19441959
registryMC.fill(HIST("Tracks/Centrality/DCA3d"), itrack.pt(), itrack.eta(), atrack.bestDCAXY(), bestDcaZ, cRec, occRec);
19451960
registryMC.fill(HIST("Tracks/Centrality/TrackAmbDegree"), atrack.ambDegree(), cRec, occRec);
19461961
} else {
19471962
registryMC.fill(HIST("Tracks/EtaZvtx"), itrack.eta(), collision.posZ(), occRec);
1948-
registryMC.fill(HIST("Tracks/PhiEta"), itrack.phi(), itrack.eta(), occRec);
1963+
registryMC.fill(HIST("Tracks/PhiEta"), phi, itrack.eta(), occRec);
19491964
registryMC.fill(HIST("Tracks/NclustersEta"), itrack.nClusters(), itrack.eta(), occRec);
19501965
registryMC.fill(HIST("Tracks/DCA3d"), itrack.pt(), itrack.eta(), atrack.bestDCAXY(), bestDcaZ, occRec);
19511966
registryMC.fill(HIST("Tracks/TrackAmbDegree"), atrack.ambDegree(), occRec);
@@ -2313,7 +2328,7 @@ struct DndetaMFTPbPb {
23132328
if constexpr (has_reco_cent<C>) {
23142329
registryMC.fill(HIST("Tracks/Centrality/hEffRec"), itrack.pt(), itrack.eta(), collision.posZ(), static_cast<float>(RecTrkType::kRecFake), getRecoCent(collision), getOccupancy(collision, eventCuts.occupancyEstimator));
23152330
} else {
2316-
registryMC.fill(HIST("Tracks/hEffRec"), itrack.pt(), itrack.phi(), itrack.eta(), collision.posZ(), static_cast<float>(RecTrkType::kRecFake), getOccupancy(collision, eventCuts.occupancyEstimator));
2331+
registryMC.fill(HIST("Tracks/hEffRec"), itrack.pt(), itrack.eta(), collision.posZ(), static_cast<float>(RecTrkType::kRecFake), getOccupancy(collision, eventCuts.occupancyEstimator));
23172332
}
23182333
}
23192334
}
@@ -2389,13 +2404,13 @@ struct DndetaMFTPbPb {
23892404
}
23902405
// MC gen
23912406
if constexpr (has_reco_cent<C>) {
2392-
if (particle.eta() > trackCuts.minEta && particle.eta() < trackCuts.maxEta && cutInPhi(particle)) {
2407+
if (particle.eta() > trackCuts.minEta && particle.eta() < trackCuts.maxEta) {
23932408
if (std::abs(mcCollision.posZ()) < eventCuts.maxZvtx) {
23942409
registryMC.fill(HIST("Tracks/Centrality/hEffIdxGen"), particle.pt(), particle.eta(), static_cast<float>(GenIdxTrkType::kGenIdxAll), cGen, occRec);
23952410
}
23962411
}
23972412
} else {
2398-
if (particle.eta() > trackCuts.minEta && particle.eta() < trackCuts.maxEta && cutInPhi(particle)) {
2413+
if (particle.eta() > trackCuts.minEta && particle.eta() < trackCuts.maxEta) {
23992414
if (std::abs(mcCollision.posZ()) < eventCuts.maxZvtx) {
24002415
registryMC.fill(HIST("Tracks/hEffIdxGen"), particle.pt(), particle.eta(), static_cast<float>(GenIdxTrkType::kGenIdxAll), occRec);
24012416
}
@@ -2548,13 +2563,13 @@ struct DndetaMFTPbPb {
25482563
}
25492564
// MC gen
25502565
if constexpr (has_reco_cent<C>) {
2551-
if (particle.eta() > trackCuts.minEta && particle.eta() < trackCuts.maxEta && cutInPhi(particle)) {
2566+
if (particle.eta() > trackCuts.minEta && particle.eta() < trackCuts.maxEta) {
25522567
if (std::abs(mcCollision.posZ()) < eventCuts.maxZvtx) {
25532568
registryMC.fill(HIST("Tracks/Centrality/hEffIdxGen"), particle.pt(), particle.eta(), static_cast<float>(GenIdxTrkType::kGenIdxAll), cGen, occRec);
25542569
}
25552570
}
25562571
} else {
2557-
if (particle.eta() > trackCuts.minEta && particle.eta() < trackCuts.maxEta && cutInPhi(particle)) {
2572+
if (particle.eta() > trackCuts.minEta && particle.eta() < trackCuts.maxEta) {
25582573
if (std::abs(mcCollision.posZ()) < eventCuts.maxZvtx) {
25592574
registryMC.fill(HIST("Tracks/hEffIdxGen"), particle.pt(), particle.eta(), static_cast<float>(GenIdxTrkType::kGenIdxAll), occRec);
25602575
}

0 commit comments

Comments
 (0)