13 struct CollectionDebugInfo {
14 std::string_view name;
18 bool cmpCollections(
const CollectionDebugInfo&
a,
const CollectionDebugInfo& b) {
19 return a.size >
b.size;
28 return StatusCode::SUCCESS;
34 ATH_MSG_DEBUG(
"Retrieved container with size: " << truncationInfo->size());
41 const size_t nInfos = truncationInfo->size();
44 std::ostringstream
ss;
45 ss << std::endl <<
"================================================================================" << std::endl;
48 ss <<
"Info number " << counter <<
" / " << nInfos << std::endl;
49 ss <<
"Module ID: " << moduleId(*info) << std::endl;
50 ss <<
"Total size: " <<
totalSize(*info)/1024. <<
" kB" << std::endl << std::endl;
52 ss <<
"Passing Chains IDs (look these IDs up in a menu JSON): ";
54 ss << chainID <<
", ";
56 ss << std::endl << std::endl;
59 std::vector<CollectionDebugInfo> collections;
60 for (
size_t i=0; i<typeNameVec(*info).size(); ++i) {
61 collections.push_back({typeNameVec(*info).at(i),
63 static_cast<bool>(isRecordedVec(*info).at(i))});
65 std::sort(collections.begin(), collections.end(), cmpCollections);
68 ss <<
"Found " << collections.size() <<
" collections in this module" << std::endl;
69 ss <<
"--------------------------------------------------------------------------------" << std::endl;
70 ss <<
"| Size [kB] | Recorded? | Name |" << std::endl;
71 for (
const CollectionDebugInfo& coll : collections) {
72 ss <<
"| " << std::setw(9) << std::setprecision(2) << std::fixed << coll.size/1024.;
73 ss << (coll.isRecorded ?
" | Y | " :
" | N | ");
74 ss << coll.name <<
" |" << std::endl;
76 ss <<
"--------------------------------------------------------------------------------" << std::endl;
77 ss <<
"================================================================================" << std::endl;
81 return StatusCode::SUCCESS;
#define ATH_CHECK
Evaluate an expression and check for errors.
static unsigned int totalSize(const MultiDimArray< T, N > &ht)
An algorithm that can be simultaneously executed in multiple threads.
SG::ConstAccessor< T, ALLOC > ConstAccessor
Helper class to provide type-safe access to aux data.
virtual StatusCode execute(const EventContext &context) const override
TruncationAnalysisAlg(const std::string &name, ISvcLocator *pSvcLocator)
SG::ReadHandleKey< xAOD::TrigCompositeContainer > m_truncationInfoKey
virtual StatusCode initialize() override
SG::ReadCondHandle< T > makeHandle(const SG::ReadCondHandleKey< T > &key, const EventContext &ctx=Gaudi::Hive::currentContext())
void decisionIDs(const Decision *d, DecisionIDContainer &destination)
Extracts DecisionIDs stored in the Decision object.
void sort(typename DataModel_detail::iterator< DVL > beg, typename DataModel_detail::iterator< DVL > end)
Specialization of sort for DataVector/List.
TrigComposite_v1 TrigComposite
Declare the latest version of the class.