00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016 #ifndef ROO_ADD_GEN_CONTEXT
00017 #define ROO_ADD_GEN_CONTEXT
00018
00019 #include "RooAbsGenContext.h"
00020 #include "RooArgSet.h"
00021
00022 class RooAddPdf;
00023 class RooAddModel;
00024 class RooDataSet;
00025 class RooRealIntegral;
00026 class RooAcceptReject;
00027 class TRandom;
00028 class TIterator;
00029
00030 class RooAddGenContext : public RooAbsGenContext {
00031 public:
00032 RooAddGenContext(const RooAddPdf &model, const RooArgSet &vars, const RooDataSet *prototype= 0,
00033 const RooArgSet* auxProto=0, Bool_t _verbose= kFALSE);
00034 RooAddGenContext(const RooAddModel &model, const RooArgSet &vars, const RooDataSet *prototype= 0,
00035 const RooArgSet* auxProto=0, Bool_t _verbose= kFALSE);
00036 virtual ~RooAddGenContext();
00037
00038 virtual void setProtoDataOrder(Int_t* lut) ;
00039
00040 virtual void attach(const RooArgSet& params) ;
00041
00042 virtual void printMultiline(ostream &os, Int_t content, Bool_t verbose=kFALSE, TString indent="") const ;
00043
00044 protected:
00045
00046 virtual void initGenerator(const RooArgSet &theEvent);
00047 virtual void generateEvent(RooArgSet &theEvent, Int_t remaining);
00048 void updateThresholds() ;
00049
00050 RooAddGenContext(const RooAddGenContext& other) ;
00051
00052 const RooArgSet* _vars ;
00053 RooArgSet* _pdfSet ;
00054 RooAbsPdf *_pdf ;
00055 TList _gcList ;
00056 Int_t _nComp ;
00057 Double_t* _coefThresh ;
00058 Bool_t _isModel ;
00059
00060 ClassDef(RooAddGenContext,0)
00061 };
00062
00063 #endif