00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016 #ifndef ROO_PRINTABLE
00017 #define ROO_PRINTABLE
00018
00019
00020 class TNamed ;
00021
00022 #include "Riosfwd.h"
00023 #include "Rtypes.h"
00024 #include "TString.h"
00025
00026 class RooPrintable {
00027 public:
00028 inline RooPrintable() { }
00029 inline virtual ~RooPrintable() { }
00030
00031
00032
00033
00034 enum ContentsOption { kName=1, kClassName=2, kValue=4, kArgs=8, kExtras=16, kAddress=32, kTitle=64, kCollectionHeader=128} ;
00035 enum StyleOption { kInline=1, kSingleLine=2, kStandard=3, kVerbose=4, kTreeStructure=5 } ;
00036 virtual void printStream(ostream& os, Int_t contents, StyleOption style, TString indent="") const ;
00037
00038
00039 virtual void printAddress(ostream& os) const ;
00040 virtual void printName(ostream& os) const ;
00041 virtual void printTitle(ostream& os) const ;
00042 virtual void printClassName(ostream& os) const ;
00043 virtual void printValue(ostream& os) const ;
00044 virtual void printArgs(ostream& os) const ;
00045 virtual void printExtras(ostream& os) const ;
00046 virtual void printMultiline(ostream& os, Int_t contents, Bool_t verbose=kFALSE, TString indent="") const ;
00047 virtual void printTree(ostream& os, TString indent="") const ;
00048
00049 static ostream& defaultPrintStream(ostream *os= 0);
00050 virtual Int_t defaultPrintContents(Option_t* opt) const ;
00051 virtual StyleOption defaultPrintStyle(Option_t* opt) const ;
00052
00053
00054 static void nameFieldLength(Int_t newLen) ;
00055
00056 protected:
00057
00058 static Int_t _nameLength ;
00059
00060 ClassDef(RooPrintable,1)
00061
00062
00063 };
00064
00065 namespace RooFit {
00066 ostream& operator<<(ostream& os, const RooPrintable& rp) ;
00067 }
00068
00069 #ifndef __CINT__
00070 using RooFit::operator<< ;
00071 #endif
00072
00073 #endif