CMS 3D CMS Logo

LMFRunList Class Reference

#include <OnlineDB/EcalCondDB/interface/LMFRunList.h>

Inheritance diagram for LMFRunList:

IDBObject

List of all members.

Public Member Functions

void fetchLastNRuns (int max_run, int n_runs) throw (std::runtime_error)
void fetchRuns (int min_run, int max_run) throw (std::runtime_error)
void fetchRuns () throw (std::runtime_error)
LMFRunTag getLMFRunTag () const
std::vector< LMFRunIOVgetRuns ()
RunTag getRunTag () const
 LMFRunList ()
void setLMFRunTag (LMFRunTag tag)
void setRunTag (RunTag tag)
 ~LMFRunList ()

Private Attributes

LMFRunTag m_lmfrunTag
RunTag m_runTag
std::vector< LMFRunIOVm_vec_lmfruniov

Friends

class EcalCondDBInterface


Detailed Description

Definition at line 16 of file LMFRunList.h.


Constructor & Destructor Documentation

LMFRunList::LMFRunList (  ) 

Definition at line 14 of file LMFRunList.cc.

References IDBObject::m_conn, and NULL.

00015 {
00016   m_conn = NULL;
00017 }

LMFRunList::~LMFRunList (  ) 

Definition at line 19 of file LMFRunList.cc.

00020 {
00021 }


Member Function Documentation

void LMFRunList::fetchLastNRuns ( int  max_run,
int  n_runs 
) throw (std::runtime_error)

Definition at line 272 of file LMFRunList.cc.

References IDBObject::checkConnection(), GenMuonPlsPt100GeV_cfg::cout, DateHandler::dateToTm(), e, lat::endl(), RunTag::fetchID(), LMFRunTag::fetchID(), i, IDBObject::m_conn, IDBObject::m_env, m_lmfrunTag, m_runTag, m_vec_lmfruniov, r, IDBObject::setConnection(), LMFRunIOV::setDBInsertionTime(), RunIOV::setID(), LMFRunIOV::setID(), LMFRunIOV::setLMFRunTag(), RunIOV::setRunEnd(), LMFRunIOV::setRunIOV(), RunIOV::setRunNumber(), RunIOV::setRunStart(), RunIOV::setRunTag(), LMFRunIOV::setSubRunEnd(), LMFRunIOV::setSubRunNumber(), LMFRunIOV::setSubRunStart(), and LMFRunIOV::setSubRunType().

Referenced by EcalCondDBInterface::fetchLMFRunListLastNRuns().

