8#ifndef DSTMDCKALTRACK_H
9#define DSTMDCKALTRACK_H
10#include "GaudiKernel/ContainedObject.h"
11#include "GaudiKernel/SmartRef.h"
12#include "GaudiKernel/ObjectVector.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];}
104 const Hep3Vector
p3()
const;
106 const HepLorentzVector
p4()
const;
107 const HepLorentzVector
p4(
double mass)
const;
117 void setP(
const double p,
const int pid) {
m_p[pid] =
p; }
120 void setX(
const double x,
const int pid) {
m_x[pid] =
x; }
121 void setY(
const double y,
const int pid) {
m_y[pid] =
y; }
122 void setZ(
const double z,
const int pid) {
m_z[pid] =
z; }
123 void setR(
const double r,
const int pid) {
m_r[pid] =
r; }
140 for(
int i=0; i<3; i++){
149 void setZError(
const HepSymMatrix& error,
const int pid) {
153 for(
int i=0; i<5; i++) {
161 for(
int i=0; i<5 ; i++) {
162 for(
int j=0; j<=i; j++,k++) {
163 mat[i][j] = error[k];
164 mat[j][i] = error[k];
174 void setFError(
const HepSymMatrix& ferror,
const int pid) {
178 for(
int i=0; i<5; i++) {
186 for(
int i=0; i<5 ; i++) {
187 for(
int j=0; j<=i; j++,k++) {
188 mat[i][j] = ferror[k];
189 mat[j][i] = ferror[k];
HepGeom::Point3D< double > HepPoint3D
ObjectVector< DstMdcKalTrack > DstMdcKalTrackCol
const CLID & CLID_DstMdcKalTrack
void setLastLayer(int lL, int i, int pid)
const int nCgemVCluster() const
std::vector< HepSymMatrix > m_ferrors
void setFHelix(const HepVector &fhelix, const int pid)
static const CLID & classID()
const int getFirstLayer(const int pid) const
const int lastLayer() const
void setMass(double mass, int pid)
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
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
const int nCgemXCluster() 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 &)
std::vector< HepSymMatrix > m_zerrors
virtual const CLID & clID() const
const HepPoint3D poca() const
int m_nCgemXCluster[2][5]
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
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)
std::vector< HepPoint3D > m_pocas
const HepSymMatrix & err() const
void setCharge(const int charge, const int pid)
void setNCgemXCluster(int n, int i, int pid)
void setFirstLayer(int fL, int i, int pid)
std::vector< HepVector > m_fhelixs
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
int m_nCgemVCluster[2][5]
const double mass() const
const double getChisq(const int pid) const
void setNCgemVCluster(int n, int i, int pid)
const int getNlayer(const int pid) const
std::vector< HepVector > m_zhelixs
void setFError(double *ferror, const int pid)