00001 00002 #ifndef RUNSTATISTICSALG_H 00003 #define RUNSTATISTICSALG_H 00004 00005 //#include "HecRunHeader2001v0.h" 00006 #include "Headers.h" 00007 //#include "HecEvent.h" 00008 #include "Event.h" 00009 #include "SystemAlg.h" 00010 00011 /*! -Class: RunStatisticsAlg 00012 - Author: Michel Lefebvre 00013 - Date: 21/07/2003 00014 - Description: RunStatisticsAlg is a simple class designed to print some useful run statistics 00015 in its finalize() method 00016 */ 00017 class RunStatisticsAlg : public SystemAlg { 00018 public: 00019 00020 /** The user should never need to use this contructor 00021 * @param event A pointer in the event. Information contained in the event 00022 * gets refreshed before the execute method is run 00023 * @param hecGeom Pointer to the singleton Geometry object 00024 * @param runHeader Pointer to the singleton HecRunHeader object 00025 */ 00026 00027 RunStatisticsAlg(Event* event, Geometry* hecGeom, Headers* runHeader); 00028 00029 //! Gets run once at the begining of the event Loop 00030 bool initialize(); 00031 00032 //! Gets run for every event 00033 bool execute(); 00034 00035 //! Gets run after all events have been executed 00036 bool finalize(); 00037 00038 private: 00039 00040 //################################ 00041 // private variables 00042 00043 Geometry* m_geo; 00044 Event* m_event; 00045 Headers* m_runHeader; 00046 00047 // timing type 00048 int m_timingType; // > 0 global cubic time 00049 00050 // trigger statistics (physics,electron,muon,pi,random) 00051 vector<int> m_triggerStat; 00052 int m_triggers; // total number of triggers 00053 int m_badGlobalTiming; // number of bad global timing triggers 00054 }; 00055 00056 #endif