ATLAS Offline Software
Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | Private Attributes | List of all members
D3PD::SGDataVectorGetterTool Class Referenceabstract

Getter tool to retrieve DataVector/List collections from StoreGate. More...

#include <SGDataVectorGetterTool.h>

Inheritance diagram for D3PD::SGDataVectorGetterTool:
Collaboration diagram for D3PD::SGDataVectorGetterTool:

Public Member Functions

 SGDataVectorGetterTool (const std::string &type, const std::string &name, const IInterface *parent)
 Standard Gaudi tool constructor. More...
 
virtual StatusCode initialize ()
 Standard Gaudi initialize method. More...
 
virtual StatusCode finalize ()
 Standard Gaudi finalize method. More...
 
virtual const std::type_info & elementTypeinfo () const
 Return the element type of the collection. More...
 
virtual StatusCode reset (bool allowMissing=false)
 Reset the iteration to the start of the collection. More...
 
virtual const void * nextUntyped ()
 Return a pointer to the next element in the collection. More...
 
virtual size_t sizeHint (bool allowMissing=false)
 Return an estimate of the number of elements in the iteration. More...
 
virtual const std::type_info & typeinfo () const
 Return the type of object retrieved by this tool. More...
 
CLID clid () const
 Return the class ID being read by this tool. More...
 
virtual const void * getUntyped (bool allowMissing=false)
 Return the target object. More...
 
 DeclareInterfaceID (IObjGetterTool, 1, 0)
 Gaudi interface definition. More...
 
template<class T >
const T * get (bool allowMissing=false)
 Type-safe wrapper for get. More...
 
virtual void releaseObjectUntyped (const void *p)
 Release an object retrieved from the getter. More...
 
template<class T >
void releaseObject (const T *p)
 Type-safe wrapper for releaseObjectUntyped. More...
 
template<class T >
StatusCode configureD3PD ()
 Test type compatibility. More...
 
virtual const void * getTypeinfo (const std::type_info &ti, bool allowMissing=false)=0
 Return the target object cast to a different pointer type. More...
 
void releaseObjectTypeinfo (const void *p, const std::type_info &ti)
 Release an object retrieved from the getter. More...
 
virtual StatusCode configureTypeinfo (const std::type_info &ti)=0
 Test type compatibility. More...
 
const void * nextTypeinfo (const std::type_info &ti)
 Return the next object cast to a different pointer type. More...
 
StatusCode configureElementTypeinfo (const std::type_info &ti)
 Test type compatibility. More...
 
void releaseElementTypeinfo (const void *p, const std::type_info &ti)
 Release an element retrieved from the getter. More...
 

Protected Member Functions

StatusCode initializeImpl ()
 Initialize this mixin class. More...
 

Protected Attributes

std::string m_typename
 Property: Name of the type of the object being retrieved. More...
 
std::string m_sgkey
 Property: StoreGate key of the object being retrieved. More...
 
ServiceHandle< IClassIDSvc > m_clidsvc
 Property: Instance of the ClassIDSvc to use. More...
 
SGKeyResolver m_resolver
 Helper: Resolve the SG key to use. More...
 

Private Member Functions

const DataModel_detail::DVLInfoBasegetInfo (const std::type_info &ti)
 Retrieve DataVector/List information for this collection. More...
 

Private Attributes

ServiceHandle< IAthenaPoolCnvSvcm_athenaPoolCnvSvc
 Used to auto-load converters, if needed. More...
 
const DataModel_detail::DVLInfoBasem_info
 DataVector/List information for this collection. More...
 
DataModel_detail::DVLIteratorBasem_it
 Current iterator over the collection. More...
 
TypeConverter m_converter
 Converter from the pointer that we get from StoreGate to a pointer to the collection over which we iterate (which may be a base of what we get from SG). More...
 
CLID m_clid
 CLID for the object being retrieved. More...
 
ServiceHandle< StoreGateSvc > & m_sg
 The event storage service. More...
 
std::string m_label
 Property: label to assign to this getter (or null). More...
 
ToolHandle< ICollectionGetterRegistryToolm_registry
 The collection getter registry tool. More...
 
TypeConverter m_backConverter
 Helper to convert pointers back, for releaseElement. More...
 

Detailed Description

Getter tool to retrieve DataVector/List collections from StoreGate.

