16#ifndef ROO_MSG_SERVICE 
   17#define ROO_MSG_SERVICE 
   34#define coutI(a) RooMsgService::instance().log(this,RooFit::INFO,RooFit::a) 
   35#define coutP(a) RooMsgService::instance().log(this,RooFit::PROGRESS,RooFit::a) 
   36#define coutW(a) RooMsgService::instance().log(this,RooFit::WARNING,RooFit::a) 
   37#define coutE(a) RooMsgService::instance().log(this,RooFit::ERROR,RooFit::a) 
   38#define coutF(a) RooMsgService::instance().log(this,RooFit::FATAL,RooFit::a) 
   41#define ccoutD(a) RooMsgService::instance().log(this,RooFit::DEBUG,RooFit::a,true) 
   42#define ccoutI(a) RooMsgService::instance().log(this,RooFit::INFO,RooFit::a,true) 
   43#define ccoutP(a) RooMsgService::instance().log(this,RooFit::PROGRESS,RooFit::a,true) 
   44#define ccoutW(a) RooMsgService::instance().log(this,RooFit::WARNING,RooFit::a,true) 
   45#define ccoutE(a) RooMsgService::instance().log(this,RooFit::ERROR,RooFit::a,true) 
   46#define ccoutF(a) RooMsgService::instance().log(this,RooFit::FATAL,RooFit::a,true) 
   49#define oocoutI(o,a) RooMsgService::instance().log(o,RooFit::INFO,RooFit::a) 
   50#define oocoutP(o,a) RooMsgService::instance().log(o,RooFit::PROGRESS,RooFit::a) 
   51#define oocoutW(o,a) RooMsgService::instance().log(o,RooFit::WARNING,RooFit::a) 
   52#define oocoutE(o,a) RooMsgService::instance().log(o,RooFit::ERROR,RooFit::a) 
   53#define oocoutF(o,a) RooMsgService::instance().log(o,RooFit::FATAL,RooFit::a) 
   56#define ooccoutD(o,a) RooMsgService::instance().log(o,RooFit::DEBUG,RooFit::a,true) 
   57#define ooccoutI(o,a) RooMsgService::instance().log(o,RooFit::INFO,RooFit::a,true) 
   58#define ooccoutP(o,a) RooMsgService::instance().log(o,RooFit::PROGRESS,RooFit::a,true) 
   59#define ooccoutW(o,a) RooMsgService::instance().log(o,RooFit::WARNING,RooFit::a,true) 
   60#define ooccoutE(o,a) RooMsgService::instance().log(o,RooFit::ERROR,RooFit::a,true) 
   61#define ooccoutF(o,a) RooMsgService::instance().log(o,RooFit::FATAL,RooFit::a,true) 
   64#define ANYDEBUG (RooMsgService::_debugCount>0) 
   66#define ANYDEBUG (RooMsgService::anyDebug()) 
   69#define dologD(a) (ANYDEBUG && RooMsgService::instance().isActive(this,RooFit::a,RooFit::DEBUG)) 
   70#define dologI(a) (RooMsgService::instance().isActive(this,RooFit::a,RooFit::INFO)) 
   71#define dologP(a) (RooMsgService::instance().isActive(this,RooFit::a,RooFit::PROGRESS)) 
   72#define dologW(a) (RooMsgService::instance().isActive(this,RooFit::a,RooFit::WARNING)) 
   73#define dologE(a) (RooMsgService::instance().isActive(this,RooFit::a,RooFit::ERROR)) 
   74#define dologF(a) (RooMsgService::instance().isActive(this,RooFit::a,RooFit::FATAL)) 
   76#define oodologD(o,a) (ANYDEBUG && RooMsgService::instance().isActive(o,RooFit::a,RooFit::DEBUG)) 
   77#define oodologI(o,a) (RooMsgService::instance().isActive(o,RooFit::a,RooFit::INFO)) 
   78#define oodologP(o,a) (RooMsgService::instance().isActive(o,RooFit::a,RooFit::PROGRESS)) 
   79#define oodologW(o,a) (RooMsgService::instance().isActive(o,RooFit::a,RooFit::WARNING)) 
   80#define oodologE(o,a) (RooMsgService::instance().isActive(o,RooFit::a,RooFit::ERROR)) 
   81#define oodologF(o,a) (RooMsgService::instance().isActive(o,RooFit::a,RooFit::FATAL)) 
   85#define cxcoutD(a) if (ANYDEBUG && RooMsgService::instance().isActive(this,RooFit::a,RooFit::DEBUG)) RooMsgService::instance().log(this,RooFit::DEBUG,RooFit::a) 
   86#define ccxcoutD(a) if (ANYDEBUG && RooMsgService::instance().isActive(this,RooFit::a,RooFit::DEBUG)) RooMsgService::instance().log(this,RooFit::DEBUG,RooFit::a,true) 
   87#define oocxcoutD(o,a) if (ANYDEBUG && RooMsgService::instance().isActive(o,RooFit::a,RooFit::DEBUG)) RooMsgService::instance().log(o,RooFit::DEBUG,RooFit::a) 
   88#define ooccxcoutD(o,a) if (ANYDEBUG && RooMsgService::instance().isActive(o,RooFit::a,RooFit::DEBUG)) RooMsgService::instance().log(o,RooFit::DEBUG,RooFit::a,true) 
   89#define cxcoutI(a) if (RooMsgService::instance().isActive(this,RooFit::a,RooFit::INFO)) RooMsgService::instance().log(this,RooFit::INFO,RooFit::a) 
   90#define ccxcoutI(a) if (RooMsgService::instance().isActive(this,RooFit::a,RooFit::INFO)) RooMsgService::instance().log(this,RooFit::INFO,RooFit::a,true) 
   91#define oocxcoutI(o,a) if (RooMsgService::instance().isActive(o,RooFit::a,RooFit::INFO)) RooMsgService::instance().log(o,RooFit::INFO,RooFit::a) 
   92#define ooccxcoutI(o,a) if (RooMsgService::instance().isActive(o,RooFit::a,RooFit::INFO)) RooMsgService::instance().log(o,RooFit::INFO,RooFit::a,true) 
   93#define cxcoutP(a) if (RooMsgService::instance().isActive(this,RooFit::a,RooFit::PROGRESS)) RooMsgService::instance().log(this,RooFit::PROGRESS,RooFit::a) 
   94#define ccxcoutP(a) if (RooMsgService::instance().isActive(this,RooFit::a,RooFit::PROGRESS)) RooMsgService::instance().log(this,RooFit::PROGRESS,RooFit::a,true) 
   95#define oocxcoutP(o,a) if (RooMsgService::instance().isActive(o,RooFit::a,RooFit::PROGRESS)) RooMsgService::instance().log(o,RooFit::PROGRESS,RooFit::a) 
   96#define ooccxcoutP(o,a) if (RooMsgService::instance().isActive(o,RooFit::a,RooFit::PROGRESS)) RooMsgService::instance().log(o,RooFit::PROGRESS,RooFit::a,true) 
   97#define cxcoutW(a) if (RooMsgService::instance().isActive(this,RooFit::a,RooFit::WARNING)) RooMsgService::instance().log(this,RooFit::WARNING,RooFit::a) 
   98#define ccxcoutW(a) if (RooMsgService::instance().isActive(this,RooFit::a,RooFit::WARNING)) RooMsgService::instance().log(this,RooFit::WARNING,RooFit::a,true) 
   99#define oocxcoutW(o,a) if (RooMsgService::instance().isActive(o,RooFit::a,RooFit::WARNING)) RooMsgService::instance().log(o,RooFit::WARNING,RooFit::a) 
  100#define ooccxcoutW(o,a) if (RooMsgService::instance().isActive(o,RooFit::a,RooFit::WARNING)) RooMsgService::instance().log(o,RooFit::WARNING,RooFit::a,true) 
  101#define cxcoutE(a) if (RooMsgService::instance().isActive(this,RooFit::a,RooFit::ERROR)) RooMsgService::instance().log(this,RooFit::ERROR,RooFit::a) 
  102#define ccxcoutE(a) if (RooMsgService::instance().isActive(this,RooFit::a,RooFit::ERROR)) RooMsgService::instance().log(this,RooFit::ERROR,RooFit::a,true) 
  103#define oocxcoutE(o,a) if (RooMsgService::instance().isActive(o,RooFit::a,RooFit::ERROR)) RooMsgService::instance().log(o,RooFit::ERROR,RooFit::a) 
  104#define ooccxcoutE(o,a) if (RooMsgService::instance().isActive(o,RooFit::a,RooFit::ERROR)) RooMsgService::instance().log(o,RooFit::ERROR,RooFit::a,true) 
  105#define cxcoutF(a) if (RooMsgService::instance().isActive(this,RooFit::a,RooFit::FATAL)) RooMsgService::instance().log(this,RooFit::FATAL,RooFit::a) 
  106#define ccxcoutF(a) if (RooMsgService::instance().isActive(this,RooFit::a,RooFit::FATAL)) RooMsgService::instance().log(this,RooFit::FATAL,RooFit::a,true) 
  107#define oocxcoutF(o,a) if (RooMsgService::instance().isActive(o,RooFit::a,RooFit::FATAL)) RooMsgService::instance().log(o,RooFit::FATAL,RooFit::a) 
  108#define ooccxcoutF(o,a) if (RooMsgService::instance().isActive(o,RooFit::a,RooFit::FATAL)) RooMsgService::instance().log(o,RooFit::FATAL,RooFit::a,true) 
  229  std::map<std::string,std::unique_ptr<std::ostream>> 
