Back to home page

Project CMSSW displayed by LXR

 
 

    


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   // User data methods
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   // User data
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