#ifndef PARAMETER_HH_INCLUDED #define PARAMETER_HH_INCLUDED #include using std::string; #include #include "TString.h" /*! The Parameter class is part of the fitting tools. A parameter is a named, numerical value, with errors. A parameter can be fitted by the fitting framework. */ struct Parameter { string component_name; string name; string description; double value; bool fit; // set false for fixed parameter double fit_start; double fit_min; double fit_max; double fit_step; double fit_error; double fit_error_up; // depricated double fit_error_down;// depricated double true_value; Parameter( string description, double value, double fit_min = 0, double fit_max = 1e10, double fit_step = 1 ) : component_name(""), name(""), description(description), value(value), fit(true), fit_start((fit_min +fit_max)/2), fit_min(fit_min),fit_max(fit_max), fit_step(fit_step), fit_error_up(0), fit_error_down(0), true_value(0) {} Parameter() : component_name(""), name(""), description(""), value(0), fit (false), fit_start(0), fit_min(0), fit_max(0), fit_step(0), fit_error_up(0), fit_error_down(0), true_value(0) {} // dangerous, but fun :) operator double() { return value ; } string fullname() { return component_name + "." + name ; } string __str__() const { return Form("Parameter %s -> value = %f", name.c_str(),value); } string str() const { return __str__(); } void print( std::ostream& out = std::cout ) { out << str() ; } ClassDefNV(Parameter, 1); }; #endif