_files ;
 
 
#define ClassDefOverride(name, id)
 
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
 
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize id
 
Common abstract base class for objects that represent a value and a "shape" in RooFit.
 
Named container for two doubles, two integers two object points and three string pointers that can be...
 
Singleton class that organizes messages generated in RooFit.
 
std::vector< StreamConfig > _streams
 
void restoreState()
Restore last saved state of message service.
 
std::ostream & log(const RooAbsArg *self, RooFit::MsgLevel level, RooFit::MsgTopic facility, bool forceSkipPrefix=false)
Log error message associated with RooAbsArg object self at given level and topic.
 
Int_t activeStream(T self, RooFit::MsgTopic topic, RooFit::MsgLevel level)
Find appropriate logging stream for message from given object with given topic and message level.
 
static RooMsgService & instance()
Return reference to singleton instance.
 
StreamConfig & getStream(Int_t id)
 
std::unique_ptr< RooWorkspace > _debugWorkspace
 
static bool anyDebug()
Returns true if any debug level stream is active.
 
void setGlobalKillBelow(RooFit::MsgLevel level)
 
RooFit::MsgLevel _globMinLevel
 
std::stack< std::vector< StreamConfig > > _streamsSaved
 
RooMsgService()
Constructor.
 
RooWorkspace * debugWorkspace()
 
