BOSS 7.0.2
BESIII Offline Software System
Loading...
Searching...
No Matches
Event/RootEventData/RootEventData-00-03-80/RootEventData/TExtTrack.h
Go to the documentation of this file.
1#ifndef RootEventData_TExtTrack_H
2#define RootEventData_TExtTrack_H 1
3
4#include "TObject.h"
5#include "TString.h"
6#include "SimMatr.h"
7//using namespace std;
8
9class TExtTrack : public TObject {
10
11public:
12
14
15 ~TExtTrack ();
16
17 //modifiers
18 void SetTrackId(const Int_t trackId){ m_trackId = trackId; }
19 //Tof layer1:
20 void SetTof1PositionX(const Double_t Tof1PositionX) { myTof1PositionX = Tof1PositionX; }
21 void SetTof1PositionY(const Double_t Tof1PositionY) { myTof1PositionY = Tof1PositionY; }
22 void SetTof1PositionZ(const Double_t Tof1PositionZ) { myTof1PositionZ = Tof1PositionZ; }
23 void SetTof1MomentumX(const Double_t Tof1MomentumX) { myTof1MomentumX = Tof1MomentumX; }
24 void SetTof1MomentumY(const Double_t Tof1MomentumY) { myTof1MomentumY = Tof1MomentumY; }
25 void SetTof1MomentumZ(const Double_t Tof1MomentumZ) { myTof1MomentumZ = Tof1MomentumZ; }
26
27 void SetTof1VolumeName(const TString Tof1VolumeName) { myTof1VolumeName = Tof1VolumeName; }
28 void SetTof1VolumeNumber(const Int_t Tof1VolumeNumber) { myTof1VolumeNumber = Tof1VolumeNumber; }
29 void SetTof1(const Double_t Tof1) { myTof1 = Tof1; }
30 void SetTof1Path(const Double_t Tof1Path) { myTof1Path = Tof1Path; }
31 void SetTof1PosSigmaAlongZ(const Double_t Tof1PosSigmaAlongZ) { myTof1PosSigmaAlongZ = Tof1PosSigmaAlongZ; }
32 void SetTof1PosSigmaAlongT(const Double_t Tof1PosSigmaAlongT) { myTof1PosSigmaAlongT = Tof1PosSigmaAlongT; }
33 void SetTof1PosSigmaAlongX(const Double_t Tof1PosSigmaAlongX) { myTof1PosSigmaAlongX = Tof1PosSigmaAlongX; }
34 void SetTof1PosSigmaAlongY(const Double_t Tof1PosSigmaAlongY) { myTof1PosSigmaAlongY = Tof1PosSigmaAlongY; }
35 void SetTof1ErrorMatrix(const Double_t Tof1ErrorMatrix[6][6]) {
36 SimMat::pack2d(6,&Tof1ErrorMatrix[0][0],myTof1ErrorMatrix);
37 }
38
39 //Tof layer2:
40 void SetTof2PositionX(const Double_t Tof2PositionX) { myTof2PositionX = Tof2PositionX; }
41 void SetTof2PositionY(const Double_t Tof2PositionY) { myTof2PositionY = Tof2PositionY; }
42 void SetTof2PositionZ(const Double_t Tof2PositionZ) { myTof2PositionZ = Tof2PositionZ; }
43 void SetTof2MomentumX(const Double_t Tof2MomentumX) { myTof2MomentumX = Tof2MomentumX; }
44 void SetTof2MomentumY(const Double_t Tof2MomentumY) { myTof2MomentumY = Tof2MomentumY; }
45 void SetTof2MomentumZ(const Double_t Tof2MomentumZ) { myTof2MomentumZ = Tof2MomentumZ; }
46
47 void SetTof2VolumeName(const TString Tof2VolumeName) { myTof2VolumeName = Tof2VolumeName; }
48 void SetTof2VolumeNumber(const Int_t Tof2VolumeNumber) { myTof2VolumeNumber = Tof2VolumeNumber; }
49 void SetTof2(const Double_t Tof2) { myTof2 = Tof2; }
50 void SetTof2Path(const Double_t Tof2Path) { myTof2Path = Tof2Path; }
51 void SetTof2PosSigmaAlongZ(const Double_t Tof2PosSigmaAlongZ) { myTof2PosSigmaAlongZ = Tof2PosSigmaAlongZ; }
52 void SetTof2PosSigmaAlongT(const Double_t Tof2PosSigmaAlongT) { myTof2PosSigmaAlongT = Tof2PosSigmaAlongT; }
53 void SetTof2PosSigmaAlongX(const Double_t Tof2PosSigmaAlongX) { myTof2PosSigmaAlongX = Tof2PosSigmaAlongX; }
54 void SetTof2PosSigmaAlongY(const Double_t Tof2PosSigmaAlongY) { myTof2PosSigmaAlongY = Tof2PosSigmaAlongY; }
55 void SetTof2ErrorMatrix(const Double_t Tof2ErrorMatrix[6][6]) {
56 SimMat::pack2d(6,&Tof2ErrorMatrix[0][0],myTof2ErrorMatrix);
57 }
58
59 //Emc:
60 void SetEmcPositionX(const Double_t EmcPositionX) { myEmcPositionX = EmcPositionX; }
61 void SetEmcPositionY(const Double_t EmcPositionY) { myEmcPositionY = EmcPositionY; }
62 void SetEmcPositionZ(const Double_t EmcPositionZ) { myEmcPositionZ = EmcPositionZ; }
63 void SetEmcMomentumX(const Double_t EmcMomentumX) { myEmcMomentumX = EmcMomentumX; }
64 void SetEmcMomentumY(const Double_t EmcMomentumY) { myEmcMomentumY = EmcMomentumY; }
65 void SetEmcMomentumZ(const Double_t EmcMomentumZ) { myEmcMomentumZ = EmcMomentumZ; }
66
67 void SetEmcVolumeName(const TString EmcVolumeName) { myEmcVolumeName = EmcVolumeName; }
68 void SetEmcVolumeNumber(const Int_t EmcVolumeNumber) { myEmcVolumeNumber = EmcVolumeNumber; }
69
70 void SetEmcPosSigmaAlongTheta(const Double_t EmcPosSigmaAlongTheta) { myEmcPosSigmaAlongTheta = EmcPosSigmaAlongTheta; }
71 void SetEmcPosSigmaAlongPhi(const Double_t EmcPosSigmaAlongPhi) { myEmcPosSigmaAlongPhi = EmcPosSigmaAlongPhi; }
72
73 void SetEmcErrorMatrix(const Double_t EmcErrorMatrix[6][6]) {
74 SimMat::pack2d(6,&EmcErrorMatrix[0][0],myEmcErrorMatrix);
75 }
76
77 void SetEmcPath(Double_t path) {myEmcPath = path;}
78
79 //Muc:
80 void SetMucPositionX(const Double_t MucPositionX) { myMucPositionX = MucPositionX; }
81 void SetMucPositionY(const Double_t MucPositionY) { myMucPositionY = MucPositionY; }
82 void SetMucPositionZ(const Double_t MucPositionZ) { myMucPositionZ = MucPositionZ; }
83 void SetMucMomentumX(const Double_t MucMomentumX) { myMucMomentumX = MucMomentumX; }
84 void SetMucMomentumY(const Double_t MucMomentumY) { myMucMomentumY = MucMomentumY; }
85 void SetMucMomentumZ(const Double_t MucMomentumZ) { myMucMomentumZ = MucMomentumZ; }
86
87 void SetMucVolumeName(const TString MucVolumeName) { myMucVolumeName = MucVolumeName; }
88 void SetMucVolumeNumber(const Int_t MucVolumeNumber) { myMucVolumeNumber = MucVolumeNumber; }
89
90 void SetMucPosSigmaAlongZ(const Double_t MucPosSigmaAlongZ) { myMucPosSigmaAlongZ = MucPosSigmaAlongZ; }
91 void SetMucPosSigmaAlongT(const Double_t MucPosSigmaAlongT) { myMucPosSigmaAlongT = MucPosSigmaAlongT; }
92 void SetMucPosSigmaAlongX(const Double_t MucPosSigmaAlongX) { myMucPosSigmaAlongX = MucPosSigmaAlongX; }
93 void SetMucPosSigmaAlongY(const Double_t MucPosSigmaAlongY) { myMucPosSigmaAlongY = MucPosSigmaAlongY; }
94
95 void SetMucErrorMatrix(const Double_t MucErrorMatrix[6][6]) {
96 SimMat::pack2d(6,&MucErrorMatrix[0][0],myMucErrorMatrix);
97 }
98
99 /*void SetSize(Int_t size){ mySize = size;}
100 void SetExtMucHit(Double_t PositionX,Double_t PositionY,Double_t PositionZ,Double_t MomentumX,Double_t MomentumY , Double_t MomentumZ, TString VolumeName,Int_t VolumeNumber,Double_t PosSigmaAlongZ,Double_t PosSigmaAlongT,Double_t PosSigmaAlongX,Double_t PosSigmaAlongY,Double_t ErrorMatrix[6][6]){
101 myPositionX.push_back(PositionX);
102 myPositionY.push_back(PositionY);
103 myPositionZ.push_back(PositionZ);
104 myMomentumX.push_back(MomentumX);
105 myMomentumY.push_back(MomentumY);
106 myMomentumZ.push_back(MomentumZ);
107 myVolumeName.push_back(VolumeName);
108 myVolumeNumber.push_back(VolumeNumber);
109 myPosSigmaAlongZ.push_back(PosSigmaAlongZ);
110 myPosSigmaAlongZ.push_back(PosSigmaAlongT);
111 myPosSigmaAlongZ.push_back(PosSigmaAlongX);
112 myPosSigmaAlongZ.push_back(PosSigmaAlongY);
113 vector<Double_t> vecError;
114 for(int i=0;i<6 ;i++)
115 for(int j=0;j<6;j++){
116 vecError.push_back(ErrorMatrix[i][j]);
117 }
118 myErrorMatrix.push_back(vecError);
119 }*/
120
121 //extractors
122 Int_t GetTrackId() const { return m_trackId; }
123 //Tof layer1:
124 Double_t GetTof1PositionX() const { return myTof1PositionX ; }
125 Double_t GetTof1PositionY() const { return myTof1PositionY ; }
126 Double_t GetTof1PositionZ() const { return myTof1PositionZ ; }
127 Double_t GetTof1MomentumX() const { return myTof1MomentumX ; }
128 Double_t GetTof1MomentumY() const { return myTof1MomentumY ; }
129 Double_t GetTof1MomentumZ() const { return myTof1MomentumZ ; }
130
131 TString GetTof1VolumeName() const { return myTof1VolumeName; }
132 Int_t GetTof1VolumeNumber() const {return myTof1VolumeNumber; }
133 Double_t GetTof1() const {return myTof1; }
134 Double_t GetTof1Path() const {return myTof1Path; }
135 Double_t GetTof1PosSigmaAlongZ() const {return myTof1PosSigmaAlongZ;}
136 Double_t GetTof1PosSigmaAlongT() const {return myTof1PosSigmaAlongT;}
137 Double_t GetTof1PosSigmaAlongX() const {return myTof1PosSigmaAlongX;}
138 Double_t GetTof1PosSigmaAlongY() const {return myTof1PosSigmaAlongY;}
139 Double_t GetTof1ErrorMatrix(Int_t i , Int_t j) const {
140 return SimMat::get_element(myTof1ErrorMatrix,i,j); }
141
142 //Tof layer2:
143 Double_t GetTof2PositionX() const { return myTof2PositionX ; }
144 Double_t GetTof2PositionY() const { return myTof2PositionY ; }
145 Double_t GetTof2PositionZ() const { return myTof2PositionZ ; }
146 Double_t GetTof2MomentumX() const { return myTof2MomentumX ; }
147 Double_t GetTof2MomentumY() const { return myTof2MomentumY ; }
148 Double_t GetTof2MomentumZ() const { return myTof2MomentumZ ; }
149
150 TString GetTof2VolumeName() const { return myTof2VolumeName; }
151 Int_t GetTof2VolumeNumber() const {return myTof2VolumeNumber; }
152 Double_t GetTof2() const {return myTof2; }
153 Double_t GetTof2Path() const {return myTof2Path; }
154 Double_t GetTof2PosSigmaAlongZ() const {return myTof2PosSigmaAlongZ;}
155 Double_t GetTof2PosSigmaAlongT() const {return myTof2PosSigmaAlongT;}
156 Double_t GetTof2PosSigmaAlongX() const {return myTof2PosSigmaAlongX;}
157 Double_t GetTof2PosSigmaAlongY() const {return myTof2PosSigmaAlongY;}
158 Double_t GetTof2ErrorMatrix(Int_t i , Int_t j) const {
159 return SimMat::get_element(myTof2ErrorMatrix,i,j); }
160
161 //Emc
162 Double_t GetEmcPositionX() const { return myEmcPositionX ; }
163 Double_t GetEmcPositionY() const { return myEmcPositionY ; }
164 Double_t GetEmcPositionZ() const { return myEmcPositionZ ; }
165 Double_t GetEmcMomentumX() const { return myEmcMomentumX ; }
166 Double_t GetEmcMomentumY() const { return myEmcMomentumY ; }
167 Double_t GetEmcMomentumZ() const { return myEmcMomentumZ ; }
168
169 TString GetEmcVolumeName() const { return myEmcVolumeName; }
170 Int_t GetEmcVolumeNumber() const {return myEmcVolumeNumber; }
171 Double_t GetEmcPosSigmaAlongTheta() const {return myEmcPosSigmaAlongTheta;}
172 Double_t GetEmcPosSigmaAlongPhi() const {return myEmcPosSigmaAlongPhi;}
173 Double_t GetEmcErrorMatrix(Int_t i , Int_t j) const {
174 return SimMat::get_element(myEmcErrorMatrix,i,j); }
175 Double_t emcPath() const {return myEmcPath;}
176
177 //Muc
178 Double_t GetMucPositionX() const { return myMucPositionX ; }
179 Double_t GetMucPositionY() const { return myMucPositionY ; }
180 Double_t GetMucPositionZ() const { return myMucPositionZ ; }
181 Double_t GetMucMomentumX() const { return myMucMomentumX ; }
182 Double_t GetMucMomentumY() const { return myMucMomentumY ; }
183 Double_t GetMucMomentumZ() const { return myMucMomentumZ ; }
184
185 TString GetMucVolumeName() const { return myMucVolumeName; }
186 Int_t GetMucVolumeNumber() const {return myMucVolumeNumber; }
187 Double_t GetMucPosSigmaAlongZ() const {return myMucPosSigmaAlongZ;}
188 Double_t GetMucPosSigmaAlongT() const {return myMucPosSigmaAlongT;}
189 Double_t GetMucPosSigmaAlongX() const {return myMucPosSigmaAlongX;}
190 Double_t GetMucPosSigmaAlongY() const {return myMucPosSigmaAlongY;}
191 Double_t GetMucErrorMatrix(Int_t i , Int_t j) const {
192 return SimMat::get_element(myMucErrorMatrix,i,j); }
193
194 // ExtMucHitVet
195 /*Int_t GetSize() const {return mySize;};
196 Double_t GetPositionX(Int_t i) const {return myPositionX[i]; }
197 Double_t GetPositionY(Int_t i) const {return myPositionY[i]; }
198 Double_t GetPositionZ(Int_t i) const {return myPositionZ[i]; }
199 Double_t GetMomentumX(Int_t i) const {return myMomentumX[i];}
200 Double_t GetMomentumY(Int_t i) const {return myMomentumY[i];}
201 Double_t GetMomentumZ(Int_t i) const {return myMomentumZ[i];}
202 TString GetVolumeName(Int_t i) const {return myVolumeName[i];}
203 Int_t GetVolumeNumber(Int_t i) const {return myVolumeNumber[i];}
204 Double_t GetPosSigmaAlongZ(Int_t i) const {return myPosSigmaAlongZ[i];}
205 Double_t GetPosSigmaAlongT(Int_t i) const {return myPosSigmaAlongT[i];}
206 Double_t GetPosSigmaAlongX(Int_t i) const {return myPosSigmaAlongX[i];}
207 Double_t GetPosSigmaAlongY(Int_t i) const {return myPosSigmaAlongY[i];}
208 vector<Double_t> GetErrorMatrix(Int_t i) const {return myErrorMatrix[i];}
209 */
210
211
212private:
213
214 //Tof TrkExt data.
215 Int_t m_trackId; //Track Id wensp Add 2005-10-19
216 //
217 //Tof layer1:
218 Double_t myTof1PositionX; //Position when the particle enters the TOF layer1.
219 Double_t myTof1PositionY; //Position when the particle enters the TOF layer1
220 Double_t myTof1PositionZ; //Position when the particle enters the TOF layer1
221 Double_t myTof1MomentumX;//Momentum when the particle enters the TOF layer1.
222 Double_t myTof1MomentumY;//Momentum when the particle enters the TOF layer1.
223 Double_t myTof1MomentumZ;//Momentum when the particle enters the TOF layer1.
224
225 TString myTof1VolumeName;//Scintillator volume name
226 Int_t myTof1VolumeNumber;//Scintillator volume number
227 Double_t myTof1;//Time of flight
228 Double_t myTof1Path;//Path of flight
229 Double_t myTof1PosSigmaAlongZ;//Sigma Z
230 Double_t myTof1PosSigmaAlongT;//Sigma along Z x R
231 Double_t myTof1PosSigmaAlongX;//Sigma X
232 Double_t myTof1PosSigmaAlongY;//Sigma Y
233 //o Double_t myTof1ErrorMatrix[6][6]; //Error matrix 6x6 (x,p)
234 Double_t myTof1ErrorMatrix[21]; //Error matrix 6x6 (x,p)
235
236 //Tof layer2:
237 Double_t myTof2PositionX; //Position when the particle enters the TOF layer2.
238 Double_t myTof2PositionY; //Position when the particle enters the TOF layer2
239 Double_t myTof2PositionZ; //Position when the particle enters the TOF layer2
240 Double_t myTof2MomentumX;//Momentum when the particle enters the TOF layer2
241 Double_t myTof2MomentumY;//Momentum when the particle enters the TOF layer2
242 Double_t myTof2MomentumZ;//Momentum when the particle enters the TOF layer2
243
244 TString myTof2VolumeName;//Scintillator volume name
245 Int_t myTof2VolumeNumber;//Scintillator volume number
246 Double_t myTof2;//Time of flight
247 Double_t myTof2Path;//Path of flight
248 Double_t myTof2PosSigmaAlongZ;//Sigma Z
249 Double_t myTof2PosSigmaAlongT;//Sigma along Z x R
250 Double_t myTof2PosSigmaAlongX;//Sigma X
251 Double_t myTof2PosSigmaAlongY;//Sigma Y
252 //o Double_t myTof2ErrorMatrix[6][6]; //Error matrix 6x6 (x,p)
253 Double_t myTof2ErrorMatrix[21]; //Error matrix 6x6 (x,p)
254
255 //Emc TrkExt data,which is similar to TOF data.
256 Double_t myEmcPositionX; //Position 2.
257 Double_t myEmcPositionY; //Position 2
258 Double_t myEmcPositionZ; //Position 2
259 Double_t myEmcMomentumX;//Momentum
260 Double_t myEmcMomentumY;//Momentum
261 Double_t myEmcMomentumZ;//Momentum
262
263 TString myEmcVolumeName;//Scintillator volume name
264 Int_t myEmcVolumeNumber;//Scintillator volume number
265 Double_t myEmcPosSigmaAlongTheta;
266 Double_t myEmcPosSigmaAlongPhi;
267 //o Double_t myEmcErrorMatrix[6][6]; //Error matrix 6x6 (x,p)
268 Double_t myEmcErrorMatrix[21]; //Error matrix 6x6 (x,p)
269
270 Double_t myEmcPath;
271
272 //Muc TrkExt data,which is similar to TOF data.
273 Double_t myMucPositionX; //Position 2.
274 Double_t myMucPositionY; //Position 2
275 Double_t myMucPositionZ; //Position 2
276 Double_t myMucMomentumX;//Momentum
277 Double_t myMucMomentumY;//Momentum
278 Double_t myMucMomentumZ;//Momentum
279
280 TString myMucVolumeName;//Scintillator volume name
281 Int_t myMucVolumeNumber;//Scintillator volume number
282
283 Double_t myMucPosSigmaAlongZ;
284 Double_t myMucPosSigmaAlongT;
285 Double_t myMucPosSigmaAlongX;
286 Double_t myMucPosSigmaAlongY;
287 //o Double_t myMucErrorMatrix[6][6];
288 Double_t myMucErrorMatrix[21];
289
290 // for ExtMucHitVec
291 /*Int_t mySize; //size of the vector
292 vector<Double_t> myPositionX;
293 vector<Double_t> myPositionY;
294 vector<Double_t> myPositionZ;
295 vector<Double_t> myMomentumX;
296 vector<Double_t> myMomentumY;
297 vector<Double_t> myMomentumZ;
298 vector<TString> myVolumeName;
299 vector<Int_t> myVolumeNumber;
300 vector<Double_t> myPosSigmaAlongZ;
301 vector<Double_t> myPosSigmaAlongT;
302 vector<Double_t> myPosSigmaAlongX;
303 vector<Double_t> myPosSigmaAlongY;
304 vector< vector<Double_t> > myErrorMatrix;
305 */
306
307 ClassDef(TExtTrack,4)
308};
309
310#endif
void SetTof1PosSigmaAlongZ(const Double_t Tof1PosSigmaAlongZ)
void SetTof1PosSigmaAlongX(const Double_t Tof1PosSigmaAlongX)
void SetTof1PosSigmaAlongY(const Double_t Tof1PosSigmaAlongY)
void SetEmcErrorMatrix(const Double_t EmcErrorMatrix[6][6])
void SetMucErrorMatrix(const Double_t MucErrorMatrix[6][6])
void SetTof1PosSigmaAlongT(const Double_t Tof1PosSigmaAlongT)
void SetMucPosSigmaAlongX(const Double_t MucPosSigmaAlongX)
void SetTof2PosSigmaAlongY(const Double_t Tof2PosSigmaAlongY)
void SetMucPosSigmaAlongY(const Double_t MucPosSigmaAlongY)
void SetTof2ErrorMatrix(const Double_t Tof2ErrorMatrix[6][6])
void SetTof2PosSigmaAlongZ(const Double_t Tof2PosSigmaAlongZ)
void SetMucPosSigmaAlongT(const Double_t MucPosSigmaAlongT)
void SetMucPosSigmaAlongZ(const Double_t MucPosSigmaAlongZ)
void SetTof2PosSigmaAlongX(const Double_t Tof2PosSigmaAlongX)
void SetTof2PosSigmaAlongT(const Double_t Tof2PosSigmaAlongT)
void SetTof1ErrorMatrix(const Double_t Tof1ErrorMatrix[6][6])
void SetEmcPosSigmaAlongTheta(const Double_t EmcPosSigmaAlongTheta)
void SetEmcPosSigmaAlongPhi(const Double_t EmcPosSigmaAlongPhi)