CMS 3D CMS Logo

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

#include <FEConfigFgrGroupDat.h>

Inheritance diagram for FEConfigFgrGroupDat:
IDataItem IDBObject

Public Member Functions

 FEConfigFgrGroupDat ()
 
int getFgrGroupId () const
 
int getLUTValue () const
 
float getRatioHigh () const
 
float getRatioLow () const
 
std::string getTable () override
 
float getThreshHigh () const
 
float getThreshLow () const
 
void setFgrGroupId (int x)
 
void setLUTValue (int x)
 
void setRatioHigh (float x)
 
void setRatioLow (float x)
 
void setThreshHigh (float x)
 
void setThreshLow (float x)
 
 ~FEConfigFgrGroupDat () 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, FEConfigFgrGroupDat > *fillMap, FEConfigFgrInfo *iconf) noexcept(false)
 
void prepareWrite () noexcept(false) override
 
void writeArrayDB (const std::map< EcalLogicID, FEConfigFgrGroupDat > *data, FEConfigFgrInfo *iconf) noexcept(false)
 
void writeDB (const EcalLogicID *ecid, const FEConfigFgrGroupDat *item, FEConfigFgrInfo *iconf) noexcept(false)
 

Private Attributes

int m_group_id
 
int m_lut
 
float m_ratio_high
 
float m_ratio_low
 
float m_thresh_high
 
float m_thresh_low
 

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 11 of file FEConfigFgrGroupDat.h.

Constructor & Destructor Documentation

◆ FEConfigFgrGroupDat()

FEConfigFgrGroupDat::FEConfigFgrGroupDat ( )

Definition at line 11 of file FEConfigFgrGroupDat.cc.

11  {
12  m_env = nullptr;
13  m_conn = nullptr;
14  m_writeStmt = nullptr;
15  m_readStmt = nullptr;
16 
17  m_group_id = 0;
18  m_thresh_low = 0;
19  m_thresh_high = 0;
20  m_ratio_low = 0;
21  m_ratio_high = 0;
22  m_lut = 0;
23 }
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

◆ ~FEConfigFgrGroupDat()

FEConfigFgrGroupDat::~FEConfigFgrGroupDat ( )
override

Definition at line 25 of file FEConfigFgrGroupDat.cc.

25 {}

Member Function Documentation

◆ fetchData()

void FEConfigFgrGroupDat::fetchData ( std::map< EcalLogicID, FEConfigFgrGroupDat > *  fillMap,
FEConfigFgrInfo iconf 
)
privatenoexcept

Definition at line 73 of file FEConfigFgrGroupDat.cc.

References MillePedeFileConverter_cfg::e, AlCaHLTBitMon_ParallelJobs::p, setFgrGroupId(), setLUTValue(), setRatioHigh(), setRatioLow(), setThreshHigh(), and setThreshLow().

74  {
75  this->checkConnection();
76  fillMap->clear();
77 
78  iconf->setConnection(m_env, m_conn);
79  int iconfID = iconf->fetchID();
80  if (!iconfID) {
81  throw(std::runtime_error("FEConfigFgrGroupDat::fetchData: ICONF not in DB"));
82  return;
83  }
84 
85  try {
86  m_readStmt->setSQL(
87  "SELECT d.group_id, d.threshold_low, d.threshold_high, d.ratio_low, d.ratio_high, d.lut_value "
88  "FROM fe_fgr_per_group_dat d "
89  "WHERE fgr_conf_id = :fgr_conf_id order by d.group_id ");
90  m_readStmt->setInt(1, iconfID);
91  ResultSet* rset = m_readStmt->executeQuery();
92 
93  std::pair<EcalLogicID, FEConfigFgrGroupDat> p;
95  int ig = -1;
96  while (rset->next()) {
97  ig++; // we create a dummy logic_id
98  p.first = EcalLogicID("Group_id", // name
99  ig); // logic_id
100 
101  dat.setFgrGroupId(rset->getInt(1));
102  dat.setThreshLow(rset->getFloat(2));
103  dat.setThreshHigh(rset->getFloat(3));
104  dat.setRatioLow(rset->getFloat(4));
105  dat.setRatioHigh(rset->getFloat(5));
106  dat.setLUTValue(rset->getInt(6));
107 
108  p.second = dat;
109  fillMap->insert(p);
110  }
111  } catch (SQLException& e) {
112  throw(std::runtime_error("FEConfigFgrGroupDat::fetchData: " + e.getMessage()));
113  }
114 }
int fetchID() noexcept(false)
oracle::occi::Environment * m_env
Definition: IDBObject.h:33
oracle::occi::Connection * m_conn
Definition: IDBObject.h:34
void setThreshLow(float x)
void checkConnection() const noexcept(false)
Definition: IDBObject.h:36
void setRatioHigh(float x)
void setThreshHigh(float x)
oracle::occi::Statement * m_readStmt
Definition: IDataItem.h:24
void setConnection(oracle::occi::Environment *env, oracle::occi::Connection *conn)
Definition: IDBObject.h:23

