00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016 #ifndef ROO_OSIPDISC
00017 #define ROO_OSIPDISC
00018
00019 #include "RooFitCore/RooAbsPdf.hh"
00020 #include "RooFitCore/RooRealProxy.hh"
00021
00022 class RooRealVar;
00023
00024 class RooOsipDisc : public RooAbsPdf {
00025 public:
00026 RooOsipDisc(const char *name, const char *title,
00027 RooAbsReal& _x, RooAbsReal& _r, RooAbsReal& _b, RooAbsReal& _a, RooAbsReal& _h, RooAbsReal& _s );
00028 RooOsipDisc(const RooOsipDisc& other, const char* name=0) ;
00029 virtual TObject* clone(const char* newname) const { return new RooOsipDisc(*this,newname); }
00030 inline virtual ~RooOsipDisc() { }
00031
00032 Int_t getAnalyticalIntegral(RooArgSet& allVars, RooArgSet& analVars, const char* rangeName=0) const ;
00033 Double_t analyticalIntegral(Int_t code, const char* rangeName=0) const ;
00034
00035 Int_t getGenerator(const RooArgSet& directVars, RooArgSet &generateVars, Bool_t staticInitOK=kTRUE) const;
00036 void generateEvent(Int_t code);
00037
00038 protected:
00039
00040 RooRealProxy x ;
00041 RooRealProxy r ;
00042 RooRealProxy bb ;
00043 RooRealProxy a ;
00044 RooRealProxy h ;
00045 RooRealProxy s ;
00046
00047 Double_t evaluate() const ;
00048
00049 private:
00050
00051 ClassDef(RooOsipDisc,0)
00052 };
00053
00054 #endif