CMS 3D CMS Logo

List of all members | Public Member Functions | Private Attributes
RunInfoHandler Class Reference

#include <RunInfoHandler.h>

Inheritance diagram for RunInfoHandler:
popcon::PopConSourceHandler< RunInfo >

Public Member Functions

void getNewObjects ()
 
std::string id () const
 
 RunInfoHandler (const edm::ParameterSet &pset)
 
 ~RunInfoHandler ()
 
- Public Member Functions inherited from popcon::PopConSourceHandler< RunInfo >
void convertFromOld ()
 
SummarydummySummary (typename OldContainer::value_type const &) const
 
void initialize (const cond::persistency::Session &dbSession, cond::TagInfo_t const &tagInfo, cond::LogDBEntry_t const &logDBEntry)
 
Ref lastPayload () const
 
cond::LogDBEntry_t const & logDBEntry () const
 
std::pair< Container const *, std::string const > operator() (const cond::persistency::Session &session, cond::TagInfo_t const &tagInfo, cond::LogDBEntry_t const &logDBEntry) const
 
 PopConSourceHandler ()
 
Container const & returnData ()
 
void sort ()
 
cond::TagInfo_t const & tagInfo () const
 
std::string const & userTextLog () const
 
virtual ~PopConSourceHandler ()
 

Private Attributes

edm::ParameterSet m_connectionPset
 
std::string m_connectionString
 
std::string m_dcsenv_schema
 
std::string m_name
 
std::string m_runinfo_schema
 
unsigned long long m_since
 

Additional Inherited Members

- Public Types inherited from popcon::PopConSourceHandler< RunInfo >
typedef std::vector< Triplet > Container
 
typedef std::vector< std::pair< RunInfo *, cond::Time_t > > OldContainer
 
typedef PopConSourceHandler< RunInfoself
 
typedef cond::Summary Summary
 
typedef cond::Time_t Time_t
 
typedef RunInfo value_type
 
- Protected Member Functions inherited from popcon::PopConSourceHandler< RunInfo >
int add (value_type *payload, Summary *summary, Time_t time)
 
cond::persistency::SessiondbSession () const
 
- Protected Attributes inherited from popcon::PopConSourceHandler< RunInfo >
OldContainer m_to_transfer
 
std::string m_userTextLog
 

Detailed Description

Definition at line 10 of file RunInfoHandler.h.

Constructor & Destructor Documentation

RunInfoHandler::~RunInfoHandler ( )

Definition at line 17 of file RunInfoHandler.cc.

Referenced by id().

17 {}
RunInfoHandler::RunInfoHandler ( const edm::ParameterSet pset)

Definition at line 8 of file RunInfoHandler.cc.

Referenced by id().

8  :
9  m_since( pset.getParameter<unsigned long long>( "runNumber" ) )
10  ,m_name( pset.getUntrackedParameter<std::string>( "name", "RunInfoHandler" ) )
11  ,m_runinfo_schema( pset.getUntrackedParameter<std::string>( "RunInfoSchema", "CMS_RUNINFO" ) )
12  ,m_dcsenv_schema( pset.getUntrackedParameter<std::string>( "DCSEnvSchema", "CMS_DCS_ENV_PVSS_COND") )
13  ,m_connectionString( pset.getParameter<std::string>( "connect" ) )
14  ,m_connectionPset( pset.getParameter<edm::ParameterSet>( "DBParameters" ) ) {
15 }
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
unsigned long long m_since
std::string m_connectionString
edm::ParameterSet m_connectionPset
std::string m_name
std::string m_dcsenv_schema
std::string m_runinfo_schema

Member Function Documentation

void RunInfoHandler::getNewObjects ( )
virtual

Implements popcon::PopConSourceHandler< RunInfo >.

Definition at line 19 of file RunInfoHandler.cc.

References RunInfoUpdate::appendNewRun(), popcon::PopConSourceHandler< RunInfo >::dbSession(), RunInfo::Fake_RunInfo(), cond::TagInfo_t::lastInterval, cond::TagInfo_t::lastPayloadToken, m_connectionPset, m_connectionString, m_dcsenv_schema, m_name, m_runinfo_schema, m_since, popcon::PopConSourceHandler< RunInfo >::m_to_transfer, popcon::PopConSourceHandler< RunInfo >::m_userTextLog, cond::TagInfo_t::name, alignCSCRings::r, RunInfoRead::readData(), cond::TagInfo_t::size, findQualityFiles::size, and popcon::PopConSourceHandler< RunInfo >::tagInfo().

