CMS 3D CMS Logo

LMFLaserBlueNormDat Class Reference

#include <OnlineDB/EcalCondDB/interface/LMFLaserBlueNormDat.h>

Inheritance diagram for LMFLaserBlueNormDat:

IDataItem IDBObject

List of all members.

Public Member Functions

float getAPDOverPNAMean () const
float getAPDOverPNARMS () const
float getAPDOverPNBMean () const
float getAPDOverPNBRMS () const
float getAPDOverPNMean () const
float getAPDOverPNRMS () const
std::string getTable ()
 LMFLaserBlueNormDat ()
void setAPDOverPNAMean (float mean)
void setAPDOverPNARMS (float RMS)
void setAPDOverPNBMean (float mean)
void setAPDOverPNBRMS (float RMS)
void setAPDOverPNMean (float mean)
void setAPDOverPNRMS (float RMS)
 ~LMFLaserBlueNormDat ()

Private Member Functions

void fetchData (std::map< EcalLogicID, LMFLaserBlueNormDat > *fillVec, LMFRunIOV *iov) throw (std::runtime_error)
void prepareWrite () throw (std::runtime_error)
void writeArrayDB (const std::map< EcalLogicID, LMFLaserBlueNormDat > *data, LMFRunIOV *iov) throw (std::runtime_error)
void writeDB (const EcalLogicID *ecid, const LMFLaserBlueNormDat *item, LMFRunIOV *iov) throw (std::runtime_error)

Private Attributes

float m_apdOverPNAMean
float m_apdOverPNARMS
float m_apdOverPNBMean
float m_apdOverPNBRMS
float m_apdOverPNMean
float m_apdOverPNRMS

Friends

class EcalCondDBInterface


Detailed Description

Definition at line 12 of file LMFLaserBlueNormDat.h.


Constructor & Destructor Documentation

LMFLaserBlueNormDat::LMFLaserBlueNormDat (  ) 

Definition at line 13 of file LMFLaserBlueNormDat.cc.

References m_apdOverPNAMean, m_apdOverPNARMS, m_apdOverPNBMean, m_apdOverPNMean, m_apdOverPNRMS, IDBObject::m_conn, IDBObject::m_env, IDataItem::m_readStmt, IDataItem::m_writeStmt, and NULL.

00014 {
00015   m_env = NULL;
00016   m_conn = NULL;
00017   m_writeStmt = NULL;
00018   m_readStmt = NULL;
00019 
00020   m_apdOverPNAMean = 0;
00021   m_apdOverPNARMS = 0;
00022   m_apdOverPNBMean = 0;
00023   m_apdOverPNMean = 0;
00024   m_apdOverPNRMS = 0;
00025 }

LMFLaserBlueNormDat::~LMFLaserBlueNormDat (  ) 

Definition at line 29 of file LMFLaserBlueNormDat.cc.

00030 {
00031 }


Member Function Documentation

void LMFLaserBlueNormDat::fetchData ( std::map< EcalLogicID, LMFLaserBlueNormDat > *  fillVec,
LMFRunIOV iov 
) throw (std::runtime_error) [private]

Definition at line 195 of file LMFLaserBlueNormDat.cc.

References IDBObject::checkConnection(), e, IDBObject::m_conn, IDBObject::m_env, IDataItem::m_readStmt, p, setAPDOverPNAMean(), setAPDOverPNARMS(), setAPDOverPNBMean(), setAPDOverPNBRMS(), setAPDOverPNMean(), and setAPDOverPNRMS().

