10 #ifndef ROOT_Minuit2_BasicMinimumParameters
11 #define ROOT_Minuit2_BasicMinimumParameters
24 class BasicMinimumParameters {
28 BasicMinimumParameters(
unsigned int n,
double fval) : fParameters(MnAlgebraicVector(n)), fStepSize(MnAlgebraicVector(n)), fFVal(fval), fValid(false), fHasStep(false) {}
30 BasicMinimumParameters(
const MnAlgebraicVector& avec,
double fval) :
31 fParameters(avec), fStepSize(avec.size()), fFVal(fval), fValid(true), fHasStep(false) {}
33 BasicMinimumParameters(
const MnAlgebraicVector& avec,
const MnAlgebraicVector& dirin,
double fval) : fParameters(avec), fStepSize(dirin), fFVal(fval), fValid(true), fHasStep(true) {}
35 ~BasicMinimumParameters() {}
37 BasicMinimumParameters(
const BasicMinimumParameters& par) : fParameters(par.fParameters), fStepSize(par.fStepSize), fFVal(par.fFVal), fValid(par.fValid), fHasStep(par.fHasStep) {}
39 BasicMinimumParameters& operator=(
const BasicMinimumParameters& par) {
40 fParameters = par.fParameters;
41 fStepSize = par.fStepSize;
44 fHasStep = par.fHasStep;
48 void*
operator new(
size_t nbytes) {
49 return StackAllocatorHolder::Get().Allocate(nbytes);
52 void operator delete(
void* p,
size_t ) {
53 StackAllocatorHolder::Get().Deallocate(p);
56 const MnAlgebraicVector& Vec()
const {
return fParameters;}
57 const MnAlgebraicVector& Dirin()
const {
return fStepSize;}
58 double Fval()
const {
return fFVal;}
59 bool IsValid()
const {
return fValid;}
60 bool HasStepSize()
const {
return fHasStep;}
64 MnAlgebraicVector fParameters;
65 MnAlgebraicVector fStepSize;
75 #endif // ROOT_Minuit2_BasicMinimumParameters