|
ATLAS Offline Software
|
Go to the documentation of this file.
16 #include "AthLinks/ElementLinkBase.h"
37 return StatusCode::SUCCESS;
43 std::vector< std::pair< const SG::IConstAuxStore*, std::string > > stores;
53 for(
auto itr =
begin; itr !=
end; ++itr ) {
56 stores.emplace_back(
store, itr.key() );
63 for(
const auto& storeKey : stores ) {
70 return StatusCode::SUCCESS;
74 const std::string&
key ) {
77 if( !
store.size() ) {
78 return StatusCode::SUCCESS;
95 const std::string tname =
97 static const std::string pat1 =
"ElementLink<";
98 static const std::string pat2 =
"std::vector<ElementLink<";
99 if( tname.substr( 0, pat1.size() ) == pat1 ) {
101 }
else if( tname.substr( 0, pat2.size() ) == pat2 ) {
120 void*
ptr =
const_cast< void*
>(
store.getData( auxid ) );
135 <<
"Invalid pointer received for variable: " <<
key
145 const size_t eltSize = reg.
getEltSize( auxid );
148 const size_t sz_i =
store.size();
149 for(
size_t i = 0;
i < sz_i; ++
i ) {
152 void* eltPtr =
reinterpret_cast< char*
>(
ptr ) +
i * eltSize;
166 std::vector< ElementLinkBase >&
v =
167 *(
reinterpret_cast< std::vector< ElementLinkBase >*
>( eltPtr ) );
168 const size_t sz_j =
v.size();
169 for(
size_t j = 0; j < sz_j; ++j ) {
180 return StatusCode::FAILURE;
186 return StatusCode::SUCCESS;
190 : isSet( false ), isEL( false ), isELVec( false ) {
def retrieve(aClass, aKey=None)
std::vector< AuxIDType > m_typeCache
Cached types of the auxiliary IDs.
static AuxTypeRegistry & instance()
Return the singleton registry instance.
std::string normalizedTypeinfoName(const std::type_info &info)
Convert a type_info to a normalized string representation (matching the names used in the root dictio...
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
std::string getName(SG::auxid_t auxid) const
Return the name of an aux data item.
const_iterator end() const
Return an end iterator.
StatusCode reset(const SG::IConstAuxStore &store, const std::string &key)
Function reseting all the ElementLinks in one specific container.
#define ATH_MSG_VERBOSE(x)
virtual StatusCode initialize()
Function initialising the algorithm.
Interface providing I/O for a generic auxiliary store.
Base class for ElementLinks to vectors of pointers.
sgkey_t persKey() const
Return the SG key that we reference, as a hash.
Handle mappings between names and auxid_t.
ServiceHandle< StoreGateSvc > & evtStore()
The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
size_t auxid_t
Identifier for a particular aux data item.
const std::type_info * getType(SG::auxid_t auxid) const
Return the type of an aux data item.
bool toTransient(IProxyDict *sg=0)
Finish initialization after link has been read.
virtual StatusCode execute()
Function executing the algorithm.
Interface providing I/O for a generic auxiliary store.
::StatusCode StatusCode
StatusCode definition for legacy code.
size_t getEltSize(SG::auxid_t auxid) const
Return size of an element in the STL vector.
virtual const SG::auxid_set_t & getDynamicAuxIDs() const =0
Get the list of all dynamically created variables.
Convert a type_info to a normalized string representation (matching the names used in the root dictio...
const_iterator find(bit_t bit) const
If bit bit is set, return an iterator pointing to it.
Helpers for checking error return status codes and reporting errors.
#define REPORT_MESSAGE(LVL)
Report a message.
Handle mappings between names and auxid_t.
A set of aux data identifiers.
ElementLinkResetAlg(const std::string &name, ISvcLocator *svcLoc)
Regular Algorithm constructor.
Interface for const operations on an auxiliary store.
Interface for const operations on an auxiliary store.
std::vector< std::string > m_keys
StoreGate keys of the auxiliary objects to be processed.