ATLAS Offline Software
Public Types | Public Member Functions | Static Public Attributes | Private Types | Private Attributes | List of all members
xAOD::EventShapeAuxInfo_v1 Class Referenceabstract

Auxiliary information about the event shapes. More...

#include <EventShapeAuxInfo_v1.h>

Inheritance diagram for xAOD::EventShapeAuxInfo_v1:
Collaboration diagram for xAOD::EventShapeAuxInfo_v1:

Public Types

typedef SG::auxid_t auxid_t
 The aux ID type definition. More...
 
typedef SG::auxid_set_t auxid_set_t
 The aux ID set type definition. More...
 
template<class T , class ALLOC = std::allocator<T>>
using AuxVariable_t = T
 Declare how to wrap variables for this sort of base. More...
 
enum  AuxStoreType { AST_ObjectStore = 0, AST_ContainerStore = 1 }
 Type of the auxiliary store. More...
 

Public Member Functions

 EventShapeAuxInfo_v1 ()
 Default constructor. More...
 
virtual const void * getData (SG::auxid_t auxid) const=0
 Pick up the const version from the base class. More...
 
virtual bool insertMove (size_t pos, IAuxStore &other, const SG::auxid_set_t &ignore=SG::auxid_set_t())=0
 Move all elements from other to this store. More...
 
template<typename T >
auxid_t getAuxID (const std::string &name, T &, SG::AuxVarFlags flags=SG::AuxVarFlags::None)
 Get the auxiliary ID for one of the persistent variables. More...
 
template<typename T >
void regAuxVar (auxid_t auxid, const std::string &name, T &info)
 Register one of the persistent variables internally. More...
 

Static Public Attributes

static constexpr bool supportsThinning = true
 Mark that this type supports thinning operations. More...
 

Private Types

typedef AthContainers_detail::mutex mutex_t
 Mutex for multithread synchronization. More...
 
typedef AthContainers_detail::lock_guard< mutex_tguard_t
 

Private Attributes

auxid_set_t m_auxids
 Internal list of all available variables. More...
 
std::vector< SG::IAuxTypeVector * > m_vecs
 Internal list of all managed variables. More...
 
SG::IAuxStorem_store
 Internal dynamic auxiliary store object. More...
 
SG::IAuxStoreIOm_storeIO
 The IO interface to the internal auxiliary store. More...
 
bool m_ownsStore
 Flag deciding if the object owns the dynamic store or not. More...
 
bool m_locked
 Has the container been locked? More...
 
mutex_t m_mutex
 
std::string m_name
 Name of the container in memory. Set externally. More...
 

Detailed Description

Auxiliary information about the event shapes.

This object describes the "static" auxiliary information about an event shape

Author
P-A Delsart <delsart in2p3. fr>

Definition at line 22 of file EventShapeAuxInfo_v1.h.

Member Typedef Documentation

◆ auxid_set_t

The aux ID set type definition.

Definition at line 55 of file AuxInfoBase.h.

◆ auxid_t

The aux ID type definition.

Definition at line 53 of file AuxInfoBase.h.

◆ AuxVariable_t

template<class T , class ALLOC = std::allocator<T>>
using xAOD::AuxInfoBase::AuxVariable_t = T
inherited

Declare how to wrap variables for this sort of base.

Definition at line 167 of file AuxInfoBase.h.

◆ guard_t

typedef AthContainers_detail::lock_guard< mutex_t > xAOD::AuxInfoBase::guard_t
privateinherited

Definition at line 197 of file AuxInfoBase.h.

◆ mutex_t

typedef AthContainers_detail::mutex xAOD::AuxInfoBase::mutex_t
privateinherited

Mutex for multithread synchronization.

Definition at line 196 of file AuxInfoBase.h.

Member Enumeration Documentation

◆ AuxStoreType

Type of the auxiliary store.

In the xAOD EDM we use auxiliary store objects in some cases to describe a single object, and in most cases to describe a container of objects. This enumeration declares which type the object implementing this interface is.

Enumerator
AST_ObjectStore 

The store describes a single object.

AST_ContainerStore 

The store describes a container.

Definition at line 66 of file IAuxStoreHolder.h.

66  {
67  AST_ObjectStore = 0,
69  };

Constructor & Destructor Documentation

