1 #ifndef RecoTauTag_ImpactParameter_TrackHelixVertexFitter_h
2 #define RecoTauTag_ImpactParameter_TrackHelixVertexFitter_h
13 #include <TLorentzVector.h>
22 namespace tauImpactParameter {
33 virtual bool fit() = 0;
64 static TVectorT<double>
computePar(
const TVectorT<double>& inpar);
65 static TVectorT<double>
computeTrackPar(
const TVectorT<double>& inpar,
int p = 0);
70 if (Par ==
x0 || Par ==
y0 || Par ==
z0)
74 static void parSizeInfo(
const TVectorT<double>& inpar,
int&
np,
int& parsize,
bool hasextras =
false);
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 void parSizeInfo(const TVectorT< double > &inpar, int &np, int &parsize, bool hasextras=false)
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()
LorentzVectorParticle getMother(int pdgid)