ROOT logo
ROOT » ROOFIT » ROOFITCORE » RooFFTConvPdf

class RooFFTConvPdf: public RooAbsCachedPdf



 This class implement a generic one-dimensional numeric convolution of two p.d.f.
 and can convolve any two RooAbsPdfs. The class exploits the convolution theorem

       f(x) (*) g(x) --F--> f(k_i) * g(k_i)

 and calculate the convolution by calculate a Real->Complex FFT of both input p.d.fs
 multiplying the complex coefficients and performing the reverse Complex->Real FFT
 to get the result in the input space. This class using the ROOT FFT Interface to
 the (free) FFTW3 package (www.fftw.org) and requires that your ROOT installation is
 compiled with the --enable-fftw3 option (instructions for Linux follow)

 Note that the performance in terms of speed and stability of RooFFTConvPdf is
 vastly superior to that of RooNumConvPdf

 An important feature of FFT convolutions is that the observable is treated in a
 cyclical way. This is correct & desirable behavior for cyclical observables such as angles,
 but it may not be for other observables. The effect that is observed is that if
 p.d.f is zero at xMin and non-zero at xMax some spillover occurs and
 a rising tail may appear at xMin. This effect can be reduced or eliminated by
 introducing a buffer zone in the FFT calculation. If this feature is activated
 input the sampling array for the FFT calculation is extended in both directions
 and filled with repetitions of the lowest bin value and highest bin value
 respectively. The buffer bins are stripped again when the FFT output values
 are transferred to the p.d.f cache. The default buffer size is 10% of the
 observable domain size and can be changed with setBufferFraction() member function.

 This class is a caching p.d.f inheriting from RooAbsCachedPdf. If this p.d.f
 is evaluated for a particular value of x, the FFT calculate the values for the
 p.d.f at all points in observables space for the given choice of parameters,
 which are stored in the cache. Subsequent evaluations of RooFFTConvPdf with
 identical parameters will retrieve results from the cache. If one or more
 of the parameters change, the cache will be updated.

 The sampling density of the cache is controlled by the binning of the
 the convolution observable, which can be changed from RooRealVar::setBins(N)
 For good results N should be large (>1000). Additional interpolation of
 cache values may improve the result if courser binning are chosen. These can be
 set in the constructor or through the setInterpolationOrder() member function.
 For N>1000 interpolation will not substantially improve the performance.

 Additionial information on caching activities can be displayed by monitoring
 the message stream with topic "Caching" at the INFO level, i.e.
 do RooMsgService::instance().addStream(RooMsgService::INFO,Topic("Caching"))
 to see these message on stdout

 Multi-dimensional convolutions are not supported yet, but will be in the future
 as FFTW can calculate them



 Installing a copy of FFTW on Linux and compiling ROOT to use it

 1) Go to www.fftw.org and download the latest stable version (a .tar.gz file)

 If you have root access to your machine and want to make a system installation of FFTW

   2) Untar fftw-XXX.tar.gz in /tmp, cd into the untarred directory
       and type './configure' followed by 'make install'.
       This will install fftw in /usr/local/bin,lib etc...

   3) Start from a source installation of ROOT. If you now have a binary distribution,
      first download a source tar ball from root.cern.ch for your ROOT version and untar it.
      Run 'configure', following the instruction from 'configure --help' but be sure run 'configure'
      with additional flags '--enable-fftw3' and '--enable-roofit', then run 'make'


 If you do not have root access and want to make a private installation of FFTW

   2) Make a private install area for FFTW, e.g. /home/myself/fftw

   3) Untar fftw-XXX.tar.gz in /tmp, cd into the untarred directory
       and type './configure --prefix=/home/myself/fftw' followed by 'make install'.
       Substitute /home/myself/fftw with a directory of your choice. This
       procedure will install FFTW in the location designated by you

   4) Start from a source installation of ROOT. If you now have a binary distribution,
      first download a source tar ball from root.cern.ch for your ROOT version and untar it.
      Run 'configure', following the instruction from 'configure --help' but be sure run 'configure'
      with additional flags
       '--enable-fftw3',
       '--with-fftw3-incdir=/home/myself/fftw/include',
       '--width-fftw3-libdir=/home/myself/fftw/lib' and
       '--enable-roofit'
      Then run 'make'

Function Members (Methods)