00274 {
00275 
00276   // fetch the last n_runs that come just before max_run (including max_run)
00277 
00278   this->checkConnection();
00279 
00280 
00281   m_runTag.setConnection(m_env, m_conn);
00282   int tagID = m_runTag.fetchID();
00283   cout <<"tag id="<< tagID << endl;
00284   if (!tagID) { 
00285     return ;
00286   }
00287   m_lmfrunTag.setConnection(m_env, m_conn);
00288   int lmftagID = m_lmfrunTag.fetchID();
00289   cout <<"lmf tag id="<< lmftagID << endl;
00290   if (!lmftagID) { 
00291     return ;
00292   }
00293 
00294   int my_max_run=max_run+1;
00295   try {
00296 
00297     int nruns=n_runs;
00298     m_vec_lmfruniov.reserve(nruns);
00299     
00300     Statement* stmt = m_conn->createStatement();
00301     stmt->setSQL("select run_num, run_start, run_end, tag_id, run_iov_id, subrun_num, subrun_start, subrun_end, lmf_iov_id, lmf_db_date, subrun_type from (SELECT run_iov.run_num, run_iov.run_start, run_iov.run_end, lmf_run_iov.tag_id, lmf_run_iov.run_iov_id, lmf_run_iov.subrun_num, lmf_run_iov.subrun_start, lmf_run_iov.subrun_end, lmf_run_iov.lmf_iov_id as lmf_iov_id, lmf_run_iov.db_timestamp as lmf_db_date, lmf_run_iov.subrun_type as subrun_type  FROM run_iov, lmf_run_iov "
00302                  "WHERE lmf_run_iov.run_iov_id=run_iov.iov_id and run_iov.tag_id = :tag_id "
00303                  " and lmf_run_iov.tag_id=:lmftag_id "
00304                  " and run_iov.run_num< :max_run "
00305                  " order by run_iov.run_num, lmf_run_iov.subrun_num DESC ) where rownum< :n_runs" );
00306     stmt->setInt(1, tagID);
00307     stmt->setInt(2, lmftagID);
00308     stmt->setInt(3, my_max_run);
00309     stmt->setInt(4, n_runs);
00310 
00311     DateHandler dh(m_env, m_conn);
00312     Tm runStart;
00313     Tm runEnd;
00314     Tm lrunStart;
00315     Tm lrunEnd;
00316     Tm ldbtime;
00317   
00318     ResultSet* rset = stmt->executeQuery();
00319     int i=0;
00320     while (i<nruns) {
00321       rset->next();
00322        int runNum = rset->getInt(1);
00323        Date startDate = rset->getDate(2);
00324        Date endDate = rset->getDate(3);
00325        //int ltag = rset->getInt(4);
00326        int lid=rset->getInt(5);
00327        int subrun=rset->getInt(6);
00328        Date lmfstartDate = rset->getDate(7);
00329        Date lmfendDate = rset->getDate(8);
00330        int liov_id=rset->getInt(9);
00331        Date lmfDBDate = rset->getDate(10);
00332        string lmf_type=rset->getString(11);
00333 
00334        runStart = dh.dateToTm( startDate );
00335        runEnd = dh.dateToTm( endDate );
00336        lrunStart = dh.dateToTm( lmfstartDate );
00337        lrunEnd = dh.dateToTm( lmfendDate );
00338        ldbtime = dh.dateToTm( lmfDBDate );
00339        
00340        RunIOV r ;
00341        r.setRunNumber(runNum);
00342        r.setRunStart(runStart);
00343        r.setRunEnd(runEnd);
00344        r.setRunTag(m_runTag);
00345        r.setID(lid);
00346     
00347        LMFRunIOV lr ;
00348        // da correggere qui
00349        lr.setRunIOV(r);
00350        lr.setSubRunNumber(subrun);
00351        lr.setSubRunStart(lrunStart);
00352        lr.setDBInsertionTime(ldbtime);
00353        lr.setSubRunEnd(lrunEnd);
00354        lr.setSubRunType(lmf_type);
00355        lr.setLMFRunTag(m_lmfrunTag);
00356        lr.setID(liov_id);
00357        m_vec_lmfruniov.push_back(lr);
00358       
00359       i++;
00360     }
00361    
00362 
00363     m_conn->terminateStatement(stmt);
00364   } catch (SQLException &e) {
00365     throw(runtime_error("RunIOV::fetchID:  "+e.getMessage()));
00366   }
00367 
00368 
00369 }

void LMFRunList::fetchRuns ( int  min_run,
int  max_run 
) throw (std::runtime_error)

Definition at line 155 of file LMFRunList.cc.

References IDBObject::checkConnection(), GenMuonPlsPt100GeV_cfg::cout, DateHandler::dateToTm(), e, lat::endl(), RunTag::fetchID(), LMFRunTag::fetchID(), i, IDBObject::m_conn, IDBObject::m_env, m_lmfrunTag, m_runTag, m_vec_lmfruniov, r, IDBObject::setConnection(), LMFRunIOV::setDBInsertionTime(), RunIOV::setID(), LMFRunIOV::setID(), LMFRunIOV::setLMFRunTag(), RunIOV::setRunEnd(), LMFRunIOV::setRunIOV(), RunIOV::setRunNumber(), RunIOV::setRunStart(), RunIOV::setRunTag(), LMFRunIOV::setSubRunEnd(), LMFRunIOV::setSubRunNumber(), LMFRunIOV::setSubRunStart(), and LMFRunIOV::setSubRunType().

