CMS 3D CMS Logo

List of all members | Public Member Functions | Private Member Functions | Private Attributes | Friends
MonLed2Dat Class Reference

#include <MonLed2Dat.h>

Inheritance diagram for MonLed2Dat:
IDataItem IDBObject

Public Member Functions

std::string getTable () override
 
bool getTaskStatus () const
 
float getVPTMean () const
 
float getVPTOverPNMean () const
 
float getVPTOverPNRMS () const
 
float getVPTRMS () const
 
 MonLed2Dat ()
 
void setTaskStatus (bool status)
 
void setVPTMean (float mean)
 
void setVPTOverPNMean (float mean)
 
void setVPTOverPNRMS (float rms)
 
void setVPTRMS (float rms)
 
 ~MonLed2Dat () override
 
- Public Member Functions inherited from IDataItem
 IDataItem ()
 
- Public Member Functions inherited from IDBObject
oracle::occi::Connection * getConn () const
 
oracle::occi::Environment * getEnv () const
 
void setConnection (oracle::occi::Environment *env, oracle::occi::Connection *conn)
 
virtual ~IDBObject ()
 

Private Member Functions

void fetchData (std::map< EcalLogicID, MonLed2Dat > *fillMap, MonRunIOV *iov) noexcept(false)
 
void prepareWrite () noexcept(false) override
 
void writeArrayDB (const std::map< EcalLogicID, MonLed2Dat > *data, MonRunIOV *iov) noexcept(false)
 
void writeDB (const EcalLogicID *ecid, const MonLed2Dat *item, MonRunIOV *iov) noexcept(false)
 

Private Attributes

bool m_taskStatus
 
float m_vptMean
 
float m_vptOverPNMean
 
float m_vptOverPNRMS
 
float m_vptRMS
 

Friends

class EcalCondDBInterface
 

Additional Inherited Members

- Static Public Attributes inherited from IDBObject
static int const ECALDB_NROWS = 1024
 
- Protected Member Functions inherited from IDataItem
void checkPrepare () noexcept(false)
 
void createReadStatement () noexcept(false)
 
void setPrefetchRowCount (int ncount) noexcept(false)
 
void terminateReadStatement () noexcept(false)
 
void terminateWriteStatement () noexcept(false)
 
- Protected Member Functions inherited from IDBObject
void checkConnection () const noexcept(false)
 
- Protected Attributes inherited from IDataItem
oracle::occi::Statement * m_readStmt
 
oracle::occi::Statement * m_writeStmt
 
- Protected Attributes inherited from IDBObject
oracle::occi::Connection * m_conn
 
oracle::occi::Environment * m_env
 

Detailed Description

Definition at line 12 of file MonLed2Dat.h.

Constructor & Destructor Documentation

◆ MonLed2Dat()

MonLed2Dat::MonLed2Dat ( )

Definition at line 10 of file MonLed2Dat.cc.

10  {
11  m_env = nullptr;
12  m_conn = nullptr;
13  m_writeStmt = nullptr;
14  m_readStmt = nullptr;
15 
16  m_vptMean = 0;
17  m_vptRMS = 0;
18  m_vptOverPNMean = 0;
19  m_vptOverPNRMS = 0;
20  m_taskStatus = false;
21 }
oracle::occi::Environment * m_env
Definition: IDBObject.h:33
oracle::occi::Statement * m_writeStmt
Definition: IDataItem.h:23
oracle::occi::Connection * m_conn
Definition: IDBObject.h:34
bool m_taskStatus
Definition: MonLed2Dat.h:50
float m_vptRMS
Definition: MonLed2Dat.h:47
float m_vptOverPNMean
Definition: MonLed2Dat.h:48
oracle::occi::Statement * m_readStmt
Definition: IDataItem.h:24
float m_vptMean
Definition: MonLed2Dat.h:46
float m_vptOverPNRMS
Definition: MonLed2Dat.h:49

◆ ~MonLed2Dat()

MonLed2Dat::~MonLed2Dat ( )
override

Definition at line 23 of file MonLed2Dat.cc.

23 {}

Member Function Documentation

◆ fetchData()

