00001 // $Id: GaussTrackActionBase.h,v 1.5 2007/03/18 19:16:12 gcorti Exp $ 00002 #ifndef GAUSSTOOLS_GAUSSTRACKACTIONBASE_H 00003 #define GAUSSTOOLS_GAUSSTRACKACTIONBASE_H 1 00004 // Include files 00005 00006 // from Gaudi 00007 #include "GaudiKernel/Kernel.h" 00008 00009 // from GiGa 00010 #include "GiGa/GiGaTrackActionBase.h" 00011 00012 // Forward declaration 00013 class GaussTrajectory ; 00014 class GaussTrackInformation ; 00015 00023 class GaussTrackActionBase : public GiGaTrackActionBase 00024 { 00025 public: 00026 00034 virtual StatusCode initialize () ; 00035 00043 virtual StatusCode finalize () ; 00044 00045 protected: 00046 00055 GaussTrackActionBase 00056 ( const std::string& type , 00057 const std::string& name , 00058 const IInterface* parent ) ; 00059 00061 virtual ~GaussTrackActionBase(); 00062 00063 private: 00064 00065 // default constructor is disabled 00066 GaussTrackActionBase() ; 00067 // copy constructor is disabled 00068 GaussTrackActionBase ( const GaussTrackActionBase& ) ; 00069 // assignement operator is disabled 00070 GaussTrackActionBase& operator=( const GaussTrackActionBase& ) ; 00071 00072 protected: 00073 00074 // get the valid Gauss Trajectory 00075 GaussTrajectory* trajectory () const ; 00076 // get the valid Gauss tarck information 00077 GaussTrackInformation* trackInfo () const ; 00078 // get the valid Gauss tarck information 00079 GaussTrackInformation* trackInfo ( G4Track* track ) const ; 00080 // store children tracks 00081 StatusCode storeChildren () const ; 00082 00083 protected : 00084 00085 // mark information "to be stored" and increment 00086 // the flag counter 00087 StatusCode mark ( GaussTrackInformation* info ) const ; 00088 00089 private: 00090 00091 // 'long' counter 00092 typedef ulonglong UCounter ; 00093 // counter for all created trajectories 00094 mutable UCounter m_nTrajectories ; 00095 // counter for all created track information objects 00096 mutable UCounter m_nTrackInfos ; 00097 // counter of "decisions" 00098 mutable size_t m_marked ; 00099 00100 }; 00101 00102 00103 #endif // GAUSSTOOLS_GAUSSTRACKACTIONBASE_H