00001
00008 #ifndef __SFMATRIXOFH2F_H
00009 #define __SFMATRIXOFH2F_H
00010
00011 #include "jbltools/sfh/MatrixOfH2F.h"
00012
00013 #include "jbltools/sfh/SFO.h"
00014 #include "jbltools/sfh/FloatFunPoR.h"
00015 #include "jbltools/sfh/BaseCutPoR.h"
00016 #include "jbltools/sfh/FillIteratorPoR.h"
00017
00018
00019 class TFile;
00020 class TProfile;
00021 class TAxis;
00022 class BinningFun;
00023 class RegH2F;
00024 class SetOfHistograms;
00025
00026
00027
00029
00054 class SFMatrixOfH2F: public MatrixOfH2F, public SFO {
00055 public:
00056
00058 SFMatrixOfH2F (const char* name_,
00059 const char* title_,
00060 Int_t nbinsx,
00061 Axis_t xlow,
00062 Axis_t xup,
00063 Int_t nbinsy,
00064 Axis_t ylow,
00065 Axis_t yup,
00066 const ROListPoR& hhl,
00067 const FloatFunPoR& xfun_,
00068 const FloatFunPoR& yfun_,
00069 const BaseCutPoR& cut_,
00070 const FloatFunPoR& wfun_,
00071 const BinningFunPoR& binning1_,
00072 const BinningFunPoR& binning2_,
00073 const FillIteratorPoR& iter_ = 0
00074 );
00076 SFMatrixOfH2F (const char* name_,
00077 const char* title_,
00078 Int_t nbinsx,
00079 const Double_t* xbins,
00080 Int_t nbinsy,
00081 Axis_t ylow,
00082 Axis_t yup,
00083 const ROListPoR& hhl,
00084 const FloatFunPoR& xfun_,
00085 const FloatFunPoR& yfun_,
00086 const BaseCutPoR& cut_,
00087 const FloatFunPoR& wfun_,
00088 const BinningFunPoR& binning1_,
00089 const BinningFunPoR& binning2_,
00090 const FillIteratorPoR& iter_ = 0
00091 );
00093 SFMatrixOfH2F (const char* name_,
00094 const char* title_,
00095 Int_t nbinsx,
00096 Axis_t xlow,
00097 Axis_t xup,
00098 Int_t nbinsy,
00099 const Double_t* ybins,
00100 const ROListPoR& hhl,
00101 const FloatFunPoR& xfun_,
00102 const FloatFunPoR& yfun_,
00103 const BaseCutPoR& cut_,
00104 const FloatFunPoR& wfun_,
00105 const BinningFunPoR& binning1_,
00106 const BinningFunPoR& binning2_,
00107 const FillIteratorPoR& iter_ = 0
00108 );
00110 SFMatrixOfH2F (const char* name_,
00111 const char* title_,
00112 Int_t nbinsx,
00113 const Double_t* xbins,
00114 Int_t nbinsy,
00115 const Double_t* ybins,
00116 const ROListPoR& hhl,
00117 const FloatFunPoR& xfun_,
00118 const FloatFunPoR& yfun_,
00119 const BaseCutPoR& cut_,
00120 const FloatFunPoR& wfun_,
00121 const BinningFunPoR& binning1_,
00122 const BinningFunPoR& binning2_,
00123 const FillIteratorPoR& iter_ = 0
00124 );
00126 SFMatrixOfH2F (const char* name_,
00127 const char* title_,
00128 Int_t nbinsx,
00129 const Float_t* xbins,
00130 Int_t nbinsy,
00131 const Float_t* ybins,
00132 const ROListPoR& hhl,
00133 const FloatFunPoR& xfun_,
00134 const FloatFunPoR& yfun_,
00135 const BaseCutPoR& cut_,
00136 const FloatFunPoR& wfun_,
00137 const BinningFunPoR& binning1_,
00138 const BinningFunPoR& binning2_,
00139 const FillIteratorPoR& iter_ = 0
00140 );
00142 SFMatrixOfH2F (const char* name_,
00143 const char* title_,
00144 const Binning& xbinning,
00145 const Binning& ybinning,
00146 const ROListPoR& hhl,
00147 const FloatFunPoR& xfun_,
00148 const FloatFunPoR& yfun_,
00149 const BaseCutPoR& cut_,
00150 const FloatFunPoR& wfun_,
00151 const BinningFunPoR& binning1_,
00152 const BinningFunPoR& binning2_,
00153 const FillIteratorPoR& iter_ = 0
00154 );
00155
00156
00157
00159 virtual ~SFMatrixOfH2F ();
00160
00162
00170 virtual void Fill ();
00171
00173 FloatFun *getXFun() const {return xfun;}
00175 FloatFun *getYFun() const {return yfun;}
00177 BaseCut *getCut() const {return cut;}
00179 FloatFun *getWFun() const {return wfun;}
00181 FillIterator *getIter() const {return iter;}
00182
00183 protected:
00185 void checkIterators(const char *name
00186 );
00188 template<class Fun1, class Fun2>
00189 void checkTwoIterators(const char *name,
00190 const char *fun1name,
00191 Fun1 *fun1,
00192 const char *fun2name,
00193 Fun2 *fun2
00194 );
00196 template<class Fun>
00197 void checkOneIterator (const char *name,
00198 const char *funname,
00199 Fun *fun
00200 );
00201
00202 private:
00203
00204 FloatFun *xfun;
00205 FloatFun *yfun;
00206 BaseCut *cut;
00207 FloatFun *wfun;
00208 FillIterator *iter;
00209
00211 SFMatrixOfH2F (const SFMatrixOfH2F& source
00212 );
00214 SFMatrixOfH2F& operator= (const SFMatrixOfH2F& source
00215 );
00216 };
00217
00218
00219
00220 #endif