CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_5_3_13_patch3/src/HiggsAnalysis/CombinedLimit/interface/AsymPow.h

Go to the documentation of this file.
00001 #ifndef HiggsAnalysis_CombinedLimit_AsymPow_h
00002 #define HiggsAnalysis_CombinedLimit_AsymPow_h
00003 
00004 #include <RooAbsReal.h>
00005 #include <RooRealProxy.h>
00006 
00007 
00008 //_________________________________________________
00009 /*
00010 BEGIN_HTML
00011 <p>
00012 AsymPow is helper class for implementing asymmetric log-normal errors. 
00013 It has two parameters <i>kappa<sub>Low</sub></i>, <i>kappa<sub>High</sub></i> and one variable (<i>theta</i>).
00014 <ul>
00015 <li>for <i>theta &gt; 0</i>, it evaluates to <b>pow</b>(<i>kappa<sub>High</sub></i>, <i>theta</i>). </li>
00016 <li>for <i>theta &lt; 0</i>, it evaluates to <b>pow</b>(<i>kappa<sub>Low</sub></i>, &minus;<i>theta</i>). </li>
00017 </ul>
00018 </p>
00019 END_HTML
00020 */
00021 //
00022 class AsymPow : public RooAbsReal {
00023 
00024    public:
00025       AsymPow() {}
00026       AsymPow(const char *name, const char *title, RooAbsReal &kappaLow, RooAbsReal &kappaHigh, RooAbsReal &theta) ;
00027       ~AsymPow() ;
00028 
00029       TObject * clone(const char *newname) const ;
00030 
00031     protected:
00032         Double_t evaluate() const;
00033 
00034     private:
00035         RooRealProxy kappaLow_, kappaHigh_;
00036         RooRealProxy theta_;
00037 
00038         // get the kappa for the appropriate x
00039         Double_t logKappaForX(Double_t x) const ;
00040 
00041   ClassDef(AsymPow,1) // Asymmetric power       
00042 };
00043 
00044 #endif