21#ifndef TRKMOMCALCULATOR_HH
22#define TRKMOMCALCULATOR_HH
23#include "CLHEP/Vector/ThreeVector.h"
24#include "CLHEP/Matrix/Matrix.h"
25#include "CLHEP/Matrix/SymMatrix.h"
30using CLHEP::Hep3Vector;
31using CLHEP::HepMatrix;
32using CLHEP::HepSymMatrix;
62 static bool weightToCov(
const HepSymMatrix& inXX,
const HepSymMatrix& inPP,
const HepMatrix& inXP,
63 HepSymMatrix& outXX, HepSymMatrix& outPP, HepMatrix& outXP);
89 HepSymMatrix& xxWeight,
90 HepSymMatrix& ppWeight,
95 static double calcCurvPtMom(
const Hep3Vector&,
98 static Hep3Vector calcCurvVecMom(
const Hep3Vector&,
106 static int calcCurvCharge(
const Hep3Vector&,
135 HepVector& x0,HepVector& p0,
144 HepSymMatrix& xxWeight,
145 HepSymMatrix& ppWeight,
146 HepMatrix& xpWeight);
152 HepSymMatrix& xxWeight,
153 HepSymMatrix& ppWeight,
154 HepMatrix& xpWeight);
160 HepSymMatrix& xxWeight,
161 HepSymMatrix& ppWeight,
162 HepMatrix& xpWeight);
164 static int nearestInt(
double);
static void getAllWeights(const TrkSimpTraj &, const BField &, double fltlen, HepVector &pos, HepVector &mom, HepSymMatrix &xxWeight, HepSymMatrix &ppWeight, HepMatrix &xpWeight)
virtual ~TrkMomCalculator()
static bool weightToCov(const HepSymMatrix &inXX, const HepSymMatrix &inPP, const HepMatrix &inXP, HepSymMatrix &outXX, HepSymMatrix &outPP, HepMatrix &outXP)
static void getAllCovs(const TrkSimpTraj &, const BField &, double fltlen, HepSymMatrix &xxCov, HepSymMatrix &ppCov, HepMatrix &xpCov)
static HepMatrix posmomCov(const TrkSimpTraj &, const BField &, double fltlen)
static BesVectorErr errMom(const TrkSimpTraj &, const BField &, double fltlen)
static Hep3Vector vecMom(const TrkSimpTraj &, const BField &, double fltlen)
static double ptMom(const TrkSimpTraj &, const BField &, double fltlen)