00001
00012 #ifdef _MSC_VER
00013
00014 # pragma warning(disable:4231)
00015
00016
00017 # pragma warning(disable:4251)
00018
00019
00020 # pragma warning(disable:4275)
00021
00022
00023 # pragma warning(disable:4800)
00024 #endif
00025
00026 #include "functions/FunctionBase.h"
00027 #include "minimizers/Fitter.h"
00028 #include "minimizers/StatedFCN.h"
00029
00030 #include <boost/python.hpp>
00031
00032 using std::vector;
00033 using namespace boost::python;
00034
00035 namespace hippodraw {
00036 namespace Python {
00037
00038 void
00039 export_Fitter()
00040 {
00041 class_ < Fitter, bases<>,
00042 Fitter, boost::noncopyable >
00043 ( "Fitter",
00044 "Provides an interface to objective function minimizers.",
00045 no_init )
00046
00047 .add_property ( "degreesOfFreedom",
00048 &Fitter::calcDegreesOfFreedom )
00049
00050 .add_property ( "objectiveValue",
00051 &Fitter::objectiveValue )
00052
00053 .def ( "name", &Fitter::name,
00054 return_value_policy < copy_const_reference > (),
00055 "name () -> string\n"
00056 "\n"
00057 "Returns the minimizer name." )
00058
00059 .def ( "getFCN", &Fitter::getFCN,
00060 return_value_policy < reference_existing_object > (),
00061 "getFCN () -> FCNBase\n"
00062 "\n"
00063 "Returns the objective function." )
00064
00065 .def ( "minimize", &Fitter::calcBestFit,
00066 "minimize () -> boolean\n"
00067 "\n"
00068 "Attempts to do a minimization, returns True if successful." )
00069
00070 .def ( "setFixedFlags", &Fitter::setFixedFlags,
00071 "setFixedFlags ( sequence ) -> None\n"
00072 "\n"
00073 "Sets which parameters that should be fixed during a fit. A\n"
00074 "`1' in the sequence indicates corresponding parameters is fixed." )
00075
00076 .def ( "setLimits",
00077 ( void ( Fitter::* )
00078 ( unsigned int, double, double ) )
00079 &Fitter::setLimits )
00080
00081 .def ( "setLimits",
00082 ( void ( Fitter::* )
00083 ( const std::string &, double, double ) )
00084 &Fitter::setLimits,
00085 "setLimits ( name, low, high ) -> None\n"
00086 "setLimits ( index, low, high ) -> None\n"
00087 "\n"
00088 "Sets the limits on a model function parameter. Only minimizers\n"
00089 "based on Minuit support this feature, others throw an exception." )
00090
00091 .def ( "setStepSize",
00092 ( void ( Fitter::* )
00093 ( unsigned int, double ) )
00094 &Fitter::setStepSize )
00095
00096 .def ( "setStepSize",
00097 ( void ( Fitter::* )
00098 ( const std::string &, double ) )
00099 &Fitter::setStepSize,
00100 "setStepSize ( name, value ) -> None\n"
00101 "setStepSize ( index, value ) -> None\n"
00102 "\n"
00103 "Sets the step size for the model function parameter. Only\n"
00104 "minimizers based on Minuit support this function, others\n"
00105 "throw an exception." )
00106
00107 ;
00108 }
00109
00110 }
00111 }