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
14#include "GaudiKernel/IAlgTool.h"
15
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 class ITrkVKalVrtFitter : virtual public IAlgTool {
35 public:
37
38 virtual std::unique_ptr<IVKalState> makeState(const EventContext& ctx) const = 0;
39
40 virtual StatusCode VKalVrtFit(
41 const std::vector<const xAOD::TrackParticle*>& listC,
42 const std::vector<const xAOD::NeutralParticle*>& listN,
44 TLorentzVector& Momentum,
45 long int& Charge,
46 std::vector<double>& ErrorMatrix,
47 std::vector<double>& Chi2PerTrk,
48 std::vector<std::vector<double>>& TrkAtVrt,
49 double& Chi2,
50 IVKalState& istate,
51 bool ifCovV0 = false) const = 0;
52
53 virtual StatusCode VKalVrtFit(const std::vector<const Perigee*>& list,
55 TLorentzVector& Momentum,
56 long int& Charge,
57 std::vector<double>& ErrorMatrix,
58 std::vector<double>& Chi2PerTrk,
59 std::vector<std::vector<double>>& TrkAtVrt,
60 double& Chi2,
61 IVKalState& istate,
62 bool ifCovV0 = false) const = 0;
63
64 virtual StatusCode VKalVrtFit(
65 const std::vector<const TrackParameters*>& listC,
66 const std::vector<const NeutralParameters*>& listN,
68 TLorentzVector& Momentum,
69 long int& Charge,
70 std::vector<double>& ErrorMatrix,
71 std::vector<double>& Chi2PerTrk,
72 std::vector<std::vector<double>>& TrkAtVrt,
73 double& Chi2,
74 IVKalState& istate,
75 bool ifCovV0 = false) const = 0;
76
77 //------
78 virtual StatusCode VKalVrtCvtTool(const Amg::Vector3D& Vertex,
79 const TLorentzVector& Momentum,
80 const std::vector<double>& CovVrtMom,
81 const long int& Charge,
82 std::vector<double>& Perigee,
83 std::vector<double>& CovPerigee,
84 IVKalState& istate) const = 0;
85 //.........................................................................................
86
87 virtual StatusCode VKalVrtFitFast(
88 std::span<const xAOD::TrackParticle* const> list,
90 IVKalState& istate) const = 0;
91
92 virtual StatusCode VKalVrtFitFast(
93 const std::vector<const TrackParameters*>& list,
95 IVKalState& istate) const = 0;
96 //.........................................................................................
97
98 virtual std::unique_ptr<Perigee>
99 CreatePerigee(const std::vector<double>& VKPerigee,
100 const std::vector<double>& VKCov,
101 IVKalState& istate) const = 0;
102
103 virtual StatusCode VKalGetTrkWeights(std::vector<double>& Weights,
104 const IVKalState& istate) const = 0;
105
106 virtual StatusCode VKalGetFullCov(long int, std::vector<double>& CovMtx,
107 IVKalState& istate, bool = false) const =0;
108
109 virtual StatusCode VKalGetMassError(double& Mass, double& MassError,
110 const IVKalState& istate) const =0;
111
112 virtual void setApproximateVertex(double,double,double,
113 IVKalState& istate) const =0;
114 virtual void setMassForConstraint(double,
115 IVKalState& istate) const =0;
116
117 virtual void setMassForConstraint(double, std::span<const int>,
118 IVKalState& istate) const =0;
119
120 virtual void setRobustness(int, IVKalState& istate) const =0;
121
122 virtual void setRobustScale(double, IVKalState& istate) const =0;
123
124 virtual void setCnstType(int, IVKalState& istate) const =0;
125
127 IVKalState& istate) const=0;
128
129 virtual void setVertexForConstraint(double,double,double,
130 IVKalState& istate) const =0;
131
132 virtual void setCovVrtForConstraint(double,double,double,
133 double,double,double,
134 IVKalState& istate) const=0;
135
136 virtual void setMassInputParticles( const std::vector<double>&,
137 IVKalState& istate) const=0;
138//----------------------------------------------------------------------------------------------------
139
140 virtual double VKalGetImpact(const xAOD::TrackParticle*,
141 const Amg::Vector3D& Vertex,
142 const long int Charge,
143 std::vector<double>& Impact,
144 std::vector<double>& ImpactError,
145 IVKalState& istate) const = 0;
146
147 virtual double VKalGetImpact(const Perigee*,
148 const Amg::Vector3D& Vertex,
149 const long int Charge,
150 std::vector<double>& Impact,
151 std::vector<double>& ImpactError,
152 IVKalState& istate) const = 0;
153
154 virtual double VKalGetImpact(const EventContext& ctx,
155 const xAOD::TrackParticle*,
156 const Amg::Vector3D& Vertex,
157 const long int Charge,
158 std::vector<double>& Impact,
159 std::vector<double>& ImpactError) const = 0;
160
161 virtual double VKalGetImpact(const EventContext& ctx,
162 const Perigee*,
163 const Amg::Vector3D& Vertex,
164 const long int Charge,
165 std::vector<double>& Impact,
166 std::vector<double>& ImpactError) const = 0;
167
168 //----------------------------------------------------------------------------------------------------
169 };
170
171} //end of namespace
172
173#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 double VKalGetImpact(const EventContext &ctx, 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 double VKalGetImpact(const EventContext &ctx, const Perigee *, const Amg::Vector3D &Vertex, const long int Charge, std::vector< double > &Impact, std::vector< double > &ImpactError) const =0
virtual StatusCode VKalGetFullCov(long int, std::vector< double > &CovMtx, IVKalState &istate, bool=false) 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
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
DeclareInterfaceID(ITrkVKalVrtFitter, 1, 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.
ParametersT< TrackParametersDim, Charged, PerigeeSurface > Perigee
TrackParticle_v1 TrackParticle
Reference the current persistent version:
Vertex_v1 Vertex
Define the latest version of the vertex class.