CMS 3D CMS Logo

List of all members | Public Member Functions | Private Attributes
popcon::PopConBTransitionSourceHandler< T > Class Template Reference

#include <PopConBTransitionSourceHandler.h>

Inheritance diagram for popcon::PopConBTransitionSourceHandler< T >:
popcon::PopConSourceHandler< T >

Public Member Functions

bool checkBOn ()
 
void getNewObjects () final
 
virtual void getObjectsForBTransition (bool isBOn)
 
std::string id () const final
 
 PopConBTransitionSourceHandler (edm::ParameterSet const &pset)
 
 ~PopConBTransitionSourceHandler () override
 
- Public Member Functions inherited from popcon::PopConSourceHandler< T >
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 ()
 
cond::TagInfo_t const & tagInfo () const
 
std::string const & userTextLog () const
 
virtual ~PopConSourceHandler ()
 

Private Attributes

cond::persistency::ConnectionPool m_connection
 
edm::ParameterSet m_connectionPset
 
std::string m_connectionString
 
double m_currentThreshold
 
unsigned long long m_run
 
std::string m_tagForBOff
 
std::string m_tagForBOn
 
std::string m_tagForRunInfo
 

Additional Inherited Members

- Public Types inherited from popcon::PopConSourceHandler< T >
typedef std::map< Time_t, std::shared_ptr< T > > Container
 
typedef std::unique_ptr< TRef
 
typedef PopConSourceHandler< Tself
 
typedef cond::Time_t Time_t
 
typedef T value_type
 
- Protected Member Functions inherited from popcon::PopConSourceHandler< T >
cond::persistency::SessiondbSession () const
 
- Protected Attributes inherited from popcon::PopConSourceHandler< T >
Container m_iovs
 
std::vector< std::pair< T *, Time_t > > m_to_transfer
 
std::string m_userTextLog
 

Detailed Description

template<class T>
class popcon::PopConBTransitionSourceHandler< T >

Definition at line 14 of file PopConBTransitionSourceHandler.h.

Constructor & Destructor Documentation

◆ PopConBTransitionSourceHandler()

Definition at line 16 of file PopConBTransitionSourceHandler.h.

References cond::persistency::ConnectionPool::configure(), popcon::PopConBTransitionSourceHandler< T >::m_connection, popcon::PopConBTransitionSourceHandler< T >::m_connectionPset, and cond::persistency::ConnectionPool::setParameters().

17  : m_run(pset.getParameter<edm::ParameterSet>("BTransition").getParameter<unsigned long long>("runNumber")),
18  m_currentThreshold(pset.getParameter<edm::ParameterSet>("BTransition")
19  .getUntrackedParameter<double>("currentThreshold", 18000.)),
21  pset.getParameter<edm::ParameterSet>("BTransition").getParameter<std::string>("tagForRunInfo")),
22  m_tagForBOff(pset.getParameter<edm::ParameterSet>("BTransition").getParameter<std::string>("tagForBOff")),
23  m_tagForBOn(pset.getParameter<edm::ParameterSet>("BTransition").getParameter<std::string>("tagForBOn")),
24  m_connectionString(pset.getParameter<edm::ParameterSet>("BTransition").getParameter<std::string>("connect")),
26  pset.getParameter<edm::ParameterSet>("BTransition").getParameter<edm::ParameterSet>("DBParameters")) {
27  edm::LogInfo("PopConBTransitionSourceHandler") << "["
28  << "PopConBTransitionSourceHandler:" << __func__ << "]: "
29  << "Initialising Connection Pool" << std::endl;
32  }
T getParameter(std::string const &) const
Definition: ParameterSet.h:307
void setParameters(const edm::ParameterSet &connectionPset)
T getUntrackedParameter(std::string const &, T const &) const
Log< level::Info, false > LogInfo

◆ ~PopConBTransitionSourceHandler()

template<class T >
popcon::PopConBTransitionSourceHandler< T >::~PopConBTransitionSourceHandler ( )
inlineoverride

Definition at line 34 of file PopConBTransitionSourceHandler.h.

34 {}

Member Function Documentation

◆ checkBOn()

