Logo ROOT  
Reference Guide
RooNumRunningInt.h
Go to the documentation of this file.
1/*****************************************************************************
2 * Project: RooFit *
3 * *
4 * Copyright (c) 2000-2005, Regents of the University of California *
5 * and Stanford University. All rights reserved. *
6 * *
7 * Redistribution and use in source and binary forms, *
8 * with or without modification, are permitted according to the terms *
9 * listed in LICENSE (http://roofit.sourceforge.net/license.txt) *
10 *****************************************************************************/
11
12#ifndef ROONUMRUNNINGINT
13#define ROONUMRUNNINGINT
14
15#include "RooAbsCachedReal.h"
16#include "RooRealProxy.h"
17#include "RooAbsReal.h"
18#include <string>
19
21public:
22 RooNumRunningInt(const char *name, const char *title, RooAbsReal& _func, RooRealVar& _x, const char* binningName="cache");
23 RooNumRunningInt(const RooNumRunningInt& other, const char* name=0) ;
24 virtual TObject* clone(const char* newname) const { return new RooNumRunningInt(*this,newname); }
25 virtual ~RooNumRunningInt() ;
26
27protected:
28
29 class RICacheElem: public FuncCacheElem {
30 public:
31 RICacheElem(const RooNumRunningInt& ri, const RooArgSet* nset) ;
32 ~RICacheElem() ;
34 void calculate(Bool_t cdfmode) ;
35 void addRange(Int_t ixlo, Int_t ixhi, Int_t nbins) ;
36 void addPoint(Int_t ix) ;
37
42
43 } ;
44
45 friend class RICacheElem ;
46 virtual const char* binningName() const { return _binningName.c_str() ; }
47 virtual FuncCacheElem* createCache(const RooArgSet* nset) const ;
48 virtual const char* inputBaseName() const ;
49 virtual RooArgSet* actualObservables(const RooArgSet& nset) const ;
50 virtual RooArgSet* actualParameters(const RooArgSet& nset) const ;
51 virtual void fillCacheObject(FuncCacheElem& cacheFunc) const ;
52 virtual Double_t evaluate() const ;
53
54 virtual const char* payloadUniqueSuffix() const { return func.arg().aggregateCacheUniqueSuffix() ; }
55
56 RooRealProxy func ; // Proxy to functions whose running integral is calculated
57 RooRealProxy x ; // Intergrated observable
58 std::string _binningName ; // Name of binning to be used for cache histogram
59
60private:
61
62 ClassDef(RooNumRunningInt,1) // Numeric calculator for running integral of a given function
63
64};
65
66#endif
int Int_t
Definition: CPyCppyy.h:43
bool Bool_t
Definition: RtypesCore.h:63
double Double_t
Definition: RtypesCore.h:59
#define ClassDef(name, id)
Definition: Rtypes.h:325
const char * aggregateCacheUniqueSuffix() const
Definition: RooAbsArg.cxx:2291
RooAbsCachedReal is the abstract base class for functions that need or want to cache their evaluate()...
friend class FuncCacheElem
RooAbsReal is the common abstract base class for objects that represent a real value and implements f...
Definition: RooAbsReal.h:61
RooArgList is a container object that can hold multiple RooAbsArg objects.
Definition: RooArgList.h:22
RooArgSet is a container object that can hold multiple RooAbsArg objects.
Definition: RooArgSet.h:35
void addRange(Int_t ixlo, Int_t ixhi, Int_t nbins)
Fill all empty histogram bins in the range [ixlo,ixhi] where nbins is the total number of histogram b...
virtual RooArgList containedArgs(Action)
Return all RooAbsArg components contained in cache element.
void addPoint(Int_t ix)
Sample function at bin ix.
void calculate(Bool_t cdfmode)
Calculate the numeric running integral and store the result in the cache histogram provided by RooAbs...
RICacheElem(const RooNumRunningInt &ri, const RooArgSet *nset)
Construct RunningIntegral CacheElement.
Class RooNumRunningInt is an implementation of RooAbsCachedReal that represents a running integral.
RooNumRunningInt(const char *name, const char *title, RooAbsReal &_func, RooRealVar &_x, const char *binningName="cache")
Construct running integral of function '_func' over x_print from the lower bound on _x to the present...
virtual RooArgSet * actualObservables(const RooArgSet &nset) const
Return observable in nset to be cached by RooAbsCachedPdf this is always the x observable that is int...
virtual FuncCacheElem * createCache(const RooArgSet *nset) const
Create custom cache element for running integral calculations.
virtual TObject * clone(const char *newname) const
std::string _binningName
virtual const char * payloadUniqueSuffix() const
virtual Double_t evaluate() const
Dummy function that is never called.
RooRealProxy func
virtual const char * binningName() const
virtual RooArgSet * actualParameters(const RooArgSet &nset) const
Return the parameters of the cache created by RooAbsCachedPdf.
virtual void fillCacheObject(FuncCacheElem &cacheFunc) const
Fill the cache object by calling its calculate() method.
virtual ~RooNumRunningInt()
Destructor.
virtual const char * inputBaseName() const
Return unique name for RooAbsCachedPdf cache components constructed from input function name.
RooRealVar represents a variable that can be changed from the outside.
Definition: RooRealVar.h:39
const T & arg() const
Return reference to object held in proxy.
Mother of all ROOT objects.
Definition: TObject.h:37
static const std::string name("name")