10#ifndef RECMDCKALTRACK_H
11#define RECMDCKALTRACK_H
12#include "GaudiKernel/ContainedObject.h"
13#include "GaudiKernel/SmartRef.h"
14#include "GaudiKernel/SmartRefVector.h"
15#include "GaudiKernel/ObjectVector.h"
16#include "EventModel/EventModel.h"
17#include "DstEvent/DstMdcKalTrack.h"
18#include "CLHEP/Matrix/Vector.h"
19#include "CLHEP/Matrix/SymMatrix.h"
20#include "CLHEP/Vector/ThreeVector.h"
21#include "CLHEP/Geometry/Point3D.h"
33 virtual const CLID&
clID()
const {
52 double getMass(
int pid )
const {
return m_mass[pid]; }
53 double getLength(
int pid )
const {
return m_length[pid]; }
54 double getTof(
int pid )
const {
return m_tof[pid]; }
55 int getNhits(
int pid )
const {
return m_nhits[pid]; }
62 double getPathl(
int i )
const {
return m_pathl[i]; }
63 double getPathSM(
int pid)
const {
return m_pathSM[pid]; }
70 const HepVector&
getLHelix()
const {
return m_lhelixs[2]; }
71 const HepSymMatrix&
getLError()
const {
return m_lerrors[2]; }
72 const double getTHelix(
const int i)
const {
return m_thelix[i]; }
73 const double getTError(
const int i)
const {
return m_terror[i]; }
75 const HepSymMatrix
getTError()
const {
return m_tEa; }
125 const HepVector&
getLHelix(
const int pid)
const {
return m_lhelixs[pid];}
126 const HepSymMatrix&
getLError(
const int pid)
const {
return m_lerrors[pid];}
131 const double getFiTerm(
const int pid)
const {
return m_fiTerm[pid]; }
141 const double getLDr(
void)
const {
return m_lhelixs[2][0]; }
142 const double getLFi0(
void)
const {
return m_lhelixs[2][1]; }
143 const double getLCpa(
void)
const {
return m_lhelixs[2][2]; }
144 const double getLDz(
void)
const {
return m_lhelixs[2][3]; }
145 const double getLTanl(
void)
const {
return m_lhelixs[2][4]; }
160 void setLength(
double length,
int pid) { m_length[pid] = length; }
161 void setTof(
double tof,
int pid) { m_tof[pid] = tof; }
169 void setPathl(
double pathl,
int i) { m_pathl[i] = pathl; }
170 void setPathSM(
double length,
int pid) { m_pathSM[pid] = length; }
222 m_lhelixs[pid] =
helix;
224 void setLError(
const HepSymMatrix& error,
const int pid) {
225 m_lerrors[pid] = error;
228 for(
int i=0; i<5; i++) {
229 m_lhelixs[pid][i] =
helix[i];
235 for(
int i=0; i<5 ; i++) {
236 for(
int j=0; j<=i; j++,k++) {
237 mat[i][j] = error[k];
238 mat[j][i] = error[k];
241 m_lerrors[pid] = mat;
245 for(
int i=0; i<5; i++){
246 m_thelix[i] =
helix[i];
252 for(
int i=0; i<5; i++){
253 for(
int j=i; j<5; j++){
254 m_terror[k] = error[i][j];
262 for(
int i=0; i<5; i++) {
263 m_thelix[i] =
helix[i];
271 for(
int i=0; i<5 ; i++) {
272 for(
int j=0; j<=i; j++,k++) {
273 mat[i][j] = error[k];
274 mat[j][i] = mat[i][j];
279 for(
int i=0; i<15 ; i++) {
280 m_terror[i] = error[i];
285 m_lpoints[pid] = point;
295 m_lpivots[pid] = pivot;
334 std::vector<HepPoint3D> m_lpivots;
335 std::vector<HepPoint3D> m_lpoints;
339 std::vector<HepVector> m_lhelixs;
340 std::vector<HepSymMatrix> m_lerrors;
SmartRefVector< RecMdcKalHelixSeg > HelixSegRefVec
SmartRefVector< RecMdcKalHelixSeg > HelixSegRefVec
const CLID & CLID_RecMdcKalTrack
ObjectVector< RecMdcKalTrack > RecMdcKalTrackCol
std::vector< HepSymMatrix > m_zerrors
std::vector< HepVector > m_zhelixs
const HepVector & helix() const
std::vector< HepVector > m_fhelixs
std::vector< HepPoint3D > m_pocas
std::vector< HepSymMatrix > m_ferrors
const double mass() const
HepSymMatrix & getFErrorE()
const HepVector & getZHelix() const
void setLHelix(const HepVector &helix, const int pid)
void setFiTerm(double fi, const int pid)
const HepPoint3D & getLPivotP() const
const double getFCpa(void) const
double getPathSM(int pid) const
const double getFTanl(void) const
RecMdcKalTrack(const RecMdcKalTrack &track)
const HepVector & getLHelix(const int pid) const
const double getLDz(void) const
const double getLDr(void) const
void setPathSM(double length, int pid)
const HepPoint3D & getLPivotE() const
const double getFDr(void) const
const HepPoint3D & getLPointE() const
void setLError(double *error, const int pid)
int getLastLayer(const int i, const int pid) const
int getFirstLayer(const int i, const int pid) const
HepSymMatrix & getFErrorMu()
const HepPoint3D & getLPointP() const
void setTHelix(double helix[5])
const HepPoint3D & getLPoint() const
HepSymMatrix & getFErrorK()
RecMdcKalTrack & operator=(const RecMdcKalTrack &)
const HepPoint3D & getLPointK() const
const double getFiTerm(const int pid) const
double getTof(int pid) const
const HepVector & getLHelix() const
const double getLTanl(void) const
const HepPoint3D & getLPoint(const int pid) const
const HepPoint3D & getLPivotMu() const
HepVector & getLHelixMu()
const HepSymMatrix & getFError() const
const double getFFi0(void) const
const double getZFi0(void) const
double getChisq(int i, int pid) const
void setLength(double length, int pid)
void setTError(const HepSymMatrix &error)
const HepPoint3D & getLPointMu() const
void setMass(double mass, int pid)
HepSymMatrix & getZErrorE()
HelixSegRefVec getVecHelixSegs(int pid=-1) const
const HepPoint3D & getLPivot(const int pid) const
const HepPoint3D getPocaP() const
const HepPoint3D getPocaK() const
HepSymMatrix & getLErrorP()
const double getZDr(void) const
const HepVector & getFHelix() const
HepVector & getFHelixMu()
const double getLFi0(void) const
const HepSymMatrix & getLError() const
const double getTHelix(const int i) const
HepSymMatrix & getLErrorK()
void setTError(double error[15])
const HepVector getTHelix() const
void setTHelix(const HepVector &helix)
const HepPoint3D getPocaMu() const
void setPathl(double pathl, int i)
const HepPoint3D & getLPivot() const
HepVector & getZHelixMu()
RecMdcKalTrack & operator=(const DstMdcKalTrack &)
int getTrackId(void) const
const HepSymMatrix & getZError() const
void setVecHelixSegs(const HelixSegRefVec &vechelixsegs, int pid=-1)
void setLError(const HepSymMatrix &error, const int pid)
const double getZTanl(void) const
HepSymMatrix & getFErrorP()
HepSymMatrix & getLErrorMu()
static const CLID & classID()
const double getZCpa(void) const
int getNhits(int pid) const
const HepPoint3D & getLPivotK() const
HepSymMatrix & getZErrorMu()
double getMass(int pid) const
void setLPoint(const HepPoint3D &point, const int pid)
const double getFDz(void) const
int getStat(int i, int pid) const
HepSymMatrix & getLErrorE()
int getNster(const int i, const int pid) const
void setLPivot(const HepPoint3D &pivot, const int pid)
const HepSymMatrix getTError() const
double getLength(int pid) const
const HepPoint3D getPoca() const
void setTof(double tof, int pid)
int getNdf(int i, int pid) const
const double getZDz(void) const
const HepSymMatrix & getLError(const int pid) const
void setNhits(int nhits, int pid)
const HepPoint3D getPocaE() const
HepSymMatrix & getZErrorP()
const HepPoint3D & getPoca(const int pid) const
const double getTError(const int i) const
void setLHelix(double *helix, const int pid)
RecMdcKalTrack(const DstMdcKalTrack &track)
HepSymMatrix & getZErrorK()
double getPathl(int i) const
virtual const CLID & clID() const
const double getLCpa(void) const