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

In This Package:

ISimDataSvc.h
Go to the documentation of this file.
00001 /*
00002  *  ISimDataSvc.h
00003  *
00004  *  Interface for Simulation input data
00005  *
00006  *  Created by Dan Dwyer on 2008/09/26
00007  */
00008 
00009 #ifndef DATASVC_ISIMDATASVC_H
00010 #define DATASVC_ISIMDATASVC_H
00011 
00012 #include "GaudiKernel/IInterface.h"
00013 #include "Conventions/Detectors.h"
00014 #include "Conventions/Electronics.h"
00015 #include "Context/ServiceMode.h"
00016 #include <vector>
00017 
00018 namespace DayaBay {
00019 
00020   // Simulation input data for one PMT
00021   class PmtSimData {
00022   public:
00023     PmtSimData(){m_gain=0.; m_sigmaGain=0.; m_timeOffset=0.; m_timeSpread=0.;
00024       m_efficiency=0.; m_prePulseProb=0.; m_afterPulseProb=0.; m_darkRate=0.;}
00025     ~PmtSimData(){;}
00026   public:
00027     DayaBay::DetectorSensor m_pmtId;  // PMT Sensor ID number
00028     double m_gain;             // Relative gain for pmt, mean = 1 
00029     double m_sigmaGain;        // 1-sigma spread of single P.E. response
00030     double m_timeOffset;       // Relative transit time offset
00031     double m_timeSpread;       // Transit time spread
00032     double m_efficiency;       // Absolute efficiency
00033     double m_prePulseProb;     // Probability of prepulsing
00034     double m_afterPulseProb;   // Probability of afterpulsing
00035     double m_darkRate;         // Dark Rate
00036   };
00037   
00038   //  Simulation input for one RPC strip
00039   class RpcSimData {
00040   public:
00041     RpcSimData(){m_gain=0.; m_sigmaGain=0.; m_timeOffset=0.; m_timeSpread=0.;
00042       m_efficiency=0.; m_noiseRate=0.;}
00043     ~RpcSimData(){;}
00044   public:
00045     DayaBay::RpcSensor m_rpcId;       // RPC Sensor ID number
00046     double m_gain;           // Relative gain of rpc strip
00047     double m_sigmaGain;      // 1-sigma spread of pulse sizes.
00048     double m_timeOffset;     // Relative time offset
00049     double m_timeSpread;     // Time spread
00050     double m_efficiency;     // Relative efficiency
00051     double m_noiseRate;      // Single pulse noise rate
00052   };
00053 
00054   // Simulation input data for one PMT Front-end electronics channel
00055   class FeeSimData {
00056   public:
00057     FeeSimData(){m_channelThreshold=0.; m_adcRangeHigh=0.; m_adcRangeLow=0.;
00058       m_adcBaselineHigh=0.; m_adcBaselineLow=0.;}
00059     ~FeeSimData(){;}
00060   public:
00061     DayaBay::FeeChannelId m_channelId;  // Electronics channel ID number
00062     double m_channelThreshold; // FEE discriminator threshold
00063     double m_adcRangeHigh;     // Full voltage range of high-gain ADC
00064     double m_adcRangeLow;      // Full voltage range of low-gain ADC
00065     double m_adcBaselineHigh;  // High-gain baseline ADC value
00066     double m_adcBaselineLow;   // Low-gain baseline ADC value
00067   };
00068 
00069   // Simulation input data for one RPC Front-end electronics channel
00070   class FecSimData {
00071   public:
00072     FecSimData(){m_channelThreshold=0.; m_adcRangeHigh=0.; m_adcRangeLow=0.;
00073       m_adcBaselineHigh=0.; m_adcBaselineLow=0.;}
00074     ~FecSimData(){;}
00075   public:
00076     DayaBay::FecChannelId m_channelId;  // Electronics channel ID number
00077     double m_channelThreshold; // FEC discriminator threshold
00078     double m_adcRangeHigh;     // Full voltage range of high-gain ADC
00079     double m_adcRangeLow;      // Full voltage range of low-gain ADC
00080     double m_adcBaselineHigh;  // High-gain baseline ADC value
00081     double m_adcBaselineLow;   // Low-gain baseline ADC value
00082   };
00083 
00084 }
00085 
00086 // Declaration of the interface ID
00087 static const InterfaceID IID_ISimDataSvc("ISimDataSvc",1,0);
00088 
00089 class ISimDataSvc : virtual public IInterface
00090 {
00091  public:
00092   // Retrieve interface ID
00093   static const InterfaceID& interfaceID(){
00094     return IID_ISimDataSvc;
00095   }
00096 
00097   // Return the PMT simulation input data
00098   virtual const DayaBay::PmtSimData* pmtSimData(
00099                                        const DayaBay::DetectorSensor& pmtId,
00100                                        const ServiceMode& svcMode)= 0;
00101 
00102   // Return the RPC simulation input data
00103   virtual const DayaBay::RpcSimData* rpcSimData(const DayaBay::RpcSensor& rpcId,
00104                                             const ServiceMode& svcMode)= 0;
00105 
00106   // Return the FEE simulation input data
00107   virtual const DayaBay::FeeSimData* feeSimData(
00108                                        const DayaBay::FeeChannelId& channelId,
00109                                        const ServiceMode& svcMode)= 0;
00110 
00111   // Return the FEC simulation input data
00112   virtual const DayaBay::FecSimData* fecSimData(
00113                                        const DayaBay::FecChannelId& channelId,
00114                                        const ServiceMode& svcMode)= 0;
00115 
00116   // Return the array of PMT simulation input data by detector
00117   virtual const std::vector<DayaBay::PmtSimData>& pmtSimList(
00118                                            const DayaBay::Detector& detectorId,
00119                                            const ServiceMode& svcMode)= 0;
00120 
00121   // Return the array of RPC simulation input data by detector
00122   virtual const std::vector<DayaBay::RpcSimData>& rpcSimList(
00123                                            const DayaBay::Detector& detectorId,
00124                                            const ServiceMode& svcMode)= 0;
00125 
00126   // Return the array of FEE simulation input data by detector
00127   virtual const std::vector<DayaBay::FeeSimData>& feeSimList(
00128                                            const DayaBay::Detector& detectorId,
00129                                            const ServiceMode& svcMode)= 0;
00130 
00131   // Return the array of FEC simulation input data by detector
00132   virtual const std::vector<DayaBay::FecSimData>& fecSimList(
00133                                            const DayaBay::Detector& detectorId,
00134                                            const ServiceMode& svcMode)= 0;
00135 };
00136 
00137 #endif  // DATASVC_ISIMDATASVC_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