CMS 3D CMS Logo

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

MonLaserIRedDat Class Reference

#include <MonLaserIRedDat.h>

Inheritance diagram for MonLaserIRedDat:
IDataItem IDBObject

List of all members.

Public Member Functions

float getAPDMean () const
float getAPDOverPNMean () const
float getAPDOverPNRMS () const
float getAPDRMS () const
std::string getTable ()
bool getTaskStatus () const
 MonLaserIRedDat ()
void setAPDMean (float mean)
void setAPDOverPNMean (float mean)
void setAPDOverPNRMS (float rms)
void setAPDRMS (float rms)
void setTaskStatus (bool status)
 ~MonLaserIRedDat ()

Private Member Functions

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

Private Attributes

float m_apdMean
float m_apdOverPNMean
float m_apdOverPNRMS
float m_apdRMS
bool m_taskStatus

Friends

class EcalCondDBInterface

Detailed Description

Definition at line 12 of file MonLaserIRedDat.h.


Constructor & Destructor Documentation

MonLaserIRedDat::MonLaserIRedDat ( )

Definition at line 10 of file MonLaserIRedDat.cc.

References NULL.

MonLaserIRedDat::~MonLaserIRedDat ( )

Definition at line 27 of file MonLaserIRedDat.cc.

{
}

Member Function Documentation

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

Definition at line 81 of file MonLaserIRedDat.cc.

References edm::pset::fillMap(), o2o::iov, AlCaHLTBitMon_ParallelJobs::p, setAPDMean(), setAPDOverPNMean(), setAPDOverPNRMS(), setAPDRMS(), and setTaskStatus().

