![]() |
![]() |
00001 #ifndef LMFLASERPRIMDAT_H 00002 #define LMFLASERPRIMDAT_H 00003 00004 #include <map> 00005 #include <stdexcept> 00006 00007 #include "OnlineDB/EcalCondDB/interface/IDataItem.h" 00008 #include "OnlineDB/EcalCondDB/interface/LMFRunTag.h" 00009 #include "OnlineDB/EcalCondDB/interface/LMFRunIOV.h" 00010 #include "OnlineDB/EcalCondDB/interface/EcalLogicID.h" 00011 00012 class LMFLaserPrimDat : public IDataItem { 00013 00014 public: 00015 00016 // GHM 00017 enum laserColorNum { iBlue=0, iGreen, iRed, iIRed }; 00018 00019 friend class EcalCondDBInterface; 00020 LMFLaserPrimDat(); 00021 LMFLaserPrimDat( const LMFLaserPrimDat& ); // GHM 00022 ~LMFLaserPrimDat(); 00023 00024 // User data methods 00025 inline std::string getTable() // GHM 00026 { 00027 switch( _color ) 00028 { 00029 case iBlue: return "LMF_LASER_BLUE_PRIM_DAT"; 00030 case iGreen: return "LMF_LASER_GREEN_PRIM_DAT"; 00031 case iRed: return "LMF_LASER_RED_PRIM_DAT"; 00032 case iIRed: return "LMF_LASER_IRED_PRIM_DAT"; 00033 } 00034 // default 00035 return "LMF_LASER_BLUE_PRIM_DAT"; 00036 } 00037 00038 inline void setMean(float mean) { m_Mean = mean; } 00039 inline float getMean() const { return m_Mean; } 00040 00041 inline void setRMS(float RMS) { m_RMS = RMS; } 00042 inline float getRMS() const { return m_RMS; } 00043 00044 inline void setPeak(float x) { m_Peak = x; } 00045 inline float getPeak() const { return m_Peak; } 00046 00047 inline void setFlag(int x) { m_Flag = x; } 00048 inline int getFlag() const { return m_Flag; } 00049 // 00050 inline void setAPDOverPNAMean(float mean) { m_apdOverPNAMean = mean; } 00051 inline float getAPDOverPNAMean() const { return m_apdOverPNAMean; } 00052 00053 inline void setAPDOverPNARMS(float RMS) { m_apdOverPNARMS = RMS; } 00054 inline float getAPDOverPNARMS() const { return m_apdOverPNARMS; } 00055 00056 inline void setAPDOverPNAPeak(float x) { m_apdOverPNAPeak = x; } 00057 inline float getAPDOverPNAPeak() const { return m_apdOverPNAPeak; } 00058 00059 inline void setAPDOverPNBMean(float mean) { m_apdOverPNBMean = mean; } 00060 inline float getAPDOverPNBMean() const { return m_apdOverPNBMean; } 00061 00062 inline void setAPDOverPNBRMS(float RMS) { m_apdOverPNBRMS = RMS; } 00063 inline float getAPDOverPNBRMS() const { return m_apdOverPNBRMS; } 00064 00065 inline void setAPDOverPNBPeak(float x) { m_apdOverPNBPeak = x; } 00066 inline float getAPDOverPNBPeak() const { return m_apdOverPNBPeak; } 00067 00068 inline void setAPDOverPNMean(float mean) { m_apdOverPNMean = mean; } 00069 inline float getAPDOverPNMean() const { return m_apdOverPNMean; } 00070 00071 inline void setAPDOverPNRMS(float RMS) { m_apdOverPNRMS = RMS; } 00072 inline float getAPDOverPNRMS() const { return m_apdOverPNRMS; } 00073 00074 inline void setAPDOverPNPeak(float x) { m_apdOverPNPeak = x; } 00075 inline float getAPDOverPNPeak() const { return m_apdOverPNPeak; } 00076 00077 inline void setAlpha(float mean) { m_Alpha = mean; } 00078 inline float getAlpha() const { return m_Alpha; } 00079 00080 inline void setBeta(float x) { m_Beta = x; } 00081 inline float getBeta() const { return m_Beta; } 00082 00083 inline void setShapeCor(float x) { m_ShapeCor = x; } 00084 inline float getShapeCor() const { return m_ShapeCor; } 00085 00086 static void setColor( int color ); // GHM 00087 00088 private: 00089 00090 void prepareWrite() 00091 throw(std::runtime_error); 00092 00093 void writeDB(const EcalLogicID* ecid, const LMFLaserPrimDat* item, LMFRunIOV* iov) 00094 throw(std::runtime_error); 00095 00096 void writeArrayDB(const std::map< EcalLogicID, LMFLaserPrimDat >* data, LMFRunIOV* iov) 00097 throw(std::runtime_error); 00098 00099 void fetchData(std::map< EcalLogicID, LMFLaserPrimDat >* fillVec, LMFRunIOV* iov) 00100 throw(std::runtime_error); 00101 00102 static int _color; // GHM 00103 00104 // User data 00105 float m_Mean; 00106 float m_RMS; 00107 float m_Peak; 00108 int m_Flag; 00109 float m_apdOverPNAMean; 00110 float m_apdOverPNARMS; 00111 float m_apdOverPNAPeak; 00112 float m_apdOverPNBMean; 00113 float m_apdOverPNBRMS; 00114 float m_apdOverPNBPeak; 00115 float m_apdOverPNMean; 00116 float m_apdOverPNRMS; 00117 float m_apdOverPNPeak; 00118 float m_Alpha; 00119 float m_Beta; 00120 float m_ShapeCor; 00121 00122 }; 00123 00124 #endif