5 #include "NParameters.h"
13 : TNamed(
"parameters",
"Parameters"), fHisto(nullptr), fNames({})
21 : TNamed(name, title), fNames(parNames)
27 if (parNames.empty()) {
28 NLogTrace(
"NParameters::NParameters: No parameter names provided, creating empty parameters histogram.");
31 fHisto =
new TH1D(
"ParametersHisto",
"ParametersHisto", parNames.size(), 0, parNames.size());
33 for (
size_t i = 0; i < parNames.size(); i++) {
34 fHisto->GetXaxis()->SetBinLabel(i + 1, parNames[i].c_str());
60 if (bin < 1 || bin >
fHisto->GetNbinsX()) {
63 fHisto->SetBinContent(bin, value);
64 fHisto->SetBinError(bin, error);
73 int bin =
fHisto->GetXaxis()->FindBin(parName);
74 if (bin < 1 || bin >
fHisto->GetNbinsX()) {
75 NLogError(
"NParameters::SetParameter: Parameter name '%s' not found !!!", parName);
78 fHisto->SetBinContent(bin, value);
79 fHisto->SetBinError(bin, error);
88 if (bin < 1 || bin >
fHisto->GetNbinsX()) {
89 NLogError(
"NParameters::GetParameter: Parameter index '%d' out of range !!!", bin);
90 return TMath::QuietNaN();
92 return fHisto->GetBinContent(bin);
100 int bin =
fHisto->GetXaxis()->FindBin(parName);
101 if (bin < 1 || bin >
fHisto->GetNbinsX()) {
102 NLogError(
"NParameters::GetParameter: Parameter name '%s' not found !!!", parName);
103 return TMath::QuietNaN();
105 return fHisto->GetBinContent(bin);
112 if (bin < 1 || bin >
fHisto->GetNbinsX()) {
113 NLogError(
"NParameters::GetParError: Parameter index '%d' out of range !!!", bin);
114 return TMath::QuietNaN();
116 return fHisto->GetBinError(bin);
123 int bin =
fHisto->GetXaxis()->FindBin(parName);
124 if (bin < 1 || bin >
fHisto->GetNbinsX()) {
125 NLogError(
"NParameters::GetParError: Parameter name '%s' not found !!!", parName);
126 return TMath::QuietNaN();
128 return fHisto->GetBinError(bin);
Double_t GetParameter(int bin) const
Get the value of a parameter by bin index.
Double_t GetParameterError(int bin) const
Get the error of a parameter by bin index.
TH1D * fHisto
Histogram with parameters.
bool SetParameter(int bin, Double_t value, Double_t error=0.)
Set the value and error of a parameter by bin index.
virtual void Print(Option_t *option="") const override
Print the parameters.