void MonLed2Dat::fetchData ( std::map< EcalLogicID, MonLed2Dat > *  fillMap,
MonRunIOV iov 
)
privatenoexcept

Definition at line 70 of file MonLed2Dat.cc.

References MillePedeFileConverter_cfg::e, AlCaHLTBitMon_ParallelJobs::p, setTaskStatus(), setVPTMean(), setVPTOverPNMean(), setVPTOverPNRMS(), and setVPTRMS().

70  {
71  this->checkConnection();
72 
73  fillMap->clear();
74 
75  iov->setConnection(m_env, m_conn);
76  int iovID = iov->fetchID();
77  if (!iovID) {
78  // throw(std::runtime_error("MonLed2Dat::writeDB: IOV not in DB"));
79  return;
80  }
81 
82  try {
83  m_readStmt->setSQL(
84  "SELECT cv.name, cv.logic_id, cv.id1, cv.id2, cv.id3, cv.maps_to, "
85  "d.vpt_mean, d.vpt_rms, d.vpt_over_pn_mean, d.vpt_over_pn_rms, d.task_status "
86  "FROM channelview cv JOIN mon_led2_dat d "
87  "ON cv.logic_id = d.logic_id AND cv.name = cv.maps_to "
88  "WHERE d.iov_id = :iov_id");
89  m_readStmt->setInt(1, iovID);
90  ResultSet* rset = m_readStmt->executeQuery();
91 
92  std::pair<EcalLogicID, MonLed2Dat> p;
93  MonLed2Dat dat;
94  while (rset->next()) {
95  p.first = EcalLogicID(rset->getString(1), // name
96  rset->getInt(2), // logic_id
97  rset->getInt(3), // id1
98  rset->getInt(4), // id2
99  rset->getInt(5), // id3
100  rset->getString(6)); // maps_to
101 
102  dat.setVPTMean(rset->getFloat(7));
103  dat.setVPTRMS(rset->getFloat(8));
104  dat.setVPTOverPNMean(rset->getFloat(9));
105  dat.setVPTOverPNRMS(rset->getFloat(10));
106  dat.setTaskStatus(rset->getInt(11));
107 
108  p.second = dat;
109  fillMap->insert(p);
110  }
111  } catch (SQLException& e) {
112  throw(std::runtime_error("MonLed2Dat::fetchData(): " + e.getMessage()));
113  }
114 }
oracle::occi::Environment * m_env
Definition: IDBObject.h:33
oracle::occi::Connection * m_conn
Definition: IDBObject.h:34
void checkConnection() const noexcept(false)
Definition: IDBObject.h:36
void setVPTOverPNMean(float mean)
Definition: MonLed2Dat.h:27
int fetchID() noexcept(false) override
Definition: MonRunIOV.cc:72
void setVPTMean(float mean)
Definition: MonLed2Dat.h:21
void setVPTOverPNRMS(float rms)
Definition: MonLed2Dat.h:30
void setTaskStatus(bool status)
Definition: MonLed2Dat.h:33
void setVPTRMS(float rms)
Definition: MonLed2Dat.h:24
oracle::occi::Statement * m_readStmt
Definition: IDataItem.h:24
void setConnection(oracle::occi::Environment *env, oracle::occi::Connection *conn)
Definition: IDBObject.h:23

◆ getTable()

std::string MonLed2Dat::getTable ( )
inlineoverridevirtual

Implements IDataItem.

Definition at line 19 of file MonLed2Dat.h.

19 { return "MON_LED2_DAT"; }

◆ getTaskStatus()

bool MonLed2Dat::getTaskStatus ( ) const
inline

Definition at line 34 of file MonLed2Dat.h.

References m_taskStatus.

Referenced by writeArrayDB().

34 { return m_taskStatus; }
bool m_taskStatus
Definition: MonLed2Dat.h:50

◆ getVPTMean()

float MonLed2Dat::getVPTMean ( ) const
inline

Definition at line 22 of file MonLed2Dat.h.

References m_vptMean.

Referenced by writeArrayDB().

22 { return m_vptMean; }
float m_vptMean
Definition: MonLed2Dat.h:46