This is a Getter tool that retrieves a collection of objects from StoreGate. This class handles DataVector and DataList collections. (Collections deriving from these may also be used, provided that proper SG_BASE macros were used.)

Properties: TypeName - Name of the type of the object being retrieved. SGKey - StoreGate key of the object being retrieved. Can also be a comma or space-separated list. In that case, the first key that actually exists in the data store will be used. ClassIDSvc - ClassIDSvc instance to use.

Definition at line 53 of file SGDataVectorGetterTool.h.

Constructor & Destructor Documentation

◆ SGDataVectorGetterTool()

D3PD::SGDataVectorGetterTool::SGDataVectorGetterTool ( const std::string &  type,
const std::string &  name,
const IInterface *  parent 
)

Standard Gaudi tool constructor.

Parameters
typeThe name of the tool type.
nameThe tool name.
parentThe tool's Gaudi parent.

Definition at line 29 of file SGDataVectorGetterTool.cxx.

33  : SGGetterImpl (name, this->evtStore()),
35  m_athenaPoolCnvSvc ("AthenaPoolCnvSvc", name),
36  m_info (0),
37  m_it (0)
38 {
40 }

Member Function Documentation

◆ clid()

CLID D3PD::SGGetterImpl::clid ( ) const
inherited

Return the class ID being read by this tool.

Definition at line 54 of file SGGetterImpl.cxx.

55 {
56  return m_clid;
57 }

◆ configureD3PD()

template<class T >
StatusCode D3PD::IObjGetterTool::configureD3PD ( )
inherited

Test type compatibility.

Test to see if the object being returned by the tool can be converted to a pointer to T. This can be used to perform type checks during job initialization.

This is implemented in terms of configureTypeinfo.

◆ configureElementTypeinfo()

StatusCode D3PD::CollectionGetterToolImpl::configureElementTypeinfo ( const std::type_info &  ti)
inherited

Test type compatibility.

Parameters
tiThe desired type.

Test to see if the object being returned by the tool can be converted to a pointer to T. This can be used to perform type checks during job initialization.

Definition at line 146 of file CollectionGetterToolImpl.cxx.

148 {
149  return this->m_converter.init(this->elementTypeinfo(), ti);
150 }

◆ configureTypeinfo()

virtual StatusCode D3PD::IObjGetterTool::configureTypeinfo ( const std::type_info &  ti)
pure virtualinherited

Test type compatibility.

Parameters
tiThe desired type.

Test to see if the object being returned by the tool can be converted to a pointer to T. This can be used to perform type checks during job initialization.

◆ DeclareInterfaceID()

D3PD::IObjGetterTool::DeclareInterfaceID ( IObjGetterTool  ,
,
 
)
inherited

Gaudi interface definition.

◆ elementTypeinfo()

const std::type_info & D3PD::SGDataVectorGetterTool::elementTypeinfo ( ) const
virtual

Return the element type of the collection.

I.e., nextUntyped returns a pointer to this type.

Definition at line 119 of file SGDataVectorGetterTool.cxx.

120 {
121  return m_info->elt_tinfo();
122 }

◆ finalize()

StatusCode D3PD::SGDataVectorGetterTool::finalize ( )
virtual

Standard Gaudi finalize method.

Definition at line 106 of file SGDataVectorGetterTool.cxx.

107 {
108  delete m_it;
109  m_it = 0;
110  return StatusCode::SUCCESS;
111 }

◆ get()

template<class T >
const T* D3PD::IObjGetterTool::get ( bool  allowMissing = false)
inherited

Type-safe wrapper for get.

Parameters
allowMissingIf true, then we should not generate errors if the requested object is missing.

Return the object as a pointer to T. Return 0 if the get fails or if the pointer can't be converted.

This is implemented in terms of getTypeinfo().

◆ getInfo()

const DataModel_detail::DVLInfoBase * D3PD::SGDataVectorGetterTool::getInfo ( const std::type_info &  ti)
private

Retrieve DataVector/List information for this collection.

Parameters
tiType that we get from SG.

Definition at line 199 of file SGDataVectorGetterTool.cxx.

