00001
00014 #include "jbltools/sfh/MatrixOfH2F.h"
00015 #include "jbltools/sfh/RegH2F.h"
00016 #include "jbltools/sfh/BinningFun.h"
00017
00018 #include <TFile.h>
00019 #include <TF1.h>
00020 #include <TAxis.h>
00021
00022 #include <iostream>
00023 #include <cmath>
00024 #include <cassert>
00025
00026 static const char *ident="@(#)$Id: MatrixOfH2F.C,v 1.3 2005/07/08 15:01:34 blist Exp $";
00027
00028 MatrixOfH2F::MatrixOfH2F (const char* name_,
00029 const char* title_,
00030 const ROListPoR& hhl,
00031 const BinningFunPoR& binning1_,
00032 const BinningFunPoR& binning2_)
00033 : MatrixOfH (name_, title_, hhl, binning1_, binning2_, 0)
00034 {
00035 initHistos ();
00036 }
00037
00038 MatrixOfH2F::MatrixOfH2F (const char* name_,
00039 const char* title_,
00040 Int_t nbinsx,
00041 Axis_t xlow,
00042 Axis_t xup,
00043 Int_t nbinsy,
00044 Axis_t ylow,
00045 Axis_t yup,
00046 const ROListPoR& hhl,
00047 const BinningFunPoR& binning1_,
00048 const BinningFunPoR& binning2_)
00049 : MatrixOfH (name_, title_, hhl, binning1_, binning2_, 0),
00050 xaxisbinning (nbinsx, xlow, xup),
00051 yaxisbinning (nbinsy, ylow, yup)
00052 {
00053 initHistos ();
00054 }
00055
00056 MatrixOfH2F::MatrixOfH2F (const char* name_,
00057 const char* title_,
00058 Int_t nbinsx,
00059 const Double_t* xbins,
00060 Int_t nbinsy,
00061 Axis_t ylow,
00062 Axis_t yup,
00063 const ROListPoR& hhl,
00064 const BinningFunPoR& binning1_,
00065 const BinningFunPoR& binning2_)
00066 : MatrixOfH (name_, title_, hhl, binning1_, binning2_, 0),
00067 xaxisbinning (nbinsx, xbins),
00068 yaxisbinning (nbinsy, ylow, yup)
00069 {
00070 initHistos ();
00071 }
00072
00073 MatrixOfH2F::MatrixOfH2F (const char* name_,
00074 const char* title_,
00075 Int_t nbinsx,
00076 Axis_t xlow,
00077 Axis_t xup,
00078 Int_t nbinsy,
00079 const Double_t* ybins,
00080 const ROListPoR& hhl,
00081 const BinningFunPoR& binning1_,
00082 const BinningFunPoR& binning2_)
00083 : MatrixOfH (name_, title_, hhl, binning1_, binning2_, 0),
00084 xaxisbinning (nbinsx, xlow, xup),
00085 yaxisbinning (nbinsy, ybins)
00086 {
00087 initHistos ();
00088 }
00089
00090 MatrixOfH2F::MatrixOfH2F (const char* name_,
00091 const char* title_,
00092 Int_t nbinsx,
00093 const Double_t* xbins,
00094 Int_t nbinsy,
00095 const Double_t* ybins,
00096 const ROListPoR& hhl,
00097 const BinningFunPoR& binning1_,
00098 const BinningFunPoR& binning2_)
00099 : MatrixOfH (name_, title_, hhl, binning1_, binning2_, 0),
00100 xaxisbinning (nbinsx, xbins),
00101 yaxisbinning (nbinsy, ybins)
00102 {
00103 initHistos ();
00104 }
00105
00106 MatrixOfH2F::MatrixOfH2F (const char* name_,
00107 const char* title_,
00108 Int_t nbinsx,
00109 const Float_t* xbins,
00110 Int_t nbinsy,
00111 const Float_t* ybins,
00112 const ROListPoR& hhl,
00113 const BinningFunPoR& binning1_,
00114 const BinningFunPoR& binning2_)
00115 : MatrixOfH (name_, title_, hhl, binning1_, binning2_, 0),
00116 xaxisbinning (nbinsx, xbins),
00117 yaxisbinning (nbinsy, ybins)
00118 {
00119 initHistos ();
00120 }
00121
00122 MatrixOfH2F::MatrixOfH2F (const char* name_,
00123 const char* title_,
00124 const Binning& xbinning,
00125 const Binning& ybinning,
00126 const ROListPoR& hhl,
00127 const BinningFunPoR& binning1_,
00128 const BinningFunPoR& binning2_)
00129 : MatrixOfH (name_, title_, hhl, binning1_, binning2_, 0),
00130 xaxisbinning (xbinning),
00131 yaxisbinning (ybinning)
00132 {
00133 initHistos ();
00134 }
00135
00136
00137
00138 void MatrixOfH2F::initHisto (IndexType i, IndexType j) {
00139 const char *htitle = genBinTitle(i, j);
00140 const char *hname = genBinName(i, j);
00141 RegH2F *h = new RegH2F (hname, htitle, xaxisbinning, yaxisbinning);
00142 registerObject (getBinNumber(i, j), h);
00143 delete[] hname;
00144 delete[] htitle;
00145 }
00146
00147
00148 RegH2F *MatrixOfH2F::getHisto (IndexType i, IndexType j) {
00149 return dynamic_cast<RegH2F *>(getEntry(getBinNumber (i, j)));
00150 }
00151
00152
00153 MatrixOfH2F::~MatrixOfH2F () {
00154 }
00155