/search.css" rel="stylesheet" type="text/css"/> /search.js">
| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

In This Package:

IBenchDataSvc.h
Go to the documentation of this file.
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
| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

Generated on Fri May 16 2014 09:59:23 for DataSvc by doxygen 1.7.4