ATLAS Offline Software
Loading...
Searching...
No Matches
SGdebug Namespace Reference

Functions

std::string aux_var_name (SG::auxid_t id)
 Return the name corresponding to a given aux id.
void print_aux_var_name (SG::auxid_t id)
 Print the name corresponding to a given aux id.
void print_aux_vars (const SG::auxid_set_t &auxids, const SG::auxid_set_t &decors, std::ostream &os)
 Print the list of aux variables in a set.
void print_aux_vars (const SG::auxid_set_t &auxids)
 Print the list of aux variables in a set.
void print_aux_vars (const SG::IConstAuxStore &store, std::ostream &os)
 Print the list of aux variables handled by a store.
void print_aux_vars (const SG::IConstAuxStore &store)
 Print the list of aux variables handled by a store.
void print_aux_vars (const SG::IConstAuxStore *store)
 Print the list of aux variables handled by a store.
void print_aux_vars (const SG::AuxVectorData &vec, std::ostream &os)
 Print the list of aux variables associated with a container.
void print_aux_vars (const SG::AuxVectorData &vec)
 Print the list of aux variables associated with a container.
void print_aux_vars (const SG::AuxVectorData *vec)
 Print the list of aux variables associated with a container.
void print_aux_vars (const SG::AuxElement &elt)
 Print the list of aux variables associated with an element.
void print_aux_vars (const SG::AuxElement *elt)
 Print the list of aux variables associated with an element.
std::string aux_var_as_string (SG::auxid_t auxid, const void *p, size_t i)
 Convert an aux variable to a string.
void dump_aux_vars (std::ostream &os, const SG::IConstAuxStore &store, size_t i)
 Dump aux variables from a store for a single element.
void dump_aux_vars (const SG::IConstAuxStore &store, size_t i)
 Dump aux variables from a store for a single element (to cout).
void dump_aux_vars (const SG::IConstAuxStore *store, size_t i)
 Dump aux variables from a store for a single element.
void dump_aux_vars (const SG::IConstAuxStore &store)
 Dump aux variables from a store for all elements.
void dump_aux_vars (const SG::IConstAuxStore *store)
 Dump aux variables from a store for all elements.
void dump_aux_vars (const SG::AuxVectorData &vec, size_t i)
 Dump aux variables from a vector for a single element.
void dump_aux_vars (const SG::AuxVectorData *vec, size_t i)
 Dump aux variables from a vector for a single element.
void dump_aux_vars (const SG::AuxVectorData &vec)
 Dump aux variables from a vector for all elements.
void dump_aux_vars (const SG::AuxVectorData *vec)
 Dump aux variables from a vector for all elements.
void dump_aux_vars (const SG::AuxElement &elt)
 Dump aux variables for an element.
void dump_aux_vars (const SG::AuxElement *elt)
 Dump aux variables for an element.

Function Documentation

◆ aux_var_as_string()

std::string SGdebug::aux_var_as_string ( SG::auxid_t auxid,
const void * p,
size_t i )

Convert an aux variable to a string.

Parameters
auxidThe id of the variable.
pPointer to the location of the variable.
iIndex of the element being dumped.

Definition at line 293 of file Control/AthContainers/Root/debug.cxx.

294{
295 if (!p) {
296 return "(null)";
297 }
298
299 std::ostringstream os;
300
302 const std::type_info* ti = r.getType(auxid);
303#define CONVERT(T) if (ti == &typeid(T) || strcmp(ti->name(), typeid(T).name())==0) convert (os, *reinterpret_cast<const T*>(p)); else
304#define CONVERT1(T) CONVERT(T) CONVERT(std::vector<T>)
305 CONVERT1 (int)
306 CONVERT1 (unsigned int)
307 CONVERT1 (short)
308 CONVERT1 (unsigned short)
309 CONVERT1 (char)
310 CONVERT1 (unsigned char)
311 CONVERT1 (long)
312 CONVERT1 (unsigned long)
313 CONVERT1 (long long)
314 CONVERT1 (unsigned long long)
315 CONVERT1 (float)
316 CONVERT1 (double)
317 CONVERT1 (bool)
318 CONVERT1 (std::string)
319 //else
320 {
321 std::string tiname = AthContainers_detail::typeinfoName(*ti);
322 if (tiname.starts_with ("SG::JaggedVecElt<")) {
323 convert (os, *reinterpret_cast<const SG::JaggedVecEltBase*>(p), i);
324 }
325 else if (tiname.starts_with ("DataLink<")) {
326 convert (os, *reinterpret_cast<const DataLinkBase*>(p));
327 }
328 else if (tiname.starts_with ("SG::PackedLink<")) {
329 convert (os, *reinterpret_cast<const SG::PackedLinkBase*>(p));
330 }
331 else if (tiname.starts_with ("std::vector<SG::PackedLink<")) {
332 convert (os, *reinterpret_cast<const std::vector<SG::PackedLinkBase>*>(p));
333 }
334 else {
335 os << "<??? " << tiname << ">";
336 }
337 }
338 return os.str();
339}
#define CONVERT1(T)
Handle mappings between names and auxid_t.
static AuxTypeRegistry & instance()
Return the singleton registry instance.
Describe one element of a jagged vector (base class).
int r
Definition globals.cxx:22
std::unique_ptr< MVAUtils::BDT > convert(TMVA::MethodBDT *bdt, bool isRegression=true, bool useYesNoLeaf=false)

