22#ifndef TrkJetVxFitter_InDetJetFitterUtils_H
23#define TrkJetVxFitter_InDetJetFitterUtils_H
26#include "GaudiKernel/ToolHandle.h"
27#include "CLHEP/Matrix/SymMatrix.h"
28#include "CLHEP/Matrix/Matrix.h"
29#include "CLHEP/Vector/LorentzVector.h"
89 double highestMomMass,
90 double lowestMomMass)
const;
93 double highestMomMass,
94 double lowestMomMass)
const;
113 const std::vector<const Trk::ITrackLink*> & vectorOfTracks) ;
116 const std::vector<const Trk::LinkToTrackParticleBase*> & vectorOfTracks) ;
119 const std::vector<const Trk::LinkToTrackParticleBase*> & vectorOfNeutrals) ;
122 const std::vector<const xAOD::Vertex*> & vectorOfVxCandidates) ;
125 const std::vector<const xAOD::Vertex*> & vectorOfCandidates) ;
139 ToolHandle<Trk::IVertexLinearizedTrackFactory>
m_LinearizedTrackFactory {
this,
"LinearizedTrackFactory",
"Trk::FullLinearizedTrackFactory/FullLinearizedTrackFactory",
""};
140 ToolHandle<Trk::IExtrapolator>
m_extrapolator {
this,
"Extrapolator",
"Trk::Extrapolator/InDetExtrapolator",
""};
#define AmgSymMatrix(dim)
#define AmgMatrix(rows, cols)
static bool checkIfTrackIsInV0CandidatesVector(const Trk::ITrackLink *trackToCheck, const std::vector< const xAOD::Vertex * > &vectorOfVxCandidates)
std::pair< double, double > getD0andZ0IPSig(const Trk::TrackParameters &trackPerigee, const Trk::RecVertex &vertex) const
bool m_linearizedTrackFactoryIsAvailable
static CLHEP::HepLorentzVector fourMomentumAtVertex(const Trk::VxVertexOnJetAxis &)
const Trk::LinkToTrackParticleBase * findNeutralTrackParticleBase(const std::vector< const Trk::LinkToTrackParticleBase * > &, const Trk::VxCandidate &) const
ToolHandle< Trk::IVertexLinearizedTrackFactory > m_LinearizedTrackFactory
double getTwoTrackVtxMass(const Trk::VxCandidate &myVxCandidate, double highestMomMass, double lowestMomMass) const
static bool checkIfVxCandidateIsInVector(const xAOD::Vertex *vertexToCheck, const std::vector< const xAOD::Vertex * > &vectorOfCandidates)
std::pair< double, double > getD0andZ0IP(const Trk::TrackParameters &trackPerigee, const Trk::Vertex &vertexToExtrapolateTo) const
std::pair< AmgMatrix(3, 3), AmgSymMatrix(3)> getPosMomentumAndMomentumCovMatrix(const Trk::LinearizedTrack *linTrack, const AmgSymMatrix(3) &vrt_cov, const AmgSymMatrix(3) &vrt_weight) const
ToolHandle< Trk::IExtrapolator > m_extrapolator
InDetJetFitterUtils(const std::string &t, const std::string &n, const IInterface *p)
static const InterfaceID & interfaceID()
static double get3DLifetimeSignOfTrack(const Trk::TrackParameters &track, const Amg::Vector3D &jetMomentum, const Trk::RecVertex &primaryVertex)
static bool checkIfTrackIsInVector(const Trk::ITrackLink *trackToCheck, const std::vector< const Trk::ITrackLink * > &vectorOfTracks)
std::pair< double, double > compatibility(const Trk::TrackParameters &measPerigee, const Trk::RecVertex &vertex) const
int getTwoTrackVtxCharge(const Trk::VxCandidate &myVxCandidate) const
static bool checkIfTrackIsInNeutralTrackVector(const Trk::ITrackLink *trackToCheck, const std::vector< const Trk::LinkToTrackParticleBase * > &vectorOfNeutrals)
virtual StatusCode initialize() override
std::pair< double, double > getDistanceAndErrorBetweenTwoVertices(const xAOD::Vertex &, const Trk::RecVertex &) const
An abstract class which is meant to represent an element link to the Trk::Track or Trk::TrackParticle...
The base class for neutral and charged Track parameters.
Trk::RecVertex inherits from Trk::Vertex.
This class is a simplest representation of a vertex candidate.
VxVertexOnJetAxis inherits from Vertex.
Eigen::Matrix< double, 3, 1 > Vector3D
static const InterfaceID IID_InDetJetFitterUtils("InDetJetFitterUtils", 1, 0)
Ensure that the ATLAS eigen extensions are properly loaded.
ParametersBase< TrackParametersDim, Charged > TrackParameters
Vertex_v1 Vertex
Define the latest version of the vertex class.