ATLAS Offline Software
Loading...
Searching...
No Matches
FastVertexFitter.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef TRKVERTEXFITTERBILLOIR_FASTVERTEXFITTER_H
6#define TRKVERTEXFITTERBILLOIR_FASTVERTEXFITTER_H
7
10#include "GaudiKernel/ToolHandle.h"
17
18namespace Trk {
19class Track;
21class IExtrapolator;
23
37
38class FastVertexFitter : public extends<AthAlgTool, IVertexFitter>
39{
40public:
41 // The following 'using' can be removed when IVertexFitter::fit has been fully
42 // migrated to the one with the EventContext
44
45 virtual StatusCode initialize() override;
46
47 FastVertexFitter(const std::string& t,
48 const std::string& n,
49 const IInterface* p);
51
53 virtual std::unique_ptr<xAOD::Vertex> fit(
54 const EventContext& ctx,
55 const std::vector<const Trk::TrackParameters*>& perigeeList,
56 const Amg::Vector3D& startingPoint) const override;
57
60 virtual std::unique_ptr<xAOD::Vertex> fit(
61 const EventContext& ctx,
62 const std::vector<const TrackParameters*>& perigeeList,
63 const std::vector<const Trk::NeutralParameters*>& /*neutralPerigeeList*/,
64 const Amg::Vector3D& startingPoint) const override
65 {
66 msg(MSG::WARNING)
67 << "FastVertexFitter::fit(fit(const std::vector<const "
68 "TrackParameters*>&,const std::vector<const "
69 "Trk::NeutralParameters*>&,const Amg::Vector3D&) ignoring neutrals"
70 << endmsg;
71 return fit(ctx, perigeeList, startingPoint);
72 };
73
76 virtual std::unique_ptr<xAOD::Vertex> fit(
77 const EventContext& ctx,
78 const std::vector<const Trk::TrackParameters*>& perigeeList,
79 const xAOD::Vertex& constraint) const override;
80
83 virtual std::unique_ptr<xAOD::Vertex> fit(
84 const EventContext& ctx,
85 const std::vector<const TrackParameters*>& perigeeList,
86 const std::vector<const Trk::NeutralParameters*>& /*neutralPerigeeList*/,
87 const xAOD::Vertex& constraint) const override
88 {
89 msg(MSG::WARNING)
90 << "FastVertexFitter::fit(fit(const std::vector<const "
91 "TrackParameters*>&,const std::vector<const "
92 "Trk::NeutralParameters*>&,const xAOD::Vertex&) ignoring neutrals"
93 << endmsg;
94 return fit(ctx, perigeeList, constraint);
95 };
96
101 virtual std::unique_ptr<xAOD::Vertex> fit(
102 const EventContext& ctx,
103 const std::vector<const Trk::TrackParameters*>& perigeeList) const override;
104
105 virtual std::unique_ptr<xAOD::Vertex> fit(
106 const EventContext& ctx,
107 const std::vector<const TrackParameters*>& perigeeList,
108 const std::vector<const Trk::NeutralParameters*>& /*neutralPerigeeList*/)
109 const override
110 {
111 msg(MSG::WARNING) << "FastVertexFitter::fit(fit(const std::vector<const "
112 "TrackParameters*>&,const std::vector<const "
113 "Trk::NeutralParameters*>&) ignoring neutrals"
114 << endmsg;
115 return fit(ctx, perigeeList);
116 };
117
119 virtual std::unique_ptr<xAOD::Vertex> fit(
120 const EventContext& ctx,
121 const std::vector<const xAOD::TrackParticle*>& vectorTrk,
122 const Amg::Vector3D& startingPoint) const override;
123
126 virtual std::unique_ptr<xAOD::Vertex> fit(
127 const EventContext& ctx,
128 const std::vector<const xAOD::TrackParticle*>& vectorTrk,
129 const std::vector<const xAOD::NeutralParticle*>& /*vectorNeut*/,
130 const Amg::Vector3D& startingPoint) const override
131 {
132 msg(MSG::WARNING)
133 << "FastVertexFitter::fit(fit(const std::vector<const "
134 "TrackParticle*>&,const std::vector<const "
135 "Trk::NeutralParticle*>&,const Amg::Vector3D&) ignoring neutrals"
136 << endmsg;
137 return fit(ctx, vectorTrk, startingPoint);
138 };
139
142 virtual std::unique_ptr<xAOD::Vertex> fit(
143 const EventContext& ctx,
144 const std::vector<const xAOD::TrackParticle*>& vectorTrk,
145 const xAOD::Vertex& constraint) const override;
146
150 virtual std::unique_ptr<xAOD::Vertex> fit(
151 const EventContext& ctx,
152 const std::vector<const xAOD::TrackParticle*>& vectorTrk,
153 const std::vector<const xAOD::NeutralParticle*>& /*vectorNeut*/,
154 const xAOD::Vertex& constraint) const override
155 {
156 msg(MSG::WARNING)
157 << "FastVertexFitter::fit(fit(const std::vector<const "
158 "TrackParticle*>&,const std::vector<const "
159 "Trk::NeutralParticle*>&,const xAOD::Vertex&) ignoring neutrals"
160 << endmsg;
161 return fit(ctx, vectorTrk, constraint);
162 };
163
164private:
165 unsigned int m_maxIterations;
167
168 ToolHandle<Trk::IExtrapolator> m_extrapolator{this, "Extrapolator", "Trk::Extrapolator"};
169 ToolHandle<Trk::IVertexLinearizedTrackFactory> m_linFactory{this, "LinearizedTrackFactory", "Trk::FullLinearizedTrackFactory"};
170};
171}
172#endif
173
#define endmsg
Define macros for attributes used to control the static checker.
virtual StatusCode initialize() override
ToolHandle< Trk::IExtrapolator > m_extrapolator
virtual std::unique_ptr< xAOD::Vertex > fit(const EventContext &ctx, const std::vector< const Trk::TrackParameters * > &perigeeList, const Amg::Vector3D &startingPoint) const override
Interface for ParametersBase with starting point.
ToolHandle< Trk::IVertexLinearizedTrackFactory > m_linFactory
virtual std::unique_ptr< xAOD::Vertex > fit(const EventContext &ctx, const std::vector< const xAOD::TrackParticle * > &vectorTrk, const std::vector< const xAOD::NeutralParticle * > &, const xAOD::Vertex &constraint) const override
virtual std::unique_ptr< xAOD::Vertex > fit(const EventContext &ctx, const std::vector< const TrackParameters * > &perigeeList, const std::vector< const Trk::NeutralParameters * > &, const Amg::Vector3D &startingPoint) const override
Interface for TrackParameters and NeutralParameters with starting point.
virtual ~FastVertexFitter()
standard destructor
virtual std::unique_ptr< xAOD::Vertex > fit(const EventContext &ctx, const std::vector< const xAOD::TrackParticle * > &vectorTrk, const std::vector< const xAOD::NeutralParticle * > &, const Amg::Vector3D &startingPoint) const override
*Interface for xAOD::TrackParticle and NeutralParticle with starting point
virtual std::unique_ptr< xAOD::Vertex > fit(const EventContext &ctx, const std::vector< const TrackParameters * > &perigeeList, const std::vector< const Trk::NeutralParameters * > &) const override
FastVertexFitter(const std::string &t, const std::string &n, const IInterface *p)
virtual std::unique_ptr< xAOD::Vertex > fit(const EventContext &ctx, const std::vector< const TrackParameters * > &perigeeList, const std::vector< const Trk::NeutralParameters * > &, const xAOD::Vertex &constraint) const override
Interface for TrackParameters and NeutralParameters with RecVertex starting point.
Interface class for the extrapolation AlgTool, it inherits from IAlgTool Detailed information about p...
virtual std::unique_ptr< xAOD::Vertex > fit(const EventContext &ctx, const std::vector< const xAOD::TrackParticle * > &vectorTrk, const Amg::Vector3D &startingPoint) const =0
Interface for xAOD::TrackParticle with starting point Event Context aware interface.
An Abstract Base Class for the LinearizedTrackFactories.
Eigen::Matrix< double, 3, 1 > Vector3D
Ensure that the ATLAS eigen extensions are properly loaded.
Vertex_v1 Vertex
Define the latest version of the vertex class.
MsgStream & msg
Definition testRead.cxx:32