◆ EventShapeAuxInfo_v1()

xAOD::EventShapeAuxInfo_v1::EventShapeAuxInfo_v1 ( )

Default constructor.

Definition at line 12 of file EventShapeAuxInfo_v1.cxx.

13  : AuxInfoBase() {
14 
15  }

Member Function Documentation

◆ clearDecorations()

bool xAOD::AuxInfoBase::clearDecorations ( )
overridevirtualinherited

Clear all decorations.

Implements SG::IConstAuxStore.

Definition at line 294 of file AuxInfoBase.cxx.

294  {
295 
296  // Guard against multi-threaded execution:
297  guard_t guard( m_mutex );
298 
299  // Clear the decorations that are in the dynamic store:
300  bool anycleared = false;
301  if( m_store ) {
302  anycleared = m_store->clearDecorations();
303  }
304  // Early exit if there were no decorations.
305  if (!anycleared) return false;
306 
307  // Reconstruct the list of managed auxiliary IDs from scratch:
309  for( auxid_t auxid = 0; auxid < m_vecs.size(); ++auxid ) {
310  if( m_vecs[ auxid ] ) {
311  ids.insert( auxid );
312  }
313  }
314  if( m_store ) {
315  ids.insert (m_store->getAuxIDs());
316  }
317  m_auxids = ids;
318 
319  return true;
320  }

◆ getAuxID()

template<typename T >
auxid_t xAOD::AuxInfoBase::getAuxID ( const std::string &  name,
T &  ,
SG::AuxVarFlags  flags = SG::AuxVarFlags::None 
)
inherited

Get the auxiliary ID for one of the persistent variables.

◆ getAuxIDs()

const AuxInfoBase::auxid_set_t & xAOD::AuxInfoBase::getAuxIDs ( ) const
overridevirtualinherited

Get the types(names) of variables handled by this container.

Implements SG::IConstAuxStore.

Definition at line 236 of file AuxInfoBase.cxx.

236  {
237 
238  // Return the full list of IDs:
239  return getWritableAuxIDs();
240  }

◆ getData() [1/3]

const void * xAOD::AuxInfoBase::getData ( auxid_t  auxid) const
overridevirtualinherited

Get a pointer to a given array.

Implements SG::IConstAuxStore.

Definition at line 196 of file AuxInfoBase.cxx.

196  {
197 
198  // Guard against multi-threaded execution:
199  guard_t guard( m_mutex );
200 
201  if( ( auxid >= m_vecs.size() ) || ( ! m_vecs[ auxid ] ) ) {
202  if( m_store ) {
203  const void* result = m_store->getData( auxid );
204  if( result ) {
205  auxid_set_t& auxids_nc ATLAS_THREAD_SAFE =
206  const_cast<auxid_set_t&> (m_auxids);
207  auxids_nc.insert( auxid );
208  }
209  return result;
210  } else {
211  std::cout << "ERROR xAOD::AuxInfoBase::getData "
212  << "Unknown variable ("
214  << ") requested" << std::endl;
215  return nullptr;
216  }
217  }
218 
219  // Update the statistics for this variable. The dynamic store registers
220  // its own variable accesses.
222 
223  return m_vecs[ auxid ]->toPtr();
224  }

◆ getData() [2/3]

void * xAOD::AuxInfoBase::getData ( auxid_t  auxid,
size_t  size,
size_t  capacity 
)
overridevirtualinherited

Get a pointer to a given array, creating the array if necessary.

Implements SG::IAuxStore.

Definition at line 362 of file AuxInfoBase.cxx.

363  {
364 
365  // Guard against multi-threaded execution:
366  guard_t guard( m_mutex );
367 
368  if( ( auxid >= m_vecs.size() ) || ( ! m_vecs[ auxid ] ) ) {
369 
370  if( m_store ) {
371  void* result = m_store->getData( auxid, size, capacity );
372  if( result ) {
373  m_auxids.insert( auxid );
374  }
375  return result;
376  } else {
377  std::cout << "ERROR xAOD::AuxInfoBase::getData "
378  << "Unknown variable ("
380  << ") requested" << std::endl;
381  return nullptr;
382  }
383  }
384  m_vecs[ auxid ]->reserve( capacity );
385  m_vecs[ auxid ]->resize( size );
386 
387  return m_vecs[ auxid ]->toPtr();
388  }

