ATLAS Offline Software
Loading...
Searching...
No Matches
ITrkVKalVrtFitter.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2023 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//
21
22#include <vector>
23#include <memory>
24#include <span>
25
26class EventContext;
27
28namespace Trk{
29
30class IExtrapolator;
31class IVKalState;
32class Track;
33
34//------------------------------------------------------------------------
35 static const InterfaceID IID_ITrkVKalVrtFitter("ITrkVKalVrtFitter", 1, 0);
36
37 class ITrkVKalVrtFitter : virtual public IAlgTool {
38 public:
39 static const InterfaceID& interfaceID() { return IID_ITrkVKalVrtFitter;}
40//---------------------------------------------------------------------------
41//Interface itself
42
43 /*
44 * Context aware method
45 */
46 virtual std::unique_ptr<IVKalState> makeState(const EventContext& ctx) const = 0;
47
48 /*
49 * For non-migrated clients which should always use the context aware method
50 */
51 virtual std::unique_ptr<IVKalState> makeState() const
52 {
53 return makeState(Gaudi::Hive::currentContext());
54 }
55
56 virtual StatusCode VKalVrtFit(
57 const std::vector<const xAOD::TrackParticle*>& listC,
58 const std::vector<const xAOD::NeutralParticle*>& listN,
60 TLorentzVector& Momentum,
61 long int& Charge,
62 std::vector<double>& ErrorMatrix,
63 std::vector<double>& Chi2PerTrk,
64 std::vector<std::vector<double>>& TrkAtVrt,
65 double& Chi2,
66 IVKalState& istate,
67 bool ifCovV0 = false) const = 0;
68
69 virtual StatusCode VKalVrtFit(const std::vector<const Perigee*>& list,
71 TLorentzVector& Momentum,
72 long int& Charge,
73 std::vector<double>& ErrorMatrix,
74 std::vector<double>& Chi2PerTrk,
75 std::vector<std::vector<double>>& TrkAtVrt,
76 double& Chi2,
77 IVKalState& istate,
78 bool ifCovV0 = false) const = 0;
79
80 virtual StatusCode VKalVrtFit(
81 const std::vector<const TrackParameters*>& listC,
82 const std::vector<const NeutralParameters*>& listN,
84 TLorentzVector& Momentum,
85 long int& Charge,
86 std::vector<double>& ErrorMatrix,
87 std::vector<double>& Chi2PerTrk,
88 std::vector<std::vector<double>>& TrkAtVrt,
89 double& Chi2,
90 IVKalState& istate,
91 bool ifCovV0 = false) const = 0;
92
93 //------
94 virtual StatusCode VKalVrtCvtTool(const Amg::Vector3D& Vertex,
95 const TLorentzVector& Momentum,
96 const std::vector<double>& CovVrtMom,
97 const long int& Charge,
98 std::vector<double>& Perigee,
99 std::vector<double>& CovPerigee,
100 IVKalState& istate) const = 0;
101 //.........................................................................................
102
103 virtual StatusCode VKalVrtFitFast(
104 std::span<const xAOD::TrackParticle* const> list,
106 IVKalState& istate) const = 0;
107
108 virtual StatusCode VKalVrtFitFast(
109 const std::vector<const TrackParameters*>& list,
111 IVKalState& istate) const = 0;
112 //.........................................................................................
113
114 virtual std::unique_ptr<Perigee>
115 CreatePerigee(const std::vector<double>& VKPerigee,
116 const std::vector<double>& VKCov,
117 IVKalState& istate) const = 0;
118
119 virtual StatusCode VKalGetTrkWeights(std::vector<double>& Weights,
120 const IVKalState& istate) const = 0;
121
122 virtual StatusCode VKalGetFullCov(long int, std::vector<double>& CovMtx,
123 IVKalState& istate, bool = false) const =0;
124
125 virtual StatusCode VKalGetMassError(double& Mass, double& MassError,
126 const IVKalState& istate) const =0;
127
128 virtual void setApproximateVertex(double,double,double,
129 IVKalState& istate) const =0;
130 virtual void setMassForConstraint(double,
131 IVKalState& istate) const =0;
132
133 virtual void setMassForConstraint(double, std::span<const int>,
134 IVKalState& istate) const =0;
135
136 virtual void setRobustness(int, IVKalState& istate) const =0;
137
138 virtual void setRobustScale(double, IVKalState& istate) const =0;
139
140 virtual void setCnstType(int, IVKalState& istate) const =0;
141
143 IVKalState& istate) const=0;
144
145 virtual void setVertexForConstraint(double,double,double,
146 IVKalState& istate) const =0;
147
148 virtual void setCovVrtForConstraint(double,double,double,
149 double,double,double,
150 IVKalState& istate) const=0;
151
152 virtual void setMassInputParticles( const std::vector<double>&,
153 IVKalState& istate) const=0;
154//----------------------------------------------------------------------------------------------------
155
156 virtual double VKalGetImpact(const xAOD::TrackParticle*,
157 const Amg::Vector3D& Vertex,
158 const long int Charge,
159 std::vector<double>& Impact,
160 std::vector<double>& ImpactError,
161 IVKalState& istate) const = 0;
162
163 virtual double VKalGetImpact(const Perigee*,
164 const Amg::Vector3D& Vertex,
165 const long int Charge,
166 std::vector<double>& Impact,
167 std::vector<double>& ImpactError,
168 IVKalState& istate) const = 0;
169
170 virtual double VKalGetImpact(const xAOD::TrackParticle*,
171 const Amg::Vector3D& Vertex,
172 const long int Charge,
173 std::vector<double>& Impact,
174 std::vector<double>& ImpactError) const = 0;
175
176 virtual double VKalGetImpact(const Perigee*,
177 const Amg::Vector3D& Vertex,
178 const long int Charge,
179 std::vector<double>& Impact,
180 std::vector<double>& ImpactError) const = 0;
181
182 //----------------------------------------------------------------------------------------------------
183 };
184
185} //end of namespace
186
187#endif
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.