Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
Public Types | Public Member Functions | Private Member Functions | Private Attributes | List of all members
SG::ReadCondHandle< T > Class Template Reference

#include <ReadCondHandle.h>

Collaboration diagram for SG::ReadCondHandle< T >:

Public Types

typedef T * pointer_type
 
typedef const T * const_pointer_type
 
typedef T & reference_type
 
typedef const T & const_reference_type
 

Public Member Functions

 ReadCondHandle (const SG::ReadCondHandleKey< T > &key)
 
 ReadCondHandle (const SG::ReadCondHandleKey< T > &key, const EventContext &ctx)
 
 ReadCondHandle (SG::ReadCondHandleKey< T > &&key)=delete
 
 ReadCondHandle (SG::ReadCondHandleKey< T > &&key, const EventContext &ctx)=delete
 
 ~ReadCondHandle ()
 
const std::string & key () const
 
const DataObjID & fullKey () const
 
const_pointer_type retrieve ()
 
const_pointer_type retrieve (const EventIDBase &t)
 
const_pointer_type operator-> ()
 
const_pointer_type operator* ()
 
const_pointer_type cptr ()
 
bool isValid ()
 
bool isValid (const EventIDBase &t) const
 
bool range (EventIDRange &r)
 
bool range (const EventIDBase &t, EventIDRange &r) const
 
const EventIDRange & getRange ()
 
CondCont< T > * getCC ()
 

Private Member Functions

bool initCondHandle ()
 

Private Attributes

EventIDBase m_eid
 
CondCont< T > * m_cc {nullptr}
 
const T * m_obj { nullptr }
 
const EventIDRange * m_range { nullptr }
 
const SG::ReadCondHandleKey< T > & m_hkey
 

Detailed Description

template<typename T>
class SG::ReadCondHandle< T >

Definition at line 44 of file ReadCondHandle.h.

Member Typedef Documentation

◆ const_pointer_type

template<typename T >
typedef const T* SG::ReadCondHandle< T >::const_pointer_type

Definition at line 48 of file ReadCondHandle.h.

◆ const_reference_type

template<typename T >
typedef const T& SG::ReadCondHandle< T >::const_reference_type

Definition at line 50 of file ReadCondHandle.h.

◆ pointer_type

template<typename T >
typedef T* SG::ReadCondHandle< T >::pointer_type

Definition at line 47 of file ReadCondHandle.h.

◆ reference_type

template<typename T >
typedef T& SG::ReadCondHandle< T >::reference_type

Definition at line 49 of file ReadCondHandle.h.

Constructor & Destructor Documentation

◆ ReadCondHandle() [1/4]

template<typename T >
SG::ReadCondHandle< T >::ReadCondHandle ( const SG::ReadCondHandleKey< T > &  key)

Definition at line 99 of file ReadCondHandle.h.

99  :
100  ReadCondHandle(key, Gaudi::Hive::currentContext())
101  {
102  // cppcheck-suppress missingReturn; false positive
103  }

◆ ReadCondHandle() [2/4]

template<typename T >
SG::ReadCondHandle< T >::ReadCondHandle ( const SG::ReadCondHandleKey< T > &  key,
const EventContext &  ctx 
)

Definition at line 108 of file ReadCondHandle.h.

109  :
110  m_eid( ctx.eventID() ),
111  m_cc( key.getCC() ),
112  m_hkey(key)
113  {
114  try {
115  EventIDBase::number_type conditionsRun =
117  if (conditionsRun != EventIDBase::UNDEFNUM) {
118  m_eid.set_run_number (conditionsRun);
119  }
120  }
121  catch (const std::bad_any_cast& e) {
122  throw SG::ExcBadContext (ctx, key.objKey());
123  }
124 
125  if (ATH_UNLIKELY(!key.isInit())) {
126  throw SG::ExcUninitKey (key.clid(), key.key(), key.storeHandle().name(),
127  "", "ReadCond");
128  }
129 
130  if (ATH_UNLIKELY(m_cc == 0)) {
131  // try to retrieve it
132  StoreGateSvc* cs = m_hkey.getCS();
133  CondContBase *cb(nullptr);
134  if (cs->retrieve(cb, m_hkey.key()).isFailure()) {
135  throw SG::ExcNoCondCont (m_hkey.fullKey().key(), "Can't retrieve.");
136  } else {
137  m_cc = dynamic_cast< CondCont<T>* > (cb);
138  if (m_cc == 0) {
139  throw SG::ExcNoCondCont (m_hkey.fullKey().key(), "Can't dcast CondContBase.");
140  }
141  }
142  }
143  }

◆ ReadCondHandle() [3/4]

template<typename T >
SG::ReadCondHandle< T >::ReadCondHandle ( SG::ReadCondHandleKey< T > &&  key)
delete

