/search.css" rel="stylesheet" type="text/css"/> /search.js">
00001 /* 00002 * IBenchDataSvc.h 00003 * 00004 * Interface for Test Bench Data 00005 * 00006 * Created by Dan Dwyer on 2008/09/26 00007 */ 00008 00009 #ifndef DATASVC_IBENCHDATASVC_H 00010 #define DATASVC_IBENCHDATASVC_H 00011 00012 #include "GaudiKernel/IInterface.h" 00013 #include "Conventions/Hardware.h" 00014 #include "Context/ServiceMode.h" 00015 #include <vector> 00016 #include <string> 00017 00018 namespace DayaBay { 00019 00020 // Test Bench Data for one PMT 00021 class PmtBenchData { 00022 public: 00023 PmtBenchData(){ m_hvm=0.; m_speHvm=0.; m_hv0=0.; m_gainConst=0.; 00024 m_gainAlpha=0.; m_spe=0.; m_pvRatio=0.; m_speFwhm=0.; m_peRatio=0.; 00025 m_efficiency=0.; m_linearityNpe=std::vector<double>(8,0.); 00026 m_linearityPct=std::vector<double>(8,0.); m_riseTime=0.; m_fallTime=0.; 00027 m_darkRate=std::vector<std::vector<double> >(3, std::vector<double>(11)); 00028 m_burnStart=0.; m_burnStop=0.; m_burnResult=""; m_testStart=0.; 00029 m_testStop=0.; m_testResult=""; m_manCathodeSens=0.; m_manAnodeSens=0.; 00030 m_manAnodeDark=0.; m_manCathodeBlueSens=0.; m_manPVRatio=0.; 00031 m_manDarkRate=0.; m_manTimeSpread=0.;} 00032 ~PmtBenchData(){;} 00033 public: 00034 DayaBay::PmtHardwareId m_id; // PMT Hardware ID number 00035 double m_hvm; // Manufacturer-suggested High Voltage HV_m 00036 double m_speHvm; // Single photoelectron peak at HV_m 00037 double m_hv0; // High voltage HV_0 for 10^7 gain 00038 double m_gainConst; // Gain vs. HV fit constant 00039 double m_gainAlpha; // Gain vs. HV fit alpha 00040 double m_spe; // Single photoelectron peak at HV_0 00041 double m_pvRatio; // Peak-to-Valley ratio at HV_0 00042 double m_speFwhm; // Single photoelectron full-width half max at HV_0 00043 double m_peRatio; // Photoelectron / total events ratio at HV_0 00044 double m_efficiency; // Relative Efficiency 00045 std::vector<double> m_linearityNpe; // Linearity: Number of photoelectrons [0-7] 00046 std::vector<double> m_linearityPct; // Linearity: Percent Deviation 00047 std::vector<std::vector<double> > m_darkRate; // Dark Rate vs. threshold [0-2] and HV [0-10] 00048 double m_riseTime; // Pulse rise time 00049 double m_fallTime; // Pulse fall time 00050 double m_burnStart; // Burn-in start time 00051 double m_burnStop; // Burn-in stop time 00052 std::string m_burnResult; // Burn-in result 00053 double m_testStart; // Bench test start time 00054 double m_testStop; // Bench test stop time 00055 std::string m_testResult; // Bench test result 00056 00057 double m_manCathodeSens; // Manufacturer-measured cathode luminous sensitivity (tungsten lamp) 00058 double m_manAnodeSens; // Manufacturer-measured anode sensitivity 00059 double m_manAnodeDark; // Manufacturer-measured anode dark current 00060 double m_manCathodeBlueSens; // Manufacturer-measured cathode luminous sensitivity (blue light) 00061 double m_manPVRatio; // Manufacturer-measured Peak-to-Valley ratio 00062 double m_manDarkRate; // Manufacturer-measured dark rate 00063 double m_manTimeSpread; // Manufacturer-measured transit time spread 00064 }; 00065 00066 // Calibration Data for one RPC strip 00067 class RpcBenchData { 00068 public: 00069 RpcBenchData(){;} 00070 ~RpcBenchData(){;} 00071 public: 00072 DayaBay::RpcHardwareId m_id; // RPC Hardware ID number 00073 }; 00074 00075 } 00076 00077 // Declaration of the interface ID 00078 static const InterfaceID IID_IBenchDataSvc("IBenchDataSvc",1,0); 00079 00080 class IBenchDataSvc : virtual public IInterface 00081 { 00082 public: 00083 // Retrieve interface ID 00084 static const InterfaceID& interfaceID(){ 00085 return IID_IBenchDataSvc; 00086 } 00087 00088 // Return the PMT test bench data 00089 virtual const DayaBay::PmtBenchData* pmtBenchData( 00090 const DayaBay::PmtHardwareId& pmtId, 00091 const ServiceMode& svcMode) = 0; 00092 00093 // Return the RPC test bench data 00094 virtual const DayaBay::RpcBenchData* rpcBenchData( 00095 const DayaBay::RpcHardwareId& rpcId, 00096 const ServiceMode& svcMode) = 0; 00097 00098 // Return the array of PMT test bench data 00099 virtual const std::vector<DayaBay::PmtBenchData>& pmtBenchList( 00100 const ServiceMode& svcMode) = 0; 00101 00102 // Return the array of RPC test bench data 00103 virtual const std::vector<DayaBay::RpcBenchData>& rpcBenchList( 00104 const ServiceMode& svcMode) = 0; 00105 00106 }; 00107 00108 #endif // DATASVC_IBENCHDATASVC_H