00157 {
00158 
00159 
00160   this->checkConnection();
00161   int nruns=0;
00162 
00163   m_runTag.setConnection(m_env, m_conn);
00164   int tagID = m_runTag.fetchID();
00165   cout <<"tag id="<< tagID << endl;
00166   if (!tagID) { 
00167     return ;
00168   }
00169   m_lmfrunTag.setConnection(m_env, m_conn);
00170   int lmftagID = m_lmfrunTag.fetchID();
00171   cout <<"lmf tag id="<< lmftagID << endl;
00172   if (!lmftagID) { 
00173     return ;
00174   }
00175 
00176   int my_min_run=min_run-1;
00177   int my_max_run=max_run+1;
00178   try {
00179     Statement* stmt0 = m_conn->createStatement();
00180     stmt0->setSQL("SELECT count(lmf_run_iov.lmf_iov_id) FROM lmf_run_iov, run_iov "
00181                  "WHERE lmf_run_iov.run_iov_id= run_iov.iov_id "
00182                   "and run_iov.tag_id = :tag_id and lmf_run_iov.tag_id=:lmftag_id "
00183                   " and run_iov.run_num> :min_run and run_iov.run_num< :max_run "
00184                   );
00185     stmt0->setInt(1, tagID);
00186     stmt0->setInt(2, lmftagID);
00187     stmt0->setInt(3, my_min_run);
00188     stmt0->setInt(4, my_max_run);
00189   
00190     ResultSet* rset0 = stmt0->executeQuery();
00191     if (rset0->next()) {
00192       nruns = rset0->getInt(1);
00193     }
00194     m_conn->terminateStatement(stmt0);
00195 
00196     cout <<"number of LMF runs="<< nruns << endl;
00197     
00198     m_vec_lmfruniov.reserve(nruns);
00199     
00200     Statement* stmt = m_conn->createStatement();
00201     stmt->setSQL("SELECT run_iov.run_num, run_iov.run_start, run_iov.run_end, lmf_run_iov.tag_id, lmf_run_iov.run_iov_id, lmf_run_iov.subrun_num, lmf_run_iov.subrun_start, lmf_run_iov.subrun_end, lmf_run_iov.lmf_iov_id, lmf_run_iov.subrun_type, lmf_run_iov.db_timestamp FROM run_iov, lmf_run_iov "
00202                  "WHERE lmf_run_iov.run_iov_id=run_iov.iov_id and run_iov.tag_id = :tag_id "
00203                  " and lmf_run_iov.tag_id=:lmftag_id "
00204                  " and run_iov.run_num> :min_run and run_iov.run_num< :max_run "
00205                  " order by run_iov.run_num, lmf_run_iov.subrun_num " );
00206     stmt->setInt(1, tagID);
00207     stmt->setInt(2, lmftagID);
00208     stmt->setInt(3, my_min_run);
00209     stmt->setInt(4, my_max_run);
00210 
00211     DateHandler dh(m_env, m_conn);
00212     Tm runStart;
00213     Tm runEnd;
00214     Tm lrunStart;
00215     Tm ldbtime;
00216     Tm lrunEnd;
00217   
00218     ResultSet* rset = stmt->executeQuery();
00219     int i=0;
00220     while (i<nruns) {
00221       rset->next();
00222        int runNum = rset->getInt(1);
00223        Date startDate = rset->getDate(2);
00224        Date endDate = rset->getDate(3);
00225        //int ltag = rset->getInt(4);
00226        int lid=rset->getInt(5);
00227        int subrun=rset->getInt(6);
00228        Date lmfstartDate = rset->getDate(7);
00229        Date lmfendDate = rset->getDate(8);
00230        int liov_id=rset->getInt(9);
00231        std::string lmf_type=rset->getString(10);
00232        Date lmfdbtime = rset->getDate(11);
00233          
00234        runStart = dh.dateToTm( startDate );
00235        runEnd = dh.dateToTm( endDate );
00236        lrunStart = dh.dateToTm( lmfstartDate );
00237        lrunEnd = dh.dateToTm( lmfendDate );
00238        ldbtime = dh.dateToTm( lmfdbtime );
00239        
00240        RunIOV r ;
00241        r.setRunNumber(runNum);
00242        r.setRunStart(runStart);
00243        r.setRunEnd(runEnd);
00244        r.setRunTag(m_runTag);
00245        r.setID(lid);
00246     
00247        LMFRunIOV lr ;
00248        // da correggere qui
00249        lr.setRunIOV(r);
00250        lr.setSubRunNumber(subrun);
00251        lr.setSubRunStart(lrunStart);
00252        lr.setSubRunEnd(lrunEnd);
00253        lr.setLMFRunTag(m_lmfrunTag);
00254        lr.setDBInsertionTime(ldbtime);
00255        lr.setSubRunType(lmf_type);
00256        lr.setID(liov_id);
00257 
00258        m_vec_lmfruniov.push_back(lr);
00259       
00260       i++;
00261     }
00262    
00263 
00264     m_conn->terminateStatement(stmt);
00265   } catch (SQLException &e) {
00266     throw(runtime_error("RunIOV::fetchID:  "+e.getMessage()));
00267   }
00268 
00269 
00270 }

