CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Public Member Functions | Private Member Functions | Private Attributes | Friends
MonLaserBlueDat Class Reference

#include <MonLaserBlueDat.h>

Inheritance diagram for MonLaserBlueDat:
IDataItem IDBObject

Public Member Functions

float getAPDMean () const
 
float getAPDOverPNMean () const
 
float getAPDOverPNRMS () const
 
float getAPDRMS () const
 
std::string getTable () override
 
bool getTaskStatus () const
 
 MonLaserBlueDat ()
 
void setAPDMean (float mean)
 
void setAPDOverPNMean (float mean)
 
void setAPDOverPNRMS (float rms)
 
void setAPDRMS (float rms)
 
void setTaskStatus (bool status)
 
 ~MonLaserBlueDat () 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, MonLaserBlueDat > *fillMap, MonRunIOV *iov) noexcept(false)
 
void prepareWrite () noexcept(false) override
 
void writeArrayDB (const std::map< EcalLogicID, MonLaserBlueDat > *data, MonRunIOV *iov) noexcept(false)
 
void writeDB (const EcalLogicID *ecid, const MonLaserBlueDat *item, MonRunIOV *iov) noexcept(false)
 

Private Attributes

float m_apdMean
 
float m_apdOverPNMean
 
float m_apdOverPNRMS
 
float m_apdRMS
 
bool m_taskStatus
 

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 MonLaserBlueDat.h.

Constructor & Destructor Documentation

MonLaserBlueDat::MonLaserBlueDat ( )

Definition at line 10 of file MonLaserBlueDat.cc.

