10#ifndef RECCGEMKALTRACK_H
11#define RECCGEMKALTRACK_H
12#include "GaudiKernel/ContainedObject.h"
13#include "GaudiKernel/SmartRef.h"
14#include "GaudiKernel/SmartRefVector.h"
15#include "GaudiKernel/ObjectVector.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]; }
61 double getPathl(
int i )
const {
return m_pathl[i]; }
62 double getPathSM(
int pid)
const {
return m_pathSM[pid]; }
69 const HepVector&
getLHelix()
const {
return m_lhelixs[2]; }
70 const HepSymMatrix&
getLError()
const {
return m_lerrors[2]; }
71 const double getTHelix(
const int i)
const {
return m_thelix[i]; }
72 const double getTError(
const int i)
const {
return m_terror[i]; }
74 const HepSymMatrix
getTError()
const {
return m_tEa; }
124 const HepVector&
getLHelix(
const int pid)
const {
return m_lhelixs[pid];}
125 const HepSymMatrix&
getLError(
const int pid)
const {
return m_lerrors[pid];}
130 const double getFiTerm(
const int pid)
const {
return m_fiTerm[pid]; }
140 const double getLDr(
void)
const {
return m_lhelixs[2][0]; }
141 const double getLFi0(
void)
const {
return m_lhelixs[2][1]; }
142 const double getLCpa(
void)
const {
return m_lhelixs[2][2]; }
143 const double getLDz(
void)
const {
return m_lhelixs[2][3]; }
144 const double getLTanl(
void)
const {
return m_lhelixs[2][4]; }
160 void setTof(
double tof,
int pid) { m_tof[pid] = tof; }
161 void setNhits(
int nhits,
int pid) { m_nhits[pid] = nhits; }
168 void setPathl(
double pathl,
int i) { m_pathl[i] = pathl; }
221 m_lhelixs[pid] =
helix;
223 void setLError(
const HepSymMatrix& error,
const int pid) {
224 m_lerrors[pid] = error;
227 for(
int i=0; i<5; i++) {
228 m_lhelixs[pid][i] =
helix[i];
234 for(
int i=0; i<5 ; i++) {
235 for(
int j=0; j<=i; j++,k++) {
236 mat[i][j] = error[k];
237 mat[j][i] = error[k];
240 m_lerrors[pid] = mat;
244 for(
int i=0; i<5; i++){
245 m_thelix[i] =
helix[i];
251 for(
int i=0; i<5; i++){
252 for(
int j=i; j<5; j++){
253 m_terror[k] = error[i][j];
261 for(
int i=0; i<5; i++) {
262 m_thelix[i] =
helix[i];
270 for(
int i=0; i<5 ; i++) {
271 for(
int j=0; j<=i; j++,k++) {
272 mat[i][j] = error[k];
273 mat[j][i] = mat[i][j];
278 for(
int i=0; i<15 ; i++) {
279 m_terror[i] = error[i];
284 m_lpoints[pid] = point;
294 m_lpivots[pid] = pivot;
332 std::vector<HepPoint3D> m_lpivots;
333 std::vector<HepPoint3D> m_lpoints;
337 std::vector<HepVector> m_lhelixs;
338 std::vector<HepSymMatrix> m_lerrors;
SmartRefVector< RecCgemKalHelixSeg > RecCgemHelixSegRefVec
const CLID & CLID_RecCgemKalTrack
ObjectVector< RecCgemKalTrack > RecCgemKalTrackCol
std::vector< HepVector > m_zhelixs
std::vector< HepSymMatrix > m_ferrors
std::vector< HepVector > m_fhelixs
std::vector< HepSymMatrix > m_zerrors
const double mass() const
std::vector< HepPoint3D > m_pocas
const HepVector & helix() const
HepSymMatrix & getFErrorP()
const double getLTanl(void) const
void setFiTerm(double fi, const int pid)
const HepPoint3D & getLPivotMu() const
static const CLID & classID()
const HepPoint3D & getLPoint(const int pid) const
const HepPoint3D & getLPointMu() const
const HepVector & getZHelix() const
void setLHelix(double *helix, const int pid)
RecCgemHelixSegRefVec getVecHelixSegs(void) const
const HepSymMatrix & getFError() const
virtual const CLID & clID() const
const HepPoint3D getPocaE() const
void setPathSM(double length, int pid)
int getNhits(int pid) const
const HepPoint3D & getLPivotK() const
HepVector & getLHelixMu()
int getTrackId(void) const
const double getZCpa(void) const
double getPathSM(int pid) const
const HepPoint3D getPocaP() const
HepSymMatrix & getFErrorK()
const HepPoint3D & getLPivot(const int pid) const
void setLPoint(const HepPoint3D &point, const int pid)
const HepPoint3D getPocaMu() const
const HepPoint3D & getLPointE() const
int getStat(int i, int pid) const
const double getTHelix(const int i) const
const HepPoint3D & getLPivotP() const
const double getFCpa(void) const
void setTError(double error[15])
void setTHelix(double helix[5])
const HepPoint3D & getLPointP() const
const double getFiTerm(const int pid) const
const double getLDz(void) const
const HepPoint3D getPocaK() const
HepSymMatrix & getLErrorE()
const HepSymMatrix & getLError(const int pid) const
const double getFTanl(void) const
HepSymMatrix & getLErrorK()
void setTof(double tof, int pid)
const HepPoint3D & getLPivot() const
const HepVector & getLHelix() const
const double getZTanl(void) const
const HepPoint3D & getLPivotE() const
void setMass(double mass, int pid)
HepSymMatrix & getLErrorP()
const HepVector getTHelix() const
double getTof(int pid) const
int getNdf(int i, int pid) const
const double getLDr(void) const
int getLastLayer(const int i, const int pid) const
void setTError(const HepSymMatrix &error)
void setLPivot(const HepPoint3D &pivot, const int pid)
const double getFFi0(void) const
double getMass(int pid) const
const double getFDz(void) const
HepSymMatrix & getZErrorMu()
const double getZFi0(void) const
const HepVector & getFHelix() const
void setLength(double length, int pid)
int getFirstLayer(const int i, const int pid) const
HepSymMatrix & getZErrorE()
const double getZDz(void) const
double getLength(int pid) const
const double getZDr(void) const
HepSymMatrix & getZErrorP()
const HepSymMatrix & getLError() const
HepSymMatrix & getLErrorMu()
const double getLFi0(void) const
const HepPoint3D & getLPoint() const
void setLError(const HepSymMatrix &error, const int pid)
void setLHelix(const HepVector &helix, const int pid)
RecCgemKalTrack & operator=(const RecCgemKalTrack &)
double getChisq(int i, int pid) const
const HepSymMatrix & getZError() const
HepSymMatrix & getFErrorE()
const double getTError(const int i) const
const double getLCpa(void) const
const HepVector & getLHelix(const int pid) const
const HepPoint3D getPoca() const
void setTHelix(const HepVector &helix)
void setVecHelixSegs(const RecCgemHelixSegRefVec &vechelixsegs)
HepVector & getFHelixMu()
void setPathl(double pathl, int i)
void setLError(double *error, const int pid)
HepVector & getZHelixMu()
const double getFDr(void) const
const HepPoint3D & getPoca(const int pid) const
void setNhits(int nhits, int pid)
HepSymMatrix & getZErrorK()
const HepSymMatrix getTError() const
HepSymMatrix & getFErrorMu()
double getPathl(int i) const
const HepPoint3D & getLPointK() const