◆ getData() [3/3]

virtual const void* SG::IConstAuxStore::getData
inherited

Pick up the const version from the base class.

◆ getDecoration()

void * xAOD::AuxInfoBase::getDecoration ( auxid_t  auxid,
size_t  size,
size_t  capacity 
)
overridevirtualinherited

Get a pointer to a given array, as a decoration.

Implements SG::IConstAuxStore.

Reimplemented in xAOD::EventAuxInfo_v1, xAOD::EventAuxInfo_v2, and xAOD::EventAuxInfo_v3.

Definition at line 242 of file AuxInfoBase.cxx.

243  {
244  {
245  // Guard against multi-threaded execution:
246  guard_t guard( m_mutex );
247 
248  // Check if we have it as a static variable:
249  if( ( auxid >= m_vecs.size() ) || ( ! m_vecs[ auxid ] ) ) {
250  // If not, but we have a dynamic store, push it in there:
251  if( m_store ) {
252  void* result = m_store->getDecoration( auxid, size, capacity );
253  if( result ) {
254  m_auxids.insert( auxid );
255  }
256  return result;
257  }
258  // If we don't have a dynamic store, complain:
259  else {
260  std::cout << "ERROR xAOD::AuxInfoBase::getDecoration "
261  << "Can't provide variable "
263  << std::endl;
264  return nullptr;
265  }
266  }
267 
268  // If the container is locked, static variables can't be accessed this
269  // way:
270  if( m_locked ) {
271  throw SG::ExcStoreLocked( auxid );
272  }
273  }
274 
275  // If the container is not locked, then fall back on the normal accessor
276  // function:
277  return getData( auxid, size, capacity );
278  }

◆ getDynamicAuxIDs()

const AuxInfoBase::auxid_set_t & xAOD::AuxInfoBase::getDynamicAuxIDs ( ) const
overridevirtualinherited

Get the types(names) of variables created dynamically.

Implements SG::IAuxStoreIO.

Definition at line 561 of file AuxInfoBase.cxx.

561  {
562 
563  // Guard against multi-threaded execution:
564  guard_t guard( m_mutex );
565 
566  // All the variables handled by the internal store are dynamic
567  // if such a store exists:
568  if( m_storeIO ) {
569  // I mean, all the variables. Not just the ones reported as dynamic
570  // by the internal object. Because the internal object may be something
571  // that was put into this one in order to achieve data slimming.
572  return m_store->getAuxIDs();
573  }
574 
575  // In case we don't use an internal store, there are no dynamic
576  // variables:
577  static const auxid_set_t dummy (0);
578  return dummy;
579  }

◆ getIOData()

const void * xAOD::AuxInfoBase::getIOData ( auxid_t  auxid) const
overridevirtualinherited

Get a pointer to the data being stored for one aux data item.

Implements SG::IAuxStoreIO.

Definition at line 516 of file AuxInfoBase.cxx.

516  {
517 
518  // Guard against multi-threaded execution:
519  guard_t guard( m_mutex );
520 
521  if( ( auxid >= m_vecs.size() ) || ( ! m_vecs[ auxid ] ) ) {
522  if( m_storeIO ) {
523  return m_storeIO->getIOData( auxid );
524  } else {
525  std::cout << "ERROR xAOD::AuxInfoBase::getIOData "
526  << "Unknown variable ("
528  << ") requested" << std::endl;
529  return nullptr;
530  }
531  }
532 
533  // Update the statistics for this variable. The dynamic store registers
534  // its own variable accesses.
536 
537  return m_vecs[ auxid ]->toPtr();
538  }

◆ getIOType()

const std::type_info * xAOD::AuxInfoBase::getIOType ( auxid_t  auxid) const
overridevirtualinherited

Return the type of the data to be stored for one aux data item.

Implements SG::IAuxStoreIO.

Definition at line 540 of file AuxInfoBase.cxx.

