#ifndef USERALG_H #define USERALG_H #include "Event.h" #include "Geometry.h" #include "Headers.h" #include "SystemAlg.h" #include "CalibrationAlg.h" #include "CanvasManagerAlg.h" #include "ClusteringAlg.h" #include "NoiseAlg.h" #include "TH1.h" #include "TPostScript.h" #include using std::map; /*! -Class: UserAlg - Author: Ian Gable (igable@uvic.ca) - Date: 08/08/2003 - Description: UserAlg is a simple class designed to be modified by the user. The user must add code to the initialize, excute and finalize methods as well as adding any member variables. SystemAlg's can be added in the constructor. */ class UserAlg : public SystemAlg { public: /** The user should never need to use this contructor * @param event A pointer in the event. Information contained in the event * gets refreshed before the execute method is run * @param hecGeom Pointer to the singleton Geometry object * @param runHeader Pointer to the singleton HecRunHeader object */ UserAlg(Event* event, Geometry* hecGeom, Headers* runHeader); //! Gets run once at the begining of the event Loop bool initialize(); //! Gets run for every event bool execute(); //! Gets run after all events have been executed bool finalize(); private: Geometry* m_geo; Event* m_event; Headers* m_runHeader; // here put pointers to the system algorithms you wish to use CalibrationAlg* m_calibration; CanvasManagerAlg* m_canvasmanager; ClusteringAlg* m_clustering; NoiseAlg* m_noise; //################################ //### insert your member variables here bool m_hecClusteringIs2D; bool m_hecSortingAtEachIteration; float m_hecCellThreshold; float m_hecNeighborThreshold; float m_hecSeedThreshold; TH1F* m_hecEH; TH1F* m_hecClustersEH; TH1F* m_hecIterationsH; TH1F* m_hecNumberOfClustersH; TH1F* m_hecNumberOfCellsPerClusterH; map m_hecNumberOfCellsPerClusterPerLayerHMap; TH1F* m_hecNumberOfCellsUsingClustersH; TH1F* m_hecNumberOfCellsH; bool m_emecClusteringIs2D; bool m_emecSortingAtEachIteration; float m_emecCellThreshold; float m_emecNeighborThreshold; float m_emecSeedThreshold; TH1F* m_emecEH; TH1F* m_emecClustersEH; TH1F* m_emecIterationsH; TH1F* m_emecNumberOfClustersH; TH1F* m_emecNumberOfCellsPerClusterH; map m_emecNumberOfCellsPerClusterPerLayerHMap; TH1F* m_emecNumberOfCellsUsingClustersH; TH1F* m_emecNumberOfCellsH; TH1F* m_EH; TH1F* m_ClustersEH; TPostScript* m_psFile; //################################ }; #endif