00001 //! \file 00002 //! 00003 //! Header file for the EventAction class. 00004 //! 00005 //! Declares the EventAction class and the member routines which 00006 //! control the actions taken during the event. 00007 //! 00008 //! \author D.K. Hasell 00009 //! \version 1.0 00010 //! \date 2010-10-14 00011 //! 00012 //! \ingroup control 00013 00014 // Ensure header file only included once. 00015 00016 #ifndef EVENTACTION_H 00017 #define EVENTACTION_H 00018 00019 // Include the GEANT4 header files referenced in this file. 00020 00021 #include "G4UserEventAction.hh" 00022 00023 // Include the user header files referenced here. 00024 00025 #include "GN_Data.h" 00026 #include "EV_Data.h" 00027 #include "GT_Data.h" 00028 #include "WC_Data.h" 00029 #include "TF_Data.h" 00030 #include "LM_Data.h" 00031 #include "MW_Data.h" 00032 #include "SM_Data.h" 00033 00034 // Declare the classes used here. 00035 00036 class G4Event; 00037 00038 //! EventAction class based on G4UserEventAction. 00039 00040 class EventAction : public G4UserEventAction { 00041 00042 public: 00043 00044 //! Constructor. 00045 00046 EventAction(); 00047 00048 //! Destructor. 00049 00050 ~EventAction(); 00051 00052 // Member functions. 00053 00054 //! Routine to perform various actions at the start of an event. 00055 00056 void BeginOfEventAction( const G4Event * event ); 00057 00058 //! Routine to perform various actions at the end of an event. 00059 00060 void EndOfEventAction( const G4Event * event ); 00061 00062 //! Print generated event information. 00063 00064 void Print( const G4Event * event ); 00065 00066 private: 00067 00068 friend class GT_SD; 00069 friend class WC_SD; 00070 friend class TF_SD; 00071 friend class LM_SD; 00072 friend class MW_SD; 00073 friend class SM_SD; 00074 00075 static GN_Data * gndata; //!< Pointer to MC data. 00076 static EV_Data * evdata; //!< Pointer to EV data. 00077 static GT_Data * gtdata; //!< Pointer to GT data. 00078 static WC_Data * wcdata; //!< Pointer to WC data. 00079 static TF_Data * tfdata; //!< Pointer to TF data. 00080 static LM_Data * lmdata; //!< Pointer to LM data. 00081 static MW_Data * mwdata; //!< Pointer to MW data. 00082 static SM_Data * smdata; //!< Pointer to MW data. 00083 00084 }; 00085 00086 #endif