void LMFRunList::fetchRuns (  )  throw (std::runtime_error)

Definition at line 52 of file LMFRunList.cc.

References IDBObject::checkConnection(), GenMuonPlsPt100GeV_cfg::cout, DateHandler::dateToTm(), e, lat::endl(), RunTag::fetchID(), LMFRunTag::fetchID(), i, IDBObject::m_conn, IDBObject::m_env, m_lmfrunTag, m_runTag, m_vec_lmfruniov, r, IDBObject::setConnection(), LMFRunIOV::setDBInsertionTime(), RunIOV::setID(), LMFRunIOV::setID(), LMFRunIOV::setLMFRunTag(), RunIOV::setRunEnd(), LMFRunIOV::setRunIOV(), RunIOV::setRunNumber(), RunIOV::setRunStart(), RunIOV::setRunTag(), LMFRunIOV::setSubRunEnd(), LMFRunIOV::setSubRunNumber(), LMFRunIOV::setSubRunStart(), and LMFRunIOV::setSubRunType().

Referenced by EcalCondDBInterface::fetchLMFRunList().

00054 {
00055 
00056 
00057   this->checkConnection();
00058   int nruns=0;
00059 
00060   m_runTag.setConnection(m_env, m_conn);
00061   int tagID = m_runTag.fetchID();
00062   cout <<"tag id="<< tagID << endl;
00063   if (!tagID) { 
00064     return ;
00065   }
00066   m_lmfrunTag.setConnection(m_env, m_conn);
00067   int lmftagID = m_lmfrunTag.fetchID();
00068   cout <<"lmf tag id="<< lmftagID << endl;
00069   if (!lmftagID) { 
00070     return ;
00071   }
00072 
00073   try {
00074     Statement* stmt0 = m_conn->createStatement();
00075     stmt0->setSQL("SELECT count(lmf_run_iov.lmf_iov_id) FROM lmf_run_iov, run_iov "
00076                  "WHERE lmf_run_iov.run_iov_id= run_iov.iov_id and run_iov.tag_id = :tag_id and lmf_run_iov.tag_id=:lmftag_id " );
00077     stmt0->setInt(1, tagID);
00078     stmt0->setInt(2, lmftagID);
00079   
00080     ResultSet* rset0 = stmt0->executeQuery();
00081     if (rset0->next()) {
00082       nruns = rset0->getInt(1);
00083     }
00084     m_conn->terminateStatement(stmt0);
00085 
00086     cout <<"number of LMF runs is ="<< nruns << endl;
00087     
00088     m_vec_lmfruniov.reserve(nruns);
00089     
00090     Statement* stmt = m_conn->createStatement();
00091     stmt->setSQL("SELECT run_iov.run_num, run_iov.run_start, run_iov.run_end, lmf_run_iov.tag_id, lmf_run_iov.run_iov_id, lmf_run_iov.subrun_num, lmf_run_iov.subrun_start, lmf_run_iov.subrun_end, lmf_run_iov.subrun_type, lmf_run_iov.db_timestamp, lmf_run_iov.lmf_iov_id FROM run_iov, lmf_run_iov "
00092                  "WHERE lmf_run_iov.run_iov_id=run_iov.iov_id and run_iov.tag_id = :tag_id  order by run_iov.run_num, lmf_run_iov.subrun_num " );
00093     stmt->setInt(1, tagID);
00094 
00095     DateHandler dh(m_env, m_conn);
00096     Tm runStart;
00097     Tm runEnd;
00098     Tm lrunStart;
00099     Tm ldbtime;
00100     Tm lrunEnd;
00101   
00102     ResultSet* rset = stmt->executeQuery();
00103     int i=0;
00104     while (i<nruns) {
00105       rset->next();
00106        int runNum = rset->getInt(1);
00107        Date startDate = rset->getDate(2);
00108        Date endDate = rset->getDate(3);
00109        // int ltag = rset->getInt(4);
00110        int lid=rset->getInt(5);
00111        int subrun=rset->getInt(6);
00112        Date lmfstartDate = rset->getDate(7);
00113        Date lmfendDate = rset->getDate(8);
00114        std::string lmf_type= rset->getString(9);
00115        Date lmfDBtime = rset->getDate(10);
00116        int liov_id=rset->getInt(11);
00117          
00118        runStart = dh.dateToTm( startDate );
00119        runEnd = dh.dateToTm( endDate );
00120        lrunStart = dh.dateToTm( lmfstartDate );
00121        lrunEnd = dh.dateToTm( lmfendDate );
00122        ldbtime = dh.dateToTm( lmfDBtime );
00123        
00124        RunIOV r ;
00125        r.setRunNumber(runNum);
00126        r.setRunStart(runStart);
00127        r.setRunEnd(runEnd);
00128        r.setRunTag(m_runTag);
00129        r.setID(lid);
00130     
00131        LMFRunIOV lr ;
00132        // da correggere qui
00133        lr.setRunIOV(r);
00134        lr.setSubRunNumber(subrun);
00135        lr.setSubRunStart(lrunStart);
00136        lr.setSubRunEnd(lrunEnd);
00137        lr.setDBInsertionTime(ldbtime);
00138        lr.setSubRunType(lmf_type);
00139        lr.setLMFRunTag(m_lmfrunTag);
00140        lr.setID(liov_id);
00141        m_vec_lmfruniov.push_back(lr);
00142       
00143       i++;
00144     }
00145    
00146 
00147     m_conn->terminateStatement(stmt);
00148   } catch (SQLException &e) {
00149     throw(runtime_error("RunIOV::fetchID:  "+e.getMessage()));
00150   }
00151 
00152 
00153 }

