00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016 #ifndef ROO_CONV_GEN_CONTEXT
00017 #define ROO_CONV_GEN_CONTEXT
00018
00019 #include "RooAbsGenContext.h"
00020 #include "RooArgSet.h"
00021
00022 class RooAbsAnaConvPdf;
00023 class RooDataSet;
00024 class RooRealIntegral;
00025 class RooAcceptReject;
00026 class TRandom;
00027 class TIterator;
00028 class RooRealVar ;
00029 class RooNumConvPdf ;
00030 class RooFFTConvPdf ;
00031
00032 class RooConvGenContext : public RooAbsGenContext {
00033 public:
00034 RooConvGenContext(const RooFFTConvPdf &model, const RooArgSet &vars, const RooDataSet *prototype= 0,
00035 const RooArgSet* auxProto=0, Bool_t _verbose= kFALSE);
00036 RooConvGenContext(const RooNumConvPdf &model, const RooArgSet &vars, const RooDataSet *prototype= 0,
00037 const RooArgSet* auxProto=0, Bool_t _verbose= kFALSE);
00038 RooConvGenContext(const RooAbsAnaConvPdf &model, const RooArgSet &vars, const RooDataSet *prototype= 0,
00039 const RooArgSet* auxProto=0, Bool_t _verbose= kFALSE);
00040 virtual ~RooConvGenContext();
00041
00042 virtual void setProtoDataOrder(Int_t* lut) ;
00043
00044 virtual void attach(const RooArgSet& params) ;
00045
00046 virtual void printMultiline(ostream &os, Int_t content, Bool_t verbose=kFALSE, TString indent="") const ;
00047
00048
00049 protected:
00050
00051 virtual void initGenerator(const RooArgSet &theEvent);
00052 virtual void generateEvent(RooArgSet &theEvent, Int_t remaining);
00053
00054 RooConvGenContext(const RooConvGenContext& other) ;
00055
00056 RooAbsGenContext* _pdfGen ;
00057 RooAbsGenContext* _modelGen ;
00058 TString _convVarName ;
00059 RooArgSet* _pdfVarsOwned ;
00060 RooArgSet* _modelVarsOwned ;
00061 RooArgSet* _pdfVars ;
00062 RooArgSet* _modelVars ;
00063 RooArgSet* _pdfCloneSet ;
00064 RooArgSet* _modelCloneSet ;
00065 RooRealVar* _cvModel ;
00066 RooRealVar* _cvPdf ;
00067 RooRealVar* _cvOut ;
00068
00069 ClassDef(RooConvGenContext,0)
00070 };
00071
00072 #endif