43 ClassImp(RooEfficiency);
52 RooEfficiency::RooEfficiency(
const char *name,
const char *title,
const RooAbsReal& effFunc,
const RooAbsCategory& cat,
const char* sigCatName) :
53 RooAbsPdf(name,title),
54 _cat(
"cat",
"Signal/Background category",this,(RooAbsCategory&)cat),
55 _effFunc(
"effFunc",
"Efficiency modeling function",this,(RooAbsReal&)effFunc),
56 _sigCatName(sigCatName)
65 RooEfficiency::RooEfficiency(
const RooEfficiency& other,
const char* name) :
66 RooAbsPdf(other, name),
67 _cat(
"cat",this,other._cat),
68 _effFunc(
"effFunc",this,other._effFunc),
69 _sigCatName(other._sigCatName)
78 RooEfficiency::~RooEfficiency()
88 Double_t RooEfficiency::evaluate()
const
90 Double_t effFuncVal = _effFunc ;
95 }
else if (_effFunc<0) {
99 if (_cat.label() == _sigCatName) {
104 return 1 - effFuncVal ;
112 Int_t RooEfficiency::getAnalyticalIntegral(RooArgSet& allVars, RooArgSet& analVars,
const char* )
const
114 if (matchArgs(allVars,analVars,_cat))
return 1 ;
122 Double_t RooEfficiency::analyticalIntegral(Int_t code,
const char* )
const