template<class T >
bool popcon::PopConBTransitionSourceHandler< T >::checkBOn ( )
inline

Definition at line 38 of file PopConBTransitionSourceHandler.h.

References popcon::PopConSourceHandler< T >::dbSession(), cond::persistency::Session::fetchPayload(), cond::persistency::IOVProxy::getInterval(), cond::persistency::IOVProxy::loadedSize(), LogDebug, RunInfoPI::m_avg_current, popcon::PopConBTransitionSourceHandler< T >::m_currentThreshold, popcon::PopConBTransitionSourceHandler< T >::m_run, popcon::PopConBTransitionSourceHandler< T >::m_tagForRunInfo, cond::Iov_t::payloadId, cond::persistency::Session::readIov(), cond::Iov_t::since, and cond::persistency::Session::transaction().

Referenced by popcon::PopConBTransitionSourceHandler< T >::getNewObjects().

38  {
39  //the output boolean is set to true as default
40  bool isBOn = true;
42  //reading RunInfo from Conditions
44  edm::LogInfo("PopConBTransitionSourceHandler")
45  << "["
46  << "PopConBTransitionSourceHandler::" << __func__ << "]: "
47  << "Loading tag for RunInfo " << m_tagForRunInfo << " and IOV valid for run number: " << m_run << std::endl;
49  cond::Iov_t currentIov = iov.getInterval(m_run);
50  LogDebug("PopConBTransitionSourceHandler")
51  << "Loaded IOV sequence from tag " << m_tagForRunInfo << " with size: " << iov.loadedSize()
52  << ", IOV valid for run number " << m_run << " starting from: " << currentIov.since
53  << ", with corresponding payload hash: " << currentIov.payloadId << std::endl;
54  //accessing the average magnet current for the run
55  double current_default = -1;
56  double avg_current = current_default;
57  avg_current = session.fetchPayload<RunInfo>(currentIov.payloadId)->m_avg_current;
58  LogDebug("PopConBTransitionSourceHandler")
59  << "Comparing value of magnet current: " << avg_current << " A for run: " << m_run
60  << " with the corresponding threshold: " << m_currentThreshold << " A." << std::endl;
61  //comparing the magnet current with the user defined threshold
62  if (avg_current != current_default && avg_current <= m_currentThreshold)
63  isBOn = false;
64  edm::LogInfo("PopConBTransitionSourceHandler")
65  << "["
66  << "PopConBTransitionSourceHandler::" << __func__ << "]: "
67  << "The magnet was " << (isBOn ? "ON" : "OFF") << " during run " << m_run << std::endl;
68  trans.close();
69  return isBOn;
70  }
Time_t since
Definition: Types.h:53
std::unique_ptr< T > fetchPayload(const cond::Hash &payloadHash)
Definition: Session.h:213
Transaction & transaction()
Definition: Session.cc:52
Hash payloadId
Definition: Types.h:55
cond::Iov_t getInterval(cond::Time_t time)
Definition: IOVProxy.cc:320
IOVProxy readIov(const std::string &tag)
Definition: Session.cc:63
Log< level::Info, false > LogInfo
cond::persistency::Session & dbSession() const
#define LogDebug(id)

◆ getNewObjects()

template<class T >
void popcon::PopConBTransitionSourceHandler< T >::getNewObjects ( )
inlinefinalvirtual

Implements popcon::PopConSourceHandler< T >.

Definition at line 118 of file PopConBTransitionSourceHandler.h.

References popcon::PopConBTransitionSourceHandler< T >::checkBOn(), popcon::PopConBTransitionSourceHandler< T >::getObjectsForBTransition(), cond::TagInfo_t::lastInterval, popcon::PopConBTransitionSourceHandler< T >::m_run, cond::TagInfo_t::name, cond::Iov_t::payloadId, cond::Iov_t::since, cond::TagInfo_t::size, and popcon::PopConSourceHandler< T >::tagInfo().