540  {
541 
542  // Guard against multi-threaded execution:
543  guard_t guard( m_mutex );
544 
545  if( ( auxid >= m_vecs.size() ) || ( ! m_vecs[ auxid ] ) ) {
546  if( m_storeIO ) {
547  return m_storeIO->getIOType( auxid );
548  } else {
549  std::cout << "ERROR xAOD::AuxInfoBase::getIOType "
550  << "Unknown variable ("
552  << ") requested" << std::endl;
553  return nullptr;
554  }
555  }
556 
557  return SG::AuxTypeRegistry::instance().getType( auxid );
558  }

◆ getSelectedAuxIDs()

AuxInfoBase::auxid_set_t xAOD::AuxInfoBase::getSelectedAuxIDs ( ) const
overridevirtualinherited

Get the IDs of the selected dynamic Aux variables (for writing)

Reimplemented from SG::IAuxStoreIO.

Definition at line 582 of file AuxInfoBase.cxx.

582  {
583 
584  // Guard against multi-threaded execution:
585  guard_t guard( m_mutex );
586 
587  // All the variables handled by the internal store are dynamic
588  // if such a store exists:
589  if( m_storeIO ) {
590  // I mean, all the variables. Not just the ones reported as dynamic
591  // by the internal object. Because the internal object may be something
592  // that was put into this one in order to achieve data slimming.
593  return m_store->getAuxIDs();
594  }
595 
596  // In case we don't use an internal store, there are no dynamic
597  // variables:
598  return auxid_set_t();
599  }

◆ getStore() [1/2]

const SG::IAuxStore * xAOD::AuxInfoBase::getStore ( ) const
overridevirtualinherited

Get the currently used internal store object.

Implements SG::IAuxStoreHolder.

Definition at line 147 of file AuxInfoBase.cxx.

148  {
149  return m_store;
150  }

◆ getStore() [2/2]

SG::IAuxStore * xAOD::AuxInfoBase::getStore ( )
overridevirtualinherited

Get the currently used internal store object.

Implements SG::IAuxStoreHolder.

Definition at line 141 of file AuxInfoBase.cxx.

142  {
143  return m_store;
144  }

◆ getStoreType()

virtual AuxStoreType xAOD::AuxInfoBase::getStoreType ( ) const
inlineoverridevirtualinherited

Return the type of the store object.

Implements SG::IAuxStoreHolder.

Definition at line 79 of file AuxInfoBase.h.

79 { return AST_ObjectStore; }

◆ getWritableAuxIDs()

const AuxInfoBase::auxid_set_t & xAOD::AuxInfoBase::getWritableAuxIDs ( ) const
overridevirtualinherited

Return a set of writable data identifiers.

Implements SG::IAuxStore.

Definition at line 391 of file AuxInfoBase.cxx.

391  {
392 
393  // Return the full list of known IDs. The constness of this object's
394  // members comes from the object being const or not.
395  return m_auxids;
396  }

◆ insertMove() [1/2]

bool xAOD::AuxInfoBase::insertMove ( size_t  pos,
IAuxStore &  other,
const SG::auxid_set_t ignore 
)
overridevirtualinherited

Insert contents of another store via move.

Definition at line 480 of file AuxInfoBase.cxx.

481  {
482 
483  // Guard against multi-threaded execution:
484  guard_t guard( m_mutex );
485 
486  // Check if the container is locked:
487  if( m_locked ) {
488  throw SG::ExcStoreLocked( "insertMove" );
489  }
490 
491  // We are just not allowed to do this...
492  throw std::runtime_error( "Calling insertMove on a non-vector" );
493 
494  return false;
495  }

◆ insertMove() [2/2]

virtual bool SG::IAuxStore::insertMove ( size_t  pos,
IAuxStore other,
const SG::auxid_set_t ignore = SG::auxid_set_t() 
)
pure virtualinherited

Move all elements from other to this store.

Parameters
posThe starting index of the insertion.
otherStore from which to do the move.
ignoreSet of variables that should not be added to the store.

Let len be the size of other. The store will be increased in size by len elements, with the elements at pos being copied to pos+len. Then, for each auxiliary variable, the entire contents of that variable for other will be moved to this store at index pos. This will be done via move semantics if possible; otherwise, it will be done with a copy. Variables present in this store but not in other will have the corresponding elements default-initialized. Variables in other but not in this store will be added unless they are in ignore.

Returns true if it is known that none of the vectors' memory moved, false otherwise.

Implemented in SG::AuxStoreInternal.

◆ isDecoration()

