/search.css" rel="stylesheet" type="text/css"/> /search.js">
00001 /* 00002 * Random Gain : 00003 * use random trigger to calculate pmt gains 00004 * yuzy@ihep.ac.cn 00005 * 00006 */ 00007 00008 #ifndef RANDOMGAINALG_H 00009 #define RANDOMGAINALG_H 00010 00011 #include "StatisticsSvc/IStatisticsSvc.h" 00012 #include "DataSvc/ICableSvc.h" 00013 #include "DataSvc/ICalibDataSvc.h" 00014 #include "Context/ServiceMode.h" 00015 #include "GaudiAlg/GaudiAlgorithm.h" 00016 #include <string> 00017 #include <vector> 00018 #include "Conventions/Electronics.h" 00019 #include "Conventions/Detectors.h" 00020 #include "Context/Context.h" 00021 00022 using namespace DayaBay; 00023 00024 class RandomGainAlg : public GaudiAlgorithm { 00025 00026 public: 00027 00028 RandomGainAlg(const std::string& name, ISvcLocator* pSvcLocator); 00029 virtual ~RandomGainAlg(); 00030 00031 virtual StatusCode initialize(); 00032 virtual StatusCode execute(); 00033 virtual StatusCode finalize(); 00034 00035 private: 00036 bool hasStats(const DayaBay::Detector& detector); 00037 StatusCode prepareStats(const Context& context); 00038 std::string getPath(const DayaBay::Detector& detector); 00039 std::string getPath(const DayaBay::FeeChannelId& channelId); 00040 00041 private: 00042 00043 std::string m_readoutLocation; 00044 00045 std::string m_cableSvcName; 00046 00047 std::string m_filepath; 00048 00049 ICableSvc *m_cableSvc; 00050 00051 IStatisticsSvc *m_statsSvc; 00052 00053 std::vector<DayaBay::Detector> m_processedDetectors; 00054 00055 TimeStamp m_beginTime; 00056 TimeStamp m_endTime; 00057 00058 bool m_first; 00059 00060 int m_lastTriTimeAD1; 00061 int m_lastTriTimeAD2; 00062 int m_lastTriTimeWPO; 00063 int m_lastTriTimeWPI; 00064 int total_event; 00065 int used_event; 00066 }; 00067 00068 #endif