Loading [MathJax]/extensions/tex2jax.js
 |
ATLAS Offline Software
|
Go to the documentation of this file.
30 template<
typename T >
32 const std::vector< T >&
vec ) {
35 for(
size_t i = 0;
i <
vec.size(); ++
i ) {
37 if(
i < (
vec.size() - 1 ) ) {
52 m_clidSvc(
"ClassIDSvc",
name ) {
55 "StoreGate keys of the store objects to be wrapped" );
77 return StatusCode::SUCCESS;
89 const std::vector< const SG::DataProxy* > proxies =
96 <<
"\" and CLID " <<
proxy->clID() );
111 if(
typeName.compare( 0, 6,
"xAOD::" ) == 0) {
124 if( (
typeName.compare( 0, 6 ,
"xAOD::") == 0) &&
125 (
typeName !=
"xAOD::ByteStreamAuxContainer_v1" ) ) {
131 if(
proxy->name().find(
"Aux." ) !=
132 (
proxy->name().size() - 4 ) ) {
158 <<
"with interface SG::IAuxStore" );
184 return StatusCode::SUCCESS;
188 const std::string&
name ) {
192 if( aux_clid_itr ==
m_clids.end() ) {
195 return StatusCode::FAILURE;
197 evtStore()->releaseObject( aux_clid_itr->second,
name );
199 <<
" and name \"" <<
name <<
"\"" );
206 "SG::IAuxStore base class of: " <<
name );
207 return StatusCode::FAILURE;
210 CHECK(
evtStore()->removeProxy( storeProxy,
nullptr,
true ) );
220 <<
name <<
"\" with an xAOD::AuxContainerBase "
224 const std::string intName =
name.substr( 0,
name.size() - 4 );
228 auto clid_itr =
m_clids.find( intName );
229 if( clid_itr ==
m_clids.end() ) {
233 return StatusCode::SUCCESS;
235 intId = clid_itr->second;
242 <<
"\" not available" );
243 return StatusCode::SUCCESS;
250 <<
"Couldn't retrieve raw pointer to interface container";
251 return StatusCode::FAILURE;
259 reinterpret_cast<
SG::AuxVectorBase* >( ptr );
263 if( proxy->isConst() ) {
264 interface->setConstStore( holder );
266 interface->setStore( holder );
273 return StatusCode::SUCCESS;
277 const std::string&
name ) {
281 if( aux_clid_itr ==
m_clids.end() ) {
284 return StatusCode::FAILURE;
286 evtStore()->releaseObject( aux_clid_itr->second,
name );
288 <<
" and name \"" <<
name <<
"\"" );
298 <<
name <<
"\" into xAOD::AuxInfoBase "
302 const std::string intName =
name.substr( 0,
name.size() - 4 );
306 auto clid_itr =
m_clids.find( intName );
307 if( clid_itr ==
m_clids.end() ) {
311 return StatusCode::SUCCESS;
313 intId = clid_itr->second;
320 <<
"\" not available" );
321 return StatusCode::SUCCESS;
328 <<
"Couldn't retrieve raw pointer to interface object";
329 return StatusCode::FAILURE;
337 reinterpret_cast<
SG::AuxElement* >( ptr );
341 if( proxy->isConst() ) {
342 interface->setConstStore( holder );
344 interface->setStore( holder );
351 return StatusCode::SUCCESS;
Common base class for auxiliary info objects.
def retrieve(aClass, aKey=None)
DATA * DataProxy_cast(DataProxy *proxy)
cast the proxy into the concrete data object it proxies
virtual void setStore(SG::IAuxStore *store) override
Set a different internal store object.
#define REPORT_ERROR(SC)
Report an error.
virtual AuxStoreType getStoreType() const =0
Return the type of the store object.
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Base class for elements of a container that can have aux data.
Common base class for the auxiliary containers.
AuxStoreWrapper(const std::string &name, ISvcLocator *svcLoc)
Regular Algorithm constructor.
std::vector< size_t > vec
#define ATH_MSG_VERBOSE(x)
Manage index tracking and synchronization of auxiliary data.
std::set< std::string > m_keysSet
Keys of the objects to be wrapped, in a set container.
Manage index tracking and synchronization of auxiliary data.
StatusCode changeContainer(const SG::IAuxStore *store, const std::string &name)
Create a new container store.
ServiceHandle< StoreGateSvc > & evtStore()
The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
std::map< std::string, CLID > m_clids
Keys and CLIDs of the interface containers touched.
a traits class that associates a CLID to a type T It also detects whether T inherits from Gaudi DataO...
::StatusCode StatusCode
StatusCode definition for legacy code.
Default, invalid implementation of ClassID_traits.
#define CHECK(...)
Evaluate an expression and check for errors.
std::set< std::string > m_toConvert
Keys of the auxiliary stores that need to be converted in the end.
uint32_t CLID
The Class ID type.
StatusCode changeElement(const SG::IAuxStore *store, const std::string &name)
Create a new element store.
virtual void setStore(SG::IAuxStore *store) override
Set a different internal store object.
ServiceHandle< ::IClassIDSvc > m_clidSvc
Handle to the Class ID service.
Helpers for checking error return status codes and reporting errors.
bool m_cachesSet
Flag specifying whether the internal caches were set already.
std::ostream & operator<<(std::ostream &lhs, const TestGaudiProperty &rhs)
Interface for non-const operations on an auxiliary store.
#define ATH_MSG_WARNING(x)
Handle mappings between names and auxid_t.
Interface for non-const operations on an auxiliary store.
std::vector< std::string > m_keys
StoreGate keys of the store objects to be wrapped.
virtual StatusCode initialize()
Function initialising the algorithm.
Interface for const operations on an auxiliary store.
@ AST_ObjectStore
The store describes a single object.
Interface for objects taking part in direct ROOT I/O.
Base class for elements of a container that can have aux data.
virtual StatusCode execute()
Function executing the algorithm.