ATLAS Offline Software
Loading...
Searching...
No Matches
TrkV0VertexFitter.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
3*/
4
6// TrkV0VertexFitter.h, (c) ATLAS Detector software 2006
8
16
17#ifndef TRKV0FITTER_TRKV0VERTEXFITTER_H
18#define TRKV0FITTER_TRKV0VERTEXFITTER_H
19
21#include "GaudiKernel/ToolHandle.h"
27
29
30namespace Trk
31{
32 class IExtrapolator;
38
39 class TrkV0VertexFitter : public extends<AthAlgTool, IVertexFitter>
40 {
41 public:
42 // The following 'using' can be removed when IVertexFitter::fit
43 // has been fully migrated to the one with the EventContext
45
46 virtual StatusCode initialize() override;
47 virtual StatusCode finalize() override;
48
50 TrkV0VertexFitter(const std::string& t, const std::string& n, const IInterface* p);
52
54 virtual xAOD::Vertex * fit(const std::vector<const xAOD::TrackParticle*>& vectorTrk,
55 const Amg::Vector3D& startingPoint) const override;
56
57 virtual xAOD::Vertex * fit(const std::vector<const xAOD::TrackParticle*>& vectorTrk,
58 const std::vector<const xAOD::NeutralParticle*>& /*vectorNeut*/,
59 const Amg::Vector3D& startingPoint) const override
60 {
61 msg(MSG::WARNING)
62 << "TrkV0VertexFitter::fit(fit(const std::vector<const "
63 "TrackParticle*>&,const std::vector<const "
64 "Trk::NeutralParticle*>&,const Amg::Vector3D&) ignoring neutrals"
65 << endmsg;
66 return fit(vectorTrk, startingPoint);
67 };
68
70 virtual xAOD::Vertex * fit(const std::vector<const xAOD::TrackParticle*>& vectorTrk,
71 const xAOD::Vertex& constraint) const override;
72
73 virtual xAOD::Vertex * fit(const std::vector<const xAOD::TrackParticle*>& vectorTrk,
74 const std::vector<const xAOD::NeutralParticle*>& /*vectorNeut*/,
75 const xAOD::Vertex& constraint) const override
76 {
77 msg(MSG::WARNING)
78 << "TrkV0VertexFitter::fit(fit(const std::vector<const "
79 "TrackParticle*>&,const std::vector<const "
80 "Trk::NeutralParticle*>&,const xAOD::Vertex&) ignoring neutrals"
81 << endmsg;
82 return fit(vectorTrk, constraint);
83 };
84
87 virtual xAOD::Vertex* fit(
88 const std::vector<const xAOD::TrackParticle*>& vectorTrk) const;
89
91 virtual xAOD::Vertex* fit(
92 const std::vector<const Trk::TrackParameters*>& perigeeList,
93 const Amg::Vector3D& startingPoint) const override;
94
97 virtual xAOD::Vertex* fit(
98 const std::vector<const Trk::TrackParameters*>& perigeeList,
99 const std::vector<const Trk::NeutralParameters*>& /*neutralPerigeeList*/,
100 const Amg::Vector3D& startingPoint) const override
101 {
102 msg(MSG::WARNING)
103 << "TrkV0VertexFitter::fit(fit(const std::vector<const "
104 "Trk::TrackParameters*>&,const std::vector<const "
105 "Trk::NeutralParameters*>&,const Amg::Vector3D&) ignoring neutrals"
106 << endmsg;
107 return fit(perigeeList, startingPoint);
108 };
109
111 virtual xAOD::Vertex* fit(
112 const std::vector<const Trk::TrackParameters*>& perigeeList,
113 const xAOD::Vertex& constraint) const override;
114
118 const std::vector<const Trk::TrackParameters*>& perigeeList,
119 const std::vector<const Trk::NeutralParameters*>& /*neutralPerigeeList*/,
120 const xAOD::Vertex& constraint) const override
121 {
122 msg(MSG::WARNING)
123 << "TrkV0VertexFitter::fit(fit(const std::vector<const "
124 "Trk::TrackParameters*>&,const std::vector<const "
125 "Trk::NeutralParameters*>&,const xAOD::Vertex&) ignoring neutrals"
126 << endmsg;
127 return fit(perigeeList, constraint);
128 };
129
132 virtual xAOD::Vertex* fit(const std::vector<const Trk::TrackParameters*>&
133 perigeeList) const override;
134
136 const std::vector<const Trk::TrackParameters*>& perigeeList,
137 const std::vector<const Trk::NeutralParameters*>& /*neutralPerigeeList*/)
138 const override
139 {
140 msg(MSG::WARNING) << "TrkV0VertexFitter::fit(fit(const std::vector<const "
141 "Trk::TrackParameters*>&,const std::vector<const "
142 "Trk::NeutralParameters*>&) ignoring neutrals"
143 << endmsg;
144 return fit(perigeeList);
145 };
146
155
156 virtual xAOD::Vertex * fit(const std::vector<const xAOD::TrackParticle*> & vectorTrk,
157 const std::vector<double>& masses,
158 const double& constraintMass,
159 const xAOD::Vertex* pointingVertex,
160 const Amg::Vector3D& startingPoint) const;
161
162 virtual xAOD::Vertex * fit(const std::vector<const Trk::TrackParameters*> & perigeeList,
163 const std::vector<double>& masses,
164 const double& constraintMass,
165 const xAOD::Vertex* pointingVertex,
166 const Amg::Vector3D& startingPoint) const;
167
168
169 private:
172 double m_maxR;
173 double m_maxZ;
176
178
179 ToolHandle< Trk::IExtrapolator > m_extrapolator;
181 {this, "AtlasFieldCacheCondObj", "fieldCondObj", "Name of the Magnetic Field conditions object key"};
182 };
183}
184#endif
#define endmsg
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
Interface for xAOD::TrackParticle with starting point Event Context aware interface.
virtual xAOD::Vertex * fit(const std::vector< const xAOD::TrackParticle * > &vectorTrk, const std::vector< const xAOD::NeutralParticle * > &, const xAOD::Vertex &constraint) const override
virtual xAOD::Vertex * fit(const std::vector< const Trk::TrackParameters * > &perigeeList, const std::vector< const Trk::NeutralParameters * > &, const xAOD::Vertex &constraint) const override
Interface for TrackParameters and NeutralParameters with xAOD::Vertex starting point.
virtual xAOD::Vertex * fit(const std::vector< const Trk::TrackParameters * > &perigeeList, const std::vector< const Trk::NeutralParameters * > &, const Amg::Vector3D &startingPoint) const override
Interface for Trk::TrackParameters and NeutralParameters with Amg::Vector3D starting point.
virtual StatusCode initialize() override
TrkV0VertexFitter(const std::string &t, const std::string &n, const IInterface *p)
SG::ReadCondHandleKey< AtlasFieldCacheCondObj > m_fieldCacheCondObjInputKey
ToolHandle< Trk::IExtrapolator > m_extrapolator
Data members to store the results.
virtual xAOD::Vertex * fit(const std::vector< const Trk::TrackParameters * > &perigeeList, const std::vector< const Trk::NeutralParameters * > &) const override
virtual xAOD::Vertex * fit(const std::vector< const xAOD::TrackParticle * > &vectorTrk, const std::vector< const xAOD::NeutralParticle * > &, const Amg::Vector3D &startingPoint) const override
virtual StatusCode finalize() override
virtual ~TrkV0VertexFitter()
standard destructor
virtual xAOD::Vertex * fit(const std::vector< const xAOD::TrackParticle * > &vectorTrk, const Amg::Vector3D &startingPoint) const override
Interface for xAOD::TrackParticle with Amg::Vector3D starting point.
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