1#ifndef WTrack_Parameter_H
2#define WTrack_Parameter_H
15#include "CLHEP/Matrix/Vector.h"
16#include "CLHEP/Vector/LorentzVector.h"
17#include "CLHEP/Vector/ThreeVector.h"
18#include "CLHEP/Matrix/SymMatrix.h"
19#include "CLHEP/Matrix/Matrix.h"
20using CLHEP::HepVector;
21using CLHEP::HepLorentzVector;
22using CLHEP::Hep3Vector;
23using CLHEP::HepMatrix;
24using CLHEP::HepSymMatrix;
25#include "CLHEP/Geometry/Point3D.h"
27#ifndef ENABLE_BACKWARDS_COMPATIBILITY
48 WTrackParameter(
const HepLorentzVector &
p,
const double dphi,
const double dtheta,
const double dE);
51 void setW(
const HepVector &
w) {m_w =
w; m_mass = sqrt(
w[3]*
w[3] -
w[2]*
w[2] -
w[1]*
w[1] -
w[0]*
w[0]);}
52 void setW(
const int n,
const double w) {m_w[
n] =
w;}
61 int type()
const {
return m_type;}
62 int charge()
const {
return m_charge;}
63 double mass()
const {
return m_mass;}
65 double phi()
const {
return atan(
w()[1]/(
w()[0]));}
66 double Lambda()
const {
return w()[2]/sqrt(
w()[0]*
w()[0] +
w()[1]*
w()[1]);}
67 HepVector
w()
const {
return m_w;}
68 HepSymMatrix
Ew()
const {
return m_Ew;}
69 HepLorentzVector
p()
const {
return HepLorentzVector(m_w[0], m_w[1], m_w[2], m_w[3]);}
70 HepSymMatrix
Ep()
const {
return m_Ew.sub(1, 4); }
72 HepVector
X()
const {
return m_w.sub(5, 7); }
73 HepSymMatrix
Ex()
const {
return m_Ew.sub(5, 7); }
75 HepSymMatrix
Vplm()
const {
return m_Vplm;}
76 HepVector
plmp()
const {
return m_plmp;}
87 bool m_massInvariable;
89 HepMatrix GetCvtMatrix(
const double mass,
const HepVector &helix);
90 HepVector CvtH2W(
const double mass,
const HepVector &helix);
HepGeom::Point3D< double > HepPoint3D
HepGeom::Point3D< double > HepPoint3D
void setEw(const HepSymMatrix &Ew)
void setW(const int n, const double w)
HepLorentzVector p() const
void setMass(const double mass)
void setCharge(const int charge)
WTrackParameter & operator=(const WTrackParameter &wtrk)
void setW(const HepVector &w)
void setType(const int type)
HepVector philambdamass()
HepSymMatrix Vplm() const
bool IsInvariableMass() const
void setPlmp(const HepVector &plmp)
void setVplm(const HepSymMatrix &Vplm)