00197 {
00198   this->checkConnection();
00199   fillMap->clear();
00200 
00201   iov->setConnection(m_env, m_conn);
00202   int iovID = iov->fetchID();
00203   if (!iovID) { 
00204     //  throw(runtime_error("LMFLaserBlueNormDat::writeDB:  IOV not in DB")); 
00205     return;
00206   }
00207 
00208   try {
00209   
00210     m_readStmt->setSQL("SELECT cv.name, cv.logic_id, cv.id1, cv.id2, cv.id3, cv.maps_to, "
00211                  "d.apd_over_pnA_mean, d.apd_over_pnA_rms, d.apd_over_pnB_mean, d.apd_over_pnB_rms, d.apd_over_pn_mean, d.apd_over_pn_rms "
00212                  "FROM channelview cv JOIN lmf_laser_blue_norm_dat d "
00213                  "ON cv.logic_id = d.logic_id AND cv.name = cv.maps_to "
00214                  "WHERE d.iov_id = :iov_id");
00215  
00216     m_readStmt->setInt(1, iovID);
00217     
00218     ResultSet* rset = m_readStmt->executeQuery();
00219      
00220     std::pair< EcalLogicID, LMFLaserBlueNormDat > p;
00221     LMFLaserBlueNormDat dat;
00222     while(rset->next()) {
00223       p.first = EcalLogicID( rset->getString(1),     // name
00224                              rset->getInt(2),        // logic_id
00225                              rset->getInt(3),        // id1
00226                              rset->getInt(4),        // id2
00227                              rset->getInt(5),        // id3
00228                              rset->getString(6));    // maps_to
00229 
00230       dat.setAPDOverPNAMean( rset->getFloat(7) );
00231       dat.setAPDOverPNARMS( rset->getFloat(8) );
00232       dat.setAPDOverPNBMean( rset->getFloat(9) );
00233       dat.setAPDOverPNBRMS( rset->getFloat(10) );
00234       dat.setAPDOverPNMean( rset->getFloat(11) );
00235       dat.setAPDOverPNRMS( rset->getFloat(12) );
00236 
00237 
00238       p.second = dat;
00239       fillMap->insert(p);
00240     }
00241 
00242   } catch (SQLException &e) {
00243     throw(runtime_error("LMFLaserBlueNormDat::fetchData():  "+e.getMessage()));
00244   }
00245 }

float LMFLaserBlueNormDat::getAPDOverPNAMean (  )  const [inline]

Definition at line 22 of file LMFLaserBlueNormDat.h.

References m_apdOverPNAMean.

Referenced by writeArrayDB().

00022 { return m_apdOverPNAMean; }

float LMFLaserBlueNormDat::getAPDOverPNARMS (  )  const [inline]

Definition at line 25 of file LMFLaserBlueNormDat.h.

References m_apdOverPNARMS.

Referenced by writeArrayDB().

00025 { return m_apdOverPNARMS; }

float LMFLaserBlueNormDat::getAPDOverPNBMean (  )  const [inline]

Definition at line 28 of file LMFLaserBlueNormDat.h.

References m_apdOverPNBMean.

Referenced by writeArrayDB().

00028 { return m_apdOverPNBMean; }

float LMFLaserBlueNormDat::getAPDOverPNBRMS (  )  const [inline]

Definition at line 31 of file LMFLaserBlueNormDat.h.

References m_apdOverPNBRMS.

Referenced by writeArrayDB().

00031 { return m_apdOverPNBRMS; }

float LMFLaserBlueNormDat::getAPDOverPNMean (  )  const [inline]

Definition at line 34 of file LMFLaserBlueNormDat.h.

References m_apdOverPNMean.

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

00034 { return m_apdOverPNMean; }

float LMFLaserBlueNormDat::getAPDOverPNRMS (  )  const [inline]

Definition at line 37 of file LMFLaserBlueNormDat.h.

References m_apdOverPNRMS.

Referenced by writeArrayDB().

00037 { return m_apdOverPNRMS; }

std::string LMFLaserBlueNormDat::getTable (  )  [inline, virtual]

Implements IDataItem.

Definition at line 19 of file LMFLaserBlueNormDat.h.

00019 { return "LMF_LASER_BLUE_NORM_DAT"; }

void LMFLaserBlueNormDat::prepareWrite (  )  throw (std::runtime_error) [private, virtual]

Implements IDataItem.

