12 #ifndef ROOPROJECTEDPDF 
   13 #define ROOPROJECTEDPDF 
   21 class RooProjectedPdf : 
public RooAbsPdf {
 
   25   RooProjectedPdf(
const char *name, 
const char *title,  RooAbsReal& _intpdf, 
const RooArgSet& intObs);
 
   26   RooProjectedPdf(
const RooProjectedPdf& other, 
const char* name=0) ;
 
   27   virtual TObject* clone(
const char* newname)
 const { 
return new RooProjectedPdf(*
this,newname); }
 
   28   inline virtual ~RooProjectedPdf() { }
 
   31   virtual Int_t getAnalyticalIntegralWN(RooArgSet& allVars, RooArgSet& analVars, 
const RooArgSet* normSet, 
const char* rangeName=0) 
const ;
 
   32   virtual Double_t analyticalIntegralWN(Int_t code, 
const RooArgSet* normSet, 
const char* rangeName=0) 
const ;
 
   33   virtual Bool_t forceAnalyticalInt(
const RooAbsArg& dep) 
const ;
 
   35   virtual Double_t getValV(
const RooArgSet* set=0) 
const ;
 
   37   Int_t getGenerator(
const RooArgSet& directVars, RooArgSet &generateVars, Bool_t staticInitOK=kTRUE) 
const;
 
   38   void initGenerator(Int_t ) {} ; 
 
   39   void generateEvent(Int_t code);
 
   41   virtual Bool_t selfNormalized()
 const { 
return kTRUE ; }
 
   44   virtual RooAbsPdf* createProjection(
const RooArgSet& iset) ;  
 
   46   void printMetaArgs(std::ostream& os) 
const ;
 
   55   class CacheElem : 
public RooAbsCacheElement {
 
   57     virtual ~CacheElem() { 
delete _projection ; } ;
 
   59     RooAbsReal* _projection ;
 
   61     virtual RooArgList containedArgs(Action) ; 
 
   62     virtual void printCompactTreeHook(std::ostream&, 
const char *, Int_t, Int_t) ;
 
   64   mutable RooObjCacheManager _cacheMgr ; 
 
   66   Bool_t redirectServersHook(
const RooAbsCollection& newServerList, Bool_t , Bool_t , Bool_t ) ;
 
   68   mutable RooArgSet* _curNormSet ; 
 
   70   const RooAbsReal* getProjection(
const RooArgSet* iset, 
const RooArgSet* nset, 
const char* rangeName, 
int& code) 
const ;
 
   71   Double_t evaluate() 
const ;
 
   75   ClassDef(RooProjectedPdf,1)