bool xAOD::AuxInfoBase::isDecoration ( auxid_t  auxid) const
overridevirtualinherited

Test if a variable is a decoration.

Implements SG::IConstAuxStore.

Reimplemented in xAOD::EventAuxInfo_v1, xAOD::EventAuxInfo_v2, and xAOD::EventAuxInfo_v3.

Definition at line 226 of file AuxInfoBase.cxx.

227  {
228  guard_t guard( m_mutex );
229  if (m_store) {
230  return m_store->isDecoration (auxid);
231  }
232  return false;
233  }

◆ lock()

void xAOD::AuxInfoBase::lock ( )
overridevirtualinherited

Lock the container.

Implements ILockable.

Definition at line 280 of file AuxInfoBase.cxx.

280  {
281 
282  // Guard against multi-threaded execution:
283  guard_t guard( m_mutex );
284 
285  // Lock the container and the dynamic store:
286  m_locked = true;
287  if( m_store ) {
288  m_store->lock();
289  }
290 
291  return;
292  }

◆ lockDecoration()

void xAOD::AuxInfoBase::lockDecoration ( SG::auxid_t  auxid)
overridevirtualinherited

Lock a decoration.

Implements SG::IConstAuxStore.

Reimplemented in xAOD::EventAuxInfo_v1, xAOD::EventAuxInfo_v2, and xAOD::EventAuxInfo_v3.

Definition at line 323 of file AuxInfoBase.cxx.

324  {
325  guard_t guard (m_mutex);
326  if (m_store) {
327  m_store->lockDecoration (auxid);
328  }
329  }

◆ name()

const char * xAOD::AuxInfoBase::name ( ) const
inherited

Get the name of the container instance.

Definition at line 604 of file AuxInfoBase.cxx.

604  {
605 
606  return m_name.c_str();
607  }

◆ regAuxVar()

template<typename T >
void xAOD::AuxInfoBase::regAuxVar ( auxid_t  auxid,
const std::string &  name,
T &  info 
)
inherited

Register one of the persistent variables internally.

◆ reserve()

void xAOD::AuxInfoBase::reserve ( size_t  size)
overridevirtualinherited

Reserve a given size for the arrays.

Implements SG::IAuxStore.

Definition at line 432 of file AuxInfoBase.cxx.

432  {
433 
434  // Guard against multi-threaded execution:
435  guard_t guard( m_mutex );
436 
437  // Check if the container is locked:
438  if( m_locked ) {
439  throw SG::ExcStoreLocked( "reserve" );
440  }
441 
442  // Do a test already here:
443  if( size != 1 ) {
444  throw std::runtime_error( "Calling reserve with != 1 on a "
445  "non-vector" );
446  }
447 
448  // Do the operation on the static variables:
451  for( ; itr != end; ++itr ) {
452  if( *itr ) ( *itr )->reserve( size );
453  }
454 
455  // Do the operation on the dynamic variables:
456  if( m_store ) {
457  m_store->reserve( size );
458  }
459 
460  return;
461  }

◆ resize()

bool xAOD::AuxInfoBase::resize ( size_t  size)
overridevirtualinherited

Resize the arrays to a given size.

Implements SG::IAuxStore.

Definition at line 398 of file AuxInfoBase.cxx.

398  {
399 
400  // Guard against multi-threaded execution:
401  guard_t guard( m_mutex );
402 
403  // Check if the container is locked:
404  if( m_locked ) {
405  throw SG::ExcStoreLocked( "resize" );
406  }
407 
408  // Do a test already here:
409  if( size != 1 ) {
410  throw std::runtime_error( "Calling resize with != 1 on a "
411  "non-vector" );
412  }
413 
414  // Do the operation on the static variables:
415  bool nomoves = true;
416  for (SG::IAuxTypeVector* v : m_vecs) {
417  if(v) {
418  if (!v->resize( size ))
419  nomoves = false;
420  }
421  }
422 
423  // Do the operation on the dynamic variables:
424  if( m_store ) {
425  if (!m_store->resize( size ))
426  nomoves = false;
427  }
428 
429  return nomoves;
430  }

◆ setName()

void xAOD::AuxInfoBase::setName ( const char name)
inherited

Set the name of the container instance.