Definition at line 35 of file LMFLaserBlueNormDat.cc.

References IDBObject::checkConnection(), e, IDBObject::m_conn, and IDataItem::m_writeStmt.

00037 {
00038   this->checkConnection();
00039 
00040   try {
00041     m_writeStmt = m_conn->createStatement();
00042     m_writeStmt->setSQL("INSERT INTO lmf_laser_blue_norm_dat (iov_id, logic_id, "
00043                         "apd_over_pnA_mean, apd_over_pnA_rms, apd_over_pnB_mean, apd_over_pnB_rms, apd_over_pn_mean, apd_over_pn_rms) "
00044                         "VALUES (:iov_id, :logic_id, "
00045                         ":3, :4, :5, :6, :7, :8)");
00046   } catch (SQLException &e) {
00047     throw(runtime_error("LMFLaserBlueNormDat::prepareWrite():  "+e.getMessage()));
00048   }
00049 }

void LMFLaserBlueNormDat::setAPDOverPNAMean ( float  mean  )  [inline]

Definition at line 21 of file LMFLaserBlueNormDat.h.

References m_apdOverPNAMean.

Referenced by fetchData().

00021 { m_apdOverPNAMean = mean; }

void LMFLaserBlueNormDat::setAPDOverPNARMS ( float  RMS  )  [inline]

Definition at line 24 of file LMFLaserBlueNormDat.h.

References m_apdOverPNARMS.

Referenced by fetchData().

00024 { m_apdOverPNARMS = RMS; }

void LMFLaserBlueNormDat::setAPDOverPNBMean ( float  mean  )  [inline]

Definition at line 27 of file LMFLaserBlueNormDat.h.

References m_apdOverPNBMean.

Referenced by fetchData().

00027 { m_apdOverPNBMean = mean; }

void LMFLaserBlueNormDat::setAPDOverPNBRMS ( float  RMS  )  [inline]

Definition at line 30 of file LMFLaserBlueNormDat.h.

References m_apdOverPNBRMS.

Referenced by fetchData().

00030 { m_apdOverPNBRMS = RMS; }

void LMFLaserBlueNormDat::setAPDOverPNMean ( float  mean  )  [inline]

Definition at line 33 of file LMFLaserBlueNormDat.h.

References m_apdOverPNMean.

Referenced by fetchData().

00033 { m_apdOverPNMean = mean; }

void LMFLaserBlueNormDat::setAPDOverPNRMS ( float  RMS  )  [inline]

Definition at line 36 of file LMFLaserBlueNormDat.h.

References m_apdOverPNRMS.

Referenced by fetchData().

00036 { m_apdOverPNRMS = RMS; }

void LMFLaserBlueNormDat::writeArrayDB ( const std::map< EcalLogicID, LMFLaserBlueNormDat > *  data,
LMFRunIOV iov 
) throw (std::runtime_error) [private]

Definition at line 84 of file LMFLaserBlueNormDat.cc.

References IDBObject::checkConnection(), IDataItem::checkPrepare(), count, data, e, getAPDOverPNAMean(), getAPDOverPNARMS(), getAPDOverPNBMean(), getAPDOverPNBRMS(), getAPDOverPNMean(), getAPDOverPNRMS(), EcalLogicID::getLogicID(), IDataItem::m_writeStmt, p, t, tt, w, ww, x, y, and z.

