#ifndef ROO_ABS_ANA_CONV_PDF
#define ROO_ABS_ANA_CONV_PDF
class TIterator ;
#include "RooAbsPdf.h"
#include "RooRealProxy.h"
#include "RooListProxy.h"
#include "RooDataSet.h"
#include "RooAICRegistry.h"
#include "RooObjCacheManager.h"
#include "RooAbsCacheElement.h"
class RooResolutionModel ;
class RooRealVar ;
class RooAbsGenContext ;
class RooConvGenContext ;
class RooAbsAnaConvPdf : public RooAbsPdf {
public:
RooAbsAnaConvPdf() ;
RooAbsAnaConvPdf(const char *name, const char *title,
const RooResolutionModel& model,
RooRealVar& convVar) ;
RooAbsAnaConvPdf(const RooAbsAnaConvPdf& other, const char* name=0);
virtual ~RooAbsAnaConvPdf();
Int_t declareBasis(const char* expression, const RooArgList& params) ;
virtual void printMultiline(ostream& stream, Int_t contents, Bool_t verbose=kFALSE, TString indent= "") const ;
inline Double_t getCoefNorm(Int_t coefIdx, const RooArgSet& nset, const char* rangeName) const {
return getCoefNorm(coefIdx,&nset,rangeName) ;
}
Double_t getCoefNorm(Int_t coefIdx, const RooArgSet* nset=0, const char* rangeName=0) const ;
virtual Int_t getAnalyticalIntegralWN(RooArgSet& allVars, RooArgSet& analVars, const RooArgSet* normSet, const char* rangeName=0) const ;
virtual Double_t analyticalIntegralWN(Int_t code, const RooArgSet* normSet, const char* rangeName=0) const ;
virtual Int_t getCoefAnalyticalIntegral(Int_t coef, RooArgSet& allVars, RooArgSet& analVars, const char* rangeName=0) const ;
virtual Double_t coefAnalyticalIntegral(Int_t coef, Int_t code, const char* rangeName=0) const ;
virtual Bool_t forceAnalyticalInt(const RooAbsArg& dep) const ;
virtual Double_t coefficient(Int_t basisIndex) const = 0 ;
virtual RooArgSet* coefVars(Int_t coefIdx) const ;
virtual Bool_t isDirectGenSafe(const RooAbsArg& arg) const ;
protected:
Bool_t _isCopy ;
virtual Double_t evaluate() const ;
void makeCoefVarList(RooArgList&) const ;
friend class RooConvGenContext ;
Bool_t changeModel(const RooResolutionModel& newModel) ;
virtual RooAbsGenContext* genContext(const RooArgSet &vars, const RooDataSet *prototype=0,
const RooArgSet* auxProto=0, Bool_t verbose= kFALSE) const ;
RooResolutionModel* _model ;
RooRealVar* _convVar ;
RooArgSet* parseIntegrationRequest(const RooArgSet& intSet, Int_t& coefCode, RooArgSet* analVars=0) const ;
const RooRealVar* convVar() const ;
RooListProxy _convSet ;
RooArgList _basisList ;
mutable RooArgSet* _convNormSet ;
mutable TIterator* _convSetIter ;
class CacheElem : public RooAbsCacheElement {
public:
virtual ~CacheElem() {} ;
RooArgList containedArgs(Action) {
RooArgList l(_coefVarList) ;
l.add(_normList) ;
return l ;
}
RooArgList _coefVarList ;
RooArgList _normList ;
} ;
mutable RooObjCacheManager _coefNormMgr ;
mutable RooAICRegistry _codeReg ;
ClassDef(RooAbsAnaConvPdf,1)
};
#endif
Last change: Wed Jun 25 08:31:27 2008
Last generated: 2008-06-25 08:31
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.