public:
RooFFTConvPdf()
RooFFTConvPdf(const RooFFTConvPdf& other, const char* name = 0)
RooFFTConvPdf(const char* name, const char* title, RooRealVar& convVar, RooAbsPdf& pdf1, RooAbsPdf& pdf2, Int_t ipOrder = 2)
RooFFTConvPdf(const char* name, const char* title, RooAbsReal& pdfConvVar, RooRealVar& convVar, RooAbsPdf& pdf1, RooAbsPdf& pdf2, Int_t ipOrder = 2)
virtual~RooFFTConvPdf()
voidTObject::AbstractMethod(const char* method) const
Bool_tRooAbsArg::addOwnedComponents(const RooArgSet& comps)
voidRooAbsArg::addParameters(RooArgSet& params, const RooArgSet* nset = 0, Bool_t stripDisconnected = kTRUE) const
voidRooAbsArg::addServer(RooAbsArg& server, Bool_t valueProp = kTRUE, Bool_t shapeProp = kFALSE)
voidRooAbsArg::addServerList(RooAbsCollection& serverList, Bool_t valueProp = kTRUE, Bool_t shapeProp = kFALSE)
const char*RooAbsArg::aggregateCacheUniqueSuffix() const
virtual Double_tRooAbsReal::analyticalIntegral(Int_t code, const char* rangeName = 0) const
virtual Double_tRooAbsCachedPdf::analyticalIntegralWN(Int_t code, const RooArgSet* normSet, const char* rangeName = 0) const
virtual voidTObject::AppendPad(Option_t* option = "")
TF1*RooAbsReal::asTF(const RooArgList& obs, const RooArgList& pars = RooArgList(), const RooArgSet& nset = RooArgSet()) const
voidRooAbsArg::attachDataSet(const RooAbsData& set)
voidRooAbsArg::attachDataStore(const RooAbsDataStore& set)
const set<std::string>&RooAbsArg::attributes() const
RooAbsFunc*RooAbsReal::bindVars(const RooArgSet& vars, const RooArgSet* nset = 0, Bool_t clipInvalid = kFALSE) const
voidRooAbsArg::branchNodeServerList(RooAbsCollection* list, const RooAbsArg* arg = 0, Bool_t recurseNonDerived = kFALSE) const
virtual voidTObject::Browse(TBrowser* b)
Double_tbufferFraction() const
RooFFTConvPdf::BufStratbufferStrategy() const
const RooArgSet&cacheObservables() const
virtual const char*RooAbsArg::cacheUniqueSuffix() const
Bool_tRooAbsPdf::canBeExtended() const
voidRooAbsArg::changeServer(RooAbsArg& server, Bool_t valueProp, Bool_t shapeProp)
Bool_tRooAbsArg::checkDependents(const RooArgSet* nset) const
virtual Bool_tRooAbsArg::checkObservables(const RooArgSet* nset) const
virtual RooFitResult*RooAbsPdf::chi2FitTo(RooDataHist& data, const RooLinkedList& cmdList)
static TClass*Class()
virtual const char*TObject::ClassName() const
virtual voidTNamed::Clear(Option_t* option = "")
static voidRooAbsPdf::clearEvalError()
static voidRooAbsReal::clearEvalErrorLog()
voidRooAbsArg::clearShapeDirty() const
voidRooAbsArg::clearValueDirty() const
TIterator*RooAbsArg::clientIterator() const
virtual TObject*clone(const char* newname) const
virtual TObject*RooAbsArg::Clone(const char* newname = 0) const
virtual RooAbsArg*RooAbsArg::cloneTree(const char* newname = 0) const
virtual Int_tRooAbsArg::Compare(const TObject* other) const
virtual voidRooAbsArg::constOptimizeTestStatistic(RooAbsArg::ConstOpCode opcode)
virtual voidTNamed::Copy(TObject& named) const
static voidRooAbsArg::copyList(TList& dest, const TList& source)
static UInt_tRooAbsArg::crc32(const char* data)
RooAbsReal*RooAbsPdf::createCdf(const RooArgSet& iset, const RooArgSet& nset = RooArgSet())
RooAbsReal*RooAbsPdf::createCdf(const RooArgSet& iset, const RooCmdArg& arg1, const RooCmdArg& arg2 = RooCmdArg::none(), const RooCmdArg& arg3 = RooCmdArg::none(), const RooCmdArg& arg4 = RooCmdArg::none(), const RooCmdArg& arg5 = RooCmdArg::none(), const RooCmdArg& arg6 = RooCmdArg::none(), const RooCmdArg& arg7 = RooCmdArg::none(), const RooCmdArg& arg8 = RooCmdArg::none())
virtual RooAbsReal*RooAbsPdf::createChi2(RooDataSet& data, const RooLinkedList& cmdList)
virtual RooAbsReal*RooAbsPdf::createChi2(RooDataHist& data, const RooCmdArg& arg1 = RooCmdArg::none(), const RooCmdArg& arg2 = RooCmdArg::none(), const RooCmdArg& arg3 = RooCmdArg::none(), const RooCmdArg& arg4 = RooCmdArg::none(), const RooCmdArg& arg5 = RooCmdArg::none(), const RooCmdArg& arg6 = RooCmdArg::none(), const RooCmdArg& arg7 = RooCmdArg::none(), const RooCmdArg& arg8 = RooCmdArg::none())
virtual RooAbsArg*RooAbsReal::createFundamental(const char* newname = 0) const
TH1*RooAbsReal::createHistogram(const char* name, const RooAbsRealLValue& xvar, RooLinkedList& argList) const
TH1*RooAbsReal::createHistogram(const char* varNameList, Int_t xbins = 0, Int_t ybins = 0, Int_t zbins = 0) const
TH1*RooAbsReal::createHistogram(const char* name, const RooAbsRealLValue& xvar, const RooCmdArg& arg1 = RooCmdArg::none(), const RooCmdArg& arg2 = RooCmdArg::none(), const RooCmdArg& arg3 = RooCmdArg::none(), const RooCmdArg& arg4 = RooCmdArg::none(), const RooCmdArg& arg5 = RooCmdArg::none(), const RooCmdArg& arg6 = RooCmdArg::none(), const RooCmdArg& arg7 = RooCmdArg::none(), const RooCmdArg& arg8 = RooCmdArg::none()) const
RooAbsReal*RooAbsReal::createIntegral(const RooArgSet& iset, const char* rangeName) const
RooAbsReal*RooAbsReal::createIntegral(const RooArgSet& iset, const RooArgSet& nset, const char* rangeName = 0) const
RooAbsReal*RooAbsReal::createIntegral(const RooArgSet& iset, const RooNumIntConfig& cfg, const char* rangeName = 0) const
RooAbsReal*RooAbsReal::createIntegral(const RooArgSet& iset, const RooArgSet& nset, const RooNumIntConfig& cfg, const char* rangeName = 0) const
virtual RooAbsReal*RooAbsReal::createIntegral(const RooArgSet& iset, const RooArgSet* nset = 0, const RooNumIntConfig* cfg = 0, const char* rangeName = 0) const
RooAbsReal*RooAbsReal::createIntegral(const RooArgSet& iset, const RooCmdArg& arg1, const RooCmdArg& arg2 = RooCmdArg::none(), const RooCmdArg& arg3 = RooCmdArg::none(), const RooCmdArg& arg4 = RooCmdArg::none(), const RooCmdArg& arg5 = RooCmdArg::none(), const RooCmdArg& arg6 = RooCmdArg::none(), const RooCmdArg& arg7 = RooCmdArg::none(), const RooCmdArg& arg8 = RooCmdArg::none()) const
RooAbsReal*RooAbsReal::createIntRI(const RooArgSet& iset, const RooArgSet& nset = RooArgSet())
virtual RooAbsReal*RooAbsPdf::createNLL(RooAbsData& data, const RooLinkedList& cmdList)
virtual RooAbsReal*RooAbsPdf::createNLL(RooAbsData& data, const RooCmdArg& arg1 = RooCmdArg::none(), const RooCmdArg& arg2 = RooCmdArg::none(), const RooCmdArg& arg3 = RooCmdArg::none(), const RooCmdArg& arg4 = RooCmdArg::none(), const RooCmdArg& arg5 = RooCmdArg::none(), const RooCmdArg& arg6 = RooCmdArg::none(), const RooCmdArg& arg7 = RooCmdArg::none(), const RooCmdArg& arg8 = RooCmdArg::none())
const RooAbsReal*RooAbsReal::createPlotProjection(const RooArgSet& depVars, const RooArgSet& projVars) const
const RooAbsReal*RooAbsReal::createPlotProjection(const RooArgSet& depVars, const RooArgSet& projVars, RooArgSet*& cloneSet) const
const RooAbsReal*RooAbsReal::createPlotProjection(const RooArgSet& dependentVars, const RooArgSet* projectedVars, RooArgSet*& cloneSet, const char* rangeName = 0, const RooArgSet* condObs = 0) const
virtual RooAbsReal*RooAbsReal::createProfile(const RooArgSet& paramsOfInterest)
virtual RooAbsPdf*RooAbsPdf::createProjection(const RooArgSet& iset)
RooAbsReal*RooAbsReal::createRunningIntegral(const RooArgSet& iset, const RooArgSet& nset = RooArgSet())
RooAbsReal*RooAbsReal::createRunningIntegral(const RooArgSet& iset, const RooCmdArg& arg1, const RooCmdArg& arg2 = RooCmdArg::none(), const RooCmdArg& arg3 = RooCmdArg::none(), const RooCmdArg& arg4 = RooCmdArg::none(), const RooCmdArg& arg5 = RooCmdArg::none(), const RooCmdArg& arg6 = RooCmdArg::none(), const RooCmdArg& arg7 = RooCmdArg::none(), const RooCmdArg& arg8 = RooCmdArg::none())
RooAbsReal*RooAbsPdf::createScanCdf(const RooArgSet& iset, const RooArgSet& nset, Int_t numScanBins, Int_t intOrder)
RooAbsReal*RooAbsReal::createScanRI(const RooArgSet& iset, const RooArgSet& nset, Int_t numScanBins, Int_t intOrder)
virtual Double_tRooAbsReal::defaultErrorLevel() const
static RooNumGenConfig*RooAbsPdf::defaultGeneratorConfig()
static RooNumIntConfig*RooAbsReal::defaultIntegratorConfig()
virtual Int_tRooAbsArg::defaultPrintContents(Option_t* opt) const
static ostream&RooPrintable::defaultPrintStream(ostream* os = 0)
virtual RooPrintable::StyleOptionRooPrintable::defaultPrintStyle(Option_t* opt) const
virtual voidTObject::Delete(Option_t* option = "")MENU
Bool_tRooAbsArg::dependentOverlaps(const RooAbsData* dset, const RooAbsArg& testArg) const
Bool_tRooAbsArg::dependentOverlaps(const RooArgSet* depList, const RooAbsArg& testArg) const
Bool_tRooAbsArg::dependsOn(const RooAbsCollection& serverList, const RooAbsArg* ignoreArg = 0, Bool_t valueOnly = kFALSE) const
Bool_tRooAbsArg::dependsOn(const RooAbsArg& server, const RooAbsArg* ignoreArg = 0, Bool_t valueOnly = kFALSE) const
Bool_tRooAbsArg::dependsOnValue(const RooAbsCollection& serverList, const RooAbsArg* ignoreArg = 0) const
Bool_tRooAbsArg::dependsOnValue(const RooAbsArg& server, const RooAbsArg* ignoreArg = 0) const
RooDerivative*RooAbsReal::derivative(RooRealVar& obs, Int_t order = 1, Double_t eps = 0.001)
RooDerivative*RooAbsReal::derivative(RooRealVar& obs, const RooArgSet& normSet, Int_t order, Double_t eps = 0.001)
virtual Int_tTObject::DistancetoPrimitive(Int_t px, Int_t py)
virtual voidTObject::Draw(Option_t* option = "")
virtual voidTObject::DrawClass() constMENU
virtual TObject*TObject::DrawClone(Option_t* option = "") constMENU
virtual voidTObject::Dump() constMENU
virtual voidTObject::Error(const char* method, const char* msgfmt) const
static Bool_tRooAbsPdf::evalError()
static RooAbsReal::EvalErrorIterRooAbsReal::evalErrorIter()
static RooAbsReal::ErrorLoggingModeRooAbsReal::evalErrorLoggingMode()
virtual voidTObject::Execute(const char* method, const char* params, Int_t* error = 0)
virtual voidTObject::Execute(TMethod* method, TObjArray* params, Int_t* error = 0)
virtual voidTObject::ExecuteEvent(Int_t event, Int_t px, Int_t py)
virtual Double_tRooAbsPdf::expectedEvents(const RooArgSet* nset) const
virtual Double_tRooAbsPdf::expectedEvents(const RooArgSet& nset) const
RooExpensiveObjectCache&RooAbsArg::expensiveObjectCache() const
virtual Double_tRooAbsPdf::extendedTerm(UInt_t observedEvents, const RooArgSet* nset = 0) const
virtual RooAbsPdf::ExtendModeRooAbsPdf::extendMode() const
virtual voidTObject::Fatal(const char* method, const char* msgfmt) const
virtual voidTNamed::FillBuffer(char*& buffer)
RooDataHist*RooAbsReal::fillDataHist(RooDataHist* hist, const RooArgSet* nset, Double_t scaleFactor, Bool_t correctForBinVolume = kFALSE, Bool_t showProgress = kFALSE) const
TH1*RooAbsReal::fillHistogram(TH1* hist, const RooArgList& plotVars, Double_t scaleFactor = 1, const RooArgSet* projectedVars = 0, Bool_t scaling = kTRUE, const RooArgSet* condObs = 0, Bool_t setError = kTRUE) const
Bool_tRooAbsArg::findConstantNodes(const RooArgSet& observables, RooArgSet& cacheList)
Bool_tRooAbsArg::findConstantNodes(const RooArgSet& observables, RooArgSet& cacheList, RooLinkedList& processedNodes)
RooAbsArg*RooAbsArg::findNewServer(const RooAbsCollection& newSet, Bool_t nameChange) const
virtual TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
Double_tRooAbsReal::findRoot(RooRealVar& x, Double_t xmin, Double_t xmax, Double_t yval)
RooAbsArg*RooAbsArg::findServer(const char* name) const
RooAbsArg*RooAbsArg::findServer(const RooAbsArg& arg) const
RooAbsArg*RooAbsArg::findServer(Int_t index) const
virtual RooFitResult*RooAbsPdf::fitTo(RooAbsData& data, const RooLinkedList& cmdList)
virtual RooFitResult*RooAbsPdf::fitTo(RooAbsData& data, const RooCmdArg& arg1 = RooCmdArg::none(), const RooCmdArg& arg2 = RooCmdArg::none(), const RooCmdArg& arg3 = RooCmdArg::none(), const RooCmdArg& arg4 = RooCmdArg::none(), const RooCmdArg& arg5 = RooCmdArg::none(), const RooCmdArg& arg6 = RooCmdArg::none(), const RooCmdArg& arg7 = RooCmdArg::none(), const RooCmdArg& arg8 = RooCmdArg::none())
virtual voidRooAbsReal::fixAddCoefNormalization(const RooArgSet& addNormSet = RooArgSet(), Bool_t force = kTRUE)
virtual voidRooAbsReal::fixAddCoefRange(const char* rangeName = 0, Bool_t force = kTRUE)
virtual Bool_tRooAbsCachedPdf::forceAnalyticalInt(const RooAbsArg& dep) const
virtual voidRooAbsReal::forceNumInt(Bool_t flag = kTRUE)
RooFunctor*RooAbsReal::functor(const RooArgList& obs, const RooArgList& pars = RooArgList(), const RooArgSet& nset = RooArgSet()) const
RooDataSet*RooAbsPdf::generate(RooAbsPdf::GenSpec&) const
RooDataSet*RooAbsPdf::generate(const RooArgSet& whatVars, Int_t nEvents = 0, Bool_t verbose = kFALSE) const
RooDataSet*RooAbsPdf::generate(const RooArgSet& whatVars, const RooDataSet& prototype, Int_t nEvents = 0, Bool_t verbose = kFALSE, Bool_t randProtoOrder = kFALSE, Bool_t resampleProto = kFALSE) const
RooDataSet*RooAbsPdf::generate(const RooArgSet& whatVars, Int_t nEvents, const RooCmdArg& arg1, const RooCmdArg& arg2 = RooCmdArg::none(), const RooCmdArg& arg3 = RooCmdArg::none(), const RooCmdArg& arg4 = RooCmdArg::none(), const RooCmdArg& arg5 = RooCmdArg::none())
RooDataSet*RooAbsPdf::generate(const RooArgSet& whatVars, const RooCmdArg& arg1 = RooCmdArg::none(), const RooCmdArg& arg2 = RooCmdArg::none(), const RooCmdArg& arg3 = RooCmdArg::none(), const RooCmdArg& arg4 = RooCmdArg::none(), const RooCmdArg& arg5 = RooCmdArg::none(), const RooCmdArg& arg6 = RooCmdArg::none())
RooDataHist*RooAbsPdf::generateBinned(const RooArgSet& whatVars, Double_t nEvents, Bool_t expectedData = kFALSE, Bool_t extended = kFALSE) const
RooDataHist*RooAbsPdf::generateBinned(const RooArgSet& whatVars, Double_t nEvents, const RooCmdArg& arg1, const RooCmdArg& arg2 = RooCmdArg::none(), const RooCmdArg& arg3 = RooCmdArg::none(), const RooCmdArg& arg4 = RooCmdArg::none(), const RooCmdArg& arg5 = RooCmdArg::none())
RooDataHist*RooAbsPdf::generateBinned(const RooArgSet& whatVars, const RooCmdArg& arg1 = RooCmdArg::none(), const RooCmdArg& arg2 = RooCmdArg::none(), const RooCmdArg& arg3 = RooCmdArg::none(), const RooCmdArg& arg4 = RooCmdArg::none(), const RooCmdArg& arg5 = RooCmdArg::none(), const RooCmdArg& arg6 = RooCmdArg::none())
virtual voidRooAbsPdf::generateEvent(Int_t code)
virtual RooDataSet*RooAbsPdf::generateSimGlobal(const RooArgSet& whatVars, Int_t nEvents)
virtual RooArgSet*RooAbsPdf::getAllConstraints(const RooArgSet& observables, RooArgSet& constrainedParams, Bool_t stripDisconnected = kTRUE) const
virtual Int_tRooAbsReal::getAnalyticalIntegral(RooArgSet& allVars, RooArgSet& analVars, const char* rangeName = 0) const
virtual Int_tRooAbsCachedPdf::getAnalyticalIntegralWN(RooArgSet& allVars, RooArgSet& analVars, const RooArgSet* normSet, const char* rangeName = 0) const
Bool_tRooAbsArg::getAttribute(const Text_t* name) const
RooDataHist*RooAbsCachedPdf::getCacheHist(const RooArgSet& nset) const
RooDataHist*RooAbsCachedPdf::getCacheHist(const RooArgSet* nset = 0) const
RooAbsPdf*RooAbsCachedPdf::getCachePdf(const RooArgSet& nset) const
RooAbsPdf*RooAbsCachedPdf::getCachePdf(const RooArgSet* nset = 0) const
RooLinkedListRooAbsArg::getCloningAncestors() const
RooArgSet*RooAbsArg::getComponents() const
virtual RooArgSet*RooAbsPdf::getConstraints(const RooArgSet&, RooArgSet&, Bool_t) const
RooArgSet*RooAbsArg::getDependents(const RooArgSet& set) const
RooArgSet*RooAbsArg::getDependents(const RooAbsData* set) const
RooArgSet*RooAbsArg::getDependents(const RooArgSet* depList) const
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
virtual Int_tRooAbsPdf::getGenerator(const RooArgSet& directVars, RooArgSet& generateVars, Bool_t staticInitOK = kTRUE) const
const RooNumGenConfig*RooAbsPdf::getGeneratorConfig() const
virtual const char*TObject::GetIconName() const
const RooNumIntConfig*RooAbsReal::getIntegratorConfig() const
RooNumIntConfig*RooAbsReal::getIntegratorConfig()
Int_tRooAbsCachedPdf::getInterpolationOrder() const
virtual Double_tRooAbsPdf::getLogVal(const RooArgSet* set = 0) const
virtual Int_tgetMaxVal(const RooArgSet& vars) const
virtual const char*TNamed::GetName() const
Double_tRooAbsPdf::getNorm(const RooArgSet& nset) const
virtual Double_tRooAbsPdf::getNorm(const RooArgSet* set = 0) const
virtual const RooAbsReal*RooAbsPdf::getNormObj(const RooArgSet* set, const RooArgSet* iset, const TNamed* rangeName = 0) const
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
RooArgSet*RooAbsArg::getObservables(const RooAbsData* data) const
RooArgSet*RooAbsArg::getObservables(const RooAbsData& data) const
RooArgSet*RooAbsArg::getObservables(const RooArgSet& set, Bool_t valueOnly = kTRUE) const
RooArgSet*RooAbsArg::getObservables(const RooArgSet* depList, Bool_t valueOnly = kTRUE) const
virtual Option_t*TObject::GetOption() const
RooArgSet*RooAbsArg::getParameters(const RooAbsData* data, Bool_t stripDisconnected = kTRUE) const
RooArgSet*RooAbsArg::getParameters(const RooAbsData& data, Bool_t stripDisconnected = kTRUE) const
RooArgSet*RooAbsArg::getParameters(const RooArgSet& set, Bool_t stripDisconnected = kTRUE) const
virtual RooArgSet*RooAbsArg::getParameters(const RooArgSet* depList, Bool_t stripDisconnected = kTRUE) const
const char*RooAbsReal::getPlotLabel() const
Double_tRooAbsReal::getPropagatedError(const RooFitResult& fr)
const Text_t*RooAbsArg::getStringAttribute(const Text_t* key) const
virtual const char*TNamed::GetTitle() const
TStringRooAbsReal::getTitle(Bool_t appendUnit = kFALSE) const
Bool_tRooAbsArg::getTransientAttribute(const Text_t* name) const
virtual UInt_tTObject::GetUniqueID() const
const Text_t*RooAbsReal::getUnit() const
virtual Double_tRooAbsCachedPdf::getVal(const RooArgSet* set = 0) const
RooArgSet*RooAbsArg::getVariables(Bool_t stripDisconnected = kTRUE) const
voidRooAbsArg::graphVizTree(const char* fileName, const char* delimiter = "\n", bool useTitle = false, bool useLatex = false)
voidRooAbsArg::graphVizTree(ostream& os, const char* delimiter = "\n", bool useTitle = false, bool useLatex = false)
virtual Bool_tTObject::HandleTimer(TTimer* timer)
Bool_tRooAbsArg::hasClients() const
virtual ULong_tTNamed::Hash() const
virtual Bool_tRooAbsArg::hasRange(const char*) const
RooGenFunction*RooAbsReal::iGenFunction(RooRealVar& x, const RooArgSet& nset = RooArgSet())
RooMultiGenFunction*RooAbsReal::iGenFunction(const RooArgSet& observables, const RooArgSet& nset = RooArgSet())
virtual Bool_tRooAbsArg::importWorkspaceHook(RooWorkspace&)
virtual voidTObject::Info(const char* method, const char* msgfmt) const
virtual Bool_tTObject::InheritsFrom(const char* classname) const
virtual Bool_tTObject::InheritsFrom(const TClass* cl) const
virtual voidRooAbsPdf::initGenerator(Int_t code)
virtual Bool_tRooAbsArg::inRange(const char*) const
virtual voidTObject::Inspect() constMENU
Int_tRooAbsPdf::intOrderNormValueCaching() const
voidTObject::InvertBit(UInt_t f)
virtual TClass*IsA() const
Bool_tRooAbsArg::isCloneOf(const RooAbsArg& other) const
Bool_tRooAbsArg::isConstant() const
virtual Bool_tRooAbsArg::isDerived() const
virtual Bool_tRooAbsPdf::isDirectGenSafe(const RooAbsArg& arg) const
virtual Bool_tTObject::IsEqual(const TObject* obj) const
virtual Bool_tTObject::IsFolder() const
virtual Bool_tRooAbsArg::isFundamental() const
virtual Bool_tRooAbsArg::isLValue() const
Bool_tTObject::IsOnHeap() const
Bool_tRooAbsArg::isShapeDirty() const
Bool_tRooAbsArg::isShapeServer(const RooAbsArg& arg) const
Bool_tRooAbsArg::isShapeServer(const char* name) const
virtual Bool_tRooAbsArg::IsSortable() const
Bool_tRooAbsArg::isValueDirty() const
Bool_tRooAbsArg::isValueServer(const RooAbsArg& arg) const
Bool_tRooAbsArg::isValueServer(const char* name) const
Bool_tTObject::IsZombie() const
voidRooAbsArg::leafNodeServerList(RooAbsCollection* list, const RooAbsArg* arg = 0, Bool_t recurseNonDerived = kFALSE) const
voidRooAbsReal::logEvalError(const char* message, const char* serverValueString = 0) const
static voidRooAbsReal::logEvalError(const RooAbsReal* originator, const char* origName, const char* message, const char* serverValueString = 0)
virtual voidTNamed::ls(Option_t* option = "") const
virtual Double_tmaxVal(Int_t code) const
voidTObject::MayNotUse(const char* method) const
RooMoment*RooAbsReal::mean(RooRealVar& obs)
RooMoment*RooAbsReal::mean(RooRealVar& obs, const RooArgSet& nset)
Int_tRooAbsPdf::minDimNormValueCaching() const
virtual Int_tRooAbsReal::minTrialSamples(const RooArgSet&) const
RooMoment*RooAbsReal::moment(RooRealVar& obs, Int_t order, Bool_t central, Bool_t takeRoot)
RooMoment*RooAbsReal::moment(RooRealVar& obs, const RooArgSet& normObs, Int_t order, Bool_t central, Bool_t takeRoot, Bool_t intNormObs)
Bool_tRooAbsPdf::mustBeExtended() const
static voidRooPrintable::nameFieldLength(Int_t newLen)
const char*RooAbsPdf::normRange() const
virtual Bool_tTObject::Notify()
Int_tRooAbsArg::numCaches() const
static Int_tRooAbsReal::numEvalErrorItems()
static Int_tRooAbsReal::numEvalErrors()
Bool_tRooAbsArg::observableOverlaps(const RooAbsData* dset, const RooAbsArg& testArg) const
Bool_tRooAbsArg::observableOverlaps(const RooArgSet* depList, const RooAbsArg& testArg) const
voidTObject::Obsolete(const char* method, const char* asOfVers, const char* removedFromVers) const
static voidTObject::operator delete(void* ptr)
static voidTObject::operator delete(void* ptr, void* vp)
static voidTObject::operator delete[](void* ptr)
static voidTObject::operator delete[](void* ptr, void* vp)
void*TObject::operator new(size_t sz)
void*TObject::operator new(size_t sz, void* vp)
void*TObject::operator new[](size_t sz)
void*TObject::operator new[](size_t sz, void* vp)
TNamed&TNamed::operator=(const TNamed& rhs)
Bool_tRooAbsReal::operator==(Double_t value) const
virtual Bool_tRooAbsReal::operator==(const RooAbsArg& other)
RooAbsArg::OperModeRooAbsArg::operMode() const
virtual voidRooAbsArg::optimizeCacheMode(const RooArgSet& observables)
virtual voidRooAbsArg::optimizeCacheMode(const RooArgSet& observables, RooArgSet& optNodes, RooLinkedList& processedNodes)
Bool_tRooAbsArg::overlaps(const RooAbsArg& testArg, Bool_t valueOnly = kFALSE) const
const RooArgSet*RooAbsArg::ownedComponents() const
virtual voidTObject::Paint(Option_t* option = "")
virtual RooPlot*RooAbsPdf::paramOn(RooPlot* frame, const RooAbsData* data, const char* label = "", Int_t sigDigits = 2, Option_t* options = "NELU", Double_t xmin = 0.50, Double_t xmax = 0.99, Double_t ymax = 0.95)
virtual RooPlot*RooAbsPdf::paramOn(RooPlot* frame, const RooCmdArg& arg1 = RooCmdArg::none(), const RooCmdArg& arg2 = RooCmdArg::none(), const RooCmdArg& arg3 = RooCmdArg::none(), const RooCmdArg& arg4 = RooCmdArg::none(), const RooCmdArg& arg5 = RooCmdArg::none(), const RooCmdArg& arg6 = RooCmdArg::none(), const RooCmdArg& arg7 = RooCmdArg::none(), const RooCmdArg& arg8 = RooCmdArg::none())
virtual RooPlot*RooAbsPdf::plotOn(RooPlot* frame, const RooCmdArg& arg1 = RooCmdArg::none(), const RooCmdArg& arg2 = RooCmdArg::none(), const RooCmdArg& arg3 = RooCmdArg::none(), const RooCmdArg& arg4 = RooCmdArg::none(), const RooCmdArg& arg5 = RooCmdArg::none(), const RooCmdArg& arg6 = RooCmdArg::none(), const RooCmdArg& arg7 = RooCmdArg::none(), const RooCmdArg& arg8 = RooCmdArg::none(), const RooCmdArg& arg9 = RooCmdArg::none(), const RooCmdArg& arg10 = RooCmdArg::none()) const
virtual list<Double_t>*RooAbsReal::plotSamplingHint(RooAbsRealLValue&, Double_t, Double_t) const
virtual RooPlot*RooAbsReal::plotSliceOn(RooPlot* frame, const RooArgSet& sliceSet, Option_t* drawOptions = "L", Double_t scaleFactor = 1.0, RooAbsReal::ScaleType stype = Relative, const RooAbsData* projData = 0) const
virtual voidTObject::Pop()
virtual voidRooAbsReal::preferredObservableScanOrder(const RooArgSet& obs, RooArgSet& orderedObs) const
RooAbsPdf::GenSpec*RooAbsPdf::prepareMultiGen(const RooArgSet& whatVars, const RooCmdArg& arg1 = RooCmdArg::none(), const RooCmdArg& arg2 = RooCmdArg::none(), const RooCmdArg& arg3 = RooCmdArg::none(), const RooCmdArg& arg4 = RooCmdArg::none(), const RooCmdArg& arg5 = RooCmdArg::none(), const RooCmdArg& arg6 = RooCmdArg::none())
virtual voidRooAbsArg::Print(Option_t* options = 0) const
virtual voidRooAbsArg::printAddress(ostream& os) const
virtual voidRooAbsArg::printArgs(ostream& os) const
virtual voidRooAbsArg::printClassName(ostream& os) const
voidRooAbsArg::printCompactTree(const char* indent = "", const char* fileName = 0, const char* namePat = 0, RooAbsArg* client = 0)
voidRooAbsArg::printCompactTree(ostream& os, const char* indent = "", const char* namePat = 0, RooAbsArg* client = 0)
virtual voidRooAbsArg::printCompactTreeHook(ostream& os, const char* ind = "")
voidRooAbsArg::printComponentTree(const char* indent = "", const char* namePat = 0, Int_t nLevel = 999)
voidRooAbsArg::printDirty(Bool_t depth = kTRUE) const
static voidRooAbsReal::printEvalErrors(ostream& os = std::cout, Int_t maxPerNode = 10000000)
virtual voidRooPrintable::printExtras(ostream& os) const
virtual voidprintMetaArgs(ostream& os) const
virtual voidRooAbsPdf::printMultiline(ostream& os, Int_t contents, Bool_t verbose = kFALSE, TString indent = "") const
virtual voidRooAbsArg::printName(ostream& os) const
virtual voidRooPrintable::printStream(ostream& os, Int_t contents, RooPrintable::StyleOption style, TString indent = "") const
virtual voidRooAbsArg::printTitle(ostream& os) const
virtual voidRooAbsArg::printTree(ostream& os, TString indent = "") const
virtual voidRooAbsPdf::printValue(ostream& os) const
virtual Int_tTObject::Read(const char* name)
virtual Bool_tRooAbsReal::readFromStream(istream& is, Bool_t compact, Bool_t verbose = kFALSE)
Bool_tRooAbsArg::recursiveCheckDependents(const RooArgSet* nset) const
Bool_tRooAbsArg::recursiveCheckObservables(const RooArgSet* nset) const
Bool_tRooAbsArg::recursiveRedirectServers(const RooAbsCollection& newServerList, Bool_t mustReplaceAll = kFALSE, Bool_t nameChange = kFALSE, Bool_t recurseInNewSet = kTRUE)
virtual voidTObject::RecursiveRemove(TObject* obj)
Bool_tRooAbsArg::redirectServers(const RooAbsCollection& newServerList, Bool_t mustReplaceAll = kFALSE, Bool_t nameChange = kFALSE, Bool_t isRecursionStep = kFALSE)
voidRooAbsArg::registerCache(RooAbsCache& cache)
voidRooAbsArg::removeServer(RooAbsArg& server, Bool_t force = kFALSE)
voidRooAbsArg::replaceServer(RooAbsArg& oldServer, RooAbsArg& newServer, Bool_t valueProp, Bool_t shapeProp)
voidTObject::ResetBit(UInt_t f)
virtual voidRooAbsPdf::resetErrorCounters(Int_t resetValue = 10)
virtual voidTObject::SaveAs(const char* filename = "", Option_t* option = "") constMENU
virtual voidTObject::SavePrimitive(ostream& out, Option_t* option = "")
virtual Bool_tRooAbsCachedPdf::selfNormalized() const
TIterator*RooAbsArg::serverIterator() const
virtual voidRooAbsArg::serverNameChangeHook(const RooAbsArg*, const RooAbsArg*)
static voidRooAbsArg::setACleanADirty(Bool_t flag)
voidRooAbsArg::setAttribute(const Text_t* name, Bool_t value = kTRUE)
voidTObject::SetBit(UInt_t f)
voidTObject::SetBit(UInt_t f, Bool_t set)
voidsetBufferFraction(Double_t frac)
voidsetBufferStrategy(RooFFTConvPdf::BufStrat bs)
static voidRooAbsReal::setCacheCheck(Bool_t flag)
voidsetCacheObservables(const RooArgSet& obs)
virtual Bool_tRooAbsReal::setData(RooAbsData&, Bool_t = kTRUE)
static voidRooAbsArg::setDirtyInhibit(Bool_t flag)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
static voidRooAbsReal::setEvalErrorLoggingMode(RooAbsReal::ErrorLoggingMode m)
voidRooAbsArg::setExpensiveObjectCache(RooExpensiveObjectCache& cache)
voidRooAbsPdf::setGeneratorConfig()
voidRooAbsPdf::setGeneratorConfig(const RooNumGenConfig& config)
voidRooAbsReal::setIntegratorConfig()
voidRooAbsReal::setIntegratorConfig(const RooNumIntConfig& config)
voidRooAbsCachedPdf::setInterpolationOrder(Int_t order)
virtual voidTNamed::SetName(const char* name)MENU
virtual voidTNamed::SetNameTitle(const char* name, const char* title)
voidRooAbsPdf::setNormRange(const char* rangeName)
voidRooAbsPdf::setNormRangeOverride(const char* rangeName)
voidRooAbsPdf::setNormValueCaching(Int_t minNumIntDim, Int_t ipOrder = 2)
static voidTObject::SetObjectStat(Bool_t stat)
voidRooAbsArg::setOperMode(RooAbsArg::OperMode mode, Bool_t recurseADirty = kTRUE)
voidRooAbsReal::setPlotLabel(const char* label)
voidRooAbsArg::setProhibitServerRedirect(Bool_t flag)
voidRooAbsArg::setShapeDirty() const
voidsetShift(Double_t val1, Double_t val2)
voidRooAbsArg::setStringAttribute(const Text_t* key, const Text_t* value)
virtual voidTNamed::SetTitle(const char* title = "")MENU
voidRooAbsPdf::setTraceCounter(Int_t value, Bool_t allNodes = kFALSE)
voidRooAbsArg::setTransientAttribute(const Text_t* name, Bool_t value = kTRUE)
virtual voidTObject::SetUniqueID(UInt_t uid)
voidRooAbsReal::setUnit(const char* unit)
voidRooAbsArg::setValueDirty() const
TIterator*RooAbsArg::shapeClientIterator() const
virtual voidShowMembers(TMemberInspector& insp)
RooMoment*RooAbsReal::sigma(RooRealVar& obs)
RooMoment*RooAbsReal::sigma(RooRealVar& obs, const RooArgSet& nset)
virtual Int_tTNamed::Sizeof() const
RooNumGenConfig*RooAbsPdf::specialGeneratorConfig() const
RooNumGenConfig*RooAbsPdf::specialGeneratorConfig(Bool_t createOnTheFly)
RooNumIntConfig*RooAbsReal::specialIntegratorConfig() const
RooNumIntConfig*RooAbsReal::specialIntegratorConfig(Bool_t createOnTheFly)
virtual voidStreamer(TBuffer& b)
voidStreamerNVirtual(TBuffer& b)
const map<std::string,std::string>&RooAbsArg::stringAttributes() const
virtual voidTObject::SysError(const char* method, const char* msgfmt) const
Bool_tTObject::TestBit(UInt_t f) const
Int_tTObject::TestBits(UInt_t f) const
virtual Bool_tRooAbsPdf::traceEvalHook(Double_t value) const
Bool_tRooAbsPdf::traceEvalPdf(Double_t value) const
const set<std::string>&RooAbsArg::transientAttributes() const
voidRooAbsArg::treeNodeServerList(RooAbsCollection* list, const RooAbsArg* arg = 0, Bool_t doBranch = kTRUE, Bool_t doLeaf = kTRUE, Bool_t valueOnly = kFALSE, Bool_t recurseNonDerived = kFALSE) const
voidRooAbsArg::unRegisterCache(RooAbsCache& cache)
virtual voidTObject::UseCurrentStyle()
TIterator*RooAbsArg::valueClientIterator() const
static voidRooAbsArg::verboseDirty(Bool_t flag)
static intRooAbsPdf::verboseEval()
static voidRooAbsPdf::verboseEval(Int_t stat)
virtual voidTObject::Warning(const char* method, const char* msgfmt) const
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0)
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0) const
virtual voidRooAbsReal::writeToStream(ostream& os, Bool_t compact) const
protected:
virtual RooArgSet*actualObservables(const RooArgSet& nset) const
virtual RooArgSet*actualParameters(const RooArgSet& nset) const
virtual voidRooAbsReal::attachToTree(TTree& t, Int_t bufSize = 32000)
virtual const char*RooAbsCachedPdf::binningName() const
TStringRooAbsCachedPdf::cacheNameSuffix(const RooArgSet& nset) const
voidcalcParams()
RooFitResult*RooAbsReal::chi2FitDriver(RooAbsReal& fcn, RooLinkedList& cmdList)
TStringRooAbsArg::cleanBranchName() const
voidRooAbsCachedPdf::clearCacheObject(RooAbsCachedPdf::PdfCacheElem& cache) const
virtual voidRooAbsReal::copyCache(const RooAbsArg* source, Bool_t valueOnly = kFALSE)
virtual RooAbsCachedPdf::PdfCacheElem*createCache(const RooArgSet* nset) const
RooAbsReal*RooAbsReal::createIntObj(const RooArgSet& iset, const RooArgSet* nset, const RooNumIntConfig* cfg, const char* rangeName) const
voidRooAbsCachedPdf::disableCache(Bool_t flag)
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
virtual Double_tevaluate() const
virtual voidfillCacheObject(RooAbsCachedPdf::PdfCacheElem& cache) const
voidfillCacheSlice(RooFFTConvPdf::FFTCacheElem& cache, const RooArgSet& slicePosition) const
virtual voidRooAbsReal::fillTreeBranch(TTree& t)
voidRooAbsReal::findInnerMostIntegration(const RooArgSet& allObs, RooArgSet& innerObs, const char* rangeName) const
static Bool_tRooAbsArg::flipAClean()
virtual RooAbsGenContext*genContext(const RooArgSet& vars, const RooDataSet* prototype = 0, const RooArgSet* auxProto = 0, Bool_t verbose = kFALSE) const
RooDataSet*RooAbsPdf::generate(RooAbsGenContext& context, const RooArgSet& whatVars, const RooDataSet* prototype, Int_t nEvents, Bool_t verbose, Bool_t randProtoOrder, Bool_t resampleProto) const
RooAbsCachedPdf::PdfCacheElem*RooAbsCachedPdf::getCache(const RooArgSet* nset, Bool_t recalculate = kTRUE) const
virtual voidRooAbsArg::getObservablesHook(const RooArgSet*, RooArgSet*) const
virtual voidRooAbsArg::getParametersHook(const RooArgSet*, RooArgSet*, Bool_t) const
RooAbsProxy*RooAbsArg::getProxy(Int_t index) const
static voidRooAbsReal::globalSelectComp(Bool_t flag)
voidRooAbsArg::graphVizAddConnections(set<std::pair<RooAbsArg*,RooAbsArg*> >&)
virtual TStringhistNameSuffix() const
static Bool_tRooAbsArg::inhibitDirty()
virtual const char*inputBaseName() const
TStringRooAbsReal::integralNameSuffix(const RooArgSet& iset, const RooArgSet* nset = 0, const char* rangeName = 0, Bool_t omitEmpty = kFALSE) const
Bool_tRooAbsReal::isSelectedComp() const
virtual Bool_tRooAbsReal::isValid() const
virtual Bool_tRooAbsReal::isValidReal(Double_t value, Bool_t printError = kFALSE) const
voidRooAbsReal::makeProjectionSet(const RooAbsArg* plotVar, const RooArgSet* allVars, RooArgSet& projectedVars, Bool_t silent) const
voidTObject::MakeZombie()
Bool_tRooAbsReal::matchArgs(const RooArgSet& allDeps, RooArgSet& numDeps, const RooArgProxy& a) const
Bool_tRooAbsReal::matchArgs(const RooArgSet& allDeps, RooArgSet& numDeps, const RooArgSet& set) const
Bool_tRooAbsReal::matchArgs(const RooArgSet& allDeps, RooArgSet& numDeps, const RooArgProxy& a, const RooArgProxy& b) const
Bool_tRooAbsReal::matchArgs(const RooArgSet& allDeps, RooArgSet& numDeps, const RooArgProxy& a, const RooArgProxy& b, const RooArgProxy& c) const
Bool_tRooAbsReal::matchArgs(const RooArgSet& allDeps, RooArgSet& numDeps, const RooArgProxy& a, const RooArgProxy& b, const RooArgProxy& c, const RooArgProxy& d) const
Int_tRooAbsArg::numProxies() const
virtual voidRooAbsArg::operModeHook()
virtual voidRooAbsArg::optimizeDirtyHook(const RooArgSet*)
virtual RooPlot*RooAbsPdf::paramOn(RooPlot* frame, const RooArgSet& params, Bool_t showConstants = kFALSE, const char* label = "", Int_t sigDigits = 2, Option_t* options = "NELU", Double_t xmin = 0.65, Double_t xmax = 0.99, Double_t ymax = 0.95, const RooCmdArg* formatCmd = 0)
virtual const char*RooAbsCachedPdf::payloadUniqueSuffix() const
virtual RooAbsArg&pdfObservable(RooAbsArg& histObservable) const
virtual RooPlot*RooAbsReal::plotAsymOn(RooPlot* frame, const RooAbsCategoryLValue& asymCat, RooAbsReal::PlotOpt o) const
virtual RooPlot*RooAbsPdf::plotOn(RooPlot* frame, RooLinkedList& cmdList) const
virtual RooPlot*RooAbsPdf::plotOn(RooPlot* frame, RooAbsReal::PlotOpt o) const
voidRooAbsPdf::plotOnCompSelect(RooArgSet* selNodes) const
RooPlot*RooAbsReal::plotOnWithErrorBand(RooPlot* frame, const RooFitResult& fr, Double_t Z, const RooArgSet* params, const RooLinkedList& argList, Bool_t method1) const
Bool_tRooAbsReal::plotSanityChecks(RooPlot* frame) const
voidRooAbsArg::printAttribList(ostream& os) const
static voidRooAbsPdf::raiseEvalError()
Int_t*RooAbsPdf::randomizeProtoOrder(Int_t nProto, Int_t nGen, Bool_t resample = kFALSE) const
virtual Bool_tredirectServersHook(const RooAbsCollection& newServerList, Bool_t mustReplaceAll, Bool_t nameChange, Bool_t isRecursive)
voidRooAbsArg::registerProxy(RooArgProxy& proxy)
voidRooAbsArg::registerProxy(RooSetProxy& proxy)
voidRooAbsArg::registerProxy(RooListProxy& proxy)
Double_t*scanPdf(RooRealVar& obs, RooAbsPdf& pdf, const RooDataHist& hist, const RooArgSet& slicePos, Int_t& N, Int_t& N2, Int_t& zeroBin, Double_t shift) const
voidRooAbsReal::selectComp(Bool_t flag)
virtual voidRooAbsReal::selectNormalization(const RooArgSet* depSet = 0, Bool_t force = kFALSE)
virtual voidRooAbsReal::selectNormalizationRange(const char* rangeName = 0, Bool_t force = kFALSE)
voidRooAbsArg::setProxyNormSet(const RooArgSet* nset)
voidRooAbsArg::setShapeDirty(const RooAbsArg* source) const
virtual voidRooAbsReal::setTreeBranchStatus(TTree& t, Bool_t active)
voidRooAbsArg::setValueDirty(const RooAbsArg* source) const
virtual voidRooAbsReal::syncCache(const RooArgSet* set = 0)
virtual Bool_tRooAbsPdf::syncNormalization(const RooArgSet* dset, Bool_t adjustProxies = kTRUE) const
Double_tRooAbsReal::traceEval(const RooArgSet* set) const
voidRooAbsArg::unRegisterProxy(RooArgProxy& proxy)
voidRooAbsArg::unRegisterProxy(RooSetProxy& proxy)
voidRooAbsArg::unRegisterProxy(RooListProxy& proxy)

