00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #ifndef ROOT_TTreeDrawArgsParser
00013 #define ROOT_TTreeDrawArgsParser
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef ROOT_TObject
00025 #include "TObject.h"
00026 #endif
00027
00028 #ifndef ROOT_TString
00029 #include "TString.h"
00030 #endif
00031
00032
00033 class TTreeDrawArgsParser : public TObject {
00034
00035 public:
00036 enum EOutputType {
00037 kUNKNOWN,
00038 kEVENTLIST,
00039 kENTRYLIST,
00040 kPROFILE,
00041 kPROFILE2D,
00042 kGRAPH,
00043 kPOLYMARKER3D,
00044 kHISTOGRAM1D,
00045 kHISTOGRAM2D,
00046 kLISTOFGRAPHS,
00047 kLISTOFPOLYMARKERS3D
00048 };
00049
00050 static Int_t fgMaxDimension;
00051 static Int_t fgMaxParameters;
00052
00053 protected:
00054 TString fExp;
00055 TString fSelection;
00056 TString fOption;
00057
00058 Int_t fDimension;
00059 TString fVarExp[4];
00060
00061
00062
00063 Bool_t fAdd;
00064 TString fName;
00065
00066 Int_t fNoParameters;
00067 Bool_t fParameterGiven[9];
00068 Double_t fParameters[9];
00069
00070 Bool_t fShouldDraw;
00071 Bool_t fOptionSame;
00072 Bool_t fEntryList;
00073 TObject *fOriginal;
00074 Bool_t fDrawProfile;
00075 EOutputType fOutputType;
00076
00077 void ClearPrevious();
00078 TTreeDrawArgsParser::EOutputType DefineType();
00079 Bool_t SplitVariables(TString variables);
00080 Bool_t ParseName(TString name);
00081 Bool_t ParseOption();
00082 Bool_t ParseVarExp();
00083
00084 public:
00085 TTreeDrawArgsParser();
00086 ~TTreeDrawArgsParser();
00087
00088 Bool_t Parse(const char *varexp, const char *selection, Option_t *option);
00089 Bool_t GetAdd() const { return fAdd; }
00090 Int_t GetDimension() const { return fDimension; }
00091 Bool_t GetShouldDraw() const { return fShouldDraw; }
00092 TString GetExp() const { return fExp; }
00093 Double_t GetIfSpecified(Int_t num, Double_t def) const;
00094 Int_t GetNoParameters() const { return fNoParameters; }
00095 Double_t GetParameter(int num) const;
00096 TString GetProofSelectorName() const;
00097 TString GetObjectName() const { return fName; }
00098 TString GetObjectTitle() const;
00099 Bool_t GetOptionSame() const { return fOptionSame; }
00100 TObject *GetOriginal() const { return fOriginal; }
00101 TString GetSelection() const { return fSelection; }
00102 TString GetVarExp(Int_t num) const;
00103 TString GetVarExp() const;
00104 Bool_t IsSpecified(int num) const;
00105 void SetObjectName(const char *s) { fName = s; }
00106 void SetOriginal(TObject *o) { fOriginal = o; }
00107 static Int_t GetMaxDimension();
00108
00109 ClassDef(TTreeDrawArgsParser,0);
00110 };
00111
00112 #endif
00113