200 {
201  // If we have info for this class directly, use that.
204  if (info) return info;
205 
206  // We gotta check the base classes. Fail if we don't have
207  // base info.
208  const SG::BaseInfoBase* bib = SG::BaseInfoBase::find (ti);
209  if (!bib) return 0;
210 
211  // Pick the most-derived class among the possible bases.
212  std::vector<const std::type_info*> bases = bib->get_ti_bases();
213  for (size_t i = 0; i < bases.size(); i++) {
214  DataModel_detail::DVLInfoBase* this_info =
216  if (this_info) {
217  if (info) {
218  bib = SG::BaseInfoBase::find (this_info->tinfo());
219  if (bib && bib->is_base (info->tinfo()))
220  info = this_info;
221  }
222  else
223  info = this_info;
224  }
225  }
226  return info;
227 }

◆ getTypeinfo()

virtual const void* D3PD::IObjGetterTool::getTypeinfo ( const std::type_info &  ti,
bool  allowMissing = false 
)
pure virtualinherited

Return the target object cast to a different pointer type.

Parameters
tiThe desired type.
allowMissingIf true, then we should not generate errors if the requested object is missing.

Return the object as a pointer to the ti type. Return 0 if the get fails or if the pointer can't be converted.

◆ getUntyped()

const void * D3PD::SGGetterImpl::getUntyped ( bool  allowMissing = false)
virtualinherited

Return the target object.

Parameters
allowMissingIf true, then we should not generate errors if the requested object is missing.

Should be of the type given by typeinfo. Return 0 on failure.

Implements D3PD::IObjGetterTool.

Reimplemented in D3PD::SGCollectionGetterTool< CONT >, D3PD::SGCollectionGetterTool< Obj4Container >, D3PD::SGCollectionGetterTool< TileDigitsContainer >, D3PD::SGCollectionGetterTool< CaloCalibrationHitContainer >, D3PD::SGCollectionGetterTool< TileHitVector >, D3PD::SGCollectionGetterTool< TrackRecordCollection >, D3PD::SGCollectionGetterTool< TileRawChannelContainer >, D3PD::SGCollectionGetterTool< LArHitContainer >, D3PD::SGCollectionGetterTool< INav4MomLinkContainer >, D3PD::SGCollectionGetterTool< LArRawChannelContainer >, and D3PD::SGCollectionGetterTool< IParticleLinks >.

Definition at line 68 of file SGGetterImpl.cxx.

69 {
70  std::string key = m_resolver.key();
71  SG::DataProxy* proxy = m_sg->proxy (m_clid, key);
72  if (!proxy) {
73  if (!allowMissing) {
74  REPORT_MESSAGE (MSG::FATAL) << "Can't find object in event store for "
75  << m_typename << "(" << m_clid << ")/"
76  << key;
77  REPORT_MESSAGE (MSG::INFO) << m_sg->dump();
78  }
79  return 0;
80  }
81 
82  void* ptr = SG::DataProxy_cast (proxy, m_clid);
83  if (!ptr) {
84  if (!allowMissing) {
86  << "Null object retrieved for " << m_typename << "(" << m_clid << ")/"
87  << key;
88  REPORT_MESSAGE (MSG::INFO) << m_sg->dump();
89  }
90  return 0;
91  }
92 
93  // Try to retrieve a corresponding aux store as well.
94  m_sg->tryConstRetrieve<SG::IConstAuxStore> (key + "Aux.");
95 
96  return ptr;
97 }

◆ initialize()

StatusCode D3PD::SGDataVectorGetterTool::initialize ( )
virtual

Standard Gaudi initialize method.

Definition at line 46 of file SGDataVectorGetterTool.cxx.

