10#include "EventModel/EventModel.h"
11#include "GaudiKernel/ContainedObject.h"
12#include "GaudiKernel/ObjectVector.h"
14#include "CLHEP/Matrix/SymMatrix.h"
15#include "CLHEP/Matrix/Vector.h"
16#include "CLHEP/Vector/ThreeVector.h"
22using CLHEP::Hep3Vector;
23using CLHEP::HepSymMatrix;
36 const int trackId()
const {
return m_trackId; }
52 const Hep3Vector
tof1Position(
int parID )
const {
return myTof1Position[parID]; };
54 const Hep3Vector
tof1Momentum(
int parID )
const {
return myTof1Momentum[parID]; };
56 const string tof1VolumeName(
int parID )
const {
return myTof1VolumeName[parID]; };
60 const double tof1(
int parID )
const {
return myTof1[parID]; };
62 const double tof1Path(
int parID )
const {
return myTof1Path[parID]; };
72 const HepSymMatrix
tof1ErrorMatrix(
int parID )
const {
return myTof1ErrorMatrix[parID]; };
88 const Hep3Vector
tof2Position(
int parID )
const {
return myTof2Position[parID]; };
90 const Hep3Vector
tof2Momentum(
int parID )
const {
return myTof2Momentum[parID]; };
92 const string tof2VolumeName(
int parID )
const {
return myTof2VolumeName[parID]; };
96 const double tof2(
int parID )
const {
return myTof2[parID]; };
98 const double tof2Path(
int parID )
const {
return myTof2Path[parID]; };
108 const HepSymMatrix
tof2ErrorMatrix(
int parID )
const {
return myTof2ErrorMatrix[parID]; };
120 const Hep3Vector
emcPosition(
int parID )
const {
return myEmcPosition[parID]; };
122 const Hep3Vector
emcMomentum(
int parID )
const {
return myEmcMomentum[parID]; };
124 const string emcVolumeName(
int parID )
const {
return myEmcVolumeName[parID]; };
131 return myEmcPosSigmaAlongTheta[parID];
136 const HepSymMatrix
emcErrorMatrix(
int parID )
const {
return myEmcErrorMatrix[parID]; };
138 const double emcPath(
int parID )
const {
return myEmcPath[parID]; };
152 const Hep3Vector
mucPosition(
int parID )
const {
return myMucPosition[parID]; };
154 const Hep3Vector
mucMomentum(
int parID )
const {
return myMucMomentum[parID]; };
156 const string mucVolumeName(
int parID )
const {
return myMucVolumeName[parID]; };
168 const HepSymMatrix
mucErrorMatrix(
int parID )
const {
return myMucErrorMatrix[parID]; };
172 const double MucKalchi2(
int parID )
const {
return myMucKalchi2[1]; }
174 const int MucKaldof(
int parID )
const {
return myMucKaldof[1]; };
176 const double MucKaldepth(
int parID )
const {
return myMucKaldepth[1]; };
195 cout <<
"DstExtTrack::warning: Invalid particle number: " << aParType << endl;
200 void SetTof1Data( Hep3Vector aPosition, Hep3Vector aMomentum,
string aVolumeName,
201 int aVolumeNumber,
double aTof,
double aPath, HepSymMatrix aErrorMatrix,
202 double aZSigma = 0.,
double aTSigma = 0.,
double aXSigma = 0.,
203 double aYSigma = 0. );
205 void SetTof2Data( Hep3Vector aPosition, Hep3Vector aMomentum,
string aVolumeName,
206 int aVolumeNumber,
double aTof,
double aPath, HepSymMatrix aErrorMatrix,
207 double aZSigma = 0.,
double aTSigma = 0.,
double aXSigma = 0.,
208 double aYSigma = 0. );
210 void SetEmcData( Hep3Vector aPosition, Hep3Vector aMomentum,
string aVolumeName,
211 int aVolumeNumber,
double aThetaSigma,
double aPhiSigma,
212 HepSymMatrix aErrorMatrix );
216 void SetMucData( Hep3Vector aPosition, Hep3Vector aMomentum,
string aVolumeName,
217 int aVolumeNumber, HepSymMatrix aErrorMatrix,
double aZSigma = 0.,
218 double aTSigma = 0.,
double aXSigma = 0.,
double aYSigma = 0. );
221 void SetMucKalData(
double chi2,
int dof,
double depth,
int brLastLay,
int ecLastLay,
234 vector<Hep3Vector> myTof1Position;
235 vector<Hep3Vector> myTof1Momentum;
236 vector<string> myTof1VolumeName;
237 int myTof1VolumeNumber[5];
239 double myTof1Path[5];
240 double myTof1PosSigmaAlongZ[5];
241 double myTof1PosSigmaAlongT[5];
242 double myTof1PosSigmaAlongX[5];
243 double myTof1PosSigmaAlongY[5];
244 vector<HepSymMatrix> myTof1ErrorMatrix;
247 vector<Hep3Vector> myTof2Position;
248 vector<Hep3Vector> myTof2Momentum;
249 vector<string> myTof2VolumeName;
250 int myTof2VolumeNumber[5];
252 double myTof2Path[5];
253 double myTof2PosSigmaAlongZ[5];
254 double myTof2PosSigmaAlongT[5];
255 double myTof2PosSigmaAlongX[5];
256 double myTof2PosSigmaAlongY[5];
257 vector<HepSymMatrix> myTof2ErrorMatrix;
260 vector<Hep3Vector> myEmcPosition;
261 vector<Hep3Vector> myEmcMomentum;
262 vector<string> myEmcVolumeName;
263 int myEmcVolumeNumber[5];
264 double myEmcPosSigmaAlongTheta[5];
265 double myEmcPosSigmaAlongPhi[5];
266 vector<HepSymMatrix> myEmcErrorMatrix;
270 vector<Hep3Vector> myMucPosition;
271 vector<Hep3Vector> myMucMomentum;
272 vector<string> myMucVolumeName;
273 int myMucVolumeNumber[5];
274 double myMucPosSigmaAlongZ[5];
275 double myMucPosSigmaAlongT[5];
276 double myMucPosSigmaAlongX[5];
277 double myMucPosSigmaAlongY[5];
278 vector<HepSymMatrix> myMucErrorMatrix;
281 double myMucKalchi2[5];
283 double myMucKaldepth[5];
284 int myMucKalbrLastLayer[5];
285 int myMucKalecLastLayer[5];
286 int myMucKalnumHits[5];
const CLID & CLID_DstExtTrack
ObjectVector< DstExtTrack > DstExtTrackCol
const CLID & CLID_DstExtTrack
const double MucKaldepth(int parID) const
const Hep3Vector emcPosition() const
static const CLID & classID()
const HepSymMatrix mucErrorMatrix(int parID) const
const double MucKalchi2() const
const string tof1VolumeName(int parID) const
const double tof1Path() const
const Hep3Vector tof1Position() const
void SetTof1Data(Hep3Vector aPosition, Hep3Vector aMomentum, string aVolumeName, int aVolumeNumber, double aTof, double aPath, HepSymMatrix aErrorMatrix, double aZSigma=0., double aTSigma=0., double aXSigma=0., double aYSigma=0.)
const Hep3Vector tof1Position(int parID) const
const double mucPosSigmaAlongZ() const
const double emcPosSigmaAlongTheta() const
const double tof2Path(int parID) const
const Hep3Vector tof1Momentum(int parID) const
const int GetTrackId() const
const double MucKalchi2(int parID) const
const HepSymMatrix mucErrorMatrix() const
const double mucPosSigmaAlongT(int parID) const
const int MucKalnumHits(int parID) const
void SetTrackId(int trackId)
const Hep3Vector mucMomentum() const
void SetEmcData(Hep3Vector aPosition, Hep3Vector aMomentum, string aVolumeName, int aVolumeNumber, double aThetaSigma, double aPhiSigma, HepSymMatrix aErrorMatrix)
const double tof1PosSigmaAlongX(int parID) const
const Hep3Vector tof2Position(int parID) const
const double emcPosSigmaAlongPhi() const
const double tof2PosSigmaAlongY(int parID) const
const string tof1VolumeName() const
const int MucKalnumHits() const
const double tof2PosSigmaAlongY() const
const double mucPosSigmaAlongX() const
const HepSymMatrix tof1ErrorMatrix() const
const int tof1VolumeNumber() const
const Hep3Vector mucMomentum(int parID) const
const string emcVolumeName() const
const double tof1() const
const Hep3Vector mucPosition(int parID) const
const CLID & clID() const
const double tof1Path(int parID) const
const Hep3Vector tof2Momentum() const
const double MucKaldepth() const
const Hep3Vector tof2Momentum(int parID) const
const Hep3Vector tof1Momentum() const
const double tof2() const
const double tof2PosSigmaAlongX(int parID) const
const double tof2PosSigmaAlongZ() const
const double mucPosSigmaAlongZ(int parID) const
const int MucKalecLastLayer() const
const int mucVolumeNumber(int parID) const
const double mucPosSigmaAlongY(int parID) const
const Hep3Vector emcMomentum(int parID) const
const double tof2(int parID) const
const double tof1PosSigmaAlongT(int parID) const
const double emcPosSigmaAlongTheta(int parID) const
const HepSymMatrix emcErrorMatrix() const
void SetParType(int aParType=2)
const double tof1PosSigmaAlongZ(int parID) const
void SetTof2Data(Hep3Vector aPosition, Hep3Vector aMomentum, string aVolumeName, int aVolumeNumber, double aTof, double aPath, HepSymMatrix aErrorMatrix, double aZSigma=0., double aTSigma=0., double aXSigma=0., double aYSigma=0.)
const Hep3Vector mucPosition() const
const double tof2PosSigmaAlongT(int parID) const
const int emcVolumeNumber(int parID) const
const double mucPosSigmaAlongX(int parID) const
const double tof2PosSigmaAlongZ(int parID) const
const double tof1PosSigmaAlongY(int parID) const
const int MucKaldof(int parID) const
const double tof1PosSigmaAlongX() const
const string mucVolumeName() const
const double tof2Path() const
const HepSymMatrix tof1ErrorMatrix(int parID) const
const string mucVolumeName(int parID) const
const double tof2PosSigmaAlongT() const
const double emcPosSigmaAlongPhi(int parID) const
const string tof2VolumeName() const
const double mucPosSigmaAlongY() const
const int trackId() const
void SetMucData(Hep3Vector aPosition, Hep3Vector aMomentum, string aVolumeName, int aVolumeNumber, HepSymMatrix aErrorMatrix, double aZSigma=0., double aTSigma=0., double aXSigma=0., double aYSigma=0.)
const HepSymMatrix tof2ErrorMatrix(int parID) const
const int tof1VolumeNumber(int parID) const
void SetEmcPath(double path)
const Hep3Vector emcMomentum() const
const double tof1PosSigmaAlongY() const
const HepSymMatrix tof2ErrorMatrix() const
const double emcPath() const
const double tof1PosSigmaAlongT() const
const double mucPosSigmaAlongT() const
const int MucKalecLastLayer(int parID) const
const int MucKalbrLastLayer(int parID) const
const int tof2VolumeNumber(int parID) const
const int mucVolumeNumber() const
const HepSymMatrix emcErrorMatrix(int parID) const
const double tof2PosSigmaAlongX() const
void SetMucKalData(double chi2, int dof, double depth, int brLastLay, int ecLastLay, int nhits)
const int emcVolumeNumber() const
const Hep3Vector emcPosition(int parID) const
const double tof1PosSigmaAlongZ() const
const int tof2VolumeNumber() const
const double tof1(int parID) const
const Hep3Vector tof2Position() const
const string emcVolumeName(int parID) const
const string tof2VolumeName(int parID) const
const int MucKaldof() const
const double emcPath(int parID) const
const int MucKalbrLastLayer() const