64 return StatusCode::FAILURE;
70 return StatusCode::FAILURE;
73 std::vector<SG::WriteDecorHandle<xAOD::TrackParticleContainer,float> >
76 for (
const auto *trItr : *tracks) {
77 std::unique_ptr<Trk::ImpactParametersAndSigma> iPandSigma;
78 std::unique_ptr<Trk::ImpactParametersAndSigma> iPandSigmaBiased;
80 for (
const auto *
const vx : *vertices) {
81 for (
const auto& tpLink : vx->trackParticleLinks()) {
82 if (*tpLink == trItr) {
87 if (foundVertex)
break;
90 iPandSigma=
m_tool->estimate(trItr,foundVertex,
true);
91 iPandSigmaBiased =
m_tool->estimate(trItr,foundVertex,
false);
92 if( !iPandSigma )
ATH_MSG_WARNING (
"trackToVertexIPEstimator failed !");
93 if( !iPandSigmaBiased )
ATH_MSG_WARNING (
"trackToVertexIPEstimator biased IP failed !");
96 ATH_MSG_DEBUG(
"No vertex associated to the track. Skipping it.");
101 track_decorators[
kdecnD0Decor]( *trItr ) = iPandSigma->IPd0;
102 track_decorators[
kdecnZ0Decor]( *trItr ) = iPandSigma->IPz0;
123 if (iPandSigmaBiased) {
147 return StatusCode::SUCCESS;
void createDecoratorKeys(T_Parent &parent, const SG::ReadHandleKey< T_Cont > &container_key, const std::string &prefix, const std::vector< std::string > &decor_names, std::vector< SG::WriteDecorHandleKey< T_Cont > > &decor_out)