improved y-axis scaling for Fourier. Fix of wrong WARNING for use_fit_ranges
This commit is contained in:
@ -22,6 +22,8 @@ NEW integration of a few external musrfit plug-ins into the standard build proce
|
||||
NEW default estimates for 'data' and 'background' entries in RUN blocks
|
||||
NEW directory with some msr- and data-files for quick testing of new musrfit installations
|
||||
NEW option to musrt0: the key 'T' will set the t0 cursor to the maximum of the histogram
|
||||
FIXED wrong WARNING message for use_fit_ranges
|
||||
FIXED bug in event handling leading to crash for non-muSR when switching between view and difference view
|
||||
FIXED chisq/maxLH lables in the statistics block are properly handled now (MUSR-148)
|
||||
FIXED y-unzoom failure for musrt0 (MUSR-77)
|
||||
FIXED fitting issue for boundaries none/none (MUSR-136)
|
||||
@ -50,6 +52,7 @@ FIXED warning messages
|
||||
FIXED db data tag reading error
|
||||
FIXED usage of BOOST >= 1.38.0
|
||||
FIXED the extraction of the time resolution for the mud data format, since MUD_getHistFsPerBin seems sometimes to return just crap.
|
||||
CHANGED improved y-range scaling for Fourier
|
||||
CHANGED musredit: change into the msr-file directory before calling musrview. This is needed if userFcn's are using startup XMLs.
|
||||
CHANGED musredit: improved file system watcher notification mechanism to prevent multiple user notifications.
|
||||
CHANGED fit range decimal precision handling of PMsrHandler improved (MUSR-150 request). It is now
|
||||
|
@ -3472,7 +3472,9 @@ Bool_t PMsrHandler::HandlePlotEntry(PMsrLines &lines)
|
||||
param.fYmax.push_back((Double_t)str.Atof());
|
||||
else
|
||||
error = true;
|
||||
} else {
|
||||
}
|
||||
|
||||
if ((tokens->GetEntries() != 1) && (tokens->GetEntries() != 3)) {
|
||||
cerr << endl << ">> PMsrHandler::HandlePlotEntry: **WARNING** use_fit_ranges with undefined additional parameters in line " << iter1->fLineNo;
|
||||
cerr << endl << ">> Will ignore this PLOT block command line, sorry.";
|
||||
cerr << endl << ">> Proper syntax: use_fit_ranges [ymin ymax]";
|
||||
|
@ -3408,9 +3408,15 @@ void PMusrCanvas::PlotFourier(Bool_t unzoom)
|
||||
}
|
||||
|
||||
// set y-range
|
||||
// first find minimum/maximum of all histos
|
||||
// first find minimum/maximum of all histos and theories
|
||||
ymin = GetMinimum(fData[0].dataFourierRe);
|
||||
ymax = GetMaximum(fData[0].dataFourierRe);
|
||||
binContent = GetMinimum(fData[0].theoryFourierRe);
|
||||
if (binContent < ymin)
|
||||
ymin = binContent;
|
||||
binContent = GetMaximum(fData[0].theoryFourierRe);
|
||||
if (binContent > ymax)
|
||||
ymax = binContent;
|
||||
for (UInt_t i=1; i<fData.size(); i++) {
|
||||
binContent = GetMinimum(fData[i].dataFourierRe);
|
||||
if (binContent < ymin)
|
||||
@ -3418,6 +3424,12 @@ void PMusrCanvas::PlotFourier(Bool_t unzoom)
|
||||
binContent = GetMaximum(fData[i].dataFourierRe);
|
||||
if (binContent > ymax)
|
||||
ymax = binContent;
|
||||
binContent = GetMinimum(fData[i].theoryFourierRe);
|
||||
if (binContent < ymin)
|
||||
ymin = binContent;
|
||||
binContent = GetMaximum(fData[i].theoryFourierRe);
|
||||
if (binContent > ymax)
|
||||
ymax = binContent;
|
||||
}
|
||||
|
||||
fHistoFrame = fDataTheoryPad->DrawFrame(xmin, 1.05*ymin, xmax, 1.05*ymax);
|
||||
@ -3463,6 +3475,12 @@ void PMusrCanvas::PlotFourier(Bool_t unzoom)
|
||||
// first find minimum/maximum of all histos
|
||||
ymin = GetMinimum(fData[0].dataFourierIm);
|
||||
ymax = GetMaximum(fData[0].dataFourierIm);
|
||||
binContent = GetMinimum(fData[0].theoryFourierIm);
|
||||
if (binContent < ymin)
|
||||
ymin = binContent;
|
||||
binContent = GetMaximum(fData[0].theoryFourierIm);
|
||||
if (binContent > ymax)
|
||||
ymax = binContent;
|
||||
for (UInt_t i=1; i<fData.size(); i++) {
|
||||
binContent = GetMinimum(fData[i].dataFourierIm);
|
||||
if (binContent < ymin)
|
||||
@ -3470,6 +3488,12 @@ void PMusrCanvas::PlotFourier(Bool_t unzoom)
|
||||
binContent = GetMaximum(fData[i].dataFourierIm);
|
||||
if (binContent > ymax)
|
||||
ymax = binContent;
|
||||
binContent = GetMinimum(fData[i].theoryFourierIm);
|
||||
if (binContent < ymin)
|
||||
ymin = binContent;
|
||||
binContent = GetMaximum(fData[i].theoryFourierIm);
|
||||
if (binContent > ymax)
|
||||
ymax = binContent;
|
||||
}
|
||||
|
||||
fHistoFrame = fDataTheoryPad->DrawFrame(xmin, 1.05*ymin, xmax, 1.05*ymax);
|
||||
@ -3533,6 +3557,21 @@ void PMusrCanvas::PlotFourier(Bool_t unzoom)
|
||||
if (binContent > ymax)
|
||||
ymax = binContent;
|
||||
}
|
||||
// theory part min/max
|
||||
for (UInt_t i=0; i<fData.size(); i++) {
|
||||
binContent = GetMinimum(fData[i].theoryFourierRe);
|
||||
if (binContent < ymin)
|
||||
ymin = binContent;
|
||||
binContent = GetMaximum(fData[i].theoryFourierRe);
|
||||
if (binContent > ymax)
|
||||
ymax = binContent;
|
||||
binContent = GetMinimum(fData[i].theoryFourierIm);
|
||||
if (binContent < ymin)
|
||||
ymin = binContent;
|
||||
binContent = GetMaximum(fData[i].theoryFourierIm);
|
||||
if (binContent > ymax)
|
||||
ymax = binContent;
|
||||
}
|
||||
|
||||
fHistoFrame = fDataTheoryPad->DrawFrame(xmin, 1.05*ymin, xmax, 1.05*ymax);
|
||||
|
||||
@ -3580,9 +3619,15 @@ void PMusrCanvas::PlotFourier(Bool_t unzoom)
|
||||
}
|
||||
|
||||
// set y-range
|
||||
// first find minimum/maximum of all histos
|
||||
// first find minimum/maximum of all histos and theory
|
||||
ymin = GetMinimum(fData[0].dataFourierPwr);
|
||||
ymax = GetMaximum(fData[0].dataFourierPwr);
|
||||
binContent = GetMinimum(fData[0].theoryFourierPwr);
|
||||
if (binContent < ymin)
|
||||
ymin = binContent;
|
||||
binContent = GetMaximum(fData[0].theoryFourierPwr);
|
||||
if (binContent > ymax)
|
||||
ymax = binContent;
|
||||
for (UInt_t i=1; i<fData.size(); i++) {
|
||||
binContent = GetMinimum(fData[i].dataFourierPwr);
|
||||
if (binContent < ymin)
|
||||
@ -3590,6 +3635,12 @@ void PMusrCanvas::PlotFourier(Bool_t unzoom)
|
||||
binContent = GetMaximum(fData[i].dataFourierPwr);
|
||||
if (binContent > ymax)
|
||||
ymax = binContent;
|
||||
binContent = GetMinimum(fData[i].theoryFourierPwr);
|
||||
if (binContent < ymin)
|
||||
ymin = binContent;
|
||||
binContent = GetMaximum(fData[i].theoryFourierPwr);
|
||||
if (binContent > ymax)
|
||||
ymax = binContent;
|
||||
}
|
||||
|
||||
fHistoFrame = fDataTheoryPad->DrawFrame(xmin, 1.05*ymin, xmax, 1.05*ymax);
|
||||
@ -3633,6 +3684,12 @@ void PMusrCanvas::PlotFourier(Bool_t unzoom)
|
||||
// first find minimum/maximum of all histos
|
||||
ymin = GetMinimum(fData[0].dataFourierPhase);
|
||||
ymax = GetMaximum(fData[0].dataFourierPhase);
|
||||
binContent = GetMinimum(fData[0].theoryFourierPhase);
|
||||
if (binContent < ymin)
|
||||
ymin = binContent;
|
||||
binContent = GetMaximum(fData[0].theoryFourierPhase);
|
||||
if (binContent > ymax)
|
||||
ymax = binContent;
|
||||
for (UInt_t i=1; i<fData.size(); i++) {
|
||||
binContent = GetMinimum(fData[i].dataFourierPhase);
|
||||
if (binContent < ymin)
|
||||
@ -3640,6 +3697,12 @@ void PMusrCanvas::PlotFourier(Bool_t unzoom)
|
||||
binContent = GetMaximum(fData[i].dataFourierPhase);
|
||||
if (binContent > ymax)
|
||||
ymax = binContent;
|
||||
binContent = GetMinimum(fData[i].theoryFourierPhase);
|
||||
if (binContent < ymin)
|
||||
ymin = binContent;
|
||||
binContent = GetMaximum(fData[i].theoryFourierPhase);
|
||||
if (binContent > ymax)
|
||||
ymax = binContent;
|
||||
}
|
||||
|
||||
fHistoFrame = fDataTheoryPad->DrawFrame(xmin, 1.05*ymin, xmax, 1.05*ymax);
|
||||
|
Reference in New Issue
Block a user