◆ aux_var_name()

std::string SGdebug::aux_var_name ( SG::auxid_t id)

Return the name corresponding to a given aux id.

Parameters
idThe aux id to look up.

Definition at line 38 of file Control/AthContainers/Root/debug.cxx.

39{
41 return reg.getClassName(id) + "::" + reg.getName(id);
42}

◆ dump_aux_vars() [1/11]

void SGdebug::dump_aux_vars ( const SG::AuxElement & elt)

Dump aux variables for an element.

Parameters
eltThe element from which to dump.

Definition at line 484 of file Control/AthContainers/Root/debug.cxx.

485{
486 const SG::AuxVectorData* cont = elt.container();
487 if (cont)
488 dump_aux_vars (*cont, elt.index());
489}
Manage lookup of vectors of auxiliary data.
void dump_aux_vars(std::ostream &os, const SG::IConstAuxStore &store, size_t i)
Dump aux variables from a store for a single element.

◆ dump_aux_vars() [2/11]

void SGdebug::dump_aux_vars ( const SG::AuxElement * elt)

Dump aux variables for an element.

Parameters
eltThe element from which to dump.

Definition at line 496 of file Control/AthContainers/Root/debug.cxx.

497{
498 dump_aux_vars (*elt);
499}

◆ dump_aux_vars() [3/11]

void SGdebug::dump_aux_vars ( const SG::AuxVectorData & vec)

Dump aux variables from a vector for all elements.

Parameters
vecThe vector from which to dump.

Definition at line 462 of file Control/AthContainers/Root/debug.cxx.

463{
464 const SG::IConstAuxStore* store = vec.getConstStore();
465 if (store)
466 dump_aux_vars (*store);
467}
std::vector< size_t > vec

◆ dump_aux_vars() [4/11]

void SGdebug::dump_aux_vars ( const SG::AuxVectorData & vec,
size_t i )

Dump aux variables from a vector for a single element.

Parameters
vecThe vector from which to dump.
iThe index of the element to dump.

Definition at line 439 of file Control/AthContainers/Root/debug.cxx.

440{
441 const SG::IConstAuxStore* store = vec.getConstStore();
442 if (store)
443 dump_aux_vars (*store, i);
444}

◆ dump_aux_vars() [5/11]

void SGdebug::dump_aux_vars ( const SG::AuxVectorData * vec)

Dump aux variables from a vector for all elements.

Parameters
vecThe vector from which to dump.

Definition at line 474 of file Control/AthContainers/Root/debug.cxx.

475{
477}

◆ dump_aux_vars() [6/11]

void SGdebug::dump_aux_vars ( const SG::AuxVectorData * vec,
size_t i )

Dump aux variables from a vector for a single element.

Parameters
vecThe vector from which to dump.
iThe index of the element to dump.

Definition at line 452 of file Control/AthContainers/Root/debug.cxx.

453{
454 dump_aux_vars (*vec, i);
455}

◆ dump_aux_vars() [7/11]

void SGdebug::dump_aux_vars ( const SG::IConstAuxStore & store)

Dump aux variables from a store for all elements.

Parameters
storeThe store from which to dump.

Definition at line 414 of file Control/AthContainers/Root/debug.cxx.

415{
416 size_t sz = store.size();
417 for (size_t i = 0; i < sz; i++) {
418 std::cout << "=== Element " << i << "\n";
419 dump_aux_vars (store, i);
420 }
421}
static Double_t sz

◆ dump_aux_vars() [8/11]

