#ifndef ROOFFTCONVPDF
#define ROOFFTCONVPDF
#include "RooAbsCachedPdf.h"
#include "RooRealProxy.h"
#include "RooAbsReal.h"
#include "RooHistPdf.h"
#include "TVirtualFFT.h"
class RooRealVar ;
#include <map>
class RooFFTConvPdf : public RooAbsCachedPdf {
public:
RooFFTConvPdf() {} ;
RooFFTConvPdf(const char *name, const char *title, RooRealVar& convVar, RooAbsPdf& pdf1, RooAbsPdf& pdf2, Int_t ipOrder=2);
RooFFTConvPdf(const RooFFTConvPdf& other, const char* name=0) ;
virtual TObject* clone(const char* newname) const { return new RooFFTConvPdf(*this,newname); }
virtual ~RooFFTConvPdf() ;
void setShift(Double_t val1, Double_t val2) { _shift1 = val1 ; _shift2 = val2 ; }
Double_t bufferFraction() const {
return _bufFrac ;
}
void setBufferFraction(Double_t frac) ;
protected:
RooRealProxy _x ;
RooRealProxy _pdf1 ;
RooRealProxy _pdf2 ;
Double_t* scanPdf(RooRealVar& obs, RooAbsPdf& pdf, const RooDataHist& hist, const RooArgSet& slicePos, Int_t& N, Int_t& N2, Double_t shift) const ;
class FFTCacheElem : public PdfCacheElem {
public:
FFTCacheElem(const RooFFTConvPdf& self, const RooArgSet* nset) ;
~FFTCacheElem() ;
virtual RooArgList containedArgs(Action) ;
TVirtualFFT* fftr2c1 ;
TVirtualFFT* fftr2c2 ;
TVirtualFFT* fftc2r ;
RooAbsPdf* pdf1Clone ;
RooAbsPdf* pdf2Clone ;
};
friend class FFTCacheElem ;
virtual Double_t evaluate() const { RooArgSet dummy(_x.arg()) ; return getVal(&dummy) ; } ;
virtual const char* inputBaseName() const ;
virtual RooArgSet* actualObservables(const RooArgSet& nset) const ;
virtual RooArgSet* actualParameters(const RooArgSet& nset) const ;
virtual void fillCacheObject(PdfCacheElem& cache) const ;
void fillCacheSlice(FFTCacheElem& cache, const RooArgSet& slicePosition) const ;
virtual PdfCacheElem* createCache(const RooArgSet* nset) const ;
Double_t _bufFrac ;
Double_t _shift1 ;
Double_t _shift2 ;
virtual RooAbsGenContext* genContext(const RooArgSet &vars, const RooDataSet *prototype=0,
const RooArgSet* auxProto=0, Bool_t verbose= kFALSE) const ;
friend class RooConvGenContext ;
private:
ClassDef(RooFFTConvPdf,1)
};
#endif
Last change: Fri Dec 12 09:06:01 2008
Last generated: 2008-12-12 09:06
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.