elimination of MUSR-115 bug
This commit is contained in:
parent
686419119f
commit
ee2bb20c62
@ -1841,17 +1841,11 @@ void PMusrCanvas::HandleFourier()
|
|||||||
|
|
||||||
// check if fourier needs to be calculated
|
// check if fourier needs to be calculated
|
||||||
if (fData[0].dataFourierRe == 0) {
|
if (fData[0].dataFourierRe == 0) {
|
||||||
//cout << endl << ">> Recalculate Fourier ----------------------------------------";
|
|
||||||
//cout << endl << ">> fData[0].data = " << fData[0].data;
|
|
||||||
Int_t bin;
|
Int_t bin;
|
||||||
bin = fHistoFrame->GetXaxis()->GetFirst();
|
bin = fHistoFrame->GetXaxis()->GetFirst();
|
||||||
//cout << endl << ">> start bin = " << bin;
|
|
||||||
double startTime = fHistoFrame->GetBinCenter(bin);
|
double startTime = fHistoFrame->GetBinCenter(bin);
|
||||||
//cout << endl << ">> start time = " << startTime;
|
|
||||||
bin = fHistoFrame->GetXaxis()->GetLast();
|
bin = fHistoFrame->GetXaxis()->GetLast();
|
||||||
//cout << endl << ">> end bin = " << bin;
|
|
||||||
double endTime = fHistoFrame->GetBinCenter(bin);
|
double endTime = fHistoFrame->GetBinCenter(bin);
|
||||||
//cout << endl << ">> Fourier: startTime = " << startTime << ", endTime = " << endTime;
|
|
||||||
for (UInt_t i=0; i<fData.size(); i++) {
|
for (UInt_t i=0; i<fData.size(); i++) {
|
||||||
// calculate fourier transform of the data
|
// calculate fourier transform of the data
|
||||||
PFourier fourierData(fData[i].data, fFourier.fUnits, startTime, endTime, fFourier.fFourierPower);
|
PFourier fourierData(fData[i].data, fFourier.fUnits, startTime, endTime, fFourier.fFourierPower);
|
||||||
@ -2702,11 +2696,11 @@ void PMusrCanvas::PlotDifference()
|
|||||||
|
|
||||||
if (fPlotType != MSR_PLOT_NON_MUSR) {
|
if (fPlotType != MSR_PLOT_NON_MUSR) {
|
||||||
//cout << endl << ">> PlotDifference(): going to plot diff spectra ... (" << fData[0].diff->GetNbinsX() << ")" << endl;
|
//cout << endl << ">> PlotDifference(): going to plot diff spectra ... (" << fData[0].diff->GetNbinsX() << ")" << endl;
|
||||||
TH1F *hframe = fDataTheoryPad->DrawFrame(fXmin, fYmin, fXmax, fYmax);
|
fHistoFrame = fDataTheoryPad->DrawFrame(fXmin, fYmin, fXmax, fYmax);
|
||||||
// set x-axis label
|
// set x-axis label
|
||||||
hframe->GetXaxis()->SetTitle("time (#mus)");
|
fHistoFrame->GetXaxis()->SetTitle("time (#mus)");
|
||||||
// set y-axis label
|
// set y-axis label
|
||||||
hframe->GetYaxis()->SetTitle("data-theory");
|
fHistoFrame->GetYaxis()->SetTitle("data-theory");
|
||||||
// plot all remaining diff data
|
// plot all remaining diff data
|
||||||
for (UInt_t i=0; i<fData.size(); i++) {
|
for (UInt_t i=0; i<fData.size(); i++) {
|
||||||
fData[i].diff->Draw("pesame");
|
fData[i].diff->Draw("pesame");
|
||||||
@ -2792,49 +2786,41 @@ void PMusrCanvas::PlotFourier()
|
|||||||
}
|
}
|
||||||
|
|
||||||
// plot fourier data
|
// plot fourier data
|
||||||
double min, max, binContent;
|
double xmin, xmax, ymin, ymax, binContent;
|
||||||
switch (fCurrentPlotView) {
|
switch (fCurrentPlotView) {
|
||||||
case PV_FOURIER_REAL:
|
case PV_FOURIER_REAL:
|
||||||
//cout << endl << ">> fData[0].dataFourierRe->GetNbinsX() = " << fData[0].dataFourierRe->GetNbinsX();
|
|
||||||
// plot first histo
|
|
||||||
fData[0].dataFourierRe->Draw("p");
|
|
||||||
|
|
||||||
// set x-range
|
// set x-range
|
||||||
//cout << endl << ">> fPlotRange = " << fFourier.fPlotRange[0] << ", " << fFourier.fPlotRange[1];
|
|
||||||
if ((fFourier.fPlotRange[0] != -1) && (fFourier.fPlotRange[1] != -1)) {
|
if ((fFourier.fPlotRange[0] != -1) && (fFourier.fPlotRange[1] != -1)) {
|
||||||
min = fFourier.fPlotRange[0];
|
xmin = fFourier.fPlotRange[0];
|
||||||
max = fFourier.fPlotRange[1];
|
xmax = fFourier.fPlotRange[1];
|
||||||
} else {
|
} else {
|
||||||
min = fData[0].dataFourierRe->GetBinLowEdge(1);
|
xmin = fData[0].dataFourierRe->GetBinLowEdge(1);
|
||||||
max = fData[0].dataFourierRe->GetBinLowEdge(fData[0].dataFourierRe->GetNbinsX())+fData[0].dataFourierRe->GetBinWidth(1);
|
xmax = fData[0].dataFourierRe->GetBinLowEdge(fData[0].dataFourierRe->GetNbinsX())+fData[0].dataFourierRe->GetBinWidth(1);
|
||||||
}
|
}
|
||||||
//cout << endl << ">> x-range: min, max = " << min << ", " << max;
|
|
||||||
fData[0].dataFourierRe->GetXaxis()->SetRangeUser(min, max);
|
|
||||||
|
|
||||||
// set y-range
|
// set y-range
|
||||||
// first find minimum/maximum of all histos
|
// first find minimum/maximum of all histos
|
||||||
min = GetGlobalMinimum(fData[0].dataFourierRe);
|
ymin = GetGlobalMinimum(fData[0].dataFourierRe);
|
||||||
max = GetGlobalMaximum(fData[0].dataFourierRe);
|
ymax = GetGlobalMaximum(fData[0].dataFourierRe);
|
||||||
//cout << endl << ">> y-range: min, max = " << min << ", " << max;
|
|
||||||
for (UInt_t i=1; i<fData.size(); i++) {
|
for (UInt_t i=1; i<fData.size(); i++) {
|
||||||
binContent = GetGlobalMinimum(fData[i].dataFourierRe);
|
binContent = GetGlobalMinimum(fData[i].dataFourierRe);
|
||||||
if (binContent < min)
|
if (binContent < ymin)
|
||||||
min = binContent;
|
ymin = binContent;
|
||||||
binContent = GetGlobalMaximum(fData[i].dataFourierRe);
|
binContent = GetGlobalMaximum(fData[i].dataFourierRe);
|
||||||
if (binContent > max)
|
if (binContent > ymax)
|
||||||
max = binContent;
|
ymax = binContent;
|
||||||
}
|
}
|
||||||
fData[0].dataFourierRe->GetYaxis()->SetRangeUser(1.05*min, 1.05*max);
|
|
||||||
//cout << endl << "-> min, max = " << min << ", " << max;
|
fHistoFrame = fDataTheoryPad->DrawFrame(xmin, 1.05*ymin, xmax, 1.05*ymax);
|
||||||
|
|
||||||
// set x-axis title
|
// set x-axis title
|
||||||
fData[0].dataFourierRe->GetXaxis()->SetTitle(xAxisTitle.Data());
|
fHistoFrame->GetXaxis()->SetTitle(xAxisTitle.Data());
|
||||||
|
|
||||||
// set y-axis title
|
// set y-axis title
|
||||||
fData[0].dataFourierRe->GetYaxis()->SetTitle("Real Fourier");
|
fHistoFrame->GetYaxis()->SetTitle("Real Fourier");
|
||||||
|
|
||||||
// plot all remaining data
|
// plot data
|
||||||
for (UInt_t i=1; i<fData.size(); i++) {
|
for (UInt_t i=0; i<fData.size(); i++) {
|
||||||
fData[i].dataFourierRe->Draw("psame");
|
fData[i].dataFourierRe->Draw("psame");
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2847,41 +2833,38 @@ void PMusrCanvas::PlotFourier()
|
|||||||
|
|
||||||
break;
|
break;
|
||||||
case PV_FOURIER_IMAG:
|
case PV_FOURIER_IMAG:
|
||||||
// plot first histo
|
|
||||||
fData[0].dataFourierIm->Draw("p");
|
|
||||||
|
|
||||||
// set x-range
|
// set x-range
|
||||||
if ((fFourier.fPlotRange[0] != -1) && (fFourier.fPlotRange[1] != -1)) {
|
if ((fFourier.fPlotRange[0] != -1) && (fFourier.fPlotRange[1] != -1)) {
|
||||||
min = fFourier.fPlotRange[0];
|
xmin = fFourier.fPlotRange[0];
|
||||||
max = fFourier.fPlotRange[1];
|
xmax = fFourier.fPlotRange[1];
|
||||||
} else {
|
} else {
|
||||||
min = fData[0].dataFourierIm->GetBinLowEdge(1);
|
xmin = fData[0].dataFourierIm->GetBinLowEdge(1);
|
||||||
max = fData[0].dataFourierIm->GetBinLowEdge(fData[0].dataFourierIm->GetNbinsX())+fData[0].dataFourierIm->GetBinWidth(1);
|
xmax = fData[0].dataFourierIm->GetBinLowEdge(fData[0].dataFourierIm->GetNbinsX())+fData[0].dataFourierIm->GetBinWidth(1);
|
||||||
}
|
}
|
||||||
fData[0].dataFourierIm->GetXaxis()->SetRangeUser(min, max);
|
|
||||||
|
|
||||||
// set y-range
|
// set y-range
|
||||||
// first find minimum/maximum of all histos
|
// first find minimum/maximum of all histos
|
||||||
min = GetGlobalMinimum(fData[0].dataFourierIm);
|
ymin = GetGlobalMinimum(fData[0].dataFourierIm);
|
||||||
max = GetGlobalMaximum(fData[0].dataFourierIm);
|
ymax = GetGlobalMaximum(fData[0].dataFourierIm);
|
||||||
for (UInt_t i=1; i<fData.size(); i++) {
|
for (UInt_t i=1; i<fData.size(); i++) {
|
||||||
binContent = GetGlobalMinimum(fData[i].dataFourierIm);
|
binContent = GetGlobalMinimum(fData[i].dataFourierIm);
|
||||||
if (binContent < min)
|
if (binContent < ymin)
|
||||||
min = binContent;
|
ymin = binContent;
|
||||||
binContent = GetGlobalMaximum(fData[i].dataFourierIm);
|
binContent = GetGlobalMaximum(fData[i].dataFourierIm);
|
||||||
if (binContent > max)
|
if (binContent > ymax)
|
||||||
max = binContent;
|
ymax = binContent;
|
||||||
}
|
}
|
||||||
fData[0].dataFourierIm->GetYaxis()->SetRangeUser(1.05*min, 1.05*max);
|
|
||||||
|
fHistoFrame = fDataTheoryPad->DrawFrame(xmin, 1.05*ymin, xmax, 1.05*ymax);
|
||||||
|
|
||||||
// set x-axis title
|
// set x-axis title
|
||||||
fData[0].dataFourierIm->GetXaxis()->SetTitle(xAxisTitle.Data());
|
fHistoFrame->GetXaxis()->SetTitle(xAxisTitle.Data());
|
||||||
|
|
||||||
// set y-axis title
|
// set y-axis title
|
||||||
fData[0].dataFourierIm->GetYaxis()->SetTitle("Imaginary Fourier");
|
fHistoFrame->GetYaxis()->SetTitle("Imaginary Fourier");
|
||||||
|
|
||||||
// plot all remaining data
|
// plot data
|
||||||
for (UInt_t i=1; i<fData.size(); i++) {
|
for (UInt_t i=0; i<fData.size(); i++) {
|
||||||
fData[i].dataFourierIm->Draw("psame");
|
fData[i].dataFourierIm->Draw("psame");
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2894,52 +2877,48 @@ void PMusrCanvas::PlotFourier()
|
|||||||
|
|
||||||
break;
|
break;
|
||||||
case PV_FOURIER_REAL_AND_IMAG:
|
case PV_FOURIER_REAL_AND_IMAG:
|
||||||
// plot first histo
|
|
||||||
fData[0].dataFourierRe->Draw("p");
|
|
||||||
|
|
||||||
// set x-range
|
// set x-range
|
||||||
if ((fFourier.fPlotRange[0] != -1) && (fFourier.fPlotRange[1] != -1)) {
|
if ((fFourier.fPlotRange[0] != -1) && (fFourier.fPlotRange[1] != -1)) {
|
||||||
min = fFourier.fPlotRange[0];
|
xmin = fFourier.fPlotRange[0];
|
||||||
max = fFourier.fPlotRange[1];
|
xmax = fFourier.fPlotRange[1];
|
||||||
} else {
|
} else {
|
||||||
min = fData[0].dataFourierRe->GetBinLowEdge(1);
|
xmin = fData[0].dataFourierRe->GetBinLowEdge(1);
|
||||||
max = fData[0].dataFourierRe->GetBinLowEdge(fData[0].dataFourierRe->GetNbinsX())+fData[0].dataFourierRe->GetBinWidth(1);
|
xmax = fData[0].dataFourierRe->GetBinLowEdge(fData[0].dataFourierRe->GetNbinsX())+fData[0].dataFourierRe->GetBinWidth(1);
|
||||||
}
|
}
|
||||||
fData[0].dataFourierRe->GetXaxis()->SetRangeUser(min, max);
|
|
||||||
|
|
||||||
// set y-range
|
// set y-range
|
||||||
// first find minimum/maximum of all histos
|
// first find minimum/maximum of all histos
|
||||||
// real part first
|
// real part first
|
||||||
min = GetGlobalMinimum(fData[0].dataFourierRe);
|
ymin = GetGlobalMinimum(fData[0].dataFourierRe);
|
||||||
max = GetGlobalMaximum(fData[0].dataFourierRe);
|
ymax = GetGlobalMaximum(fData[0].dataFourierRe);
|
||||||
for (UInt_t i=1; i<fData.size(); i++) {
|
for (UInt_t i=1; i<fData.size(); i++) {
|
||||||
binContent = GetGlobalMinimum(fData[i].dataFourierRe);
|
binContent = GetGlobalMinimum(fData[i].dataFourierRe);
|
||||||
if (binContent < min)
|
if (binContent < ymin)
|
||||||
min = binContent;
|
ymin = binContent;
|
||||||
binContent = GetGlobalMaximum(fData[i].dataFourierRe);
|
binContent = GetGlobalMaximum(fData[i].dataFourierRe);
|
||||||
if (binContent > max)
|
if (binContent > ymax)
|
||||||
max = binContent;
|
ymax = binContent;
|
||||||
}
|
}
|
||||||
// imag part min/max
|
// imag part min/max
|
||||||
for (UInt_t i=0; i<fData.size(); i++) {
|
for (UInt_t i=0; i<fData.size(); i++) {
|
||||||
binContent = GetGlobalMinimum(fData[i].dataFourierIm);
|
binContent = GetGlobalMinimum(fData[i].dataFourierIm);
|
||||||
if (binContent < min)
|
if (binContent < ymin)
|
||||||
min = binContent;
|
ymin = binContent;
|
||||||
binContent = GetGlobalMaximum(fData[i].dataFourierIm);
|
binContent = GetGlobalMaximum(fData[i].dataFourierIm);
|
||||||
if (binContent > max)
|
if (binContent > ymax)
|
||||||
max = binContent;
|
ymax = binContent;
|
||||||
}
|
}
|
||||||
fData[0].dataFourierRe->GetYaxis()->SetRangeUser(1.05*min, 1.05*max);
|
|
||||||
|
fHistoFrame = fDataTheoryPad->DrawFrame(xmin, 1.05*ymin, xmax, 1.05*ymax);
|
||||||
|
|
||||||
// set x-axis title
|
// set x-axis title
|
||||||
fData[0].dataFourierRe->GetXaxis()->SetTitle(xAxisTitle.Data());
|
fHistoFrame->GetXaxis()->SetTitle(xAxisTitle.Data());
|
||||||
|
|
||||||
// set y-axis title
|
// set y-axis title
|
||||||
fData[0].dataFourierRe->GetYaxis()->SetTitle("Real/Imag Fourier");
|
fHistoFrame->GetYaxis()->SetTitle("Real/Imag Fourier");
|
||||||
|
|
||||||
// plot all remaining data
|
// plot data
|
||||||
fData[0].dataFourierIm->Draw("psame");
|
for (UInt_t i=0; i<fData.size(); i++) {
|
||||||
for (UInt_t i=1; i<fData.size(); i++) {
|
|
||||||
fData[i].dataFourierRe->Draw("psame");
|
fData[i].dataFourierRe->Draw("psame");
|
||||||
fData[i].dataFourierIm->Draw("psame");
|
fData[i].dataFourierIm->Draw("psame");
|
||||||
}
|
}
|
||||||
@ -2954,41 +2933,38 @@ void PMusrCanvas::PlotFourier()
|
|||||||
|
|
||||||
break;
|
break;
|
||||||
case PV_FOURIER_PWR:
|
case PV_FOURIER_PWR:
|
||||||
// plot first histo
|
|
||||||
fData[0].dataFourierPwr->Draw("p");
|
|
||||||
|
|
||||||
// set x-range
|
// set x-range
|
||||||
if ((fFourier.fPlotRange[0] != -1) && (fFourier.fPlotRange[1] != -1)) {
|
if ((fFourier.fPlotRange[0] != -1) && (fFourier.fPlotRange[1] != -1)) {
|
||||||
min = fFourier.fPlotRange[0];
|
xmin = fFourier.fPlotRange[0];
|
||||||
max = fFourier.fPlotRange[1];
|
xmax = fFourier.fPlotRange[1];
|
||||||
} else {
|
} else {
|
||||||
min = fData[0].dataFourierPwr->GetBinLowEdge(1);
|
xmin = fData[0].dataFourierPwr->GetBinLowEdge(1);
|
||||||
max = fData[0].dataFourierPwr->GetBinLowEdge(fData[0].dataFourierPwr->GetNbinsX())+fData[0].dataFourierPwr->GetBinWidth(1);
|
xmax = fData[0].dataFourierPwr->GetBinLowEdge(fData[0].dataFourierPwr->GetNbinsX())+fData[0].dataFourierPwr->GetBinWidth(1);
|
||||||
}
|
}
|
||||||
fData[0].dataFourierPwr->GetXaxis()->SetRangeUser(min, max);
|
|
||||||
|
|
||||||
// set y-range
|
// set y-range
|
||||||
// first find minimum/maximum of all histos
|
// first find minimum/maximum of all histos
|
||||||
min = GetGlobalMinimum(fData[0].dataFourierPwr);
|
ymin = GetGlobalMinimum(fData[0].dataFourierPwr);
|
||||||
max = GetGlobalMaximum(fData[0].dataFourierPwr);
|
ymax = GetGlobalMaximum(fData[0].dataFourierPwr);
|
||||||
for (UInt_t i=1; i<fData.size(); i++) {
|
for (UInt_t i=1; i<fData.size(); i++) {
|
||||||
binContent = GetGlobalMinimum(fData[i].dataFourierPwr);
|
binContent = GetGlobalMinimum(fData[i].dataFourierPwr);
|
||||||
if (binContent < min)
|
if (binContent < ymin)
|
||||||
min = binContent;
|
ymin = binContent;
|
||||||
binContent = GetGlobalMaximum(fData[i].dataFourierPwr);
|
binContent = GetGlobalMaximum(fData[i].dataFourierPwr);
|
||||||
if (binContent > max)
|
if (binContent > ymax)
|
||||||
max = binContent;
|
ymax = binContent;
|
||||||
}
|
}
|
||||||
fData[0].dataFourierPwr->GetYaxis()->SetRangeUser(1.05*min, 1.05*max);
|
|
||||||
|
fHistoFrame = fDataTheoryPad->DrawFrame(xmin, 1.05*ymin, xmax, 1.05*ymax);
|
||||||
|
|
||||||
// set x-axis title
|
// set x-axis title
|
||||||
fData[0].dataFourierPwr->GetXaxis()->SetTitle(xAxisTitle.Data());
|
fHistoFrame->GetXaxis()->SetTitle(xAxisTitle.Data());
|
||||||
|
|
||||||
// set y-axis title
|
// set y-axis title
|
||||||
fData[0].dataFourierPwr->GetYaxis()->SetTitle("Power Fourier");
|
fHistoFrame->GetYaxis()->SetTitle("Power Fourier");
|
||||||
|
|
||||||
// plot all remaining data
|
// plot data
|
||||||
for (UInt_t i=1; i<fData.size(); i++) {
|
for (UInt_t i=0; i<fData.size(); i++) {
|
||||||
fData[i].dataFourierPwr->Draw("psame");
|
fData[i].dataFourierPwr->Draw("psame");
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2999,41 +2975,38 @@ void PMusrCanvas::PlotFourier()
|
|||||||
|
|
||||||
break;
|
break;
|
||||||
case PV_FOURIER_PHASE:
|
case PV_FOURIER_PHASE:
|
||||||
// plot first histo
|
|
||||||
fData[0].dataFourierPhase->Draw("p");
|
|
||||||
|
|
||||||
// set x-range
|
// set x-range
|
||||||
if ((fFourier.fPlotRange[0] != -1) && (fFourier.fPlotRange[1] != -1)) {
|
if ((fFourier.fPlotRange[0] != -1) && (fFourier.fPlotRange[1] != -1)) {
|
||||||
min = fFourier.fPlotRange[0];
|
xmin = fFourier.fPlotRange[0];
|
||||||
max = fFourier.fPlotRange[1];
|
xmax = fFourier.fPlotRange[1];
|
||||||
} else {
|
} else {
|
||||||
min = fData[0].dataFourierPhase->GetBinLowEdge(1);
|
xmin = fData[0].dataFourierPhase->GetBinLowEdge(1);
|
||||||
max = fData[0].dataFourierPhase->GetBinLowEdge(fData[0].dataFourierPhase->GetNbinsX())+fData[0].dataFourierPhase->GetBinWidth(1);
|
xmax = fData[0].dataFourierPhase->GetBinLowEdge(fData[0].dataFourierPhase->GetNbinsX())+fData[0].dataFourierPhase->GetBinWidth(1);
|
||||||
}
|
}
|
||||||
fData[0].dataFourierPhase->GetXaxis()->SetRangeUser(min, max);
|
|
||||||
|
|
||||||
// set y-range
|
// set y-range
|
||||||
// first find minimum/maximum of all histos
|
// first find minimum/maximum of all histos
|
||||||
min = GetGlobalMinimum(fData[0].dataFourierPhase);
|
ymin = GetGlobalMinimum(fData[0].dataFourierPhase);
|
||||||
max = GetGlobalMaximum(fData[0].dataFourierPhase);
|
ymax = GetGlobalMaximum(fData[0].dataFourierPhase);
|
||||||
for (UInt_t i=1; i<fData.size(); i++) {
|
for (UInt_t i=1; i<fData.size(); i++) {
|
||||||
binContent = GetGlobalMinimum(fData[i].dataFourierPhase);
|
binContent = GetGlobalMinimum(fData[i].dataFourierPhase);
|
||||||
if (binContent < min)
|
if (binContent < ymin)
|
||||||
min = binContent;
|
ymin = binContent;
|
||||||
binContent = GetGlobalMaximum(fData[i].dataFourierPhase);
|
binContent = GetGlobalMaximum(fData[i].dataFourierPhase);
|
||||||
if (binContent > max)
|
if (binContent > ymax)
|
||||||
max = binContent;
|
ymax = binContent;
|
||||||
}
|
}
|
||||||
fData[0].dataFourierPhase->GetYaxis()->SetRangeUser(1.05*min, 1.05*max);
|
|
||||||
|
fHistoFrame = fDataTheoryPad->DrawFrame(xmin, 1.05*ymin, xmax, 1.05*ymax);
|
||||||
|
|
||||||
// set x-axis title
|
// set x-axis title
|
||||||
fData[0].dataFourierPhase->GetXaxis()->SetTitle(xAxisTitle.Data());
|
fHistoFrame->GetXaxis()->SetTitle(xAxisTitle.Data());
|
||||||
|
|
||||||
// set y-axis title
|
// set y-axis title
|
||||||
fData[0].dataFourierPhase->GetYaxis()->SetTitle("Phase Fourier");
|
fHistoFrame->GetYaxis()->SetTitle("Phase Fourier");
|
||||||
|
|
||||||
// plot all remaining data
|
// plot data
|
||||||
for (UInt_t i=1; i<fData.size(); i++) {
|
for (UInt_t i=0; i<fData.size(); i++) {
|
||||||
fData[i].dataFourierPhase->Draw("psame");
|
fData[i].dataFourierPhase->Draw("psame");
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3090,49 +3063,41 @@ void PMusrCanvas::PlotFourierDifference()
|
|||||||
}
|
}
|
||||||
|
|
||||||
// plot data
|
// plot data
|
||||||
double min, max, binContent;
|
double xmin, xmax, ymin, ymax, binContent;
|
||||||
switch (fCurrentPlotView) {
|
switch (fCurrentPlotView) {
|
||||||
case PV_FOURIER_REAL:
|
case PV_FOURIER_REAL:
|
||||||
//cout << endl << ">> fData[0].diffFourierRe->GetNbinsX() = " << fData[0].diffFourierRe->GetNbinsX();
|
|
||||||
// plot first histo
|
|
||||||
fData[0].diffFourierRe->Draw("pl");
|
|
||||||
|
|
||||||
// set x-range
|
// set x-range
|
||||||
//cout << endl << ">> fPlotRange = " << fFourier.fPlotRange[0] << ", " << fFourier.fPlotRange[1];
|
|
||||||
if ((fFourier.fPlotRange[0] != -1) && (fFourier.fPlotRange[1] != -1)) {
|
if ((fFourier.fPlotRange[0] != -1) && (fFourier.fPlotRange[1] != -1)) {
|
||||||
min = fFourier.fPlotRange[0];
|
xmin = fFourier.fPlotRange[0];
|
||||||
max = fFourier.fPlotRange[1];
|
xmax = fFourier.fPlotRange[1];
|
||||||
} else {
|
} else {
|
||||||
min = fData[0].diffFourierRe->GetBinLowEdge(1);
|
xmin = fData[0].diffFourierRe->GetBinLowEdge(1);
|
||||||
max = fData[0].diffFourierRe->GetBinLowEdge(fData[0].diffFourierRe->GetNbinsX())+fData[0].diffFourierRe->GetBinWidth(1);
|
xmax = fData[0].diffFourierRe->GetBinLowEdge(fData[0].diffFourierRe->GetNbinsX())+fData[0].diffFourierRe->GetBinWidth(1);
|
||||||
}
|
}
|
||||||
//cout << endl << ">> x-range: min, max = " << min << ", " << max;
|
|
||||||
fData[0].diffFourierRe->GetXaxis()->SetRangeUser(min, max);
|
|
||||||
|
|
||||||
// set y-range
|
// set y-range
|
||||||
// first find minimum/maximum of all histos
|
// first find minimum/maximum of all histos
|
||||||
min = GetGlobalMinimum(fData[0].diffFourierRe);
|
ymin = GetGlobalMinimum(fData[0].diffFourierRe);
|
||||||
max = GetGlobalMaximum(fData[0].diffFourierRe);
|
ymax = GetGlobalMaximum(fData[0].diffFourierRe);
|
||||||
//cout << endl << ">> y-range: min, max = " << min << ", " << max;
|
|
||||||
for (UInt_t i=1; i<fData.size(); i++) {
|
for (UInt_t i=1; i<fData.size(); i++) {
|
||||||
binContent = GetGlobalMinimum(fData[i].diffFourierRe);
|
binContent = GetGlobalMinimum(fData[i].diffFourierRe);
|
||||||
if (binContent < min)
|
if (binContent < ymin)
|
||||||
min = binContent;
|
ymin = binContent;
|
||||||
binContent = GetGlobalMaximum(fData[i].diffFourierRe);
|
binContent = GetGlobalMaximum(fData[i].diffFourierRe);
|
||||||
if (binContent > max)
|
if (binContent > ymax)
|
||||||
max = binContent;
|
ymax = binContent;
|
||||||
}
|
}
|
||||||
fData[0].diffFourierRe->GetYaxis()->SetRangeUser(1.05*min, 1.05*max);
|
|
||||||
//cout << endl << "-> min, max = " << min << ", " << max;
|
fHistoFrame = fDataTheoryPad->DrawFrame(xmin, 1.05*ymin, xmax, 1.05*ymax);
|
||||||
|
|
||||||
// set x-axis title
|
// set x-axis title
|
||||||
fData[0].diffFourierRe->GetXaxis()->SetTitle(xAxisTitle.Data());
|
fHistoFrame->GetXaxis()->SetTitle(xAxisTitle.Data());
|
||||||
|
|
||||||
// set y-axis title
|
// set y-axis title
|
||||||
fData[0].diffFourierRe->GetYaxis()->SetTitle("Real Fourier");
|
fHistoFrame->GetYaxis()->SetTitle("Real Fourier");
|
||||||
|
|
||||||
// plot all remaining data
|
// plot data
|
||||||
for (UInt_t i=1; i<fData.size(); i++) {
|
for (UInt_t i=0; i<fData.size(); i++) {
|
||||||
fData[i].diffFourierRe->Draw("plsame");
|
fData[i].diffFourierRe->Draw("plsame");
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3140,41 +3105,37 @@ void PMusrCanvas::PlotFourierDifference()
|
|||||||
|
|
||||||
break;
|
break;
|
||||||
case PV_FOURIER_IMAG:
|
case PV_FOURIER_IMAG:
|
||||||
// plot first histo
|
|
||||||
fData[0].diffFourierIm->Draw("pl");
|
|
||||||
|
|
||||||
// set x-range
|
// set x-range
|
||||||
if ((fFourier.fPlotRange[0] != -1) && (fFourier.fPlotRange[1] != -1)) {
|
if ((fFourier.fPlotRange[0] != -1) && (fFourier.fPlotRange[1] != -1)) {
|
||||||
min = fFourier.fPlotRange[0];
|
xmin = fFourier.fPlotRange[0];
|
||||||
max = fFourier.fPlotRange[1];
|
xmax = fFourier.fPlotRange[1];
|
||||||
} else {
|
} else {
|
||||||
min = fData[0].diffFourierIm->GetBinLowEdge(1);
|
xmin = fData[0].diffFourierIm->GetBinLowEdge(1);
|
||||||
max = fData[0].diffFourierIm->GetBinLowEdge(fData[0].diffFourierIm->GetNbinsX())+fData[0].diffFourierIm->GetBinWidth(1);
|
xmax = fData[0].diffFourierIm->GetBinLowEdge(fData[0].diffFourierIm->GetNbinsX())+fData[0].diffFourierIm->GetBinWidth(1);
|
||||||
}
|
}
|
||||||
fData[0].diffFourierIm->GetXaxis()->SetRangeUser(min, max);
|
|
||||||
|
|
||||||
// set y-range
|
// set y-range
|
||||||
// first find minimum/maximum of all histos
|
// first find minimum/maximum of all histos
|
||||||
min = GetGlobalMinimum(fData[0].diffFourierIm);
|
ymin = GetGlobalMinimum(fData[0].diffFourierIm);
|
||||||
max = GetGlobalMaximum(fData[0].diffFourierIm);
|
ymax = GetGlobalMaximum(fData[0].diffFourierIm);
|
||||||
for (UInt_t i=1; i<fData.size(); i++) {
|
for (UInt_t i=1; i<fData.size(); i++) {
|
||||||
binContent = GetGlobalMinimum(fData[i].diffFourierIm);
|
binContent = GetGlobalMinimum(fData[i].diffFourierIm);
|
||||||
if (binContent < min)
|
if (binContent < ymin)
|
||||||
min = binContent;
|
ymin = binContent;
|
||||||
binContent = GetGlobalMaximum(fData[i].diffFourierIm);
|
binContent = GetGlobalMaximum(fData[i].diffFourierIm);
|
||||||
if (binContent > max)
|
if (binContent > ymax)
|
||||||
max = binContent;
|
ymax = binContent;
|
||||||
}
|
}
|
||||||
fData[0].diffFourierIm->GetYaxis()->SetRangeUser(1.05*min, 1.05*max);
|
fHistoFrame = fDataTheoryPad->DrawFrame(xmin, 1.05*ymin, xmax, 1.05*ymax);
|
||||||
|
|
||||||
// set x-axis title
|
// set x-axis title
|
||||||
fData[0].diffFourierIm->GetXaxis()->SetTitle(xAxisTitle.Data());
|
fHistoFrame->GetXaxis()->SetTitle(xAxisTitle.Data());
|
||||||
|
|
||||||
// set y-axis title
|
// set y-axis title
|
||||||
fData[0].diffFourierIm->GetYaxis()->SetTitle("Imaginary Fourier");
|
fHistoFrame->GetYaxis()->SetTitle("Imaginary Fourier");
|
||||||
|
|
||||||
// plot all remaining data
|
// plot data
|
||||||
for (UInt_t i=1; i<fData.size(); i++) {
|
for (UInt_t i=0; i<fData.size(); i++) {
|
||||||
fData[i].diffFourierIm->Draw("plsame");
|
fData[i].diffFourierIm->Draw("plsame");
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3182,50 +3143,45 @@ void PMusrCanvas::PlotFourierDifference()
|
|||||||
|
|
||||||
break;
|
break;
|
||||||
case PV_FOURIER_REAL_AND_IMAG:
|
case PV_FOURIER_REAL_AND_IMAG:
|
||||||
// plot first histo
|
|
||||||
fData[0].diffFourierRe->Draw("pl");
|
|
||||||
|
|
||||||
// set x-range
|
// set x-range
|
||||||
if ((fFourier.fPlotRange[0] != -1) && (fFourier.fPlotRange[1] != -1)) {
|
if ((fFourier.fPlotRange[0] != -1) && (fFourier.fPlotRange[1] != -1)) {
|
||||||
min = fFourier.fPlotRange[0];
|
xmin = fFourier.fPlotRange[0];
|
||||||
max = fFourier.fPlotRange[1];
|
xmax = fFourier.fPlotRange[1];
|
||||||
} else {
|
} else {
|
||||||
min = fData[0].diffFourierRe->GetBinLowEdge(1);
|
xmin = fData[0].diffFourierRe->GetBinLowEdge(1);
|
||||||
max = fData[0].diffFourierRe->GetBinLowEdge(fData[0].diffFourierRe->GetNbinsX())+fData[0].diffFourierRe->GetBinWidth(1);
|
xmax = fData[0].diffFourierRe->GetBinLowEdge(fData[0].diffFourierRe->GetNbinsX())+fData[0].diffFourierRe->GetBinWidth(1);
|
||||||
}
|
}
|
||||||
fData[0].diffFourierRe->GetXaxis()->SetRangeUser(min, max);
|
|
||||||
|
|
||||||
// set y-range
|
// set y-range
|
||||||
// first find minimum/maximum of all histos
|
// first find minimum/maximum of all histos
|
||||||
min = GetGlobalMinimum(fData[0].diffFourierRe);
|
ymin = GetGlobalMinimum(fData[0].diffFourierRe);
|
||||||
max = GetGlobalMaximum(fData[0].diffFourierRe);
|
ymax = GetGlobalMaximum(fData[0].diffFourierRe);
|
||||||
for (UInt_t i=1; i<fData.size(); i++) {
|
for (UInt_t i=1; i<fData.size(); i++) {
|
||||||
binContent = GetGlobalMinimum(fData[i].diffFourierRe);
|
binContent = GetGlobalMinimum(fData[i].diffFourierRe);
|
||||||
if (binContent < min)
|
if (binContent < ymin)
|
||||||
min = binContent;
|
ymin = binContent;
|
||||||
binContent = GetGlobalMaximum(fData[i].diffFourierRe);
|
binContent = GetGlobalMaximum(fData[i].diffFourierRe);
|
||||||
if (binContent > max)
|
if (binContent > ymax)
|
||||||
max = binContent;
|
ymax = binContent;
|
||||||
}
|
}
|
||||||
for (UInt_t i=0; i<fData.size(); i++) {
|
for (UInt_t i=0; i<fData.size(); i++) {
|
||||||
binContent = GetGlobalMinimum(fData[i].diffFourierIm);
|
binContent = GetGlobalMinimum(fData[i].diffFourierIm);
|
||||||
if (binContent < min)
|
if (binContent < ymin)
|
||||||
min = binContent;
|
ymin = binContent;
|
||||||
binContent = GetGlobalMaximum(fData[i].diffFourierIm);
|
binContent = GetGlobalMaximum(fData[i].diffFourierIm);
|
||||||
if (binContent > max)
|
if (binContent > ymax)
|
||||||
max = binContent;
|
ymax = binContent;
|
||||||
}
|
}
|
||||||
fData[0].diffFourierRe->GetYaxis()->SetRangeUser(1.05*min, 1.05*max);
|
fHistoFrame = fDataTheoryPad->DrawFrame(xmin, 1.05*ymin, xmax, 1.05*ymax);
|
||||||
|
|
||||||
// set x-axis title
|
// set x-axis title
|
||||||
fData[0].diffFourierRe->GetXaxis()->SetTitle(xAxisTitle.Data());
|
fHistoFrame->GetXaxis()->SetTitle(xAxisTitle.Data());
|
||||||
|
|
||||||
// set y-axis title
|
// set y-axis title
|
||||||
fData[0].diffFourierRe->GetYaxis()->SetTitle("Real+Imag Fourier");
|
fHistoFrame->GetYaxis()->SetTitle("Real+Imag Fourier");
|
||||||
|
|
||||||
// plot all remaining data
|
// plot data
|
||||||
fData[0].diffFourierIm->Draw("plsame");
|
for (UInt_t i=0; i<fData.size(); i++) {
|
||||||
for (UInt_t i=1; i<fData.size(); i++) {
|
|
||||||
fData[i].diffFourierRe->Draw("plsame");
|
fData[i].diffFourierRe->Draw("plsame");
|
||||||
fData[i].diffFourierIm->Draw("plsame");
|
fData[i].diffFourierIm->Draw("plsame");
|
||||||
}
|
}
|
||||||
@ -3234,41 +3190,37 @@ void PMusrCanvas::PlotFourierDifference()
|
|||||||
|
|
||||||
break;
|
break;
|
||||||
case PV_FOURIER_PWR:
|
case PV_FOURIER_PWR:
|
||||||
// plot first histo
|
|
||||||
fData[0].diffFourierPwr->Draw("pl");
|
|
||||||
|
|
||||||
// set x-range
|
// set x-range
|
||||||
if ((fFourier.fPlotRange[0] != -1) && (fFourier.fPlotRange[1] != -1)) {
|
if ((fFourier.fPlotRange[0] != -1) && (fFourier.fPlotRange[1] != -1)) {
|
||||||
min = fFourier.fPlotRange[0];
|
xmin = fFourier.fPlotRange[0];
|
||||||
max = fFourier.fPlotRange[1];
|
xmax = fFourier.fPlotRange[1];
|
||||||
} else {
|
} else {
|
||||||
min = fData[0].diffFourierPwr->GetBinLowEdge(1);
|
xmin = fData[0].diffFourierPwr->GetBinLowEdge(1);
|
||||||
max = fData[0].diffFourierPwr->GetBinLowEdge(fData[0].diffFourierPwr->GetNbinsX())+fData[0].diffFourierPwr->GetBinWidth(1);
|
xmax = fData[0].diffFourierPwr->GetBinLowEdge(fData[0].diffFourierPwr->GetNbinsX())+fData[0].diffFourierPwr->GetBinWidth(1);
|
||||||
}
|
}
|
||||||
fData[0].diffFourierPwr->GetXaxis()->SetRangeUser(min, max);
|
|
||||||
|
|
||||||
// set y-range
|
// set y-range
|
||||||
// first find minimum/maximum of all histos
|
// first find minimum/maximum of all histos
|
||||||
min = GetGlobalMinimum(fData[0].diffFourierPwr);
|
ymin = GetGlobalMinimum(fData[0].diffFourierPwr);
|
||||||
max = GetGlobalMaximum(fData[0].diffFourierPwr);
|
ymax = GetGlobalMaximum(fData[0].diffFourierPwr);
|
||||||
for (UInt_t i=1; i<fData.size(); i++) {
|
for (UInt_t i=1; i<fData.size(); i++) {
|
||||||
binContent = GetGlobalMinimum(fData[i].diffFourierPwr);
|
binContent = GetGlobalMinimum(fData[i].diffFourierPwr);
|
||||||
if (binContent < min)
|
if (binContent < ymin)
|
||||||
min = binContent;
|
ymin = binContent;
|
||||||
binContent = GetGlobalMaximum(fData[i].diffFourierPwr);
|
binContent = GetGlobalMaximum(fData[i].diffFourierPwr);
|
||||||
if (binContent > max)
|
if (binContent > ymax)
|
||||||
max = binContent;
|
ymax = binContent;
|
||||||
}
|
}
|
||||||
fData[0].diffFourierPwr->GetYaxis()->SetRangeUser(1.05*min, 1.05*max);
|
fHistoFrame = fDataTheoryPad->DrawFrame(xmin, 1.05*ymin, xmax, 1.05*ymax);
|
||||||
|
|
||||||
// set x-axis title
|
// set x-axis title
|
||||||
fData[0].diffFourierPwr->GetXaxis()->SetTitle(xAxisTitle.Data());
|
fHistoFrame->GetXaxis()->SetTitle(xAxisTitle.Data());
|
||||||
|
|
||||||
// set y-axis title
|
// set y-axis title
|
||||||
fData[0].diffFourierPwr->GetYaxis()->SetTitle("Power Fourier");
|
fHistoFrame->GetYaxis()->SetTitle("Power Fourier");
|
||||||
|
|
||||||
// plot all remaining data
|
// plot data
|
||||||
for (UInt_t i=1; i<fData.size(); i++) {
|
for (UInt_t i=0; i<fData.size(); i++) {
|
||||||
fData[i].diffFourierPwr->Draw("plsame");
|
fData[i].diffFourierPwr->Draw("plsame");
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3276,41 +3228,37 @@ void PMusrCanvas::PlotFourierDifference()
|
|||||||
|
|
||||||
break;
|
break;
|
||||||
case PV_FOURIER_PHASE:
|
case PV_FOURIER_PHASE:
|
||||||
// plot first histo
|
|
||||||
fData[0].diffFourierPhase->Draw("pl");
|
|
||||||
|
|
||||||
// set x-range
|
// set x-range
|
||||||
if ((fFourier.fPlotRange[0] != -1) && (fFourier.fPlotRange[1] != -1)) {
|
if ((fFourier.fPlotRange[0] != -1) && (fFourier.fPlotRange[1] != -1)) {
|
||||||
min = fFourier.fPlotRange[0];
|
xmin = fFourier.fPlotRange[0];
|
||||||
max = fFourier.fPlotRange[1];
|
xmax = fFourier.fPlotRange[1];
|
||||||
} else {
|
} else {
|
||||||
min = fData[0].diffFourierPhase->GetBinLowEdge(1);
|
xmin = fData[0].diffFourierPhase->GetBinLowEdge(1);
|
||||||
max = fData[0].diffFourierPhase->GetBinLowEdge(fData[0].diffFourierPhase->GetNbinsX())+fData[0].diffFourierPhase->GetBinWidth(1);
|
xmax = fData[0].diffFourierPhase->GetBinLowEdge(fData[0].diffFourierPhase->GetNbinsX())+fData[0].diffFourierPhase->GetBinWidth(1);
|
||||||
}
|
}
|
||||||
fData[0].diffFourierPhase->GetXaxis()->SetRangeUser(min, max);
|
|
||||||
|
|
||||||
// set y-range
|
// set y-range
|
||||||
// first find minimum/maximum of all histos
|
// first find minimum/maximum of all histos
|
||||||
min = GetGlobalMinimum(fData[0].diffFourierPhase);
|
ymin = GetGlobalMinimum(fData[0].diffFourierPhase);
|
||||||
max = GetGlobalMaximum(fData[0].diffFourierPhase);
|
ymax = GetGlobalMaximum(fData[0].diffFourierPhase);
|
||||||
for (UInt_t i=1; i<fData.size(); i++) {
|
for (UInt_t i=1; i<fData.size(); i++) {
|
||||||
binContent = GetGlobalMinimum(fData[i].diffFourierPhase);
|
binContent = GetGlobalMinimum(fData[i].diffFourierPhase);
|
||||||
if (binContent < min)
|
if (binContent < ymin)
|
||||||
min = binContent;
|
ymin = binContent;
|
||||||
binContent = GetGlobalMaximum(fData[i].diffFourierPhase);
|
binContent = GetGlobalMaximum(fData[i].diffFourierPhase);
|
||||||
if (binContent > max)
|
if (binContent > ymax)
|
||||||
max = binContent;
|
ymax = binContent;
|
||||||
}
|
}
|
||||||
fData[0].diffFourierPhase->GetYaxis()->SetRangeUser(1.05*min, 1.05*max);
|
fHistoFrame = fDataTheoryPad->DrawFrame(xmin, 1.05*ymin, xmax, 1.05*ymax);
|
||||||
|
|
||||||
// set x-axis title
|
// set x-axis title
|
||||||
fData[0].diffFourierPhase->GetXaxis()->SetTitle(xAxisTitle.Data());
|
fHistoFrame->GetXaxis()->SetTitle(xAxisTitle.Data());
|
||||||
|
|
||||||
// set y-axis title
|
// set y-axis title
|
||||||
fData[0].diffFourierPhase->GetYaxis()->SetTitle("Phase Fourier");
|
fHistoFrame->GetYaxis()->SetTitle("Phase Fourier");
|
||||||
|
|
||||||
// plot all remaining data
|
// plot data
|
||||||
for (UInt_t i=1; i<fData.size(); i++) {
|
for (UInt_t i=0; i<fData.size(); i++) {
|
||||||
fData[i].diffFourierPhase->Draw("plsame");
|
fData[i].diffFourierPhase->Draw("plsame");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user