BOSS 7.0.5
BESIII Offline Software System
Loading...
Searching...
No Matches
InstallArea/include/DstEvent/DstEvent/DstMdcTrack.h
Go to the documentation of this file.
1#ifndef DSTMDCTRACK_H
2#define DSTMDCTRACK_H
3#include "GaudiKernel/ObjectVector.h"
4#include "GaudiKernel/ContainedObject.h"
5#include "EventModel/EventModel.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_DstMdcTrack;
22
23
24class DstMdcTrack : virtual public ContainedObject
25{
26 public:
30 virtual ~DstMdcTrack() {}
31 virtual const CLID& clID() const { return DstMdcTrack::classID();}
32 static const CLID& classID() { return CLID_DstMdcTrack; }
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 nster() const { return m_nster;}
69 const int firstLayer() const { return m_firstLayer;}
70 const int lastLayer() const { return m_lastLayer; }
71 const int nlayer() const { return m_nlayer; }
72
73
74 // set functions
75 void setHelix(double helix[5]);
76 void setPoca(double poca[3]);
77 void setError( double err[15]);
78 void setHelix(const HepVector& a);
79 void setPoca(const HepPoint3D& poca);
80 void setError(const HepSymMatrix& Ea);
81
82 void setTrackId(const int trackId ) { m_trackId = trackId; }
83 void setCharge(const int charge ) { m_charge = charge;}
84 void setPxy(const double pxy) { m_pxy = pxy; }
85 void setPx (const double px) { m_px = px; }
86 void setPy(const double py) { m_py = py; }
87 void setPz(const double pz) { m_pz = pz; }
88 void setP(const double p ) { m_p = p; }
89 void setTheta(const double theta) { m_theta = theta; }
90 void setPhi(const double phi ) { m_phi = phi; }
91 void setX(const double x) { m_x = x; }
92 void setY(const double y) { m_y = y; }
93 void setZ(const double z) { m_z = z; }
94 void setR(const double r) { m_r = r; }
95 void setStat(const int stat) { m_stat = stat;}
96 void setChi2(const double chi) { m_chi2 = chi;}
97 void setNdof(const int ndof) { m_ndof = ndof;}
98 void setNster(const int ns) { m_nster = ns;}
99 void setFirstLayer(const int id) { m_firstLayer = id;}
100 void setLastLayer(const int id) { m_lastLayer = id;}
101 void setNlayer(const int nlayer) { m_nlayer = nlayer;}
102
103
104 protected:
105 int m_trackId; // Track ID wensp Add 2005-10-19
106 int m_charge; // charge of the track
107 double m_helix[5]; // 5 track parameters
108 double m_err[15]; // Error Matrix
109 double m_poca[3]; // position of closest approach to origin
111 HepVector m_a;
112 HepSymMatrix m_Ea;
113 int m_stat; // Track Fit Quality status flag
114 double m_chi2; // chisq of track fit
115 int m_ndof; // degree of freedom
116 int m_nster; // number of stereo hits contained
117 int m_firstLayer; // layer id of first hit in PR hits collection
118 int m_lastLayer; // layer id of last hit in PR hits collection
119 int m_nlayer; // number of layer that track passed
120 double m_pxy; // Track Momentum(GeV)
121 double m_px;
122 double m_py;
123 double m_pz;
124 double m_p;
125 double m_theta; // The Angles
126 double m_phi; // Need to config
127 double m_x; // The Coordinate of Track origin(m)
128 double m_y;
129 double m_z;
130 double m_r;
131};
132
133typedef ObjectVector<DstMdcTrack> DstMdcTrackCol;
134
135#endif //DST_MDCTRACK_H
136
double mass
HepGeom::Point3D< double > HepPoint3D
const CLID & CLID_DstMdcTrack
Definition: EventModel.cxx:252
ObjectVector< DstMdcTrack > DstMdcTrackCol
void setHelix(const HepVector &a)
const HepSymMatrix err() const
void setError(double err[15])
const HepLorentzVector p4(const double mass) const
void setPoca(const HepPoint3D &poca)
DstMdcTrack & operator=(const DstMdcTrack &)
void setError(const HepSymMatrix &Ea)
DstMdcTrack(const DstMdcTrack &)
void setHelix(double helix[5])
void setPoca(double poca[3])
const double err(const int i) const
const HepVector helix() const
......
const double helix(const int i) const
#define ns(x)
Definition: xmltok.c:1504