Go to the documentation of this file.00001 #ifndef SimTrack_H
00002 #define SimTrack_H
00003
00004 #include "SimDataFormats/Track/interface/CoreSimTrack.h"
00005
00006 class SimTrack : public CoreSimTrack
00007 {
00008
00009 public:
00010
00011 typedef CoreSimTrack Core;
00012
00014 SimTrack();
00015 SimTrack(int ipart, const math::XYZTLorentzVectorD& p) ;
00016
00020 SimTrack(int ipart, const math::XYZTLorentzVectorD& p, int iv, int ig);
00021
00022 SimTrack(int ipart, const math::XYZTLorentzVectorD& p, int iv, int ig,
00023 const math::XYZVectorD& tkp, const math::XYZTLorentzVectorD& tkm);
00024
00026 SimTrack(const CoreSimTrack& t, int iv, int ig);
00027
00029 int vertIndex() const { return ivert;}
00030 bool noVertex() const { return ivert==-1;}
00031
00033 int genpartIndex() const { return igenpart;}
00034 bool noGenpart() const { return igenpart==-1;}
00035
00036 const math::XYZVectorD& trackerSurfacePosition() const { return tkposition; }
00037
00038 const math::XYZTLorentzVectorD& trackerSurfaceMomentum() const { return tkmomentum; }
00039
00040 inline void setTkPosition(const math::XYZVectorD& pos) { tkposition = pos; }
00041
00042 inline void setTkMomentum(const math::XYZTLorentzVectorD& mom) { tkmomentum = mom; }
00043
00044 inline void setVertexIndex(const int v) { ivert=v;}
00045
00046 private:
00047
00048 int ivert;
00049 int igenpart;
00050
00051 math::XYZVectorD tkposition ;
00052 math::XYZTLorentzVectorD tkmomentum ;
00053
00054 };
00055
00056 #include <iosfwd>
00057 std::ostream & operator <<(std::ostream & o , const SimTrack& t);
00058
00059 #endif