LMFRunTag LMFRunList::getLMFRunTag (  )  const

Definition at line 41 of file LMFRunList.cc.

References m_lmfrunTag.

00042 {
00043   return m_lmfrunTag;
00044 }

std::vector< LMFRunIOV > LMFRunList::getRuns (  ) 

Definition at line 46 of file LMFRunList.cc.

References m_vec_lmfruniov.

Referenced by popcon::EcalLaserHandler::getNewObjects().

00047 {
00048   return m_vec_lmfruniov;
00049 }

RunTag LMFRunList::getRunTag (  )  const

Definition at line 37 of file LMFRunList.cc.

References m_runTag.

00038 {
00039   return m_runTag;
00040 }

void LMFRunList::setLMFRunTag ( LMFRunTag  tag  ) 

Definition at line 29 of file LMFRunList.cc.

References m_lmfrunTag.

Referenced by EcalCondDBInterface::fetchLMFRunList(), EcalCondDBInterface::fetchLMFRunListLastNRuns(), and popcon::EcalLaserHandler::getNewObjects().

00030 {
00031   if (tag != m_lmfrunTag) {
00032     m_lmfrunTag = tag;
00033   }
00034 }

void LMFRunList::setRunTag ( RunTag  tag  ) 

Definition at line 23 of file LMFRunList.cc.

References m_runTag.

Referenced by EcalCondDBInterface::fetchLMFRunList(), EcalCondDBInterface::fetchLMFRunListLastNRuns(), and popcon::EcalLaserHandler::getNewObjects().

00024 {
00025   if (tag != m_runTag) {
00026     m_runTag = tag;
00027   }
00028 }


Friends And Related Function Documentation

friend class EcalCondDBInterface [friend]

Reimplemented from IDBObject.

Definition at line 18 of file LMFRunList.h.


Member Data Documentation

LMFRunTag LMFRunList::m_lmfrunTag [private]

Definition at line 40 of file LMFRunList.h.

Referenced by fetchLastNRuns(), fetchRuns(), getLMFRunTag(), and setLMFRunTag().

RunTag LMFRunList::m_runTag [private]

Definition at line 39 of file LMFRunList.h.

Referenced by fetchLastNRuns(), fetchRuns(), getRunTag(), and setRunTag().

std::vector<LMFRunIOV> LMFRunList::m_vec_lmfruniov [private]

Definition at line 38 of file LMFRunList.h.

Referenced by fetchLastNRuns(), fetchRuns(), and getRuns().


The documentation for this class was generated from the following files:
Generated on Tue Jun 9 18:27:51 2009 for CMSSW by  doxygen 1.5.4