00001 // $Id: GiGaTrackActionBase.h,v 1.12 2007/03/18 18:25:05 gcorti Exp $ 00002 #ifndef GIGA_GiGaTrackActionBase_H 00003 #define GIGA_GiGaTrackActionBase_H 1 00004 00005 // Include files 00006 // from STL 00007 #include <vector> 00008 // base class 00009 #include "GiGa/IGiGaTrackAction.h" 00010 #include "GiGa/GiGaBase.h" 00011 00012 // Forward declaration 00013 class G4Track; 00014 00015 00024 class GiGaTrackActionBase: 00025 public virtual IGiGaTrackAction , 00026 public GiGaBase 00027 { 00028 00029 public: 00030 00038 GiGaTrackActionBase 00039 ( const std::string& type , 00040 const std::string& name , 00041 const IInterface* parent ) ; 00042 00043 virtual ~GiGaTrackActionBase(); 00044 00051 virtual StatusCode initialize () ; 00052 00059 virtual StatusCode finalize () ; 00060 00061 virtual void PreUserTrackingAction ( const G4Track* ); 00062 virtual void PostUserTrackingAction ( const G4Track* ); 00063 00064 protected: 00065 00069 inline G4TrackingManager* trackMgr() const 00070 { return G4UserTrackingAction::fpTrackingManager; } 00071 00072 private: 00073 00074 GiGaTrackActionBase (); 00075 GiGaTrackActionBase ( const GiGaTrackActionBase& ); 00076 GiGaTrackActionBase& operator=( const GiGaTrackActionBase& ); 00077 00078 }; 00079 00080 #endif 00081 00082 00083 00084 00085 00086 00087 00088 00089 00090 00091 00092 00093 00094 00095