void SGdebug::dump_aux_vars ( const SG::IConstAuxStore & store,
size_t i )

Dump aux variables from a store for a single element (to cout).

Parameters
storeThe store from which to dump.
iThe index of the element to dump.

Definition at line 393 of file Control/AthContainers/Root/debug.cxx.

394{
395 dump_aux_vars (std::cout, store, i);
396}

◆ dump_aux_vars() [9/11]

void SGdebug::dump_aux_vars ( const SG::IConstAuxStore * store)

Dump aux variables from a store for all elements.

Parameters
storeThe store from which to dump.

Definition at line 428 of file Control/AthContainers/Root/debug.cxx.

429{
430 dump_aux_vars (*store);
431}

◆ dump_aux_vars() [10/11]

void SGdebug::dump_aux_vars ( const SG::IConstAuxStore * store,
size_t i )

Dump aux variables from a store for a single element.

Parameters
storeThe store from which to dump.
iThe index of the element to dump.

Definition at line 404 of file Control/AthContainers/Root/debug.cxx.

405{
406 dump_aux_vars (*store, i);
407}

◆ dump_aux_vars() [11/11]

void SGdebug::dump_aux_vars ( std::ostream & os,
const SG::IConstAuxStore & store,
size_t i )

Dump aux variables from a store for a single element.

Parameters
osThe stream to which to write.
storeThe store from which to dump.
iThe index of the element to dump.

Definition at line 348 of file Control/AthContainers/Root/debug.cxx.

349{
350 if (i >= store.size()) return;
352 const SG::auxid_set_t& ids = store.getAuxIDs();
353 std::vector<AuxVarSort> vars (ids.begin(), ids.end());
354 std::sort (vars.begin(), vars.end());
355 for (const AuxVarSort& v : vars) {
356 if (reg.isLinked (v.id)) continue;
357 const void* pbeg = store.getData (v.id);
358 size_t eltsz = reg.getEltSize (v.id);
359 const char* p = reinterpret_cast<const char*>(pbeg) + eltsz*i;
360 os << v.name << " " << aux_var_as_string (v.id, p, i) << "\n";
361 SG::auxid_t linked_id = reg.linkedVariable (v.id);
362 if (linked_id != SG::null_auxid) {
363 os << " linked: " << aux_var_name (linked_id) << " ";
364 const SG::IAuxTypeVector* lv = store.linkedVector (v.id);
365 if (!lv) {
366 os << "(missing linkedVector)\n";
367 continue;
368 }
369 size_t sz = lv->size();
370 const char* lbeg = reinterpret_cast<const char*>(lv->toPtr());
371 size_t leltsz = reg.getEltSize (linked_id);
372 os << "[";
373 bool first = true;
374 for (size_t j = 0; j < sz; j++) {
375 if (first)
376 first = false;
377 else
378 os << ", ";
379 const char* p = reinterpret_cast<const char*>(lbeg) + leltsz*j;
380 os << aux_var_as_string (linked_id, p, i);
381 }
382 os << "]\n";
383 }
384 }
385}
Abstract interface for manipulating vectors of arbitrary types.
virtual void * toPtr()=0
Return a pointer to the start of the vector's data.
virtual size_t size() const =0
Return the size of the vector.
A set of aux data identifiers.
Definition AuxTypes.h:47
static const auxid_t null_auxid
To signal no aux data item.
Definition AuxTypes.h:30
size_t auxid_t
Identifier for a particular aux data item.
Definition AuxTypes.h:27
std::string aux_var_name(SG::auxid_t id)
Return the name corresponding to a given aux id.
std::string aux_var_as_string(SG::auxid_t auxid, const void *p, size_t i)
Convert an aux variable to a string.
void sort(typename DataModel_detail::iterator< DVL > beg, typename DataModel_detail::iterator< DVL > end)
Specialization of sort for DataVector/List.

◆ print_aux_var_name()

void SGdebug::print_aux_var_name ( SG::auxid_t id)

Print the name corresponding to a given aux id.

Parameters
idThe aux id to print.

Definition at line 49 of file Control/AthContainers/Root/debug.cxx.

50{
51 std::cout << aux_var_name(id) << "\n";
52}

◆ print_aux_vars() [1/10]

void SGdebug::print_aux_vars ( const SG::AuxElement & elt)

Print the list of aux variables associated with an element.

Parameters
eltThe element to dump.

Definition at line 171 of file Control/AthContainers/Root/debug.cxx.

