11#include < memory>
22
33#include " CondCore/CondDB/interface/IOVProxy.h"
4+ #include " CondCore/CondDB/interface/Time.h"
45#include " FWCore/MessageLogger/interface/MessageLogger.h"
56#include " SessionImpl.h"
67
8+ using cond::time::lumiIdToLumiNr;
9+ using cond::time::lumiIdToRun;
710namespace cond {
811
912 namespace persistency {
@@ -125,18 +128,8 @@ namespace cond {
125128 size_t numberOfQueries = 0 ;
126129 };
127130
128- IOVProxy::IOVProxy () : m_data(), m_session() {}
129-
130131 IOVProxy::IOVProxy (const std::shared_ptr<SessionImpl>& session) : m_data(new IOVProxyData), m_session(session) {}
131132
132- IOVProxy::IOVProxy (const IOVProxy& rhs) : m_data(rhs.m_data), m_session(rhs.m_session) {}
133-
134- IOVProxy& IOVProxy::operator =(const IOVProxy& rhs) {
135- m_data = rhs.m_data ;
136- m_session = rhs.m_session ;
137- return *this ;
138- }
139-
140133 void IOVProxy::load (const std::string& tagName) {
141134 boost::posix_time::ptime notime;
142135 load (tagName, notime);
@@ -293,8 +286,47 @@ namespace cond {
293286 throwException (" The transaction is not active." , ctx);
294287 }
295288
289+ void printTagInfoAndRanges (edm::LogSystem& log,
290+ const IOVProxyData& iovProxyData,
291+ cond::Time_t lowerGroup,
292+ cond::Time_t higherGroup) {
293+ log << " Fetched new IOV for '" << iovProxyData.tagInfo .name << " '\n "
294+ << " payload type: " << iovProxyData.tagInfo .payloadType << " \n "
295+ << " request interval [ " << lowerGroup << " , " << higherGroup << " ]\n "
296+ << " new range [ " << iovProxyData.groupLowerIov << " , " << iovProxyData.groupHigherIov << " ]\n " ;
297+ if (iovProxyData.tagInfo .timeType == cond::TimeType::lumiid) {
298+ log << " request interval (run, LS): [ (" // comments to override code-format
299+ << lumiIdToRun (lowerGroup) << " , " << lumiIdToLumiNr (lowerGroup) << " ) , (" //
300+ << lumiIdToRun (higherGroup) << " , " << lumiIdToLumiNr (higherGroup) << " ) ]\n "
301+ << " new range (run, LS): [ (" //
302+ << lumiIdToRun (iovProxyData.groupLowerIov ) << " , " << lumiIdToLumiNr (iovProxyData.groupLowerIov ) << " ) , ("
303+ << lumiIdToRun (iovProxyData.groupHigherIov ) << " , " << lumiIdToLumiNr (iovProxyData.groupHigherIov )
304+ << " ) ]\n " ;
305+ }
306+ }
307+
308+ void printIovsAndHashesOfSequence (edm::LogSystem& log, const IOVProxyData& iovProxyData) {
309+ const bool isLumiid = iovProxyData.tagInfo .timeType == cond::TimeType::lumiid;
310+ log << " #entries " << iovProxyData.iovSequence .size () << " \n "
311+ << " sequence [iov " << (isLumiid ? " (run, LS)" : " " ) << " , hash]:\n " ;
312+ for (const auto & [iov, hash] : iovProxyData.iovSequence ) {
313+ log << iov << " " ;
314+ if (isLumiid) {
315+ log << " (" << lumiIdToRun (iov) << " , " << lumiIdToLumiNr (iov) << " )" ;
316+ }
317+ log << " , " << hash << " ,\n " ;
318+ }
319+ }
320+
321+ void printIOVSequenceDiagnostics (const IOVProxyData& iovProxyData,
322+ cond::Time_t lowerGroup,
323+ cond::Time_t higherGroup) {
324+ edm::LogSystem log (" NewIOV" ); // creating here so everything is in one message
325+ printTagInfoAndRanges (log, iovProxyData, lowerGroup, higherGroup);
326+ printIovsAndHashesOfSequence (log, iovProxyData);
327+ }
328+
296329 void IOVProxy::fetchSequence (cond::Time_t lowerGroup, cond::Time_t higherGroup) {
297- bool firstTime = m_data->iovSequence .empty ();
298330 m_data->iovSequence .clear ();
299331 m_session->iovSchema ().iovTable ().select (
300332 m_data->tagInfo .name , lowerGroup, higherGroup, m_data->snapshotTime , m_data->iovSequence );
@@ -315,13 +347,11 @@ namespace cond {
315347 m_data->groupHigherIov = cond::time::MAX_VAL;
316348 }
317349 }
318- if (not firstTime) {
319- edm::LogSystem (" NewIOV" ) << " Fetched new IOV for '" << m_data->tagInfo .name << " ' request interval [ "
320- << lowerGroup << " , " << higherGroup << " ] new range [ " << m_data->groupLowerIov
321- << " , " << m_data->groupHigherIov << " ] #entries " << m_data->iovSequence .size ();
322- }
323-
324350 m_data->numberOfQueries ++;
351+
352+ if (m_printDebug) {
353+ printIOVSequenceDiagnostics (*m_data, lowerGroup, higherGroup);
354+ }
325355 }
326356
327357 cond::Iov_t IOVProxy::getInterval (cond::Time_t time) {
0 commit comments