musrfit  1.9.2
PMusrCanvas.h
Go to the documentation of this file.
1 /***************************************************************************
2 
3  PMusrCanvas.h
4 
5  Author: Andreas Suter
6  e-mail: andreas.suter@psi.ch
7 
8 ***************************************************************************/
9 
10 /***************************************************************************
11  * Copyright (C) 2007-2023 by Andreas Suter *
12  * andreas.suter@psi.ch *
13  * *
14  * This program is free software; you can redistribute it and/or modify *
15  * it under the terms of the GNU General Public License as published by *
16  * the Free Software Foundation; either version 2 of the License, or *
17  * (at your option) any later version. *
18  * *
19  * This program is distributed in the hope that it will be useful, *
20  * but WITHOUT ANY WARRANTY; without even the implied warranty of *
21  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
22  * GNU General Public License for more details. *
23  * *
24  * You should have received a copy of the GNU General Public License *
25  * along with this program; if not, write to the *
26  * Free Software Foundation, Inc., *
27  * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
28  ***************************************************************************/
29 
30 #ifndef _PMUSRCANVAS_H_
31 #define _PMUSRCANVAS_H_
32 
33 #include <TObject.h>
34 #include <TQObject.h>
35 #include <TStyle.h>
36 #include <TRootCanvas.h>
37 #include <TGMenu.h>
38 #include <TCanvas.h>
39 #include <TPaveText.h>
40 #include <TLegend.h>
41 #include <TPad.h>
42 #include <TH1F.h>
43 #include <TGraphErrors.h>
44 #include <TMultiGraph.h>
45 #include <TLatex.h>
46 
47 #include "PMusr.h"
48 #ifndef __MAKECLING__
49 #include "PMsrHandler.h"
50 #include "PRunListCollection.h"
51 #endif // __MAKECLING__
52 
53 #define YINFO 0.1
54 #define YTITLE 0.95
55 #define XTHEO 0.75
56 
57 // Current Plot Views
58 #define PV_DATA 1
59 #define PV_FOURIER_REAL 2
60 #define PV_FOURIER_IMAG 3
61 #define PV_FOURIER_REAL_AND_IMAG 4
62 #define PV_FOURIER_PWR 5
63 #define PV_FOURIER_PHASE 6
64 #define PV_FOURIER_PHASE_OPT_REAL 7
65 
66 // Canvas menu id's
67 #define P_MENU_ID_DATA 10001
68 #define P_MENU_ID_FOURIER 10002
69 #define P_MENU_ID_DIFFERENCE 10003
70 #define P_MENU_ID_AVERAGE 10004
71 #define P_MENU_ID_EXPORT_DATA 10005
72 
73 #define P_MENU_PLOT_OFFSET 1000
74 
75 #define P_MENU_ID_FOURIER_REAL 100
76 #define P_MENU_ID_FOURIER_IMAG 101
77 #define P_MENU_ID_FOURIER_REAL_AND_IMAG 102
78 #define P_MENU_ID_FOURIER_PWR 103
79 #define P_MENU_ID_FOURIER_PHASE 104
80 #define P_MENU_ID_FOURIER_PHASE_OPT_REAL 105
81 #define P_MENU_ID_FOURIER_PHASE_PLUS 106
82 #define P_MENU_ID_FOURIER_PHASE_MINUS 107
83 
84 //------------------------------------------------------------------------
88 class PMusrCanvasPlotRange : public TObject
89 {
90  public:
92  virtual ~PMusrCanvasPlotRange() {}
93 
94  virtual void SetXRange(Double_t xmin, Double_t xmax);
95  virtual void SetYRange(Double_t ymin, Double_t ymax);
96 
97  virtual Bool_t IsXRangePresent() { return fXRangePresent; }
98  virtual Bool_t IsYRangePresent() { return fYRangePresent; }
99 
100  virtual Double_t GetXmin() { return fXmin; }
101  virtual Double_t GetXmax() { return fXmax; }
102  virtual Double_t GetYmin() { return fYmin; }
103  virtual Double_t GetYmax() { return fYmax; }
104 
105  private:
108  Double_t fXmin;
109  Double_t fXmax;
110  Double_t fYmin;
111  Double_t fYmax;
112 
113  ClassDef(PMusrCanvasPlotRange, 1)
114 };
115 
116 //------------------------------------------------------------------------
122  TH1F *data;
128  TH1F *theory;
134  TH1F *diff;
141  UInt_t diffFourierTag;
142 };
143 
144 //------------------------------------------------------------------------
148 typedef std::vector<PMusrCanvasDataSet> PMusrCanvasDataList;
149 
150 //------------------------------------------------------------------------
156  TGraphErrors *data;
157  TGraphErrors *dataFourierRe;
158  TGraphErrors *dataFourierIm;
159  TGraphErrors *dataFourierPwr;
160  TGraphErrors *dataFourierPhase;
161  TGraphErrors *theory;
162  TGraphErrors *theoryFourierRe;
163  TGraphErrors *theoryFourierIm;
164  TGraphErrors *theoryFourierPwr;
165  TGraphErrors *theoryFourierPhase;
166  TGraphErrors *diff;
167  TGraphErrors *diffFourierRe;
168  TGraphErrors *diffFourierIm;
169  TGraphErrors *diffFourierPwr;
170  TGraphErrors *diffFourierPhase;
172  UInt_t diffFourierTag;
173 };
174 
175 //------------------------------------------------------------------------
179 typedef std::vector<PMusrCanvasNonMusrDataSet> PMusrCanvasNonMusrDataList;
180 
181 //------------------------------------------------------------------------
189 };
190 
191 //------------------------------------------------------------------------
196 typedef std::vector<PMusrCanvasAsciiDump> PMusrCanvasAsciiDumpVector;
197 
198 //--------------------------------------------------------------------------
203 class PMusrCanvas : public TObject, public TQObject
204 {
205  public:
206  PMusrCanvas();
207  PMusrCanvas(const Int_t number, const Char_t* title,
208  Int_t wtopx, Int_t wtopy, Int_t ww, Int_t wh, const Bool_t batch,
209  const Bool_t fourier=false, const Bool_t avg=false, const Bool_t theoAsData=false);
210  PMusrCanvas(const Int_t number, const Char_t* title,
211  Int_t wtopx, Int_t wtopy, Int_t ww, Int_t wh,
212  PMsrFourierStructure fourierDefault,
213  const PIntVector markerList, const PIntVector colorList, const Bool_t batch,
214  const Bool_t fourier=false, const Bool_t avg=false, const Bool_t theoAsData=false);
215  virtual ~PMusrCanvas();
216 
217  virtual Bool_t IsValid() { return fValid; }
218 
219 #ifndef __MAKECLING__
220  virtual void SetMsrHandler(PMsrHandler *msrHandler);
221  virtual void SetRunListCollection(PRunListCollection *runList) { fRunList = runList; }
222 #endif // __MAKECLING__
223 
224  virtual void SetTimeout(Int_t ival);
225  virtual void UpdateParamTheoryPad();
226  virtual void UpdateDataTheoryPad();
227  virtual void UpdateInfoPad();
228 
229  virtual void Done(Int_t status=0); // *SIGNAL*
230  virtual void HandleCmdKey(Int_t event, Int_t x, Int_t y, TObject *selected); // SLOT
231  virtual void HandleMenuPopup(Int_t id); // SLOT
232  virtual void LastCanvasClosed(); // SLOT
233  virtual void WindowClosed(); // SLOT
234 
235  virtual void SaveGraphicsAndQuit(Char_t *fileName, Char_t *graphicsFormat);
236  virtual void ExportData(const Char_t *fileName);
237 
238  private:
239  Bool_t fTheoAsData;
241  Bool_t fStartWithAvg;
242  Int_t fTimeout;
243  Bool_t fScaleN0AndBkg;
244  Bool_t fBatchMode;
245  Bool_t fValid;
246  Bool_t fAveragedView;
248  Bool_t fToggleColor;
251  Int_t fPlotType;
252  Int_t fPlotNumber;
253 
255  Double_t fXmin, fXmax, fYmin, fYmax;
256 
258  std::unique_ptr<TLatex> fCurrentFourierPhaseText;
259  std::unique_ptr<TString> fRRFText;
260  std::unique_ptr<TLatex> fRRFLatexText;
261 
262  std::unique_ptr<TStyle> fStyle;
263 
264  std::unique_ptr<TTimer> fTimeoutTimer;
265 
266  // canvas menu related variables
267  TRootCanvas *fImp;
268  TGMenuBar *fBar;
269  TGPopupMenu *fPopupMain;
270  std::unique_ptr<TGPopupMenu> fPopupFourier;
271 
272  // canvas related variables
273  std::unique_ptr<TCanvas> fMainCanvas;
274  std::unique_ptr<TPaveText> fTitlePad;
275  std::unique_ptr<TPad> fDataTheoryPad;
276  std::unique_ptr<TPaveText> fParameterPad;
277  std::unique_ptr<TPaveText> fTheoryPad;
278  std::unique_ptr<TLegend> fInfoPad;
279  std::unique_ptr<TLegend> fMultiGraphLegend;
280 
281  TH1F *fHistoFrame;
282 
283 #ifndef __MAKECLING__
286 #endif // __MAKECLING__
287 
289 
292  TMultiGraph *fMultiGraphData;
293  TMultiGraph *fMultiGraphDiff;
294 
298 
299  virtual void CreateStyle();
300  virtual void InitFourier();
301  virtual void InitAverage();
302  virtual void InitMusrCanvas(const Char_t* title, Int_t wtopx, Int_t wtopy, Int_t ww, Int_t wh);
303  virtual void InitDataSet(PMusrCanvasDataSet &dataSet);
304  virtual void InitDataSet(PMusrCanvasNonMusrDataSet &dataSet);
305  virtual void CleanupDataSet(PMusrCanvasDataSet &dataSet);
306  virtual void CleanupDataSet(PMusrCanvasNonMusrDataSet &dataSet);
307  virtual void HandleDataSet(UInt_t plotNo, UInt_t runNo, PRunData *data);
308  virtual void HandleNonMusrDataSet(UInt_t plotNo, UInt_t runNo, PRunData *data);
309  virtual void HandleDifference();
310  virtual void HandleFourier();
311  virtual void HandleDifferenceFourier();
312  virtual void HandleFourierDifference();
313  virtual void HandleAverage();
314  virtual void CleanupDifference();
315  virtual void CleanupFourier();
316  virtual void CleanupFourierDifference();
317  virtual void CleanupAverage();
318 
319  virtual void CalcPhaseOptReFT();
320  virtual Double_t CalculateDiff(const Double_t x, const Double_t y, TH1F *theo);
321  virtual Double_t CalculateDiff(const Double_t x, const Double_t y, TGraphErrors *theo);
322  virtual Int_t FindBin(const Double_t x, TGraphErrors *graph);
323 
324  virtual Double_t GetMaximum(TH1F* histo, Double_t xmin=-1.0, Double_t xmax=-1.0);
325  virtual Double_t GetMinimum(TH1F* histo, Double_t xmin=-1.0, Double_t xmax=-1.0);
326  virtual Double_t GetMaximum(TGraphErrors* graph, Double_t xmin=-1.0, Double_t xmax=-1.0);
327  virtual Double_t GetMinimum(TGraphErrors* graph, Double_t xmin=-1.0, Double_t xmax=-1.0);
328 
329  virtual void PlotData(Bool_t unzoom=false);
330  virtual void PlotDifference(Bool_t unzoom=false);
331  virtual void PlotFourier(Bool_t unzoom=false);
332  virtual void PlotFourierDifference(Bool_t unzoom=false);
333  virtual void PlotFourierPhaseValue(Bool_t unzoom=false);
334  virtual void PlotAverage(Bool_t unzoom=false);
335  virtual void IncrementFourierPhase();
336  virtual void DecrementFourierPhase();
337 
338  virtual Bool_t IsScaleN0AndBkg();
339  virtual UInt_t GetNeededAccuracy(PMsrParamStructure param);
340 
341  virtual Double_t GetInterpolatedValue(TH1F* histo, Double_t xVal);
342 
343  virtual void GetExportDataSet(const TH1F *data, const Double_t xmin, const Double_t xmax,
344  PMusrCanvasAsciiDumpVector &dumpData, const Bool_t hasError=true);
345 
346  ClassDef(PMusrCanvas, 1)
347 };
348 
349 #endif // _PMUSRCANVAS_H_
virtual void InitDataSet(PMusrCanvasDataSet &dataSet)
Bool_t fValid
if true, everything looks OK
Definition: PMusrCanvas.h:245
Bool_t fYRangePresent
flag indicating if x-/y-range is present
Definition: PMusrCanvas.h:254
std::unique_ptr< TGPopupMenu > fPopupFourier
popup menu of the Musrfit/Fourier sub menu
Definition: PMusrCanvas.h:270
std::unique_ptr< TCanvas > fMainCanvas
main canvas
Definition: PMusrCanvas.h:273
Double_t fYmin
Definition: PMusrCanvas.h:255
UInt_t diffFourierTag
0=not relevant, 1=d-f (Fourier of difference time spectra), 2=f-d (difference of Fourier spectra) ...
Definition: PMusrCanvas.h:172
TH1F * diffFourierIm
imaginary part of the Fourier transform of the diff histogram
Definition: PMusrCanvas.h:136
PMsrFourierStructure fFourier
structure holding all the information necessary to perform the Fourier transform
Definition: PMusrCanvas.h:295
virtual Int_t FindBin(const Double_t x, TGraphErrors *graph)
virtual void HandleFourierDifference()
TGraphErrors * data
data error graph
Definition: PMusrCanvas.h:156
TGraphErrors * diffFourierRe
real part of the Fourier transform of the diff error graph
Definition: PMusrCanvas.h:167
virtual void PlotFourierPhaseValue(Bool_t unzoom=false)
virtual void HandleNonMusrDataSet(UInt_t plotNo, UInt_t runNo, PRunData *data)
virtual void ExportData(const Char_t *fileName)
TH1F * dataFourierIm
imaginary part of the Fourier transform of the data histogram
Definition: PMusrCanvas.h:124
Bool_t fTheoAsData
flag if true, calculate theory points only at the data points
Definition: PMusrCanvas.h:239
virtual void UpdateInfoPad()
Bool_t fScaleN0AndBkg
true=N0 and background is scaled to (1/ns), otherwise (1/bin) for the single histogram case ...
Definition: PMusrCanvas.h:243
virtual void DecrementFourierPhase()
TH1F * theoryFourierPhase
phase spectrum of the Fourier transform of the theory histogram
Definition: PMusrCanvas.h:132
PMusrCanvasNonMusrDataList fNonMusrData
list of all error graphs to be plotted (non-muSR)
Definition: PMusrCanvas.h:291
TGMenuBar * fBar
menu bar
Definition: PMusrCanvas.h:268
TGraphErrors * diffFourierPhase
phase spectrum of the Fourier transform of the diff error graph
Definition: PMusrCanvas.h:170
virtual Bool_t IsYRangePresent()
Definition: PMusrCanvas.h:98
virtual void HandleDataSet(UInt_t plotNo, UInt_t runNo, PRunData *data)
virtual Bool_t IsXRangePresent()
Definition: PMusrCanvas.h:97
virtual Bool_t IsScaleN0AndBkg()
TH1F * dataFourierRe
real part of the Fourier transform of the data histogram
Definition: PMusrCanvas.h:123
std::unique_ptr< TStyle > fStyle
A collection of all graphics attributes.
Definition: PMusrCanvas.h:262
TH1F * dataFourierPhaseOptReal
phase optimized real part spectrum Fourier transform of the data histogram
Definition: PMusrCanvas.h:127
TGraphErrors * theory
theory histogram belonging to the data error graph
Definition: PMusrCanvas.h:161
TH1F * dataFourierPwr
power spectrum of the Fourier transform of the data histogram
Definition: PMusrCanvas.h:125
virtual void UpdateParamTheoryPad()
virtual void PlotFourier(Bool_t unzoom=false)
TGraphErrors * dataFourierPhase
phase spectrum of the Fourier transform of the data error graph
Definition: PMusrCanvas.h:160
virtual void CreateStyle()
TH1F * theory
theory histogram belonging to the data histogram
Definition: PMusrCanvas.h:128
Bool_t fAveragedView
tag showing that the averaged view or normal view should be presented.
Definition: PMusrCanvas.h:246
TGraphErrors * theoryFourierPhase
phase spectrum of the Fourier transform of the theory error graph
Definition: PMusrCanvas.h:165
TH1F * theoryFourierPhaseOptReal
phase optimized real part spectrum Fourier transform of the theory histogram
Definition: PMusrCanvas.h:133
TH1F * theoryFourierPwr
power spectrum of the Fourier transform of the theory histogram
Definition: PMusrCanvas.h:131
virtual void CleanupDataSet(PMusrCanvasDataSet &dataSet)
std::vector< Int_t > PIntVector
Definition: PMusr.h:178
std::vector< PMusrCanvasAsciiDump > PMusrCanvasAsciiDumpVector
Definition: PMusrCanvas.h:196
TH1F * data
data histogram
Definition: PMusrCanvas.h:122
Double_t fYmax
data/theory frame range
Definition: PMusrCanvas.h:255
virtual void SetYRange(Double_t ymin, Double_t ymax)
Definition: PMusrCanvas.cpp:97
TGraphErrors * dataFourierPwr
power spectrum of the Fourier transform of the data error graph
Definition: PMusrCanvas.h:159
TH1F * fHistoFrame
fHistoFrame is a &#39;global&#39; frame needed in order to plot histograms with (potentially) different x-fra...
Definition: PMusrCanvas.h:281
virtual void WindowClosed()
Int_t fTimeout
timeout after which the Done signal should be emited. If timeout <= 0, no timeout is taking place ...
Definition: PMusrCanvas.h:242
std::vector< Double_t > PDoubleVector
Definition: PMusr.h:196
virtual Bool_t IsValid()
Definition: PMusrCanvas.h:217
virtual Double_t GetMaximum(TH1F *histo, Double_t xmin=-1.0, Double_t xmax=-1.0)
PIntVector fMarkerList
list of markers
Definition: PMusrCanvas.h:296
std::vector< PMusrCanvasNonMusrDataSet > PMusrCanvasNonMusrDataList
Definition: PMusrCanvas.h:179
PMusrCanvasDataList fData
list of all histogram data to be plotted (asymmetry/single histogram)
Definition: PMusrCanvas.h:290
TH1F * theoryFourierIm
imaginary part of the Fourier transform of the theory histogram
Definition: PMusrCanvas.h:130
virtual Double_t GetInterpolatedValue(TH1F *histo, Double_t xVal)
Int_t fPreviousPlotView
tag showing the previous plot view
Definition: PMusrCanvas.h:250
TGraphErrors * theoryFourierIm
imaginary part of the Fourier transform of the theory error graph
Definition: PMusrCanvas.h:163
std::unique_ptr< TString > fRRFText
RRF information.
Definition: PMusrCanvas.h:259
virtual void InitAverage()
virtual void HandleAverage()
TGraphErrors * dataFourierRe
real part of the Fourier transform of the data error graph
Definition: PMusrCanvas.h:157
virtual Double_t GetYmax()
Definition: PMusrCanvas.h:103
TMultiGraph * fMultiGraphData
fMultiGraphData is a &#39;global&#39; graph needed in order to plot error graphs (data) with (potentially) di...
Definition: PMusrCanvas.h:292
std::unique_ptr< TPaveText > fTheoryPad
theory pad used to display the theory and functions
Definition: PMusrCanvas.h:277
virtual ~PMusrCanvasPlotRange()
Definition: PMusrCanvas.h:92
TGraphErrors * theoryFourierPwr
power spectrum of the Fourier transform of the theory error graph
Definition: PMusrCanvas.h:164
Bool_t fDifferenceView
tag showing that the shown data, fourier, are the difference between data and theory ...
Definition: PMusrCanvas.h:247
Double_t fXmax
Definition: PMusrCanvas.h:255
PMusrCanvasDataSet fDataAvg
set of all averaged data to be plotted (asymmetry/single histogram)
Definition: PMusrCanvas.h:288
std::unique_ptr< TLatex > fCurrentFourierPhaseText
used in Re/Im Fourier to show the current phase in the pad
Definition: PMusrCanvas.h:258
std::unique_ptr< TLatex > fRRFLatexText
used to display RRF info
Definition: PMusrCanvas.h:260
virtual void GetExportDataSet(const TH1F *data, const Double_t xmin, const Double_t xmax, PMusrCanvasAsciiDumpVector &dumpData, const Bool_t hasError=true)
virtual Double_t GetXmin()
Definition: PMusrCanvas.h:100
virtual void HandleCmdKey(Int_t event, Int_t x, Int_t y, TObject *selected)
virtual void HandleMenuPopup(Int_t id)
virtual void PlotFourierDifference(Bool_t unzoom=false)
Bool_t fStartWithFourier
flag if true, the Fourier transform will be presented bypassing the time domain representation ...
Definition: PMusrCanvas.h:240
PMusrCanvasPlotRange * dataRange
keep the msr-file plot data range
Definition: PMusrCanvas.h:140
Double_t fXmin
Definition: PMusrCanvas.h:255
TH1F * dataFourierPhase
phase spectrum of the Fourier transform of the data histogram
Definition: PMusrCanvas.h:126
virtual void CleanupFourier()
virtual void CleanupAverage()
std::unique_ptr< TTimer > fTimeoutTimer
timeout timer in order to terminate if no action is taking place for too long
Definition: PMusrCanvas.h:264
virtual void LastCanvasClosed()
virtual void IncrementFourierPhase()
virtual void PlotAverage(Bool_t unzoom=false)
TH1F * diffFourierRe
real part of the Fourier transform of the diff histogram
Definition: PMusrCanvas.h:135
TGraphErrors * diff
difference error graph, i.e. data-theory
Definition: PMusrCanvas.h:166
UInt_t diffFourierTag
0=not relevant, 1=d-f (Fourier of difference time spectra), 2=f-d (difference of Fourier spectra) ...
Definition: PMusrCanvas.h:141
TH1F * diff
difference histogram, i.e. data-theory
Definition: PMusrCanvas.h:134
virtual UInt_t GetNeededAccuracy(PMsrParamStructure param)
TMultiGraph * fMultiGraphDiff
fMultiGraphDiff is a &#39;global&#39; graph needed in order to plot error graphs (data-theory) with (potentia...
Definition: PMusrCanvas.h:293
virtual void InitMusrCanvas(const Char_t *title, Int_t wtopx, Int_t wtopy, Int_t ww, Int_t wh)
virtual void SetMsrHandler(PMsrHandler *msrHandler)
virtual void SetRunListCollection(PRunListCollection *runList)
Definition: PMusrCanvas.h:221
virtual void InitFourier()
virtual void HandleDifference()
std::unique_ptr< TLegend > fMultiGraphLegend
used for non-muSR plots to display a legend
Definition: PMusrCanvas.h:279
virtual ~PMusrCanvas()
TGraphErrors * theoryFourierRe
real part of the Fourier transform of the theory error graph
Definition: PMusrCanvas.h:162
virtual Double_t GetMinimum(TH1F *histo, Double_t xmin=-1.0, Double_t xmax=-1.0)
PDoubleVector dataErr
error of the y-axis data set
Definition: PMusrCanvas.h:188
PIntVector fColorList
list of colors
Definition: PMusrCanvas.h:297
TH1F * diffFourierPhaseOptReal
phase optimized real part spectrum Fourier transform of the diff histogram
Definition: PMusrCanvas.h:139
TH1F * theoryFourierRe
real part of the Fourier transform of the theory histogram
Definition: PMusrCanvas.h:129
virtual void Done(Int_t status=0)
Bool_t fBatchMode
musrview in ROOT batch mode
Definition: PMusrCanvas.h:244
PDoubleVector dataX
x-axis data set
Definition: PMusrCanvas.h:186
std::unique_ptr< TPaveText > fTitlePad
title pad used to display a title
Definition: PMusrCanvas.h:274
TRootCanvas * fImp
ROOT native GUI version of main window with menubar and drawing area.
Definition: PMusrCanvas.h:267
TGPopupMenu * fPopupMain
popup menu Musrfit in the main menu bar
Definition: PMusrCanvas.h:269
virtual void HandleFourier()
TH1F * diffFourierPwr
power spectrum of the Fourier transform of the diff histogram
Definition: PMusrCanvas.h:137
virtual void CleanupFourierDifference()
PDoubleVector data
y-axis data set
Definition: PMusrCanvas.h:187
virtual void PlotDifference(Bool_t unzoom=false)
virtual void UpdateDataTheoryPad()
virtual void HandleDifferenceFourier()
Int_t fPlotType
plot type tag: -1 == undefined, MSR_PLOT_SINGLE_HISTO == single histogram, MSR_PLOT_ASYM == asymmetry...
Definition: PMusrCanvas.h:251
virtual Double_t GetXmax()
Definition: PMusrCanvas.h:101
PRunListCollection * fRunList
data handler
Definition: PMusrCanvas.h:285
PDoubleVector fCurrentFourierPhase
holds the current Fourier phase(s)
Definition: PMusrCanvas.h:257
return status
virtual void CalcPhaseOptReFT()
PMusrCanvas::CalcPhaseOptReFT.
TGraphErrors * diffFourierIm
imaginary part of the Fourier transform of the diff error graph
Definition: PMusrCanvas.h:168
TH1F * diffFourierPhase
phase spectrum of the Fourier transform of the diff histogram
Definition: PMusrCanvas.h:138
virtual Double_t CalculateDiff(const Double_t x, const Double_t y, TH1F *theo)
virtual void SetTimeout(Int_t ival)
std::unique_ptr< TLegend > fInfoPad
info pad used to display a legend of the data plotted
Definition: PMusrCanvas.h:278
virtual void SaveGraphicsAndQuit(Char_t *fileName, Char_t *graphicsFormat)
PMsrHandler * fMsrHandler
msr-file handler
Definition: PMusrCanvas.h:284
TGraphErrors * diffFourierPwr
power spectrum of the Fourier transform of the diff error graph
Definition: PMusrCanvas.h:169
virtual Double_t GetYmin()
Definition: PMusrCanvas.h:102
Bool_t fStartWithAvg
flag if true, the averaged data/Fourier will be presented
Definition: PMusrCanvas.h:241
virtual void SetXRange(Double_t xmin, Double_t xmax)
Definition: PMusrCanvas.cpp:75
Bool_t fToggleColor
tag showing if a single histo theory is color toggled
Definition: PMusrCanvas.h:248
std::unique_ptr< TPaveText > fParameterPad
parameter pad used to display the fitting parameters
Definition: PMusrCanvas.h:276
virtual void PlotData(Bool_t unzoom=false)
std::unique_ptr< TPad > fDataTheoryPad
data/theory pad used to display the data/theory
Definition: PMusrCanvas.h:275
Int_t fCurrentPlotView
tag showing what the current plot view is: data, fourier, ...
Definition: PMusrCanvas.h:249
TGraphErrors * dataFourierIm
imaginary part of the Fourier transform of the data error graph
Definition: PMusrCanvas.h:158
std::vector< PMusrCanvasDataSet > PMusrCanvasDataList
Definition: PMusrCanvas.h:148
PMusrCanvasPlotRange * dataRange
keep the msr-file plot data range
Definition: PMusrCanvas.h:171
Bool_t fXRangePresent
Definition: PMusrCanvas.h:254
Int_t fPlotNumber
plot number
Definition: PMusrCanvas.h:252
virtual void CleanupDifference()