18 #pragma warning(disable:4275) // non dll 9nterface coming from Minuit's FCNBase
33 #include "Minuit2/FCNBase.h"
116 virtual void copyFrom (
const StatedFCN * other );
121 bool hasFunction ()
const;
131 virtual void setDataSource (
const DataSource * source ) = 0;
141 virtual void setDataSource (
const DataSource * source,
143 const std::vector < int > & ) = 0;
148 virtual bool setUseErrors (
bool yes =
true ) = 0;
152 virtual bool getUseErrors ()
const = 0;
156 const std::vector < std::string > & getParmNames ()
const;
160 const std::vector < double > & getParameters ()
const;
164 void setParameters (
const std::vector < double > & parms );
168 void fillFreeParameters ( std::vector < double > & free_parms )
const;
172 unsigned int getNumberFreeParms ()
const;
178 const std::vector < int > & getFixedFlags ()
const;
183 virtual void setFixedFlags (
const std::vector < int > & flags );
187 virtual void setFreeParameters (
const std::vector < double > & parms );
192 void fillFreeDerivatives ( std::vector < double > &,
double x );
197 virtual double operator () (
const std::vector < double > & parms )
const;
205 virtual double objectiveValue ()
const = 0;
209 virtual int degreesOfFreedom()
const = 0;
211 virtual void calcAlphaBeta ( std::vector < std::vector < double > > & alpha,
212 std::vector < double > & beta ) = 0;
218 virtual bool needsIntegrated ()
const = 0;
222 virtual void setFitCut (
TupleCut * cut ) = 0;
226 virtual void setFitRange (
bool yes =
true ) = 0;
232 void setNeedsDerivatives (
bool yes );
246 #endif // _StatedFCN_H_