◆ ReadCondHandle() [4/4]

template<typename T >
SG::ReadCondHandle< T >::ReadCondHandle ( SG::ReadCondHandleKey< T > &&  key,
const EventContext &  ctx 
)
delete

◆ ~ReadCondHandle()

template<typename T >
SG::ReadCondHandle< T >::~ReadCondHandle ( )
inline

Definition at line 61 of file ReadCondHandle.h.

61 {};

Member Function Documentation

◆ cptr()

template<typename T >
const_pointer_type SG::ReadCondHandle< T >::cptr ( )
inline

Definition at line 71 of file ReadCondHandle.h.

71 { return retrieve(); }

◆ fullKey()

template<typename T >
const DataObjID& SG::ReadCondHandle< T >::fullKey ( ) const
inline

Definition at line 64 of file ReadCondHandle.h.

64 { return m_hkey.fullKey(); }

◆ getCC()

template<typename T >
CondCont<T>* SG::ReadCondHandle< T >::getCC ( )
inline

Definition at line 81 of file ReadCondHandle.h.

81 { return m_cc; }

◆ getRange()

template<typename T >
const EventIDRange & SG::ReadCondHandle< T >::getRange

Definition at line 246 of file ReadCondHandle.h.

246  {
247 
248  if (m_obj == 0) {
249  if (!initCondHandle()) {
251  }
252  }
253 
254  if (!m_range) {
255  throw SG::ExcNoRange();
256  }
257  return *m_range;
258 
259  }

◆ initCondHandle()

template<typename T >
bool SG::ReadCondHandle< T >::initCondHandle
private

Definition at line 149 of file ReadCondHandle.h.

149  {
150 
151  if (m_obj != 0) return true;
152 
153  if ( ATH_UNLIKELY(!m_cc->find(m_eid, m_obj, &m_range)) ) {
154  ReadCondHandleNotFound (*m_cc, m_eid, m_hkey.objKey());
155  m_obj = nullptr;
156  return false;
157  }
158 
159  return true;
160  }

◆ isValid() [1/2]

template<typename T >
bool SG::ReadCondHandle< T >::isValid

Definition at line 210 of file ReadCondHandle.h.

210  {
211 
212  return initCondHandle();
213  }

◆ isValid() [2/2]

template<typename T >
bool SG::ReadCondHandle< T >::isValid ( const EventIDBase &  t) const

Definition at line 219 of file ReadCondHandle.h.

219  {
220 
221  return (m_cc->valid(t));
222  }

◆ key()

template<typename T >
const std::string& SG::ReadCondHandle< T >::key ( ) const
inline

Definition at line 63 of file ReadCondHandle.h.

63 { return m_hkey.key(); }

◆ operator*()

template<typename T >
const_pointer_type SG::ReadCondHandle< T >::operator* ( )
inline

Definition at line 70 of file ReadCondHandle.h.

70 { return retrieve(); }

◆ operator->()

template<typename T >
const_pointer_type SG::ReadCondHandle< T >::operator-> ( )
inline

Definition at line 69 of file ReadCondHandle.h.

69 { return retrieve(); }

◆ range() [1/2]

template<typename T >
bool SG::ReadCondHandle< T >::range ( const EventIDBase &  t,
EventIDRange &  r 
) const

Definition at line 266 of file ReadCondHandle.h.

266  {
267 
268  return ( m_cc->range(eid, r) );
269  }

◆ range() [2/2]

template<typename T >
bool SG::ReadCondHandle< T >::range ( EventIDRange &  r)

Definition at line 228 of file ReadCondHandle.h.

228  {
229 
230  if (m_obj == 0) {
231  if (!initCondHandle()) {
232  return false;
233  }
234  }
235 
236  if (m_range) {
237  r = *m_range;
238  return true;
239  }
240 
241  return false;
242  }

◆ retrieve() [1/2]

template<typename T >
const T * SG::ReadCondHandle< T >::retrieve

Definition at line 166 of file ReadCondHandle.h.

166  {
167 
168  if (m_obj == 0) {
169  if (!initCondHandle()) {
170  // std::ostringstream ost;
171  // m_cc->list(ost);
172  // MsgStream msg(Athena::getMessageSvc(), "ReadCondHandle");
173  // msg << MSG::ERROR
174  // << "ReadCondHandle::retrieve() could not find EventTime "
175  // << m_eid << " for key " << objKey() << "\n"
176  // << ost.str()
177  // << endmsg;
178  return nullptr;
179  }
180  }
181 
182  return m_obj;
183  }

◆ retrieve() [2/2]

template<typename T >
const T * SG::ReadCondHandle< T >::retrieve ( const EventIDBase &  t)

Definition at line 189 of file ReadCondHandle.h.

