00001 00012 #ifndef FASTQCTRTOOL_H 00013 #define FASTQCTRTOOL_H 1 00014 00015 #include "ReconAlg/IReconTool.h" 00016 00017 #include "GaudiAlg/GaudiTool.h" 00018 #include "Conventions/Electronics.h" 00019 00020 namespace DayaBay{ 00021 class CalibReadout; 00022 class CalibReadoutPmtCrate; 00023 class RecTrigger; 00024 } 00025 00026 class IPmtGeomInfoSvc; 00027 class ICableSvc; 00028 00029 class FastQCtrTool : public GaudiTool , virtual public IReconTool 00030 { 00031 public: 00032 00033 FastQCtrTool(const std::string& type, 00034 const std::string& name, 00035 const IInterface* parent); 00036 00037 virtual ~FastQCtrTool(); 00038 00039 virtual StatusCode reconstruct(const DayaBay::CalibReadout&, 00040 DayaBay::RecTrigger&); 00041 virtual StatusCode initialize(); 00042 virtual StatusCode finalize(); 00043 00044 private: 00045 00046 StatusCode setUsedChannels(const DayaBay::CalibReadoutPmtCrate* calibCrate, 00047 DayaBay::RecTrigger* recTrigger); 00048 typedef std::map<DayaBay::DetectorSensor, bool> UsedFeeChannelMap; 00049 00050 private: 00051 00052 // Property CableSvcName - Name of the cable service 00053 std::string m_cableSvcName; 00054 00055 //CableSvc 00056 ICableSvc* m_cableSvc; 00057 00058 // Property PmtGeomSvcName - Name of the PmtGeom service 00059 std::string m_pmtGeomSvcName; 00060 00061 // Pmt Geometry Information Service 00062 IPmtGeomInfoSvc* m_pmtGeomSvc; 00063 00064 // Used Channels 00065 UsedFeeChannelMap m_usedChannels; 00066 }; 00067 00068 #endif // FASTQCTRTOOL_H