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 292 of file Control/AthContainers/Root/debug.cxx.

293{
294 if (!p) {
295 return "(null)";
296 }
297
298 std::ostringstream os;
299
301 const std::type_info* ti = r.getType(auxid);
302#define CONVERT(T) if (ti == &typeid(T)) convert (os, *reinterpret_cast<const T*>(p)); else
303#define CONVERT1(T) CONVERT(T) CONVERT(std::vector<T>)
304 CONVERT1 (int)
305 CONVERT1 (unsigned int)
306 CONVERT1 (short)
307 CONVERT1 (unsigned short)
308 CONVERT1 (char)
309 CONVERT1 (unsigned char)
310 CONVERT1 (long)
311 CONVERT1 (unsigned long)
312 CONVERT1 (long long)
313 CONVERT1 (unsigned long long)
314 CONVERT1 (float)
315 CONVERT1 (double)
316 CONVERT1 (bool)
317 CONVERT1 (std::string)
318 //else
319 {
320 std::string tiname = AthContainers_detail::typeinfoName(*ti);
321 if (tiname.starts_with ("SG::JaggedVecElt<")) {
322 convert (os, *reinterpret_cast<const SG::JaggedVecEltBase*>(p), i);
323 }
324 else if (tiname.starts_with ("DataLink<")) {
325 convert (os, *reinterpret_cast<const DataLinkBase*>(p));
326 }
327 else if (tiname.starts_with ("SG::PackedLink<")) {
328 convert (os, *reinterpret_cast<const SG::PackedLinkBase*>(p));
329 }
330 else if (tiname.starts_with ("std::vector<SG::PackedLink<")) {
331 convert (os, *reinterpret_cast<const std::vector<SG::PackedLinkBase>*>(p));
332 }
333 else {
334 os << "<??? " << tiname << ">";
335 }
336 }
337 return os.str();
338}
#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 37 of file Control/AthContainers/Root/debug.cxx.

38{
40 return reg.getClassName(id) + "::" + reg.getName(id);
41}

◆ 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 483 of file Control/AthContainers/Root/debug.cxx.

484{
485 const SG::AuxVectorData* cont = elt.container();
486 if (cont)
487 dump_aux_vars (*cont, elt.index());
488}
const SG::AuxVectorData * container() const
Return the container holding this element.
size_t index() const
Return the index of this element within its container.
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 495 of file Control/AthContainers/Root/debug.cxx.

496{
497 dump_aux_vars (*elt);
498}

◆ 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 461 of file Control/AthContainers/Root/debug.cxx.

462{
463 const SG::IConstAuxStore* store = vec.getConstStore();
464 if (store)
465 dump_aux_vars (*store);
466}
std::vector< size_t > vec
Interface for const operations on an auxiliary store.

◆ 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 438 of file Control/AthContainers/Root/debug.cxx.

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

◆ 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 473 of file Control/AthContainers/Root/debug.cxx.

474{
476}

◆ 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 451 of file Control/AthContainers/Root/debug.cxx.

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

◆ 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 413 of file Control/AthContainers/Root/debug.cxx.

414{
415 size_t sz = store.size();
416 for (size_t i = 0; i < sz; i++) {
417 std::cout << "=== Element " << i << "\n";
418 dump_aux_vars (store, i);
419 }
420}
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 392 of file Control/AthContainers/Root/debug.cxx.

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

◆ 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 427 of file Control/AthContainers/Root/debug.cxx.

428{
429 dump_aux_vars (*store);
430}

◆ 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 403 of file Control/AthContainers/Root/debug.cxx.

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

◆ 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 347 of file Control/AthContainers/Root/debug.cxx.

348{
349 if (i >= store.size()) return;
351 const SG::auxid_set_t& ids = store.getAuxIDs();
352 std::vector<AuxVarSort> vars (ids.begin(), ids.end());
353 std::sort (vars.begin(), vars.end());
354 for (const AuxVarSort& v : vars) {
355 if (reg.isLinked (v.id)) continue;
356 const void* pbeg = store.getData (v.id);
357 size_t eltsz = reg.getEltSize (v.id);
358 const char* p = reinterpret_cast<const char*>(pbeg) + eltsz*i;
359 os << v.name << " " << aux_var_as_string (v.id, p, i) << "\n";
360 SG::auxid_t linked_id = reg.linkedVariable (v.id);
361 if (linked_id != SG::null_auxid) {
362 os << " linked: " << aux_var_name (linked_id) << " ";
363 const SG::IAuxTypeVector* lv = store.linkedVector (v.id);
364 if (!lv) {
365 os << "(missing linkedVector)\n";
366 continue;
367 }
368 size_t sz = lv->size();
369 const char* lbeg = reinterpret_cast<const char*>(lv->toPtr());
370 size_t leltsz = reg.getEltSize (linked_id);
371 os << "[";
372 bool first = true;
373 for (size_t j = 0; j < sz; j++) {
374 if (first)
375 first = false;
376 else
377 os << ", ";
378 const char* p = reinterpret_cast<const char*>(lbeg) + leltsz*j;
379 os << aux_var_as_string (linked_id, p, i);
380 }
381 os << "]\n";
382 }
383 }
384}
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 48 of file Control/AthContainers/Root/debug.cxx.

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

◆ 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 170 of file Control/AthContainers/Root/debug.cxx.

171{
172 print_aux_vars (elt.getAuxIDs(), elt.getDecorIDs(), std::cout);
173}
const SG::auxid_set_t & getAuxIDs() const
Return a set of identifiers for existing data items for this object.
const SG::auxid_set_t & getDecorIDs() const
Return a set of identifiers for decorations for this object.
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 180 of file Control/AthContainers/Root/debug.cxx.

181{
182 print_aux_vars (*elt);
183}

◆ 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 98 of file Control/AthContainers/Root/debug.cxx.

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

◆ 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 65 of file Control/AthContainers/Root/debug.cxx.

68{
70 std::vector<SG::auxid_t> ids (auxids.begin(), auxids.end());
71 std::sort (ids.begin(), ids.end());
72
73 for (SG::auxid_t id : ids) {
74 os << id << " "
75 << reg.getClassName(id) << "::" << reg.getName(id) << " "
76 << "[" << reg.getTypeName(id);
77
78 SG::AuxVarFlags flags = reg.getFlags(id);
79 if (flags & SG::AuxVarFlags::Atomic) {
80 os << " (atomic)";
81 }
82 if (flags & SG::AuxVarFlags::Linked) {
83 os << " (linked)";
84 }
85 if (decors.test (id)) {
86 os << " (decor)";
87 }
88
89 os << "]\n";
90 }
91}
const_iterator end() const
Return an end iterator.
bool test(bit_t bit) const
Test to see if a bit is set.
const_iterator begin() const
Return a begin iterator.
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
@ Linked
Mark that this variable is linked to another one.
Definition AuxTypes.h:77

◆ 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 150 of file Control/AthContainers/Root/debug.cxx.

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

◆ 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 140 of file Control/AthContainers/Root/debug.cxx.

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

◆ 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 160 of file Control/AthContainers/Root/debug.cxx.

161{
163}

◆ 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 119 of file Control/AthContainers/Root/debug.cxx.

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

◆ 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 109 of file Control/AthContainers/Root/debug.cxx.

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

◆ 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 129 of file Control/AthContainers/Root/debug.cxx.

130{
131 print_aux_vars (*store);
132}