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