@@ -351,6 +351,8 @@ struct SingleTrackQCMC {
351351 fRegistry.add("Track/PromptLF/positive/hDCAxRes_Pt", "DCA_{x} resolution vs. pT;p_{T} (GeV/c);DCA_{x} resolution (#mum)", kTH2F, {{200, 0, 10}, {500, 0, 500}}, false);
352352 fRegistry.add("Track/PromptLF/positive/hDCAyRes_Pt", "DCA_{y} resolution vs. pT;p_{T} (GeV/c);DCA_{y} resolution (#mum)", kTH2F, {{200, 0, 10}, {500, 0, 500}}, false);
353353 fRegistry.add("Track/PromptLF/positive/hDCAxyRes_Pt", "DCA_{xy} resolution vs. pT;p_{T} (GeV/c);DCA_{xy} resolution (#mum)", kTH2F, {{200, 0, 10}, {500, 0, 500}}, false);
354+ fRegistry.add("Track/PromptLF/positive/hDCAx_PosZ", "DCA_{x} vs. posZ;Z_{vtx} (cm);DCA_{x} (cm)", kTH2F, {{200, -10, 10}, {200, -1, +1}}, false);
355+ fRegistry.add("Track/PromptLF/positive/hDCAy_PosZ", "DCA_{y} vs. posZ;Z_{vtx} (cm);DCA_{y} (cm)", kTH2F, {{200, -10, 10}, {200, -1, +1}}, false);
354356 fRegistry.add("Track/PromptLF/positive/hNclsMCH", "number of MCH clusters", kTH1F, {{21, -0.5, 20.5}}, false);
355357 fRegistry.add("Track/PromptLF/positive/hNclsMFT", "number of MFT clusters", kTH1F, {{11, -0.5, 10.5}}, false);
356358 fRegistry.add("Track/PromptLF/positive/hPDCA", "pDCA;R at absorber (cm);p #times DCA (GeV/c #upoint cm)", kTH2F, {{100, 0, 100}, {100, 0.0f, 1000}}, false);
@@ -614,13 +616,13 @@ struct SingleTrackQCMC {
614616 }
615617 }
616618
617- template <int lepton_source_id, typename TMCParticles, typename TTrack>
618- void fillTrackInfo(TTrack const& track)
619+ template <int lepton_source_id, typename TMCParticles, typename TTrack, typename TCollision >
620+ void fillTrackInfo(TTrack const& track, TCollision const& collision )
619621 {
620622 if constexpr (pairtype == o2::aod::pwgem::dilepton::utils::pairutil::DileptonPairType::kDielectron) {
621623 fillElectronInfo<lepton_source_id, TMCParticles>(track);
622624 } else if constexpr (pairtype == o2::aod::pwgem::dilepton::utils::pairutil::DileptonPairType::kDimuon) {
623- fillMuonInfo<lepton_source_id, TMCParticles>(track);
625+ fillMuonInfo<lepton_source_id, TMCParticles>(track, collision );
624626 }
625627 }
626628
@@ -734,8 +736,8 @@ struct SingleTrackQCMC {
734736 }
735737 }
736738
737- template <int lepton_source_id, typename TMCParticles, typename TTrack>
738- void fillMuonInfo(TTrack const& track)
739+ template <int lepton_source_id, typename TMCParticles, typename TTrack, typename TCollision >
740+ void fillMuonInfo(TTrack const& track, TCollision const& collision )
739741 {
740742 auto mctrack = track.template emmcparticle_as<TMCParticles>();
741743 float dca_xy = fwdDcaXYinSigma(track);
@@ -765,6 +767,8 @@ struct SingleTrackQCMC {
765767 fRegistry.fill(HIST("Track/") + HIST(lepton_source_types[lepton_source_id]) + HIST("positive/hDCAxRes_Pt"), track.pt(), std::sqrt(track.cXXatDCA()) * 1e+4);
766768 fRegistry.fill(HIST("Track/") + HIST(lepton_source_types[lepton_source_id]) + HIST("positive/hDCAyRes_Pt"), track.pt(), std::sqrt(track.cYYatDCA()) * 1e+4);
767769 fRegistry.fill(HIST("Track/") + HIST(lepton_source_types[lepton_source_id]) + HIST("positive/hDCAxyRes_Pt"), track.pt(), sigmaFwdDcaXY(track) * 1e+4);
770+ fRegistry.fill(HIST("Track/") + HIST(lepton_source_types[lepton_source_id]) + HIST("positive/hDCAx_PosZ"), collision.posZ(), track.fwdDcaX());
771+ fRegistry.fill(HIST("Track/") + HIST(lepton_source_types[lepton_source_id]) + HIST("positive/hDCAy_PosZ"), collision.posZ(), track.fwdDcaY());
768772 fRegistry.fill(HIST("Track/") + HIST(lepton_source_types[lepton_source_id]) + HIST("positive/hNclsMCH"), track.nClusters());
769773 fRegistry.fill(HIST("Track/") + HIST(lepton_source_types[lepton_source_id]) + HIST("positive/hNclsMFT"), track.nClustersMFT());
770774 fRegistry.fill(HIST("Track/") + HIST(lepton_source_types[lepton_source_id]) + HIST("positive/hPDCA"), track.rAtAbsorberEnd(), track.pDca());
@@ -793,6 +797,8 @@ struct SingleTrackQCMC {
793797 fRegistry.fill(HIST("Track/") + HIST(lepton_source_types[lepton_source_id]) + HIST("negative/hDCAxRes_Pt"), track.pt(), std::sqrt(track.cXXatDCA()) * 1e+4);
794798 fRegistry.fill(HIST("Track/") + HIST(lepton_source_types[lepton_source_id]) + HIST("negative/hDCAyRes_Pt"), track.pt(), std::sqrt(track.cYYatDCA()) * 1e+4);
795799 fRegistry.fill(HIST("Track/") + HIST(lepton_source_types[lepton_source_id]) + HIST("negative/hDCAxyRes_Pt"), track.pt(), sigmaFwdDcaXY(track) * 1e+4);
800+ fRegistry.fill(HIST("Track/") + HIST(lepton_source_types[lepton_source_id]) + HIST("negative/hDCAx_PosZ"), collision.posZ(), track.fwdDcaX());
801+ fRegistry.fill(HIST("Track/") + HIST(lepton_source_types[lepton_source_id]) + HIST("negative/hDCAy_PosZ"), collision.posZ(), track.fwdDcaY());
796802 fRegistry.fill(HIST("Track/") + HIST(lepton_source_types[lepton_source_id]) + HIST("negative/hNclsMCH"), track.nClusters());
797803 fRegistry.fill(HIST("Track/") + HIST(lepton_source_types[lepton_source_id]) + HIST("negative/hNclsMFT"), track.nClustersMFT());
798804 fRegistry.fill(HIST("Track/") + HIST(lepton_source_types[lepton_source_id]) + HIST("negative/hPDCA"), track.rAtAbsorberEnd(), track.pDca());
@@ -881,28 +887,28 @@ struct SingleTrackQCMC {
881887 if (mctrack.isPhysicalPrimary() || mctrack.producedByGenerator()) {
882888 if (pdg_mother == 111 || pdg_mother == 221 || pdg_mother == 331 || pdg_mother == 113 || pdg_mother == 223 || pdg_mother == 333) {
883889 if (IsFromCharm(mcmother, mcparticles) < 0 && IsFromBeauty(mcmother, mcparticles) < 0) {
884- fillTrackInfo<0, TMCParticles>(track); // PromptLF
890+ fillTrackInfo<0, TMCParticles>(track, collision ); // PromptLF
885891 } else {
886- fillTrackInfo<1, TMCParticles>(track); // NonPromptLF
892+ fillTrackInfo<1, TMCParticles>(track, collision ); // NonPromptLF
887893 }
888894 } else if (pdg_mother == 443) {
889895 if (IsFromBeauty(mcmother, mcparticles) > 0) { // b is found in full decay chain.
890- fillTrackInfo<4, TMCParticles>(track);
896+ fillTrackInfo<4, TMCParticles>(track, collision );
891897 } else {
892- fillTrackInfo<3, TMCParticles>(track);
898+ fillTrackInfo<3, TMCParticles>(track, collision );
893899 }
894900 } else if (isWeakDecayFromBeautyHadron(mctrack, mcparticles)) { // hb->l is found in full decay chain.
895- fillTrackInfo<6, TMCParticles>(track);
901+ fillTrackInfo<6, TMCParticles>(track, collision );
896902 } else if (isWeakDecayFromCharmHadron(mctrack, mcparticles)) { // hc->l is found in full decay chain.
897903 if (IsFromBeauty(mcmother, mcparticles) > 0) {
898- fillTrackInfo<7, TMCParticles>(track); // hb->hc->l is fond.
904+ fillTrackInfo<7, TMCParticles>(track, collision ); // hb->hc->l is fond.
899905 } else {
900- fillTrackInfo<5, TMCParticles>(track); // prompt hc->l is found.
906+ fillTrackInfo<5, TMCParticles>(track, collision ); // prompt hc->l is found.
901907 }
902908 }
903909 } else {
904910 if (pdg_mother == 22) { // photon conversion
905- fillTrackInfo<2, TMCParticles>(track);
911+ fillTrackInfo<2, TMCParticles>(track, collision );
906912 }
907913 }
908914 } // end of track loop
0 commit comments