CMS 3D CMS Logo

Public Member Functions | Private Member Functions | Private Attributes | Friends

MonPNMGPADat Class Reference

#include <MonPNMGPADat.h>

Inheritance diagram for MonPNMGPADat:
IDataItem IDBObject

List of all members.

Public Member Functions

float getADCMeanG1 () const
float getADCMeanG16 () const
float getADCRMSG1 () const
float getADCRMSG16 () const
float getPedMeanG1 () const
float getPedMeanG16 () const
float getPedRMSG1 () const
float getPedRMSG16 () const
std::string getTable ()
bool getTaskStatus () const
 MonPNMGPADat ()
void setADCMeanG1 (float mean)
void setADCMeanG16 (float mean)
void setADCRMSG1 (float mean)
void setADCRMSG16 (float mean)
void setPedMeanG1 (float mean)
void setPedMeanG16 (float mean)
void setPedRMSG1 (float mean)
void setPedRMSG16 (float mean)
void setTaskStatus (bool status)
 ~MonPNMGPADat ()

Private Member Functions

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

Private Attributes

float m_adcMeanG1
float m_adcMeanG16
float m_adcRMSG1
float m_adcRMSG16
float m_pedMeanG1
float m_pedMeanG16
float m_pedRMSG1
float m_pedRMSG16
bool m_taskStatus

Friends

class EcalCondDBInterface

Detailed Description

Definition at line 12 of file MonPNMGPADat.h.


Constructor & Destructor Documentation

MonPNMGPADat::MonPNMGPADat ( )

Definition at line 12 of file MonPNMGPADat.cc.

References NULL.

MonPNMGPADat::~MonPNMGPADat ( )

Definition at line 32 of file MonPNMGPADat.cc.

{
}

Member Function Documentation

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

Definition at line 90 of file MonPNMGPADat.cc.

References ExpressReco_HICollisions_FallBack::e, edm::pset::fillMap(), o2o::iov, L1TEmulatorMonitor_cff::p, setADCMeanG1(), setADCMeanG16(), setADCRMSG1(), setADCRMSG16(), setPedMeanG1(), setPedMeanG16(), setPedRMSG1(), setPedRMSG16(), and setTaskStatus().

{
  this->checkConnection();
  fillMap->clear();

  iov->setConnection(m_env, m_conn);
  int iovID = iov->fetchID();
  if (!iovID) { 
    //  throw(std::runtime_error("MonPNMGPADat::writeDB:  IOV not in DB")); 
    return;
  }

  try {

    m_readStmt->setSQL("SELECT cv.name, cv.logic_id, cv.id1, cv.id2, cv.id3, cv.maps_to, "
                 "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 "
                 "FROM channelview cv JOIN mon_pn_mgpa_dat d "
                 "ON cv.logic_id = d.logic_id AND cv.name = cv.maps_to "
                 "WHERE d.iov_id = :iov_id");
    m_readStmt->setInt(1, iovID);
    ResultSet* rset = m_readStmt->executeQuery();
    
    std::pair< EcalLogicID, MonPNMGPADat > p;
    MonPNMGPADat dat;
    while(rset->next()) {
      p.first = EcalLogicID( rset->getString(1),     // name
                             rset->getInt(2),        // logic_id
                             rset->getInt(3),        // id1
                             rset->getInt(4),        // id2
                             rset->getInt(5),        // id3
                             rset->getString(6));    // maps_to

      dat.setADCMeanG1( rset->getFloat(7) );
      dat.setADCRMSG1( rset->getFloat(8) );
      dat.setADCMeanG16( rset->getFloat(9) );
      dat.setADCRMSG16( rset->getFloat(10) );
      dat.setPedMeanG1( rset->getFloat(11) );
      dat.setPedRMSG1( rset->getFloat(12) );
      dat.setPedMeanG16( rset->getFloat(13) );
      dat.setPedRMSG16( rset->getFloat(14) );
      dat.setTaskStatus( rset->getInt(15) );
      p.second = dat;
      fillMap->insert(p);
    }
  } catch (SQLException &e) {
    throw(std::runtime_error("MonPNMGPADat::fetchData():  "+e.getMessage()));
  }
}
float MonPNMGPADat::getADCMeanG1 ( ) const [inline]

Definition at line 22 of file MonPNMGPADat.h.

References m_adcMeanG1.

Referenced by writeArrayDB().

{ return m_adcMeanG1; }
float MonPNMGPADat::getADCMeanG16 ( ) const [inline]

Definition at line 28 of file MonPNMGPADat.h.

References m_adcMeanG16.

Referenced by writeArrayDB().

{ return m_adcMeanG16; }
float MonPNMGPADat::getADCRMSG1 ( ) const [inline]

