CMS 3D CMS Logo

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

MonLed2Dat Class Reference

#include <MonLed2Dat.h>

Inheritance diagram for MonLed2Dat:
IDataItem IDBObject

List of all members.

Public Member Functions

std::string getTable ()
bool getTaskStatus () const
float getVPTMean () const
float getVPTOverPNMean () const
float getVPTOverPNRMS () const
float getVPTRMS () const
 MonLed2Dat ()
void setTaskStatus (bool status)
void setVPTMean (float mean)
void setVPTOverPNMean (float mean)
void setVPTOverPNRMS (float rms)
void setVPTRMS (float rms)
 ~MonLed2Dat ()

Private Member Functions

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

Private Attributes

bool m_taskStatus
float m_vptMean
float m_vptOverPNMean
float m_vptOverPNRMS
float m_vptRMS

Friends

class EcalCondDBInterface

Detailed Description

Definition at line 12 of file MonLed2Dat.h.


Constructor & Destructor Documentation

MonLed2Dat::MonLed2Dat ( )

Definition at line 10 of file MonLed2Dat.cc.

References NULL.

MonLed2Dat::~MonLed2Dat ( )

Definition at line 27 of file MonLed2Dat.cc.

{
}

Member Function Documentation

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

Definition at line 81 of file MonLed2Dat.cc.

References ExpressReco_HICollisions_FallBack::e, edm::pset::fillMap(), o2o::iov, L1TEmulatorMonitor_cff::p, setTaskStatus(), setVPTMean(), setVPTOverPNMean(), setVPTOverPNRMS(), and setVPTRMS().

{
  this->checkConnection();

  fillMap->clear();

  iov->setConnection(m_env, m_conn);
  int iovID = iov->fetchID();
  if (!iovID) { 
    //  throw(std::runtime_error("MonLed2Dat::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.vpt_mean, d.vpt_rms, d.vpt_over_pn_mean, d.vpt_over_pn_rms, d.task_status "
                 "FROM channelview cv JOIN mon_led2_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, MonLed2Dat > p;
    MonLed2Dat 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.setVPTMean( rset->getFloat(7) );
      dat.setVPTRMS( rset->getFloat(8) );
      dat.setVPTOverPNMean( rset->getFloat(9) );
      dat.setVPTOverPNRMS( rset->getFloat(10) );
      dat.setTaskStatus( rset->getInt(11) );
                        

      p.second = dat;
      fillMap->insert(p);
    }
  } catch (SQLException &e) {
    throw(std::runtime_error("MonLed2Dat::fetchData():  "+e.getMessage()));
  }
}
std::string MonLed2Dat::getTable ( ) [inline, virtual]

Implements IDataItem.

Definition at line 19 of file MonLed2Dat.h.

{ return "MON_LED2_DAT"; }
bool MonLed2Dat::getTaskStatus ( ) const [inline]

Definition at line 34 of file MonLed2Dat.h.

References m_taskStatus.

Referenced by writeArrayDB().

{ return m_taskStatus; }
float MonLed2Dat::getVPTMean ( ) const [inline]

Definition at line 22 of file MonLed2Dat.h.

References m_vptMean.

Referenced by writeArrayDB().

{ return m_vptMean; }
float MonLed2Dat::getVPTOverPNMean ( ) const [inline]

Definition at line 28 of file MonLed2Dat.h.

References m_vptOverPNMean.

Referenced by writeArrayDB().

{ return m_vptOverPNMean; }
float MonLed2Dat::getVPTOverPNRMS ( ) const [inline]

Definition at line 31 of file MonLed2Dat.h.

References m_vptOverPNRMS.

Referenced by writeArrayDB().

{ return m_vptOverPNRMS; }
float MonLed2Dat::getVPTRMS ( ) const [inline]

Definition at line 25 of file MonLed2Dat.h.

References m_vptRMS.

Referenced by writeArrayDB().

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

Implements IDataItem.

Definition at line 33 of file MonLed2Dat.cc.

References ExpressReco_HICollisions_FallBack::e.

{
  this->checkConnection();

  try {
    m_writeStmt = m_conn->createStatement();
    m_writeStmt->setSQL("INSERT INTO mon_led2_dat (iov_id, logic_id, "
                        "vpt_mean, vpt_rms, vpt_over_pn_mean, vpt_over_pn_rms, task_status) "
                        "VALUES (:iov_id, :logic_id, "
                        ":vpt_mean, :vpt_rms, :vpt_over_pn_mean, :vpt_over_pn_rms, :task_status)");
  } catch (SQLException &e) {
    throw(std::runtime_error("MonLed2Dat::prepareWrite():  "+e.getMessage()));
  }
}
void MonLed2Dat::setTaskStatus ( bool  status) [inline]