47 {
48  CHECK( m_athenaPoolCnvSvc.retrieve() );
49 
50  // Initialize the code getting the collection from SG.
52 
53  // Find the DataVector/DataList information for this collection.
54  m_info = getInfo (typeinfo());
55 
56  // We couldn't find it.
57  // Maybe we haven't yet loaded a library that has a complete
58  // instantiation of the DataVector class. Try loading the pool
59  // converter, and see if that'll do it.
60  if (!m_info) {
61  m_athenaPoolCnvSvc->converter (clid());
62  m_info = getInfo (typeinfo());
63  }
64 
65  // Maybe it didn't. (Once we make the info method virtual, then loading
66  // the converter should always do it. But now, maybe not.)
67  // As a last attempt, try to load a dictionary for the class.
68  if (!m_info) {
69  TClass* cls = gROOT->GetClass (m_typename.c_str());
70  cls->GetBaseClass ("SG::AuxElement");
71  m_info = getInfo (typeinfo());
72  }
73 
74  // Ok, one more try...
75  if (!m_info) {
76  TClass* cls = gROOT->GetClass (m_typename.c_str());
77  TMethodCall meth (cls, "initHelper", "");
78  if (meth.IsValid())
79  meth.Execute();
80  m_info = getInfo (typeinfo());
81  }
82  if (!m_info) {
83  TClass* cls = gROOT->GetClass (m_typename.c_str());
84  TMethodCall meth (cls, "dvlinfo", "");
85  if (meth.IsValid())
86  meth.Execute();
87  m_info = getInfo (typeinfo());
88  }
89 
90  if (!m_info) {
91  REPORT_MESSAGE (MSG::ERROR)
92  << "Can't find DataVector/DataList info for class " << m_typename;
93  return StatusCode::FAILURE;
94  }
95 
96  // We need to convert from the type we get from SG to the DV/DL base class.
98 
100 }

◆ initializeImpl()

StatusCode D3PD::SGGetterImpl::initializeImpl ( )
protectedinherited

Initialize this mixin class.

Call this from initialize.

Definition at line 105 of file SGGetterImpl.cxx.

106 {
107  CHECK( m_clidsvc.retrieve() );
108 
110 
112 
113  return StatusCode::SUCCESS;
114 }

◆ nextTypeinfo()

const void * D3PD::CollectionGetterToolImpl::nextTypeinfo ( const std::type_info &  ti)
inherited

Return the next object cast to a different pointer type.

Return the next element from the collection as a pointer to the ti type. Return 0 if the pointer can't be converted or at the end of the iteration.

Definition at line 68 of file CollectionGetterToolImpl.cxx.

69 {
70  // Configure the converter.
71  if (!this->m_converter.isValid() ||
72  this->m_converter.dstTypeinfo() != ti)
73  {
74  if (this->configureElementTypeinfo(ti).isFailure())
75  return 0;
76  }
77 
78  // Get the next object. If the conversion fails, loop until we get
79  // a good one.
80  while (true) {
81  const void* p = this->nextUntyped();
82  if (!p) return 0;
83  const void* pconv = this->m_converter.convertUntyped (p);
84  if (pconv) return pconv;
85  this->releaseElementUntyped (p);
86  REPORT_MESSAGE (MSG::WARNING)
87  << "Pointer conversion from " << m_converter.srcName() << " to "
88  << m_converter.dstName() << "failed.";
89  }
90 }

◆ nextUntyped()

const void * D3PD::SGDataVectorGetterTool::nextUntyped ( )
virtual

Return a pointer to the next element in the collection.

Return 0 when the collection has been exhausted.

Definition at line 167 of file SGDataVectorGetterTool.cxx.

168 {
169  if (m_it)
170  return m_it->next();
171  return 0;
172 }

◆ releaseElementTypeinfo()

void D3PD::CollectionGetterToolImpl::releaseElementTypeinfo ( const void *  p,
const std::type_info &  ti 
)
inherited

Release an element retrieved from the getter.

Parameters
pThe element to release.
tiThe type of p.

Call this when you are done with the element returned by nextUntyped(). The default implementation is a no-op, but if the getter dynamically allocated the object which it returned, this gives it a chance to free it.

Definition at line 104 of file CollectionGetterToolImpl.cxx.

106 {
107  if (!p)
108  return;
109 
110  // Configure the converter if needed.
111  if (!this->m_backConverter.isValid() ||
112  this->m_backConverter.srcTypeinfo() != ti)
113  {
114  if (this->m_backConverter.init (ti, this->typeinfo()).isFailure()) {
115  REPORT_MESSAGE (MSG::WARNING)
116  << "Can't configure pointer conversion from "
117  << System::typeinfoName (ti) << " to "
118  << System::typeinfoName (this->typeinfo());
119  return;
120  }
121  }
122 
123  // Convert to the desired type.
124  p = this->m_backConverter.convertUntyped (p);
125 
126  // Release.
127  if (p)
128  this->releaseElementUntyped (p);
129  else {
130  REPORT_MESSAGE (MSG::WARNING)
131  << "Pointer conversion from " << m_backConverter.srcName() << " to "
132  << m_backConverter.dstName() << "failed.";
133  }
134 }

