00001 /***************************************************************************** 00002 * Project: RooFit * 00003 * Package: RooFitCore * 00004 * File: $Id: RooEffGenContext.h,v 1.2 2007/05/11 09:11:30 verkerke Exp $ 00005 * Authors: * 00006 * GR, Gerhard Raven, NIKHEF/VU, Gerhard.Raven@nikhf.nl * 00007 * * 00008 * Copyright (c) 2005, NIKHEF. All rights reserved. * 00009 * * 00010 * Redistribution and use in source and binary forms, * 00011 * with or without modification, are permitted according to the terms * 00012 * listed in LICENSE (http://roofit.sourceforge.net/license.txt) * 00013 *****************************************************************************/ 00014 #ifndef ROO_EFF_GEN_CONTEXT 00015 #define ROO_EFF_GEN_CONTEXT 00016 00017 #include "RooAbsGenContext.h" 00018 class RooAbsPdf; 00019 class RooArgSet; 00020 class RooDataSet; 00021 class RooAbsReal; 00022 00023 class RooEffGenContext : public RooAbsGenContext { 00024 public: 00025 RooEffGenContext(const RooAbsPdf &model, 00026 const RooAbsPdf &pdf,const RooAbsReal& eff, 00027 const RooArgSet &vars, const RooDataSet *prototype= 0, 00028 const RooArgSet* auxProto=0, Bool_t verbose=kFALSE, const RooArgSet* forceDirect=0); 00029 virtual ~RooEffGenContext(); 00030 00031 protected: 00032 void initGenerator(const RooArgSet &theEvent); 00033 void generateEvent(RooArgSet &theEvent, Int_t remaining); 00034 private: 00035 RooArgSet *_cloneSet; // Internal clone of p.d.f. 00036 RooAbsReal *_eff; // Pointer to efficiency function 00037 RooAbsGenContext *_generator; // Generator context for p.d.f 00038 00039 ClassDef(RooEffGenContext,0) // Context for generating a dataset from a PDF 00040 }; 00041 #endif