CMS 3D CMS Logo

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

MonTTConsistencyDat Class Reference

#include <MonTTConsistencyDat.h>

Inheritance diagram for MonTTConsistencyDat:
IDataItem IDBObject

List of all members.

Public Member Functions

int getProblematicEvents () const
int getProblemsBunchX () const
int getProblemsID () const
int getProblemsLV1 () const
int getProblemsSize () const
int getProcessedEvents () const
std::string getTable ()
bool getTaskStatus () const
 MonTTConsistencyDat ()
void setProblematicEvents (int prob)
void setProblemsBunchX (int bunchX)
void setProblemsID (int id)
void setProblemsLV1 (int LV1)
void setProblemsSize (int size)
void setProcessedEvents (int proc)
void setTaskStatus (bool status)
 ~MonTTConsistencyDat ()

Private Member Functions

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

Private Attributes

int m_problematicEvents
int m_problemsBunchX
int m_problemsID
int m_problemsLV1
int m_problemsSize
int m_processedEvents
bool m_taskStatus

Friends

class EcalCondDBInterface

Detailed Description

Definition at line 12 of file MonTTConsistencyDat.h.


Constructor & Destructor Documentation

MonTTConsistencyDat::MonTTConsistencyDat ( )
MonTTConsistencyDat::~MonTTConsistencyDat ( )

Definition at line 28 of file MonTTConsistencyDat.cc.

{
}

Member Function Documentation

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

Definition at line 83 of file MonTTConsistencyDat.cc.