Data Members

public:
enum BufStrat { Extend
Mirror
Flat
};
enum RooAbsPdf::ExtendMode { CanNotBeExtended
CanBeExtended
MustBeExtended
};
enum RooAbsReal::ScaleType { Raw
Relative
NumEvent
RelativeExpected
};
enum RooAbsReal::ErrorLoggingMode { PrintErrors
CollectErrors
CountErrors
};
enum RooAbsArg::ConstOpCode { Activate
DeActivate
ConfigChange
ValueChange
};
enum RooAbsArg::OperMode { Auto
AClean
ADirty
};
enum TObject::EStatusBits { kCanDelete
kMustCleanup
kObjInCanvas
kIsReferenced
kHasUUID
kCannotPick
kNoContextMenu
kInvalidObject
};
enum TObject::[unnamed] { kIsOnHeap
kNotDeleted
kZombie
kBitMask
kSingleKey
kOverwrite
kWriteDelete
};
enum RooPrintable::ContentsOption { kName
kClassName
kValue
kArgs
kExtras
kAddress
kTitle
kCollectionHeader
};
enum RooPrintable::StyleOption { kInline
kSingleLine
kStandard
kVerbose
kTreeStructure
};
protected:
map<Int_t,AnaIntConfig>RooAbsCachedPdf::_anaIntMap! Map for analytical integration codes
RooAICRegistryRooAbsCachedPdf::_anaReg! Registry for analytical integration codes
set<std::string>RooAbsArg::_boolAttribBoolean attributes
set<std::string>RooAbsArg::_boolAttribTransient! Transient boolean attributes (not copied in ctor)
Double_t_bufFracSampling buffer size as fraction of domain size
RooFFTConvPdf::BufStrat_bufStratStrategy to fill the buffer
UChar_tRooAbsReal::_byteValue! Transient cache for byte values from tree branches
static Bool_tRooAbsReal::_cacheCheckIf true, always validate contents of clean which outcome of evaluate()
deque<RooAbsCache*>RooAbsArg::_cacheListlist of caches
RooObjCacheManagerRooAbsCachedPdf::_cacheMgrThe cache manager
RooSetProxy_cacheObsNon-convolution observables that are also cached
RooRefCountListRooAbsArg::_clientListlist of client objects
RooRefCountListRooAbsArg::_clientListShapesubset of clients that requested shape dirty flag propagation
RooRefCountListRooAbsArg::_clientListValuesubset of clients that requested value dirty flag propagation
TIterator*RooAbsArg::_clientShapeIter! Iterator over _clientListShape
TIterator*RooAbsArg::_clientValueIter! Iterator over _clientListValue
Bool_tRooAbsArg::_deleteWatch! Delete watch flag
RooExpensiveObjectCache*RooAbsArg::_eocachePointer to global cache manager for any expensive components created by this object
Int_tRooAbsPdf::_errorCountNumber of errors remaining to print
static Bool_tRooAbsPdf::_evalError
static Bool_tRooAbsArg::_flipACleanStatic flag controlling flipping status of all AClean nodes to ADirty ;
Float_tRooAbsReal::_floatValue! Transient cache for floating point values from tree branches
Bool_tRooAbsReal::_forceNumIntForce numerical integration if flag set
static Bool_tRooAbsReal::_globalSelectCompGlobal activation switch for component selection
static Bool_tRooAbsArg::_inhibitDirtyStatic flag controlling global inhibit of dirty state propagation
Int_tRooAbsReal::_intValue! Transient cache for integer values from tree branches
Int_tRooAbsCachedPdf::_ipOrderInterpolation order for cache histograms
TStringRooAbsReal::_labelPlot label for objects value
RooArgSet*RooAbsReal::_lastNSet!
Int_tRooAbsPdf::_minDimNormValueCacheMinimum number of numerically integrated dimensions to activate normalization value caching
static Int_tRooPrintable::_nameLength
Int_tRooAbsPdf::_negCountNumber of negative probablities remaining to print
RooAbsReal*RooAbsPdf::_norm! Normalization integral (owned by _normMgr)
RooObjCacheManagerRooAbsPdf::_normMgrThe cache manager
TStringRooAbsPdf::_normRangeNormalization range
static TStringRooAbsPdf::_normRangeOverride
RooArgSet*RooAbsPdf::_normSet! Normalization set with for above integral
RooAbsArg::OperModeRooAbsArg::_operModeDirty state propagation mode
RooArgSet*RooAbsArg::_ownedComponents! Set of owned component
RooSetProxy_paramsEffective parameters of this p.d.f.
RooRealProxy_pdf1First input p.d.f
RooRealProxy_pdf2Second input p.d.f
Int_tRooAbsReal::_plotBinsNumber of plot bins
Double_tRooAbsReal::_plotMaxMaximum of plot range
Double_tRooAbsReal::_plotMinMinimum of plot range
Bool_tRooAbsArg::_prohibitServerRedirect! Prohibit server redirects -- Debugging tool
TListRooAbsArg::_proxyListlist of proxies
Double_tRooAbsPdf::_rawValue
Char_tRooAbsReal::_sbyteValue! Transient cache for signed byte values from tree branches
Bool_tRooAbsPdf::_selectCompComponent selection flag for RooAbsPdf::plotCompOn
Bool_tRooAbsReal::_selectComp! Component selection flag for RooAbsPdf::plotCompOn
RooRefCountListRooAbsArg::_serverListlist of server objects
Bool_tRooAbsArg::_shapeDirtyFlag set if value needs recalculating because input shapes modified
Double_t_shift1
Double_t_shift2
RooNumGenConfig*RooAbsPdf::_specGeneratorConfig! MC generator configuration specific for this object
RooNumIntConfig*RooAbsReal::_specIntegratorConfigNumeric integrator configuration specific for this object
map<std::string,std::string>RooAbsArg::_stringAttribString attributes
Int_tRooAbsPdf::_traceCountNumber of traces remaining to print
Bool_tRooAbsReal::_treeVar!do not persist
UInt_tRooAbsReal::_uintValue! Transient cache for unsigned integer values from tree branches
TStringRooAbsReal::_unitUnit for objects value
Double_tRooAbsReal::_valueCache for current value of object
Int_tRooAbsPdf::_valueCacheIntOrderInterpolation order for numeric integral value cache
Bool_tRooAbsArg::_valueDirtyFlag set if value needs recalculating because input values modified
static Bool_tRooAbsArg::_verboseDirtyStatic flag controlling verbose messaging for dirty state changes
static Int_tRooAbsPdf::_verboseEval
RooRealProxy_xConvolution observable
RooRealProxy_xprimeInput function representing value of convolution observable
TStringTNamed::fNameobject identifier
TStringTNamed::fTitleobject title

