BOSS 7.0.1
BESIII Offline Software System
Loading...
Searching...
No Matches
InstallArea/include/ExtEvent/ExtEvent/RecExtTrack.h
Go to the documentation of this file.
1//
2//File: ExtTrack.h
3//Author: L.L.Wang
4//
5//Description: Output of track extrapolation results.
6//
7//History: 2005.7.5 created by L.L.Wang
8//
9
10#ifndef RECEXTTRACK_H
11#define RECEXTTRACK_H
12/*
13#include "GaudiKernel/ContainedObject.h"
14#include "GaudiKernel/ObjectVector.h"
15#include "EventModel/EventModel.h"
16
17#include "CLHEP/Matrix/Vector.h"
18#include "CLHEP/Matrix/SymMatrix.h"
19#include "CLHEP/Vector/ThreeVector.h"
20 */
21#include "ExtMucHit.h"
22
23#include "DstEvent/DstExtTrack.h"
24using namespace std;
25
26extern const CLID& CLID_RecExtTrack;
27
28class RecExtTrack : public DstExtTrack
29{
30 public:
31 const CLID& clID() const
32 {
33 return RecExtTrack::classID();
34 }
35
36 static const CLID& classID()
37 {
38 return CLID_RecExtTrack;
39 }
40
42 RecExtTrack(const DstExtTrack& aDstExtTrack);
43 RecExtTrack& operator = (const DstExtTrack& aDstExtTrack);
45
46 //Get ExtMucHitCol
47 const ExtMucHitVec getExtMucHitVec() const {return myExtMucHitVec[myParticleType];};
48 const ExtMucHitVec getExtMucHitVec(int parId) const {return myExtMucHitVec[parId];};
49
50 const ExtMucHitVec GetExtMucHitVec() const {return myExtMucHitVec[myParticleType];};
51 const ExtMucHitVec GetExtMucHitVec(int parId) const {return myExtMucHitVec[parId];};
52
53 void AddExtMucHit(ExtMucHit aExtMucHit) {myExtMucHitVec[myParticleType].push_back(aExtMucHit);};
54
55 const vector<double> pathInTof1() const {return myPathInTof1[myParticleType];};
56 const vector<double> pathInTof1(int parId) const {return myPathInTof1[parId];};
57
58 const vector<double> pathInTof2() const {return myPathInTof2[myParticleType];};
59 const vector<double> pathInTof2(int parId) const {return myPathInTof2[parId];};
60
61 void setPathInTof1(vector<double> x) {myPathInTof1[myParticleType] = x;};
62 void setPathInTof2(vector<double> x) {myPathInTof2[myParticleType] = x;};
63
64 /*
65 //get Track ID number;
66 const int GetTrackID() const;
67
68 //Get track extrapolation data @ Tof layer1.
69 const Hep3Vector GetTof1Position() const;
70 const Hep3Vector GetTof1Momentum() const;
71 const string GetTof1VolumeName() const;
72 const int GetTof1VolumeNumber() const;
73 const double GetTof1() const;
74 const double GetTof1Path() const;
75 const double GetTof1PosSigmaAlongZ() const;
76 const double GetTof1PosSigmaAlongT() const;
77 const double GetTof1PosSigmaAlongX() const;
78 const double GetTof1PosSigmaAlongY() const;
79 const HepSymMatrix GetTof1ErrorMatrix() const;
80
81 //Get track extrapolation data @ Tof layer2.
82 const Hep3Vector GetTof2Position() const;
83 const Hep3Vector GetTof2Momentum() const;
84 const string GetTof2VolumeName() const;
85 const int GetTof2VolumeNumber() const;
86 const double GetTof2() const;
87 const double GetTof2Path() const;
88 const double GetTof2PosSigmaAlongZ() const;
89 const double GetTof2PosSigmaAlongT() const;
90 const double GetTof2PosSigmaAlongX() const;
91 const double GetTof2PosSigmaAlongY() const;
92 const HepSymMatrix GetTof2ErrorMatrix() const;
93
94 //Get track extrapolation data @ EMC.
95 const Hep3Vector GetEmcPosition() const;
96 const Hep3Vector GetEmcMomentum() const;
97 const string GetEmcVolumeName() const;
98 const int GetEmcVolumeNumber() const;
99 const double GetEmcPosSigmaAlongTheta() const;
100 const double GetEmcPosSigmaAlongPhi() const;
101 const HepSymMatrix GetEmcErrorMatrix() const;
102 const double GetEmcPath() const {return myEmcPath;};
103
104 //Get track extrapolation data @ MUC.
105 const Hep3Vector GetMucPosition() const;
106 const Hep3Vector GetMucMomentum() const;
107 const string GetMucVolumeName() const;
108 const int GetMucVolumeNumber() const;
109 const double GetMucPosSigmaAlongZ() const;
110 const double GetMucPosSigmaAlongT() const;
111 const double GetMucPosSigmaAlongX() const;
112 const double GetMucPosSigmaAlongY() const;
113 const HepSymMatrix GetMucErrorMatrix() const;
114
115 //Get ExtMucHitCol
116 const ExtMucHitVec GetExtMucHitVec() const {return myExtMucHitVec;};
117
118 //Set data
119
120 void SetTrackID(int aTrackID);
121
122 void SetTof1Data(Hep3Vector aPosition,Hep3Vector aMomentum,string aVolumeName,
123 int aVolumeNumber,double aTof,double aPath,HepSymMatrix aErrorMatrix,
124 double aZSigma=0.,double aTSigma=0.,double aXSigma=0.,double aYSigma=0.);
125
126 void SetTof2Data(Hep3Vector aPosition,Hep3Vector aMomentum,string aVolumeName,
127 int aVolumeNumber,double aTof,double aPath,HepSymMatrix aErrorMatrix,
128 double aZSigma=0.,double aTSigma=0.,double aXSigma=0.,double aYSigma=0.);
129
130 void SetEmcData(Hep3Vector aPosition,Hep3Vector aMomentum,string aVolumeName,
131 int aVolumeNumber,double aThetaSigma,double aPhiSigma,
132 HepSymMatrix aErrorMatrix);
133
134 void SetEmcPath(double path) {myEmcPath = path;};
135
136 void SetMucData(Hep3Vector aPosition,Hep3Vector aMomentum,string aVolumeName,
137 int aVolumeNumber,HepSymMatrix aErrorMatrix,double aZSigma=0.,
138 double aTSigma=0.,double aXSigma=0.,double aYSigma=0.);
139
140 void AddExtMucHit(ExtMucHit aExtMucHit) {myExtMucHitVec.push_back(aExtMucHit);};
141 */
142
143
144 private:
145 //MUC Hits collection
146 vector<ExtMucHitVec> myExtMucHitVec;
147
148 vector< vector<double> > myPathInTof1;// path in TOF1
149 vector< vector<double> > myPathInTof2;// path in TOF2
150
151 /*
152 int myTrackID;
153
154 //Tof TrkExt data.
155 //
156 //Tof layer1:
157 Hep3Vector myTof1Position;//Position when the particle enters the TOF layer1.
158 Hep3Vector myTof1Momentum;//Momentum when the particle enters the TOF layer1.
159 string myTof1VolumeName;//Scintillator volume name
160 int myTof1VolumeNumber;//Scintillator volume number
161 double myTof1;//Time of flight
162 double myTof1Path;//Path of flight
163 double myTof1PosSigmaAlongZ;//Sigma Z
164 double myTof1PosSigmaAlongT;//Sigma along Z x R
165 double myTof1PosSigmaAlongX;//Sigma X
166 double myTof1PosSigmaAlongY;//Sigma Y
167 HepSymMatrix myTof1ErrorMatrix;//Error matrix 6x6 (x,p)
168
169 //Tof layer2:
170 Hep3Vector myTof2Position;//Position when the particle enters the TOF layer2.
171 Hep3Vector myTof2Momentum;//Momentum when the particle enters the TOF layer2.
172 string myTof2VolumeName;//Scintillator volume name
173 int myTof2VolumeNumber;//Scintillator volume number
174 double myTof2;//Time of flight
175 double myTof2Path;//Path of flight
176 double myTof2PosSigmaAlongZ;//Sigma Z
177 double myTof2PosSigmaAlongT;//Sigma along Z x R
178 double myTof2PosSigmaAlongX;//Sigma X
179 double myTof2PosSigmaAlongY;//Sigma Y
180 HepSymMatrix myTof2ErrorMatrix;//Error matrix 6x6 (x,p)
181
182 //Emc TrkExt data,which is similar to TOF data.
183 Hep3Vector myEmcPosition;
184 Hep3Vector myEmcMomentum;
185 string myEmcVolumeName;
186 int myEmcVolumeNumber;
187 double myEmcPosSigmaAlongTheta;
188 double myEmcPosSigmaAlongPhi;
189 HepSymMatrix myEmcErrorMatrix;
190
191 double myEmcPath;
192
193 //Muc TrkExt data,which is similar to TOF data.
194 Hep3Vector myMucPosition;
195 Hep3Vector myMucMomentum;
196 string myMucVolumeName;
197 int myMucVolumeNumber;
198 double myMucPosSigmaAlongZ;
199 double myMucPosSigmaAlongT;
200 double myMucPosSigmaAlongX;
201 double myMucPosSigmaAlongY;
202 HepSymMatrix myMucErrorMatrix;
203
204 //MUC Hits collection
205 ExtMucHitVec myExtMucHitVec;
206 */
207};
208
209typedef ObjectVector<RecExtTrack> RecExtTrackCol;
210
211#endif
Double_t x[10]
const CLID & CLID_RecExtTrack
Definition: EventModel.cxx:361
ObjectVector< RecExtTrack > RecExtTrackCol
const vector< double > pathInTof2() const
RecExtTrack & operator=(const DstExtTrack &aDstExtTrack)
Definition: RecExtTrack.cxx:13
const ExtMucHitVec getExtMucHitVec(int parId) const
const ExtMucHitVec GetExtMucHitVec(int parId) const
const vector< double > pathInTof1(int parId) const
RecExtTrack(const DstExtTrack &aDstExtTrack)
const vector< double > pathInTof2(int parId) const
const vector< double > pathInTof1() const