Definition at line 609 of file AuxInfoBase.cxx.

609  {
610 
611  m_name = name;
612  return;
613  }

◆ setOption()

bool xAOD::AuxInfoBase::setOption ( auxid_t  id,
const SG::AuxDataOption option 
)
overridevirtualinherited

Make an option setting on an aux variable.

Reimplemented from SG::IAuxStore.

Definition at line 498 of file AuxInfoBase.cxx.

498  {
499 
500  if (id < m_vecs.size() && m_vecs[id] != nullptr)
501  return m_vecs[id]->setOption( option );
502  if (m_store)
503  return m_store->setOption( id, option );
504  return false;
505  }

◆ setStore()

void xAOD::AuxInfoBase::setStore ( SG::IAuxStore store)
overridevirtualinherited

Set a different internal store object.

This function is used by the I/O infrastructure to possibly put a store object into this one, which can interact with dynamic variables directly.

Note that the object takes ownership of the received store.

Parameters
storeThe store that should be used for dynamic variable handling inside the object from now on

Implements SG::IAuxStoreHolder.

Definition at line 161 of file AuxInfoBase.cxx.

161  {
162 
163  // Guard against multi-threaded execution:
164  guard_t guard( m_mutex );
165 
166  // Check that no funny business is going on:
167  if( m_store == store ) return;
168 
169  // Clean up the current store object:
170  if( m_store && m_ownsStore ) {
171  m_auxids -= m_store->getAuxIDs();
172  delete m_store;
173  }
174  m_store = nullptr;
175  m_storeIO = nullptr;
176 
177  // Take posession of the new object:
178  m_store = store;
179  m_storeIO = dynamic_cast< SG::IAuxStoreIO* >( m_store );
180  m_ownsStore = true;
181  if( m_store ) {
183  }
184 
185  return;
186  }

◆ shift()

void xAOD::AuxInfoBase::shift ( size_t  pos,
ptrdiff_t  offs 
)
overridevirtualinherited

Shift the contents of the stored arrays.

Implements SG::IAuxStore.

Definition at line 463 of file AuxInfoBase.cxx.

463  {
464 
465  // Guard against multi-threaded execution:
466  guard_t guard( m_mutex );
467 
468  // Check if the container is locked:
469  if( m_locked ) {
470  throw SG::ExcStoreLocked( "shift" );
471  }
472 
473  // We are just not allowed to do this...
474  throw std::runtime_error( "Calling shift on a non-vector" );
475 
476  return;
477  }

◆ size()

size_t xAOD::AuxInfoBase::size ( ) const
overridevirtualinherited

Get the size of the container.

Implements SG::IConstAuxStore.

Definition at line 331 of file AuxInfoBase.cxx.

331  {
332 
333  // Should really always be 1, but do the general thing anyway...
334 
335  // Guard against multi-threaded execution:
336  guard_t guard( m_mutex );
337 
338  // Try to find a variable:
339  for (SG::auxid_t i : m_auxids) {
340  if( ( i < m_vecs.size() ) && m_vecs[ i ] ) {
341  size_t sz = m_vecs[ i ]->size();
342  if( sz > 0 ) {
343  return sz;
344  }
345  }
346  }
347 
348  // If we didn't find any statically defined variables, then we just
349  // need to claim 1. Because pool::AuxStoreAPR at the moment always
350  // returns 0 for the size.
351  return 1;
352  }

Member Data Documentation

◆ m_auxids

auxid_set_t xAOD::AuxInfoBase::m_auxids
privateinherited

Internal list of all available variables.

Definition at line 182 of file AuxInfoBase.h.

◆ m_locked

bool xAOD::AuxInfoBase::m_locked
privateinherited

Has the container been locked?

Definition at line 193 of file AuxInfoBase.h.

◆ m_mutex

mutex_t xAOD::AuxInfoBase::m_mutex
mutableprivateinherited

Definition at line 198 of file AuxInfoBase.h.

◆ m_name

std::string xAOD::AuxInfoBase::m_name
privateinherited

Name of the container in memory. Set externally.

Definition at line 201 of file AuxInfoBase.h.

◆ m_ownsStore

bool xAOD::AuxInfoBase::m_ownsStore
privateinherited

Flag deciding if the object owns the dynamic store or not.

