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)