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