Definition at line 33 of file MonLed2Dat.h.

References m_taskStatus, and ntuplemaker::status.

Referenced by fetchData().

void MonLed2Dat::setVPTMean ( float  mean) [inline]

Definition at line 21 of file MonLed2Dat.h.

References m_vptMean, and plotscripts::mean().

Referenced by fetchData().

{ m_vptMean = mean; }
void MonLed2Dat::setVPTOverPNMean ( float  mean) [inline]

Definition at line 27 of file MonLed2Dat.h.

References m_vptOverPNMean, and plotscripts::mean().

Referenced by fetchData().

void MonLed2Dat::setVPTOverPNRMS ( float  rms) [inline]

Definition at line 30 of file MonLed2Dat.h.

References m_vptOverPNRMS, and plotscripts::rms().

Referenced by fetchData().

void MonLed2Dat::setVPTRMS ( float  rms) [inline]

Definition at line 24 of file MonLed2Dat.h.

References m_vptRMS, and plotscripts::rms().

Referenced by fetchData().

{ m_vptRMS = rms; }
void MonLed2Dat::writeArrayDB ( const std::map< EcalLogicID, MonLed2Dat > *  data,
MonRunIOV iov 
) throw (std::runtime_error) [private]

Definition at line 130 of file MonLed2Dat.cc.

References prof2calltree::count, runTheMatrix::data, ExpressReco_HICollisions_FallBack::e, EcalLogicID::getLogicID(), getTaskStatus(), getVPTMean(), getVPTOverPNMean(), getVPTOverPNRMS(), getVPTRMS(), o2o::iov, L1TEmulatorMonitor_cff::p, ExpressReco_HICollisions_FallBack::x, ExpressReco_HICollisions_FallBack::y, and z.

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

  int iovID = iov->fetchID();
  if (!iovID) { throw(std::runtime_error("MonLed2Dat::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];
  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* st_len= new ub2[nrows];

  const EcalLogicID* channel;
  const MonLed2Dat* dataitem;
  int count=0;
  typedef map< EcalLogicID, MonLed2Dat >::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("MonLed2Dat::writeArrayDB:  Bad EcalLogicID")); }
        ids[count]=logicID;
        iovid_vec[count]=iovID;

        dataitem = &(p->second);
        // dataIface.writeDB( channel, dataitem, iov);
        float x=dataitem->getVPTMean();
        float y=dataitem->getVPTRMS();
        float z=dataitem->getVPTOverPNMean();
        float w=dataitem->getVPTOverPNRMS();
        int statu=dataitem->getTaskStatus();



        xx[count]=x;
        yy[count]=y;
        zz[count]=z;
        ww[count]=w;
        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]);
        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*)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 [] st;

    delete [] ids_len;
    delete [] iov_len;
    delete [] x_len;
    delete [] y_len;
    delete [] z_len;
    delete [] w_len;
    delete [] st_len;



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

Definition at line 51 of file MonLed2Dat.cc.

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

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

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

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

    m_writeStmt->setFloat(3, item->getVPTMean() );
    m_writeStmt->setFloat(4, item->getVPTRMS() );
    m_writeStmt->setFloat(5, item->getVPTOverPNMean() );
    m_writeStmt->setFloat(6, item->getVPTOverPNRMS() );
    m_writeStmt->setInt(7, item->getTaskStatus() );

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

Friends And Related Function Documentation

friend class EcalCondDBInterface [friend]

Reimplemented from IDBObject.

Definition at line 14 of file MonLed2Dat.h.


Member Data Documentation

bool MonLed2Dat::m_taskStatus [private]

Definition at line 55 of file MonLed2Dat.h.

Referenced by getTaskStatus(), and setTaskStatus().

float MonLed2Dat::m_vptMean [private]

Definition at line 51 of file MonLed2Dat.h.

Referenced by getVPTMean(), and setVPTMean().

float MonLed2Dat::m_vptOverPNMean [private]

Definition at line 53 of file MonLed2Dat.h.

Referenced by getVPTOverPNMean(), and setVPTOverPNMean().

float MonLed2Dat::m_vptOverPNRMS [private]

Definition at line 54 of file MonLed2Dat.h.

Referenced by getVPTOverPNRMS(), and setVPTOverPNRMS().

float MonLed2Dat::m_vptRMS [private]

Definition at line 52 of file MonLed2Dat.h.

Referenced by getVPTRMS(), and setVPTRMS().