Skip to content

Commit 5b0cedc

Browse files
RafRaf11alibuild
andauthored
NucleiHistTask: Update. (#2758)
* Changed ptBinning For ability to analyse lower pT ranges * Feature; Changes to the derived table and small bugfixes. * Bugfix; Fixed bug with filling 3D centrality histograms. * Please consider the following formatting changes * UpdateReduced table size; * Update NucleiHistTask.cxx * Update NucleiHistTask.cxx Feature; match variables to offline version. * Please consider the following formatting changes * Feature; Removed Table + added new species * Please consider the following formatting changes * Fix; fixed getters for histogram filling * Bugfix; * Feature; implemented PVcontributor cuts * Please consider the following formatting changes * NucleiHistTask; Update added TRD track selection cuts * Please consider the following formatting changes * Update; Added histogram for centrality distribution, added global isPvcontributor cut for fillCentHistorgrams. * Update to NucleiHistTask.cxx Added MC efficiency calculation and fixed some minor spelling mistakes. * Please consider the following formatting changes * NucleiHistTask: Update Added seperate MC efficiencies for tracking & reconstruction. * Please consider the following formatting changes * Update NucleiHistTask.cxx Changed naming of MC to be more precise what is being computed, added DCA distributions for MC. --------- Co-authored-by: ALICE Action Bot <alibuild@cern.ch>
1 parent 997b327 commit 5b0cedc

1 file changed

Lines changed: 58 additions & 43 deletions

File tree

PWGLF/Tasks/NucleiHistTask.cxx

Lines changed: 58 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ struct NucleiHistTask {
5555

5656
// MC
5757
HistogramRegistry MC_spectra_reg{"mc_spectra", {}, OutputObjHandlingPolicy::AnalysisObject, true, true};
58+
HistogramRegistry MC_spectra_reconstructed_reg{"mc_spectra_reconstructed", {}, OutputObjHandlingPolicy::AnalysisObject, true, true};
5859
HistogramRegistry MC_proton_gen_reg{"mc_proton_gen", {}, OutputObjHandlingPolicy::AnalysisObject, true, true};
5960
HistogramRegistry MC_aproton_gen_reg{"mc_aproton_gen", {}, OutputObjHandlingPolicy::AnalysisObject, true, true};
6061
HistogramRegistry MC_deuteron_gen_reg{"mc_deuteron_gen", {}, OutputObjHandlingPolicy::AnalysisObject, true, true};
@@ -63,10 +64,10 @@ struct NucleiHistTask {
6364
HistogramRegistry MC_aproton_track_reg{"mc_aproton_track", {}, OutputObjHandlingPolicy::AnalysisObject, true, true};
6465
HistogramRegistry MC_deuteron_track_reg{"mc_deuteron_track", {}, OutputObjHandlingPolicy::AnalysisObject, true, true};
6566
HistogramRegistry MC_adeuteron_track_reg{"mc_adeuteron_track", {}, OutputObjHandlingPolicy::AnalysisObject, true, true};
66-
HistogramRegistry MC_proton_rec_reg{"mc_proton_rec", {}, OutputObjHandlingPolicy::AnalysisObject, true, true};
67-
HistogramRegistry MC_aproton_rec_reg{"mc_aproton_rec", {}, OutputObjHandlingPolicy::AnalysisObject, true, true};
68-
HistogramRegistry MC_deuteron_rec_reg{"mc_deuteron_rec", {}, OutputObjHandlingPolicy::AnalysisObject, true, true};
69-
HistogramRegistry MC_adeuteron_rec_reg{"mc_adeuteron_rec", {}, OutputObjHandlingPolicy::AnalysisObject, true, true};
67+
HistogramRegistry MC_proton_PID_reg{"mc_proton_PID", {}, OutputObjHandlingPolicy::AnalysisObject, true, true};
68+
HistogramRegistry MC_aproton_PID_reg{"mc_aproton_PID", {}, OutputObjHandlingPolicy::AnalysisObject, true, true};
69+
HistogramRegistry MC_deuteron_PID_reg{"mc_deuteron_PID", {}, OutputObjHandlingPolicy::AnalysisObject, true, true};
70+
HistogramRegistry MC_adeuteron_PID_reg{"mc_adeuteron_PID", {}, OutputObjHandlingPolicy::AnalysisObject, true, true};
7071

7172
void init(o2::framework::InitContext&)
7273
{
@@ -274,14 +275,18 @@ struct NucleiHistTask {
274275

275276
// QA histograms
276277
MC_spectra_reg.add("histRecVtxZData", "collision z position", HistType::kTH1F, {{200, -20., +20., "z position (cm)"}});
278+
MC_spectra_reconstructed_reg.add("histDcaVsPtData_particle", "dcaXY vs Pt (particle)", HistType::kTH2F, {ptAxis, {250, -0.5, 0.5, "dca"}});
279+
MC_spectra_reconstructed_reg.add("histDcaZVsPtData_particle", "dcaZ vs Pt (particle)", HistType::kTH2F, {ptAxis, {1000, -2.0, 2.0, "dca"}});
280+
MC_spectra_reconstructed_reg.add("histDcaVsPtData_antiparticle", "dcaXY vs Pt (antiparticle)", HistType::kTH2F, {ptAxis, {250, -0.5, 0.5, "dca"}});
281+
MC_spectra_reconstructed_reg.add("histDcaZVsPtData_antiparticle", "dcaZ vs Pt (antiparticle)", HistType::kTH2F, {ptAxis, {1000, -2.0, 2.0, "dca"}});
277282

278283
// MC generated
279284
MC_proton_gen_reg.add("histPt", "p_{T} distribution (p)", HistType::kTH1F, {ptAxis});
280285
MC_aproton_gen_reg.add("histPt", "p_{T} distribution (antip)", HistType::kTH1F, {ptAxis});
281286
MC_deuteron_gen_reg.add("histPt", "p_{T} distribution (d)", HistType::kTH1F, {ptAxis});
282287
MC_adeuteron_gen_reg.add("histPt", "p_{T} distribution (antid)", HistType::kTH1F, {ptAxis});
283288

284-
// MC tracked
289+
// MC tracking
285290
MC_proton_track_reg.add("histPt", "p_{T} distribution (p)", HistType::kTH1F, {ptAxis});
286291
MC_aproton_track_reg.add("histPt", "p_{T} distribution (antip)", HistType::kTH1F, {ptAxis});
287292
MC_deuteron_track_reg.add("histPt", "p_{T} distribution (d)", HistType::kTH1F, {ptAxis});
@@ -297,26 +302,26 @@ struct NucleiHistTask {
297302
MC_deuteron_track_reg.add("histTofNsigmaData", "n-sigma TOF tracked (d)", HistType::kTH2F, {ptAxis, {160, -20., +20., "n#sigma_{d}"}});
298303
MC_adeuteron_track_reg.add("histTofNsigmaData", "n-sigma TOF tracked (antid)", HistType::kTH2F, {ptAxis, {160, -20., +20., "n#sigma_{antid}"}});
299304

300-
// MC reconstructed
301-
MC_proton_rec_reg.add("histPt_tpc", "p_{T} distribution (p)", HistType::kTH1F, {ptAxis});
302-
MC_aproton_rec_reg.add("histPt_tpc", "p_{T} distribution (antip)", HistType::kTH1F, {ptAxis});
303-
MC_deuteron_rec_reg.add("histPt_tpc", "p_{T} distribution (d)", HistType::kTH1F, {ptAxis});
304-
MC_adeuteron_rec_reg.add("histPt_tpc", "p_{T} distribution (antid)", HistType::kTH1F, {ptAxis});
305-
306-
MC_proton_rec_reg.add("histPt_tof", "p_{T} distribution (p)", HistType::kTH1F, {ptAxis});
307-
MC_aproton_rec_reg.add("histPt_tof", "p_{T} distribution (antip)", HistType::kTH1F, {ptAxis});
308-
MC_deuteron_rec_reg.add("histPt_tof", "p_{T} distribution (d)", HistType::kTH1F, {ptAxis});
309-
MC_adeuteron_rec_reg.add("histPt_tof", "p_{T} distribution (antid)", HistType::kTH1F, {ptAxis});
310-
311-
MC_proton_rec_reg.add("histTpcNsigmaData", "n-sigma TPC reconstructed (p)", HistType::kTH2F, {ptAxis, {160, -20., +20., "n#sigma_{p}"}});
312-
MC_aproton_rec_reg.add("histTpcNsigmaData", "n-sigma TPC reconstructed (antip)", HistType::kTH2F, {ptAxis, {160, -20., +20., "n#sigma_{antip}"}});
313-
MC_deuteron_rec_reg.add("histTpcNsigmaData", "n-sigma TPC reconstructed (d)", HistType::kTH2F, {ptAxis, {160, -20., +20., "n#sigma_{d}"}});
314-
MC_adeuteron_rec_reg.add("histTpcNsigmaData", "n-sigma TPC reconstructed (antid)", HistType::kTH2F, {ptAxis, {160, -20., +20., "n#sigma_{antid}"}});
315-
316-
MC_proton_rec_reg.add("histTofNsigmaData", "n-sigma TOF reconstructed (p)", HistType::kTH2F, {ptAxis, {160, -20., +20., "n#sigma_{p}"}});
317-
MC_aproton_rec_reg.add("histTofNsigmaData", "n-sigma TOF reconstructed (antip)", HistType::kTH2F, {ptAxis, {160, -20., +20., "n#sigma_{antip}"}});
318-
MC_deuteron_rec_reg.add("histTofNsigmaData", "n-sigma TOF reconstructed (d)", HistType::kTH2F, {ptAxis, {160, -20., +20., "n#sigma_{d}"}});
319-
MC_adeuteron_rec_reg.add("histTofNsigmaData", "n-sigma TOF reconstructed (antid)", HistType::kTH2F, {ptAxis, {160, -20., +20., "n#sigma_{antid}"}});
305+
// MC PID
306+
MC_proton_PID_reg.add("histPt_tpc", "p_{T} distribution (p)", HistType::kTH1F, {ptAxis});
307+
MC_aproton_PID_reg.add("histPt_tpc", "p_{T} distribution (antip)", HistType::kTH1F, {ptAxis});
308+
MC_deuteron_PID_reg.add("histPt_tpc", "p_{T} distribution (d)", HistType::kTH1F, {ptAxis});
309+
MC_adeuteron_PID_reg.add("histPt_tpc", "p_{T} distribution (antid)", HistType::kTH1F, {ptAxis});
310+
311+
MC_proton_PID_reg.add("histPt_tof", "p_{T} distribution (p)", HistType::kTH1F, {ptAxis});
312+
MC_aproton_PID_reg.add("histPt_tof", "p_{T} distribution (antip)", HistType::kTH1F, {ptAxis});
313+
MC_deuteron_PID_reg.add("histPt_tof", "p_{T} distribution (d)", HistType::kTH1F, {ptAxis});
314+
MC_adeuteron_PID_reg.add("histPt_tof", "p_{T} distribution (antid)", HistType::kTH1F, {ptAxis});
315+
316+
MC_proton_PID_reg.add("histTpcNsigmaData", "n-sigma TPC PID (p)", HistType::kTH2F, {ptAxis, {160, -20., +20., "n#sigma_{p}"}});
317+
MC_aproton_PID_reg.add("histTpcNsigmaData", "n-sigma TPC PID (antip)", HistType::kTH2F, {ptAxis, {160, -20., +20., "n#sigma_{antip}"}});
318+
MC_deuteron_PID_reg.add("histTpcNsigmaData", "n-sigma TPC PID (d)", HistType::kTH2F, {ptAxis, {160, -20., +20., "n#sigma_{d}"}});
319+
MC_adeuteron_PID_reg.add("histTpcNsigmaData", "n-sigma TPC PID (antid)", HistType::kTH2F, {ptAxis, {160, -20., +20., "n#sigma_{antid}"}});
320+
321+
MC_proton_PID_reg.add("histTofNsigmaData", "n-sigma TOF PID (p)", HistType::kTH2F, {ptAxis, {160, -20., +20., "n#sigma_{p}"}});
322+
MC_aproton_PID_reg.add("histTofNsigmaData", "n-sigma TOF PID (antip)", HistType::kTH2F, {ptAxis, {160, -20., +20., "n#sigma_{antip}"}});
323+
MC_deuteron_PID_reg.add("histTofNsigmaData", "n-sigma TOF PID (d)", HistType::kTH2F, {ptAxis, {160, -20., +20., "n#sigma_{d}"}});
324+
MC_adeuteron_PID_reg.add("histTofNsigmaData", "n-sigma TOF PID (antid)", HistType::kTH2F, {ptAxis, {160, -20., +20., "n#sigma_{antid}"}});
320325
}
321326

322327
// Configurables
@@ -1279,12 +1284,22 @@ struct NucleiHistTask {
12791284
}
12801285
PROCESS_SWITCH(NucleiHistTask, processMC_tracked, "process tracked MC data", false);
12811286

1282-
void processMC_reconstructed(soa::Join<aod::Collisions, aod::McCollisionLabels>::iterator const& collision, soa::Filtered<soa::Join<aod::Tracks, aod::TracksExtra, aod::TracksDCA, aod::McTrackLabels, aod::TrackSelection, aod::TrackSelectionExtension, aod::pidTPCLfFullPr, aod::pidTOFFullPr, aod::pidTPCLfFullDe, aod::pidTOFFullDe>> const& tracks, aod::McParticles& mcParticles, aod::McCollisions const& mcCollisions)
1287+
void processMC_PID(soa::Join<aod::Collisions, aod::McCollisionLabels>::iterator const& collision, soa::Filtered<soa::Join<aod::Tracks, aod::TracksExtra, aod::TracksDCA, aod::McTrackLabels, aod::TrackSelection, aod::TrackSelectionExtension, aod::pidTPCLfFullPr, aod::pidTOFFullPr, aod::pidTPCLfFullDe, aod::pidTOFFullDe>> const& tracks, aod::McParticles& mcParticles, aod::McCollisions const& mcCollisions)
12831288
{
12841289
LOGF(info, "vtx-z (data) = %f | vtx-z (MC) = %f", collision.posZ(), collision.mcCollision().posZ());
12851290

12861291
for (auto& track : tracks) {
12871292

1293+
if (track.sign() > 0) {
1294+
MC_spectra_reconstructed_reg.fill(HIST("histDcaZVsPtData_particle"), track.pt(), track.dcaZ());
1295+
MC_spectra_reconstructed_reg.fill(HIST("histDcaVsPtData_particle"), track.pt(), track.dcaXY());
1296+
}
1297+
1298+
if (track.sign() < 0) {
1299+
MC_spectra_reconstructed_reg.fill(HIST("histDcaZVsPtData_antiparticle"), track.pt(), track.dcaZ());
1300+
MC_spectra_reconstructed_reg.fill(HIST("histDcaVsPtData_antiparticle"), track.pt(), track.dcaXY());
1301+
}
1302+
12881303
const auto particle = track.mcParticle();
12891304
if (!particle.isPhysicalPrimary()) {
12901305
continue;
@@ -1335,9 +1350,9 @@ struct NucleiHistTask {
13351350
if (track.sign() > 0) {
13361351

13371352
// proton
1338-
MC_proton_rec_reg.fill(HIST("histTpcNsigmaData"), track.pt(), track.tpcNSigmaPr());
1353+
MC_proton_PID_reg.fill(HIST("histTpcNsigmaData"), track.pt(), track.tpcNSigmaPr());
13391354
if (nSigmaProton < nsigmacutHigh && nSigmaProton > nsigmacutLow) {
1340-
MC_proton_rec_reg.fill(HIST("histPt_tpc"), track.pt());
1355+
MC_proton_PID_reg.fill(HIST("histPt_tpc"), track.pt());
13411356

13421357
if (track.hasTOF()) {
13431358

@@ -1354,17 +1369,17 @@ struct NucleiHistTask {
13541369
}
13551370
}
13561371

1357-
MC_proton_rec_reg.fill(HIST("histTofNsigmaData"), track.pt(), track.tofNSigmaPr());
1372+
MC_proton_PID_reg.fill(HIST("histTofNsigmaData"), track.pt(), track.tofNSigmaPr());
13581373
if (nSigmaProtonTOF < nsigmacutHigh && nSigmaProtonTOF > nsigmacutLow) {
1359-
MC_proton_rec_reg.fill(HIST("histPt_tof"), track.pt());
1374+
MC_proton_PID_reg.fill(HIST("histPt_tof"), track.pt());
13601375
}
13611376
}
13621377
}
13631378

13641379
// deuteron
1365-
MC_deuteron_rec_reg.fill(HIST("histTpcNsigmaData"), track.pt(), track.tpcNSigmaDe());
1380+
MC_deuteron_PID_reg.fill(HIST("histTpcNsigmaData"), track.pt(), track.tpcNSigmaDe());
13661381
if (nSigmaDeuteron < nsigmacutHigh && nSigmaDeuteron > nsigmacutLow) {
1367-
MC_deuteron_rec_reg.fill(HIST("histPt_tpc"), track.pt());
1382+
MC_deuteron_PID_reg.fill(HIST("histPt_tpc"), track.pt());
13681383

13691384
if (track.hasTOF()) {
13701385

@@ -1381,9 +1396,9 @@ struct NucleiHistTask {
13811396
}
13821397
}
13831398

1384-
MC_deuteron_rec_reg.fill(HIST("histTofNsigmaData"), track.pt(), track.tofNSigmaDe());
1399+
MC_deuteron_PID_reg.fill(HIST("histTofNsigmaData"), track.pt(), track.tofNSigmaDe());
13851400
if (nSigmaDeuteronTOF < (nsigmacutHigh - 1) && nSigmaDeuteronTOF > (nsigmacutLow + 1)) {
1386-
MC_deuteron_rec_reg.fill(HIST("histPt_tof"), track.pt());
1401+
MC_deuteron_PID_reg.fill(HIST("histPt_tof"), track.pt());
13871402
}
13881403
}
13891404
}
@@ -1393,9 +1408,9 @@ struct NucleiHistTask {
13931408
if (track.sign() < 0) {
13941409

13951410
// antiproton
1396-
MC_aproton_rec_reg.fill(HIST("histTpcNsigmaData"), track.pt(), track.tpcNSigmaPr());
1411+
MC_aproton_PID_reg.fill(HIST("histTpcNsigmaData"), track.pt(), track.tpcNSigmaPr());
13971412
if (nSigmaProton < nsigmacutHigh && nSigmaProton > nsigmacutLow) {
1398-
MC_aproton_rec_reg.fill(HIST("histPt_tpc"), track.pt());
1413+
MC_aproton_PID_reg.fill(HIST("histPt_tpc"), track.pt());
13991414

14001415
if (track.hasTOF()) {
14011416

@@ -1412,17 +1427,17 @@ struct NucleiHistTask {
14121427
}
14131428
}
14141429

1415-
MC_aproton_rec_reg.fill(HIST("histTofNsigmaData"), track.pt(), track.tofNSigmaPr());
1430+
MC_aproton_PID_reg.fill(HIST("histTofNsigmaData"), track.pt(), track.tofNSigmaPr());
14161431
if (nSigmaProtonTOF < nsigmacutHigh && nSigmaProtonTOF > nsigmacutLow) {
1417-
MC_aproton_rec_reg.fill(HIST("histPt_tof"), track.pt());
1432+
MC_aproton_PID_reg.fill(HIST("histPt_tof"), track.pt());
14181433
}
14191434
}
14201435
}
14211436

14221437
// antideuteron
1423-
MC_adeuteron_rec_reg.fill(HIST("histTpcNsigmaData"), track.pt(), track.tpcNSigmaDe());
1438+
MC_adeuteron_PID_reg.fill(HIST("histTpcNsigmaData"), track.pt(), track.tpcNSigmaDe());
14241439
if (nSigmaDeuteron < nsigmacutHigh && nSigmaDeuteron > nsigmacutLow) {
1425-
MC_adeuteron_rec_reg.fill(HIST("histPt_tpc"), track.pt());
1440+
MC_adeuteron_PID_reg.fill(HIST("histPt_tpc"), track.pt());
14261441

14271442
if (track.hasTOF()) {
14281443

@@ -1439,16 +1454,16 @@ struct NucleiHistTask {
14391454
}
14401455
}
14411456

1442-
MC_adeuteron_rec_reg.fill(HIST("histTofNsigmaData"), track.pt(), track.tofNSigmaDe());
1457+
MC_adeuteron_PID_reg.fill(HIST("histTofNsigmaData"), track.pt(), track.tofNSigmaDe());
14431458
if (nSigmaDeuteronTOF < (nsigmacutHigh - 1) && nSigmaDeuteronTOF > (nsigmacutLow + 1)) {
1444-
MC_adeuteron_rec_reg.fill(HIST("histPt_tof"), track.pt());
1459+
MC_adeuteron_PID_reg.fill(HIST("histPt_tof"), track.pt());
14451460
}
14461461
}
14471462
}
14481463
}
14491464
}
14501465
}
1451-
PROCESS_SWITCH(NucleiHistTask, processMC_reconstructed, "process reconstructed MC data", false);
1466+
PROCESS_SWITCH(NucleiHistTask, processMC_PID, "process PID MC data", false);
14521467
};
14531468

14541469
//****************************************************************************************************

0 commit comments

Comments
 (0)