00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016 #ifndef ROO_BINNEDPDF_HH
00017 #define ROO_BINNEDPDF_HH
00018
00019 #include "RooFitCore/RooAbsPdf.hh"
00020 #include "RooFitCore/RooRealProxy.hh"
00021 #include "RooFitCore/RooListProxy.hh"
00022 #include "TArrayD.h"
00023
00024 using namespace std;
00025
00026
00027 class RooRealVar;
00028 class RooArgList ;
00029
00030 class RooBinnedPdf : public RooAbsPdf {
00031
00032 private:
00033 Double_t localEval(const Double_t) const;
00034
00035 public:
00036
00037 RooBinnedPdf(const char *name, const char *title,
00038 RooAbsReal& x, const RooArgList& coefList, const TArrayD& limits) ;
00039
00040 RooBinnedPdf(const RooBinnedPdf& other, const char* name = 0);
00041 virtual TObject* clone(const char* newname) const { return new RooBinnedPdf(*this, newname); }
00042 virtual ~RooBinnedPdf() ;
00043
00044 Int_t getAnalyticalIntegral(RooArgSet& allVars, RooArgSet& analVars, const char* rangeName=0) const ;
00045 Double_t analyticalIntegral(Int_t code, const char* rangeName=0) const ;
00046 Int_t getnBins();
00047 Double_t* getLimits();
00048
00049 protected:
00050
00051 RooRealProxy _x;
00052 RooListProxy _coefList ;
00053 TArrayD _limits;
00054 Int_t _nBins ;
00055 Double_t evaluate() const;
00056
00057 ClassDef(RooBinnedPdf,1)
00058 };
00059
00060 #endif