101using std::ostream, std::setw, std::hex, std::dec, std::map, std::string;
107#pragma warning(disable : 4996)
109#pragma GCC diagnostic push
110#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
113RooTrace* RooTrace::_instance=nullptr ;
136void RooTrace::create(
const TObject* obj)
149void RooTrace::destroy(
const TObject* obj)
160void RooTrace::createSpecial(
const char*
name,
int size)
171void RooTrace::destroySpecial(
const char*
name)
182void RooTrace::createSpecial3(
const char*
name,
int size)
191void RooTrace::destroySpecial3(
const char*
name)
201void RooTrace::active(
bool flag)
203 RooTrace::instance()._active =
flag ;
211void RooTrace::verbose(
bool flag)
213 RooTrace::instance()._verbose =
flag ;
223void RooTrace::create2(
const TObject* obj)
227 std::cout <<
"RooTrace::create: object " << obj <<
" of type " << obj->
ClassName()
228 <<
" created " << std::endl ;
238void RooTrace::destroy2(
const TObject* obj)
241 }
else if (_verbose) {
242 std::cout <<
"RooTrace::destroy: object " << obj <<
" of type " << obj->
ClassName()
243 <<
" destroyed [" << obj->
GetTitle() <<
"]" << std::endl ;
251void RooTrace::create3(
const TObject* obj)
263void RooTrace::destroy3(
const TObject* obj)
276 RooTrace::instance().mark3() ;
285void RooTrace::mark3()
297 RooTrace::instance().dump3(std::cout,
false) ;
303void RooTrace::dump(std::ostream& os,
bool sinceMarked)
313void RooTrace::dump3(std::ostream& os,
bool sinceMarked)
315 os <<
"List of RooFit objects allocated while trace active:" << std::endl ;
319 for(i=0 ; i<_list.GetSize() ; i++) {
321 os << hex << setw(10) << _list.At(i) << dec <<
" : " << setw(20) << _list.At(i)->ClassName() << setw(0) <<
" - " << _list.At(i)->GetName() << std::endl ;
332void RooTrace::printObjectCounts()
334 RooTrace::instance().printObjectCounts3() ;
339void RooTrace::printObjectCounts3()
343 double tot= 1.0*(iter->first->Size()*iter->second)/(1024*1024) ;
344 std::cout <<
" class " << iter->first->GetName() <<
" count = " << iter->second <<
" sizeof = " << iter->first->Size() <<
" total memory = " <<
Form(
"%5.2f",
tot) <<
" Mb" << std::endl ;
350 double tot=1.0*(
size*iter->second)/(1024*1024) ;
351 std::cout <<
" speeial " << iter->first <<
" count = " << iter->second <<
" sizeof = " <<
size <<
" total memory = " <<
Form(
"%5.2f",
tot) <<
" Mb" << std::endl ;
354 std::cout <<
"Grand total memory = " <<
Form(
"%5.2f",
total) <<
" Mb" << std::endl ;
366void RooTrace::callgrind_zero()
368 ooccoutD((
TObject*)
nullptr,Tracing) <<
"RooTrace::callgrind_zero()" << std::endl ;
378void RooTrace::callgrind_dump()
380 ooccoutD((
TObject*)
nullptr,Tracing) <<
"RooTrace::callgrind_dump()" << std::endl ;
386#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