16 m_writeStmt =
nullptr;
47 this->checkConnection();
50 m_writeStmt = m_conn->createStatement();
51 m_writeStmt->setSQL(
"INSERT INTO dcu_lvr_voltages_dat (iov_id, logic_id, " 52 "vfe1_A, vfe2_A, vfe3_A, vfe4_A, vfe5_A, VCC, vfe4_5_D, vfe1_2_3_D, buffer, fenix, V43_A, OCM, GOH, INH, V43_D) " 53 "VALUES (:iov_id, :logic_id, " 54 ":3, :4, :5, :6, :7, :8, :9, :10, :11, :12, :13, :14, :15, :16, :17)");
55 }
catch (SQLException &
e) {
56 throw(std::runtime_error(
"DCULVRVoltagesDat::prepareWrite(): "+e.getMessage()));
65 this->checkConnection();
68 int iovID = iov->fetchID();
69 if (!iovID) {
throw(std::runtime_error(
"DCULVRVoltagesDat::writeDB: IOV not in DB")); }
71 int logicID = ecid->getLogicID();
72 if (!logicID) {
throw(std::runtime_error(
"DCULVRVoltagesDat::writeDB: Bad EcalLogicID")); }
75 m_writeStmt->setInt(1, iovID);
76 m_writeStmt->setInt(2, logicID);
78 m_writeStmt->setFloat(3, item->getVFE1_A() );
79 m_writeStmt->setFloat(4, item->getVFE2_A() );
80 m_writeStmt->setFloat(5, item->getVFE3_A() );
81 m_writeStmt->setFloat(6, item->getVFE4_A() );
82 m_writeStmt->setFloat(7, item->getVFE5_A() );
83 m_writeStmt->setFloat(8, item->getVCC() );
84 m_writeStmt->setFloat(9, item->getVFE4_5_D() );
85 m_writeStmt->setFloat(10, item->getVFE1_2_3_D() );
86 m_writeStmt->setFloat(11, item->getBuffer() );
87 m_writeStmt->setFloat(12, item->getFenix() );
88 m_writeStmt->setFloat(13, item->getV43_A() );
89 m_writeStmt->setFloat(14, item->getOCM() );
90 m_writeStmt->setFloat(15, item->getGOH() );
91 m_writeStmt->setFloat(16, item->getINH() );
92 m_writeStmt->setFloat(17, item->getV43_D() );
94 m_writeStmt->executeUpdate();
95 }
catch (SQLException &
e) {
96 throw(std::runtime_error(
"DCULVRVoltagesDat::writeDB(): "+e.getMessage()));
105 this->checkConnection();
108 iov->setConnection(m_env, m_conn);
109 int iovID = iov->fetchID();
117 m_readStmt->setSQL(
"SELECT cv.name, cv.logic_id, cv.id1, cv.id2, cv.id3, cv.maps_to, " 118 "d.vfe1_A, d.vfe2_A, d.vfe3_A, d.vfe4_A, d.vfe5_A, d.VCC, d.vfe4_5_D, d.vfe1_2_3_D, d.buffer, d.fenix, d.V43_A, d.OCM, d.GOH, d.INH, d.V43_D " 119 "FROM channelview cv JOIN dcu_lvr_voltages_dat d " 120 "ON cv.logic_id = d.logic_id AND cv.name = cv.maps_to " 121 "WHERE d.iov_id = :iov_id");
122 m_readStmt->setInt(1, iovID);
123 ResultSet* rset = m_readStmt->executeQuery();
125 std::pair< EcalLogicID, DCULVRVoltagesDat >
p;
127 while(rset->next()) {
140 dat.
setVCC( rset->getFloat(12) );
146 dat.
setOCM( rset->getFloat(18) );
147 dat.
setGOH( rset->getFloat(19) );
148 dat.
setINH( rset->getFloat(20) );
154 }
catch (SQLException &
e) {
155 throw(std::runtime_error(
"DCULVRVoltagesDat::fetchData(): "+e.getMessage()));
161 this->checkConnection();
162 this->checkPrepare();
164 int iovID = iov->fetchID();
165 if (!iovID) {
throw(std::runtime_error(
"DCULVRVoltagesDat::writeArrayDB: IOV not in DB")); }
168 int nrows=
data->size();
169 int* ids=
new int[nrows];
170 int* iovid_vec=
new int[nrows];
171 float*
xx=
new float[nrows];
172 float*
yy=
new float[nrows];
173 float*
zz=
new float[nrows];
174 float* ww=
new float[nrows];
175 float* uu=
new float[nrows];
176 float*
tt=
new float[nrows];
177 float*
rr=
new float[nrows];
178 float*
pp=
new float[nrows];
179 float* ll=
new float[nrows];
180 float* mm=
new float[nrows];
181 float*
nn=
new float[nrows];
182 float* qq=
new float[nrows];
183 float* ss=
new float[nrows];
184 float* vv=
new float[nrows];
185 float* hh=
new float[nrows];
188 ub2* ids_len=
new ub2[nrows];
189 ub2* iov_len=
new ub2[nrows];
190 ub2* x_len=
new ub2[nrows];
191 ub2* y_len=
new ub2[nrows];
192 ub2* z_len=
new ub2[nrows];
193 ub2* w_len=
new ub2[nrows];
194 ub2* u_len=
new ub2[nrows];
195 ub2* t_len=
new ub2[nrows];
196 ub2* r_len=
new ub2[nrows];
197 ub2* p_len=
new ub2[nrows];
198 ub2* l_len=
new ub2[nrows];
199 ub2* m_len=
new ub2[nrows];
200 ub2* n_len=
new ub2[nrows];
201 ub2* q_len=
new ub2[nrows];
202 ub2* s_len=
new ub2[nrows];
203 ub2* v_len=
new ub2[nrows];
204 ub2* h_len=
new ub2[nrows];
209 typedef map< EcalLogicID, DCULVRVoltagesDat >::const_iterator CI;
210 for (CI
p =
data->begin();
p !=
data->end(); ++
p) {
211 channel = &(
p->first);
213 if (!logicID) {
throw(std::runtime_error(
"DCULVRVoltagesDat::writeArrayDB: Bad EcalLogicID")); }
215 iovid_vec[
count]=iovID;
217 dataitem = &(
p->second);
272 m_writeStmt->setDataBuffer(1, (dvoid*)iovid_vec, OCCIINT,
sizeof(iovid_vec[0]),iov_len);
273 m_writeStmt->setDataBuffer(2, (dvoid*)ids, OCCIINT,
sizeof(ids[0]), ids_len );
274 m_writeStmt->setDataBuffer(3, (dvoid*)xx, OCCIFLOAT ,
sizeof(xx[0]), x_len );
275 m_writeStmt->setDataBuffer(4, (dvoid*)yy, OCCIFLOAT ,
sizeof(yy[0]), y_len );
276 m_writeStmt->setDataBuffer(5, (dvoid*)zz, OCCIFLOAT ,
sizeof(zz[0]), z_len );
277 m_writeStmt->setDataBuffer(6, (dvoid*)ww, OCCIFLOAT ,
sizeof(ww[0]), w_len );
278 m_writeStmt->setDataBuffer(7, (dvoid*)uu, OCCIFLOAT ,
sizeof(uu[0]), u_len );
279 m_writeStmt->setDataBuffer(8, (dvoid*)tt, OCCIFLOAT ,
sizeof(tt[0]), t_len );
280 m_writeStmt->setDataBuffer(9, (dvoid*)rr, OCCIFLOAT ,
sizeof(rr[0]), r_len );
281 m_writeStmt->setDataBuffer(10, (dvoid*)pp, OCCIFLOAT ,
sizeof(pp[0]), p_len );
282 m_writeStmt->setDataBuffer(11, (dvoid*)ll, OCCIFLOAT ,
sizeof(ll[0]), l_len );
283 m_writeStmt->setDataBuffer(12, (dvoid*)mm, OCCIFLOAT ,
sizeof(mm[0]), m_len );
284 m_writeStmt->setDataBuffer(13, (dvoid*)nn, OCCIFLOAT ,
sizeof(nn[0]), n_len );
285 m_writeStmt->setDataBuffer(14, (dvoid*)qq, OCCIFLOAT ,
sizeof(qq[0]), q_len );
286 m_writeStmt->setDataBuffer(15, (dvoid*)ss, OCCIFLOAT ,
sizeof(ss[0]), s_len );
287 m_writeStmt->setDataBuffer(16, (dvoid*)vv, OCCIFLOAT ,
sizeof(vv[0]), v_len );
288 m_writeStmt->setDataBuffer(17, (dvoid*)hh, OCCIFLOAT ,
sizeof(hh[0]), h_len );
291 m_writeStmt->executeArrayUpdate(nrows);
329 }
catch (SQLException &
e) {
330 throw(std::runtime_error(
"DCULVRVoltagesDat::writeArrayDB(): "+e.getMessage()));
FWCore Framework interface EventSetupRecordImplementation h
Helper function to determine trigger accepts.
void prepareWrite() noexcept(false) override
~DCULVRVoltagesDat() override
void writeDB(const EcalLogicID *ecid, const DCULVRVoltagesDat *item, DCUIOV *iov) noexcept(false)
void fetchData(std::map< EcalLogicID, DCULVRVoltagesDat > *fillVec, DCUIOV *iov) noexcept(false)
void setVFE4_5_D(float v)
void writeArrayDB(const std::map< EcalLogicID, DCULVRVoltagesDat > *data, DCUIOV *iov) noexcept(false)
float getVFE4_5_D() const
char data[epos_bytes_allocation]
float getVFE1_2_3_D() const
void setVFE1_2_3_D(float v)