00001
00002
00003
00004
00005
00006
00007 #ifndef EVENT_TRACKSTATE_H
00008 #define EVENT_TRACKSTATE_H 1
00009
00010 #include "EVENT/LCObject.h"
00011 #include "LCIOSTLTypes.h"
00012 #include "empty_ignore.h"
00013
00014 namespace EVENT {
00015
00016
00017 class TrackState ;
00019 typedef std::vector<TrackState*> TrackStateVec ;
00026 class TrackState : public LCObject {
00027
00028 public:
00030 virtual ~TrackState() { ; }
00031
00032
00034 typedef TrackState lcobject_type ;
00035
00036
00037 static const int AtOther = 0 ;
00038 static const int AtIP = 1 ;
00039 static const int AtFirstHit = 2 ;
00040 static const int AtLastHit = 3 ;
00041 static const int AtCalorimeter = 4 ;
00042 static const int AtVertex = 5 ;
00043 static const int LastLocation = AtVertex ;
00044
00048 virtual int getLocation() const = 0;
00049
00053 virtual float getD0() const = 0;
00054
00058 virtual float getPhi() const = 0;
00059
00063 virtual float getOmega() const = 0;
00064
00068 virtual float getZ0() const = 0;
00069
00073 virtual float getTanLambda() const = 0;
00074
00079 virtual const FloatVec & getCovMatrix() const = 0;
00080
00084 virtual const float* getReferencePoint() const = 0;
00085 };
00086 }
00087 #endif