CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_6_2_7/src/SimDataFormats/Track/interface/SimTrack.h

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