118  {
119  //check whats already inside of database
120  edm::LogInfo("PopConBTransitionSourceHandler")
121  << "["
122  << "PopConBTransitionSourceHandler::" << __func__ << "]: "
123  << "Destination Tag Info: name " << this->tagInfo().name << ", size " << this->tagInfo().size
124  << ", last object valid since " << this->tagInfo().lastInterval.since << ", hash "
125  << this->tagInfo().lastInterval.payloadId << std::endl;
126  //check if a transfer is needed:
127  //if the new run number is smaller than or equal to the latest IOV, exit.
128  //This is needed as now the IOV Editor does not always protect for insertions:
129  //ANY and VALIDATION sychronizations are allowed to write in the past.
130  if (this->tagInfo().size > 0 && this->tagInfo().lastInterval.since >= m_run) {
131  edm::LogInfo("PopConBTransitionSourceHandler")
132  << "["
133  << "PopConBTransitionSourceHandler::" << __func__ << "]: "
134  << "last IOV " << this->tagInfo().lastInterval.since
135  << (this->tagInfo().lastInterval.since == m_run ? " is equal to" : " is larger than")
136  << " the run proposed for insertion " << m_run << ". No transfer needed." << std::endl;
137  return;
138  }
139  bool isBOn = checkBOn();
141  edm::LogInfo("PopConBTransitionSourceHandler") << "["
142  << "PopConBTransitionSourceHandler::" << __func__ << "]: "
143  << "END." << std::endl;
144  }
Iov_t lastInterval
Definition: Types.h:73
Time_t since
Definition: Types.h:53
size_t size
Definition: Types.h:74
std::string name
Definition: Types.h:72
cond::TagInfo_t const & tagInfo() const
Hash payloadId
Definition: Types.h:55
Log< level::Info, false > LogInfo

◆ getObjectsForBTransition()

template<class T >
virtual void popcon::PopConBTransitionSourceHandler< T >::getObjectsForBTransition ( bool  isBOn)
inlinevirtual

Definition at line 72 of file PopConBTransitionSourceHandler.h.

References cond::persistency::Session::createIov(), popcon::PopConSourceHandler< T >::dbSession(), cond::persistency::Session::editIov(), cond::persistency::Session::existsIov(), cond::persistency::IOVEditor::flush(), cond::persistency::IOVProxy::getInterval(), cond::persistency::IOVEditor::insert(), cond::persistency::IOVProxy::loadedSize(), LogDebug, popcon::PopConBTransitionSourceHandler< T >::m_run, popcon::PopConBTransitionSourceHandler< T >::m_tagForBOff, popcon::PopConBTransitionSourceHandler< T >::m_tagForBOn, popcon::PopConSourceHandler< T >::m_userTextLog, cond::TagInfo_t::name, cond::Iov_t::payloadId, cond::persistency::Session::readIov(), cond::persistency::IOVEditor::setDescription(), cond::Iov_t::since, contentValuesCheck::ss, AlCaHLTBitMon_QueryRunRegistry::string, popcon::PopConSourceHandler< T >::tagInfo(), cond::persistency::IOVProxy::tagInfo(), cond::Tag_t::timeType, and cond::persistency::Session::transaction().

Referenced by popcon::PopConBTransitionSourceHandler< T >::getNewObjects().

