@@ -53,6 +53,41 @@ using namespace o2;
5353using namespace o2 ::framework;
5454using namespace o2 ::framework::expressions;
5555
56+ namespace o2 ::aod
57+ {
58+
59+ // ===== Event columns =====
60+ DECLARE_SOA_COLUMN (EventId, eventId, int );
61+ DECLARE_SOA_COLUMN (MyCent, myCent, float );
62+ DECLARE_SOA_COLUMN (Vz, vz, float );
63+ DECLARE_SOA_COLUMN (Ntrk, ntrk, int );
64+ DECLARE_SOA_COLUMN (Np, np, int );
65+ DECLARE_SOA_COLUMN (Npbar, npbar, int );
66+
67+ // ===== Track columns =====
68+ DECLARE_SOA_COLUMN (Pt, pt, float );
69+ DECLARE_SOA_COLUMN (Eta, eta, float );
70+ DECLARE_SOA_COLUMN (Pid, pid, int );
71+ DECLARE_SOA_COLUMN (Eff, eff, float );
72+
73+ // ===== Tables =====
74+ DECLARE_SOA_TABLE (EventTable, " AOD" , " MYEVENT" ,
75+ EventId,
76+ MyCent,
77+ Vz,
78+ Ntrk,
79+ Np,
80+ Npbar);
81+
82+ DECLARE_SOA_TABLE (MYTrackTable, " AOD" , " MYTRACK" ,
83+ EventId,
84+ Pt,
85+ Eta,
86+ Pid,
87+ Eff);
88+
89+ } // namespace o2::aod
90+
5691struct NetProtCumulants {
5792 // events
5893 Configurable<float > cfgCutVertex{" cfgCutVertex" , 10 .0f , " Accepted z-vertex range" };
@@ -110,6 +145,26 @@ struct NetProtCumulants {
110145
111146 HistogramRegistry histos{" Histos" , {}, OutputObjHandlingPolicy::AnalysisObject};
112147
148+ Produces<aod::EventTable> eventTable;
149+ Produces<aod::MYTrackTable> trackTable;
150+
151+ int eventCounter = 0 ;
152+ int eventId = 0 ;
153+
154+ // event variables
155+ int Ntrk_event = 0 ;
156+ int Np_event = 0 ;
157+ int Npbar_event = 0 ;
158+
159+ float cent_event = 0 ;
160+ float vz_event = 0 ;
161+
162+ // track variables
163+ float pt_track = 0 ;
164+ float eta_track = 0 ;
165+ int pid_track = 0 ;
166+ float eff_track = 0 ;
167+
113168 TRandom3* fRndm = new TRandom3(0 );
114169
115170 // Eff histograms 2d: eff(pT, eta)
@@ -855,6 +910,7 @@ struct NetProtCumulants {
855910 if (cfgUsePtDepDCAz) {
856911 fPtDepDCAz = new TF1 (" ptDepDCAz" , cfgDCAzFunc->c_str (), 0.001 , 10.0 );
857912 }
913+
858914 } // end init()
859915
860916 template <typename T>
@@ -2134,6 +2190,18 @@ struct NetProtCumulants {
21342190
21352191 void processDataRec (AodCollisions::iterator const & coll, aod::BCsWithTimestamps const &, AodTracks const & inputTracks)
21362192 {
2193+
2194+ // reset per event
2195+ Ntrk_event = 0 ;
2196+ Np_event = 0 ;
2197+ Npbar_event = 0 ;
2198+
2199+ // assign event ID
2200+ eventId = eventCounter++;
2201+
2202+ // store event info
2203+ cent_event = coll.centFT0C ();
2204+ vz_event = coll.posZ ();
21372205 if (!coll.sel8 ()) {
21382206 return ;
21392207 }
@@ -2263,6 +2331,7 @@ struct NetProtCumulants {
22632331 if (cfgIfMandatoryTOF && !track.hasTOF ()) {
22642332 continue ;
22652333 }
2334+ Ntrk_event++;
22662335
22672336 bool trackSelected = false ;
22682337 if (cfgPIDchoice == 0 )
@@ -2293,11 +2362,18 @@ struct NetProtCumulants {
22932362
22942363 if (track.pt () < cfgCutPtUpper) {
22952364 nProt = nProt + 1.0 ;
2365+ Np_event++;
22962366 float pEff = getEfficiency (track); // get efficiency of track
22972367 if (pEff != 0 ) {
22982368 for (int i = 1 ; i < 7 ; i++) {
22992369 powerEffProt[i] += std::pow (1.0 / pEff, i);
23002370 }
2371+ pt_track = track.pt ();
2372+ eta_track = track.eta ();
2373+ pid_track = +1 ;
2374+ eff_track = pEff;
2375+
2376+ trackTable (eventId, pt_track, eta_track, pid_track, eff_track);
23012377 }
23022378 }
23032379 }
@@ -2311,18 +2387,27 @@ struct NetProtCumulants {
23112387 histos.fill (HIST (" hrecDcaZAntiproton" ), track.dcaZ ());
23122388 if (track.pt () < cfgCutPtUpper) {
23132389 nAntiprot = nAntiprot + 1.0 ;
2390+ Npbar_event++;
23142391 float pEff = getEfficiency (track); // get efficiency of track
23152392 if (pEff != 0 ) {
23162393 for (int i = 1 ; i < 7 ; i++) {
23172394 powerEffAntiprot[i] += std::pow (1.0 / pEff, i);
23182395 }
2396+ pt_track = track.pt ();
2397+ eta_track = track.eta ();
2398+ pid_track = -1 ;
2399+ eff_track = pEff;
2400+
2401+ trackTable (eventId, pt_track, eta_track, pid_track, eff_track);
23192402 }
23202403 }
23212404 }
23222405
23232406 } // ! checking PID
23242407 } // ! end track loop
23252408
2409+ eventTable (eventId, cent_event, vz_event, Ntrk_event, Np_event, Npbar_event);
2410+
23262411 float netProt = nProt - nAntiprot;
23272412 float nTracks = nProt + nAntiprot;
23282413 histos.fill (HIST (" hNTracksVsCent" ), cent, nTracks);
0 commit comments