172{
173 print_aux_vars (elt.getAuxIDs(), elt.getDecorIDs(), std::cout);
174}
void print_aux_vars(const SG::auxid_set_t &auxids, const SG::auxid_set_t &decors, std::ostream &os)
Print the list of aux variables in a set.

◆ print_aux_vars() [2/10]

void SGdebug::print_aux_vars ( const SG::AuxElement * elt)

Print the list of aux variables associated with an element.

Parameters
eltThe element to dump.

Definition at line 181 of file Control/AthContainers/Root/debug.cxx.

182{
183 print_aux_vars (*elt);
184}

◆ print_aux_vars() [3/10]

void SGdebug::print_aux_vars ( const SG::auxid_set_t & auxids)

Print the list of aux variables in a set.

Parameters
auxidsThe set to print.

Definition at line 99 of file Control/AthContainers/Root/debug.cxx.

100{
101 print_aux_vars (auxids, SG::auxid_set_t(), std::cout);
102}

◆ print_aux_vars() [4/10]

void SGdebug::print_aux_vars ( const SG::auxid_set_t & auxids,
const SG::auxid_set_t & decors,
std::ostream & os )

Print the list of aux variables in a set.

Parameters
auxidsThe set to print.
decorsSet of decorations.
osStream to which to print.

Definition at line 66 of file Control/AthContainers/Root/debug.cxx.

69{
71 std::vector<SG::auxid_t> ids (auxids.begin(), auxids.end());
72 std::sort (ids.begin(), ids.end());
73
74 for (SG::auxid_t id : ids) {
75 os << id << " "
76 << reg.getClassName(id) << "::" << reg.getName(id) << " "
77 << "[" << reg.getTypeName(id);
78
79 SG::AuxVarFlags flags = reg.getFlags(id);
80 if (flags & SG::AuxVarFlags::Atomic) {
81 os << " (atomic)";
82 }
83 if (flags & SG::AuxVarFlags::Linked) {
84 os << " (linked)";
85 }
86 if (decors.test (id)) {
87 os << " (decor)";
88 }
89
90 os << "]\n";
91 }
92}
AuxVarFlags
Additional flags to qualify an auxiliary variable.
Definition AuxTypes.h:58
@ Atomic
Mark that this variable should only be accessed atomically.
Definition AuxTypes.h:70

◆ print_aux_vars() [5/10]

void SGdebug::print_aux_vars ( const SG::AuxVectorData & vec)

Print the list of aux variables associated with a container.

Parameters
vecThe container to dump.

Definition at line 151 of file Control/AthContainers/Root/debug.cxx.

152{
153 print_aux_vars (vec, std::cout);
154}

◆ print_aux_vars() [6/10]

void SGdebug::print_aux_vars ( const SG::AuxVectorData & vec,
std::ostream & os )

Print the list of aux variables associated with a container.

Parameters
vecThe container to dump.
osStream to which to print.

Definition at line 141 of file Control/AthContainers/Root/debug.cxx.

142{
143 print_aux_vars (vec.getAuxIDs(), vec.getDecorIDs(), os);
144}

◆ print_aux_vars() [7/10]

void SGdebug::print_aux_vars ( const SG::AuxVectorData * vec)

Print the list of aux variables associated with a container.

Parameters
vecThe container to dump.

Definition at line 161 of file Control/AthContainers/Root/debug.cxx.

162{
164}

◆ print_aux_vars() [8/10]

void SGdebug::print_aux_vars ( const SG::IConstAuxStore & store)

Print the list of aux variables handled by a store.

Parameters
storeThe store to dump.

Definition at line 120 of file Control/AthContainers/Root/debug.cxx.

121{
122 print_aux_vars (store, std::cout);
123}

◆ print_aux_vars() [9/10]

void SGdebug::print_aux_vars ( const SG::IConstAuxStore & store,
std::ostream & os )

Print the list of aux variables handled by a store.

Parameters
storeThe store to dump.
osStream to which to print.
storeThe store to dump.
auxidsThe set to print.

Definition at line 110 of file Control/AthContainers/Root/debug.cxx.

111{
112 print_aux_vars (store.getAuxIDs(), store.getDecorIDs(), os);
113}

◆ print_aux_vars() [10/10]

void SGdebug::print_aux_vars ( const SG::IConstAuxStore * store)

Print the list of aux variables handled by a store.

Parameters
storeThe store to dump.

Definition at line 130 of file Control/AthContainers/Root/debug.cxx.

131{
132 print_aux_vars (*store);
133}