11#ifndef TRKVKALVRTFITTER_ITRKVKALVRTFITTER_H
12#define TRKVKALVRTFITTER_ITRKVKALVRTFITTER_H
14#include "GaudiKernel/IAlgTool.h"
38 virtual std::unique_ptr<IVKalState>
makeState(
const EventContext& ctx)
const = 0;
41 const std::vector<const xAOD::TrackParticle*>& listC,
42 const std::vector<const xAOD::NeutralParticle*>& listN,
44 TLorentzVector& Momentum,
47 std::vector<double>& Chi2PerTrk,
48 std::vector<std::vector<double>>& TrkAtVrt,
51 bool ifCovV0 =
false)
const = 0;
53 virtual StatusCode
VKalVrtFit(
const std::vector<const Perigee*>& list,
55 TLorentzVector& Momentum,
58 std::vector<double>& Chi2PerTrk,
59 std::vector<std::vector<double>>& TrkAtVrt,
62 bool ifCovV0 =
false)
const = 0;
65 const std::vector<const TrackParameters*>& listC,
66 const std::vector<const NeutralParameters*>& listN,
68 TLorentzVector& Momentum,
71 std::vector<double>& Chi2PerTrk,
72 std::vector<std::vector<double>>& TrkAtVrt,
75 bool ifCovV0 =
false)
const = 0;
79 const TLorentzVector& Momentum,
80 const std::vector<double>& CovVrtMom,
81 const long int& Charge,
83 std::vector<double>& CovPerigee,
88 std::span<const xAOD::TrackParticle* const> list,
93 const std::vector<const TrackParameters*>& list,
98 virtual std::unique_ptr<Perigee>
100 const std::vector<double>& VKCov,
133 double,
double,
double,
142 const long int Charge,
143 std::vector<double>& Impact,
144 std::vector<double>& ImpactError,
149 const long int Charge,
150 std::vector<double>& Impact,
151 std::vector<double>& ImpactError,
157 const long int Charge,
158 std::vector<double>& Impact,
159 std::vector<double>& ImpactError)
const = 0;
164 const long int Charge,
165 std::vector<double>& Impact,
166 std::vector<double>& ImpactError)
const = 0;
Base class for VKal state object.
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.