@@ -39,6 +39,9 @@ using namespace o2::framework::expressions;
3939
4040struct NPCascCandidate {
4141 int globalIndex;
42+ float pvX;
43+ float pvY;
44+ float pvZ;
4245 float cascPt;
4346 float cascEta;
4447 float cascPhi;
@@ -153,6 +156,10 @@ struct NonPromptCascadeTask {
153156 HistogramRegistry registry{
154157 " registry" ,
155158 {
159+ {" h_PV_x" , " Primary vertex x;x (cm)" , {HistType::kTH1D , {{100 , -1 ., 1 .}}}},
160+ {" h_PV_y" , " Primary vertex y;y (cm)" , {HistType::kTH1D , {{100 , -1 ., 1 .}}}},
161+ {" h_PV_z" , " Primary vertex z;z (cm)" , {HistType::kTH1D , {{100 , -1 ., 1 .}}}},
162+
156163 {" h_dca_Omega" , " DCA;DCA (cm)" , {HistType::kTH1D , {{200 , 0 ., .5 }}}},
157164 {" h_dcaxy_Omega" , " DCA xy;DCA_{xy} (cm)" , {HistType::kTH1D , {{200 , -.5 , .5 }}}},
158165 {" h_dcaz_Omega" , " DCA z;DCA_{z} (cm)" , {HistType::kTH1D , {{200 , -.5 , .5 }}}},
@@ -410,6 +417,11 @@ struct NonPromptCascadeTask {
410417 continue ;
411418 }
412419
420+ // PV
421+ registry.fill (HIST (" h_PV_x" ), primaryVertex.getX ());
422+ registry.fill (HIST (" h_PV_y" ), primaryVertex.getY ());
423+ registry.fill (HIST (" h_PV_z" ), primaryVertex.getZ ());
424+
413425 // Omega
414426 masses = {o2::constants::physics::MassLambda0, o2::constants::physics::MassKPlus};
415427 const auto massOmega = RecoDecay::m (momenta, masses);
@@ -538,6 +550,7 @@ struct NonPromptCascadeTask {
538550 fillDauDCA (trackedCascade, bachelor, protonTrack, pionTrack, primaryVertex, isOmega, dDCA);
539551
540552 candidates.emplace_back (NPCascCandidate{static_cast <int >(track.globalIndex ()),
553+ primaryVertex.getX (), primaryVertex.getY (), primaryVertex.getZ (),
541554 track.pt (), track.eta (), track.phi (),
542555 mDCA .DCAxy , mDCA .DCAz , dDCA.protonDCAxy , dDCA.protonDCAz , dDCA.pionDCAxy , dDCA.pionDCAz , dDCA.bachDCAxy , dDCA.bachDCAz ,
543556 cascCpa, v0Cpa,
@@ -562,7 +575,8 @@ struct NonPromptCascadeTask {
562575 auto particle = mcParticles.iteratorAt (mcParticleId[i]);
563576 auto & c = candidates[i];
564577
565- NPCTableMC (c.cascPt , c.cascEta , c.cascPhi ,
578+ NPCTableMC (c.pvX , c.pvY , c.pvZ ,
579+ c.cascPt , c.cascEta , c.cascPhi ,
566580 c.cascDCAxy , c.cascDCAz , c.protonDCAxy , c.protonDCAz , c.pionDCAxy , c.pionDCAz , c.bachDCAxy , c.bachDCAz ,
567581 c.casccosPA , c.v0cosPA ,
568582 c.massXi , c.massOmega , c.massV0 ,
@@ -644,6 +658,11 @@ struct NonPromptCascadeTask {
644658 continue ;
645659 }
646660
661+ // PV
662+ registry.fill (HIST (" h_PV_x" ), primaryVertex.getX ());
663+ registry.fill (HIST (" h_PV_y" ), primaryVertex.getY ());
664+ registry.fill (HIST (" h_PV_z" ), primaryVertex.getZ ());
665+
647666 // Omega
648667 masses = {o2::constants::physics::MassLambda0, o2::constants::physics::MassKPlus};
649668 const auto massOmega = RecoDecay::m (momenta, masses);
@@ -764,6 +783,7 @@ struct NonPromptCascadeTask {
764783 fillDauDCA (trackedCascade, bachelor, protonTrack, pionTrack, primaryVertex, isOmega, dDCA);
765784
766785 candidates.emplace_back (NPCascCandidate{static_cast <int >(track.globalIndex ()),
786+ primaryVertex.getX (), primaryVertex.getY (), primaryVertex.getZ (),
767787 track.pt (), track.eta (), track.phi (),
768788 mDCA .DCAxy , mDCA .DCAz , dDCA.protonDCAxy , dDCA.protonDCAz , dDCA.pionDCAxy , dDCA.pionDCAz , dDCA.bachDCAxy , dDCA.bachDCAz ,
769789 cascCpa, v0Cpa,
@@ -778,7 +798,8 @@ struct NonPromptCascadeTask {
778798
779799 for (auto & c : candidates) {
780800
781- NPCTable (c.cascPt , c.cascEta , c.cascPhi ,
801+ NPCTable (c.pvX , c.pvY , c.pvZ ,
802+ c.cascPt , c.cascEta , c.cascPhi ,
782803 c.cascDCAxy , c.cascDCAz , c.protonDCAxy , c.protonDCAz , c.pionDCAxy , c.pionDCAz , c.bachDCAxy , c.bachDCAz ,
783804 c.casccosPA , c.v0cosPA ,
784805 c.massXi , c.massOmega , c.massV0 ,
0 commit comments