19  {
20  //check whats already inside of database
21  edm::LogInfo( "RunInfoHandler" ) << "[" << "RunInfoHandler::" << __func__ << "]:" << m_name << ": "
22  << "Destination Tag Info: name " << tagInfo().name
23  << ", size " << tagInfo().size
24  << ", last object valid since " << tagInfo().lastInterval.first
25  << ", hash " << tagInfo().lastPayloadToken << std::endl;
26  edm::LogInfo( "RunInfoHandler" ) << "[" << "RunInfoHandler::" << __func__ << "]:" << m_name << ": runnumber/first since = " << m_since << std::endl;
27 
28  //check if a transfer is needed:
29  //if the new run number is smaller than or equal to the latest IOV, exit.
30  //This is needed as now the IOV Editor does not always protect for insertions:
31  //ANY and VALIDATION sychronizations are allowed to write in the past.
32  if( tagInfo().size > 0 && tagInfo().lastInterval.first >= m_since ) {
33  edm::LogWarning( "RunInfoHandler" ) << "[" << "RunInfoHandler::" << __func__ << "]:" << m_name << ": "
34  << "last IOV " << tagInfo().lastInterval.first
35  << ( tagInfo().lastInterval.first == m_since ? " is equal to" : " is larger than" )
36  << " the run proposed for insertion " << m_since
37  << ". No transfer needed." << std::endl;
38  return;
39  }
40 
41  RunInfo* r = new RunInfo();
42 
43  //fill with null runinfo if empty run are found beetween the two last valid ones
44  size_t n_empty_run = 0;
45  if( tagInfo().size > 0 && (tagInfo().lastInterval.first + 1) < m_since ) {
46  n_empty_run = m_since - tagInfo().lastInterval.first - 1;
47  edm::LogInfo( "RunInfoHandler" ) << "[" << "RunInfoHandler::" << __func__ << "]:" << m_name << ": "
48  << "entering fake run from "
49  << tagInfo().lastInterval.first + 1
50  << " to " << m_since - 1
51  << std::endl;
52  }
53  std::ostringstream ss;
54  // transfer fake run for 1 to since for the first time
55  if( tagInfo().size == 0 && m_since != 1 ) {
56  m_to_transfer.push_back( std::make_pair( (RunInfo*)(r->Fake_RunInfo()), 1 ) );
57  ss << "fake run number: " << 1 << ", ";
58  }
59  if ( n_empty_run != 0 ) {
60  m_to_transfer.push_back(std::make_pair( (RunInfo*)(r->Fake_RunInfo()), tagInfo().lastInterval.first + 1 ) );
61  ss << "fake run number: " << tagInfo().lastInterval.first + 1 << ", ";
62  }
63 
64  //reading from omds
66  *r = rn.readData( m_runinfo_schema, m_dcsenv_schema, (int)m_since );
67  m_to_transfer.push_back( std::make_pair( (RunInfo*)r, m_since) );
68  ss << "run number: " << m_since << ";";
69  m_userTextLog = ss.str();
70  edm::LogInfo( "RunInfoHandler" ) << "[" << "RunInfoHandler::" << __func__ << "]:" << m_name << ": END." << std::endl;
71  // update runinfo table in conditions db
72  RunInfoUpdate updater( dbSession() );
73  updater.appendNewRun( *r );
74 }
size
Write out results.
cond::persistency::Session & dbSession() const
unsigned long long m_since
std::string m_connectionString
size_t size
Definition: Types.h:76
edm::ParameterSet m_connectionPset
std::string name
Definition: Types.h:72
cond::ValidityInterval lastInterval
Definition: Types.h:74
std::string lastPayloadToken
Definition: Types.h:75
std::string m_name
static RunInfo * Fake_RunInfo()
Definition: RunInfo.cc:4
std::string m_dcsenv_schema
std::string m_runinfo_schema
cond::TagInfo_t const & tagInfo() const
std::string RunInfoHandler::id ( ) const
inlinevirtual

Implements popcon::PopConSourceHandler< RunInfo >.

Definition at line 13 of file RunInfoHandler.h.

References m_name, muonDTDigis_cfi::pset, RunInfoHandler(), and ~RunInfoHandler().

13 { return m_name; }
std::string m_name

Member Data Documentation

edm::ParameterSet RunInfoHandler::m_connectionPset
private

Definition at line 25 of file RunInfoHandler.h.

Referenced by getNewObjects().

std::string RunInfoHandler::m_connectionString
private

Definition at line 24 of file RunInfoHandler.h.

Referenced by getNewObjects().

std::string RunInfoHandler::m_dcsenv_schema
private

Definition at line 23 of file RunInfoHandler.h.

Referenced by getNewObjects().

std::string RunInfoHandler::m_name
private

Definition at line 19 of file RunInfoHandler.h.

Referenced by getNewObjects(), and id().

std::string RunInfoHandler::m_runinfo_schema
private

Definition at line 22 of file RunInfoHandler.h.

Referenced by getNewObjects().

unsigned long long RunInfoHandler::m_since
private

Definition at line 18 of file RunInfoHandler.h.

Referenced by getNewObjects().