00001 #ifndef Event_McTrajectory_H 00002 #define Event_McTrajectory_H 1 00003 00004 #include <iostream> 00005 #include <vector> 00006 #include <utility> 00007 #include "CLHEP/Geometry/Point3D.h" 00008 #include "GaudiKernel/Kernel.h" 00009 #include "GaudiKernel/ContainedObject.h" 00010 #include "GaudiKernel/SmartRefVector.h" 00011 #include "GaudiKernel/ObjectVector.h" 00012 #include "GaudiKernel/ObjectList.h" 00013 #include "McTruth/McParticle.h" 00014 00015 extern const CLID& CLID_McTrajectory; 00016 00017 namespace Event { // NameSpace 00018 00019 class McTrajectory : virtual public ContainedObject { 00020 public: 00021 00022 virtual const CLID& clID() const { return McTrajectory::classID(); } 00023 static const CLID& classID() { return CLID_McTrajectory; } 00024 00025 McTrajectory(){} 00026 ~McTrajectory(){} 00027 00029 void addPoints(std::vector<Hep3Vector>& points); 00030 00032 void setMcParticle(SmartRef<McParticle> value); 00033 void setMcParticle( McParticle* value ); 00034 00036 const McParticle* getMcParticle() const; 00037 McParticle* getMcParticle(); 00038 00040 std::vector<Hep3Vector>& getPoints(){return m_points;} 00041 00043 int getCharge() const { return m_charge; } 00044 void setCharge(int charge){ m_charge=charge;} 00045 00046 private: 00048 SmartRef<McParticle> m_mcParticle; 00050 std::vector<Hep3Vector> m_points; 00052 int m_charge; 00053 00054 }; 00055 00056 // Definition of all container types of McTrajectory 00057 //template <class TYPE> class ObjectVector; 00058 typedef ObjectVector<McTrajectory> McTrajectoryVector; 00059 typedef ObjectVector<McTrajectory> McTrajectoryCol; 00060 //template <class TYPE> class ObjectList; 00061 typedef ObjectList<McTrajectory> McTrajectoryList; 00062 00063 00064 } 00065 00066 #endif // Event_McTrajectory_H 00067