00086 {
00087   this->checkConnection();
00088   this->checkPrepare();
00089 
00090   int iovID = iov->fetchID();
00091   if (!iovID) { throw(runtime_error("LMFLaserBlueNormDat::writeArrayDB:  IOV not in DB")); }
00092 
00093 
00094   int nrows=data->size(); 
00095   int* ids= new int[nrows];
00096   int* iovid_vec= new int[nrows];
00097   float* xx= new float[nrows];
00098   float* yy= new float[nrows];
00099   float* zz= new float[nrows];
00100   float* ww= new float[nrows];
00101   float* uu= new float[nrows];
00102   float* tt= new float[nrows];
00103 
00104   ub2* ids_len= new ub2[nrows];
00105   ub2* iov_len= new ub2[nrows];
00106   ub2* x_len= new ub2[nrows];
00107   ub2* y_len= new ub2[nrows];
00108   ub2* z_len= new ub2[nrows];
00109   ub2* w_len= new ub2[nrows];
00110   ub2* u_len= new ub2[nrows];
00111   ub2* t_len= new ub2[nrows];
00112 
00113   const EcalLogicID* channel;
00114   const LMFLaserBlueNormDat* dataitem;
00115   int count=0;
00116   typedef map< EcalLogicID, LMFLaserBlueNormDat >::const_iterator CI;
00117   for (CI p = data->begin(); p != data->end(); ++p) {
00118         channel = &(p->first);
00119         int logicID = channel->getLogicID();
00120         if (!logicID) { throw(runtime_error("LMFLaserBlueNormDat::writeArrayDB:  Bad EcalLogicID")); }
00121         ids[count]=logicID;
00122         iovid_vec[count]=iovID;
00123 
00124         dataitem = &(p->second);
00125         // dataIface.writeDB( channel, dataitem, iov);
00126         float x=dataitem->getAPDOverPNAMean();
00127         float y=dataitem->getAPDOverPNARMS();
00128         float z=dataitem->getAPDOverPNBMean();
00129         float w=dataitem->getAPDOverPNBRMS();
00130         float u=dataitem->getAPDOverPNMean();
00131         float t=dataitem->getAPDOverPNRMS();
00132 
00133 
00134 
00135         xx[count]=x;
00136         yy[count]=y;
00137         zz[count]=z;
00138         ww[count]=w;
00139         uu[count]=u;
00140         tt[count]=t;
00141 
00142 
00143         ids_len[count]=sizeof(ids[count]);
00144         iov_len[count]=sizeof(iovid_vec[count]);
00145         
00146         x_len[count]=sizeof(xx[count]);
00147         y_len[count]=sizeof(yy[count]);
00148         z_len[count]=sizeof(zz[count]);
00149         w_len[count]=sizeof(ww[count]);
00150         u_len[count]=sizeof(uu[count]);
00151         t_len[count]=sizeof(tt[count]);
00152 
00153         count++;
00154      }
00155 
00156 
00157   try {
00158     m_writeStmt->setDataBuffer(1, (dvoid*)iovid_vec, OCCIINT, sizeof(iovid_vec[0]),iov_len);
00159     m_writeStmt->setDataBuffer(2, (dvoid*)ids, OCCIINT, sizeof(ids[0]), ids_len );
00160     m_writeStmt->setDataBuffer(3, (dvoid*)xx, OCCIFLOAT , sizeof(xx[0]), x_len );
00161     m_writeStmt->setDataBuffer(4, (dvoid*)yy, OCCIFLOAT , sizeof(yy[0]), y_len );
00162     m_writeStmt->setDataBuffer(5, (dvoid*)zz, OCCIFLOAT , sizeof(zz[0]), z_len );
00163     m_writeStmt->setDataBuffer(6, (dvoid*)ww, OCCIFLOAT , sizeof(ww[0]), w_len );
00164     m_writeStmt->setDataBuffer(7, (dvoid*)uu, OCCIFLOAT , sizeof(uu[0]), u_len );
00165     m_writeStmt->setDataBuffer(8, (dvoid*)tt, OCCIFLOAT , sizeof(tt[0]), t_len );
00166 
00167 
00168     m_writeStmt->executeArrayUpdate(nrows);
00169 
00170     delete [] ids;
00171     delete [] iovid_vec;
00172     delete [] xx;
00173     delete [] yy;
00174     delete [] zz;
00175     delete [] ww;
00176     delete [] uu;
00177     delete [] tt;
00178 
00179     delete [] ids_len;
00180     delete [] iov_len;
00181     delete [] x_len;
00182     delete [] y_len;
00183     delete [] z_len;
00184     delete [] w_len;
00185     delete [] u_len;
00186     delete [] t_len;
00187 
00188 
00189 
00190   } catch (SQLException &e) {
00191     throw(runtime_error("LMFLaserBlueNormDat::writeArrayDB():  "+e.getMessage()));
00192   }
00193 }

