CGEM BOSS 6.6.5.h
BESIII Offline Software System
Loading...
Searching...
No Matches
DstCgemTrack.h
Go to the documentation of this file.
1#ifndef DSTCGEMTRACK_H
2#define DSTCGEMTRACK_H
3#include "GaudiKernel/ObjectVector.h"
4#include "GaudiKernel/ContainedObject.h"
6#include <vector>
7#include "CLHEP/Matrix/Vector.h"
8#include "CLHEP/Matrix/SymMatrix.h"
9#include "CLHEP/Vector/ThreeVector.h"
10#include "CLHEP/Geometry/Point3D.h"
11#include "CLHEP/Vector/LorentzVector.h"
12
13#ifndef ENABLE_BACKWARDS_COMPATIBILITY
14// backwards compatibility will be enabled ONLY in CLHEP 1.9
16#endif
17using namespace CLHEP;
18
19using namespace std;
20using namespace EventModel;
21extern const CLID &CLID_DstCgemTrack;
22
23
24class DstCgemTrack : virtual public ContainedObject
25{
26 public:
30 virtual ~DstCgemTrack() {}
31 virtual const CLID& clID() const { return DstCgemTrack::classID();}
32 static const CLID& classID() { return CLID_DstCgemTrack; }
33
34 /// ......
35
36 const HepVector helix() const;
37 const HepSymMatrix err() const;
38 const HepLorentzVector p4(const double mass) const;
39
40 const HepPoint3D poca() const{
41 return m_poca3D;
42 }
43 const Hep3Vector p3() const{
44 return Hep3Vector(m_px,m_py,m_pz);
45 }
46 const HepPoint3D x3() const{
47 return HepPoint3D(m_x,m_y,m_z);
48 }
49
50 const double helix(const int i) const { return m_helix[i]; }
51 const double err(const int i) const { return m_err[i]; }
52 const int trackId() const { return m_trackId; }
53 const int charge() const { return m_charge; }
54 const double pxy() const { return m_pxy; }
55 const double px() const { return m_px; }
56 const double py() const { return m_py; }
57 const double pz() const { return m_pz; }
58 const double p() const { return m_p; }
59 const double theta() const { return m_theta;}
60 const double phi() const { return m_phi; }
61 const double x() const { return m_x; }
62 const double y() const { return m_y; }
63 const double z() const { return m_z; }
64 const double r() const { return m_r; }
65 const int stat() const { return m_stat; }
66 const double chi2() const { return m_chi2; }
67 const int ndof() const { return m_ndof; }
68 const int firstLayer() const { return m_firstLayer;}
69 const int lastLayer() const { return m_lastLayer; }
70
71
72 // set functions
73 void setHelix(double helix[5]);
74 void setPoca(double poca[3]);
75 void setError( double err[15]);
76 void setHelix(const HepVector& a);
77 void setPoca(const HepPoint3D& poca);
78 void setError(const HepSymMatrix& Ea);
79
80 void setTrackId(const int trackId ) { m_trackId = trackId; }
81 void setCharge(const int charge ) { m_charge = charge;}
82 void setPxy(const double pxy) { m_pxy = pxy; }
83 void setPx (const double px) { m_px = px; }
84 void setPy(const double py) { m_py = py; }
85 void setPz(const double pz) { m_pz = pz; }
86 void setP(const double p ) { m_p = p; }
87 void setTheta(const double theta) { m_theta = theta; }
88 void setPhi(const double phi ) { m_phi = phi; }
89 void setX(const double x) { m_x = x; }
90 void setY(const double y) { m_y = y; }
91 void setZ(const double z) { m_z = z; }
92 void setR(const double r) { m_r = r; }
93 void setStat(const int stat) { m_stat = stat;}
94 void setChi2(const double chi) { m_chi2 = chi;}
95 void setNdof(const int ndof) { m_ndof = ndof;}
96 void setFirstLayer(const int id) { m_firstLayer = id;}
97 void setLastLayer(const int id) { m_lastLayer = id;}
98
99
100 protected:
101 int m_trackId; // Track ID wensp Add 2005-10-19
102 int m_charge; // charge of the track
103 double m_helix[5]; // 5 track parameters
104 double m_err[15]; // Error Matrix
105 double m_poca[3]; // position of closest approach to origin
107 HepVector m_a;
108 HepSymMatrix m_Ea;
109 int m_stat; // Track Fit Quality status flag
110 double m_chi2; // chisq of track fit
111 int m_ndof; // degree of freedom
112 int m_firstLayer; // layer id of first hit in PR hits collection
113 int m_lastLayer; // layer id of last hit in PR hits collection
114 double m_pxy; // Track Momentum(GeV)
115 double m_px;
116 double m_py;
117 double m_pz;
118 double m_p;
119 double m_theta; // The Angles
120 double m_phi; // Need to config
121 double m_x; // The Coordinate of Track origin(m)
122 double m_y;
123 double m_z;
124 double m_r;
125};
126
127typedef ObjectVector<DstCgemTrack> DstCgemTrackCol;
128
129#endif //DST_CGEMTRACK_H
130
double mass
HepGeom::Point3D< double > HepPoint3D
ObjectVector< DstCgemTrack > DstCgemTrackCol
const CLID & CLID_DstCgemTrack
double m_helix[5]
const double px() const
const double x() const
HepSymMatrix m_Ea
void setLastLayer(const int id)
const double p() const
void setStat(const int stat)
void setPx(const double px)
const HepPoint3D poca() const
const double err(const int i) const
const double theta() const
const int firstLayer() const
void setPhi(const double phi)
const double helix(const int i) const
static const CLID & classID()
void setTheta(const double theta)
DstCgemTrack & operator=(const DstCgemTrack &)
const double phi() const
void setCharge(const int charge)
void setHelix(double helix[5])
const double pxy() const
const int lastLayer() const
void setZ(const double z)
void setP(const double p)
const int trackId() const
const Hep3Vector p3() const
void setTrackId(const int trackId)
const double y() const
const double chi2() const
HepVector m_a
void setError(double err[15])
const double r() const
void setPxy(const double pxy)
void setPy(const double py)
double m_poca[3]
void setY(const double y)
void setPoca(double poca[3])
const double pz() const
const HepSymMatrix err() const
HepPoint3D m_poca3D
const double z() const
void setX(const double x)
virtual const CLID & clID() const
const HepLorentzVector p4(const double mass) const
void setNdof(const int ndof)
void setFirstLayer(const int id)
void setR(const double r)
void setPz(const double pz)
void setChi2(const double chi)
double m_err[15]
virtual ~DstCgemTrack()
const int stat() const
const double py() const
const int ndof() const
const int charge() const
const HepVector helix() const
......
const HepPoint3D x3() const