ROOT logo
/*****************************************************************************
 * Project: RooFit                                                           *
 * Package: RooFitCore                                                       *
 *    File: $Id: RooIntegratorBinding.h,v 1.4 2007/05/11 09:11:30 verkerke 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 "RooAbsFunc.h"
#include "RooAbsIntegrator.h"

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 ;  // Numeric integrator
 

  ClassDef(RooIntegratorBinding,0) // Function binding representing output of numeric integrator
};

#endif

 RooIntegratorBinding.h:1
 RooIntegratorBinding.h:2
 RooIntegratorBinding.h:3
 RooIntegratorBinding.h:4
 RooIntegratorBinding.h:5
 RooIntegratorBinding.h:6
 RooIntegratorBinding.h:7
 RooIntegratorBinding.h:8
 RooIntegratorBinding.h:9
 RooIntegratorBinding.h:10
 RooIntegratorBinding.h:11
 RooIntegratorBinding.h:12
 RooIntegratorBinding.h:13
 RooIntegratorBinding.h:14
 RooIntegratorBinding.h:15
 RooIntegratorBinding.h:16
 RooIntegratorBinding.h:17
 RooIntegratorBinding.h:18
 RooIntegratorBinding.h:19
 RooIntegratorBinding.h:20
 RooIntegratorBinding.h:21
 RooIntegratorBinding.h:22
 RooIntegratorBinding.h:23
 RooIntegratorBinding.h:24
 RooIntegratorBinding.h:25
 RooIntegratorBinding.h:26
 RooIntegratorBinding.h:27
 RooIntegratorBinding.h:28
 RooIntegratorBinding.h:29
 RooIntegratorBinding.h:30
 RooIntegratorBinding.h:31
 RooIntegratorBinding.h:32
 RooIntegratorBinding.h:33
 RooIntegratorBinding.h:34
 RooIntegratorBinding.h:35
 RooIntegratorBinding.h:36
 RooIntegratorBinding.h:37
 RooIntegratorBinding.h:38
 RooIntegratorBinding.h:39
 RooIntegratorBinding.h:40