16 m_writeStmt =
nullptr;
41 this->checkConnection();
44 m_writeStmt = m_conn->createStatement();
45 m_writeStmt->setSQL(
"INSERT INTO mon_pn_green_dat (iov_id, logic_id, " 46 "adc_mean_g1, adc_rms_g1, adc_mean_g16, adc_rms_g16, ped_mean_g1, ped_rms_g1, ped_mean_g16, ped_rms_g16, task_status) " 47 "VALUES (:iov_id, :logic_id, " 48 ":3, :4, :5, :6, :7, :8, :9, :10, :11)");
49 }
catch (SQLException &
e) {
50 throw(std::runtime_error(
std::string(
"MonPNGreenDat::prepareWrite(): ")+getOraMessage(&e)));
59 this->checkConnection();
62 int iovID = iov->fetchID();
63 if (!iovID) {
throw(std::runtime_error(
"MonPNGreenDat::writeDB: IOV not in DB")); }
65 int logicID = ecid->getLogicID();
66 if (!logicID) {
throw(std::runtime_error(
"MonPNGreenDat::writeDB: Bad EcalLogicID")); }
69 m_writeStmt->setInt(1, iovID);
70 m_writeStmt->setInt(2, logicID);
72 m_writeStmt->setFloat(3, item->getADCMeanG1() );
73 m_writeStmt->setFloat(4, item->getADCRMSG1() );
74 m_writeStmt->setFloat(5, item->getADCMeanG16() );
75 m_writeStmt->setFloat(6, item->getADCRMSG16() );
76 m_writeStmt->setFloat(7, item->getPedMeanG1() );
77 m_writeStmt->setFloat(8, item->getPedRMSG1() );
78 m_writeStmt->setFloat(9, item->getPedMeanG16() );
79 m_writeStmt->setFloat(10, item->getPedRMSG16() );
80 m_writeStmt->setInt(11, item->getTaskStatus() );
82 m_writeStmt->executeUpdate();
83 }
catch (SQLException &
e) {
84 throw(std::runtime_error(
std::string(
"MonPNGreenDat::writeDB(): ")+getOraMessage(&e)));
93 this->checkConnection();
96 iov->setConnection(m_env, m_conn);
97 int iovID = iov->fetchID();
105 m_readStmt->setSQL(
"SELECT cv.name, cv.logic_id, cv.id1, cv.id2, cv.id3, cv.maps_to, " 106 "d.adc_mean_g1, d.adc_rms_g1, d.adc_mean_g16, d.adc_rms_g16, d.ped_mean_g1,d.ped_rms_g1, d.ped_mean_g16, d.ped_rms_g16, d.task_status " 107 "FROM channelview cv JOIN mon_pn_green_dat d " 108 "ON cv.logic_id = d.logic_id AND cv.name = cv.maps_to " 109 "WHERE d.iov_id = :iov_id");
110 m_readStmt->setInt(1, iovID);
111 ResultSet* rset = m_readStmt->executeQuery();
113 std::pair< EcalLogicID, MonPNGreenDat >
p;
115 while(rset->next()) {
121 getOraString(rset,6));
135 }
catch (SQLException &
e) {
136 throw(std::runtime_error(
std::string(
"MonPNGreenDat::fetchData(): ")+getOraMessage(&e)));
142 this->checkConnection();
143 this->checkPrepare();
145 int iovID = iov->fetchID();
146 if (!iovID) {
throw(std::runtime_error(
"MonPNGreenDat::writeArrayDB: IOV not in DB")); }
149 int nrows=
data->size();
150 int*
ids=
new int[nrows];
151 int* iovid_vec=
new int[nrows];
152 float*
xx=
new float[nrows];
153 float*
yy=
new float[nrows];
154 float*
zz=
new float[nrows];
155 float* ww=
new float[nrows];
156 float* uu=
new float[nrows];
157 float*
tt=
new float[nrows];
158 float*
rr=
new float[nrows];
159 float*
pp=
new float[nrows];
160 int* st=
new int[nrows];
162 ub2* ids_len=
new ub2[nrows];
163 ub2* iov_len=
new ub2[nrows];
164 ub2* x_len=
new ub2[nrows];
165 ub2* y_len=
new ub2[nrows];
166 ub2* z_len=
new ub2[nrows];
167 ub2* w_len=
new ub2[nrows];
168 ub2* u_len=
new ub2[nrows];
169 ub2* t_len=
new ub2[nrows];
170 ub2* r_len=
new ub2[nrows];
171 ub2* p_len=
new ub2[nrows];
172 ub2* st_len=
new ub2[nrows];
177 typedef map< EcalLogicID, MonPNGreenDat >::const_iterator CI;
178 for (CI
p =
data->begin();
p !=
data->end(); ++
p) {
179 channel = &(
p->first);
181 if (!logicID) {
throw(std::runtime_error(
"MonPNGreenDat::writeArrayDB: Bad EcalLogicID")); }
183 iovid_vec[
count]=iovID;
185 dataitem = &(
p->second);
228 m_writeStmt->setDataBuffer(1, (dvoid*)iovid_vec, OCCIINT,
sizeof(iovid_vec[0]),iov_len);
229 m_writeStmt->setDataBuffer(2, (dvoid*)ids, OCCIINT,
sizeof(ids[0]), ids_len );
230 m_writeStmt->setDataBuffer(3, (dvoid*)xx, OCCIFLOAT ,
sizeof(xx[0]), x_len );
231 m_writeStmt->setDataBuffer(4, (dvoid*)yy, OCCIFLOAT ,
sizeof(yy[0]), y_len );
232 m_writeStmt->setDataBuffer(5, (dvoid*)zz, OCCIFLOAT ,
sizeof(zz[0]), z_len );
233 m_writeStmt->setDataBuffer(6, (dvoid*)ww, OCCIFLOAT ,
sizeof(ww[0]), w_len );
234 m_writeStmt->setDataBuffer(7, (dvoid*)uu, OCCIFLOAT ,
sizeof(uu[0]), u_len );
235 m_writeStmt->setDataBuffer(8, (dvoid*)tt, OCCIFLOAT ,
sizeof(tt[0]), t_len );
236 m_writeStmt->setDataBuffer(9, (dvoid*)rr, OCCIFLOAT ,
sizeof(rr[0]), r_len );
237 m_writeStmt->setDataBuffer(10, (dvoid*)pp, OCCIFLOAT ,
sizeof(pp[0]), p_len );
238 m_writeStmt->setDataBuffer(11, (dvoid*)st, OCCIINT ,
sizeof(st[0]), st_len );
241 m_writeStmt->executeArrayUpdate(nrows);
269 }
catch (SQLException &
e) {
270 throw(std::runtime_error(
std::string(
"MonPNGreenDat::writeArrayDB(): ")+getOraMessage(&e)));
float getADCMeanG1() const
float getPedRMSG1() const
void setADCRMSG1(float mean)
float getADCRMSG16() const
bool getTaskStatus() const
float getPedMeanG16() const
float getADCRMSG1() const
void prepareWrite() noexcept(false) override
void setTaskStatus(bool status)
void setPedRMSG1(float mean)
void setADCMeanG1(float mean)
float getADCMeanG16() const
void writeDB(const EcalLogicID *ecid, const MonPNGreenDat *item, MonRunIOV *iov) noexcept(false)
void fetchData(std::map< EcalLogicID, MonPNGreenDat > *fillVec, MonRunIOV *iov) noexcept(false)
void setADCRMSG16(float mean)
~MonPNGreenDat() override
float getPedMeanG1() const
void setADCMeanG16(float mean)
float getPedRMSG16() const
void setPedMeanG1(float mean)
char data[epos_bytes_allocation]
void setPedRMSG16(float mean)
void writeArrayDB(const std::map< EcalLogicID, MonPNGreenDat > *data, MonRunIOV *iov) noexcept(false)
void setPedMeanG16(float mean)