#ifndef ROO_NUM_CONVOLUTION
#define ROO_NUM_CONVOLUTION
#include "RooAbsPdf.h"
#include "RooRealProxy.h"
#include "RooSetProxy.h"
#include "RooListProxy.h"
#include "RooNumIntConfig.h"
class RooConvIntegrandBinding ;
class RooAbsIntegrator ;
class TH2 ;
class RooNumConvolution : public RooAbsReal {
public:
  RooNumConvolution(const char *name, const char *title, 
	         RooRealVar& convVar, RooAbsReal& pdf, RooAbsReal& resmodel, const RooNumConvolution* proto=0) ;
  RooNumConvolution(const RooNumConvolution& other, const char* name=0) ;
  virtual TObject* clone(const char* newname) const { return new RooNumConvolution(*this,newname) ; }
  virtual ~RooNumConvolution() ;
  Double_t evaluate() const ;
  RooNumIntConfig& convIntConfig() { _init = kFALSE ; return _convIntConfig ; }
  const RooNumIntConfig& convIntConfig() const { _init = kFALSE ; return _convIntConfig ; }
  void clearConvolutionWindow() ;
  void setConvolutionWindow(RooAbsReal& centerParam, RooAbsReal& widthParam, Double_t widthScaleFactor=1) ;
  void setCallWarning(Int_t threshold=2000) ;
  void setCallProfiling(Bool_t flag, Int_t nbinX = 40, Int_t nbinCall = 40, Int_t nCallHigh=1000) ;
  const TH2* profileData() const { return _doProf ? _callHist : 0 ; }
  
  RooRealVar&  var() const { return (RooRealVar&) _origVar.arg() ; }
  RooAbsReal&  pdf() const { return (RooAbsReal&) _origPdf.arg() ; }
  RooAbsReal&  model() const { return (RooAbsReal&) _origModel.arg() ; }
protected:
  friend class RooNumConvPdf ;
  mutable Bool_t _init ;
  void initialize() const ;
  Bool_t redirectServersHook(const RooAbsCollection& newServerList, Bool_t mustReplaceAll, Bool_t nameChange, Bool_t isRecursive) ;
  virtual void printCompactTreeHook(ostream& os, const char* indent="") ;
  RooNumIntConfig _convIntConfig ; 
  mutable RooConvIntegrandBinding* _integrand ; 
  mutable RooAbsIntegrator* _integrator ;  
  RooRealProxy _origVar ;         
  RooRealProxy _origPdf ;         
  RooRealProxy _origModel ;       
  mutable RooArgSet    _ownedClonedPdfSet ;   
  mutable RooArgSet    _ownedClonedModelSet ; 
  mutable RooAbsReal*  _cloneVar ;        
  mutable RooAbsReal*  _clonePdf ;        
  mutable RooAbsReal*  _cloneModel ;      
  friend class RooConvGenContext ;
  RooRealVar&  cloneVar()   const { if (!_init) initialize() ; return (RooRealVar&) *_cloneVar ; }
  RooAbsReal&   clonePdf()   const { if (!_init) initialize() ; return (RooAbsReal&)  *_clonePdf ; }
  RooAbsReal&   cloneModel() const { if (!_init) initialize() ; return (RooAbsReal&)  *_cloneModel ; }
  Bool_t       _useWindow   ;     
  Double_t     _windowScale ;     
  RooListProxy _windowParam ;     
  Int_t        _verboseThresh ;   
  Bool_t       _doProf   ;        
  TH2*         _callHist ;        
  ClassDef(RooNumConvolution,0)          
};
#endif
This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.