189  {
190  if (eid == m_eid) {
191  return retrieve();
192  }
193 
194  // pointer_type obj(0);
195  const_pointer_type cobj(0);
196  if (! (m_cc->find(eid, cobj) ) ) {
197  ReadCondHandleNotFound (*m_cc, eid, m_hkey.objKey());
198  return nullptr;
199  }
200 
201  // const_pointer_type cobj = const_cast<const_pointer_type>( obj );
202 
203  return cobj;
204  }

Member Data Documentation

◆ m_cc

template<typename T >
CondCont<T>* SG::ReadCondHandle< T >::m_cc {nullptr}
private

Definition at line 88 of file ReadCondHandle.h.

◆ m_eid

template<typename T >
EventIDBase SG::ReadCondHandle< T >::m_eid
private

Definition at line 87 of file ReadCondHandle.h.

◆ m_hkey

template<typename T >
const SG::ReadCondHandleKey<T>& SG::ReadCondHandle< T >::m_hkey
private

Definition at line 92 of file ReadCondHandle.h.

◆ m_obj

template<typename T >
const T* SG::ReadCondHandle< T >::m_obj { nullptr }
private

Definition at line 89 of file ReadCondHandle.h.

◆ m_range

template<typename T >
const EventIDRange* SG::ReadCondHandle< T >::m_range { nullptr }
private

Definition at line 90 of file ReadCondHandle.h.


The documentation for this class was generated from the following file:
SG::ReadCondHandle::m_range
const EventIDRange * m_range
Definition: ReadCondHandle.h:90
AllowedVariables::e
e
Definition: AsgElectronSelectorTool.cxx:37
beamspotman.r
def r
Definition: beamspotman.py:676
SG::ExcBadContext
Exception — Bad EventContext extension while building ReadCondHandle.
Definition: Control/StoreGate/StoreGate/exceptions.h:312
Atlas::ExtendedEventContext::conditionsRun
EventIDBase::number_type conditionsRun() const
Definition: ExtendedEventContext.h:38
AtlasMcWeight::number_type
unsigned int number_type
Definition: AtlasMcWeight.h:20
ATH_UNLIKELY
#define ATH_UNLIKELY(x)
Definition: AthUnlikelyMacros.h:17
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
SG::ExcBadReadCondHandleInit
Exception — ReadCondHandle didn't initialize in getRange().
Definition: Control/StoreGate/StoreGate/exceptions.h:346
SG::ReadCondHandleNotFound
void ReadCondHandleNotFound(const CondContBase &cc, const EventIDBase &eid, const std::string &key)
Report a conditions container lookup failure.
Definition: ReadCondHandle.cxx:23
SG::ExcNoRange
Exception — Range not set in ReadCondHandle::getRange().
Definition: Control/StoreGate/StoreGate/exceptions.h:360
SG::ExcNoCondCont
Exception — Can't retrieve CondCont from ReadCondHandle.
Definition: Control/StoreGate/StoreGate/exceptions.h:330
StoreGateSvc::retrieve
StatusCode retrieve(const T *&ptr) const
Retrieve the default object into a const T*.
Atlas::getExtendedEventContext
const ExtendedEventContext & getExtendedEventContext(const EventContext &ctx)
Retrieve an extended context from a context object.
Definition: ExtendedEventContext.cxx:32
SG::ReadCondHandle::m_hkey
const SG::ReadCondHandleKey< T > & m_hkey
Definition: ReadCondHandle.h:92
StoreGateSvc
The Athena Transient Store API.
Definition: StoreGateSvc.h:124
SG::ReadCondHandle::retrieve
const_pointer_type retrieve()
Definition: ReadCondHandle.h:166
SG::ReadCondHandle::m_obj
const T * m_obj
Definition: ReadCondHandle.h:89
SG::ReadCondHandle::ReadCondHandle
ReadCondHandle(const SG::ReadCondHandleKey< T > &key)
Definition: ReadCondHandle.h:99
CondContBase
Base class for all conditions containers.
Definition: CondCont.h:140
SG::ReadCondHandle::initCondHandle
bool initCondHandle()
Definition: ReadCondHandle.h:149
CondCont
Hold mapping of ranges to condition objects.
Definition: CondCont.h:811
SG::ExcUninitKey
Exception — Tried to create a handle from an uninitialized key.
Definition: Control/StoreGate/StoreGate/exceptions.h:111
SG::ReadCondHandle::const_pointer_type
const T * const_pointer_type
Definition: ReadCondHandle.h:48
SG::ReadCondHandle::m_eid
EventIDBase m_eid
Definition: ReadCondHandle.h:87
SG::ReadCondHandle::m_cc
CondCont< T > * m_cc
Definition: ReadCondHandle.h:88
SG::ReadCondHandle::key
const std::string & key() const
Definition: ReadCondHandle.h:63