Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 10:10:23

0001 // @(#)root/minuit2:$Id$
0002 // Authors: M. Winkler, F. James, L. Moneta, A. Zsenei   2003-2005
0003 
0004 /**********************************************************************
0005  *                                                                    *
0006  * Copyright (c) 2005 LCG ROOT Math team,  CERN/PH-SFT                *
0007  *                                                                    *
0008  **********************************************************************/
0009 
0010 #ifndef ROOT_Minuit2_GenericFunction
0011 #define ROOT_Minuit2_GenericFunction
0012 
0013 #include "Minuit2/MnConfig.h"
0014 
0015 #include <vector>
0016 
0017 namespace ROOT {
0018 
0019 namespace Minuit2 {
0020 
0021 //_____________________________________________________________________
0022 /**
0023 
0024 Class from which all the other classes, representing functions,
0025 inherit. That is why it defines only one method, the operator(),
0026 which allows to call the function.
0027 
0028 @author Andras Zsenei and Lorenzo Moneta, Creation date: 23 Sep 2004
0029 
0030 @ingroup Minuit
0031 
0032  */
0033 
0034 class GenericFunction {
0035 
0036 public:
0037    virtual ~GenericFunction() {}
0038 
0039    /**
0040 
0041       Evaluates the function using the vector containing the input values.
0042 
0043       @param x vector of the coordinates (for example the x coordinate for a
0044       one-dimensional Gaussian)
0045 
0046       @return the result of the evaluation of the function.
0047 
0048    */
0049 
0050    virtual double operator()(const std::vector<double> &x) const = 0;
0051 };
0052 
0053 } // namespace Minuit2
0054 
0055 } // namespace ROOT
0056 
0057 #endif // ROOT_Minuit2_GenericFunction