73 const EventContext& ctx = Gaudi::Hive::currentContext();
77 if( ! tracks.isValid() ) {
79 return StatusCode::FAILURE;
82 if ( !vertices.isValid() )
85 return StatusCode::FAILURE;
88 std::vector<SG::WriteDecorHandle<xAOD::TrackParticleContainer,float> >
91 for (
const auto *trItr : *tracks) {
92 std::unique_ptr<Trk::ImpactParametersAndSigma> iPandSigma;
93 std::unique_ptr<Trk::ImpactParametersAndSigma> iPandSigmaBiased;
95 for (
const auto *
const vx : *vertices) {
96 for (
const auto& tpLink : vx->trackParticleLinks()) {
97 if (*tpLink == trItr) {
102 if (foundVertex)
break;
105 iPandSigma=
m_tool->estimate(trItr,foundVertex,
true);
106 iPandSigmaBiased =
m_tool->estimate(trItr,foundVertex,
false);
107 if( !iPandSigma )
ATH_MSG_WARNING (
"trackToVertexIPEstimator failed !");
108 if( !iPandSigmaBiased )
ATH_MSG_WARNING (
"trackToVertexIPEstimator biased IP failed !");
111 ATH_MSG_DEBUG(
"No vertex associated to the track. Skipping it.");
138 if (iPandSigmaBiased) {
162 return StatusCode::SUCCESS;