1414// / \brief Analysis task for antineutron detection through cex interactions
1515// / \author Fabiola Lugo
1616// /
17- #include < PWGLF/DataModel/LFAntinCexTables.h>
17+ #include < Framework/AnalysisDataModel.h>
18+ #include < Framework/AnalysisTask.h>
19+ #include < Framework/Logger.h>
20+ #include < Framework/runDataProcessing.h>
1821
22+ #include < PWGLF/DataModel/LFAntinCexTables.h>
1923#include < Common/DataModel/PIDResponseITS.h>
20-
2124#include < CommonConstants/MathConstants.h>
2225#include < DCAFitter/DCAFitterN.h>
2326#include < DetectorsBase/Propagator.h>
24- #include < Framework/AnalysisDataModel.h>
25- #include < Framework/AnalysisTask.h>
26- #include < Framework/Logger.h>
27- #include < Framework/runDataProcessing.h>
2827#include < ReconstructionDataFormats/TrackParametrization.h>
2928
3029#include < TMCProcess.h>
@@ -44,7 +43,7 @@ using o2::constants::math::Rad2Deg;
4443struct NucleiAntineutronCex {
4544 // Slicing per colision
4645 Preslice<aod::McParticles> perMcByColl = aod::mcparticle::mcCollisionId;
47-
46+
4847 using TracksWCovMc = soa::Join<aod::TracksIU, aod::TracksExtra, aod::McTrackLabels, o2::aod::TracksCovIU>;
4948
5049 // === Cut values ===
@@ -100,11 +99,11 @@ struct NucleiAntineutronCex {
10099 histos.add (" pPz" , " p_{z};p_{z} (GeV/c);Entries" , kTH1F , {{100 , -10 ., 10 .}});
101100 histos.add (" pEta" , " Pseudorapidity;#eta;Entries" , kTH1F , {{100 , -10 ., 10 .}});
102101 histos.add (" pP_ITScuts" , " Momentum with ITS cuts;|p| (GeV/c);Entries" , kTH1F , {{100 , 0 ., 10 .}});
103-
102+
104103 // Process enum breakdown (secondary antiproton that anchors the SV)
105104 histos.add (" hProcEnumAP_CEX" , " procEnum of secondary #bar{p} (CEX);procEnum;Entries" , kTH1I , {{100 , -0.5 , 99.5 }});
106- histos.add (" hProcEnumAP_BG" , " procEnum of secondary #bar{p} (BG);procEnum;Entries" , kTH1I , {{100 , -0.5 , 99.5 }});
107-
105+ histos.add (" hProcEnumAP_BG" , " procEnum of secondary #bar{p} (BG);procEnum;Entries" , kTH1I , {{100 , -0.5 , 99.5 }});
106+
108107 // CEX pair from antineutron (MC)
109108 histos.add (" cexPairMcP" , " CEX pair total momentum;|p| (GeV/c);Entries" , kTH1F , {{100 , 0 ., 10 .}});
110109 histos.add (" cexPairMcPt" , " CEX pair p_{T};p_{T} (GeV/c);Entries" , kTH1F , {{100 , 0 ., 10 .}});
@@ -129,8 +128,8 @@ struct NucleiAntineutronCex {
129128 histos.add (" cexbg_pairmc_vtx" , " Background pair vertex;X (cm);Y (cm)" , kTH2F , {{200 , -60 ., 60 .}, {200 , -60 ., 60 .}});
130129 histos.add (" cexbg_pairmc_vtxz" , " Background secondary vertex Z;Z (cm);Entries" , kTH1F , {{200 , -60 ., 60 .}});
131130 histos.add (" cexbg_pairmc_pITScuts" , " Background momentum (ITS cuts);|p| (GeV/c);Entries" , kTH1F , {{100 , 0 ., 10 .}});
132-
133- // Pi0 events
131+
132+ // Pi0 events
134133 histos.add (" cexn_pairmc_p_pi0" , " Pair p / antineutron p for CEX + #pi^{0};p/p_{#bar{n}};Entries" , kTH1F , {{100 , 0 ., 2 .}});
135134
136135 // CEX pair from antineutron (TRK)
@@ -267,27 +266,21 @@ struct NucleiAntineutronCex {
267266 // Primary mother
268267 bool hasPrimaryMotherAntip = false ;
269268 double motherPt = 0.0 ;
270- double motherPx = 0.0 ;
271- double motherPy = 0.0 ;
272269 double motherPz = 0.0 ;
273270 double motherVz = 0.0 ;
274271 double motherP = 0.0 ;
275272 double motherEta = 0.0 ;
276273 int motherPdg = 0 ;
277- int motherId = -1 ;
278274
279275 for (const auto & mother : particle.mothers_as <aod::McParticles>()) {
280276 if (mother.isPhysicalPrimary ()) {
281277 hasPrimaryMotherAntip = true ;
282278 motherPt = mother.pt ();
283- motherPx = mother.px ();
284- motherPy = mother.py ();
285279 motherPz = mother.pz ();
286280 motherVz = mother.vz ();
287281 motherP = mother.p ();
288282 motherEta = mother.eta ();
289283 motherPdg = mother.pdgCode ();
290- motherId = mother.globalIndex ();
291284 break ;
292285 }
293286 }
@@ -366,10 +359,10 @@ struct NucleiAntineutronCex {
366359 break ;
367360 }
368361 }
369-
362+
370363 if (pionPlus || pionMinus)
371364 continue ;
372-
365+
373366 // Check for neutral pion at the same secondary vertex
374367 bool pion0 = false ;
375368 for (const auto & particle4 : mcPartsThis) {
@@ -728,7 +721,7 @@ struct NucleiAntineutronCex {
728721
729722 const TVector3 pv2sv (secX - pvtxX, secY - pvtxY, secZ - pvtxZ);
730723 const double pairPointingAngleDeg = pv2sv.Angle (total_trk_pVec) * Rad2Deg;
731-
724+
732725 const double pvsvThetaDeg = pv2sv.Theta () * Rad2Deg;
733726
734727 double pvsvPhiDeg = pv2sv.Phi () * Rad2Deg;
@@ -797,14 +790,14 @@ struct NucleiAntineutronCex {
797790 histos.fill (HIST (" vtxfit_mc_d3D" ), d3d);
798791
799792 const bool isCex = (motherPdg == -kNeutron );
800-
793+
801794 // Nature of the process
802795 if (isCex) {
803796 histos.fill (HIST (" hProcEnumAP_CEX" ), static_cast <int >(procEnum));
804797 } else {
805798 histos.fill (HIST (" hProcEnumAP_BG" ), static_cast <int >(procEnum));
806799 }
807-
800+
808801 const float vtxfitDX = secX - antipVx;
809802 const float vtxfitDY = secY - antipVy;
810803 const float vtxfitDZ = secZ - antipVz;
@@ -891,7 +884,8 @@ struct NucleiAntineutronCex {
891884
892885 antipTrkItsNSigmaPr,
893886 antipTrkItsPidValid,
894- antipTrkTgl);
887+ antipTrkTgl
888+ );
895889 }
896890 }
897891 // ==== end DCAFitter2 ====
0 commit comments