10  {
11  m_env = nullptr;
12  m_conn = nullptr;
13  m_writeStmt = nullptr;
14  m_readStmt = nullptr;
15 
16  m_apdMean = 0;
17  m_apdRMS = 0;
18  m_apdOverPNMean = 0;
19  m_apdOverPNRMS = 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
oracle::occi::Statement * m_readStmt
Definition: IDataItem.h:24
MonLaserBlueDat::~MonLaserBlueDat ( )
override

Definition at line 23 of file MonLaserBlueDat.cc.

23 {}

Member Function Documentation

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

Definition at line 70 of file MonLaserBlueDat.cc.

References dat, alignCSCRings::e, AlCaHLTBitMon_ParallelJobs::p, setAPDMean(), setAPDOverPNMean(), setAPDOverPNRMS(), setAPDRMS(), and setTaskStatus().

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("MonLaserBlueDat::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.apd_mean, d.apd_rms, d.apd_over_pn_mean, d.apd_over_pn_rms, d.task_status "
86  "FROM channelview cv JOIN mon_laser_blue_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, MonLaserBlueDat> p;
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.setAPDMean(rset->getFloat(7));
103  dat.setAPDRMS(rset->getFloat(8));
104  dat.setAPDOverPNMean(rset->getFloat(9));
105  dat.setAPDOverPNRMS(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("MonLaserBlueDat::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 setAPDOverPNMean(float mean)
int fetchID() noexcept(false) override
Definition: MonRunIOV.cc:72
void setAPDRMS(float rms)
oracle::occi::Statement * m_readStmt
Definition: IDataItem.h:24
static std::vector< std::string > checklist dat
void setTaskStatus(bool status)
void setAPDOverPNRMS(float rms)
void setConnection(oracle::occi::Environment *env, oracle::occi::Connection *conn)
Definition: IDBObject.h:23
void setAPDMean(float mean)
float MonLaserBlueDat::getAPDMean ( ) const
inline
float MonLaserBlueDat::getAPDOverPNMean ( ) const
inline

Definition at line 28 of file MonLaserBlueDat.h.

References m_apdOverPNMean.

Referenced by writeArrayDB().

28 { return m_apdOverPNMean; }
float MonLaserBlueDat::getAPDOverPNRMS ( ) const
inline

Definition at line 31 of file MonLaserBlueDat.h.

References m_apdOverPNRMS.

Referenced by writeArrayDB().

31 { return m_apdOverPNRMS; }
float MonLaserBlueDat::getAPDRMS ( ) const
inline

Definition at line 25 of file MonLaserBlueDat.h.

References m_apdRMS.

Referenced by writeArrayDB().

25 { return m_apdRMS; }
std::string MonLaserBlueDat::getTable ( )
inlineoverridevirtual

Implements IDataItem.

Definition at line 19 of file MonLaserBlueDat.h.

19 { return "MON_LASER_BLUE_DAT"; }
bool MonLaserBlueDat::getTaskStatus ( ) const
inline

Definition at line 34 of file MonLaserBlueDat.h.

References m_taskStatus.

Referenced by writeArrayDB().

34 { return m_taskStatus; }
void MonLaserBlueDat::prepareWrite ( )
overrideprivatevirtualnoexcept

Implements IDataItem.

Definition at line 25 of file MonLaserBlueDat.cc.

References alignCSCRings::e.

25  {
26  this->checkConnection();
27 
28  try {
29  m_writeStmt = m_conn->createStatement();
30  m_writeStmt->setSQL(
31  "INSERT INTO mon_laser_blue_dat (iov_id, logic_id, "
32  "apd_mean, apd_rms, apd_over_pn_mean, apd_over_pn_rms, task_status) "
33  "VALUES (:iov_id, :logic_id, "
34  ":apd_mean, :apd_rms, :apd_over_pn_mean, :apd_over_pn_rms, :task_status)");
35  } catch (SQLException& e) {
36  throw(std::runtime_error("MonLaserBlueDat::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
void MonLaserBlueDat::setAPDMean ( float  mean)
inline
void MonLaserBlueDat::setAPDOverPNMean ( float  mean)
inline
void MonLaserBlueDat::setAPDOverPNRMS ( float  rms)
inline
void MonLaserBlueDat::setAPDRMS ( float  rms)
inline

Definition at line 24 of file MonLaserBlueDat.h.

References m_apdRMS, and SiStripPI::rms.

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

void MonLaserBlueDat::setTaskStatus ( bool  status)
inline

Definition at line 33 of file MonLaserBlueDat.h.

References m_taskStatus, and mps_update::status.

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

33 { m_taskStatus = status; }
list status
Definition: mps_update.py:107
void MonLaserBlueDat::writeArrayDB ( const std::map< EcalLogicID, MonLaserBlueDat > *  data,
MonRunIOV iov 
)
privatenoexcept

Definition at line 116 of file MonLaserBlueDat.cc.

References submitPVResolutionJobs::count, data, alignCSCRings::e, getAPDMean(), getAPDOverPNMean(), getAPDOverPNRMS(), getAPDRMS(), EcalLogicID::getLogicID(), getTaskStatus(), AlCaHLTBitMon_ParallelJobs::p, w, x, y, and z.

116  {
117  this->checkConnection();
118  this->checkPrepare();
119 
120  int iovID = iov->fetchID();
121  if (!iovID) {
122  throw(std::runtime_error("MonLaserBlueDat::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 MonLaserBlueDat* dataitem;
144  int count = 0;
145  typedef map<EcalLogicID, MonLaserBlueDat>::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("MonLaserBlueDat::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->getAPDMean();
158  float y = dataitem->getAPDRMS();
159  float z = dataitem->getAPDOverPNMean();
160  float w = dataitem->getAPDOverPNRMS();
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("MonLaserBlueDat::writeArrayDB(): " + e.getMessage()));
210  }
211 }
oracle::occi::Statement * m_writeStmt
Definition: IDataItem.h:23
const double w
Definition: UKUtility.cc:23
void checkConnection() const noexcept(false)
Definition: IDBObject.h:36
bool getTaskStatus() const
void checkPrepare() noexcept(false)
Definition: IDataItem.h:26
int fetchID() noexcept(false) override
Definition: MonRunIOV.cc:72
int getLogicID() const
Definition: EcalLogicID.cc:28
float getAPDRMS() const
float getAPDMean() const
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:79
float getAPDOverPNMean() const
float getAPDOverPNRMS() const
void MonLaserBlueDat::writeDB ( const EcalLogicID ecid,
const MonLaserBlueDat item,
MonRunIOV iov 
)
privatenoexcept

Definition at line 40 of file MonLaserBlueDat.cc.

References alignCSCRings::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("MonLaserBlueDat::writeDB: IOV not in DB"));
47  }
48 
49  int logicID = ecid->getLogicID();
50  if (!logicID) {
51  throw(std::runtime_error("MonLaserBlueDat::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->getAPDMean());
59  m_writeStmt->setFloat(4, item->getAPDRMS());
60  m_writeStmt->setFloat(5, item->getAPDOverPNMean());
61  m_writeStmt->setFloat(6, item->getAPDOverPNRMS());
62  m_writeStmt->setInt(7, item->getTaskStatus());
63 
64  m_writeStmt->executeUpdate();
65  } catch (SQLException& e) {
66  throw(std::runtime_error("MonLaserBlueDat::writeDB(): " + e.getMessage()));
67  }
68 }
oracle::occi::Statement * m_writeStmt
Definition: IDataItem.h:23
void checkConnection() const noexcept(false)
Definition: IDBObject.h:36
bool getTaskStatus() const
void checkPrepare() noexcept(false)
Definition: IDataItem.h:26
int fetchID() noexcept(false) override
Definition: MonRunIOV.cc:72
int getLogicID() const
Definition: EcalLogicID.cc:28
float getAPDRMS() const
float getAPDMean() const
float getAPDOverPNMean() const
float getAPDOverPNRMS() const

Friends And Related Function Documentation

friend class EcalCondDBInterface
friend

Definition at line 14 of file MonLaserBlueDat.h.

Member Data Documentation

float MonLaserBlueDat::m_apdMean
private

Definition at line 46 of file MonLaserBlueDat.h.

Referenced by getAPDMean(), and setAPDMean().

float MonLaserBlueDat::m_apdOverPNMean
private

Definition at line 48 of file MonLaserBlueDat.h.

Referenced by getAPDOverPNMean(), and setAPDOverPNMean().

float MonLaserBlueDat::m_apdOverPNRMS
private

Definition at line 49 of file MonLaserBlueDat.h.

Referenced by getAPDOverPNRMS(), and setAPDOverPNRMS().

float MonLaserBlueDat::m_apdRMS
private

Definition at line 47 of file MonLaserBlueDat.h.

Referenced by getAPDRMS(), and setAPDRMS().

bool MonLaserBlueDat::m_taskStatus
private

Definition at line 50 of file MonLaserBlueDat.h.

Referenced by getTaskStatus(), and setTaskStatus().