◆ releaseObject()

template<class T >
void D3PD::IObjGetterTool::releaseObject ( const T *  p)
inherited

Type-safe wrapper for releaseObjectUntyped.

Parameters
pThe object to release.

Call this when you are done with the object returned by get(). The default implementation is a no-op, but if the getter dynamically allocated the object which it returned, this gives it a chance to free it.

This is implemented in terms of releaseObjectTypeinfo().

◆ releaseObjectTypeinfo()

void D3PD::IObjGetterTool::releaseObjectTypeinfo ( const void *  p,
const std::type_info &  ti 
)
inherited

Release an object retrieved from the getter.

Parameters
pThe object to release.
tiThe type of p.

Call this when you are done with the object returned by getUntyped(). The default implementation is a no-op, but if the getter dynamically allocated the object which it returned, this gives it a chance to free it.

◆ releaseObjectUntyped()

virtual void D3PD::IObjGetterTool::releaseObjectUntyped ( const void *  p)
virtualinherited

Release an object retrieved from the getter.

Parameters
pThe object to release.

Call this when you are done with the object returned by getUntyped(). The default implementation is a no-op, but if the getter dynamically allocated the object which it returned, this gives it a chance to free it.

◆ reset()

StatusCode D3PD::SGDataVectorGetterTool::reset ( bool  allowMissing = false)
virtual

Reset the iteration to the start of the collection.

Parameters
allowMissingIf true, then we should not generate errors if the requested object is missing.

Return failure if the container cannot be retrieved.

Definition at line 132 of file SGDataVectorGetterTool.cxx.

133 {
134  delete m_it;
135  const void* p0 = getUntyped (allowMissing);
136  if (allowMissing && p0 == 0) {
137  m_it = 0;
138  return StatusCode::SUCCESS;
139  }
140  const void* p = m_converter.convertUntyped (p0);
141  if (p) {
142  // need non-const pointer to call `base`
143  void* nonconst_p ATLAS_THREAD_SAFE = const_cast<void*> (p);
144  SG::AuxVectorBase* auxbase = m_info->base (nonconst_p);
145  if (auxbase && auxbase->trackIndices() && !auxbase->getConstStore()) {
146  // Try to retrieve a corresponding aux store.
147  const SG::IConstAuxStore* store =
148  evtStore()->tryConstRetrieve<SG::IConstAuxStore> (m_resolver.key() + "Aux.");
149  if (store)
150  auxbase->setStore (store);
151  }
152  m_it = m_info->iterator (p);
153  return StatusCode::SUCCESS;
154  }
155  else {
156  m_it = 0;
157  return StatusCode::FAILURE;
158  }
159 }

◆ sizeHint()

size_t D3PD::SGDataVectorGetterTool::sizeHint ( bool  allowMissing = false)
virtual

Return an estimate of the number of elements in the iteration.

Parameters
allowMissingIf true, then we should not generate errors if the requested object is missing.

This can be used to pre-allocate memory. (It's possible that this isn't known in advance of iterating over the entire collection, for example if a selection is being applied, so this is only a hint.)

Definition at line 185 of file SGDataVectorGetterTool.cxx.

186 {
187  // need non-const pointer to call `size`
188  void* p ATLAS_THREAD_SAFE = const_cast<void*>(m_converter.convertUntyped (getUntyped (allowMissing)));
189  if (!p) return 0;
190  return m_info->size (p);
191 }

◆ typeinfo()

const std::type_info & D3PD::SGGetterImpl::typeinfo ( ) const
virtualinherited

Return the type of object retrieved by this tool.

Implements D3PD::IObjGetterTool.

Reimplemented in D3PD::SGCollectionGetterTool< CONT >, D3PD::SGTileDigitsGetterTool, D3PD::SGTileHitGetterTool, D3PD::SGTileModuleBitsGetterTool, and D3PD::SGTileRawChannelGetterTool.

Definition at line 39 of file SGGetterImpl.cxx.

