@@ -135,6 +135,7 @@ struct He3HadCandidate {
135135 float dcazHe3 = -10 .f;
136136 float dcaxyHad = -10 .f;
137137 float dcazHad = -10 .f;
138+ float dcaPair = -10 .f; // DCA between the two tracks
138139
139140 uint16_t tpcSignalHe3 = 0u ;
140141 uint16_t tpcSignalHad = 0u ;
@@ -596,10 +597,21 @@ struct he3HadronFemto {
596597 he3Hadcand.signHe3 = trackHe3.sign ();
597598 he3Hadcand.signHad = trackHad.sign ();
598599
599- he3Hadcand.dcaxyHe3 = trackHe3.dcaXY ();
600- he3Hadcand.dcaxyHad = trackHad.dcaXY ();
601- he3Hadcand.dcazHe3 = trackHe3.dcaZ ();
602- he3Hadcand.dcazHad = trackHad.dcaZ ();
600+ // he3Hadcand.dcaxyHe3 = trackHe3.dcaXY();
601+ // he3Hadcand.dcaxyHad = trackHad.dcaXY();
602+ // he3Hadcand.dcazHe3 = trackHe3.dcaZ();
603+ // he3Hadcand.dcazHad = trackHad.dcaZ();
604+ auto trackCovHe3 = getTrackParCov (trackHe3);
605+ auto trackCovHad = getTrackParCov (trackHad);
606+ std::array<float , 2 > dcaInfo;
607+ o2::base::Propagator::Instance ()->propagateToDCABxByBz ({collisionVertex[0 ], collisionVertex[1 ], collisionVertex[2 ]}, trackCovHe3, 2 .f , mFitter .getMatCorrType (), &dcaInfo);
608+ he3Hadcand.dcaxyHe3 = dcaInfo[0 ];
609+ he3Hadcand.dcazHe3 = dcaInfo[1 ];
610+ o2::base::Propagator::Instance ()->propagateToDCABxByBz ({collisionVertex[0 ], collisionVertex[1 ], collisionVertex[2 ]}, trackCovHad, 2 .f , mFitter .getMatCorrType (), &dcaInfo);
611+ he3Hadcand.dcaxyHad = dcaInfo[0 ];
612+ he3Hadcand.dcazHad = dcaInfo[1 ];
613+ he3Hadcand.dcaPair = std::sqrt (std::abs (mFitter .getChi2AtPCACandidate ()));
614+
603615
604616 he3Hadcand.tpcSignalHe3 = trackHe3.tpcSignal ();
605617 bool heliumPID = trackHe3.pidForTracking () == o2::track::PID::Helium3 || trackHe3.pidForTracking () == o2::track::PID::Alpha;
@@ -757,6 +769,7 @@ struct he3HadronFemto {
757769 he3Hadcand.dcazHe3 ,
758770 he3Hadcand.dcaxyHad ,
759771 he3Hadcand.dcazHad ,
772+ he3Hadcand.dcaPair ,
760773 he3Hadcand.tpcSignalHe3 ,
761774 he3Hadcand.momHe3TPC ,
762775 he3Hadcand.tpcSignalHad ,
0 commit comments