CMS 3D CMS Logo

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

DCUCapsuleTempRawDat Class Reference

#include <DCUCapsuleTempRawDat.h>

Inheritance diagram for DCUCapsuleTempRawDat:
IDataItem IDBObject

List of all members.

Public Member Functions

 DCUCapsuleTempRawDat ()
float getCapsuleTempADC () const
float getCapsuleTempRMS () const
std::string getTable ()
void setCapsuleTempADC (float adc)
void setCapsuleTempRMS (float rms)
 ~DCUCapsuleTempRawDat ()

Private Member Functions

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

Private Attributes

float m_capsuleTempADC
float m_capsuleTempRMS

Friends

class EcalCondDBInterface

Detailed Description

Definition at line 12 of file DCUCapsuleTempRawDat.h.


Constructor & Destructor Documentation

DCUCapsuleTempRawDat::DCUCapsuleTempRawDat ( )

Definition at line 12 of file DCUCapsuleTempRawDat.cc.

References NULL.

DCUCapsuleTempRawDat::~DCUCapsuleTempRawDat ( )

Definition at line 25 of file DCUCapsuleTempRawDat.cc.

{
}

Member Function Documentation

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

Definition at line 76 of file DCUCapsuleTempRawDat.cc.

References alignCSCRings::e, edm::pset::fillMap(), o2o::iov, AlCaHLTBitMon_ParallelJobs::p, setCapsuleTempADC(), and setCapsuleTempRMS().

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

  iov->setConnection(m_env, m_conn);
  int iovID = iov->fetchID();
  if (!iovID) { 
    //  throw(std::runtime_error("DCUCapsuleTempRawDat::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.capsule_temp_adc, d.capsule_temp_rms "
                 "FROM channelview cv JOIN dcu_capsule_temp_raw_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, DCUCapsuleTempRawDat > p;
    DCUCapsuleTempRawDat 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.setCapsuleTempADC( rset->getFloat(7) );
      dat.setCapsuleTempRMS( rset->getFloat(8) );

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

Definition at line 22 of file DCUCapsuleTempRawDat.h.

References m_capsuleTempADC.

Referenced by writeArrayDB().

{ return m_capsuleTempADC; }
float DCUCapsuleTempRawDat::getCapsuleTempRMS ( ) const [inline]

Definition at line 25 of file DCUCapsuleTempRawDat.h.

References m_capsuleTempRMS.

Referenced by writeArrayDB().

{ return m_capsuleTempRMS; }
std::string DCUCapsuleTempRawDat::getTable ( ) [inline, virtual]

Implements IDataItem.

Definition at line 19 of file DCUCapsuleTempRawDat.h.

{ return "DCU_CAPSULE_TEMP_RAW_DAT"; }
void DCUCapsuleTempRawDat::prepareWrite ( ) throw (std::runtime_error) [private, virtual]

Implements IDataItem.

Definition at line 31 of file DCUCapsuleTempRawDat.cc.

References alignCSCRings::e.

{
  this->checkConnection();

  try {
    m_writeStmt = m_conn->createStatement();
    m_writeStmt->setSQL("INSERT INTO dcu_capsule_temp_raw_dat (iov_id, logic_id, "
                        "capsule_temp_adc, capsule_temp_rms) "
                        "VALUES (:iov_id, :logic_id, "
                        ":3, :4)");
  } catch (SQLException &e) {
    throw(std::runtime_error("DCUCapsuleTempRawDat::prepareWrite():  "+e.getMessage()));
  }
}
void DCUCapsuleTempRawDat::setCapsuleTempADC ( float  adc) [inline]

Definition at line 21 of file DCUCapsuleTempRawDat.h.

References ecalMGPA::adc(), and m_capsuleTempADC.

Referenced by fetchData().

void DCUCapsuleTempRawDat::setCapsuleTempRMS ( float  rms) [inline]

Definition at line 24 of file DCUCapsuleTempRawDat.h.

References m_capsuleTempRMS, and plotscripts::rms().

Referenced by fetchData().

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

Definition at line 120 of file DCUCapsuleTempRawDat.cc.

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

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

  int iovID = iov->fetchID();
  if (!iovID) { throw(std::runtime_error("DCUCapsuleTempRawDat::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];

  ub2* ids_len= new ub2[nrows];
  ub2* iov_len= new ub2[nrows];
  ub2* x_len= new ub2[nrows];
  ub2* y_len= new ub2[nrows];


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

        dataitem = &(p->second);
        // dataIface.writeDB( channel, dataitem, iov);
        float x=dataitem->getCapsuleTempADC();
        float y=dataitem->getCapsuleTempRMS();

        xx[count]=x;
        yy[count]=y;


        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]);

        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->executeArrayUpdate(nrows);

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

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

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

Definition at line 49 of file DCUCapsuleTempRawDat.cc.

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

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

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

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

    m_writeStmt->setFloat(3, item->getCapsuleTempADC() );
    m_writeStmt->setFloat(4, item->getCapsuleTempRMS() );

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

Friends And Related Function Documentation

friend class EcalCondDBInterface [friend]

Reimplemented from IDBObject.

Definition at line 14 of file DCUCapsuleTempRawDat.h.


Member Data Documentation

Definition at line 41 of file DCUCapsuleTempRawDat.h.

Referenced by getCapsuleTempADC(), and setCapsuleTempADC().

Definition at line 42 of file DCUCapsuleTempRawDat.h.

Referenced by getCapsuleTempRMS(), and setCapsuleTempRMS().