00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016 #ifndef ROO_ABS_STRING
00017 #define ROO_ABS_STRING
00018
00019 #include "RooAbsArg.h"
00020
00021 class RooArgSet ;
00022 class TH1F ;
00023
00024 class RooAbsString : public RooAbsArg {
00025 public:
00026
00027
00028 RooAbsString() ;
00029 RooAbsString(const char *name, const char *title, Int_t size=128) ;
00030 RooAbsString(const RooAbsString& other, const char* name=0);
00031 virtual ~RooAbsString();
00032
00033
00034 virtual const char* getVal() const ;
00035 Bool_t operator==(const char*) const ;
00036 virtual Bool_t operator==(const RooAbsArg& other) ;
00037
00038
00039 virtual Bool_t readFromStream(istream& is, Bool_t compact, Bool_t verbose=kFALSE) ;
00040 virtual void writeToStream(ostream& os, Bool_t compact) const ;
00041
00042
00043 virtual void printValue(ostream& os) const ;
00044
00045
00046 RooAbsArg *createFundamental(const char* newname=0) const;
00047
00048 protected:
00049
00050
00051 const char* traceEval() const ;
00052 virtual Bool_t traceEvalHook(const char* value) const ;
00053 virtual TString evaluate() const { return "" ; }
00054
00055
00056 virtual Bool_t isValid() const ;
00057 virtual Bool_t isValidString(const char*, Bool_t printError=kFALSE) const ;
00058
00059 virtual void syncCache(const RooArgSet* nset=0) ;
00060 void copyCache(const RooAbsArg* source, Bool_t valueOnly=kFALSE) ;
00061 virtual void attachToTree(TTree& t, Int_t bufSize=32000) ;
00062 virtual void fillTreeBranch(TTree& t) ;
00063 virtual void setTreeBranchStatus(TTree& t, Bool_t active) ;
00064 Int_t _len ;
00065 mutable char *_value ;
00066
00067 ClassDef(RooAbsString,1)
00068 };
00069
00070 #endif