@@ -80,8 +80,8 @@ struct heptaquark {
8080 histos.add (" h_InvMass_rotLambda" , " h_InvMass_rotLambda" , {HistType::kTH3F , {massAxis, ptAxis, centAxis}});
8181 histos.add (" h_InvMass_rotPhiLambda" , " h_InvMass_rotPhiLambda" , {HistType::kTH3F , {massAxis, ptAxis, centAxis}});
8282
83- histos.add (" hDalitz" , " hDalitz" , {HistType::kTHnSparseF , {massPPAxis, massPLAxis, massAxis, ptAxis, centAxis}});
84- histos.add (" hDalitzRot" , " hDalitzRot" , {HistType::kTHnSparseF , {massPPAxis, massPLAxis, massAxis, ptAxis, centAxis}});
83+ histos.add (" hDalitz" , " hDalitz" , {HistType::kTHnSparseF , {massPPAxis, massPLAxis, massAxis, ptAxis, { 2 , - 0 . 5f , 1 . 5f }, centAxis}});
84+ histos.add (" hDalitzRot" , " hDalitzRot" , {HistType::kTHnSparseF , {massPPAxis, massPLAxis, massAxis, ptAxis, { 2 , - 0 . 5f , 1 . 5f }, centAxis}});
8585 }
8686
8787 double massLambda = o2::constants::physics::MassLambda;
@@ -172,6 +172,30 @@ struct heptaquark {
172172 return false ;
173173 }
174174
175+ template <typename V01, typename V02>
176+ ROOT::Math::XYZVector getDCAofV0V0 (V01 const & v01, V02 const & v02)
177+ {
178+ ROOT::Math::XYZVector v01pos, v02pos, v01mom, v02mom;
179+ v01pos.SetXYZ (v01.x (), v01.y (), v01.z ());
180+ v02pos.SetXYZ (v02.x (), v02.y (), v02.z ());
181+ v01mom.SetXYZ (v01.px (), v01.py (), v01.pz ());
182+ v02mom.SetXYZ (v02.px (), v02.py (), v02.pz ());
183+
184+ ROOT::Math::XYZVector posdiff = v02pos - v01pos;
185+ ROOT::Math::XYZVector cross = v01mom.Cross (v02mom);
186+ ROOT::Math::XYZVector dcaVec = (posdiff.Dot (cross) / cross.Mag2 ()) * cross;
187+ return dcaVec;
188+ }
189+
190+ template <typename V01, typename V02>
191+ float getCPA (V01 const & v01, V02 const & v02)
192+ {
193+ ROOT::Math::XYZVector v01mom, v02mom;
194+ v01mom.SetXYZ (v01.px () / v01.p (), v01.py () / v01.p (), v01.pz () / v01.p ());
195+ v02mom.SetXYZ (v02.px () / v02.p (), v02.py () / v02.p (), v02.pz () / v02.p ());
196+ return v01mom.Dot (v02mom);
197+ }
198+
175199 ROOT::Math::PxPyPzMVector DauVec1, DauVec2;
176200
177201 TLorentzVector exotic, HQ1, HQ2, HQ3;
@@ -257,6 +281,8 @@ struct heptaquark {
257281 if (hqtrackd3.hqMass () < minLambdaMass || hqtrackd3.hqMass () > maxLambdaMass)
258282 continue ;
259283
284+ int isLambda = static_cast <int >(hqtrackd3.hqId () < 0 );
285+
260286 if (hqtrackd3.hqId () > 0 ) {
261287 DauVec1 = ROOT::Math::PxPyPzMVector (hqtrackd3.hqd1Px (), hqtrackd3.hqd1Py (), hqtrackd3.hqd1Pz (), massPr);
262288 DauVec2 = ROOT::Math::PxPyPzMVector (hqtrackd3.hqd2Px (), hqtrackd3.hqd2Py (), hqtrackd3.hqd2Pz (), massPi);
@@ -296,7 +322,7 @@ struct heptaquark {
296322 HQ13 = HQ1 + HQ3;
297323
298324 histos.fill (HIST (" h_InvMass_same" ), exotic.M (), exotic.Pt (), collision.centrality ());
299- histos.fill (HIST (" hDalitz" ), HQ12.M2 (), HQ13.M2 (), exotic.M (), exotic.Pt (), collision.centrality ());
325+ histos.fill (HIST (" hDalitz" ), HQ12.M2 (), HQ13.M2 (), exotic.M (), exotic.Pt (), isLambda, collision.centrality ());
300326
301327 if (cfgRotBkg) {
302328 for (int nr = 0 ; nr < cfgNRotBkg; nr++) {
@@ -319,7 +345,7 @@ struct heptaquark {
319345 histos.fill (HIST (" h_InvMass_rotPhi" ), exoticRot2.M (), exoticRot2.Pt (), collision.centrality ());
320346 histos.fill (HIST (" h_InvMass_rotLambda" ), exoticRot3.M (), exoticRot3.Pt (), collision.centrality ());
321347 histos.fill (HIST (" h_InvMass_rotPhiLambda" ), exoticRot23.M (), exoticRot23.Pt (), collision.centrality ());
322- histos.fill (HIST (" hDalitzRot" ), HQ12Rot.M2 (), HQ13Rot.M2 (), exoticRot23.M (), exoticRot23.Pt (), collision.centrality ());
348+ histos.fill (HIST (" hDalitzRot" ), HQ12Rot.M2 (), HQ13Rot.M2 (), exoticRot23.M (), exoticRot23.Pt (), isLambda, collision.centrality ());
323349 }
324350 }
325351 }
0 commit comments