11#ifndef TRKVKALVRTFITTER_ITRKVKALVRTFITTER_H
12#define TRKVKALVRTFITTER_ITRKVKALVRTFITTER_H
47 virtual std::unique_ptr<IVKalState>
makeState(
const EventContext& ctx)
const = 0;
52 virtual std::unique_ptr<IVKalState>
makeState()
const
54 return makeState(Gaudi::Hive::currentContext());
58 const std::vector<const xAOD::TrackParticle*>& listC,
59 const std::vector<const xAOD::NeutralParticle*>& listN,
61 TLorentzVector& Momentum,
64 std::vector<double>& Chi2PerTrk,
65 std::vector<std::vector<double>>& TrkAtVrt,
68 bool ifCovV0 =
false)
const = 0;
70 virtual StatusCode
VKalVrtFit(
const std::vector<const Perigee*>& list,
72 TLorentzVector& Momentum,
75 std::vector<double>& Chi2PerTrk,
76 std::vector<std::vector<double>>& TrkAtVrt,
79 bool ifCovV0 =
false)
const = 0;
82 const std::vector<const TrackParameters*>& listC,
83 const std::vector<const NeutralParameters*>& listN,
85 TLorentzVector& Momentum,
88 std::vector<double>& Chi2PerTrk,
89 std::vector<std::vector<double>>& TrkAtVrt,
92 bool ifCovV0 =
false)
const = 0;
96 const TLorentzVector& Momentum,
97 const std::vector<double>& CovVrtMom,
98 const long int& Charge,
100 std::vector<double>& CovPerigee,
105 std::span<const xAOD::TrackParticle* const> list,
110 const std::vector<const TrackParameters*>& list,
115 virtual std::unique_ptr<Perigee>
117 const std::vector<double>& VKCov,
150 double,
double,
double,
159 const long int Charge,
160 std::vector<double>& Impact,
161 std::vector<double>& ImpactError,
166 const long int Charge,
167 std::vector<double>& Impact,
168 std::vector<double>& ImpactError,
173 const long int Charge,
174 std::vector<double>& Impact,
175 std::vector<double>& ImpactError)
const = 0;
179 const long int Charge,
180 std::vector<double>& Impact,
181 std::vector<double>& ImpactError)
const = 0;
Base class for VKal state object.
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.