Skip to content

Commit c6c9dcd

Browse files
[PWGCF] Tables for Volume fluctuations (#15949)
1 parent 14c46f1 commit c6c9dcd

1 file changed

Lines changed: 85 additions & 0 deletions

File tree

PWGCF/EbyEFluctuations/Tasks/netprotcumulants.cxx

Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,41 @@ using namespace o2;
5353
using namespace o2::framework;
5454
using 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+
5691
struct 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

Comments
 (0)