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