ATLAS Offline Software
Loading...
Searching...
No Matches
FullVertexFitter.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_FULLVERTEXFITTER_H
6#define TRKVERTEXFITTERBILLOIR_FULLVERTEXFITTER_H
7
8#include "GaudiKernel/ToolHandle.h"
14#include <memory>
15#include <vector>
16
17namespace Trk
18{
19 class Track;
21 class IExtrapolator;
23
37
38 class FullVertexFitter : public extends<AthAlgTool, IVertexFitter>
39 {
40 public:
41 // The following 'using' can be removed when IVertexFitter::fit has been
42 // fully migrated to the one with the EventContext
44
45 virtual StatusCode initialize() override;
46
57 FullVertexFitter(const std::string& t,
58 const std::string& n,
59 const IInterface* p);
61
63 virtual std::unique_ptr<xAOD::Vertex> fit(
64 const EventContext& ctx,
65 const std::vector<const Trk::TrackParameters*>& perigeeList,
66 const Amg::Vector3D& startingPoint) const override;
67
70 virtual std::unique_ptr<xAOD::Vertex> fit(
71 const EventContext& ctx,
72 const std::vector<const TrackParameters*>& perigeeList,
73 const std::vector<const Trk::NeutralParameters*>& /*neutralPerigeeList*/,
74 const Amg::Vector3D& startingPoint) const override
75 {
76 msg(MSG::WARNING)
77 << "FullVertexFitter::fit(fit(const std::vector<const "
78 "TrackParameters*>&,const std::vector<const "
79 "Trk::NeutralParameters*>&,const Amg::Vector3D&) ignoring neutrals"
80 << endmsg;
81 return fit(ctx, perigeeList, startingPoint);
82 };
83
86 virtual std::unique_ptr<xAOD::Vertex> fit(
87 const EventContext& ctx,
88 const std::vector<const Trk::TrackParameters*>& perigeeList,
89 const xAOD::Vertex& constraint) const override;
90
93 virtual std::unique_ptr<xAOD::Vertex> fit(
94 const EventContext& ctx,
95 const std::vector<const TrackParameters*>& perigeeList,
96 const std::vector<const Trk::NeutralParameters*>& /*neutralPerigeeList*/,
97 const xAOD::Vertex& constraint) const override
98 {
99 msg(MSG::WARNING)
100 << "FullVertexFitter::fit(fit(const std::vector<const "
101 "TrackParameters*>&,const std::vector<const "
102 "Trk::NeutralParameters*>&,const xAOD::Vertex&) ignoring neutrals"
103 << endmsg;
104 return fit(ctx, perigeeList, constraint);
105 };
106
111 virtual std::unique_ptr<xAOD::Vertex> fit(
112 const EventContext& ctx,
113 const std::vector<const Trk::TrackParameters*>&
114 perigeeList) const override;
115
116 virtual std::unique_ptr<xAOD::Vertex> fit(
117 const EventContext& ctx,
118 const std::vector<const TrackParameters*>& perigeeList,
119 const std::vector<const Trk::NeutralParameters*>& /*neutralPerigeeList*/)
120 const override
121 {
122 msg(MSG::WARNING) << "FullVertexFitter::fit(fit(const std::vector<const "
123 "TrackParameters*>&,const std::vector<const "
124 "Trk::NeutralParameters*>&) ignoring neutrals"
125 << endmsg;
126 return fit(ctx, perigeeList);
127 };
128
130 virtual std::unique_ptr<xAOD::Vertex> fit(
131 const EventContext& ctx,
132 const std::vector<const xAOD::TrackParticle*>& vectorTrk,
133 const Amg::Vector3D& startingPoint) const override;
134
137 virtual std::unique_ptr<xAOD::Vertex> fit(
138 const EventContext& ctx,
139 const std::vector<const xAOD::TrackParticle*>& vectorTrk,
140 const std::vector<const xAOD::NeutralParticle*>& /*vectorNeut*/,
141 const Amg::Vector3D& startingPoint) const override
142 {
143 msg(MSG::WARNING)
144 << "FullVertexFitter::fit(fit(const std::vector<const "
145 "TrackParticle*>&,const std::vector<const "
146 "Trk::NeutralParticle*>&,const Amg::Vector3D&) ignoring neutrals"
147 << endmsg;
148 return fit(ctx, vectorTrk, startingPoint);
149 };
150
153 virtual std::unique_ptr<xAOD::Vertex> fit(
154 const EventContext& ctx,
155 const std::vector<const xAOD::TrackParticle*>& vectorTrk,
156 const xAOD::Vertex& constraint) const override;
157
161 virtual std::unique_ptr<xAOD::Vertex> fit(
162 const EventContext& ctx,
163 const std::vector<const xAOD::TrackParticle*>& vectorTrk,
164 const std::vector<const xAOD::NeutralParticle*>& /*vectorNeut*/,
165 const xAOD::Vertex& constraint) const override
166 {
167 msg(MSG::WARNING)
168 << "FullVertexFitter::fit(fit(const std::vector<const "
169 "TrackParticle*>&,const std::vector<const "
170 "Trk::NeutralParticle*>&,const xAOD::Vertex&) ignoring neutrals"
171 << endmsg;
172 return fit(ctx, vectorTrk, constraint);
173 };
174
175 private:
176 unsigned int m_maxIterations{};
178
180
181 ToolHandle<Trk::IVertexLinearizedTrackFactory> m_linFactory;
182 };
183 }
184#endif
185
#define endmsg
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
ToolHandle< Trk::IVertexLinearizedTrackFactory > m_linFactory
Data members to store the results.
virtual ~FullVertexFitter()
standard destructor
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.
virtual StatusCode initialize() override
virtual std::unique_ptr< xAOD::Vertex > fit(const EventContext &ctx, const std::vector< const TrackParameters * > &perigeeList, const std::vector< const Trk::NeutralParameters * > &) 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 xAOD::Vertex &constraint) const override
Interface for TrackParameters and NeutralParameters with RecVertex starting point.
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
FullVertexFitter(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 Amg::Vector3D &startingPoint) const override
Interface for TrackParameters and NeutralParameters with 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