100using std::ostream, std::setw, std::hex, std::dec, std::map, std::string;
106#pragma warning(disable : 4996)
108#pragma GCC diagnostic push
109#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
112RooTrace* RooTrace::_instance=nullptr ;
135void RooTrace::create(
const TObject* obj)
148void RooTrace::destroy(
const TObject* obj)
159void RooTrace::createSpecial(
const char*
name,
int size)
170void RooTrace::destroySpecial(
const char*
name)
181void RooTrace::createSpecial3(
const char*
name,
int size)
190void RooTrace::destroySpecial3(
const char*
name)
200void RooTrace::active(
bool flag)
202 RooTrace::instance()._active =
flag ;
210void RooTrace::verbose(
bool flag)
212 RooTrace::instance()._verbose =
flag ;
222void RooTrace::create2(
const TObject* obj)
226 std::cout <<
"RooTrace::create: object " << obj <<
" of type " << obj->
ClassName()
227 <<
" created " << std::endl ;
237void RooTrace::destroy2(
const TObject* obj)
240 }
else if (_verbose) {
241 std::cout <<
"RooTrace::destroy: object " << obj <<
" of type " << obj->
ClassName()
242 <<
" destroyed [" << obj->
GetTitle() <<
"]" << std::endl ;
250void RooTrace::create3(
const TObject* obj)
262void RooTrace::destroy3(
const TObject* obj)
275 RooTrace::instance().mark3() ;
284void RooTrace::mark3()
296 RooTrace::instance().dump3(std::cout,
false) ;
302void RooTrace::dump(std::ostream& os,
bool sinceMarked)
312void RooTrace::dump3(std::ostream& os,
bool sinceMarked)
314 os <<
"List of RooFit objects allocated while trace active:" << std::endl ;
318 for(i=0 ; i<_list.GetSize() ; i++) {
320 os << hex << setw(10) << _list.At(i) << dec <<
" : " << setw(20) << _list.At(i)->ClassName() << setw(0) <<
" - " << _list.At(i)->GetName() << std::endl ;
331void RooTrace::printObjectCounts()
333 RooTrace::instance().printObjectCounts3() ;
338void RooTrace::printObjectCounts3()
342 double tot= 1.0*(iter->first->Size()*iter->second)/(1024*1024) ;
343 std::cout <<
" class " << iter->first->GetName() <<
" count = " << iter->second <<
" sizeof = " << iter->first->Size() <<
" total memory = " <<
Form(
"%5.2f",
tot) <<
" Mb" << std::endl ;
349 double tot=1.0*(
size*iter->second)/(1024*1024) ;
350 std::cout <<
" speeial " << iter->first <<
" count = " << iter->second <<
" sizeof = " <<
size <<
" total memory = " <<
Form(
"%5.2f",
tot) <<
" Mb" << std::endl ;
353 std::cout <<
"Grand total memory = " <<
Form(
"%5.2f",
total) <<
" Mb" << std::endl ;
365void RooTrace::callgrind_zero()
367 ooccoutD((
TObject*)
nullptr,Tracing) <<
"RooTrace::callgrind_zero()" << std::endl ;
377void RooTrace::callgrind_dump()
379 ooccoutD((
TObject*)
nullptr,Tracing) <<
"RooTrace::callgrind_dump()" << std::endl ;
385#pragma GCC diagnostic pop
static Roo_reg_AGKInteg1D instance
size_t size(const MatrixT &matrix)
retrieve the size of a square matrix
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
static unsigned int total
char * Form(const char *fmt,...)
Formats a string in a circular formatting buffer.
const_iterator begin() const
const_iterator end() const
Common abstract base class for objects that represent a value and a "shape" in RooFit.
Mother of all ROOT objects.
virtual const char * ClassName() const
Returns name of class to which the object belongs.
virtual const char * GetTitle() const
Returns title of object.
virtual TClass * IsA() const