◆ getVPTOverPNMean()

float MonLed2Dat::getVPTOverPNMean ( ) const
inline

Definition at line 28 of file MonLed2Dat.h.

References m_vptOverPNMean.

Referenced by writeArrayDB().

28 { return m_vptOverPNMean; }
float m_vptOverPNMean
Definition: MonLed2Dat.h:48

◆ getVPTOverPNRMS()

float MonLed2Dat::getVPTOverPNRMS ( ) const
inline

Definition at line 31 of file MonLed2Dat.h.

References m_vptOverPNRMS.

Referenced by writeArrayDB().

31 { return m_vptOverPNRMS; }
float m_vptOverPNRMS
Definition: MonLed2Dat.h:49

◆ getVPTRMS()

float MonLed2Dat::getVPTRMS ( ) const
inline

Definition at line 25 of file MonLed2Dat.h.

References m_vptRMS.

Referenced by writeArrayDB().

25 { return m_vptRMS; }
float m_vptRMS
Definition: MonLed2Dat.h:47

◆ prepareWrite()

void MonLed2Dat::prepareWrite ( )
overrideprivatevirtualnoexcept

Implements IDataItem.

Definition at line 25 of file MonLed2Dat.cc.

References MillePedeFileConverter_cfg::e.

25  {
26  this->checkConnection();
27 
28  try {
29  m_writeStmt = m_conn->createStatement();
30  m_writeStmt->setSQL(
31  "INSERT INTO mon_led2_dat (iov_id, logic_id, "
32  "vpt_mean, vpt_rms, vpt_over_pn_mean, vpt_over_pn_rms, task_status) "
33  "VALUES (:iov_id, :logic_id, "
34  ":vpt_mean, :vpt_rms, :vpt_over_pn_mean, :vpt_over_pn_rms, :task_status)");
35  } catch (SQLException& e) {
36  throw(std::runtime_error("MonLed2Dat::prepareWrite(): " + e.getMessage()));
37  }
38 }
oracle::occi::Statement * m_writeStmt
Definition: IDataItem.h:23
oracle::occi::Connection * m_conn
Definition: IDBObject.h:34
void checkConnection() const noexcept(false)
Definition: IDBObject.h:36

◆ setTaskStatus()

void MonLed2Dat::setTaskStatus ( bool  status)
inline

Definition at line 33 of file MonLed2Dat.h.

References m_taskStatus, and mps_update::status.

Referenced by fetchData(), and ecaldqm::LedWriter::run().

33 { m_taskStatus = status; }
bool m_taskStatus
Definition: MonLed2Dat.h:50

◆ setVPTMean()

void MonLed2Dat::setVPTMean ( float  mean)
inline

Definition at line 21 of file MonLed2Dat.h.

References m_vptMean, and SiStripPI::mean.

Referenced by fetchData(), and ecaldqm::LedWriter::run().

◆ setVPTOverPNMean()

void MonLed2Dat::setVPTOverPNMean ( float  mean)
inline

Definition at line 27 of file MonLed2Dat.h.

References m_vptOverPNMean, and SiStripPI::mean.

Referenced by fetchData(), and ecaldqm::LedWriter::run().

◆ setVPTOverPNRMS()

void MonLed2Dat::setVPTOverPNRMS ( float  rms)
inline

Definition at line 30 of file MonLed2Dat.h.

References m_vptOverPNRMS, and SiStripPI::rms.

Referenced by fetchData(), and ecaldqm::LedWriter::run().

◆ setVPTRMS()

void MonLed2Dat::setVPTRMS ( float  rms)
inline

Definition at line 24 of file MonLed2Dat.h.

References m_vptRMS, and SiStripPI::rms.

Referenced by fetchData(), and ecaldqm::LedWriter::run().

◆ writeArrayDB()

void MonLed2Dat::writeArrayDB ( const std::map< EcalLogicID, MonLed2Dat > *  data,
MonRunIOV iov 
)
privatenoexcept

Definition at line 116 of file MonLed2Dat.cc.

