16 #ifndef ROO_EXTEND_PDF
17 #define ROO_EXTEND_PDF
22 class RooExtendPdf :
public RooAbsPdf {
26 RooExtendPdf(
const char *name,
const char *title,
const RooAbsPdf& pdf,
27 const RooAbsReal& norm,
const char* rangeName=0) ;
28 RooExtendPdf(
const RooExtendPdf& other,
const char* name=0) ;
29 virtual TObject* clone(
const char* newname)
const {
return new RooExtendPdf(*
this,newname) ; }
30 virtual ~RooExtendPdf() ;
32 Double_t evaluate()
const {
return _pdf ; }
34 Bool_t forceAnalyticalInt(
const RooAbsArg& )
const {
return kTRUE ; }
35 Int_t getAnalyticalIntegralWN(RooArgSet& allVars, RooArgSet& analVars,
const RooArgSet* normSet,
const char* rangeName=0)
const {
37 return ((RooAbsPdf&)_pdf.arg()).getAnalyticalIntegralWN(allVars, analVars, normSet, rangeName) ;
39 Double_t analyticalIntegralWN(Int_t code,
const RooArgSet* normSet,
const char* rangeName=0)
const {
41 return ((RooAbsPdf&)_pdf.arg()).analyticalIntegralWN(code, normSet, rangeName) ;
44 virtual Bool_t selfNormalized()
const {
return kTRUE ; }
45 virtual ExtendMode extendMode()
const {
return CanBeExtended ; }
46 virtual Double_t expectedEvents(
const RooArgSet* nset)
const ;
48 virtual Double_t expectedEvents(
const RooArgSet& nset)
const {
return expectedEvents(&nset) ; }
54 const TNamed* _rangeName ;
57 ClassDef(RooExtendPdf,1)