◆ getFgrGroupId()

int FEConfigFgrGroupDat::getFgrGroupId ( ) const
inline

◆ getLUTValue()

int FEConfigFgrGroupDat::getLUTValue ( ) const
inline

Definition at line 32 of file FEConfigFgrGroupDat.h.

References m_lut.

Referenced by popcon::EcalTPGFineGrainEBIdMapHandler::getNewObjects(), and writeArrayDB().

32 { return m_lut; }

◆ getRatioHigh()

float FEConfigFgrGroupDat::getRatioHigh ( ) const
inline

◆ getRatioLow()

float FEConfigFgrGroupDat::getRatioLow ( ) const
inline

◆ getTable()

std::string FEConfigFgrGroupDat::getTable ( )
inlineoverridevirtual

Implements IDataItem.

Definition at line 18 of file FEConfigFgrGroupDat.h.

18 { return "FE_CONFIG_FGR_PER_GROUP_DAT"; }

◆ getThreshHigh()

float FEConfigFgrGroupDat::getThreshHigh ( ) const
inline

◆ getThreshLow()

float FEConfigFgrGroupDat::getThreshLow ( ) const
inline

◆ prepareWrite()

void FEConfigFgrGroupDat::prepareWrite ( )
overrideprivatevirtualnoexcept

Implements IDataItem.

Definition at line 27 of file FEConfigFgrGroupDat.cc.

References MillePedeFileConverter_cfg::e.

27  {
28  this->checkConnection();
29 
30  try {
31  m_writeStmt = m_conn->createStatement();
32  m_writeStmt->setSQL(
33  "INSERT INTO fe_fgr_per_group_dat (fgr_conf_id, group_id, "
34  " threshold_low, threshold_high, ratio_low, ratio_high, lut_value ) "
35  "VALUES (:fgr_conf_id, :group_id, "
36  ":3, :4, :5, :6, :7 )");
37  } catch (SQLException& e) {
38  throw(std::runtime_error("FEConfigFgrGroupDat::prepareWrite(): " + e.getMessage()));
39  }
40 }
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

◆ setFgrGroupId()

void FEConfigFgrGroupDat::setFgrGroupId ( int  x)
inline

Definition at line 20 of file FEConfigFgrGroupDat.h.

References m_group_id, and x.

Referenced by EcalTPGParamBuilder::analyze(), and fetchData().

◆ setLUTValue()

void FEConfigFgrGroupDat::setLUTValue ( int  x)
inline

Definition at line 31 of file FEConfigFgrGroupDat.h.

References m_lut, and x.

Referenced by EcalTPGParamBuilder::analyze(), and fetchData().

◆ setRatioHigh()

void FEConfigFgrGroupDat::setRatioHigh ( float  x)
inline

Definition at line 29 of file FEConfigFgrGroupDat.h.

References m_ratio_high, and x.

Referenced by EcalTPGParamBuilder::analyze(), and fetchData().

◆ setRatioLow()

void FEConfigFgrGroupDat::setRatioLow ( float  x)
inline

Definition at line 27 of file FEConfigFgrGroupDat.h.

References m_ratio_low, and x.

Referenced by EcalTPGParamBuilder::analyze(), and fetchData().

◆ setThreshHigh()

void FEConfigFgrGroupDat::setThreshHigh ( float  x)
inline

Definition at line 25 of file FEConfigFgrGroupDat.h.

References m_thresh_high, and x.

Referenced by EcalTPGParamBuilder::analyze(), and fetchData().

◆ setThreshLow()

void FEConfigFgrGroupDat::setThreshLow ( float  x)
inline

Definition at line 23 of file FEConfigFgrGroupDat.h.

References m_thresh_low, and x.

