@@ -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