void LMFLaserBlueNormDat::writeDB ( const EcalLogicID ecid,
const LMFLaserBlueNormDat item,
LMFRunIOV iov 
) throw (std::runtime_error) [private]

Definition at line 53 of file LMFLaserBlueNormDat.cc.

References IDBObject::checkConnection(), IDataItem::checkPrepare(), e, and IDataItem::m_writeStmt.

00055 {
00056   this->checkConnection();
00057   this->checkPrepare();
00058 
00059   int iovID = iov->fetchID();
00060   if (!iovID) { throw(runtime_error("LMFLaserBlueNormDat::writeDB:  IOV not in DB")); }
00061 
00062   int logicID = ecid->getLogicID();
00063   if (!logicID) { throw(runtime_error("LMFLaserBlueNormDat::writeDB:  Bad EcalLogicID")); }
00064   
00065   try {
00066     m_writeStmt->setInt(1, iovID);
00067     m_writeStmt->setInt(2, logicID);
00068 
00069     m_writeStmt->setFloat(3, item->getAPDOverPNAMean() );
00070     m_writeStmt->setFloat(4, item->getAPDOverPNARMS() );
00071     m_writeStmt->setFloat(5, item->getAPDOverPNBMean() );
00072     m_writeStmt->setFloat(6, item->getAPDOverPNBRMS() );
00073     m_writeStmt->setFloat(7, item->getAPDOverPNMean() );
00074     m_writeStmt->setFloat(8, item->getAPDOverPNRMS() );
00075 
00076 
00077     m_writeStmt->executeUpdate();
00078   } catch (SQLException &e) {
00079     throw(runtime_error("LMFLaserBlueNormDat::writeDB():  "+e.getMessage()));
00080   }
00081 }


Friends And Related Function Documentation

friend class EcalCondDBInterface [friend]

Reimplemented from IDBObject.

Definition at line 14 of file LMFLaserBlueNormDat.h.


Member Data Documentation

float LMFLaserBlueNormDat::m_apdOverPNAMean [private]

Definition at line 55 of file LMFLaserBlueNormDat.h.

Referenced by getAPDOverPNAMean(), LMFLaserBlueNormDat(), and setAPDOverPNAMean().

float LMFLaserBlueNormDat::m_apdOverPNARMS [private]

Definition at line 56 of file LMFLaserBlueNormDat.h.

Referenced by getAPDOverPNARMS(), LMFLaserBlueNormDat(), and setAPDOverPNARMS().

float LMFLaserBlueNormDat::m_apdOverPNBMean [private]

Definition at line 57 of file LMFLaserBlueNormDat.h.

Referenced by getAPDOverPNBMean(), LMFLaserBlueNormDat(), and setAPDOverPNBMean().

float LMFLaserBlueNormDat::m_apdOverPNBRMS [private]

Definition at line 58 of file LMFLaserBlueNormDat.h.

Referenced by getAPDOverPNBRMS(), and setAPDOverPNBRMS().

float LMFLaserBlueNormDat::m_apdOverPNMean [private]

Definition at line 59 of file LMFLaserBlueNormDat.h.

Referenced by getAPDOverPNMean(), LMFLaserBlueNormDat(), and setAPDOverPNMean().

float LMFLaserBlueNormDat::m_apdOverPNRMS [private]

Definition at line 60 of file LMFLaserBlueNormDat.h.

Referenced by getAPDOverPNRMS(), LMFLaserBlueNormDat(), and setAPDOverPNRMS().


The documentation for this class was generated from the following files:
Generated on Tue Jun 9 18:27:46 2009 for CMSSW by  doxygen 1.5.4