1 #ifndef RecoTauTag_ImpactParameter_TrackHelixVertexFitter_h
2 #define RecoTauTag_ImpactParameter_TrackHelixVertexFitter_h
13 #include <TLorentzVector.h>
22 namespace tauImpactParameter {
43 static void computedxydz(
const TVectorT<double>& inpar,
int particle,
double&
kappa,
double& lam,
double&
phi,
double&
x,
double&
y,
double&
z,
double&
s,
double& dxy,
double& dz);
52 static TVectorT<double>
computePar(
const TVectorT<double>& inpar);
53 static TVectorT<double>
computeTrackPar(
const TVectorT<double>& inpar,
int p=0);
60 if(Par==
x0 || Par==
y0 || Par==
z0)
return Par;
63 static void parSizeInfo(
const TVectorT<double>& inpar,
int&
np,
int& parsize,
bool hasextras=0);
TMatrixTSym< double > cov_
virtual TVector3 getVertex()
TMatrixTSym< double > cov_inv_
virtual double chiSquare()
TMatrixTSym< double > parcov_
static TVectorT< double > computeMotherLorentzVectorPar(const TVectorT< double > &inpar)
std::vector< TrackParticle > particles_
virtual double updateChisquare(const TVectorT< double > &inpar)
virtual std::vector< TrackParticle > getRefitTracks()
static TVectorT< double > computePar(const TVectorT< double > &inpar)
static TVectorT< double > computeLorentzVectorPar(const TVectorT< double > &inpar)
static int measuredValueIndex(int TrackPar, int Particle)
virtual TString freeParName(int Par)
virtual TMatrixTSym< double > getVertexError()
std::vector< LorentzVectorParticle > getRefitLorentzVectorParticles()
TrackHelixVertexFitter(const std::vector< TrackParticle > &particles, const TVector3 &vguess)
static TVectorT< double > computeTrackPar(const TVectorT< double > &inpar, int p=0)
static int freeParIndex(int Par, int Particle)
static void computedxydz(const TVectorT< double > &inpar, int particle, double &kappa, double &lam, double &phi, double &x, double &y, double &z, double &s, double &dxy, double &dz)
virtual ~TrackHelixVertexFitter()
static void parSizeInfo(const TVectorT< double > &inpar, int &np, int &parsize, bool hasextras=0)
LorentzVectorParticle getMother(int pdgid)
static const G4double kappa