00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016 #ifndef ROO_BIFUR_GAUSS
00017 #define ROO_BIFUR_GAUSS
00018
00019 #include "RooAbsPdf.h"
00020 #include "RooRealProxy.h"
00021
00022 class RooRealVar;
00023
00024 class RooBifurGauss : public RooAbsPdf {
00025 public:
00026 RooBifurGauss() {} ;
00027 RooBifurGauss(const char *name, const char *title, RooAbsReal& _x,
00028 RooAbsReal& _mean, RooAbsReal& _sigmaL, RooAbsReal& _sigmaR);
00029
00030 RooBifurGauss(const RooBifurGauss& other, const char* name=0) ;
00031 virtual TObject* clone(const char* newname) const { return new RooBifurGauss(*this,newname); }
00032 inline virtual ~RooBifurGauss() { }
00033
00034 Int_t getAnalyticalIntegral(RooArgSet& allVars, RooArgSet& analVars, const char* rangeName=0) const ;
00035 Double_t analyticalIntegral(Int_t code, const char* rangeName=0) const ;
00036
00037
00038 protected:
00039
00040 RooRealProxy x;
00041 RooRealProxy mean;
00042 RooRealProxy sigmaL;
00043 RooRealProxy sigmaR;
00044
00045 Double_t evaluate() const;
00046
00047 private:
00048
00049 ClassDef(RooBifurGauss,1)
00050 };
00051
00052 #endif