1010// or submit itself to any jurisdiction.
1111
1212#include < vector>
13+ #include < random>
1314
1415#include " Framework/runDataProcessing.h"
1516#include " Framework/AnalysisTask.h"
@@ -45,7 +46,6 @@ using TracksFull = soa::Join<aod::Tracks, aod::TracksExtra, aod::TracksDCA, aod:
4546
4647namespace
4748{
48- // constexpr double betheBlochDefault[1][6]{{-1.e32, -1.e32, -1.e32, -1.e32, -1.e32, -1.e32}};
4949constexpr double betheBlochDefault[1 ][6 ]{{-136.71 , 0.441 , 0.2269 , 1.347 , 0.8035 , 0.09 }};
5050static const std::vector<std::string> betheBlochParNames{" p0" , " p1" , " p2" , " p3" , " p4" , " resolution" };
5151static const std::vector<std::string> particleNamesBB{" d" };
@@ -54,21 +54,30 @@ static const std::vector<std::string> pidHypotheses{"Electron", "Muon", "Pion",
5454
5555struct antidLambdaEbye {
5656 o2::pid::tof::Beta<TracksFull::iterator> responseBeta;
57+ std::mt19937 gen32;
58+
59+ int nSubsamples;
5760
5861 Configurable<int > cfgMaterialCorrection{" cfgMaterialCorrection" , static_cast <int >(o2::base::Propagator::MatCorrType::USEMatCorrNONE), " Type of material correction" };
62+ Configurable<LabeledArray<double >> cfgBetheBlochParams{" cfgBetheBlochParams" , {betheBlochDefault[0 ], 1 , 6 , particleNamesBB, betheBlochParNames}, " TPC Bethe-Bloch parameterisation for deuteron" };
5963
60- ConfigurableAxis zVtxAxis{" zVtxBins" , {100 , -20 .f , 20 .f }, " Binning for the vertex z in cm" };
61- ConfigurableAxis massLambdaAxis{" massLambdaAxis" , {400 , o2::constants::physics::MassLambda0 - 0 .03f , o2::constants::physics::MassLambda0 + 0 .03f }, " binning for the lambda invariant-mass" };
6264 ConfigurableAxis centAxis{" centAxis" , {106 , 0 , 106 }, " binning for the centrality" };
65+ ConfigurableAxis subsampleAxis{" subsampleAxis" , {30 , 0 , 30 }, " binning of the subsample axis" };
66+ ConfigurableAxis deltaEtaAxis{" deltaEtaAxis" , {4 , 0 , 0.8 }, " binning of the delta eta axis" };
67+ ConfigurableAxis ptAntidAxis{" ptAntidAxis" , {VARIABLE_WIDTH, 0 .7f , 0 .8f , 0 .9f , 1 .0f , 1 .2f , 1 .4f , 1 .6f , 1 .8f }, " binning of the antideuteron pT axis (GeV/c)" };
68+ ConfigurableAxis ptLambdaAxis{" ptLambdaAxis" , {VARIABLE_WIDTH, 0 .5f , 0 .6f , 0 .7f , 0 .8f , 0 .9f , 1 .0f , 1 .1f , 1 .2f , 1 .3f , 1 .4f , 1 .5f , 1 .6f , 1 .7f , 1 .8f , 1 .9f , 2 .0f , 2 .2f , 2 .4f , 2 .6f , 2 .8f , 3 .0f }, " binning of the (anti)lambda pT axis (GeV/c)" };
69+
70+ ConfigurableAxis zVtxAxis{" zVtxBins" , {100 , -20 .f , 20 .f }, " Binning for the vertex z in cm" };
6371
72+ // binning of (anti)lambda QA histograms
73+ ConfigurableAxis massLambdaAxis{" massLambdaAxis" , {400 , o2::constants::physics::MassLambda0 - 0 .03f , o2::constants::physics::MassLambda0 + 0 .03f }, " binning for the lambda invariant-mass" };
6474 ConfigurableAxis cosPaAxis{" cosPaAxis" , {1e3 , 0 .95f , 1 .00f }, " binning for the cosPa axis" };
6575 ConfigurableAxis radiusAxis{" radiusAxis" , {1e3 , 0 .f , 100 .f }, " binning for the radius axis" };
6676 ConfigurableAxis dcaV0daughAxis{" dcaV0daughAxis" , {2e2 , 0 .f , 2 .f }, " binning for the dca of V0 daughters" };
6777 ConfigurableAxis dcaDaughPvAxis{" dcaDaughPvAxis" , {1e3 , -10 .f , 10 .f }, " binning for the dca of positive daughter to PV" };
6878
69- Configurable<LabeledArray< double >> cfgBetheBlochParams{ " cfgBetheBlochParams " , {betheBlochDefault[ 0 ], 1 , 6 , particleNamesBB, betheBlochParNames}, " TPC Bethe-Bloch parameterisation for He3 " };
79+ // binning of deuteron QA histograms
7080 ConfigurableAxis tpcNsigmaAxis{" tpcNsigmaAxis" , {100 , -5 .f , 5 .f }, " tpc nsigma axis" };
71- // ConfigurableAxis tofNsigmaAxis{"tofNsigmaAxis", {100, -5.f, 5.f}, "tof nsigma axis"};
7281 ConfigurableAxis tofMassAxis{" tofMassAxis" , {1000 , 0 ., 3 .f }, " tof mass axis" };
7382 ConfigurableAxis momAxis{" momAxis" , {60 ., 0 .f , 3 .f }, " momentum axis binning" };
7483 ConfigurableAxis momAxisFine{" momAxisFine" , {5 .e2 , 0 .f , 5 .f }, " momentum axis binning" };
@@ -104,6 +113,11 @@ struct antidLambdaEbye {
104113 Configurable<float > lambdaMassCut{" lambdaMassCut" , 0 .005f , " maximum deviation from PDG mass" };
105114
106115 HistogramRegistry histos{" histos" , {}, OutputObjHandlingPolicy::AnalysisObject};
116+ HistogramRegistry tempHistos{" tempHistos" , {}, OutputObjHandlingPolicy::TransientObject};
117+
118+ std::shared_ptr<TH2> tempAntid;
119+ std::shared_ptr<TH2> tempAntiLambda;
120+ std::shared_ptr<TH2> tempLambda;
107121
108122 Filter preFilterV0 = (nabs(aod::v0data::dcapostopv) > v0setting_dcapostopv &&
109123 nabs (aod::v0data::dcanegtopv) > v0setting_dcanegtopv &&
@@ -147,25 +161,26 @@ struct antidLambdaEbye {
147161 void init (o2::framework::InitContext&)
148162 {
149163
164+ uint32_t randomSeed = static_cast <uint32_t >(std::chrono::duration_cast<std::chrono::milliseconds>(std::chrono::system_clock::now ().time_since_epoch ()).count ());
165+ gen32.seed (randomSeed);
166+
150167 histos.add <TH1>(" zVtx" , " ;#it{z}_{vtx} (cm);Entries" , HistType::kTH1F , {zVtxAxis});
151168
152- histos.add <TH1>(" nEv" , " ;Centrality (%);Entries" , {HistType::kTH1D }, {centAxis});
169+ auto hNev = histos.add <THnSparse>(" nEv" , " ;Subsample;Centrality (%);" , {HistType::kTHnSparseD }, {subsampleAxis, centAxis});
170+ nSubsamples = hNev->GetAxis (0 )->GetNbins ();
153171
154- histos.add <TH1>(" q1antid" , " ;Centrality (%);#it{q}_{1}(#bar{d})" , {HistType::kTH1D }, {centAxis});
155- histos.add <TH1>(" q1sqantid" , " ;Centrality (%);#it{q}_{1}^{2}(#bar{d})" , {HistType::kTH1D }, {centAxis});
156- histos.add <TH1>(" q2antid" , " ;Centrality (%);#it{q}_{2}(#bar{d})" , {HistType::kTH1D }, {centAxis});
172+ histos.add <THnSparse>(" nAntid" , " ;Subsample;Centrality (%);#Delta#eta;#it{p}_{T}(#bar{d}) (GeV/#it{c});" , {HistType::kTHnSparseD }, {subsampleAxis, centAxis, deltaEtaAxis, ptAntidAxis});
173+ histos.add <THnSparse>(" nSqAntid" , " ;Subsample;Centrality (%);#Delta#eta;#it{p}_{T}(#bar{d}) (GeV/#it{c});" , {HistType::kTHnSparseD }, {subsampleAxis, centAxis, deltaEtaAxis, ptAntidAxis});
157174
158- histos.add <TH1>(" q1antiL" , " ;Centrality (%);#it{q}_{1}(#bar{#Lambda})" , {HistType::kTH1D }, {centAxis});
159- histos.add <TH1>(" q1sqantiL" , " ;Centrality (%);#it{q}_{1}^{2}(#bar{#Lambda})" , {HistType::kTH1D }, {centAxis});
160- histos.add <TH1>(" q2antiL" , " ;Centrality (%);#it{q}_{2}(#bar{#Lambda})" , {HistType::kTH1D }, {centAxis});
175+ histos.add <THnSparse>(" nAntiL" , " ;Subsample;Centrality (%);#Delta#eta;#it{p}_{T}(#bar{#Lambda}) (GeV/#it{c});" , {HistType::kTHnSparseD }, {subsampleAxis, centAxis, deltaEtaAxis, ptLambdaAxis});
176+ histos.add <THnSparse>(" nSqAntiL" , " ;Subsample;Centrality (%);#Delta#eta;#it{p}_{T}(#bar{#Lambda}) (GeV/#it{c});" , {HistType::kTHnSparseD }, {subsampleAxis, centAxis, deltaEtaAxis, ptLambdaAxis});
161177
162- histos.add <TH1>(" q1L" , " ;Centrality (%);#it{q}_{1}(#Lambda)" , {HistType::kTH1D }, {centAxis});
163- histos.add <TH1>(" q1sqL" , " ;Centrality (%);#it{q}_{1}^{2}(#Lambda)" , {HistType::kTH1D }, {centAxis});
164- histos.add <TH1>(" q2L" , " ;Centrality (%);#it{q}_{2}(#Lambda)" , {HistType::kTH1D }, {centAxis});
178+ histos.add <THnSparse>(" nL" , " ;Subsample;Centrality (%);#Delta#eta;#it{p}_{T}(#Lambda) (GeV/#it{c});" , {HistType::kTHnSparseD }, {subsampleAxis, centAxis, deltaEtaAxis, ptLambdaAxis});
179+ histos.add <THnSparse>(" nSqL" , " ;Subsample;Centrality (%);#Delta#eta;#it{p}_{T}(#Lambda) (GeV/#it{c});" , {HistType::kTHnSparseD }, {subsampleAxis, centAxis, deltaEtaAxis, ptLambdaAxis});
165180
166- histos.add <TH1 >(" q11LantiL " , " ;Centrality (%);#it{q }_{11 }(#Lambda, # bar{#Lambda})" , {HistType::kTH1D }, {centAxis});
167- histos.add <TH1 >(" q11Lantid " , " ;Centrality (%);#it{q }_{11 }(#Lambda, # bar{d})" , {HistType::kTH1D }, {centAxis});
168- histos.add <TH1 >(" q11antiLantid " , " ;Centrality (%);#it{q }_{11 }(#bar{#Lambda}, # bar{d})" , {HistType::kTH1D }, {centAxis});
181+ histos.add <THnSparse >(" nLantiL " , " ;Subsample; Centrality (%);#Delta#eta;# it{p }_{T }(#Lambda) (GeV/#it{c});#it{p}_{T}(# bar{#Lambda}) (GeV/#it{c}); " , {HistType::kTHnSparseD }, {subsampleAxis, centAxis, deltaEtaAxis, ptLambdaAxis, ptLambdaAxis });
182+ histos.add <THnSparse >(" nLantid " , " ;Subsample; Centrality (%);#Delta#eta;# it{p }_{T }(#Lambda) (GeV/#it{c});#it{p}_{T}(# bar{d}) (GeV/#it{c}); " , {HistType::kTHnSparseD }, {subsampleAxis, centAxis, deltaEtaAxis, ptLambdaAxis, ptAntidAxis });
183+ histos.add <THnSparse >(" nAntiLantid " , " ;Subsample; Centrality (%);#Delta#eta;# it{p }_{T }(#bar{#Lambda}) (GeV/#it{c});#it{p}_{T}(# bar{d}) (GeV/#it{c}); " , {HistType::kTHnSparseD }, {subsampleAxis, centAxis, deltaEtaAxis, ptLambdaAxis, ptAntidAxis });
169184
170185 // v0 QA
171186 histos.add <TH1>(" massLambda" , " ;#it{M}(p + #pi^{-}) (GeV/#it{c}^{2});Entries" , {HistType::kTH1F , {massLambdaAxis}});
@@ -176,29 +191,34 @@ struct antidLambdaEbye {
176191 histos.add <TH1>(" dcaNegPv" , " ;dcaNegPv;Entries" , {HistType::kTH1F }, {dcaDaughPvAxis});
177192
178193 // antid QA
179- histos.add <TH2>(" tpcNsigma" , " ;#it{p}_{TPC} (GeV/#it{c});tpcNsigma" , {HistType::kTH2F }, {momAxis, tpcNsigmaAxis});
180- histos.add <TH2>(" tpcNsigmaGlo" , " ;#it{p}_{T} (GeV/#it{c});tpcNsigma" , {HistType::kTH2F }, {momAxis, tpcNsigmaAxis});
181- // histos.add<TH2>("tofNsigma", ";#it{p}_{glo};tofNsigma;Entries", {HistType::kTH2F}, {momAxis, tofNsigmaAxis});
194+ histos.add <TH2>(" tpcNsigma" , " ;#it{p}_{TPC} (GeV/#it{c});n#sigma_{TPC} (a.u.)" , {HistType::kTH2F }, {momAxis, tpcNsigmaAxis});
195+ histos.add <TH2>(" tpcNsigmaGlo" , " ;#it{p}_{T} (GeV/#it{c});n#sigma_{TPC} (a.u.)" , {HistType::kTH2F }, {momAxis, tpcNsigmaAxis});
182196 histos.add <TH2>(" tofMass" , " ;#it{p}_{glo} (GeV/#it{c});Mass (GeV/#it{c}^{2});Entries" , {HistType::kTH2F }, {momAxis, tofMassAxis});
183- histos.add <TH2>(" tofMassFull" , " ;#it{p}_{glo} (GeV/#it{c});Mass (GeV/#it{c}^{2});Entries" , {HistType::kTH2F }, {momAxis, tofMassAxis});
184197 auto hmomCorr = histos.add <TH3>(" momCorr" , " ;#it{p}_{glo} (GeV/#it{c});#it{p}_{TPC} - #it{p}_{glo} (GeV/#it{c});" , {HistType::kTH3F }, {momAxisFine, momResAxis, trackingPidAxis});
185- histos.add <TH2>(" tpcSignal" , " ;#it{p}_{TPC} (GeV/#it{c});TPC signal (a.u.)" , {HistType::kTH2F }, {momAxisFine, tpcAxis});
186- histos.add <TH2>(" tpcSignalBkg" , " ;#it{p}_{TPC} (GeV/#it{c});TPC signal (a.u.)" , {HistType::kTH2F }, {momAxisFine, tpcAxis});
187- auto htpcSignal_glo = histos.add <TH3>(" tpcSignal_glo" , " ;#it{p}_{glo} (GeV/#it{c});TPC signal (a.u.);" , {HistType::kTH3F }, {momAxisFine, tpcAxis, trackingPidAxis});
188- auto htpcSignalBkg_glo = histos.add <TH3>(" tpcSignalBkg_glo" , " ;#it{p}_{glo} (GeV/#it{c});TPC signal (a.u.);" , {HistType::kTH3F }, {momAxisFine, tpcAxis, trackingPidAxis});
189- histos.add <TH2>(" tofSignal" , " ;#it{p}_{TPC} (GeV/#it{c});TOF signal (a.u.)" , {HistType::kTH2F }, {momAxisFine, tofAxis});
190- histos.add <TH2>(" tofSignal_glo" , " ;#it{p}_{T} (GeV/#it{c});TOF signal (a.u.)" , {HistType::kTH2F }, {momAxisFine, tofAxis});
198+ histos.add <TH2>(" tpcSignal" , " ;#it{p}_{TPC} (GeV/#it{c});d#it{E}/d#it{x}_{TPC} (a.u.)" , {HistType::kTH2F }, {momAxisFine, tpcAxis});
199+ histos.add <TH2>(" tpcSignalBkg" , " ;#it{p}_{TPC} (GeV/#it{c});d#it{E}/d#it{x}_{TPC} (a.u.)" , {HistType::kTH2F }, {momAxisFine, tpcAxis});
200+ histos.add <TH2>(" tpcSignal_glo" , " ;#it{p}_{glo} (GeV/#it{c});d#it{E}/d#it{x}_{TPC} (a.u.);" , {HistType::kTH2F }, {momAxisFine, tpcAxis});
201+ histos.add <TH2>(" tofSignal" , " ;#it{p}_{TPC} (GeV/#it{c});#beta_{TOF}" , {HistType::kTH2F }, {momAxisFine, tofAxis});
202+ histos.add <TH2>(" tofSignal_glo" , " ;#it{p}_{T} (GeV/#it{c});#beta_{TOF}" , {HistType::kTH2F }, {momAxisFine, tofAxis});
191203
192204 for (int i{1 }; i < hmomCorr->GetNbinsZ () + 1 ; ++i) {
193205 hmomCorr->GetZaxis ()->SetBinLabel (i, pidHypotheses[i - 1 ].data ());
194- htpcSignal_glo->GetZaxis ()->SetBinLabel (i, pidHypotheses[i - 1 ].data ());
195- htpcSignalBkg_glo->GetZaxis ()->SetBinLabel (i, pidHypotheses[i - 1 ].data ());
196206 }
207+
208+ // temporary histograms
209+ tempAntid = tempHistos.add <TH2>(" tempAntid" , " ;#Delta#eta;#it{p}_{T} (GeV/#it{c})" , {HistType::kTH2D }, {deltaEtaAxis, ptAntidAxis});
210+ tempLambda = tempHistos.add <TH2>(" tempLambda" , " ;#Delta#eta;#it{p}_{T} (GeV/#it{c})" , {HistType::kTH2D }, {deltaEtaAxis, ptLambdaAxis});
211+ tempAntiLambda = tempHistos.add <TH2>(" tempAntiLambda" , " ;#Delta#eta;#it{p}_{T} (GeV/#it{c})" , {HistType::kTH2D }, {deltaEtaAxis, ptLambdaAxis});
197212 }
198213
199- void fillEvent (TracksFull const & tracks, soa::Filtered<aod::V0Datas> const & V0s, float const & centrality, float const & multiplicity = 0 )
214+ void fillEvent (TracksFull const & tracks, soa::Filtered<aod::V0Datas> const & V0s, float const & centrality)
200215 {
201- double q1antid{0 .}, q2antid{0 .};
216+ tempAntid->Reset ();
217+ tempLambda->Reset ();
218+ tempAntiLambda->Reset ();
219+ auto rnd = static_cast <float >(gen32 ()) / static_cast <float >(gen32.max ());
220+ auto subsample = static_cast <int >(rnd * nSubsamples);
221+
202222 for (const auto & track : tracks) {
203223 if (!selectAntid (track)) {
204224 continue ;
@@ -209,7 +229,7 @@ struct antidLambdaEbye {
209229 }
210230
211231 histos.fill (HIST (" tpcSignal" ), track.tpcInnerParam (), track.tpcSignal ());
212- histos.fill (HIST (" tpcSignal_glo" ), track.p (), track.tpcSignal (), track. pidForTracking () );
232+ histos.fill (HIST (" tpcSignal_glo" ), track.p (), track.tpcSignal ());
213233
214234 if (track.pt () < antidPtMin || track.pt () > antidPtMax) {
215235 continue ;
@@ -232,7 +252,6 @@ struct antidLambdaEbye {
232252 // check contamination
233253 if (track.tpcInnerParam () < tpcInnerParamMax) {
234254 histos.fill (HIST (" tpcSignalBkg" ), track.tpcInnerParam (), track.tpcSignal ());
235- histos.fill (HIST (" tpcSignalBkg_glo" ), track.p (), track.tpcSignal (), track.pidForTracking ());
236255 }
237256
238257 if (track.pt () > antidPtTof && hasTof) {
@@ -244,23 +263,17 @@ struct antidLambdaEbye {
244263 if (track.tpcInnerParam () < tpcInnerParamMax) {
245264 continue ;
246265 }
247- if (track.pt () > antidPtTof && !track.hasTOF ()) {
248- continue ;
249- }
250- histos.fill (HIST (" tofMassFull" ), track.pt (), mass);
251- if (track.pt () > antidPtTof && track.tofChi2 () > 3 ) {
266+ if (track.pt () > antidPtTof && !hasTof) {
252267 continue ;
253268 }
254269 histos.fill (HIST (" tofMass" ), track.pt (), mass);
255270
256271 if (track.pt () <= antidPtTof || (track.pt () > antidPtTof && hasTof && std::abs (mass - o2::constants::physics::MassDeuteron) < tofMassMax)) {
257272 histos.fill (HIST (" tpcNsigmaGlo" ), track.pt (), nSigmaTPC);
258- q1antid += 1 .; // TODO: correct for efficiency
259- q2antid += 1 .;
273+ tempHistos.fill (HIST (" tempAntid" ), std::abs (track.eta ()), track.pt ());
260274 }
261275 }
262276
263- double q1L{0 .}, q2L{0 .}, q1antiL{0 .}, q2antiL{0 .};
264277 std::vector<int64_t > trkId;
265278 for (const auto & v0 : V0s) {
266279 if (v0.pt () < lambdaPtMin || v0.pt () > lambdaPtMax) {
@@ -287,11 +300,9 @@ struct antidLambdaEbye {
287300 histos.fill (HIST (" dcaNegPv" ), v0.dcanegtopv ());
288301
289302 if (matter) {
290- q1L += 1 .; // TODO: correct for efficiency
291- q2L += 1 .;
303+ tempHistos.fill (HIST (" tempLambda" ), std::abs (v0.eta ()), v0.pt ());
292304 } else {
293- q1antiL += 1 .; // TODO: correct for efficiency
294- q2antiL += 1 .;
305+ tempHistos.fill (HIST (" tempAntiLambda" ), std::abs (v0.eta ()), v0.pt ());
295306 }
296307
297308 trkId.emplace_back (pos.globalIndex ());
@@ -304,23 +315,46 @@ struct antidLambdaEbye {
304315 return ;
305316 }
306317
307- histos.fill (HIST (" nEv" ), centrality);
308-
309- histos.fill (HIST (" q1antid" ), centrality, q1antid);
310- histos.fill (HIST (" q1sqantid" ), centrality, std::pow (q1antid, 2 ));
311- histos.fill (HIST (" q2antid" ), centrality, q2antid);
312-
313- histos.fill (HIST (" q1L" ), centrality, q1L);
314- histos.fill (HIST (" q1sqL" ), centrality, std::pow (q1L, 2 ));
315- histos.fill (HIST (" q2L" ), centrality, q2L);
316-
317- histos.fill (HIST (" q1antiL" ), centrality, q1antiL);
318- histos.fill (HIST (" q1sqantiL" ), centrality, std::pow (q1antiL, 2 ));
319- histos.fill (HIST (" q2antiL" ), centrality, q2antiL);
320-
321- histos.fill (HIST (" q11LantiL" ), centrality, q1L * q1antiL);
322- histos.fill (HIST (" q11Lantid" ), centrality, q1L * q1antid);
323- histos.fill (HIST (" q11antiLantid" ), centrality, q1antiL * q1antid);
318+ histos.fill (HIST (" nEv" ), subsample, centrality);
319+
320+ for (int iEta{1 }; iEta < tempAntid->GetNbinsX () + 1 ; ++iEta) {
321+ for (int iPtAntid{1 }; iPtAntid < tempAntid->GetNbinsY () + 1 ; ++iPtAntid) {
322+ for (int iPtL{1 }; iPtL < tempLambda->GetNbinsY () + 1 ; ++iPtL) {
323+ for (int iPtAntiL{1 }; iPtAntiL < tempAntiLambda->GetNbinsY () + 1 ; ++iPtAntiL) {
324+
325+ auto eta = tempAntid->GetXaxis ()->GetBinCenter (iEta);
326+ auto antidPt = tempAntid->GetYaxis ()->GetBinCenter (iPtAntid);
327+ auto lPt = tempLambda->GetYaxis ()->GetBinCenter (iPtL);
328+ auto antilPt = tempAntiLambda->GetYaxis ()->GetBinCenter (iPtAntiL);
329+ auto antidNum = tempAntid->Integral (1 , iEta, iPtAntid, iPtAntid);
330+ auto lNum = tempLambda->Integral (1 , iEta, iPtL, iPtL);
331+ auto antilNum = tempAntiLambda->Integral (1 , iEta, iPtAntiL, iPtAntiL);
332+
333+ if (iPtL == 1 ) {
334+ histos.fill (HIST (" nAntiLantid" ), subsample, centrality, eta, antilPt, antidPt, antilNum * antidNum);
335+ if (iPtAntiL == 1 ) {
336+ histos.fill (HIST (" nAntid" ), subsample, centrality, eta, antidPt, antidNum);
337+ histos.fill (HIST (" nSqAntid" ), subsample, centrality, eta, antidPt, std::pow (antidNum, 2 ));
338+ }
339+ }
340+ if (iPtAntiL == 1 ) {
341+ histos.fill (HIST (" nLantid" ), subsample, centrality, eta, lPt, antidPt, lNum * antidNum);
342+ if (iPtAntid == 1 ) {
343+ histos.fill (HIST (" nL" ), subsample, centrality, eta, lPt, lNum);
344+ histos.fill (HIST (" nSqL" ), subsample, centrality, eta, lPt, std::pow (lNum, 2 ));
345+ }
346+ }
347+ if (iPtAntid == 1 ) {
348+ histos.fill (HIST (" nLantiL" ), subsample, centrality, eta, lPt, antilPt, lNum * antilNum);
349+ if (iPtL == 1 ) {
350+ histos.fill (HIST (" nAntiL" ), subsample, centrality, eta, antilPt, antilNum);
351+ histos.fill (HIST (" nSqAntiL" ), subsample, centrality, eta, antilPt, std::pow (antilNum, 2 ));
352+ }
353+ }
354+ }
355+ }
356+ }
357+ }
324358 }
325359
326360 void processRun3 (soa::Join<aod::Collisions, aod::EvSels, aod::CentFT0Cs>::iterator const & collision, TracksFull const & tracks, soa::Filtered<aod::V0Datas> const & V0s)
0 commit comments