Class Charts

Inheritance Inherited Members Includes Libraries
Class Charts

Function documentation

RooFFTConvPdf(const char* name, const char* title, RooRealVar& convVar, RooAbsPdf& pdf1, RooAbsPdf& pdf2, Int_t ipOrder = 2)
 Constructor for convolution of pdf1 (x) pdf2 in observable convVar. The binning used for the FFT sampling is controlled
 by the binning named "cache" in the convolution observable. The resulting FFT convolved histogram is interpolated at
 order 'ipOrder' A minimum binning of 1000 bins is recommended.
RooFFTConvPdf(const char* name, const char* title, RooAbsReal& pdfConvVar, RooRealVar& convVar, RooAbsPdf& pdf1, RooAbsPdf& pdf2, Int_t ipOrder = 2)
 Constructor for convolution of pdf1 (x) pdf2 in observable convVar. The binning used for the FFT sampling is controlled
 by the binning named "cache" in the convolution observable. The resulting FFT convolved histogram is interpolated at
 order 'ipOrder' A minimum binning of 1000 bins is recommended.
RooFFTConvPdf(const RooFFTConvPdf& other, const char* name = 0)
 Copy constructor
~RooFFTConvPdf()
 Destructor
const char* inputBaseName() const
 Return base name component for cache components in this case 'PDF1_CONV_PDF2'