References submitPVResolutionJobs::count, data, MillePedeFileConverter_cfg::e, EcalLogicID::getLogicID(), getTaskStatus(), getVPTMean(), getVPTOverPNMean(), getVPTOverPNRMS(), getVPTRMS(), AlCaHLTBitMon_ParallelJobs::p, w(), x, geometryCSVtoXML::xx, y, geometryCSVtoXML::yy, z, and geometryCSVtoXML::zz.

116  {
117  this->checkConnection();
118  this->checkPrepare();
119 
120  int iovID = iov->fetchID();
121  if (!iovID) {
122  throw(std::runtime_error("MonLed2Dat::writeArrayDB: IOV not in DB"));
123  }
124 
125  int nrows = data->size();
126  int* ids = new int[nrows];
127  int* iovid_vec = new int[nrows];
128  float* xx = new float[nrows];
129  float* yy = new float[nrows];
130  float* zz = new float[nrows];
131  float* ww = new float[nrows];
132  int* st = new int[nrows];
133 
134  ub2* ids_len = new ub2[nrows];
135  ub2* iov_len = new ub2[nrows];
136  ub2* x_len = new ub2[nrows];
137  ub2* y_len = new ub2[nrows];
138  ub2* z_len = new ub2[nrows];
139  ub2* w_len = new ub2[nrows];
140  ub2* st_len = new ub2[nrows];
141 
142  const EcalLogicID* channel;
143  const MonLed2Dat* dataitem;
144  int count = 0;
145  typedef map<EcalLogicID, MonLed2Dat>::const_iterator CI;
146  for (CI p = data->begin(); p != data->end(); ++p) {
147  channel = &(p->first);
148  int logicID = channel->getLogicID();
149  if (!logicID) {
150  throw(std::runtime_error("MonLed2Dat::writeArrayDB: Bad EcalLogicID"));
151  }
152  ids[count] = logicID;
153  iovid_vec[count] = iovID;
154 
155  dataitem = &(p->second);
156  // dataIface.writeDB( channel, dataitem, iov);
157  float x = dataitem->getVPTMean();
158  float y = dataitem->getVPTRMS();
159  float z = dataitem->getVPTOverPNMean();
160  float w = dataitem->getVPTOverPNRMS();
161  int statu = dataitem->getTaskStatus();
162 
163  xx[count] = x;
164  yy[count] = y;
165  zz[count] = z;
166  ww[count] = w;
167  st[count] = statu;
168 
169  ids_len[count] = sizeof(ids[count]);
170  iov_len[count] = sizeof(iovid_vec[count]);
171 
172  x_len[count] = sizeof(xx[count]);
173  y_len[count] = sizeof(yy[count]);
174  z_len[count] = sizeof(zz[count]);
175  w_len[count] = sizeof(ww[count]);
176  st_len[count] = sizeof(st[count]);
177 
178  count++;
179  }
180 
181  try {
182  m_writeStmt->setDataBuffer(1, (dvoid*)iovid_vec, OCCIINT, sizeof(iovid_vec[0]), iov_len);
183  m_writeStmt->setDataBuffer(2, (dvoid*)ids, OCCIINT, sizeof(ids[0]), ids_len);
184  m_writeStmt->setDataBuffer(3, (dvoid*)xx, OCCIFLOAT, sizeof(xx[0]), x_len);
185  m_writeStmt->setDataBuffer(4, (dvoid*)yy, OCCIFLOAT, sizeof(yy[0]), y_len);
186  m_writeStmt->setDataBuffer(5, (dvoid*)zz, OCCIFLOAT, sizeof(zz[0]), z_len);
187  m_writeStmt->setDataBuffer(6, (dvoid*)ww, OCCIFLOAT, sizeof(ww[0]), w_len);
188  m_writeStmt->setDataBuffer(7, (dvoid*)st, OCCIINT, sizeof(st[0]), st_len);
189 
190  m_writeStmt->executeArrayUpdate(nrows);
191 
192  delete[] ids;
193  delete[] iovid_vec;
194  delete[] xx;
195  delete[] yy;
196  delete[] zz;
197  delete[] ww;
198  delete[] st;
199 
200  delete[] ids_len;
201  delete[] iov_len;
202  delete[] x_len;
203  delete[] y_len;
204  delete[] z_len;
205  delete[] w_len;
206  delete[] st_len;
207 
208  } catch (SQLException& e) {
209  throw(std::runtime_error("MonLed2Dat::writeArrayDB(): " + e.getMessage()));
210  }
211 }
float getVPTOverPNMean() const
Definition: MonLed2Dat.h:28
oracle::occi::Statement * m_writeStmt
Definition: IDataItem.h:23
T w() const
void checkConnection() const noexcept(false)
Definition: IDBObject.h:36
void checkPrepare() noexcept(false)
Definition: IDataItem.h:26
int fetchID() noexcept(false) override
Definition: MonRunIOV.cc:72
float getVPTOverPNRMS() const
Definition: MonLed2Dat.h:31
int getLogicID() const
Definition: EcalLogicID.cc:28
float getVPTMean() const
Definition: MonLed2Dat.h:22
float getVPTRMS() const
Definition: MonLed2Dat.h:25
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:80
bool getTaskStatus() const
Definition: MonLed2Dat.h:34