40 {
41  const std::type_info* ti = 0;
42  if (clidToTypeinfo (m_clid, m_typename, ti, this->name()).isSuccess())
43  return *ti;
44 
45  REPORT_MESSAGE (MSG::ERROR) << "Can't find typeinfo for CLID "
46  << m_clid << " (type " << m_typename << ").";
47  return typeid (void);
48 }

Member Data Documentation

◆ m_athenaPoolCnvSvc

ServiceHandle<IAthenaPoolCnvSvc> D3PD::SGDataVectorGetterTool::m_athenaPoolCnvSvc
private

Used to auto-load converters, if needed.

Definition at line 117 of file SGDataVectorGetterTool.h.

◆ m_backConverter

TypeConverter D3PD::CollectionGetterToolImpl::m_backConverter
privateinherited

Helper to convert pointers back, for releaseElement.

Definition at line 106 of file CollectionGetterToolImpl.h.

◆ m_clid

CLID D3PD::SGGetterImpl::m_clid
privateinherited

CLID for the object being retrieved.

Definition at line 126 of file SGGetterImpl.h.

◆ m_clidsvc

ServiceHandle<IClassIDSvc> D3PD::SGGetterImpl::m_clidsvc
protectedinherited

Property: Instance of the ClassIDSvc to use.

Definition at line 119 of file SGGetterImpl.h.

◆ m_converter

TypeConverter D3PD::SGDataVectorGetterTool::m_converter
private

Converter from the pointer that we get from StoreGate to a pointer to the collection over which we iterate (which may be a base of what we get from SG).

Definition at line 131 of file SGDataVectorGetterTool.h.

◆ m_info

const DataModel_detail::DVLInfoBase* D3PD::SGDataVectorGetterTool::m_info
private

DataVector/List information for this collection.

Definition at line 123 of file SGDataVectorGetterTool.h.

◆ m_it

DataModel_detail::DVLIteratorBase* D3PD::SGDataVectorGetterTool::m_it
private

Current iterator over the collection.

Definition at line 126 of file SGDataVectorGetterTool.h.

◆ m_label

std::string D3PD::CollectionGetterToolImpl::m_label
privateinherited

Property: label to assign to this getter (or null).

Definition at line 97 of file CollectionGetterToolImpl.h.

◆ m_registry

ToolHandle<ICollectionGetterRegistryTool> D3PD::CollectionGetterToolImpl::m_registry
privateinherited

The collection getter registry tool.

Definition at line 100 of file CollectionGetterToolImpl.h.

◆ m_resolver

SGKeyResolver D3PD::SGGetterImpl::m_resolver
protectedinherited

Helper: Resolve the SG key to use.

Definition at line 122 of file SGGetterImpl.h.

◆ m_sg

ServiceHandle<StoreGateSvc>& D3PD::SGGetterImpl::m_sg
privateinherited

The event storage service.

Definition at line 129 of file SGGetterImpl.h.

◆ m_sgkey

std::string D3PD::SGGetterImpl::m_sgkey
protectedinherited

Property: StoreGate key of the object being retrieved.

Definition at line 116 of file SGGetterImpl.h.

◆ m_typename

std::string D3PD::SGGetterImpl::m_typename
protectedinherited

Property: Name of the type of the object being retrieved.

Definition at line 113 of file SGGetterImpl.h.