Definition at line 25 of file MonPNMGPADat.h.

References m_adcRMSG1.

Referenced by writeArrayDB().

{ return m_adcRMSG1; }
float MonPNMGPADat::getADCRMSG16 ( ) const [inline]

Definition at line 31 of file MonPNMGPADat.h.

References m_adcRMSG16.

Referenced by writeArrayDB().

{ return m_adcRMSG16; }
float MonPNMGPADat::getPedMeanG1 ( ) const [inline]

Definition at line 34 of file MonPNMGPADat.h.

References m_pedMeanG1.

Referenced by writeArrayDB().

{ return m_pedMeanG1; }
float MonPNMGPADat::getPedMeanG16 ( ) const [inline]

Definition at line 40 of file MonPNMGPADat.h.

References m_pedMeanG16.

Referenced by writeArrayDB().

{ return m_pedMeanG16; }
float MonPNMGPADat::getPedRMSG1 ( ) const [inline]

Definition at line 37 of file MonPNMGPADat.h.

References m_pedRMSG1.

Referenced by writeArrayDB().

{ return m_pedRMSG1; }
float MonPNMGPADat::getPedRMSG16 ( ) const [inline]

Definition at line 43 of file MonPNMGPADat.h.

References m_pedRMSG16.

Referenced by writeArrayDB().

{ return m_pedRMSG16; }
std::string MonPNMGPADat::getTable ( ) [inline, virtual]

Implements IDataItem.

Definition at line 19 of file MonPNMGPADat.h.

{ return "MON_PN_MGPA_DAT"; }
bool MonPNMGPADat::getTaskStatus ( ) const [inline]

Definition at line 46 of file MonPNMGPADat.h.

References m_taskStatus.

Referenced by writeArrayDB().

{ return m_taskStatus; }
void MonPNMGPADat::prepareWrite ( ) throw (std::runtime_error) [private, virtual]

Implements IDataItem.

Definition at line 38 of file MonPNMGPADat.cc.

References ExpressReco_HICollisions_FallBack::e.

{
  this->checkConnection();

  try {
    m_writeStmt = m_conn->createStatement();
    m_writeStmt->setSQL("INSERT INTO mon_pn_mgpa_dat (iov_id, logic_id, "
                        "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) "
                        "VALUES (:iov_id, :logic_id, "
                        ":3, :4, :5, :6, :7, :8, :9, :10, :11)");
  } catch (SQLException &e) {
    throw(std::runtime_error("MonPNMGPADat::prepareWrite():  "+e.getMessage()));
  }
}
void MonPNMGPADat::setADCMeanG1 ( float  mean) [inline]

Definition at line 21 of file MonPNMGPADat.h.

References m_adcMeanG1, and plotscripts::mean().

Referenced by fetchData().

void MonPNMGPADat::setADCMeanG16 ( float  mean) [inline]

Definition at line 27 of file MonPNMGPADat.h.

References m_adcMeanG16, and plotscripts::mean().

Referenced by fetchData().

void MonPNMGPADat::setADCRMSG1 ( float  mean) [inline]

Definition at line 24 of file MonPNMGPADat.h.

References m_adcRMSG1, and plotscripts::mean().

Referenced by fetchData().

void MonPNMGPADat::setADCRMSG16 ( float  mean) [inline]

Definition at line 30 of file MonPNMGPADat.h.

References m_adcRMSG16, and plotscripts::mean().

Referenced by fetchData().

void MonPNMGPADat::setPedMeanG1 ( float  mean) [inline]

Definition at line 33 of file MonPNMGPADat.h.

References m_pedMeanG1, and plotscripts::mean().

Referenced by fetchData().

void MonPNMGPADat::setPedMeanG16 ( float  mean) [inline]

Definition at line 39 of file MonPNMGPADat.h.

References m_pedMeanG16, and plotscripts::mean().

Referenced by fetchData().

void MonPNMGPADat::setPedRMSG1 ( float  mean) [inline]

Definition at line 36 of file MonPNMGPADat.h.

References m_pedRMSG1, and plotscripts::mean().

Referenced by fetchData().

void MonPNMGPADat::setPedRMSG16 ( float  mean) [inline]

Definition at line 42 of file MonPNMGPADat.h.

References m_pedRMSG16, and plotscripts::mean().

Referenced by fetchData().

void MonPNMGPADat::setTaskStatus ( bool  status) [inline]

Definition at line 45 of file MonPNMGPADat.h.

References m_taskStatus, and ntuplemaker::status.

Referenced by fetchData().

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

Definition at line 140 of file MonPNMGPADat.cc.

