CMS 3D CMS Logo

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

MonPedestalsOnlineDat Class Reference

#include <MonPedestalsOnlineDat.h>

Inheritance diagram for MonPedestalsOnlineDat:
IDataItem IDBObject

List of all members.

Public Member Functions

float getADCMeanG12 () const
float getADCRMSG12 () const
std::string getTable ()
bool getTaskStatus () const
 MonPedestalsOnlineDat ()
void setADCMeanG12 (float mean)
void setADCRMSG12 (float rms)
void setTaskStatus (bool status)
 ~MonPedestalsOnlineDat ()

Private Member Functions

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

Private Attributes

float m_adcMeanG12
float m_adcRMSG12
bool m_taskStatus

Friends

class EcalCondDBInterface

Detailed Description

Definition at line 12 of file MonPedestalsOnlineDat.h.


Constructor & Destructor Documentation

MonPedestalsOnlineDat::MonPedestalsOnlineDat ( )

Definition at line 12 of file MonPedestalsOnlineDat.cc.

References NULL.

MonPedestalsOnlineDat::~MonPedestalsOnlineDat ( )

Definition at line 26 of file MonPedestalsOnlineDat.cc.

{
}

Member Function Documentation

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

Definition at line 77 of file MonPedestalsOnlineDat.cc.

References alignCSCRings::e, edm::pset::fillMap(), o2o::iov, AlCaHLTBitMon_ParallelJobs::p, setADCMeanG12(), setADCRMSG12(), and setTaskStatus().

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

  iov->setConnection(m_env, m_conn);
  int iovID = iov->fetchID();
  if (!iovID) { 
    //  throw(std::runtime_error("MonPedestalsOnlineDat::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_g12, d.adc_rms_g12, d.task_status "
                 "FROM channelview cv JOIN mon_pedestals_online_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, MonPedestalsOnlineDat > p;
    MonPedestalsOnlineDat 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.setADCMeanG12( rset->getFloat(7) );
      dat.setADCRMSG12( rset->getFloat(8) );
      dat.setTaskStatus( rset->getInt(9) );

      p.second = dat;
      fillMap->insert(p);
    }
  } catch (SQLException &e) {
    throw(std::runtime_error("MonPedestalsOnlineDat::fetchData():  "+e.getMessage()));
  }
}
float MonPedestalsOnlineDat::getADCMeanG12 ( ) const [inline]

Definition at line 22 of file MonPedestalsOnlineDat.h.

References m_adcMeanG12.

Referenced by popcon::EcalChannelStatusHandler::cosmicsAnalysis(), and writeArrayDB().

{ return m_adcMeanG12; }
float MonPedestalsOnlineDat::getADCRMSG12 ( ) const [inline]

Definition at line 25 of file MonPedestalsOnlineDat.h.

References m_adcRMSG12.

Referenced by popcon::EcalChannelStatusHandler::cosmicsAnalysis(), and writeArrayDB().

{ return m_adcRMSG12; }
std::string MonPedestalsOnlineDat::getTable ( ) [inline, virtual]

Implements IDataItem.

Definition at line 19 of file MonPedestalsOnlineDat.h.

{ return "MON_PEDESTALS_ONLINE_DAT"; }
bool MonPedestalsOnlineDat::getTaskStatus ( ) const [inline]

Definition at line 28 of file MonPedestalsOnlineDat.h.

References m_taskStatus.

Referenced by writeArrayDB().

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

Implements IDataItem.

Definition at line 32 of file MonPedestalsOnlineDat.cc.

References alignCSCRings::e.

{
  this->checkConnection();

  try {
    m_writeStmt = m_conn->createStatement();
    m_writeStmt->setSQL("INSERT INTO mon_pedestals_online_dat (iov_id, logic_id, "
                        "adc_mean_g12, adc_rms_g12, task_status) "
                        "VALUES (:iov_id, :logic_id, "
                        ":adc_mean_g12, :adc_rms_g12, :task_status)");
  } catch (SQLException &e) {
    throw(std::runtime_error("MonPedestalsOnlineDat::prepareWrite():  "+e.getMessage()));
  }
}
void MonPedestalsOnlineDat::setADCMeanG12 ( float  mean) [inline]

Definition at line 21 of file MonPedestalsOnlineDat.h.

References m_adcMeanG12, and timingPdfMaker::mean.

Referenced by fetchData().

void MonPedestalsOnlineDat::setADCRMSG12 ( float  rms) [inline]

Definition at line 24 of file MonPedestalsOnlineDat.h.

References m_adcRMSG12, and plotscripts::rms().

Referenced by fetchData().

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

Definition at line 27 of file MonPedestalsOnlineDat.h.

References m_taskStatus, and ntuplemaker::status.

Referenced by fetchData().

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

Definition at line 122 of file MonPedestalsOnlineDat.cc.

References prof2calltree::count, data, alignCSCRings::e, getADCMeanG12(), getADCRMSG12(), EcalLogicID::getLogicID(), getTaskStatus(), o2o::iov, AlCaHLTBitMon_ParallelJobs::p, x, and detailsBasic3DVector::y.

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

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

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

        dataitem = &(p->second);
        // dataIface.writeDB( channel, dataitem, iov);
        float x=dataitem->getADCMeanG12();
        float y=dataitem->getADCRMSG12();
        int statu=dataitem->getTaskStatus();



        xx[count]=x;
        yy[count]=y;
        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]);
        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*)st, OCCIINT , sizeof(st[0]), st_len );
   

    m_writeStmt->executeArrayUpdate(nrows);

    delete [] ids;
    delete [] iovid_vec;
    delete [] xx;
    delete [] yy;
    delete [] st;

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



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

Definition at line 50 of file MonPedestalsOnlineDat.cc.

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

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

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

  int logicID = ecid->getLogicID();
  if (!logicID) { throw(std::runtime_error("MonPedestalsOnlineDat::writeDB:  Bad EcalLogicID")); }
  
  try {
    m_writeStmt->setInt(1, iovID);
    m_writeStmt->setInt(2, logicID);
    m_writeStmt->setFloat(3, item->getADCMeanG12() );
    m_writeStmt->setFloat(4, item->getADCRMSG12() );
    m_writeStmt->setInt(5, item->getTaskStatus() );

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

Friends And Related Function Documentation

friend class EcalCondDBInterface [friend]

Reimplemented from IDBObject.

Definition at line 14 of file MonPedestalsOnlineDat.h.


Member Data Documentation

Definition at line 46 of file MonPedestalsOnlineDat.h.

Referenced by getADCMeanG12(), and setADCMeanG12().

Definition at line 47 of file MonPedestalsOnlineDat.h.

Referenced by getADCRMSG12(), and setADCRMSG12().

Definition at line 48 of file MonPedestalsOnlineDat.h.

Referenced by getTaskStatus(), and setTaskStatus().