CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_9_patch3/src/HiggsAnalysis/CombinedLimit/interface/HZZ2L2QRooPdfs.h

Go to the documentation of this file.
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                  //RooAbsReal& _k,
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   // RooRealProxy k;
00182   RooRealProxy theta;
00183   
00184 
00185   Double_t evaluate() const ;
00186 
00187  private:
00188 
00189   ClassDef(RooLevelledExp,1)
00190     };
00191 
00192 
00193 #endif