00001 #ifndef HZZ2L2QROOPDFS
00002 #define HZZ2L2QROOPDFS
00003
00004 #include "RooAbsPdf.h"
00005 #include "RooRealProxy.h"
00006 #include "RooAbsReal.h"
00007
00008 class RooCB : public RooAbsPdf {
00009 public:
00010 RooCB();
00011 RooCB(const char *name, const char *title,
00012 RooAbsReal& _x,
00013 RooAbsReal& _mean,
00014 RooAbsReal& _width,
00015 RooAbsReal& _alpha,
00016 RooAbsReal& _n,
00017 RooAbsReal& _theta
00018 );
00019 RooCB(const RooCB& other, const char* name=0) ;
00020 virtual TObject* clone(const char* newname) const { return new RooCB(*this,newname); }
00021 inline virtual ~RooCB() { }
00022
00023 protected:
00024
00025 RooRealProxy x ;
00026 RooRealProxy mean;
00027 RooRealProxy width;
00028 RooRealProxy alpha;
00029 RooRealProxy n;
00030 RooRealProxy theta;
00031
00032 Double_t evaluate() const ;
00033
00034 private:
00035
00036 ClassDef(RooCB,1)
00037 };
00038
00039
00040 class RooDoubleCB : public RooAbsPdf {
00041 public:
00042 RooDoubleCB();
00043 RooDoubleCB(const char *name, const char *title,
00044 RooAbsReal& _x,
00045 RooAbsReal& _mean,
00046 RooAbsReal& _width,
00047 RooAbsReal& _alpha1,
00048 RooAbsReal& _n1,
00049 RooAbsReal& _alpha2,
00050 RooAbsReal& _n2
00051 );
00052 RooDoubleCB(const RooDoubleCB& other, const char* name=0) ;
00053 virtual TObject* clone(const char* newname) const { return new RooDoubleCB(*this,newname); }
00054 inline virtual ~RooDoubleCB() { }
00055
00056 protected:
00057
00058 RooRealProxy x ;
00059 RooRealProxy mean;
00060 RooRealProxy width;
00061 RooRealProxy alpha1;
00062 RooRealProxy n1;
00063 RooRealProxy alpha2;
00064 RooRealProxy n2;
00065
00066 Double_t evaluate() const ;
00067
00068 private:
00069
00070 ClassDef(RooDoubleCB,1)
00071 };
00072
00073 class RooFermi : public RooAbsPdf {
00074 public:
00075 RooFermi();
00076 RooFermi(const char *name, const char *title,
00077 RooAbsReal& _x,
00078 RooAbsReal& _cutOff,
00079 RooAbsReal& _beta
00080 );
00081 RooFermi(const RooFermi& other, const char* name=0) ;
00082 virtual TObject* clone(const char* newname) const { return new RooFermi(*this,newname); }
00083 inline virtual ~RooFermi() { }
00084
00085 protected:
00086
00087 RooRealProxy x ;
00088 RooRealProxy cutOff ;
00089 RooRealProxy beta ;
00090
00091 Double_t evaluate() const ;
00092
00093 private:
00094
00095 ClassDef(RooFermi,1)
00096 };
00097
00098 class RooRelBW : public RooAbsPdf {
00099 public:
00100 RooRelBW();
00101 RooRelBW(const char *name, const char *title,
00102 RooAbsReal& _x,
00103 RooAbsReal& _mean,
00104 RooAbsReal& _width,
00105 RooAbsReal& _n
00106 );
00107 RooRelBW(const RooRelBW& other, const char* name=0) ;
00108 virtual TObject* clone(const char* newname) const { return new RooRelBW(*this,newname); }
00109 inline virtual ~RooRelBW() { }
00110
00111 protected:
00112
00113 RooRealProxy x ;
00114 RooRealProxy mean ;
00115 RooRealProxy width ;
00116 RooRealProxy n ;
00117
00118 Double_t evaluate() const ;
00119
00120 private:
00121
00122 ClassDef(RooRelBW,1)
00123 };
00124
00125
00126 class Triangle : public RooAbsPdf {
00127 public:
00128 Triangle();
00129 Triangle(const char *name, const char *title,
00130 RooAbsReal& _m,
00131 RooAbsReal& _start,
00132 RooAbsReal& _turn,
00133 RooAbsReal& _stop
00134 );
00135
00136 Triangle(const Triangle& other, const char* name = 0);
00137 virtual TObject* clone(const char* newname) const {
00138 return new Triangle(*this,newname); }
00139
00140 inline virtual ~Triangle() { }
00141 Int_t getAnalyticalIntegral(RooArgSet& allVars, RooArgSet& analVars, const char* rangeName=0) const ;
00142 Double_t analyticalIntegral(Int_t code, const char* rangeName=0) const ;
00143
00144 protected:
00145
00146 RooRealProxy m;
00147 RooRealProxy start;
00148 RooRealProxy turn;
00149 RooRealProxy stop;
00150
00151 Double_t evaluate() const;
00152
00153 private:
00154
00155 ClassDef(Triangle,1)
00156 };
00157
00158
00159 class RooLevelledExp : public RooAbsPdf {
00160 public:
00161 RooLevelledExp();
00162 RooLevelledExp(const char *name, const char *title,
00163 RooAbsReal& _x,
00164 RooAbsReal& _sigma,
00165 RooAbsReal& _alpha,
00166 RooAbsReal& _m,
00167
00168 RooAbsReal& _theta
00169 );
00170
00171 RooLevelledExp(const RooLevelledExp& other, const char* name=0) ;
00172 virtual TObject* clone(const char* newname) const { return new RooLevelledExp(*this,newname); }
00173 inline virtual ~RooLevelledExp() { }
00174
00175 protected:
00176
00177 RooRealProxy x ;
00178 RooRealProxy sigma;
00179 RooRealProxy alpha;
00180 RooRealProxy m;
00181
00182 RooRealProxy theta;
00183
00184
00185 Double_t evaluate() const ;
00186
00187 private:
00188
00189 ClassDef(RooLevelledExp,1)
00190 };
00191
00192
00193 #endif