References prof2calltree::count, runTheMatrix::data, ExpressReco_HICollisions_FallBack::e, getADCMeanG1(), getADCMeanG16(), getADCRMSG1(), getADCRMSG16(), EcalLogicID::getLogicID(), getPedMeanG1(), getPedMeanG16(), getPedRMSG1(), getPedRMSG16(), getTaskStatus(), o2o::iov, L1TEmulatorMonitor_cff::p, createTree::pp, csvReporter::r, matplotRender::t, ExpressReco_HICollisions_FallBack::x, ExpressReco_HICollisions_FallBack::y, and z.

{
  this->checkConnection();
  this->checkPrepare();

  int iovID = iov->fetchID();
  if (!iovID) { throw(std::runtime_error("MonPNMGPADat::writeArrayDB:  IOV not in DB")); }


  int nrows=data->size(); 
  int* ids= new int[nrows];
  int* iovid_vec= new int[nrows];
  float* xx= new float[nrows];
  float* yy= new float[nrows];
  float* zz= new float[nrows];
  float* ww= new float[nrows];
  float* uu= new float[nrows];
  float* tt= new float[nrows];
  float* rr= new float[nrows];
  float* pp= new float[nrows];
  int* st= new int[nrows];

  ub2* ids_len= new ub2[nrows];
  ub2* iov_len= new ub2[nrows];
  ub2* x_len= new ub2[nrows];
  ub2* y_len= new ub2[nrows];
  ub2* z_len= new ub2[nrows];
  ub2* w_len= new ub2[nrows];
  ub2* u_len= new ub2[nrows];
  ub2* t_len= new ub2[nrows];
  ub2* r_len= new ub2[nrows];
  ub2* p_len= new ub2[nrows];
  ub2* st_len= new ub2[nrows];

  const EcalLogicID* channel;
  const MonPNMGPADat* dataitem;
  int count=0;
  typedef map< EcalLogicID, MonPNMGPADat >::const_iterator CI;
  for (CI p = data->begin(); p != data->end(); ++p) {
        channel = &(p->first);
        int logicID = channel->getLogicID();
        if (!logicID) { throw(std::runtime_error("MonPNMGPADat::writeArrayDB:  Bad EcalLogicID")); }
        ids[count]=logicID;
        iovid_vec[count]=iovID;

        dataitem = &(p->second);
        // dataIface.writeDB( channel, dataitem, iov);
        float x=dataitem->getADCMeanG1();
        float y=dataitem->getADCRMSG1();
        float z=dataitem->getADCMeanG16();
        float w=dataitem->getADCRMSG16();
        float u=dataitem->getPedMeanG1();
        float t=dataitem->getPedRMSG1();
        float r=dataitem->getPedMeanG16();
        float p=dataitem->getPedRMSG16();
        int statu=dataitem->getTaskStatus();



        xx[count]=x;
        yy[count]=y;
        zz[count]=z;
        ww[count]=w;
        uu[count]=u;
        tt[count]=t;
        rr[count]=r;
        pp[count]=p;
        st[count]=statu;


        ids_len[count]=sizeof(ids[count]);
        iov_len[count]=sizeof(iovid_vec[count]);
        
        x_len[count]=sizeof(xx[count]);
        y_len[count]=sizeof(yy[count]);
        z_len[count]=sizeof(zz[count]);
        w_len[count]=sizeof(ww[count]);
        u_len[count]=sizeof(uu[count]);
        t_len[count]=sizeof(tt[count]);
        r_len[count]=sizeof(rr[count]);
        p_len[count]=sizeof(pp[count]);
        st_len[count]=sizeof(st[count]);

        count++;
     }


  try {
    m_writeStmt->setDataBuffer(1, (dvoid*)iovid_vec, OCCIINT, sizeof(iovid_vec[0]),iov_len);
    m_writeStmt->setDataBuffer(2, (dvoid*)ids, OCCIINT, sizeof(ids[0]), ids_len );
    m_writeStmt->setDataBuffer(3, (dvoid*)xx, OCCIFLOAT , sizeof(xx[0]), x_len );
    m_writeStmt->setDataBuffer(4, (dvoid*)yy, OCCIFLOAT , sizeof(yy[0]), y_len );
    m_writeStmt->setDataBuffer(5, (dvoid*)zz, OCCIFLOAT , sizeof(zz[0]), z_len );
    m_writeStmt->setDataBuffer(6, (dvoid*)ww, OCCIFLOAT , sizeof(ww[0]), w_len );
    m_writeStmt->setDataBuffer(7, (dvoid*)uu, OCCIFLOAT , sizeof(uu[0]), u_len );
    m_writeStmt->setDataBuffer(8, (dvoid*)tt, OCCIFLOAT , sizeof(tt[0]), t_len );
    m_writeStmt->setDataBuffer(9, (dvoid*)rr, OCCIFLOAT , sizeof(rr[0]), r_len );
    m_writeStmt->setDataBuffer(10, (dvoid*)pp, OCCIFLOAT , sizeof(pp[0]), p_len );
    m_writeStmt->setDataBuffer(11, (dvoid*)st, OCCIINT , sizeof(st[0]), st_len );
   

    m_writeStmt->executeArrayUpdate(nrows);

    delete [] ids;
    delete [] iovid_vec;
    delete [] xx;
    delete [] yy;
    delete [] zz;
    delete [] ww;
    delete [] uu;
    delete [] tt;
    delete [] rr;
    delete [] pp;
    delete [] st;

    delete [] ids_len;
    delete [] iov_len;
    delete [] x_len;
    delete [] y_len;
    delete [] z_len;
    delete [] w_len;
    delete [] u_len;
    delete [] t_len;
    delete [] r_len;
    delete [] p_len;
    delete [] st_len;



  } catch (SQLException &e) {
    throw(std::runtime_error("MonPNMGPADat::writeArrayDB():  "+e.getMessage()));
  }
}
void MonPNMGPADat::writeDB ( const EcalLogicID ecid,
const MonPNMGPADat item,
MonRunIOV iov 
) throw (std::runtime_error) [private]