References ExpressReco_HICollisions_FallBack::e, edm::pset::fillMap(), o2o::iov, L1TEmulatorMonitor_cff::p, setProblematicEvents(), setProblemsBunchX(), setProblemsID(), setProblemsLV1(), setProblemsSize(), setProcessedEvents(), and setTaskStatus().

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

  iov->setConnection(m_env, m_conn);
  int iovID = iov->fetchID();
  if (!iovID) { 
    //  throw(std::runtime_error("MonTTConsistencyDat::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.processed_events, d.problematic_events, d.problems_id, d.problems_size, d.problems_LV1, d.problems_bunch_X, d.task_status "
                 "FROM channelview cv JOIN mon_tt_consistency_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, MonTTConsistencyDat > p;
    MonTTConsistencyDat 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.setProcessedEvents( rset->getInt(7) );
      dat.setProblematicEvents( rset->getInt(8) );
      dat.setProblemsID( rset->getInt(9) );
      dat.setProblemsSize( rset->getInt(10) );
      dat.setProblemsLV1( rset->getInt(11) );
      dat.setProblemsBunchX( rset->getInt(12) );
      dat.setTaskStatus( rset->getInt(13) );

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

Definition at line 25 of file MonTTConsistencyDat.h.

References m_problematicEvents.

Referenced by writeArrayDB().

{ return m_problematicEvents; }
int MonTTConsistencyDat::getProblemsBunchX ( ) const [inline]

Definition at line 37 of file MonTTConsistencyDat.h.

References m_problemsBunchX.

Referenced by writeArrayDB().

{ return m_problemsBunchX; }
int MonTTConsistencyDat::getProblemsID ( ) const [inline]

Definition at line 28 of file MonTTConsistencyDat.h.

References m_problemsID.

Referenced by writeArrayDB().

{ return m_problemsID; }
int MonTTConsistencyDat::getProblemsLV1 ( ) const [inline]

Definition at line 34 of file MonTTConsistencyDat.h.

References m_problemsLV1.

Referenced by writeArrayDB().

{ return m_problemsLV1; }
int MonTTConsistencyDat::getProblemsSize ( ) const [inline]

Definition at line 31 of file MonTTConsistencyDat.h.

References m_problemsSize.

Referenced by writeArrayDB().

{ return m_problemsSize; }
int MonTTConsistencyDat::getProcessedEvents ( ) const [inline]

Definition at line 22 of file MonTTConsistencyDat.h.

References m_processedEvents.

Referenced by writeArrayDB().

{ return m_processedEvents; }
std::string MonTTConsistencyDat::getTable ( ) [inline, virtual]

Implements IDataItem.

Definition at line 19 of file MonTTConsistencyDat.h.

{ return "MON_TT_CONSISTENCY_DAT"; }
bool MonTTConsistencyDat::getTaskStatus ( ) const [inline]

Definition at line 40 of file MonTTConsistencyDat.h.

References m_taskStatus.

Referenced by writeArrayDB().

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

Implements IDataItem.

Definition at line 34 of file MonTTConsistencyDat.cc.

References ExpressReco_HICollisions_FallBack::e.

{
  this->checkConnection();

  try {
    m_writeStmt = m_conn->createStatement();
    m_writeStmt->setSQL("INSERT INTO mon_tt_consistency_dat (iov_id, logic_id, "
                        "processed_events, problematic_events, problems_id, problems_size, problems_LV1, problems_bunch_X, task_status) "
                        "VALUES (:iov_id, :logic_id, "
                        ":3, :4, :5, :6, :7, :8, :9)");
  } catch (SQLException &e) {
    throw(std::runtime_error("MonTTConsistencyDat::prepareWrite():  "+e.getMessage()));
  }
}
void MonTTConsistencyDat::setProblematicEvents ( int  prob) [inline]

Definition at line 24 of file MonTTConsistencyDat.h.

References m_problematicEvents.

Referenced by fetchData().

{ m_problematicEvents = prob; }
void MonTTConsistencyDat::setProblemsBunchX ( int  bunchX) [inline]

Definition at line 36 of file MonTTConsistencyDat.h.

References m_problemsBunchX.

Referenced by fetchData().

{ m_problemsBunchX = bunchX; }
void MonTTConsistencyDat::setProblemsID ( int  id) [inline]

Definition at line 27 of file MonTTConsistencyDat.h.

References ExpressReco_HICollisions_FallBack::id, and m_problemsID.

Referenced by fetchData().

void MonTTConsistencyDat::setProblemsLV1 ( int  LV1) [inline]

Definition at line 33 of file MonTTConsistencyDat.h.

References m_problemsLV1.

Referenced by fetchData().

{ m_problemsLV1 = LV1; }
void MonTTConsistencyDat::setProblemsSize ( int  size) [inline]

Definition at line 30 of file MonTTConsistencyDat.h.

References m_problemsSize, and findQualityFiles::size.

Referenced by fetchData().

void MonTTConsistencyDat::setProcessedEvents ( int  proc) [inline]

Definition at line 21 of file MonTTConsistencyDat.h.

References m_processedEvents, and proc.

Referenced by fetchData().

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

Definition at line 39 of file MonTTConsistencyDat.h.

References m_taskStatus, and ntuplemaker::status.

Referenced by fetchData().

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

Definition at line 132 of file MonTTConsistencyDat.cc.

References prof2calltree::count, runTheMatrix::data, ExpressReco_HICollisions_FallBack::e, EcalLogicID::getLogicID(), getProblematicEvents(), getProblemsBunchX(), getProblemsID(), getProblemsLV1(), getProblemsSize(), getProcessedEvents(), getTaskStatus(), o2o::iov, L1TEmulatorMonitor_cff::p, 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("MonTTConsistencyDat::writeArrayDB:  IOV not in DB")); }


  int nrows=data->size(); 
  int* ids= new int[nrows];
  int* iovid_vec= new int[nrows];
  int* xx= new int[nrows];
  int* yy= new int[nrows];
  int* zz= new int[nrows];
  int* ww= new int[nrows];
  int* uu= new int[nrows];
  int* tt= new int[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* st_len= new ub2[nrows];

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

        dataitem = &(p->second);
        // dataIface.writeDB( channel, dataitem, iov);
        int x=dataitem->getProcessedEvents();
        int y=dataitem->getProblematicEvents();
        int z=dataitem->getProblemsID();
        int w=dataitem->getProblemsSize();
        int u=dataitem->getProblemsLV1();
        int t=dataitem->getProblemsBunchX();
        int statu=dataitem->getTaskStatus();



        xx[count]=x;
        yy[count]=y;
        zz[count]=z;
        ww[count]=w;
        uu[count]=u;
        tt[count]=t;
        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]);
        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, OCCIINT , sizeof(xx[0]), x_len );
    m_writeStmt->setDataBuffer(4, (dvoid*)yy, OCCIINT , sizeof(yy[0]), y_len );
    m_writeStmt->setDataBuffer(5, (dvoid*)zz, OCCIINT , sizeof(zz[0]), z_len );
    m_writeStmt->setDataBuffer(6, (dvoid*)ww, OCCIINT , sizeof(ww[0]), w_len );
    m_writeStmt->setDataBuffer(7, (dvoid*)uu, OCCIINT , sizeof(uu[0]), u_len );
    m_writeStmt->setDataBuffer(8, (dvoid*)tt, OCCIINT , sizeof(tt[0]), t_len );
    m_writeStmt->setDataBuffer(9, (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 [] 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 [] st_len;



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

Definition at line 52 of file MonTTConsistencyDat.cc.

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

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

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

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

    m_writeStmt->setInt(3, item->getProcessedEvents() );
    m_writeStmt->setInt(4, item->getProblematicEvents() );
    m_writeStmt->setInt(5, item->getProblemsID() );
    m_writeStmt->setInt(6, item->getProblemsSize() );
    m_writeStmt->setInt(7, item->getProblemsLV1() );
    m_writeStmt->setInt(8, item->getProblemsBunchX() );
    m_writeStmt->setInt(9, item->getTaskStatus() );
    m_writeStmt->executeUpdate();
  } catch (SQLException &e) {
    throw(std::runtime_error("MonTTConsistencyDat::writeDB():  "+e.getMessage()));
  }
}

Friends And Related Function Documentation

friend class EcalCondDBInterface [friend]

Reimplemented from IDBObject.

Definition at line 14 of file MonTTConsistencyDat.h.


Member Data Documentation

Definition at line 57 of file MonTTConsistencyDat.h.

Referenced by getProblematicEvents(), and setProblematicEvents().

Definition at line 61 of file MonTTConsistencyDat.h.

Referenced by getProblemsBunchX(), and setProblemsBunchX().

Definition at line 58 of file MonTTConsistencyDat.h.

Referenced by getProblemsID(), and setProblemsID().

Definition at line 60 of file MonTTConsistencyDat.h.

Referenced by getProblemsLV1(), and setProblemsLV1().

Definition at line 59 of file MonTTConsistencyDat.h.

Referenced by getProblemsSize(), and setProblemsSize().

Definition at line 56 of file MonTTConsistencyDat.h.

Referenced by getProcessedEvents(), and setProcessedEvents().

Definition at line 62 of file MonTTConsistencyDat.h.

Referenced by getTaskStatus(), and setTaskStatus().