8#ifndef DSTMDCKALTRACK_H
9#define DSTMDCKALTRACK_H
10#include "GaudiKernel/ContainedObject.h"
11#include "GaudiKernel/SmartRef.h"
12#include "GaudiKernel/ObjectVector.h"
13#include "EventModel/EventModel.h"
14#include "CLHEP/Matrix/Vector.h"
15#include "CLHEP/Matrix/SymMatrix.h"
16#include "CLHEP/Vector/ThreeVector.h"
17#include "CLHEP/Geometry/Point3D.h"
18#include "CLHEP/Vector/LorentzVector.h"
21#ifndef ENABLE_BACKWARDS_COMPATIBILITY
28using CLHEP::HepVector;
29using CLHEP::HepSymMatrix;
36 virtual const CLID&
clID()
const {
77 const double x(
const int i)
const {
return m_x[i];}
78 const double y(
const int i)
const {
return m_y[i];}
79 const double z(
const int i)
const {
return m_z[i];}
102 const Hep3Vector
p3()
const;
104 const HepLorentzVector
p4()
const;
105 const HepLorentzVector
p4(
double mass)
const;
115 void setP(
const double p,
const int pid) {
m_p[pid] =
p; }
118 void setX(
const double x,
const int pid) {
m_x[pid] =
x; }
119 void setY(
const double y,
const int pid) {
m_y[pid] =
y; }
120 void setZ(
const double z,
const int pid) {
m_z[pid] =
z; }
121 void setR(
const double r,
const int pid) {
m_r[pid] =
r; }
136 for(
int i=0; i<3; i++){
145 void setZError(
const HepSymMatrix& error,
const int pid) {
149 for(
int i=0; i<5; i++) {
157 for(
int i=0; i<5 ; i++) {
158 for(
int j=0; j<=i; j++,k++) {
159 mat[i][j] = error[k];
160 mat[j][i] = error[k];
170 void setFError(
const HepSymMatrix& ferror,
const int pid) {
174 for(
int i=0; i<5; i++) {
182 for(
int i=0; i<5 ; i++) {
183 for(
int j=0; j<=i; j++,k++) {
184 mat[i][j] = ferror[k];
185 mat[j][i] = ferror[k];
HepGeom::Point3D< double > HepPoint3D
ObjectVector< DstMdcKalTrack > DstMdcKalTrackCol
const CLID & CLID_DstMdcKalTrack
const CLID & CLID_DstMdcKalTrack
void setLastLayer(int lL, int i, int pid)
void setFHelix(const HepVector &fhelix, const int pid)
static const CLID & classID()
const int getFirstLayer(const int pid) const
const int lastLayer() const
std::vector< HepSymMatrix > m_zerrors
void setMass(double mass, int pid)
std::vector< HepVector > m_zhelixs
const int getNster(const int pid) const
const double z(const int i) const
void setPhi(const double phi, const int pid)
void setStat(int stat, int i, int pid)
const int getStat(const int pid) const
void setY(const double y, const int pid)
const HepSymMatrix & ferr() const
void setPz(const double pz, const int pid)
const int getLastLayer(const int pid) const
const HepVector & fhelix() const
const int trackId() const
void setNster(int ns, int i, int pid)
const HepVector & helix() const
void setChisq(double chisq, int i, int pid)
void setZError(const HepSymMatrix &error, const int pid)
void setX(const double x, const int pid)
void setP(const double p, const int pid)
const int getNdf(const int pid) const
std::vector< HepVector > m_fhelixs
void setPoca(const HepPoint3D &poca, const int pid)
const HepVector & getZHelix(const int pid) const
const double theta() const
const int getTrackId() const
const HepSymMatrix & getFError(const int pid) const
void setPx(const double px, const int pid)
void setZ(const double z, const int pid)
const double dz(void) const
void setTheta(const double theta, const int pid)
void setR(const double r, const int pid)
void setNhits(int nhits, int pid)
void setZHelix(double *helix, const int pid)
const HepVector & getFHelix(const int pid) const
void setPxy(const double pxy, const int pid)
void setPy(const double py, const int pid)
const HepSymMatrix & getZError(const int pid) const
const HepPoint3D & getPoca(const int pid) const
void setFError(const HepSymMatrix &ferror, const int pid)
const double x(const int i) const
const double dr(void) const
const double tanl(void) const
static void setPidType(PidType pidType)
void setTrackId(int trackId)
const int firstLayer() const
DstMdcKalTrack & operator=(const DstMdcKalTrack &)
virtual const CLID & clID() const
const HepPoint3D poca() const
static PidType getPidType()
const int getCharge(const int pid) const
const double chi2() const
void setFHelix(double *fhelix, const int pid)
const HepPoint3D x3() const
std::vector< HepPoint3D > m_pocas
const double y(const int i) const
const Hep3Vector p3() const
void setPoca(double *poca, const int pid)
void setZHelix(const HepVector &helix, const int pid)
const HepSymMatrix & err() const
void setCharge(const int charge, const int pid)
void setFirstLayer(int fL, int i, int pid)
const double kappa(void) const
void setNdf(int ndf, int i, int pid)
void setNlayer(int nlayer, int pid)
const HepLorentzVector p4() const
void setZError(double *error, const int pid)
const double fi0(void) const
std::vector< HepSymMatrix > m_ferrors
const double mass() const
const double getChisq(const int pid) const
const int getNlayer(const int pid) const
void setFError(double *ferror, const int pid)