TString histNameSuffix() const
 Suffix for cache histogram (added in addition to suffix for cache name)
void fillCacheObject(RooAbsCachedPdf::PdfCacheElem& cache) const
 Fill the contents of the cache the FFT convolution output
void fillCacheSlice(RooFFTConvPdf::FFTCacheElem& cache, const RooArgSet& slicePosition) const
 Fill a slice of cachePdf with the output of the FFT convolution calculation
Double_t* scanPdf(RooRealVar& obs, RooAbsPdf& pdf, const RooDataHist& hist, const RooArgSet& slicePos, Int_t& N, Int_t& N2, Int_t& zeroBin, Double_t shift) const
 Scan the values of 'pdf' in observable 'obs' using the bin values stored in 'hist' at slice position 'slicePos'
 N is filled with the number of bins defined in hist, N2 is filled with N plus the number of buffer bins
 The return value is an array of doubles of length N2 with the sampled values. The caller takes ownership
 of the array
RooArgSet* actualObservables(const RooArgSet& nset) const
 Return the observables to be cached given the normalization set nset

 If the cache observables is in nset then this is
    - the convolution observable plus
    - any member of nset that is either a RooCategory,
    - or was previously specified through setCacheObservables().

 In case the cache observable is _not_ in nset, then it is
    - the convolution observable plus
    - all member of nset are observables of this p.d.f.