Definition at line 191 of file AuxInfoBase.h.

◆ m_store

SG::IAuxStore* xAOD::AuxInfoBase::m_store
privateinherited

Internal dynamic auxiliary store object.

Definition at line 187 of file AuxInfoBase.h.

◆ m_storeIO

SG::IAuxStoreIO* xAOD::AuxInfoBase::m_storeIO
privateinherited

The IO interface to the internal auxiliary store.

Definition at line 189 of file AuxInfoBase.h.

◆ m_vecs

std::vector< SG::IAuxTypeVector* > xAOD::AuxInfoBase::m_vecs
privateinherited

Internal list of all managed variables.

Definition at line 184 of file AuxInfoBase.h.

◆ supportsThinning

constexpr bool SG::IAuxStore::supportsThinning = true
staticconstexprinherited

Mark that this type supports thinning operations.

See AthContainers/supportsThinning.h and AthenaPoolCnvSvc/T_AthenaPoolCnv.h. Helps guide which pool converter template will be used. If false, the default pool converter will be used rather than the aux store-specific one. Ordinary xAOD type should not touch this, but may be overridden in a derived class to handle certain special cases.

Definition at line 189 of file IAuxStore.h.


The documentation for this class was generated from the following files:
xAOD::iterator
JetConstituentVector::iterator iterator
Definition: JetConstituentVector.cxx:68
store
StoreGateSvc * store
Definition: fbtTestBasics.cxx:69
beamspotPlotBcids.sz
sz
Definition: beamspotPlotBcids.py:521
SG::IConstAuxStore::lockDecoration
virtual void lockDecoration(SG::auxid_t auxid)=0
Lock a decoration.
get_generator_info.result
result
Definition: get_generator_info.py:21
xAOD::AuxInfoBase::auxid_t
SG::auxid_t auxid_t
The aux ID type definition.
Definition: AuxInfoBase.h:53
xAOD::IOStats::stats
ReadStats & stats()
Access the object belonging to the current thread.
Definition: IOStats.cxx:17
SG::AuxTypeRegistry::instance
static AuxTypeRegistry & instance()
Return the singleton registry instance.
Definition: AuxTypeRegistry.cxx:49
xAOD::AuxInfoBase::AuxInfoBase
AuxInfoBase(bool allowDynamicVars=true)
Default constructor.
Definition: AuxInfoBase.cxx:26
SG::AuxTypeRegistry::getName
std::string getName(SG::auxid_t auxid) const
Return the name of an aux data item.
Definition: AuxTypeRegistry.cxx:262
xAOD::AuxInfoBase::m_vecs
std::vector< SG::IAuxTypeVector * > m_vecs
Internal list of all managed variables.
Definition: AuxInfoBase.h:184
SG::ExcStoreLocked
Exception — Attempted to modify auxiliary data in a locked store.
Definition: Control/AthContainers/AthContainers/exceptions.h:183
xAOD::AuxInfoBase::size
virtual size_t size() const override
Get the size of the container.
Definition: AuxInfoBase.cxx:331
xAOD::AuxInfoBase::getWritableAuxIDs
virtual const auxid_set_t & getWritableAuxIDs() const override
Return a set of writable data identifiers.
Definition: AuxInfoBase.cxx:391
xAOD::AuxInfoBase::m_ownsStore
bool m_ownsStore
Flag deciding if the object owns the dynamic store or not.
Definition: AuxInfoBase.h:191
atn_test_sgProducerConsumerDataPool_jobOptions.end
end
Definition: atn_test_sgProducerConsumerDataPool_jobOptions.py:25
xAOD::AuxInfoBase::name
const char * name() const
Get the name of the container instance.
Definition: AuxInfoBase.cxx:604
SG::IAuxStoreIO::getIOType
virtual const std::type_info * getIOType(SG::auxid_t auxid) const =0
Return the type of the data to be stored for one aux data item.
SG::IAuxStoreIO
Interface providing I/O for a generic auxiliary store.
Definition: IAuxStoreIO.h:44
xAOD::AuxInfoBase::getData
virtual const void * getData(auxid_t auxid) const override
Get a pointer to a given array.
Definition: AuxInfoBase.cxx:196
SG::IAuxStore::setOption
virtual bool setOption(auxid_t, const AuxDataOption &)
Set an option for a given auxiliary variable.
Definition: IAuxStore.h:176
SG::auxid_t
size_t auxid_t
Identifier for a particular aux data item.
Definition: AuxTypes.h:27
SG::AuxTypeRegistry::getType
const std::type_info * getType(SG::auxid_t auxid) const
Return the type of an aux data item.
Definition: AuxTypeRegistry.cxx:287
SG::IConstAuxStore::clearDecorations
virtual bool clearDecorations()=0
Clear all decorations.
xAOD::AuxInfoBase::m_store
SG::IAuxStore * m_store
Internal dynamic auxiliary store object.
Definition: AuxInfoBase.h:187
lumiFormat.i
int i
Definition: lumiFormat.py:92
CxxUtils::ConcurrentBitset::insert
ConcurrentBitset & insert(bit_t bit, bit_t new_nbits=0)
Set a bit to 1.
xAOD::AuxInfoBase::m_name
std::string m_name
Name of the container in memory. Set externally.
Definition: AuxInfoBase.h:201
python.xAODType.dummy
dummy
Definition: xAODType.py:4
SG::IConstAuxStore::getDecoration
virtual void * getDecoration(auxid_t auxid, size_t size, size_t capacity)=0
Return the data vector for one aux data decoration item.
xAOD::IOStats::instance
static IOStats & instance()
Singleton object accessor.
Definition: IOStats.cxx:11
xAOD::AuxInfoBase::auxid_set_t
SG::auxid_set_t auxid_set_t
The aux ID set type definition.
Definition: AuxInfoBase.h:55
id
SG::auxid_t id
Definition: Control/AthContainers/Root/debug.cxx:191
python.subdetectors.mmg.ids
ids
Definition: mmg.py:8
xAOD::AuxInfoBase::guard_t
AthContainers_detail::lock_guard< mutex_t > guard_t
Definition: AuxInfoBase.h:197
SG::IAuxStoreIO::getIOData
virtual const void * getIOData(SG::auxid_t auxid) const =0
Return a pointer to the data to be stored for one aux data item.
xAOD::ReadStats::readBranch
void readBranch(const std::string &prefix, SG::auxid_t auxid)
Function incrementing the read counter on a specific branch.
python.PyAthena.v
v
Definition: PyAthena.py:157
SG::IAuxStore::getData
virtual void * getData(auxid_t auxid, size_t size, size_t capacity)=0
Return the data vector for one aux data item.
xAOD::AuxInfoBase::m_storeIO
SG::IAuxStoreIO * m_storeIO
The IO interface to the internal auxiliary store.
Definition: AuxInfoBase.h:189
SG::IAuxTypeVector
Abstract interface for manipulating vectors of arbitrary types.
Definition: IAuxTypeVector.h:40
SG::IConstAuxStore::lock
virtual void lock()=0
Lock the container.
SG::IAuxStore::resize
virtual bool resize(size_t sz)=0
Change the size of all aux data vectors.
ATLAS_THREAD_SAFE
#define ATLAS_THREAD_SAFE
Definition: checker_macros.h:211
SG::IConstAuxStore::isDecoration
virtual bool isDecoration(auxid_t auxid) const =0
Test if a particular variable is tagged as a decoration.
SG::IAuxStoreHolder::AST_ObjectStore
@ AST_ObjectStore
The store describes a single object.
Definition: IAuxStoreHolder.h:67
xAOD::AuxInfoBase::m_auxids
auxid_set_t m_auxids
Internal list of all available variables.
Definition: AuxInfoBase.h:182
SG::IConstAuxStore::getAuxIDs
virtual const SG::auxid_set_t & getAuxIDs() const =0
Return a set of identifiers for existing data items in this store.
xAOD::AuxInfoBase::m_locked
bool m_locked
Has the container been locked?
Definition: AuxInfoBase.h:193
xAOD::AuxInfoBase::m_mutex
mutex_t m_mutex
Definition: AuxInfoBase.h:198
SG::IAuxStore::reserve
virtual void reserve(size_t sz)=0
Change the capacity of all aux data vectors.
SG::IAuxStoreHolder::AST_ContainerStore
@ AST_ContainerStore
The store describes a container.
Definition: IAuxStoreHolder.h:68