00001 00008 #ifndef CENTEROFCHARGEPOSTOOL_H 00009 #define CENTEROFCHARGEPOSTOOL_H 1 00010 00011 #include "ReconAlg/IReconTool.h" 00012 #include "GaudiAlg/GaudiTool.h" 00013 00014 namespace DayaBay{ 00015 class CalibReadout; 00016 class RecTrigger; 00017 } 00018 00019 class ICableSvc; 00020 class ICalibDataSvc; 00021 class IPmtGeomInfoSvc; 00022 00023 class CenterOfChargePosTool : public GaudiTool , virtual public IReconTool 00024 { 00025 public: 00026 00027 CenterOfChargePosTool(const std::string& type, 00028 const std::string& name, 00029 const IInterface* parent); 00030 00031 virtual ~CenterOfChargePosTool(); 00032 00033 virtual StatusCode reconstruct(const DayaBay::CalibReadout& readout, 00034 DayaBay::RecTrigger& recTrigger); 00035 virtual StatusCode initialize(); 00036 virtual StatusCode finalize(); 00037 00038 private: 00039 00040 // Property CableSvcName - Name of the cable service 00041 std::string m_cableSvcName; 00042 // CableSvc 00043 ICableSvc* m_cableSvc; 00044 00045 // Property CalibDataSvcName - Name of the CalibData service 00046 std::string m_calibDataSvcName; 00047 // Pmt calibration data Service 00048 ICalibDataSvc* m_calibDataSvc; 00049 00050 // Property PmtGeomSvcName - Name of the PMT geometry data service 00051 std::string m_pmtGeomSvcName; 00052 // Pmt calibration data Service 00053 IPmtGeomInfoSvc* m_pmtGeomSvc; 00054 00055 // Property Apply Scaling - Apply empirical scaling to vertex position 00056 bool m_applyScaling; 00057 00058 }; 00059 00060 #endif // CENTEROFCHARGEPOSTOOL_H