RooArgSet* actualParameters(const RooArgSet& nset) const
 Return the parameters on which the cache depends given normalization
 set nset. For this p.d.f these are the parameters of the input p.d.f.
 but never the convolution variable, it case it is not part of nset
RooAbsArg& pdfObservable(RooAbsArg& histObservable) const
 Return p.d.f. observable (which can be a function) to substitute given
 p.d.f. observable. Substitute x by xprime if xprime is set
RooAbsGenContext* genContext(const RooArgSet& vars, const RooDataSet* prototype = 0, const RooArgSet* auxProto = 0, Bool_t verbose = kFALSE) const
 Create appropriate generator context for this convolution. If both input p.d.f.s support
 internal generation, if it is safe to use them and if no observables other than the convolution
 observable are requested for generation, use the specialized convolution generator context
 which implements a smearing strategy in the convolution observable. If not return the
 regular accept/reject generator context
void setBufferFraction(Double_t frac)
 Change the size of the buffer on either side of the observable range to frac times the
 size of the range of the convolution observable
void setBufferStrategy(RooFFTConvPdf::BufStrat bs)
 Change strategy to fill the overflow buffer on either side of the convolution observable range.

 'Extend' means is that the input p.d.f convolution observable range is widened to include the buffer range
 'Flat' means that the buffer is filled with the p.d.f. value at the boundary of the observable range
 'Mirror' means that the buffer is filled with a ,irror image of the p.d.f. around the convolution observable boundary

 The default strategy is extend. If one of the input p.d.f.s is a RooAddPdf, it is configured so that the interpretation
 range of the fraction coefficients is kept at the nominal convolutions observable range (instead of interpreting coefficients
 in the widened range including the buffer)
