00001 #ifndef LMFLASERCFGDAT_H 00002 #define LMFLASERCFGDAT_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 LMFLaserConfigDat : public IDataItem { 00013 public: 00014 friend class EcalCondDBInterface; 00015 LMFLaserConfigDat(); 00016 ~LMFLaserConfigDat(); 00017 00018 // User data methods 00019 inline std::string getTable() { return "LMF_LASER_CONFIG_DAT"; } 00020 00021 inline void setWavelength(int x) { m_wl = x; } 00022 inline int getWavelength() const { return m_wl; } 00023 inline void setVFEGain(int x) { m_vfe_gain = x; } 00024 inline int getVFEGain() const { return m_vfe_gain; } 00025 inline void setPNGain(int x) { m_pn_gain = x; } 00026 inline int getPNGain() const { return m_pn_gain; } 00027 00028 inline void setAttenuator(float x) { m_attenuator = x; } 00029 inline float getAttenuator() const { return m_attenuator; } 00030 inline void setPower(float x) { m_power = x; } 00031 inline float getPower() const { return m_power; } 00032 inline void setCurrent(float x) { m_current = x; } 00033 inline float getCurrent() const { return m_current; } 00034 inline void setDelay1(float x) { m_delay1 = x; } 00035 inline float getDelay1() const { return m_delay1; } 00036 inline void setDelay2(float x) { m_delay2 = x; } 00037 inline float getDelay2() const { return m_delay2; } 00038 00039 private: 00040 void prepareWrite() 00041 throw(std::runtime_error); 00042 00043 void writeDB(const EcalLogicID* ecid, const LMFLaserConfigDat* item, LMFRunIOV* iov) 00044 throw(std::runtime_error); 00045 00046 void writeArrayDB(const std::map< EcalLogicID, LMFLaserConfigDat >* data, LMFRunIOV* iov) 00047 throw(std::runtime_error); 00048 00049 00050 void fetchData(std::map< EcalLogicID, LMFLaserConfigDat >* fillVec, LMFRunIOV* iov) 00051 throw(std::runtime_error); 00052 00053 // User data 00054 int m_wl; 00055 int m_vfe_gain; 00056 int m_pn_gain; 00057 float m_power; 00058 float m_attenuator; 00059 float m_current; 00060 float m_delay1; 00061 float m_delay2; 00062 00063 }; 00064 00065 #endif