/search.css" rel="stylesheet" type="text/css"/> /search.js">
00001 /*** 00002 * 00003 * TimeRecoTool 00004 * 00005 * A tool to make vertex reconstruction based on timing information 00006 * 00007 * H.L.H. Wong (LBNL) October 2013 00008 * 00009 **/ 00010 00011 #ifndef TIMERECO_H 00012 #define TIMERECO_H 00013 00014 #include "ReconAlg/IReconTool.h" 00015 #include "GaudiAlg/GaudiTool.h" 00016 00017 #include "TFile.h" 00018 #include "TH1.h" 00019 #include "TH2.h" 00020 #include "TF1.h" 00021 #include "TCanvas.h" 00022 00023 namespace DayaBay{ 00024 class CalibReadout; 00025 class RecTrigger; 00026 } 00027 00028 class ICableSvc; 00029 class IPmtCalibSvc; 00030 class IPmtGeomInfoSvc; 00031 class IChannelQualitySvc; 00032 00033 class TimeRecoTool : public GaudiTool , virtual public IReconTool 00034 { 00035 public: 00036 TimeRecoTool(const std::string &type, 00037 const std::string & name, 00038 const IInterface* parent); 00039 00040 virtual ~TimeRecoTool(); 00041 00042 virtual StatusCode reconstruct(const DayaBay::CalibReadout& readout, 00043 DayaBay::RecTrigger& recTrigger); 00044 virtual StatusCode initialize(); 00045 00046 virtual StatusCode finalize(); 00047 00048 00049 00050 private: 00051 std::string m_templateFileName; 00052 00053 // Property CableSvcName - Name of the cable service 00054 std::string m_cableSvcName_t; 00055 // CableSvc 00056 ICableSvc* m_cableSvc_t; 00057 00058 // Property CalibDataSvcName - Name of the CalibData service 00059 std::string m_calibDataSvcName_t; 00060 // Pmt calibration data Service 00061 IPmtCalibSvc* m_calibDataSvc_t; 00062 00063 // Property PmtGeomSvcName - Name of the PMT geometry data service 00064 std::string m_pmtGeomSvcName_t; 00065 // Pmt calibration data Service 00066 IPmtGeomInfoSvc* m_pmtGeomSvc_t; 00067 00068 // Property ChannelQualitySvc 00069 std::string m_ChannelQualitySvcName_t; 00070 // Channel Quality Service 00071 IChannelQualitySvc* m_chanqualSvc_t; 00072 bool m_useChannelQualitySvc_t; 00073 00074 // Reading AdSimple direction 00075 std::string m_AdSimpleLocation_t; 00076 // AdSimple Location 00077 00078 int nocqCount; 00079 00080 00081 TFile * savefile; 00082 TCanvas * ccharge; 00083 TCanvas * ctime; 00084 TH1F * hchantime1; 00085 TH1F * hchantime0; 00086 TH1F * hchancharge1; 00087 TH1F * hchancharge0; 00088 TF1 * fittime1; 00089 TF1 * fittime0; 00090 TF1 * reftime0; 00091 TF1 * reftime1; 00092 00093 TH1F * hsteps; 00094 TH2F * hstepsVdDis; 00095 TH2F * hstepsVchi2; 00096 00097 00098 TH1F * hdifftime0; 00099 00100 bool Debug_t; 00101 00102 bool m_debugOutput_t; 00103 00104 }; 00105 00106 #endif // TIMERECO_H