void printMetaArgs(ostream& os) const
 Customized printing of arguments of a RooNumConvPdf to more intuitively reflect the contents of the
 product operator construction
void calcParams()
 (Re)calculate effective parameters of this p.d.f.
Bool_t redirectServersHook(const RooAbsCollection& newServerList, Bool_t mustReplaceAll, Bool_t nameChange, Bool_t isRecursive)
RooFFTConvPdf()
 coverity[UNINIT_CTOR]
TObject* clone(const char* newname) const
{ return new RooFFTConvPdf(*this,newname); }
void setShift(Double_t val1, Double_t val2)
{ _shift1 = val1 ; _shift2 = val2 ; }
void setCacheObservables(const RooArgSet& obs)
const RooArgSet& cacheObservables() const
{ return _cacheObs ; }
Double_t bufferFraction() const
 Return value of buffer fraction applied in FFT calculation array beyond either
 end of the observable domain to reduce cyclical effects
BufStrat bufferStrategy() const
 Return the strategy currently used to fill the buffer:
 'Extend' means is that the input p.d.f convolution observable range is widened to include the buffer range
 'Flat' means that the buffer is filled with the p.d.f. value at the boundary of the observable range
 'Mirror' means that the buffer is filled with a mirror image of the p.d.f. around the convolution observable boundary
Int_t getMaxVal(const RooArgSet& vars) const
 Propagate maximum value estimate of pdf1 as convolution can only result in lower max values
{ return _pdf1.arg().getMaxVal(vars) ; }
Double_t maxVal(Int_t code) const
{ return _pdf1.arg().maxVal(code) ; }
Double_t evaluate() const
{ RooArgSet dummy(_x.arg()) ; return getVal(&dummy) ; }
PdfCacheElem* createCache(const RooArgSet* nset) const