The documentation for this class was generated from the following files:
grepfile.info
info
Definition: grepfile.py:38
SG::AuxVectorData::getConstStore
const SG::IConstAuxStore * getConstStore() const
Return the current store, as a const interface.
store
StoreGateSvc * store
Definition: fbtTestBasics.cxx:69
DataModel_detail::DVLInfoBase::tinfo
const std::type_info & tinfo() const
Return the type_info for the container.
D3PD::SGDataVectorGetterTool::m_it
DataModel_detail::DVLIteratorBase * m_it
Current iterator over the collection.
Definition: SGDataVectorGetterTool.h:126
StateLessPT_NewConfig.proxy
proxy
Definition: StateLessPT_NewConfig.py:392
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
python.Constants.FATAL
int FATAL
Definition: Control/AthenaCommon/python/Constants.py:19
D3PD::TypeConverter::dstName
std::string dstName() const
Return the name of the destination type, or an empty string.
Definition: TypeConverter.cxx:151
D3PD::SGGetterImpl::typeinfo
virtual const std::type_info & typeinfo() const
Return the type of object retrieved by this tool.
Definition: SGGetterImpl.cxx:39
DataModel_detail::DVLIteratorBase::next
virtual const void * next()=0
Return the next element from the container.
D3PD::SGKeyResolver::initialize
StatusCode initialize(CLID clid, const std::string &typname)
Initialize.
Definition: SGKeyResolver.cxx:44
CaloClusterListBadChannel.cls
cls
Definition: CaloClusterListBadChannel.py:8
SG::AuxVectorBase::setStore
void setStore(SG::IAuxStore *store)
Set the store associated with this object.
Definition: AuxVectorBase.cxx:96
SG::BaseInfoBase::get_ti_bases
std::vector< const std::type_info * > get_ti_bases() const
Return the type_info's of all known bases of T.
Definition: BaseInfo.cxx:326
D3PD::CollectionGetterToolImpl::m_converter
TypeConverter m_converter
Helper to convert pointers.
Definition: CollectionGetterToolImpl.h:103
SG::AuxVectorBase
Manage index tracking and synchronization of auxiliary data.
Definition: AuxVectorBase.h:98
D3PD::TypeConverter::init
StatusCode init(const std::type_info &src_ti, const std::type_info &dst_ti)
Initialize the converter.
Definition: TypeConverter.cxx:51
DataModel_detail::DVLInfoBase
Definition: DVLInfo.h:68
D3PD::SGDataVectorGetterTool::m_athenaPoolCnvSvc
ServiceHandle< IAthenaPoolCnvSvc > m_athenaPoolCnvSvc
Used to auto-load converters, if needed.
Definition: SGDataVectorGetterTool.h:117
D3PD::TypeConverter::srcName
std::string srcName() const
Return the name of the source type, or an empty string.
Definition: TypeConverter.cxx:141
D3PD::SGDataVectorGetterTool::m_converter
TypeConverter m_converter
Converter from the pointer that we get from StoreGate to a pointer to the collection over which we it...
Definition: SGDataVectorGetterTool.h:131
DataModel_detail::DVLInfoBase::iterator
virtual DVLIteratorBase * iterator(const void *cont_p) const =0
Return a new iterator object.
D3PD::TypeConverter::convertUntyped
const void * convertUntyped(const void *p) const
Convert pointer.
Definition: TypeConverter.cxx:116
DataModel_detail::DVLInfoBase::size
virtual size_t size(void *cont_p) const =0
Return the size of the container.
D3PD::CollectionGetterToolImpl::m_backConverter
TypeConverter m_backConverter
Helper to convert pointers back, for releaseElement.
Definition: CollectionGetterToolImpl.h:106
D3PD::SGGetterImpl::clid
CLID clid() const
Return the class ID being read by this tool.
Definition: SGGetterImpl.cxx:54
lumiFormat.i
int i
Definition: lumiFormat.py:92
D3PD::nameToCLID
StatusCode nameToCLID(const std::string &name, CLID &clid, const std::string &context, ServiceHandle< IClassIDSvc > clidsvc=ServiceHandle< IClassIDSvc >("ClassIDSvc", "TypeNameConversions"))
Convert from a class name to a CLID.
Definition: TypeNameConversions.cxx:72
test_pyathena.parent
parent
Definition: test_pyathena.py:15
D3PD::CollectionGetterToolImpl::initialize
StatusCode initialize()
Standard Gaudi initialize method.
Definition: CollectionGetterToolImpl.cxx:45
CHECK
#define CHECK(...)
Evaluate an expression and check for errors.
Definition: Control/AthenaKernel/AthenaKernel/errorcheck.h:422
D3PD::SGGetterImpl::SGGetterImpl
SGGetterImpl(const std::string &name, ServiceHandle< StoreGateSvc > &sg)
Constructor.
Definition: SGGetterImpl.cxx:26
D3PD::clidToTypeinfo
StatusCode clidToTypeinfo(CLID clid, const std::string &nmae, std::type_info const *&ti, const std::string &context)
Convert from a CLID to a type_info; we also already know the name.
Definition: TypeNameConversions.cxx:99
D3PD::SGDataVectorGetterTool::m_info
const DataModel_detail::DVLInfoBase * m_info
DataVector/List information for this collection.
Definition: SGDataVectorGetterTool.h:123
DataModel_detail::DVLInfoBase::find
static DVLInfoBase * find(const std::type_info &tinfo)
Find the DVLInfo for the container tinfo.
Definition: DVLInfo.cxx:76
D3PD::SGGetterImpl::m_clid
CLID m_clid
CLID for the object being retrieved.
Definition: SGGetterImpl.h:126
SG::DataProxy_cast
DATA * DataProxy_cast(DataProxy *proxy)
cast the proxy into the concrete data object it proxies
D3PD::SGKeyResolver::key
std::string key()
Return the SG key we should use.
Definition: SGKeyResolver.cxx:55
D3PD::CollectionGetterToolImpl::CollectionGetterToolImpl
CollectionGetterToolImpl(const std::string &type, const std::string &name, const IInterface *parent)
Standard Gaudi tool constructor.
Definition: CollectionGetterToolImpl.cxx:28
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
SG::BaseInfoBase::find
static const BaseInfoBase * find(CLID clid)
Find the BaseInfoBase instance for clid.
Definition: BaseInfo.cxx:569
D3PD::TypeConverter::isValid
bool isValid() const
Test to see if this converter has been properly initialized.
StoreGateSvc::tryConstRetrieve
const T * tryConstRetrieve() const
REPORT_MESSAGE
#define REPORT_MESSAGE(LVL)
Report a message.
Definition: Control/AthenaKernel/AthenaKernel/errorcheck.h:365
SGGETTERIMPL_PROPS
#define SGGETTERIMPL_PROPS
Use this macro in the constructor of the derived AlgTool class.
Definition: SGGetterImpl.h:90
D3PD::SGGetterImpl::m_typename
std::string m_typename
Property: Name of the type of the object being retrieved.
Definition: SGGetterImpl.h:113
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
D3PD::SGGetterImpl::m_resolver
SGKeyResolver m_resolver
Helper: Resolve the SG key to use.
Definition: SGGetterImpl.h:122
D3PD::CollectionGetterToolImpl::configureElementTypeinfo
StatusCode configureElementTypeinfo(const std::type_info &ti)
Test type compatibility.
Definition: CollectionGetterToolImpl.cxx:147
SG::BaseInfoBase
The non-template portion of the BaseInfo implementation.
Definition: Control/AthenaKernel/AthenaKernel/BaseInfo.h:451
DataModel_detail::DVLInfoBase::elt_tinfo
const std::type_info & elt_tinfo() const
Return the type_info for the container's element.
D3PD::SGDataVectorGetterTool::getInfo
const DataModel_detail::DVLInfoBase * getInfo(const std::type_info &ti)
Retrieve DataVector/List information for this collection.
Definition: SGDataVectorGetterTool.cxx:199
ATLAS_THREAD_SAFE
#define ATLAS_THREAD_SAFE
Definition: checker_macros.h:211
DataModel_detail::DVLInfoBase::base
virtual SG::AuxVectorBase * base(void *cont_p) const =0
Return a pointer to the container base.
D3PD::SGGetterImpl::m_clidsvc
ServiceHandle< IClassIDSvc > m_clidsvc
Property: Instance of the ClassIDSvc to use.
Definition: SGGetterImpl.h:119
SG::IConstAuxStore
Interface for const operations on an auxiliary store.
Definition: IConstAuxStore.h:64
D3PD::SGGetterImpl::m_sg
ServiceHandle< StoreGateSvc > & m_sg
The event storage service.
Definition: SGGetterImpl.h:129
SG::DataProxy
Definition: DataProxy.h:44
SG::AuxVectorBase::trackIndices
bool trackIndices() const
Return true if index tracking is enabled for this container.
D3PD::SGGetterImpl::getUntyped
virtual const void * getUntyped(bool allowMissing=false)
Return the target object.
Definition: SGGetterImpl.cxx:68
D3PD::SGGetterImpl::initializeImpl
StatusCode initializeImpl()
Initialize this mixin class.
Definition: SGGetterImpl.cxx:105
mapkey::key
key
Definition: TElectronEfficiencyCorrectionTool.cxx:37
SG::BaseInfoBase::is_base
bool is_base(CLID clid) const
Return true if clid is the ID of a class that is known to be a base of T.
Definition: BaseInfo.cxx:344