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