00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014 #ifndef __CINT__
00015 #include "RooGlobalFunc.h"
00016 #endif
00017 #include "RooRealVar.h"
00018 #include "RooGaussian.h"
00019 #include "RooProdPdf.h"
00020 #include "RooAbsReal.h"
00021 #include "RooPlot.h"
00022 #include "TCanvas.h"
00023 #include "TH1.h"
00024 using namespace RooFit ;
00025
00026
00027 class TestBasic308 : public RooFitTestUnit
00028 {
00029 public:
00030 TestBasic308(TFile* refFile, Bool_t writeRef, Int_t verbose) : RooFitTestUnit("Normalization of p.d.f.s in 2D",refFile,writeRef,verbose) {} ;
00031 Bool_t testCode() {
00032
00033
00034
00035
00036
00037 RooRealVar x("x","x",-10,10) ;
00038 RooRealVar y("y","y",-10,10) ;
00039
00040
00041 RooGaussian gx("gx","gx",x,RooConst(-2),RooConst(3)) ;
00042 RooGaussian gy("gy","gy",y,RooConst(+2),RooConst(2)) ;
00043
00044
00045 RooProdPdf gxy("gxy","gxy",RooArgSet(gx,gy)) ;
00046
00047
00048
00049
00050
00051
00052
00053 regValue(gxy.getVal(),"rf308_gxy") ;
00054
00055
00056 RooArgSet nset_xy(x,y) ;
00057 regValue(gxy.getVal(&nset_xy),"rf308_gx_Norm[x,y]") ;
00058
00059
00060
00061 RooAbsReal* igxy = gxy.createIntegral(RooArgSet(x,y)) ;
00062 regValue(igxy->getVal(),"rf308_gx_Int[x,y]") ;
00063
00064
00065
00066
00067 RooArgSet nset_x(x) ;
00068 regValue(gxy.getVal(&nset_x),"rf308_gx_Norm[x]") ;
00069
00070
00071 RooArgSet nset_y(y) ;
00072 regValue(gxy.getVal(&nset_y),"rf308_gx_Norm[y]") ;
00073
00074
00075
00076
00077
00078
00079
00080 x.setRange("signal",-5,5) ;
00081 y.setRange("signal",-3,3) ;
00082
00083
00084
00085
00086 RooAbsReal* igxy_sig = gxy.createIntegral(RooArgSet(x,y),NormSet(RooArgSet(x,y)),Range("signal")) ;
00087 regValue(igxy_sig->getVal(),"rf308_gx_Int[x,y|signal]_Norm[x,y]") ;
00088
00089
00090
00091
00092
00093
00094
00095
00096 RooAbsReal* gxy_cdf = gxy.createCdf(RooArgSet(x,y)) ;
00097
00098
00099 TH1* hh_cdf = gxy_cdf->createHistogram("hh_cdf",x,Binning(40),YVar(y,Binning(40))) ;
00100
00101 regTH(hh_cdf,"rf308_cdf") ;
00102
00103 delete igxy_sig ;
00104 delete igxy ;
00105 delete gxy_cdf ;
00106
00107 return kTRUE ;
00108 }
00109 } ;