◆ writeDB()

void MonLed2Dat::writeDB ( const EcalLogicID ecid,
const MonLed2Dat item,
MonRunIOV iov 
)
privatenoexcept

Definition at line 40 of file MonLed2Dat.cc.

References MillePedeFileConverter_cfg::e, and B2GTnPMonitor_cfi::item.

40  {
41  this->checkConnection();
42  this->checkPrepare();
43 
44  int iovID = iov->fetchID();
45  if (!iovID) {
46  throw(std::runtime_error("MonLed2Dat::writeDB: IOV not in DB"));
47  }
48 
49  int logicID = ecid->getLogicID();
50  if (!logicID) {
51  throw(std::runtime_error("MonLed2Dat::writeDB: Bad EcalLogicID"));
52  }
53 
54  try {
55  m_writeStmt->setInt(1, iovID);
56  m_writeStmt->setInt(2, logicID);
57 
58  m_writeStmt->setFloat(3, item->getVPTMean());
59  m_writeStmt->setFloat(4, item->getVPTRMS());
60  m_writeStmt->setFloat(5, item->getVPTOverPNMean());
61  m_writeStmt->setFloat(6, item->getVPTOverPNRMS());
62  m_writeStmt->setInt(7, item->getTaskStatus());
63 
64  m_writeStmt->executeUpdate();
65  } catch (SQLException& e) {
66  throw(std::runtime_error("MonLed2Dat::writeDB(): " + e.getMessage()));
67  }
68 }
oracle::occi::Statement * m_writeStmt
Definition: IDataItem.h:23
void checkConnection() const noexcept(false)
Definition: IDBObject.h:36
void checkPrepare() noexcept(false)
Definition: IDataItem.h:26
int fetchID() noexcept(false) override
Definition: MonRunIOV.cc:72
int getLogicID() const
Definition: EcalLogicID.cc:28

Friends And Related Function Documentation

◆ EcalCondDBInterface

friend class EcalCondDBInterface
friend

Definition at line 14 of file MonLed2Dat.h.

Member Data Documentation

◆ m_taskStatus

bool MonLed2Dat::m_taskStatus
private

Definition at line 50 of file MonLed2Dat.h.

Referenced by getTaskStatus(), and setTaskStatus().

◆ m_vptMean

float MonLed2Dat::m_vptMean
private

Definition at line 46 of file MonLed2Dat.h.

Referenced by getVPTMean(), and setVPTMean().

◆ m_vptOverPNMean

float MonLed2Dat::m_vptOverPNMean
private

Definition at line 48 of file MonLed2Dat.h.

Referenced by getVPTOverPNMean(), and setVPTOverPNMean().

◆ m_vptOverPNRMS

float MonLed2Dat::m_vptOverPNRMS
private

Definition at line 49 of file MonLed2Dat.h.

Referenced by getVPTOverPNRMS(), and setVPTOverPNRMS().

◆ m_vptRMS

float MonLed2Dat::m_vptRMS
private

Definition at line 47 of file MonLed2Dat.h.

Referenced by getVPTRMS(), and setVPTRMS().