Referenced by EcalTPGParamBuilder::analyze(), and fetchData().

◆ writeArrayDB()

void FEConfigFgrGroupDat::writeArrayDB ( const std::map< EcalLogicID, FEConfigFgrGroupDat > *  data,
FEConfigFgrInfo iconf 
)
privatenoexcept

Definition at line 116 of file FEConfigFgrGroupDat.cc.

References submitPVResolutionJobs::count, data, MillePedeFileConverter_cfg::e, getFgrGroupId(), getLUTValue(), getRatioHigh(), getRatioLow(), getThreshHigh(), getThreshLow(), AlCaHLTBitMon_ParallelJobs::p, alignCSCRings::r, findQualityFiles::rr, alignCSCRings::s, contentValuesCheck::ss, submitPVValidationJobs::t, groupFilesInBlocks::tt, x, geometryCSVtoXML::xx, y, geometryCSVtoXML::yy, z, and geometryCSVtoXML::zz.

117  {
118  this->checkConnection();
119  this->checkPrepare();
120 
121  int iconfID = iconf->fetchID();
122  if (!iconfID) {
123  throw(std::runtime_error("FEConfigFgrGroupDat::writeArrayDB: ICONF not in DB"));
124  }
125 
126  int nrows = data->size();
127  int* ids = new int[nrows];
128  int* iconfid_vec = new int[nrows];
129  int* xx = new int[nrows];
130  float* yy = new float[nrows];
131  float* zz = new float[nrows];
132  float* rr = new float[nrows];
133  float* ss = new float[nrows];
134  int* tt = new int[nrows];
135 
136  ub2* ids_len = new ub2[nrows];
137  ub2* iconf_len = new ub2[nrows];
138  ub2* x_len = new ub2[nrows];
139  ub2* y_len = new ub2[nrows];
140  ub2* z_len = new ub2[nrows];
141  ub2* r_len = new ub2[nrows];
142  ub2* s_len = new ub2[nrows];
143  ub2* t_len = new ub2[nrows];
144 
145  // const EcalLogicID* channel;
146  const FEConfigFgrGroupDat* dataitem;
147  int count = 0;
148  typedef map<EcalLogicID, FEConfigFgrGroupDat>::const_iterator CI;
149  for (CI p = data->begin(); p != data->end(); ++p) {
150  //channel = &(p->first);
151  // int logicID = channel->getLogicID();
152  // if (!logicID) { throw(std::runtime_error("FEConfigFgrGroupDat::writeArrayDB: Bad EcalLogicID")); }
153  // ids[count]=logicID;
154  iconfid_vec[count] = iconfID;
155 
156  dataitem = &(p->second);
157  // dataIface.writeDB( channel, dataitem, iconf);
158  int x = dataitem->getFgrGroupId();
159  float y = dataitem->getThreshLow();
160  float z = dataitem->getThreshHigh();
161  float r = dataitem->getRatioLow();
162  float s = dataitem->getRatioHigh();
163  int t = dataitem->getLUTValue();
164 
165  xx[count] = x;
166  yy[count] = y;
167  zz[count] = z;
168  rr[count] = r;
169  ss[count] = s;
170  tt[count] = t;
171 
172  // ids_len[count]=sizeof(ids[count]);
173  iconf_len[count] = sizeof(iconfid_vec[count]);
174 
175  x_len[count] = sizeof(xx[count]);
176  y_len[count] = sizeof(yy[count]);
177  z_len[count] = sizeof(zz[count]);
178  r_len[count] = sizeof(rr[count]);
179  s_len[count] = sizeof(ss[count]);
180  t_len[count] = sizeof(tt[count]);
181 
182  count++;
183  }
184 
185  try {
186  m_writeStmt->setDataBuffer(1, (dvoid*)iconfid_vec, OCCIINT, sizeof(iconfid_vec[0]), iconf_len);
187  m_writeStmt->setDataBuffer(2, (dvoid*)xx, OCCIINT, sizeof(xx[0]), x_len);
188  m_writeStmt->setDataBuffer(3, (dvoid*)yy, OCCIFLOAT, sizeof(yy[0]), y_len);
189  m_writeStmt->setDataBuffer(4, (dvoid*)zz, OCCIFLOAT, sizeof(zz[0]), z_len);
190  m_writeStmt->setDataBuffer(5, (dvoid*)rr, OCCIFLOAT, sizeof(rr[0]), r_len);
191  m_writeStmt->setDataBuffer(6, (dvoid*)ss, OCCIFLOAT, sizeof(ss[0]), s_len);
192  m_writeStmt->setDataBuffer(7, (dvoid*)tt, OCCIINT, sizeof(tt[0]), t_len);
193 
194  m_writeStmt->executeArrayUpdate(nrows);
195 
196  delete[] ids;
197  delete[] iconfid_vec;
198  delete[] xx;
199  delete[] yy;
200  delete[] zz;
201  delete[] rr;
202  delete[] ss;
203  delete[] tt;
204 
205  delete[] ids_len;
206  delete[] iconf_len;
207  delete[] x_len;
208  delete[] y_len;
209  delete[] z_len;
210  delete[] r_len;
211  delete[] s_len;
212  delete[] t_len;
213 
214  } catch (SQLException& e) {
215  throw(std::runtime_error("FEConfigFgrGroupDat::writeArrayDB(): " + e.getMessage()));
216  }
217 }
int fetchID() noexcept(false)
oracle::occi::Statement * m_writeStmt
Definition: IDataItem.h:23
float getRatioHigh() const
void checkConnection() const noexcept(false)
Definition: IDBObject.h:36
void checkPrepare() noexcept(false)
Definition: IDataItem.h:26
float getThreshHigh() const
float getThreshLow() const
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:79

