36 return StatusCode::SUCCESS;
45 beamTransform.pretranslate(beamSpotHandle->
beamPos());
47 return std::make_unique< Trk::StraightLineSurface >(beamTransform);
54 return StatusCode::SUCCESS;
62 if (vxCandidate!=
nullptr) {
66 Amg::Vector3D persfPosition(vertexPosition.x(), vertexPosition.y(), vertexPosition.z());
67 return(this->perigeeAtVertex(ctx,
tp, persfPosition));
69 ATH_MSG_DEBUG(
"No reconstructed vertex found in TrackParticle, perigee will be expressed to (0.,0.,0.).");
70 return (perigeeAtVertex(ctx,
tp,Trk::s_origin));
82 std::unique_ptr<Trk::Perigee> vertexPerigee;
86 ATH_MSG_DEBUG(
"Perigee of TrackParticle is already expressed to given "
87 "vertex, a copy is returned.");
88 return std::unique_ptr<Trk::Perigee>(trackparPerigee.
clone());
90 std::unique_ptr<Trk::TrackParameters> extrapResult =
91 m_extrapolator->extrapolateDirectly(ctx,trackparPerigee, persf);
93 vertexPerigee.reset(
static_cast<Trk::Perigee*
>(extrapResult.release()));
98 "Extrapolation to Perigee failed, a NULL pointer is returned.");
106 std::unique_ptr<Trk::Perigee> vertexPerigee =
nullptr;
109 if (trackparPerigee){
112 ATH_MSG_DEBUG(
"Perigee of TrackParticle is already expressed to given vertex, a copy is returned.");
113 return std::unique_ptr<Trk::Perigee>(trackparPerigee->
clone());
116 m_extrapolator->extrapolateDirectly(ctx,*trackparPerigee, persf);
119 vertexPerigee.reset(
static_cast<Trk::Perigee*
>(extrapResult.release()));
124 "No Perigee found in TrackParticle, a NULL pointer is returned.");
129 "Extrapolation to Perigee failed, a NULL pointer is returned.");
131 return vertexPerigee;
138 std::unique_ptr<Trk::Perigee> vertexPerigee;
139 std::unique_ptr<Trk::TrackParameters> extrapResult =
140 m_extrapolator->extrapolateTrack(ctx,
track, persf);
142 vertexPerigee.reset(
static_cast<Trk::Perigee*
>(extrapResult.release()));
144 if (!vertexPerigee) {
147 ATH_MSG_DEBUG(
"Perigee of Track is already expressed to given vertex, a "
148 "copy is returned.");
149 vertexPerigee.reset(trackPerigee->
clone());
152 "Extrapolation to Perigee failed, NULL pointer is returned.");
155 return (vertexPerigee);
159 std::unique_ptr<Trk::Perigee>
161 const EventContext& ctx,
176 amgtranslation * Amg::RotationMatrix3D::Identity();
182 std::unique_ptr<Trk::Perigee> vertexPerigee;
183 std::unique_ptr<Trk::TrackParameters> extrapResult =
184 m_extrapolator->extrapolateTrack(ctx,
track, persf);
186 vertexPerigee.reset(
static_cast<Trk::Perigee*
>(extrapResult.release()));
188 if (!vertexPerigee) {
194 if (track_parameter_list) {
199 extrapResult = m_extrapolator->extrapolate(ctx,*trk_params, persf);
202 vertexPerigee.reset(
static_cast<Trk::Perigee*
>(extrapResult.release()));
208 if (!vertexPerigee) {
211 ATH_MSG_DEBUG(
"Perigee of Track is already expressed to given vertex, a "
212 "copy is returned.");
213 vertexPerigee.reset(trackPerigee->
clone());
216 "Extrapolation to Beamline Perigee failed, NULL pointer is returned.");
219 return (vertexPerigee);
243 amgTransf = amgtranslation * Amg::RotationMatrix3D::Identity();
248 std::unique_ptr<Trk::TrackParameters> vertexPerigee;
252 ATH_MSG_DEBUG(
"Perigee of TrackParticle is already expressed to given vertex, a copy is returned.");
253 return std::unique_ptr<Trk::TrackParameters>(trackparPerigee.
clone());
255 vertexPerigee = m_extrapolator->extrapolateDirectly(ctx,trackparPerigee, persf);
257 ATH_MSG_DEBUG(
"Extrapolation to Beam Line failed, a NULL pointer is returned.");
259 return vertexPerigee;
266 return m_extrapolator->extrapolateTrack(ctx, trk, *beamline);
272 return m_extrapolator->extrapolate(ctx, tpars, *beamline);