1#ifndef WTrack_Parameter_H
2#define WTrack_Parameter_H
14#include "CLHEP/Matrix/Matrix.h"
15#include "CLHEP/Matrix/SymMatrix.h"
16#include "CLHEP/Matrix/Vector.h"
17#include "CLHEP/Vector/LorentzVector.h"
18#include "CLHEP/Vector/ThreeVector.h"
20using CLHEP::Hep3Vector;
21using CLHEP::HepLorentzVector;
22using CLHEP::HepMatrix;
23using CLHEP::HepSymMatrix;
24using CLHEP::HepVector;
25#include "CLHEP/Geometry/Point3D.h"
27#ifndef ENABLE_BACKWARDS_COMPATIBILITY
42 const HepSymMatrix& err );
48 const double dtheta,
const double dE );
49 WTrackParameter(
const HepLorentzVector&
p,
const double dphi,
const double dtheta,
53 void setW(
const HepVector&
w ) {
55 m_mass = sqrt(
w[3] *
w[3] -
w[2] *
w[2] -
w[1] *
w[1] -
w[0] *
w[0] );
57 void setW(
const int n,
const double w ) { m_w[
n] =
w; }
66 int type()
const {
return m_type; }
67 int charge()
const {
return m_charge; }
68 double mass()
const {
return m_mass; }
70 double phi()
const {
return atan(
w()[1] / (
w()[0] ) ); }
71 double Lambda()
const {
return w()[2] / sqrt(
w()[0] *
w()[0] +
w()[1] *
w()[1] ); }
72 HepVector
w()
const {
return m_w; }
73 HepSymMatrix
Ew()
const {
return m_Ew; }
74 HepLorentzVector
p()
const {
return HepLorentzVector( m_w[0], m_w[1], m_w[2], m_w[3] ); }
75 HepSymMatrix
Ep()
const {
return m_Ew.sub( 1, 4 ); }
77 HepVector
X()
const {
return m_w.sub( 5, 7 ); }
78 HepSymMatrix
Ex()
const {
return m_Ew.sub( 5, 7 ); }
80 HepSymMatrix
Vplm()
const {
return m_Vplm; }
81 HepVector
plmp()
const {
return m_plmp; }
91 bool m_massInvariable;
93 HepMatrix GetCvtMatrix(
const double mass,
94 const HepVector& helix );
95 HepVector CvtH2W(
const double mass,
96 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)