File indexing completed on 2024-04-06 12:22:52
0001 #ifndef DCUCCSDAT_H
0002 #define DCUCCSDAT_H
0003
0004 #include <map>
0005 #include <stdexcept>
0006
0007 #include "OnlineDB/EcalCondDB/interface/IDataItem.h"
0008 #include "OnlineDB/EcalCondDB/interface/DCUTag.h"
0009 #include "OnlineDB/EcalCondDB/interface/DCUIOV.h"
0010 #include "OnlineDB/EcalCondDB/interface/EcalLogicID.h"
0011
0012 class DCUCCSDat : public IDataItem {
0013 public:
0014 friend class EcalCondDBInterface;
0015 DCUCCSDat();
0016 ~DCUCCSDat() override;
0017
0018
0019 inline std::string getTable() override { return "DCU_CCS_DAT"; }
0020
0021 inline void setM1VDD1(float temp) { m_m1_vdd1 = temp; }
0022 inline void setM2VDD1(float temp) { m_m2_vdd1 = temp; }
0023 inline void setM1VDD2(float temp) { m_m1_vdd2 = temp; }
0024 inline void setM2VDD2(float temp) { m_m2_vdd2 = temp; }
0025 inline void setVDD(float m1vdd1, float m1vdd2, float m2vdd1, float m2vdd2) {
0026 setM1VDD1(m1vdd1);
0027 setM1VDD2(m1vdd2);
0028 setM2VDD1(m2vdd1);
0029 setM2VDD2(m2vdd2);
0030 }
0031 inline void setM1Vinj(float temp) { m_m1_vinj = temp; }
0032 inline void setM2Vinj(float temp) { m_m2_vinj = temp; }
0033 inline void setVinj(float v1, float v2) {
0034 setM1Vinj(v1);
0035 setM2Vinj(v2);
0036 }
0037 inline void setM1Vcc(float temp) { m_m1_vcc = temp; }
0038 inline void setM2Vcc(float temp) { m_m2_vcc = temp; }
0039 inline void setVcc(float v1, float v2) {
0040 setM1Vcc(v1);
0041 setM2Vcc(v2);
0042 }
0043 inline void setM1DCUTemp(float temp) { m_m1_dcutemp = temp; }
0044 inline void setM2DCUTemp(float temp) { m_m2_dcutemp = temp; }
0045 inline void setDCUTemp(float t1, float t2) {
0046 setM1DCUTemp(t1);
0047 setM2DCUTemp(t2);
0048 }
0049 inline void setCCSTempLow(float temp) { m_ccstemplow = temp; }
0050 inline void setCCSTempHigh(float temp) { m_ccstemphigh = temp; }
0051 inline void setCCSTemp(float low, float high) {
0052 setCCSTempLow(low);
0053 setCCSTempHigh(high);
0054 }
0055 inline void setM1(float vdd1, float vdd2, float vinj, float vcc, float dcutemp) {
0056 setM1VDD1(vdd1);
0057 setM1VDD2(vdd2);
0058 setM1Vinj(vinj);
0059 setM1Vcc(vcc);
0060 setM1DCUTemp(dcutemp);
0061 }
0062 inline void setM2(float vdd1, float vdd2, float vinj, float vcc, float dcutemp) {
0063 setM2VDD1(vdd1);
0064 setM2VDD2(vdd2);
0065 setM2Vinj(vinj);
0066 setM2Vcc(vcc);
0067 setM2DCUTemp(dcutemp);
0068 }
0069 inline float getM1VDD1() const { return m_m1_vdd1; }
0070 inline float getM1VDD2() const { return m_m1_vdd2; }
0071 inline float getM2VDD1() const { return m_m2_vdd1; }
0072 inline float getM2VDD2() const { return m_m2_vdd2; }
0073 inline float getM1Vinj() const { return m_m1_vinj; }
0074 inline float getM2Vinj() const { return m_m2_vinj; }
0075 inline float getM1Vcc() const { return m_m1_vcc; }
0076 inline float getM2Vcc() const { return m_m2_vcc; }
0077 inline float getM1DCUTemp() const { return m_m1_dcutemp; }
0078 inline float getM2DCUTemp() const { return m_m2_dcutemp; }
0079 inline float getCCSTempLow() const { return m_ccstemplow; }
0080 inline float getCCSTempHigh() const { return m_ccstemphigh; }
0081
0082 private:
0083 void prepareWrite() noexcept(false) override;
0084
0085 void writeDB(const EcalLogicID* ecid, const DCUCCSDat* item, DCUIOV* iov) noexcept(false);
0086
0087 void writeArrayDB(const std::map<EcalLogicID, DCUCCSDat>* data, DCUIOV* iov) noexcept(false);
0088
0089 void fetchData(std::map<EcalLogicID, DCUCCSDat>* fillVec, DCUIOV* iov) noexcept(false);
0090
0091
0092 float m_m1_vdd1;
0093 float m_m2_vdd1;
0094 float m_m1_vdd2;
0095 float m_m2_vdd2;
0096 float m_m1_vinj;
0097 float m_m2_vinj;
0098 float m_m1_vcc;
0099 float m_m2_vcc;
0100 float m_m1_dcutemp;
0101 float m_m2_dcutemp;
0102 float m_ccstemplow;
0103 float m_ccstemphigh;
0104 };
0105
0106 #endif