CMS 3D CMS Logo

RunInfoHandler.cc
Go to the documentation of this file.
5 #include <iostream>
6 #include <vector>
7 
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 
17 
19  //check whats already inside of database
20  edm::LogInfo("RunInfoHandler") << "["
21  << "RunInfoHandler::" << __func__ << "]:" << m_name << ": "
22  << "Destination Tag Info: name " << tagInfo().name << ", size " << tagInfo().size
23  << ", last object valid since " << tagInfo().lastInterval.since << ", hash "
24  << tagInfo().lastInterval.payloadId << std::endl;
25  edm::LogInfo("RunInfoHandler") << "["
26  << "RunInfoHandler::" << __func__ << "]:" << m_name
27  << ": runnumber/first since = " << m_since << std::endl;
28 
29  //check if a transfer is needed:
30  //if the new run number is smaller than or equal to the latest IOV, exit.
31  //This is needed as now the IOV Editor does not always protect for insertions:
32  //ANY and VALIDATION sychronizations are allowed to write in the past.
33  if (tagInfo().size > 0 && tagInfo().lastInterval.since >= m_since) {
34  edm::LogWarning("RunInfoHandler") << "["
35  << "RunInfoHandler::" << __func__ << "]:" << m_name << ": "
36  << "last IOV " << tagInfo().lastInterval.since
37  << (tagInfo().lastInterval.since == m_since ? " is equal to" : " is larger than")
38  << " the run proposed for insertion " << m_since << ". No transfer needed."
39  << std::endl;
40  return;
41  }
42 
43  RunInfo* r = new RunInfo();
44 
45  //fill with null runinfo if empty run are found beetween the two last valid ones
46  size_t n_empty_run = 0;
47  if (tagInfo().size > 0 && (tagInfo().lastInterval.since + 1) < m_since) {
48  n_empty_run = m_since - tagInfo().lastInterval.since - 1;
49  edm::LogInfo("RunInfoHandler") << "["
50  << "RunInfoHandler::" << __func__ << "]:" << m_name << ": "
51  << "entering fake run from " << tagInfo().lastInterval.since + 1 << " to "
52  << m_since - 1 << std::endl;
53  }
54  std::ostringstream ss;
55  // transfer fake run for 1 to since for the first time
56  if (tagInfo().size == 0 && m_since != 1) {
57  m_to_transfer.push_back(std::make_pair((RunInfo*)(r->Fake_RunInfo()), 1));
58  ss << "fake run number: " << 1 << ", ";
59  }
60  if (n_empty_run != 0) {
61  m_to_transfer.push_back(std::make_pair((RunInfo*)(r->Fake_RunInfo()), tagInfo().lastInterval.since + 1));
62  ss << "fake run number: " << tagInfo().lastInterval.since + 1 << ", ";
63  }
64 
65  //reading from omds
68  m_to_transfer.push_back(std::make_pair((RunInfo*)r, m_since));
69  ss << "run number: " << m_since << ";";
70  m_userTextLog = ss.str();
71  edm::LogInfo("RunInfoHandler") << "["
72  << "RunInfoHandler::" << __func__ << "]:" << m_name << ": END." << std::endl;
73  // update runinfo table in conditions db
74  RunInfoUpdate updater(dbSession());
75  updater.appendNewRun(*r);
76 }
RunInfoHandler.h
RunInfoHandler::getNewObjects
void getNewObjects() override
Definition: RunInfoHandler.cc:18
popcon::PopConSourceHandler< RunInfo >::m_to_transfer
OldContainer m_to_transfer
Definition: PopConSourceHandler.h:162
MessageLogger.h
RunInfoRead.h
RunInfoUpdate::appendNewRun
void appendNewRun(const RunInfo &run)
Definition: RunInfoUpdate.cc:33
popcon::PopConSourceHandler< RunInfo >::dbSession
cond::persistency::Session & dbSession() const
Definition: PopConSourceHandler.h:144
RunInfoHandler::m_since
unsigned long long m_since
Definition: RunInfoHandler.h:18
edm
HLT enums.
Definition: AlignableModifier.h:19
edm::LogInfo
Definition: MessageLogger.h:254
RunInfoRead::readData
RunInfo readData(const std::string &runinfo_schema, const std::string &dcsenv_schema, const int r_number)
Definition: RunInfoRead.cc:49
cond::TagInfo_t::name
std::string name
Definition: Types.h:72
RunInfoHandler::m_connectionPset
edm::ParameterSet m_connectionPset
Definition: RunInfoHandler.h:25
RunInfoHandler::m_runinfo_schema
std::string m_runinfo_schema
Definition: RunInfoHandler.h:22
contentValuesCheck.ss
ss
Definition: contentValuesCheck.py:33
RunInfoUpdate.h
RunInfo
Definition: RunInfo.h:18
RunInfoHandler::RunInfoHandler
RunInfoHandler(const edm::ParameterSet &pset)
Definition: RunInfoHandler.cc:8
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
edm::LogWarning
Definition: MessageLogger.h:141
edm::ParameterSet
Definition: ParameterSet.h:36
popcon::PopConSourceHandler< RunInfo >::tagInfo
cond::TagInfo_t const & tagInfo() const
Definition: PopConSourceHandler.h:78
cond::Iov_t::payloadId
Hash payloadId
Definition: Types.h:55
ParameterSet
Definition: Functions.h:16
cond::Iov_t::since
Time_t since
Definition: Types.h:53
RunInfoUpdate
Definition: RunInfoUpdate.h:12
RunInfoHandler::m_connectionString
std::string m_connectionString
Definition: RunInfoHandler.h:24
alignCSCRings.r
r
Definition: alignCSCRings.py:93
cond::TagInfo_t::lastInterval
Iov_t lastInterval
Definition: Types.h:73
RunInfoHandler::~RunInfoHandler
~RunInfoHandler() override
Definition: RunInfoHandler.cc:16
std
Definition: JetResolutionObject.h:76
RunInfoHandler::m_name
std::string m_name
Definition: RunInfoHandler.h:19
RunInfoRead
Definition: RunInfoRead.h:8
RunInfoHandler::m_dcsenv_schema
std::string m_dcsenv_schema
Definition: RunInfoHandler.h:23
popcon::PopConSourceHandler< RunInfo >::m_userTextLog
std::string m_userTextLog
Definition: PopConSourceHandler.h:168
muonDTDigis_cfi.pset
pset
Definition: muonDTDigis_cfi.py:27
cond::TagInfo_t::size
size_t size
Definition: Types.h:74
findQualityFiles.size
size
Write out results.
Definition: findQualityFiles.py:443