◆ writeDB()

void FEConfigFgrGroupDat::writeDB ( const EcalLogicID ecid,
const FEConfigFgrGroupDat item,
FEConfigFgrInfo iconf 
)
privatenoexcept

Definition at line 42 of file FEConfigFgrGroupDat.cc.

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

44  {
45  this->checkConnection();
46  this->checkPrepare();
47 
48  int iconfID = iconf->fetchID();
49  if (!iconfID) {
50  throw(std::runtime_error("FEConfigFgrGroupDat::writeDB: ICONF not in DB"));
51  }
52  /* no need for the logic id in this table
53  int logicID = ecid->getLogicID();
54  if (!logicID) { throw(std::runtime_error("FEConfigFgrGroupDat::writeDB: Bad EcalLogicID")); }
55  */
56 
57  try {
58  m_writeStmt->setInt(1, iconfID);
59 
60  m_writeStmt->setInt(2, item->getFgrGroupId());
61  m_writeStmt->setFloat(3, item->getThreshLow());
62  m_writeStmt->setFloat(4, item->getThreshHigh());
63  m_writeStmt->setFloat(5, item->getRatioLow());
64  m_writeStmt->setFloat(6, item->getRatioHigh());
65  m_writeStmt->setInt(7, item->getLUTValue());
66 
67  m_writeStmt->executeUpdate();
68  } catch (SQLException& e) {
69  throw(std::runtime_error("FEConfigFgrGroupDat::writeDB(): " + e.getMessage()));
70  }
71 }
int fetchID() noexcept(false)
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

Friends And Related Function Documentation

◆ EcalCondDBInterface

friend class EcalCondDBInterface
friend

Definition at line 13 of file FEConfigFgrGroupDat.h.

Member Data Documentation

◆ m_group_id

int FEConfigFgrGroupDat::m_group_id
private

Definition at line 44 of file FEConfigFgrGroupDat.h.

Referenced by getFgrGroupId(), and setFgrGroupId().

◆ m_lut

int FEConfigFgrGroupDat::m_lut
private

Definition at line 49 of file FEConfigFgrGroupDat.h.

Referenced by getLUTValue(), and setLUTValue().

◆ m_ratio_high

float FEConfigFgrGroupDat::m_ratio_high
private

Definition at line 48 of file FEConfigFgrGroupDat.h.

Referenced by getRatioHigh(), and setRatioHigh().

◆ m_ratio_low

float FEConfigFgrGroupDat::m_ratio_low
private

Definition at line 47 of file FEConfigFgrGroupDat.h.

Referenced by getRatioLow(), and setRatioLow().

◆ m_thresh_high

float FEConfigFgrGroupDat::m_thresh_high
private

Definition at line 46 of file FEConfigFgrGroupDat.h.

Referenced by getThreshHigh(), and setThreshHigh().

◆ m_thresh_low

float FEConfigFgrGroupDat::m_thresh_low
private

Definition at line 45 of file FEConfigFgrGroupDat.h.

Referenced by getThreshLow(), and setThreshLow().