ATLAS Offline Software
Loading...
Searching...
No Matches
ITrkVKalVrtFitter.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// ITrkVKalVrtFitter.h - old VKalVrtInterface
6//
7// Old interface of VKalVrt.
8// Fully implemented also in Reconstruction/VKalVrt/VKalVrtFitSvc
9//
10//---------------------------------------------------------------
11#ifndef TRKVKALVRTFITTER_ITRKVKALVRTFITTER_H
12#define TRKVKALVRTFITTER_ITRKVKALVRTFITTER_H
13//Pphysical vectors
16// Gaudi includes
18//
22
23#include <vector>
24#include <memory>
25#include <span>
26
27class EventContext;
28
29namespace Trk{
30
31class IExtrapolator;
32class IVKalState;
33class Track;
34
35//------------------------------------------------------------------------
36 static const InterfaceID IID_ITrkVKalVrtFitter("ITrkVKalVrtFitter", 1, 0);
37
38 class ITrkVKalVrtFitter : virtual public IAlgTool {
39 public:
40 static const InterfaceID& interfaceID() { return IID_ITrkVKalVrtFitter;}
41//---------------------------------------------------------------------------
42//Interface itself
43
44 /*
45 * Context aware method
46 */
47 virtual std::unique_ptr<IVKalState> makeState(const EventContext& ctx) const = 0;
48
49 /*
50 * For non-migrated clients which should always use the context aware method
51 */
52 virtual std::unique_ptr<IVKalState> makeState() const
53 {
54 return makeState(Gaudi::Hive::currentContext());
55 }
56
57 virtual StatusCode VKalVrtFit(
58 const std::vector<const xAOD::TrackParticle*>& listC,
59 const std::vector<const xAOD::NeutralParticle*>& listN,
61 TLorentzVector& Momentum,
62 long int& Charge,
63 std::vector<double>& ErrorMatrix,
64 std::vector<double>& Chi2PerTrk,
65 std::vector<std::vector<double>>& TrkAtVrt,
66 double& Chi2,
67 IVKalState& istate,
68 bool ifCovV0 = false) const = 0;
69
70 virtual StatusCode VKalVrtFit(const std::vector<const Perigee*>& list,
72 TLorentzVector& Momentum,
73 long int& Charge,
74 std::vector<double>& ErrorMatrix,
75 std::vector<double>& Chi2PerTrk,
76 std::vector<std::vector<double>>& TrkAtVrt,
77 double& Chi2,
78 IVKalState& istate,
79 bool ifCovV0 = false) const = 0;
80
81 virtual StatusCode VKalVrtFit(
82 const std::vector<const TrackParameters*>& listC,
83 const std::vector<const NeutralParameters*>& listN,
85 TLorentzVector& Momentum,
86 long int& Charge,
87 std::vector<double>& ErrorMatrix,
88 std::vector<double>& Chi2PerTrk,
89 std::vector<std::vector<double>>& TrkAtVrt,
90 double& Chi2,
91 IVKalState& istate,
92 bool ifCovV0 = false) const = 0;
93
94 //------
95 virtual StatusCode VKalVrtCvtTool(const Amg::Vector3D& Vertex,
96 const TLorentzVector& Momentum,
97 const std::vector<double>& CovVrtMom,
98 const long int& Charge,
99 std::vector<double>& Perigee,
100 std::vector<double>& CovPerigee,
101 IVKalState& istate) const = 0;
102 //.........................................................................................
103
104 virtual StatusCode VKalVrtFitFast(
105 std::span<const xAOD::TrackParticle* const> list,
107 IVKalState& istate) const = 0;
108
109 virtual StatusCode VKalVrtFitFast(
110 const std::vector<const TrackParameters*>& list,
112 IVKalState& istate) const = 0;
113 //.........................................................................................
114
115 virtual std::unique_ptr<Perigee>
116 CreatePerigee(const std::vector<double>& VKPerigee,
117 const std::vector<double>& VKCov,
118 IVKalState& istate) const = 0;
119
120 virtual StatusCode VKalGetTrkWeights(std::vector<double>& Weights,
121 const IVKalState& istate) const = 0;
122
123 virtual StatusCode VKalGetFullCov(long int, std::vector<double>& CovMtx,
124 IVKalState& istate, bool = false) const =0;
125
126 virtual StatusCode VKalGetMassError(double& Mass, double& MassError,
127 const IVKalState& istate) const =0;
128
129 virtual void setApproximateVertex(double,double,double,
130 IVKalState& istate) const =0;
131 virtual void setMassForConstraint(double,
132 IVKalState& istate) const =0;
133
134 virtual void setMassForConstraint(double, std::span<const int>,
135 IVKalState& istate) const =0;
136
137 virtual void setRobustness(int, IVKalState& istate) const =0;
138
139 virtual void setRobustScale(double, IVKalState& istate) const =0;
140
141 virtual void setCnstType(int, IVKalState& istate) const =0;
142
144 IVKalState& istate) const=0;
145
146 virtual void setVertexForConstraint(double,double,double,
147 IVKalState& istate) const =0;
148
149 virtual void setCovVrtForConstraint(double,double,double,
150 double,double,double,
151 IVKalState& istate) const=0;
152
153 virtual void setMassInputParticles( const std::vector<double>&,
154 IVKalState& istate) const=0;
155//----------------------------------------------------------------------------------------------------
156
157 virtual double VKalGetImpact(const xAOD::TrackParticle*,
158 const Amg::Vector3D& Vertex,
159 const long int Charge,
160 std::vector<double>& Impact,
161 std::vector<double>& ImpactError,
162 IVKalState& istate) const = 0;
163
164 virtual double VKalGetImpact(const Perigee*,
165 const Amg::Vector3D& Vertex,
166 const long int Charge,
167 std::vector<double>& Impact,
168 std::vector<double>& ImpactError,
169 IVKalState& istate) const = 0;
170
171 virtual double VKalGetImpact(const xAOD::TrackParticle*,
172 const Amg::Vector3D& Vertex,
173 const long int Charge,
174 std::vector<double>& Impact,
175 std::vector<double>& ImpactError) const = 0;
176
177 virtual double VKalGetImpact(const Perigee*,
178 const Amg::Vector3D& Vertex,
179 const long int Charge,
180 std::vector<double>& Impact,
181 std::vector<double>& ImpactError) const = 0;
182
183 //----------------------------------------------------------------------------------------------------
184 };
185
186} //end of namespace
187
188#endif
Base class for VKal state object.
Interface class for the extrapolation AlgTool, it inherits from IAlgTool Detailed information about p...
virtual void setMassForConstraint(double, IVKalState &istate) const =0
virtual std::unique_ptr< IVKalState > makeState() const
virtual double VKalGetImpact(const xAOD::TrackParticle *, const Amg::Vector3D &Vertex, const long int Charge, std::vector< double > &Impact, std::vector< double > &ImpactError) const =0
virtual void setRobustness(int, IVKalState &istate) const =0
virtual double VKalGetImpact(const xAOD::TrackParticle *, const Amg::Vector3D &Vertex, const long int Charge, std::vector< double > &Impact, std::vector< double > &ImpactError, IVKalState &istate) const =0
virtual void setCovVrtForConstraint(double, double, double, double, double, double, IVKalState &istate) const =0
virtual std::unique_ptr< IVKalState > makeState(const EventContext &ctx) const =0
virtual StatusCode VKalVrtFit(const std::vector< const TrackParameters * > &listC, const std::vector< const NeutralParameters * > &listN, Amg::Vector3D &Vertex, TLorentzVector &Momentum, long int &Charge, std::vector< double > &ErrorMatrix, std::vector< double > &Chi2PerTrk, std::vector< std::vector< double > > &TrkAtVrt, double &Chi2, IVKalState &istate, bool ifCovV0=false) const =0
virtual StatusCode VKalVrtFitFast(const std::vector< const TrackParameters * > &list, Amg::Vector3D &Vertex, IVKalState &istate) const =0
virtual StatusCode VKalVrtFit(const std::vector< const xAOD::TrackParticle * > &listC, const std::vector< const xAOD::NeutralParticle * > &listN, Amg::Vector3D &Vertex, TLorentzVector &Momentum, long int &Charge, std::vector< double > &ErrorMatrix, std::vector< double > &Chi2PerTrk, std::vector< std::vector< double > > &TrkAtVrt, double &Chi2, IVKalState &istate, bool ifCovV0=false) const =0
virtual StatusCode VKalVrtFit(const std::vector< const Perigee * > &list, Amg::Vector3D &Vertex, TLorentzVector &Momentum, long int &Charge, std::vector< double > &ErrorMatrix, std::vector< double > &Chi2PerTrk, std::vector< std::vector< double > > &TrkAtVrt, double &Chi2, IVKalState &istate, bool ifCovV0=false) const =0
virtual StatusCode VKalGetFullCov(long int, std::vector< double > &CovMtx, IVKalState &istate, bool=false) const =0
virtual double VKalGetImpact(const Perigee *, const Amg::Vector3D &Vertex, const long int Charge, std::vector< double > &Impact, std::vector< double > &ImpactError) const =0
virtual void setMassInputParticles(const std::vector< double > &, IVKalState &istate) const =0
virtual void setMassForConstraint(double, std::span< const int >, IVKalState &istate) const =0
virtual StatusCode VKalGetMassError(double &Mass, double &MassError, const IVKalState &istate) const =0
virtual void setVertexForConstraint(double, double, double, IVKalState &istate) const =0
virtual StatusCode VKalVrtFitFast(std::span< const xAOD::TrackParticle *const > list, Amg::Vector3D &Vertex, IVKalState &istate) const =0
static const InterfaceID & interfaceID()
virtual StatusCode VKalGetTrkWeights(std::vector< double > &Weights, const IVKalState &istate) const =0
virtual void setApproximateVertex(double, double, double, IVKalState &istate) const =0
virtual void setCnstType(int, IVKalState &istate) const =0
virtual StatusCode VKalVrtCvtTool(const Amg::Vector3D &Vertex, const TLorentzVector &Momentum, const std::vector< double > &CovVrtMom, const long int &Charge, std::vector< double > &Perigee, std::vector< double > &CovPerigee, IVKalState &istate) const =0
virtual void setVertexForConstraint(const xAOD::Vertex &, IVKalState &istate) const =0
virtual void setRobustScale(double, IVKalState &istate) const =0
virtual double VKalGetImpact(const Perigee *, const Amg::Vector3D &Vertex, const long int Charge, std::vector< double > &Impact, std::vector< double > &ImpactError, IVKalState &istate) const =0
virtual std::unique_ptr< Perigee > CreatePerigee(const std::vector< double > &VKPerigee, const std::vector< double > &VKCov, IVKalState &istate) const =0
This class is a simplest representation of a vertex candidate.
Eigen::Matrix< double, 3, 1 > Vector3D
Ensure that the ATLAS eigen extensions are properly loaded.
static const InterfaceID IID_ITrkVKalVrtFitter("ITrkVKalVrtFitter", 1, 0)
ParametersT< TrackParametersDim, Charged, PerigeeSurface > Perigee
TrackParticle_v1 TrackParticle
Reference the current persistent version:
Vertex_v1 Vertex
Define the latest version of the vertex class.