#ifndef ROO_NUM_CONV_PDF
#define ROO_NUM_CONV_PDF
#include "RooAbsPdf.h"
#include "RooNumConvolution.h"
class TH2 ;
class RooArgSet ;
class RooDataSet ;
class RooNumConvPdf : public RooAbsPdf {
public:
RooNumConvPdf(const char *name, const char *title,
RooRealVar& convVar, RooAbsPdf& pdf, RooAbsPdf& resmodel) ;
RooNumConvPdf(const RooNumConvPdf& other, const char* name=0) ;
virtual TObject* clone(const char* newname) const { return new RooNumConvPdf(*this,newname) ; }
virtual ~RooNumConvPdf() ;
virtual Double_t evaluate() const ;
inline RooNumIntConfig& convIntConfig() { return conv().convIntConfig() ; }
inline void clearConvolutionWindow() { conv().clearConvolutionWindow() ; }
inline void setConvolutionWindow(RooAbsReal& centerParam, RooAbsReal& widthParam, Double_t widthScaleFactor=1)
{ conv().setConvolutionWindow(centerParam,widthParam,widthScaleFactor) ; }
inline void setCallWarning(Int_t threshold=2000) { conv().setCallWarning(threshold) ; }
inline void setCallProfiling(Bool_t flag, Int_t nbinX = 40, Int_t nbinCall = 40, Int_t nCallHigh=1000)
{ conv().setCallProfiling(flag,nbinX,nbinCall,nCallHigh) ; }
inline const TH2* profileData() const { return conv().profileData() ; }
RooRealVar& var() const { return (RooRealVar&) _origVar.arg() ; }
RooAbsReal& pdf() const { return (RooAbsReal&) _origPdf.arg() ; }
RooAbsReal& model() const { return (RooAbsReal&) _origModel.arg() ; }
protected:
RooNumConvolution& conv() const { if (!_init) initialize() ; return *_conv ; }
mutable Bool_t _init ;
void initialize() const ;
mutable RooNumConvolution* _conv ;
RooRealProxy _origVar ;
RooRealProxy _origPdf ;
RooRealProxy _origModel ;
virtual RooAbsGenContext* genContext(const RooArgSet &vars, const RooDataSet *prototype=0,
const RooArgSet* auxProto=0, Bool_t verbose= kFALSE) const ;
friend class RooConvGenContext ;
ClassDef(RooNumConvPdf,0)
};
#endif
Last change: Wed Jun 25 08:33:39 2008
Last generated: 2008-06-25 08:33
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.