BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
Event/DstEvent/include/DstEvent/DstTofTrack.h
Go to the documentation of this file.
1#ifndef DST_TOFTRACK_H
2#define DST_TOFTRACK_H
3#include "EventModel/EventModel.h"
4#include "GaudiKernel/ContainedObject.h"
5#include "GaudiKernel/ObjectVector.h"
6#include <vector>
7
8using namespace std;
9using namespace EventModel;
10
11extern const CLID& CLID_DstTofTrack;
12
13/*
14class RecBTofTrack ;
15class RecETofTrack ;
16*/
17
18class DstTofTrack : virtual public ContainedObject {
19
20public:
22 virtual ~DstTofTrack() {}
23
24 // Assignment constructor.
25 /*
26 DstTofTrack& operator=(const RecBTofTrack& source);
27 void copy(const RecBTofTrack* orig);
28 DstTofTrack(const RecBTofTrack& source);
29
30 DstTofTrack& operator=(const RecETofTrack& source);
31 void copy(const RecETofTrack* orig);
32 DstTofTrack(const RecETofTrack& source);
33 */
34
35 virtual const CLID& clID() const { return DstTofTrack::classID(); }
36 static const CLID& classID() { return CLID_DstTofTrack; }
37
38public:
39 int tofTrackID() const { return m_tofTrackID; }
40 int trackID() const { return m_trackID; }
41 int tofID();
42 int strip();
43
44 unsigned int status() const { return m_status; }
45
46 double path() const { return m_path; }
47 double zrhit() const { return m_zrhit; }
48 double ph() const { return m_ph; }
49 double tof() const { return m_tof; }
50 double errtof() const { return m_sigma[0]; }
51 double beta() const { return m_beta; }
52
53 double texp( int i ) const { return m_texp[i]; }
54 double texpElectron() const { return m_texp[0]; }
55 double texpMuon() const { return m_texp[1]; }
56 double texpPion() const { return m_texp[2]; }
57 double texpKaon() const { return m_texp[3]; }
58 double texpProton() const { return m_texp[4]; }
59
60 double toffset( int i ) const { return m_toffset[i]; }
61 double toffsetElectron() const { return m_toffset[0]; }
62 double toffsetMuon() const { return m_toffset[1]; }
63 double toffsetPion() const { return m_toffset[2]; }
64 double toffsetKaon() const { return m_toffset[3]; }
65 double toffsetProton() const { return m_toffset[4]; }
66 double toffsetAntiProton() const { return m_toffset[5]; }
67
68 double sigma( int i ) const { return m_sigma[i]; }
69 double sigmaElectron() const { return m_sigma[0]; }
70 double sigmaMuon() const { return m_sigma[1]; }
71 double sigmaPion() const { return m_sigma[2]; }
72 double sigmaKaon() const { return m_sigma[3]; }
73 double sigmaProton() const { return m_sigma[4]; }
74 double sigmaAntiProton() const { return m_sigma[5]; }
75
76 int quality() const { return m_quality; }
77
78 double t0() const { return m_t0; }
79 double errt0() const { return m_errt0; }
80
81 double errz() const { return m_errz; }
82 double phi() const { return m_phi; }
83 double errphi() const { return m_errphi; }
84 double energy() const { return m_energy; }
85 double errenergy() const { return m_errenergy; }
86
87public:
88 void setTofTrackID( int tofTrackID ) { m_tofTrackID = tofTrackID; }
89 void setTrackID( int trackID ) { m_trackID = trackID; }
90 void setTofID( int tofID ) { m_tofID = tofID; }
91 void setStatus( unsigned int status ) { m_status = status; }
92
93 void setPath( double path ) { m_path = path; }
94 void setZrHit( double zrhit ) { m_zrhit = zrhit; }
95 void setPh( double ph ) { m_ph = ph; }
96 void setTof( double tof ) { m_tof = tof; }
97 void setErrTof( double etof ) { m_sigma[0] = etof; }
98 void setBeta( double beta ) { m_beta = beta; }
99
100 void setTexp( double texp[5] ) {
101 for ( int i = 0; i < 5; i++ ) { m_texp[i] = texp[i]; }
102 }
103 void setTexpElectron( double texpe ) { m_texp[0] = texpe; }
104 void setTexpMuon( double texpmu ) { m_texp[1] = texpmu; }
105 void setTexpPion( double texppi ) { m_texp[2] = texppi; }
106 void setTexpKaon( double texpk ) { m_texp[3] = texpk; }
107 void setTexpProton( double texpp ) { m_texp[4] = texpp; }
108
109 void setToffset( double toffset[6] ) {
110 for ( int i = 0; i < 6; i++ ) { m_toffset[i] = toffset[i]; }
111 }
112 void setToffsetElectron( double toe ) { m_toffset[0] = toe; }
113 void setToffsetMuon( double tomu ) { m_toffset[1] = tomu; }
114 void setToffsetPion( double topi ) { m_toffset[2] = topi; }
115 void setToffsetKaon( double tok ) { m_toffset[3] = tok; }
116 void setToffsetProton( double top ) { m_toffset[4] = top; }
117 void setToffsetAntiProton( double topb ) { m_toffset[5] = topb; }
118
119 void setSigma( double sigma[6] ) {
120 for ( int i = 0; i < 6; i++ ) { m_sigma[i] = sigma[i]; }
121 }
122 void setSigmaElectron( double se ) { m_sigma[0] = se; }
123 void setSigmaMuon( double smu ) { m_sigma[1] = smu; }
124 void setSigmaPion( double spi ) { m_sigma[2] = spi; }
125 void setSigmaKaon( double sk ) { m_sigma[3] = sk; }
126 void setSigmaProton( double sp ) { m_sigma[4] = sp; }
127 void setSigmaAntiProton( double spb ) { m_sigma[5] = spb; }
128
129 void setQuality( int quality ) { m_quality = quality; }
130
131 void setT0( double t0 ) { m_t0 = t0; }
132 void setErrT0( double errt0 ) { m_errt0 = errt0; }
133
134 void setErrZ( double errz ) { m_errz = errz; }
135 void setPhi( double phi ) { m_phi = phi; }
136 void setErrPhi( double errphi ) { m_errphi = errphi; }
137 void setEnergy( double energy ) { m_energy = energy; }
138 void setErrEnergy( double errenergy ) { m_errenergy = errenergy; }
139
140private:
141 int m_tofTrackID{ 0 }; // The ID of Tof Cluster reconstruction
142 int m_trackID{ 0 }; // Track ID from MDC / Shower ID from EMC.
143 int m_tofID{ 0 }; // Tof Counter ID.
144 unsigned int m_status{ 0 }; // Status.
145 // 0x0000 0000
146 // 0 0 0 0 0 0 0 0
147 // | | | BR / 1 EC | | | raw
148 // | | East / 1 West | | ReadOut Unit
149 // No Hit | Counter
150 // 01 1st Layer Cluster
151 // 10 2nd Layer / 11 both Layers
152 // 0x 00 00 00 00 00(used)
153 // | | counter number
154 // | east readout number
155 // west readout number
156
157 double m_path{ 0.0 }; // Distance of flight.
158 double m_zrhit{ 0.0 }; // Track extrapolate Z or R Hit position.
159 double m_ph{ 0.0 }; // Pulse height.
160 double m_tof{ 0.0 }; // Time of flight.
161 double m_beta{ 0.0 }; // Beta value of the track.
162 double m_texp[5]{}; // Expected time of flight of 5 sorts of particle.
163 double m_toffset[6]{}; // Time offset of e, mu, pi, k and p and pbar.
164 double m_sigma[6]{}; // Time resolution of 5+1 sorts of particle.
165 int m_quality{ 0 }; // Data quality of reconstruction.
166 // 1: good charged track
167 // 2: neutral track with good hit
168 // 0: ZT-ZTDC didnot match
169 // 3: no hit in counter
170 // 4: two hits in counter
171 // 5: more than two hits in counter
172 // 6: only single end output of one layer
173 // 7: two hits in counter with bad match with ZTDC
174 // 10: initialize
175 // ......
176 double m_t0{ 0.0 }; // t0 from data set calibration.
177 double m_errt0{ 0.0 }; // t0 sigma from tof calibration.
178
179 double m_errz{ 0.0 }; // Error of zTDC(m_zrhit) for neutral track.
180 double m_phi{ 0.0 }; // Angle of phi used for neutral track.
181 double m_errphi{ 0.0 }; // Error of angle of phi.
182 double m_energy{ 0.0 }; // Energy deposit for neutral track
183 double m_errenergy{ 0.0 }; // Error of energy deposit (m_ph) for neutral track.
184};
185
186typedef ObjectVector<DstTofTrack> DstTofTrackCol;
187
188#endif // DST_TOFTRACK_H
const CLID & CLID_DstTofTrack
ObjectVector< DstTofTrack > DstTofTrackCol
const CLID & CLID_DstTofTrack
virtual const CLID & clID() const