00001 /***************************************************************************** 00002 * Project: RooFit * 00003 * Package: RooFitCore * 00004 * @(#)root/roofitcore:$Id: RooGenFunction.cxx 28259 2009-04-16 16:21:16Z wouter $ 00005 * Authors: * 00006 * WV, Wouter Verkerke, UC Santa Barbara, verkerke@slac.stanford.edu * 00007 * DK, David Kirkby, UC Irvine, dkirkby@uci.edu * 00008 * * 00009 * Copyright (c) 2000-2005, Regents of the University of California * 00010 * and Stanford University. All rights reserved. * 00011 * * 00012 * Redistribution and use in source and binary forms, * 00013 * with or without modification, are permitted according to the terms * 00014 * listed in LICENSE (http://roofit.sourceforge.net/license.txt) * 00015 *****************************************************************************/ 00016 00017 00018 ////////////////////////////////////////////////////////////////////////////// 00019 // 00020 // BEGIN_HTML 00021 // Lightweight interface adaptor that exports a RooAbsReal as a ROOT::Math::IGenFunction 00022 // END_HTML 00023 // 00024 00025 00026 #include "RooFit.h" 00027 #include "Riostream.h" 00028 00029 #include "RooGenFunction.h" 00030 #include "RooRealBinding.h" 00031 #include "RooAbsReal.h" 00032 #include "RooAbsPdf.h" 00033 #include "RooArgSet.h" 00034 00035 #include <assert.h> 00036 00037 00038 00039 ClassImp(RooGenFunction) 00040 ; 00041 00042 //_____________________________________________________________________________ 00043 RooGenFunction::RooGenFunction(const RooAbsReal& func, const RooArgList& observables, const RooArgList& parameters) : 00044 _ftor(func,observables,parameters,observables) 00045 { 00046 } 00047 00048 00049 //_____________________________________________________________________________ 00050 RooGenFunction::RooGenFunction(const RooAbsReal& func, const RooArgList& observables, const RooArgList& parameters, const RooArgSet& nset) : 00051 _ftor(func,observables,parameters,nset) 00052 { 00053 } 00054 00055 00056 //_____________________________________________________________________________ 00057 RooGenFunction::RooGenFunction(const RooGenFunction& other) : 00058 ROOT::Math::IGenFunction(other), _ftor(other._ftor) 00059 { 00060 } 00061 00062 00063 //_____________________________________________________________________________ 00064 RooGenFunction::~RooGenFunction() 00065 { 00066 } 00067 00068 00069 //_____________________________________________________________________________ 00070 double RooGenFunction::DoEval(double x) const 00071 { 00072 return _ftor(x) ; 00073 } 00074 00075