/***************************************************************************** * Project: RooFit * * Package: RooFitCore * * File: $Id: RooIntegratorBinding.rdl,v 1.3 2005/02/25 14:22:57 wverkerke Exp $ * Authors: * * WV, Wouter Verkerke, UC Santa Barbara, verkerke@slac.stanford.edu * * DK, David Kirkby, UC Irvine, dkirkby@uci.edu * * * * Copyright (c) 2000-2005, Regents of the University of California * * and Stanford University. All rights reserved. * * * * Redistribution and use in source and binary forms, * * with or without modification, are permitted according to the terms * * listed in LICENSE (http://roofit.sourceforge.net/license.txt) * *****************************************************************************/ #ifndef ROO_INTEGRATOR_BINDING #define ROO_INTEGRATOR_BINDING #include "RooFitCore/RooAbsFunc.hh" #include "RooFitCore/RooAbsIntegrator.hh" class RooIntegratorBinding : public RooAbsFunc { public: RooIntegratorBinding(RooAbsIntegrator& integrator) : RooAbsFunc(integrator.integrand()->getDimension()-1), _integrator(&integrator) {} ; virtual ~RooIntegratorBinding() {} ; inline virtual Double_t operator()(const Double_t xvector[]) const { _ncall++ ; return _integrator->integral(xvector) ; } inline virtual Double_t getMinLimit(UInt_t index) const { return _integrator->integrand()->getMinLimit(index+1); } inline virtual Double_t getMaxLimit(UInt_t index) const { return _integrator->integrand()->getMaxLimit(index+1); } protected: RooAbsIntegrator* _integrator ; ClassDef(RooIntegratorBinding,0) // RooAbsFunc decorator }; #endif