Logo ROOT  
Reference Guide
RooTFoamBinding.cxx
Go to the documentation of this file.
1/*****************************************************************************
2 * Project: RooFit *
3 * Package: RooFitCore *
4 * @(#)root/roofitcore:$Id$
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
17/**
18\file RooTFoamBinding.cxx
19\class RooTFoamBinding
20\ingroup Roofitcore
21
22Lightweight interface adaptor that binds a RooAbsPdf to TFOAM
23**/
24
25
26#include "Riostream.h"
27
28#include "RooTFoamBinding.h"
29#include "RooRealBinding.h"
30#include "RooAbsReal.h"
31#include "RooAbsPdf.h"
32#include "RooArgSet.h"
33
34#include <assert.h>
35
36
37
38using namespace std;
39
41;
42
43
44////////////////////////////////////////////////////////////////////////////////
45
47{
48 _nset.add(observables) ;
49 _binding = new RooRealBinding(pdf,observables,&_nset,false,0) ;
50}
51
52
53////////////////////////////////////////////////////////////////////////////////
54/// Destructor
55
57{
58 delete _binding ;
59}
60
61
62
63////////////////////////////////////////////////////////////////////////////////
64
65double RooTFoamBinding::Density(Int_t ndim, double *xvec)
66{
67 double x[10] ;
68 for (int i=0 ; i<ndim ; i++) {
69 x[i] = xvec[i]*(_binding->getMaxLimit(i)-_binding->getMinLimit(i)) + _binding->getMinLimit(i) ;
70 //cout << "RTFB::Density xvec[" << i << "] = " << xvec[i] << " x[i] = " << x[i] << endl ;
71 }
72 double ret = (*_binding)(x) ;
73 return ret<0?0:ret ;
74}
#define ClassImp(name)
Definition: Rtypes.h:375
virtual bool add(const RooAbsArg &var, bool silent=false)
Add the specified argument to list.
RooAbsReal is the common abstract base class for objects that represent a real value and implements f...
Definition: RooAbsReal.h:62
RooArgSet is a container object that can hold multiple RooAbsArg objects.
Definition: RooArgSet.h:56
Lightweight interface adaptor that binds a RooAbsReal object to a subset of its servers and present i...
double getMinLimit(UInt_t dimension) const override
Return lower limit on i-th variable.
double getMaxLimit(UInt_t dimension) const override
Return upper limit on i-th variable.
Lightweight interface adaptor that binds a RooAbsPdf to TFOAM.
RooRealBinding * _binding
~RooTFoamBinding() override
Destructor.
double Density(Int_t ndim, double *) override
RooTFoamBinding(const RooAbsReal &pdf, const RooArgSet &observables)
Double_t x[n]
Definition: legend1.C:17