ATLAS Offline Software
|
Hold thinning/slimming information for a given object. More...
#include <ThinningInfo.h>
Public Types | |
typedef std::map< unsigned int, CxxUtils::ConcurrentBitset > | compression_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 ThinningDecisionBase * | m_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 |
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.
typedef std::map<unsigned int, CxxUtils::ConcurrentBitset> SG::ThinningInfo::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.
|
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.
|
inline |
Test if a variable has been vetoed.
Definition at line 51 of file ThinningInfo.h.
compression_map_t SG::ThinningInfo::m_compression |
Definition at line 67 of file ThinningInfo.h.
const ThinningDecisionBase* SG::ThinningInfo::m_decision |
Thinning for the object.
Definition at line 43 of file ThinningInfo.h.
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.