00001 00002 #ifndef USERALG_H 00003 #define USERALG_H 00004 00005 #include "Event.h" 00006 #include "Geometry.h" 00007 #include "Headers.h" 00008 #include "SystemAlg.h" 00009 00010 #include "NoiseAlg.h" 00011 00012 /*! -Class: UserAlg 00013 - Author: Ian Gable (igable@uvic.ca) 00014 - Date: 08/08/2003 00015 - Description: UserAlg is a simple class designed to be modified by the user. 00016 The user must add code to the initialize, excute and finalize methods 00017 as well as adding any member variables. SystemAlg's can be added 00018 in the constructor. 00019 */ 00020 class UserAlg : public SystemAlg { 00021 public: 00022 00023 /** The user should never need to use this contructor 00024 * @param event A pointer in the event. Information contained in the event 00025 * gets refreshed before the execute method is run 00026 * @param hecGeom Pointer to the singleton Geometry object 00027 * @param runHeader Pointer to the singleton HecRunHeader object 00028 */ 00029 00030 UserAlg(Event* event, Geometry* hecGeom, Headers* runHeader); 00031 00032 //! Gets run once at the begining of the event Loop 00033 bool initialize(); 00034 00035 //! Gets run for every event 00036 bool execute(); 00037 00038 //! Gets run after all events have been executed 00039 bool finalize(); 00040 00041 private: 00042 Geometry* m_geo; 00043 Event* m_event; 00044 Headers* m_runHeader; 00045 00046 // here put pointers to the system algorithms you wish to use 00047 NoiseAlg* m_noise; 00048 00049 //################################ 00050 //### insert your member variables here 00051 00052 00053 //################################ 00054 }; 00055 00056 #endif