{
  this->checkConnection();

  fillMap->clear();

  iov->setConnection(m_env, m_conn);
  int iovID = iov->fetchID();
  if (!iovID) { 
    //  throw(std::runtime_error("MonLaserIRedDat::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.apd_mean, d.apd_rms, d.apd_over_pn_mean, d.apd_over_pn_rms, d.task_status "
                 "FROM channelview cv JOIN mon_laser_ired_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, MonLaserIRedDat > p;
    MonLaserIRedDat 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.setAPDMean( rset->getFloat(7) );
      dat.setAPDRMS( rset->getFloat(8) );
      dat.setAPDOverPNMean( rset->getFloat(9) );
      dat.setAPDOverPNRMS( rset->getFloat(10) );
      dat.setTaskStatus( rset->getInt(11) );
                        

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

Definition at line 22 of file MonLaserIRedDat.h.

References m_apdMean.

Referenced by writeArrayDB().

{ return m_apdMean; }
float MonLaserIRedDat::getAPDOverPNMean ( ) const [inline]

Definition at line 28 of file MonLaserIRedDat.h.

References m_apdOverPNMean.

Referenced by writeArrayDB().

{ return m_apdOverPNMean; }
float MonLaserIRedDat::getAPDOverPNRMS ( ) const [inline]

Definition at line 31 of file MonLaserIRedDat.h.

References m_apdOverPNRMS.

Referenced by writeArrayDB().

{ return m_apdOverPNRMS; }
float MonLaserIRedDat::getAPDRMS ( ) const [inline]

Definition at line 25 of file MonLaserIRedDat.h.

References m_apdRMS.

Referenced by writeArrayDB().

{ return m_apdRMS; }
std::string MonLaserIRedDat::getTable ( ) [inline, virtual]

Implements IDataItem.

Definition at line 19 of file MonLaserIRedDat.h.

{ return "MON_LASER_IRED_DAT"; }
bool MonLaserIRedDat::getTaskStatus ( ) const [inline]

Definition at line 34 of file MonLaserIRedDat.h.

References m_taskStatus.

Referenced by writeArrayDB().

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

Implements IDataItem.

Definition at line 33 of file MonLaserIRedDat.cc.

{
  this->checkConnection();

  try {
    m_writeStmt = m_conn->createStatement();
    m_writeStmt->setSQL("INSERT INTO mon_laser_ired_dat (iov_id, logic_id, "
                        "apd_mean, apd_rms, apd_over_pn_mean, apd_over_pn_rms, task_status) "
                        "VALUES (:iov_id, :logic_id, "
                        ":apd_mean, :apd_rms, :apd_over_pn_mean, :apd_over_pn_rms, :task_status)");
  } catch (SQLException &e) {
    throw(std::runtime_error("MonLaserIRedDat::prepareWrite():  "+e.getMessage()));
  }
}
void MonLaserIRedDat::setAPDMean ( float  mean) [inline]

Definition at line 21 of file MonLaserIRedDat.h.

References m_apdMean, and timingPdfMaker::mean.

Referenced by fetchData().

{ m_apdMean = mean; }
void MonLaserIRedDat::setAPDOverPNMean ( float  mean) [inline]

Definition at line 27 of file MonLaserIRedDat.h.

References m_apdOverPNMean, and timingPdfMaker::mean.

Referenced by fetchData().

void MonLaserIRedDat::setAPDOverPNRMS ( float  rms) [inline]

Definition at line 30 of file MonLaserIRedDat.h.

References m_apdOverPNRMS, and plotscripts::rms().

Referenced by fetchData().

void MonLaserIRedDat::setAPDRMS ( float  rms) [inline]

Definition at line 24 of file MonLaserIRedDat.h.

References m_apdRMS, and plotscripts::rms().

Referenced by fetchData().

{ m_apdRMS = rms; }
void MonLaserIRedDat::setTaskStatus ( bool  status) [inline]

Definition at line 33 of file MonLaserIRedDat.h.

References m_taskStatus, and ntuplemaker::status.

Referenced by fetchData().

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

Definition at line 130 of file MonLaserIRedDat.cc.

References prof2calltree::count, AlCaHLTBitMon_QueryRunRegistry::data, getAPDMean(), getAPDOverPNMean(), getAPDOverPNRMS(), getAPDRMS(), EcalLogicID::getLogicID(), getTaskStatus(), o2o::iov, AlCaHLTBitMon_ParallelJobs::p, x, detailsBasic3DVector::y, and z.

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

  int iovID = iov->fetchID();
  if (!iovID) { throw(std::runtime_error("MonLaserIRedDat::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 MonLaserIRedDat* dataitem;
  int count=0;
  typedef map< EcalLogicID, MonLaserIRedDat >::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("MonLaserIRedDat::writeArrayDB:  Bad EcalLogicID")); }
        ids[count]=logicID;
        iovid_vec[count]=iovID;

        dataitem = &(p->second);
        // dataIface.writeDB( channel, dataitem, iov);
        float x=dataitem->getAPDMean();
        float y=dataitem->getAPDRMS();
        float z=dataitem->getAPDOverPNMean();
        float w=dataitem->getAPDOverPNRMS();
        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("MonLaserIRedDat::writeArrayDB():  "+e.getMessage()));
  }
}
void MonLaserIRedDat::writeDB ( const EcalLogicID ecid,
const MonLaserIRedDat item,
MonRunIOV iov 
) throw (std::runtime_error) [private]

Definition at line 51 of file MonLaserIRedDat.cc.

References o2o::iov.

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

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

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

    m_writeStmt->setFloat(3, item->getAPDMean() );
    m_writeStmt->setFloat(4, item->getAPDRMS() );
    m_writeStmt->setFloat(5, item->getAPDOverPNMean() );
    m_writeStmt->setFloat(6, item->getAPDOverPNRMS() );
    m_writeStmt->setInt(7, item->getTaskStatus() );

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

Friends And Related Function Documentation

friend class EcalCondDBInterface [friend]

Reimplemented from IDBObject.

Definition at line 14 of file MonLaserIRedDat.h.


Member Data Documentation

float MonLaserIRedDat::m_apdMean [private]

Definition at line 51 of file MonLaserIRedDat.h.

Referenced by getAPDMean(), and setAPDMean().

Definition at line 53 of file MonLaserIRedDat.h.

Referenced by getAPDOverPNMean(), and setAPDOverPNMean().

Definition at line 54 of file MonLaserIRedDat.h.

Referenced by getAPDOverPNRMS(), and setAPDOverPNRMS().

float MonLaserIRedDat::m_apdRMS [private]

Definition at line 52 of file MonLaserIRedDat.h.

Referenced by getAPDRMS(), and setAPDRMS().

Definition at line 55 of file MonLaserIRedDat.h.

Referenced by getTaskStatus(), and setTaskStatus().