zoom/unzoom once more. Uncluttered PMusrCanvas which should improve the situation

This commit is contained in:
nemu
2010-10-07 14:42:34 +00:00
parent c41fe09422
commit c3d9a11f63
4 changed files with 604 additions and 324 deletions

View File

@ -47,6 +47,9 @@ 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 another attempt to get proper zooming/unzooming. This time I tried to disentangle the rather messy PMusrCanvas class.
Most of the checks seems to work, though still for non-muSR style, musrview is crashing once in a while which seems to
come from root rather than musrview. I will try to investigate that on root macro level.
CHANGED in root-5.27.04 the zooming/unzooming handling was modified which forced me to add some more code for
proper zooming/unzooming via 'u' key
CHANGED write the ROOT histogram of the correlation matrix to the output file as well as not only the graph

File diff suppressed because it is too large Load Diff

View File

@ -797,7 +797,7 @@ Bool_t PRunSingleHisto::PrepareRawViewData(PRawRunData* runData, const UInt_t hi
if (fabs(theoryValue) > 10.0) { // dirty hack needs to be fixed!!
theoryValue = 0.0;
}
fData.AppendTheoryValue(N0*TMath::Exp(-time/tau)*(1+theoryValue)+bkg);
fData.AppendTheoryValue(N0*TMath::Exp(-time/tau)*(1.0+theoryValue)+bkg);
}
// clean up

View File

@ -56,12 +56,6 @@
#define YTITLE 0.95
#define XTHEO 0.75
// Current Plot Range
#define PR_NONE 0
#define PR_RANGE 1
#define PR_SUB_RANGE 2
#define PR_FIT_RANGE 3
// Current Plot Views
#define PV_DATA 1
#define PV_FOURIER_REAL 2
@ -104,10 +98,10 @@ class PMusrCanvasPlotRange : public TObject
virtual Bool_t IsXRangePresent() { return fXRangePresent; }
virtual Bool_t IsYRangePresent() { return fYRangePresent; }
virtual Double_t GetXMin() { return fXmin; }
virtual Double_t GetXMax() { return fXmax; }
virtual Double_t GetYMin() { return fYmin; }
virtual Double_t GetYMax() { return fYmax; }
virtual Double_t GetXmin() { return fXmin; }
virtual Double_t GetXmax() { return fXmax; }
virtual Double_t GetYmin() { return fYmin; }
virtual Double_t GetYmax() { return fYmax; }
private:
Bool_t fXRangePresent;
@ -239,11 +233,12 @@ class PMusrCanvas : public TObject, public TQObject
Bool_t fValid; ///< if true, everything looks OK
Bool_t fDifferenceView; ///< tag showing that the shown data, fourier, are the difference between data and theory
Int_t fCurrentPlotView; ///< tag showing what the current plot view is: data, fourier, ...
Int_t fPreviousPlotView; ///< tag showing the previous plot view
Int_t fPlotType; ///< plot type tag: -1 == undefined, MSR_PLOT_SINGLE_HISTO == single histogram, MSR_PLOT_ASYM == asymmetry, MSR_PLOT_MU_MINUS == mu minus (not yet implemented), MSR_PLOT_NON_MUSR == non-muSR
Int_t fPlotNumber; ///< plot number
UInt_t fPlotRangeTag; ///< plot range tag: 0=no range given, 1=range, 2=sub_ranges, 3=use_fit_ranges.
Double_t fXmin, fXmax, fYmin, fYmax; ///< data/theory frame range
Bool_t fXRangePresent, fYRangePresent; ///< flag indicating if x-/y-range is present
Double_t fXmin, fXmax, fYmin, fYmax; ///< data/theory frame range
Double_t fCurrentFourierPhase; ///< holds the current Fourier phase
TLatex *fCurrentFourierPhaseText; ///< used in Re/Im Fourier to show the current phase in the pad
@ -293,7 +288,7 @@ class PMusrCanvas : public TObject, public TQObject
virtual void CleanupDataSet(PMusrCanvasNonMusrDataSet &dataSet);
virtual void HandleDataSet(UInt_t plotNo, UInt_t runNo, PRunData *data);
virtual void HandleNonMusrDataSet(UInt_t plotNo, UInt_t runNo, PRunData *data);
virtual void HandleDifference(Bool_t unzoom=false);
virtual void HandleDifference();
virtual void HandleFourier();
virtual void HandleDifferenceFourier();
virtual void HandleFourierDifference();
@ -306,14 +301,16 @@ class PMusrCanvas : public TObject, public TQObject
virtual Double_t CalculateDiff(const Double_t x, const Double_t y, TGraphErrors *theo);
virtual Int_t FindBin(const Double_t x, TGraphErrors *graph);
virtual Double_t GetGlobalMaximum(TH1F* histo);
virtual Double_t GetGlobalMinimum(TH1F* histo);
virtual Double_t GetMaximum(TH1F* histo, Double_t xmin=-1.0, Double_t xmax=-1.0);
virtual Double_t GetMinimum(TH1F* histo, Double_t xmin=-1.0, Double_t xmax=-1.0);
virtual Double_t GetMaximum(TGraphErrors* graph, Double_t xmin=-1.0, Double_t xmax=-1.0);
virtual Double_t GetMinimum(TGraphErrors* graph, Double_t xmin=-1.0, Double_t xmax=-1.0);
virtual void PlotData();
virtual void PlotDifference();
virtual void PlotFourier();
virtual void PlotFourierDifference();
virtual void PlotFourierPhaseValue();
virtual void PlotData(Bool_t unzoom=false);
virtual void PlotDifference(Bool_t unzoom=false);
virtual void PlotFourier(Bool_t unzoom=false);
virtual void PlotFourierDifference(Bool_t unzoom=false);
virtual void PlotFourierPhaseValue(Bool_t unzoom=false);
virtual void IncrementFourierPhase();
virtual void DecrementFourierPhase();