CMS 3D CMS Logo

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

MonLaserBlueDat Class Reference

#include <MonLaserBlueDat.h>

Inheritance diagram for MonLaserBlueDat:
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
 MonLaserBlueDat ()
void setAPDMean (float mean)
void setAPDOverPNMean (float mean)
void setAPDOverPNRMS (float rms)
void setAPDRMS (float rms)
void setTaskStatus (bool status)
 ~MonLaserBlueDat ()

Private Member Functions

void fetchData (std::map< EcalLogicID, MonLaserBlueDat > *fillMap, MonRunIOV *iov) throw (std::runtime_error)
void prepareWrite () throw (std::runtime_error)
void writeArrayDB (const std::map< EcalLogicID, MonLaserBlueDat > *data, MonRunIOV *iov) throw (std::runtime_error)
void writeDB (const EcalLogicID *ecid, const MonLaserBlueDat *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 MonLaserBlueDat.h.


Constructor & Destructor Documentation

MonLaserBlueDat::MonLaserBlueDat ( )

Definition at line 10 of file MonLaserBlueDat.cc.

References NULL.

MonLaserBlueDat::~MonLaserBlueDat ( )

Definition at line 27 of file MonLaserBlueDat.cc.

{
}

Member Function Documentation

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

Definition at line 81 of file MonLaserBlueDat.cc.

References alignCSCRings::e, 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("MonLaserBlueDat::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_blue_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, MonLaserBlueDat > p;
    MonLaserBlueDat 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("MonLaserBlueDat::fetchData():  "+e.getMessage()));
  }
}
float MonLaserBlueDat::getAPDMean ( ) const [inline]
float MonLaserBlueDat::getAPDOverPNMean ( ) const [inline]

Definition at line 28 of file MonLaserBlueDat.h.

References m_apdOverPNMean.

Referenced by writeArrayDB().

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

Definition at line 31 of file MonLaserBlueDat.h.

References m_apdOverPNRMS.

Referenced by writeArrayDB().

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

Definition at line 25 of file MonLaserBlueDat.h.

References m_apdRMS.

Referenced by writeArrayDB().

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

Implements IDataItem.

Definition at line 19 of file MonLaserBlueDat.h.

{ return "MON_LASER_BLUE_DAT"; }
bool MonLaserBlueDat::getTaskStatus ( ) const [inline]

Definition at line 34 of file MonLaserBlueDat.h.

References m_taskStatus.

Referenced by writeArrayDB().

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

Implements IDataItem.

Definition at line 33 of file MonLaserBlueDat.cc.

References alignCSCRings::e.

{
  this->checkConnection();

  try {
    m_writeStmt = m_conn->createStatement();
    m_writeStmt->setSQL("INSERT INTO mon_laser_blue_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("MonLaserBlueDat::prepareWrite():  "+e.getMessage()));
  }
}
void MonLaserBlueDat::setAPDMean ( float  mean) [inline]

Definition at line 21 of file MonLaserBlueDat.h.

References m_apdMean, and timingPdfMaker::mean.

Referenced by fetchData().

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

Definition at line 27 of file MonLaserBlueDat.h.

References m_apdOverPNMean, and timingPdfMaker::mean.

Referenced by fetchData().

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

Definition at line 30 of file MonLaserBlueDat.h.

References m_apdOverPNRMS, and plotscripts::rms().

Referenced by fetchData().

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

Definition at line 24 of file MonLaserBlueDat.h.

References m_apdRMS, and plotscripts::rms().

Referenced by fetchData().

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

Definition at line 33 of file MonLaserBlueDat.h.

References m_taskStatus, and ntuplemaker::status.

Referenced by fetchData().

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

Definition at line 130 of file MonLaserBlueDat.cc.

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

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

  int iovID = iov->fetchID();
  if (!iovID) { throw(std::runtime_error("MonLaserBlueDat::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 MonLaserBlueDat* dataitem;
  int count=0;
  typedef map< EcalLogicID, MonLaserBlueDat >::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("MonLaserBlueDat::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("MonLaserBlueDat::writeArrayDB():  "+e.getMessage()));
  }
}
void MonLaserBlueDat::writeDB ( const EcalLogicID ecid,
const MonLaserBlueDat item,
MonRunIOV iov 
) throw (std::runtime_error) [private]

Definition at line 51 of file MonLaserBlueDat.cc.

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

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

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

  int logicID = ecid->getLogicID();
  if (!logicID) { throw(std::runtime_error("MonLaserBlueDat::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("MonLaserBlueDat::writeDB():  "+e.getMessage()));
  }
}

Friends And Related Function Documentation

friend class EcalCondDBInterface [friend]

Reimplemented from IDBObject.

Definition at line 14 of file MonLaserBlueDat.h.


Member Data Documentation

float MonLaserBlueDat::m_apdMean [private]

Definition at line 51 of file MonLaserBlueDat.h.

Referenced by getAPDMean(), and setAPDMean().

Definition at line 53 of file MonLaserBlueDat.h.

Referenced by getAPDOverPNMean(), and setAPDOverPNMean().

Definition at line 54 of file MonLaserBlueDat.h.

Referenced by getAPDOverPNRMS(), and setAPDOverPNRMS().

float MonLaserBlueDat::m_apdRMS [private]

Definition at line 52 of file MonLaserBlueDat.h.

Referenced by getAPDRMS(), and setAPDRMS().

Definition at line 55 of file MonLaserBlueDat.h.

Referenced by getTaskStatus(), and setTaskStatus().