Int_t AliUnfolding::fgSkipBinsBegin = 0;
Float_t AliUnfolding::fgMinuitStepSize = 0.1; // (usually not needed to be changed) step size in minimization
Float_t AliUnfolding::fgMinuitPrecision = 1e-6; // minuit precision
+Int_t AliUnfolding::fgMinuitMaxIterations = 5000; // minuit maximum number of iterations
Bool_t AliUnfolding::fgMinimumInitialValue = kFALSE; // set all initial values at least to the smallest value among the initial values
Float_t AliUnfolding::fgMinimumInitialValueFix = -1;
Bool_t AliUnfolding::fgNormalizeInput = kFALSE; // normalize input spectrum
// set precision
minuit->SetPrecision(fgMinuitPrecision);
+ minuit->SetMaxIterations(fgMinuitMaxIterations);
+
for (Int_t i=0; i<fgMaxParams; i++)
(*fgEntropyAPriori)[i] = 1;
result->SetBinContent(i+1, value);
result->SetBinError(i+1, error);
}
-
- fgCallCount = 0;
+
+ Int_t tmpCallCount = fgCallCount;
+ fgCallCount = 0; // needs to be 0 so that the Chi2Function prints its output
Chi2Function(dummy, 0, chi2, results, 0);
- Printf("AliUnfolding::UnfoldWithMinuit: Chi2 of final parameters is = %f", chi2);
+
+ Printf("AliUnfolding::UnfoldWithMinuit: iterations %d. Chi2 of final parameters is = %f", tmpCallCount, chi2);
delete[] results;
static void SetChi2Regularization(RegularizationType type, Float_t weight);
static void SetMinuitStepSize(Float_t stepSize) { fgMinuitStepSize = stepSize; }
static void SetMinuitPrecision(Float_t pres) {fgMinuitPrecision = pres;}
+ static void SetMinuitMaxIterations(Int_t iter) {fgMinuitMaxIterations = iter;}
static void SetMinimumInitialValue(Bool_t flag, Float_t value = -1) { fgMinimumInitialValue = flag; fgMinimumInitialValueFix = value; }
static void SetNormalizeInput(Bool_t flag) { fgNormalizeInput = flag; }
static void SetNotFoundEvents(Float_t notFoundEvents) { fgNotFoundEvents = notFoundEvents; }
static Int_t fgSkipBinsBegin; // (optional) skip the given number of bins in the regularization
static Float_t fgMinuitStepSize; // (usually not needed to be changed) step size in minimization
static Float_t fgMinuitPrecision; // precision used by minuit. default = 1e-6
+ static Int_t fgMinuitMaxIterations; // maximum number of iterations used by minuit. default = 5000
static Bool_t fgMinimumInitialValue; // set all initial values at least to the smallest value among the initial values
static Float_t fgMinimumInitialValueFix; // use this as the minimum initial value instead of determining it automatically
static Bool_t fgNormalizeInput; // normalize input spectrum