72  {
73  //reading payloads for 0T and 3.8T from Conditions
76  edm::LogInfo("PopConBTransitionSourceHandler")
77  << "["
78  << "PopConBTransitionSourceHandler::" << __func__ << "]: "
79  << "Loading tag for B " << (isBOn ? "ON" : "OFF") << ": " << (isBOn ? m_tagForBOn : m_tagForBOff)
80  << " and IOV valid for run number: " << m_run << std::endl;
82  cond::Iov_t currentIov = iov.getInterval(m_run);
83  LogDebug("PopConBTransitionSourceHandler")
84  << "Loaded IOV sequence from tag " << (isBOn ? m_tagForBOn : m_tagForBOff)
85  << " with size: " << iov.loadedSize() << ", IOV valid for run number " << m_run
86  << " starting from: " << currentIov.since << ", with corresponding payload hash: " << currentIov.payloadId
87  << std::endl;
88  std::string destTag = this->tagInfo().name;
89  if (currentIov.payloadId != this->tagInfo().lastInterval.payloadId) {
90  std::ostringstream ss;
91  ss << "Adding iov with since " << m_run << " pointing to hash " << currentIov.payloadId
92  << " corresponding to the calibrations for magnetic field " << (isBOn ? "ON" : "OFF");
93  edm::LogInfo("PopConBTransitionSourceHandler")
94  << "["
95  << "PopConBTransitionSourceHandler::" << __func__ << "]: " << ss.str() << std::endl;
97  if (session.existsIov(destTag)) {
98  editor = session.editIov(destTag);
99  } else {
100  editor = session.createIov<T>(destTag, iov.tagInfo().timeType);
101  editor.setDescription("Tag created by PopConBTransitionSourceHandler");
102  }
103  editor.insert(m_run, currentIov.payloadId);
104  editor.flush();
105  this->m_userTextLog = ss.str();
106  } else {
107  edm::LogInfo("PopConBTransitionSourceHandler")
108  << "["
109  << "PopConBTransitionSourceHandler::" << __func__ << "]: "
110  << "The payload with hash " << currentIov.payloadId
111  << " corresponding to the calibrations for magnetic field " << (isBOn ? "ON" : "OFF")
112  << " is still valid for run " << m_run << " in the destination tag " << destTag << ".\nNo transfer needed."
113  << std::endl;
114  }
115  trans.close();
116  }
Time_t since
Definition: Types.h:53
IOVEditor createIov(const std::string &tag, cond::TimeType timeType, cond::SynchronizationType synchronizationType=cond::SYNCH_ANY)
Definition: Session.h:179
void setDescription(const std::string &description)
Definition: IOVEditor.cc:139
Transaction & transaction()
Definition: Session.cc:52
std::string name
Definition: Types.h:72
cond::TagInfo_t const & tagInfo() const
Hash payloadId
Definition: Types.h:55
cond::Iov_t getInterval(cond::Time_t time)
Definition: IOVProxy.cc:320
cond::Tag_t tagInfo() const
Definition: IOVProxy.cc:246
IOVProxy readIov(const std::string &tag)
Definition: Session.cc:63
IOVEditor editIov(const std::string &tag)
Definition: Session.cc:130
Log< level::Info, false > LogInfo
void insert(cond::Time_t since, const cond::Hash &payloadHash, bool checkType=false)
Definition: IOVEditor.cc:159
TimeType timeType
Definition: Types.h:63
bool existsIov(const std::string &tag)
Definition: Session.cc:77
cond::persistency::Session & dbSession() const
long double T
#define LogDebug(id)

◆ id()

template<class T >
std::string popcon::PopConBTransitionSourceHandler< T >::id ( ) const
inlinefinalvirtual

Implements popcon::PopConSourceHandler< T >.

Definition at line 36 of file PopConBTransitionSourceHandler.h.

References AlCaHLTBitMon_QueryRunRegistry::string.

36 { return std::string("PopConBTransitionSourceHandler"); }

Member Data Documentation

◆ m_connection

template<class T >
cond::persistency::ConnectionPool popcon::PopConBTransitionSourceHandler< T >::m_connection
private

◆ m_connectionPset

template<class T >
edm::ParameterSet popcon::PopConBTransitionSourceHandler< T >::m_connectionPset
private

◆ m_connectionString

template<class T >
std::string popcon::PopConBTransitionSourceHandler< T >::m_connectionString
private

Definition at line 154 of file PopConBTransitionSourceHandler.h.

◆ m_currentThreshold

template<class T >
double popcon::PopConBTransitionSourceHandler< T >::m_currentThreshold
private

◆ m_run

template<class T >
unsigned long long popcon::PopConBTransitionSourceHandler< T >::m_run
private

◆ m_tagForBOff

template<class T >
std::string popcon::PopConBTransitionSourceHandler< T >::m_tagForBOff
private

◆ m_tagForBOn

template<class T >
std::string popcon::PopConBTransitionSourceHandler< T >::m_tagForBOn
private

◆ m_tagForRunInfo

template<class T >
std::string popcon::PopConBTransitionSourceHandler< T >::m_tagForRunInfo
private