void Print(Option_t *options=nullptr) const override
Print configuration of message service.
 
void setStreamStatus(Int_t id, bool active)
(De)Activate stream with given unique ID
 
void saveState()
Save current state of message service.
 
Int_t addStream(RooFit::MsgLevel level, const RooCmdArg &arg1={}, const RooCmdArg &arg2={}, const RooCmdArg &arg3={}, const RooCmdArg &arg4={}, const RooCmdArg &arg5={}, const RooCmdArg &arg6={})
Add a message logging stream for message with given RooFit::MsgLevel or higher.
 
std::map< int, std::string > _topicNames
 
void setSilentMode(bool flag)
 
~RooMsgService() override
 
std::ostream & log(std::nullptr_t, RooFit::MsgLevel level, RooFit::MsgTopic facility, bool forceSkipPrefix=false)
 
std::map< std::string, std::unique_ptr< std::ostream > > _files
 
bool getStreamStatus(Int_t id) const
Get activation status of stream with given unique ID.
 
bool isActive(T self, RooFit::MsgTopic topic, RooFit::MsgLevel level)
Check if logging is active for given object/topic/RooFit::MsgLevel combination.
 
RooMsgService(const RooMsgService &)
 
void deleteStream(Int_t id)
Delete stream with given unique ID code.
 
std::unique_ptr< std::ofstream > _devnull
 
std::map< int, std::string > _levelNames
 
RooFit::MsgLevel globalKillBelow() const
 
RooFit::MsgLevel _lastMsgLevel
 
Persistable container for RooFit projects.
 
Mother of all ROOT objects.
 
MsgLevel
Verbosity level for RooMsgService::StreamConfig in RooMsgService.
 
MsgTopic
Topics for a RooMsgService::StreamConfig in RooMsgService.
 
RooFit::MsgLevel minLevel
 
bool match(RooFit::MsgLevel level, RooFit::MsgTopic facility, const RooAbsArg *obj)
Determine if message from given object at given level on given topic is logged.
 
void addTopic(RooFit::MsgTopic newTopic)
 
void removeTopic(RooFit::MsgTopic oldTopic)
 
bool match(RooFit::MsgLevel level, RooFit::MsgTopic facility, std::nullptr_t obj)
 
std::string baseClassName