00001
00002
00003 #ifndef CALIBPMTSPEC_H
00004 #define CALIBPMTSPEC_H
00005
00007
00008
00009
00010
00011
00012
00013
00014
00015
00017
00018 #include "Rtypes.h"
00019 #include "DatabaseInterface/DbiTableRow.h"
00020 #include "DatabaseInterface/DbiLog.h"
00021 #include "DatabaseInterface/DbiOutRowStream.h"
00022 #include "DatabaseInterface/DbiResultSet.h"
00023 #include "DatabaseInterface/DbiValidityRec.h"
00024 #include "DatabaseInterface/DbiResultPtr.h"
00025 #include "DataSvc/ICalibDataSvc.h"
00026 #include "Conventions/Detectors.h"
00027 #include <string>
00028
00029 using namespace std;
00030
00031 class DbiValidityRec;
00032
00033 class CalibPmtSpec : public DbiTableRow
00034 {
00035 public:
00036
00037 CalibPmtSpec() { }
00038 CalibPmtSpec(const CalibPmtSpec& from)
00039 : DbiTableRow(from) { *this = from; }
00040 CalibPmtSpec(
00041 int pmtId,
00042 std::string describ,
00043 int status,
00044 double speHigh,
00045 double sigmaSpeHigh,
00046 double speLow,
00047 double timeOffset,
00048 double timeSpread,
00049 double efficiency,
00050 double prePulseProb,
00051 double afterPulseProb,
00052 double darkRate ) :
00053 m_pmtId(pmtId), m_describ(describ),
00054 m_status(status), m_speHigh(speHigh), m_sigmaSpeHigh(sigmaSpeHigh),
00055 m_speLow(speLow), m_timeOffset(timeOffset), m_timeSpread(timeSpread),
00056 m_efficiency(efficiency), m_prePulseProb(prePulseProb), m_afterPulseProb(afterPulseProb),
00057 m_darkRate(darkRate){ }
00058 virtual ~CalibPmtSpec(){ };
00059 int SetCalibPmtSpecValues(
00060 int pmtId,
00061 std::string describ,
00062 int status,
00063 double speHigh,
00064 double sigmaSpeHigh,
00065 double speLow,
00066 double timeOffset,
00067 double timeSpread,
00068 double efficiency,
00069 double prePulseProb,
00070 double afterPulseProb,
00071 double darkRate )
00072 {
00073 m_pmtId = pmtId;
00074 m_describ = describ;
00075 m_status = status;
00076 m_speHigh = speHigh;
00077 m_sigmaSpeHigh = sigmaSpeHigh;
00078 m_speLow = speLow;
00079 m_timeOffset = timeOffset;
00080 m_timeSpread = timeSpread;
00081 m_efficiency = efficiency;
00082 m_prePulseProb = prePulseProb;
00083 m_afterPulseProb = afterPulseProb;
00084 m_darkRate = darkRate;
00085 }
00086
00087
00088 Bool_t CanL2Cache() const { return kTRUE; }
00089 Bool_t Compare(const CalibPmtSpec& that ) const {
00090 return m_pmtId == that.m_pmtId
00091 && m_describ == that.m_describ
00092 && m_status == that.m_status
00093 && m_speHigh == that.m_speHigh
00094 && m_sigmaSpeHigh == that.m_sigmaSpeHigh
00095 && m_speLow == that.m_speLow
00096 && m_timeOffset == that.m_timeOffset
00097 && m_timeSpread == that.m_timeSpread
00098 && m_efficiency == that.m_efficiency
00099 && m_prePulseProb == that.m_prePulseProb
00100 && m_afterPulseProb == that.m_afterPulseProb
00101 && m_darkRate == that.m_darkRate;}
00102
00103 int GetPmtId() const {return m_pmtId;}
00104 int GetStatus() const {return m_status;}
00105 string GetDescrib() const {return m_describ;}
00106 double GetSpeHigh() const {return m_speHigh;}
00107 double GetSigmaSpeHigh() const {return m_sigmaSpeHigh;}
00108 double GetSpeLow() const {return m_speLow;}
00109 double GetTimeOffset() const {return m_timeOffset;}
00110 double GetTimeSpread() const {return m_timeSpread;}
00111 double GetEfficiency() const {return m_efficiency;}
00112 double GetPrePulseProb() const {return m_prePulseProb;}
00113 double GetAfterPulseProb() const {return m_afterPulseProb;}
00114 double GetDarkRate() const {return m_darkRate;}
00115
00116
00117 virtual DbiTableRow* CreateTableRow() const {
00118 return new CalibPmtSpec; }
00119
00120
00121 virtual void Fill(DbiResultSet& rs,
00122 const DbiValidityRec* vrec);
00123 virtual void Store(DbiOutRowStream& ors,
00124 const DbiValidityRec* vrec) const;
00125
00126 private:
00127
00128
00129
00130 int m_pmtId;
00131 int m_status;
00132 std::string m_describ;
00133 double m_speHigh;
00134 double m_sigmaSpeHigh;
00135 double m_speLow;
00136 double m_timeOffset;
00137 double m_timeSpread;
00138 double m_efficiency;
00139 double m_prePulseProb;
00140 double m_afterPulseProb;
00141 double m_darkRate;
00142
00143
00144
00145 };
00146
00147
00148 #endif // CalibPmtSpec_H