1515// / \author Abhi Modak (abhi.modak@cern.ch)
1616// / \since October 01, 2025
1717
18+ #include " PWGLF/DataModel/LFStrangenessTables.h"
19+ #include " PWGMM/Mult/DataModel/Index.h"
20+ #include " PWGMM/Mult/DataModel/bestCollisionTable.h"
21+
1822#include " Common/CCDB/EventSelectionParams.h"
23+ #include " Common/Core/TrackSelection.h"
24+ #include " Common/Core/trackUtilities.h"
1925#include " Common/DataModel/Centrality.h"
2026#include " Common/DataModel/EventSelection.h"
21- #include " Common/DataModel/McCollisionExtra.h"
2227#include " Common/DataModel/Multiplicity.h"
2328#include " Common/DataModel/TrackSelectionTables.h"
2429
25- #include < CommonConstants/MathConstants.h>
26- #include < Framework/AnalysisDataModel.h>
27- #include < Framework/AnalysisHelpers.h>
28- #include < Framework/AnalysisTask.h>
29- #include < Framework/Configurable.h>
30- #include < Framework/DataTypes.h>
31- #include < Framework/HistogramRegistry.h>
32- #include < Framework/HistogramSpec.h>
33- #include < Framework/InitContext.h>
34- #include < Framework/O2DatabasePDGPlugin.h>
35- #include < Framework/OutputObjHeader.h>
36- #include < Framework/runDataProcessing.h>
37-
38- #include < TH1.h>
30+ #include " CCDB/BasicCCDBManager.h"
31+ #include " CommonConstants/MathConstants.h"
32+ #include " Framework/ASoAHelpers.h"
33+ #include " Framework/AnalysisDataModel.h"
34+ #include " Framework/AnalysisTask.h"
35+ #include " Framework/Configurable.h"
36+ #include " Framework/O2DatabasePDGPlugin.h"
37+ #include " Framework/runDataProcessing.h"
38+ #include " ReconstructionDataFormats/GlobalTrackID.h"
39+ #include " ReconstructionDataFormats/Track.h"
40+
3941#include < TPDGCode.h>
4042
41- #include < algorithm>
4243#include < cmath>
43- #include < cstdint>
4444#include < cstdlib>
4545#include < vector>
4646
@@ -190,7 +190,7 @@ struct PtmultCorr {
190190 histos.add (" hPbPbRecMCvtxz" , " hPbPbRecMCvtxz" , kTH1D , {axisVtxZ}, false );
191191 histos.add (" hPbPbRecMCvtxzcent" , " hPbPbRecMCvtxzcent" , kTH2D , {axisVtxZ, centAxis}, false );
192192 histos.add (" hPbPbRecMCcent" , " hPbPbRecMCcent" , kTH1D , {axisCent}, false );
193- histos.add (" hPbPbRecMCdndpt" , " hPbPbRecMCdndpt" , kTHnSparseD , {axisVtxZ, centAxis, axisPt, axisPhi, axisRecTrkType}, false );
193+ histos.add (" hPbPbRecMCdndpt" , " hPbPbRecMCdndpt" , kTHnSparseD , {axisVtxZ, centAxis, axisPt, axisPhi, axisRecTrkType, axisTrackType }, false );
194194 histos.add (" hPbPbEtaReso" , " hPbPbEtaReso" , kTH2D , {axisPt, axisDeltaPt});
195195 }
196196
@@ -201,7 +201,7 @@ struct PtmultCorr {
201201 histos.add (" hppGenMCAssoRecdndpt" , " hppGenMCAssoRecdndpt" , kTHnSparseD , {axisVtxZ, axisPt, axisPhi, axisGenTrkType, axisGenPtVary}, false );
202202
203203 histos.add (" hppRecMCvtxz" , " hppRecMCvtxz" , kTH1D , {axisVtxZ}, false );
204- histos.add (" hppRecMCdndpt" , " hppRecMCdndpt" , kTHnSparseD , {axisVtxZ, axisPt, axisPhi, axisRecTrkType}, false );
204+ histos.add (" hppRecMCdndpt" , " hppRecMCdndpt" , kTHnSparseD , {axisVtxZ, axisPt, axisPhi, axisRecTrkType, axisTrackType }, false );
205205 histos.add (" hppEtaReso" , " hppEtaReso" , kTH2D , {axisPt, axisDeltaPt});
206206 }
207207
@@ -445,14 +445,20 @@ struct PtmultCorr {
445445 if (!isTrackSelected (Rectrack)) {
446446 continue ;
447447 }
448- histos.fill (HIST (" hPbPbRecMCdndpt" ), RecCol.posZ (), RecCol.centFT0C (), Rectrack.pt (), Rectrack.phi (), static_cast <double >(kRecoAll ));
448+ auto trkType = Rectrack.hasTPC () ? kGlobalonly : kITSonly ;
449+
450+ histos.fill (HIST (" hPbPbRecMCdndpt" ), RecCol.posZ (), RecCol.centFT0C (), Rectrack.pt (), Rectrack.phi (), static_cast <double >(kRecoAll ),kGlobalplusITS );
451+ histos.fill (HIST (" hPbPbRecMCdndpt" ), RecCol.posZ (), RecCol.centFT0C (), Rectrack.pt (), Rectrack.phi (), static_cast <double >(kRecoAll ),trkType);
452+
449453 if (Rectrack.has_mcParticle ()) {
450454 int pid = 0 ;
451455 auto mcpart = Rectrack.mcParticle ();
452456 histos.fill (HIST (" hPbPbEtaReso" ), Rectrack.pt (), Rectrack.pt () - mcpart.pt ());
453- histos.fill (HIST (" hPbPbRecMCdndpt" ), RecCol.posZ (), RecCol.centFT0C (), mcpart.pt (), mcpart.phi (), static_cast <double >(kRecoHasmc ));
457+ histos.fill (HIST (" hPbPbRecMCdndpt" ), RecCol.posZ (), RecCol.centFT0C (), mcpart.pt (), mcpart.phi (), static_cast <double >(kRecoHasmc ),kGlobalplusITS );
458+ histos.fill (HIST (" hPbPbRecMCdndpt" ), RecCol.posZ (), RecCol.centFT0C (), mcpart.pt (), mcpart.phi (), static_cast <double >(kRecoHasmc ),trkType);
454459 if (mcpart.isPhysicalPrimary ()) {
455- histos.fill (HIST (" hPbPbRecMCdndpt" ), RecCol.posZ (), RecCol.centFT0C (), mcpart.pt (), mcpart.phi (), static_cast <double >(kRecoPrimary ));
460+ histos.fill (HIST (" hPbPbRecMCdndpt" ), RecCol.posZ (), RecCol.centFT0C (), mcpart.pt (), mcpart.phi (), static_cast <double >(kRecoPrimary ),kGlobalplusITS );
461+ histos.fill (HIST (" hPbPbRecMCdndpt" ), RecCol.posZ (), RecCol.centFT0C (), mcpart.pt (), mcpart.phi (), static_cast <double >(kRecoPrimary ),trkType);
456462 switch (std::abs (mcpart.pdgCode ())) {
457463 case PDG_t::kPiPlus :
458464 pid = kRecoPion ;
@@ -480,9 +486,11 @@ struct PtmultCorr {
480486 pid = kRecoFake ;
481487 }
482488 mclabels.push_back (Rectrack.mcParticleId ());
483- histos.fill (HIST (" hPbPbRecMCdndpt" ), RecCol.posZ (), RecCol.centFT0C (), mcpart.pt (), mcpart.phi (), static_cast <double >(pid));
489+ histos.fill (HIST (" hPbPbRecMCdndpt" ), RecCol.posZ (), RecCol.centFT0C (), mcpart.pt (), mcpart.phi (), static_cast <double >(pid),kGlobalplusITS );
490+ histos.fill (HIST (" hPbPbRecMCdndpt" ), RecCol.posZ (), RecCol.centFT0C (), mcpart.pt (), mcpart.phi (), static_cast <double >(pid),trkType);
484491 } else {
485- histos.fill (HIST (" hPbPbRecMCdndpt" ), RecCol.posZ (), RecCol.centFT0C (), Rectrack.pt (), Rectrack.phi (), static_cast <double >(kRecoBkg ));
492+ histos.fill (HIST (" hPbPbRecMCdndpt" ), RecCol.posZ (), RecCol.centFT0C (), Rectrack.pt (), Rectrack.phi (), static_cast <double >(kRecoBkg ),kGlobalplusITS );
493+ histos.fill (HIST (" hPbPbRecMCdndpt" ), RecCol.posZ (), RecCol.centFT0C (), Rectrack.pt (), Rectrack.phi (), static_cast <double >(kRecoBkg ),trkType);
486494 }
487495 } // track (mcrec) loop
488496 } // collision loop
@@ -551,14 +559,18 @@ struct PtmultCorr {
551559 if (!isTrackSelected (Rectrack)) {
552560 continue ;
553561 }
554- histos.fill (HIST (" hppRecMCdndpt" ), RecCol.posZ (), Rectrack.pt (), Rectrack.phi (), static_cast <double >(kRecoAll ));
562+ auto trkType = Rectrack.hasTPC () ? kGlobalonly : kITSonly ;
563+ histos.fill (HIST (" hppRecMCdndpt" ), RecCol.posZ (), Rectrack.pt (), Rectrack.phi (), static_cast <double >(kRecoAll ),kGlobalplusITS );
564+ histos.fill (HIST (" hppRecMCdndpt" ), RecCol.posZ (), Rectrack.pt (), Rectrack.phi (), static_cast <double >(kRecoAll ),trkType);
555565 if (Rectrack.has_mcParticle ()) {
556566 int pid = 0 ;
557567 auto mcpart = Rectrack.mcParticle ();
558568 histos.fill (HIST (" hppEtaReso" ), Rectrack.pt (), Rectrack.pt () - mcpart.pt ());
559- histos.fill (HIST (" hppRecMCdndpt" ), RecCol.posZ (), mcpart.pt (), mcpart.phi (), static_cast <double >(kRecoHasmc ));
569+ histos.fill (HIST (" hppRecMCdndpt" ), RecCol.posZ (), mcpart.pt (), mcpart.phi (), static_cast <double >(kRecoHasmc ),kGlobalplusITS );
570+ histos.fill (HIST (" hppRecMCdndpt" ), RecCol.posZ (), mcpart.pt (), mcpart.phi (), static_cast <double >(kRecoHasmc ),trkType);
560571 if (mcpart.isPhysicalPrimary ()) {
561- histos.fill (HIST (" hppRecMCdndpt" ), RecCol.posZ (), mcpart.pt (), mcpart.phi (), static_cast <double >(kRecoPrimary ));
572+ histos.fill (HIST (" hppRecMCdndpt" ), RecCol.posZ (), mcpart.pt (), mcpart.phi (), static_cast <double >(kRecoPrimary ),kGlobalplusITS );
573+ histos.fill (HIST (" hppRecMCdndpt" ), RecCol.posZ (), mcpart.pt (), mcpart.phi (), static_cast <double >(kRecoPrimary ),trkType);
562574 switch (std::abs (mcpart.pdgCode ())) {
563575 case PDG_t::kPiPlus :
564576 pid = kRecoPion ;
@@ -586,9 +598,11 @@ struct PtmultCorr {
586598 pid = kRecoFake ;
587599 }
588600 mclabels.push_back (Rectrack.mcParticleId ());
589- histos.fill (HIST (" hppRecMCdndpt" ), RecCol.posZ (), mcpart.pt (), mcpart.phi (), static_cast <double >(pid));
601+ histos.fill (HIST (" hppRecMCdndpt" ), RecCol.posZ (), mcpart.pt (), mcpart.phi (), static_cast <double >(pid),kGlobalplusITS );
602+ histos.fill (HIST (" hppRecMCdndpt" ), RecCol.posZ (), mcpart.pt (), mcpart.phi (), static_cast <double >(pid),trkType);
590603 } else {
591- histos.fill (HIST (" hppRecMCdndpt" ), RecCol.posZ (), Rectrack.pt (), Rectrack.phi (), static_cast <double >(kRecoBkg ));
604+ histos.fill (HIST (" hppRecMCdndpt" ), RecCol.posZ (), Rectrack.pt (), Rectrack.phi (), static_cast <double >(kRecoBkg ),kGlobalplusITS );
605+ histos.fill (HIST (" hppRecMCdndpt" ), RecCol.posZ (), Rectrack.pt (), Rectrack.phi (), static_cast <double >(kRecoBkg ),trkType);
592606 }
593607 } // track (mcrec) loop
594608 } // collision loop
0 commit comments