Logo ROOT   6.16/01
Reference Guide
RooGenContext.h
Go to the documentation of this file.
1/*****************************************************************************
2 * Project: RooFit *
3 * Package: RooFitCore *
4 * File: $Id: RooGenContext.h,v 1.19 2007/05/11 09:11:30 verkerke Exp $
5 * Authors: *
6 * WV, Wouter Verkerke, UC Santa Barbara, verkerke@slac.stanford.edu *
7 * DK, David Kirkby, UC Irvine, dkirkby@uci.edu *
8 * *
9 * Copyright (c) 2000-2005, Regents of the University of California *
10 * and Stanford University. All rights reserved. *
11 * *
12 * Redistribution and use in source and binary forms, *
13 * with or without modification, are permitted according to the terms *
14 * listed in LICENSE (http://roofit.sourceforge.net/license.txt) *
15 *****************************************************************************/
16#ifndef ROO_GEN_CONTEXT
17#define ROO_GEN_CONTEXT
18
19#include "RooAbsGenContext.h"
20#include "RooArgSet.h"
21
22class RooAbsPdf;
23class RooDataSet;
24class RooRealIntegral;
25class RooAcceptReject;
26class TRandom;
27class RooRealVar ;
29
31public:
32 RooGenContext(const RooAbsPdf &model, const RooArgSet &vars, const RooDataSet *prototype= 0,
33 const RooArgSet* auxProto=0, Bool_t verbose=kFALSE, const RooArgSet* forceDirect=0);
34 virtual ~RooGenContext();
35
36 virtual void printMultiline(std::ostream &os, Int_t content, Bool_t verbose=kFALSE, TString indent="") const ;
37
38 virtual void attach(const RooArgSet& params) ;
39
40protected:
41
42 virtual void initGenerator(const RooArgSet &theEvent);
43 virtual void generateEvent(RooArgSet &theEvent, Int_t remaining);
44
45 RooArgSet *_cloneSet; // Clone of all nodes of input p.d.f
46 RooAbsPdf *_pdfClone; // Clone of input p.d.f
47 RooArgSet _directVars,_uniformVars,_otherVars; // List of observables generated internally, randomly, and by accept/reject sampling
48 Int_t _code; // Internal generation code
49 Double_t _maxProb, _area, _norm; // Maximum probability, p.d.f area and normalization
50 RooRealIntegral *_acceptRejectFunc; // Projection function to be passed to accept/reject sampler
51 RooAbsNumGenerator *_generator; // MC sampling generation engine
52 RooRealVar *_maxVar ; // Variable holding maximum value of p.d.f
53 TIterator *_uniIter ; // Iterator over uniform observables
54 Int_t _updateFMaxPerEvent ; // If true, maximum p.d.f value needs to be recalculated for each event
55
56 ClassDef(RooGenContext,0) // Universal context for generating toy MC data from any p.d.f
57};
58
59#endif
int Int_t
Definition: RtypesCore.h:41
const Bool_t kFALSE
Definition: RtypesCore.h:88
bool Bool_t
Definition: RtypesCore.h:59
double Double_t
Definition: RtypesCore.h:55
#define ClassDef(name, id)
Definition: Rtypes.h:324
RooAbsGenContext is the abstract base class for generator contexts of RooAbsPdf objects.
Class RooAbsNumGenerator is the abstract base class for MC event generator implementations like RooAc...
RooAbsPdf is the abstract interface for all probability density functions The class provides hybrid a...
Definition: RooAbsPdf.h:41
Class RooAcceptReject is a generic toy monte carlo generator implement the accept/reject sampling tec...
RooArgSet is a container object that can hold multiple RooAbsArg objects.
Definition: RooArgSet.h:28
RooDataSet is a container class to hold unbinned data.
Definition: RooDataSet.h:31
Class RooGenContext implement a universal generator context for all RooAbsPdf classes that do not hav...
Definition: RooGenContext.h:30
RooArgSet _otherVars
Definition: RooGenContext.h:47
Double_t _area
Definition: RooGenContext.h:49
virtual void attach(const RooArgSet &params)
Attach the cloned model to the event buffer we will be filling.
Double_t _norm
Definition: RooGenContext.h:49
RooArgSet * _cloneSet
Definition: RooGenContext.h:45
virtual void printMultiline(std::ostream &os, Int_t content, Bool_t verbose=kFALSE, TString indent="") const
Printing interface.
RooArgSet _uniformVars
Definition: RooGenContext.h:47
RooArgSet _directVars
Definition: RooGenContext.h:47
virtual void generateEvent(RooArgSet &theEvent, Int_t remaining)
Generate one event.
TIterator * _uniIter
Definition: RooGenContext.h:53
virtual ~RooGenContext()
Destructor.
RooAbsPdf * _pdfClone
Definition: RooGenContext.h:46
RooGenContext(const RooAbsPdf &model, const RooArgSet &vars, const RooDataSet *prototype=0, const RooArgSet *auxProto=0, Bool_t verbose=kFALSE, const RooArgSet *forceDirect=0)
Initialize a new context for generating events with the specified variables, using the specified PDF ...
Int_t _updateFMaxPerEvent
Definition: RooGenContext.h:54
RooRealIntegral * _acceptRejectFunc
Definition: RooGenContext.h:50
Double_t _maxProb
Definition: RooGenContext.h:49
RooAbsNumGenerator * _generator
Definition: RooGenContext.h:51
RooRealVar * _maxVar
Definition: RooGenContext.h:52
virtual void initGenerator(const RooArgSet &theEvent)
Perform one-time initialization of the generator context.
RooRealIntegral performs hybrid numerical/analytical integrals of RooAbsReal objects.
RooRealVar represents a fundamental (non-derived) real valued object.
Definition: RooRealVar.h:36
Iterator abstract base class.
Definition: TIterator.h:30
This is the base class for the ROOT Random number generators.
Definition: TRandom.h:27
Basic string class.
Definition: TString.h:131