00001
00008 #ifndef __SFEFFSETOFHISTOGRAMS_H
00009 #define __SFEFFSETOFHISTOGRAMS_H
00010
00011 #include "jbltools/sfh/SetOfHistograms.h"
00012 #include "jbltools/sfh/SFO.h"
00013 #include "jbltools/sfh/FloatFunPoR.h"
00014 #include "jbltools/sfh/BaseCutPoR.h"
00015 #include "jbltools/sfh/FillIteratorPoR.h"
00016
00017 class ROList;
00018
00019
00020
00022
00039 class SFEffSetOfHistograms: public SetOfHistograms, public SFO {
00040 public:
00042 SFEffSetOfHistograms (const char* name_,
00043 const char* title_,
00044 Int_t nbinsx,
00045 Axis_t xlow,
00046 Axis_t xup,
00047 const ROListPoR& hhl,
00048 const FloatFunPoR& xfun_,
00049 const BaseCutPoR& cut0_,
00050 const BaseCutPoR& cut1_,
00051 const BaseCutPoR& cut2_,
00052 const FloatFunPoR& wfun_,
00053 const FillIteratorPoR& iter_ = 0,
00054 Option_t* div_option_ = 0
00055 );
00057 SFEffSetOfHistograms (const char* name_,
00058 const char* title_,
00059 Int_t nbinsx,
00060 const Double_t* xbins,
00061 const ROListPoR& hhl,
00062 const FloatFunPoR& xfun_,
00063 const BaseCutPoR& cut0_,
00064 const BaseCutPoR& cut1_,
00065 const BaseCutPoR& cut2_,
00066 const FloatFunPoR& wfun_,
00067 const FillIteratorPoR& iter_ = 0,
00068 Option_t* div_option_ = 0
00069 );
00071 SFEffSetOfHistograms (const char* name_,
00072 const char* title_,
00073 Int_t nbinsx,
00074 const Float_t* xbins,
00075 const ROListPoR& hhl,
00076 const FloatFunPoR& xfun_,
00077 const BaseCutPoR& cut0_,
00078 const BaseCutPoR& cut1_,
00079 const BaseCutPoR& cut2_,
00080 const FloatFunPoR& wfun_,
00081 const FillIteratorPoR& iter_ = 0,
00082 Option_t* div_option_ = 0
00083 );
00085 SFEffSetOfHistograms (const char* name_,
00086 const char* title_,
00087 const Binning& axisbinning,
00088 const ROListPoR& hhl,
00089 const FloatFunPoR& xfun_,
00090 const BaseCutPoR& cut0_,
00091 const BaseCutPoR& cut1_,
00092 const BaseCutPoR& cut2_,
00093 const FloatFunPoR& wfun_,
00094 const FillIteratorPoR& iter_ = 0,
00095 Option_t* div_option_ = 0
00096 );
00097
00099 virtual ~SFEffSetOfHistograms ();
00100
00102
00115 virtual void Draw (TPad *pad,
00116 TVirtualPS *ps = 0,
00117 Option_t *option = 0,
00118 bool across = true,
00119 Int_t nx = 1,
00120 Int_t ny = 1,
00121 Float_t xmargin = 0.01,
00122 Float_t ymargin = 0.01,
00123 Int_t color = 0,
00124 bool log = false
00125 );
00127 virtual void Draw (TPad *pad,
00128 TVirtualPS *ps,
00129 Option_t *option,
00130 bool across,
00131 Int_t nx,
00132 Int_t ny,
00133 bool log
00134 );
00136 virtual void Draw (Option_t *option = 0);
00137
00139
00147 virtual void Fill ();
00148
00150 virtual void Divide ();
00151
00152 protected:
00153
00154 void checkIterators(const char *name);
00155
00156
00157 FloatFun *xfun;
00158 BaseCut *cut0;
00159 BaseCut *cut1;
00160 BaseCut *cut2;
00161 FloatFun *wfun;
00162 FillIterator *iter;
00163 char *div_option;
00164
00165 private:
00167 SFEffSetOfHistograms (const SFEffSetOfHistograms& source);
00169 SFEffSetOfHistograms& operator= (const SFEffSetOfHistograms& source);
00170
00172 void copy_option (Option_t *div_option_);
00173 };
00174
00175 #endif