Definition at line 56 of file MonPNMGPADat.cc.

References ExpressReco_HICollisions_FallBack::e, and o2o::iov.

{
  this->checkConnection();
  this->checkPrepare();

  int iovID = iov->fetchID();
  if (!iovID) { throw(std::runtime_error("MonPNMGPADat::writeDB:  IOV not in DB")); }

  int logicID = ecid->getLogicID();
  if (!logicID) { throw(std::runtime_error("MonPNMGPADat::writeDB:  Bad EcalLogicID")); }
  
  try {
    m_writeStmt->setInt(1, iovID);
    m_writeStmt->setInt(2, logicID);

    m_writeStmt->setFloat(3, item->getADCMeanG1() );
    m_writeStmt->setFloat(4, item->getADCRMSG1() );
    m_writeStmt->setFloat(5, item->getADCMeanG16() );
    m_writeStmt->setFloat(6, item->getADCRMSG16() );
    m_writeStmt->setFloat(7, item->getPedMeanG1() );
    m_writeStmt->setFloat(8, item->getPedRMSG1() );
    m_writeStmt->setFloat(9, item->getPedMeanG16() );
    m_writeStmt->setFloat(10, item->getPedRMSG16() );
    m_writeStmt->setInt(11, item->getTaskStatus() );

    m_writeStmt->executeUpdate();
  } catch (SQLException &e) {
    throw(std::runtime_error("MonPNMGPADat::writeDB():  "+e.getMessage()));
  }
}

Friends And Related Function Documentation

friend class EcalCondDBInterface [friend]

Reimplemented from IDBObject.

Definition at line 14 of file MonPNMGPADat.h.


Member Data Documentation

float MonPNMGPADat::m_adcMeanG1 [private]

Definition at line 62 of file MonPNMGPADat.h.

Referenced by getADCMeanG1(), and setADCMeanG1().

float MonPNMGPADat::m_adcMeanG16 [private]

Definition at line 64 of file MonPNMGPADat.h.

Referenced by getADCMeanG16(), and setADCMeanG16().

float MonPNMGPADat::m_adcRMSG1 [private]

Definition at line 63 of file MonPNMGPADat.h.

Referenced by getADCRMSG1(), and setADCRMSG1().

float MonPNMGPADat::m_adcRMSG16 [private]

Definition at line 65 of file MonPNMGPADat.h.

Referenced by getADCRMSG16(), and setADCRMSG16().

float MonPNMGPADat::m_pedMeanG1 [private]

Definition at line 66 of file MonPNMGPADat.h.

Referenced by getPedMeanG1(), and setPedMeanG1().

float MonPNMGPADat::m_pedMeanG16 [private]

Definition at line 68 of file MonPNMGPADat.h.

Referenced by getPedMeanG16(), and setPedMeanG16().

float MonPNMGPADat::m_pedRMSG1 [private]

Definition at line 67 of file MonPNMGPADat.h.

Referenced by getPedRMSG1(), and setPedRMSG1().

float MonPNMGPADat::m_pedRMSG16 [private]

Definition at line 69 of file MonPNMGPADat.h.

Referenced by getPedRMSG16(), and setPedRMSG16().

Definition at line 70 of file MonPNMGPADat.h.

Referenced by getTaskStatus(), and setTaskStatus().