00001 00010 #ifndef ESFRONTENDALG_H 00011 #define ESFRONTENDALG_H 00012 00013 00014 #include "DybAlg/DybAlgorithm.h" 00015 #include "Event/ElecHeader.h" 00016 #include "Conventions/Detectors.h" 00017 #include "Conventions/Electronics.h" 00018 00019 #include <vector> 00020 00021 class IEsPulseTool; 00022 class IEsFrontEndTool; 00023 00024 class EsFrontEndAlg : public DybAlgorithm<DayaBay::ElecHeader> 00025 { 00026 00027 public: 00028 00029 EsFrontEndAlg(const std::string& name, ISvcLocator* pSvcLocator); 00030 virtual ~EsFrontEndAlg(); 00031 00032 virtual StatusCode initialize(); 00033 virtual StatusCode execute(); 00034 virtual StatusCode finalize(); 00035 00036 private: 00037 00042 std::string m_simLocation; 00043 00044 // Property Detectors - List of detector names to include in simulation 00045 std::vector<std::string> m_detectorNames; 00046 // Property PmtTool - Name of the PMT simulation tool 00047 std::string m_pmtToolName; 00048 // Property RpcTool - Name of the RPC simulation tool 00049 std::string m_rpcToolName; 00050 // Property FeeTool - Name of the PMT Front-end electronics simulation tool 00051 std::string m_feeToolName; 00052 // Property FecTool - Name of the RPC Front-end electronics simulation tool 00053 std::string m_fecToolName; 00054 00055 // List of simulated detector IDs 00056 std::vector<DayaBay::Detector> m_detectors; 00057 // Tool for adding PMT effects to simulated hits 00058 IEsPulseTool* m_pmtTool; 00059 // Tool for adding RPC effects to simulated hits 00060 IEsPulseTool* m_rpcTool; 00061 // Tool for generating PMT Front-end electronics signals 00062 IEsFrontEndTool* m_feeTool; 00063 // Tool for generating RPC Front-end card signals 00064 IEsFrontEndTool* m_fecTool; 00065 // Property MaxSimulationTime: 00066 // Set a maximum time window length for the electronics simulation 00067 double m_maxSimulationTime; 00068 }; 00069 00070 #endif // ESFRONTENDALG_H