00001 00020 #ifndef _DETSIMPROC_H_ 00021 #define _DETSIMPROC_H_ 00022 00023 00024 #include "Stage/StageProcessor.h" 00025 #include "Event/GenHeader.h" 00026 #include "Event/SimHeader.h" 00027 00028 #include "Stage/IStage.h" 00029 #include "Stage/FFTimeStamp.h" 00030 #include "Stage/HeaderStageData.h" 00031 #include "DybTool/IGenPruneTool.h" 00032 00033 class IGiGaSvc; 00034 class IHepMCtoG4; 00035 class IG4toMCEvent; 00036 class IHistoryKeeper; 00037 00038 class DetSimProc : public StageProcessor<DayaBay::SimHeader> 00039 { 00040 00041 public: 00042 00043 DetSimProc(const std::string& name, ISvcLocator* pSvcLocator); 00044 virtual ~DetSimProc(); 00045 00046 virtual StatusCode initialize(); 00047 virtual StatusCode execute(); 00048 virtual StatusCode finalize(); 00049 00050 private: 00051 typedef HeaderStageData<DayaBay::GenHeader> GnrtrData; 00052 typedef HeaderStageData<DayaBay::SimHeader> SimData; 00053 00055 void DS_constructor(); 00056 void DS_destructor(); 00057 virtual StatusCode DS_initialize(); 00058 virtual StatusCode DS_execute(GnrtrData* p_input, SimData*& p_output); 00059 virtual StatusCode DS_finalize(); 00060 00061 00062 private: 00064 std::string m_location; 00065 std::string m_converterName; 00066 00067 IGiGaSvc* m_giga; 00068 IHepMCtoG4* m_converter; 00069 00071 00075 std::string m_genLocation; 00076 IHistoryKeeper* m_historyKeeper; 00077 00079 FFTimeStamp m_CurrentTime; 00080 00083 SimData::DataList m_SimDataList; 00084 00086 bool m_Start; 00087 00089 std::string m_genPruneName; 00090 IGenPruneTool * m_genPrune; 00091 00092 }; 00093 00094 #endif // _DETSIMPROC_H_