ATLAS Offline Software
Public Types | Public Member Functions | Public Attributes | List of all members
SG::ThinningInfo Class Reference

Hold thinning/slimming information for a given object. More...

#include <ThinningInfo.h>

Collaboration diagram for SG::ThinningInfo:

Public Types

typedef std::map< unsigned int, CxxUtils::ConcurrentBitsetcompression_map_t
 This map holds a set of auxids to be lossy compressed for each compression level (nmantissa). More...
 

Public Member Functions

bool vetoed (size_t id) const
 Test if a variable has been vetoed. More...
 
unsigned int compression (size_t id) const
 Test if a variable is asked to be compressed. More...
 

Public Attributes

const ThinningDecisionBasem_decision
 Thinning for the object. More...
 
CxxUtils::ConcurrentBitset m_vetoed
 Set of auxids not to be written for this object. More...
 
compression_map_t m_compression
 

Detailed Description

Hold thinning/slimming information for a given object.

Thinning/slimming information for objects in the event store can come from several sources. At present, this includes the TrigDecision objects recorded in the event store by thinning algorithms and the list of suppressed aux variables constructed by AthenaOutputStream.

ThinningCacheTool will assemble them in one place for ease of access during output. ThinningCache maps object keys to ThinningInfo objects, when then hold the information for single objects.

Definition at line 39 of file ThinningInfo.h.

Member Typedef Documentation

◆ compression_map_t

This map holds a set of auxids to be lossy compressed for each compression level (nmantissa).

Same comment above for the SG::auxid_set_t applies here. Keeping compression level as the key allows us to use the set as the value, which eases the look up. Maybe it would be more natural to have auxid => compression level but that might have complicated things a bit. If an auxid exists in multiple compression levels, always pick the most strict one (lowest) for space savings.

Definition at line 66 of file ThinningInfo.h.

Member Function Documentation

◆ compression()

unsigned int SG::ThinningInfo::compression ( size_t  id) const
inline

Test if a variable is asked to be compressed.

If it is, return the compression level (nmantissa). 0 means no compression is asked for.

Definition at line 72 of file ThinningInfo.h.

73  {
74  for (const auto &entry : m_compression) {
75  if (entry.second.test(id)) return entry.first;
76  }
77  return 0;
78  }

◆ vetoed()

bool SG::ThinningInfo::vetoed ( size_t  id) const
inline

Test if a variable has been vetoed.

Definition at line 51 of file ThinningInfo.h.

52  {
53  return m_vetoed.test (id);
54  }

Member Data Documentation

◆ m_compression

compression_map_t SG::ThinningInfo::m_compression

Definition at line 67 of file ThinningInfo.h.

◆ m_decision

const ThinningDecisionBase* SG::ThinningInfo::m_decision

Thinning for the object.

Definition at line 43 of file ThinningInfo.h.

◆ m_vetoed

CxxUtils::ConcurrentBitset SG::ThinningInfo::m_vetoed

Set of auxids not to be written for this object.

(In principle, we should use SG::auxid_set_t here, but there are dependency issues with that.)

Definition at line 48 of file ThinningInfo.h.


The documentation for this class was generated from the following file:
SG::ThinningInfo::m_vetoed
CxxUtils::ConcurrentBitset m_vetoed
Set of auxids not to be written for this object.
Definition: ThinningInfo.h:48
GetAllXsec.entry
list entry
Definition: GetAllXsec.py:132
SG::ThinningInfo::m_compression
compression_map_t m_compression
Definition: ThinningInfo.h:67
CxxUtils::ConcurrentBitset::test
bool test(bit_t bit) const
Test to see if a bit is set.