AnitaCanvasMaker.h
1 
9 #ifndef ANITACANVASMAKER_H
10 #define ANITACANVASMAKER_H
11 
12 //Includes
13 #include <iostream>
14 #include <TObject.h>
15 #include <TMath.h>
16 #include <TVector3.h>
17 #include "AnitaConventions.h"
18 #include "MagicDisplayConventions.h"
19 #include "AnalysisReco.h"
20 
21 class UsefulAnitaEvent;
22 class RawAnitaHeader;
23 class FilteredAnitaEvent;
24 class TPad;
25 class TFile;
26 class TGeoManager;
27 
29 
33 {
34  public:
35 
37  void setWaveformFormat(MagicDisplayFormatOption::MagicDisplayFormatOption_t waveOption) {fWaveformOption=waveOption;}
38  // void setInterferometryTypeFlags(Acclaim::AnalysisReco::mapMode_t mapMode, Acclaim::AnalysisReco::zoomMode_t zoomMode){
39  // fInterferometryMapMode=mapMode;
40  // fInterferometryZoomMode=zoomMode;
41  // }
42 
43  void resetAverage();
44 
45  Double_t fMinVoltLimit;
46  Double_t fMaxVoltLimit;
47  Double_t fMinInterfLimit;
48  Double_t fMaxInterfLimit;
49  Double_t fMinVertVoltLimit;
50  Double_t fMaxVertVoltLimit;
51  Int_t fAutoScale;
52  Int_t fAutoScaleNeg;
53  Double_t fMinClockVoltLimit;
54  Double_t fMaxClockVoltLimit;
55  Double_t fMinTimeLimit;
56  Double_t fMaxTimeLimit;
57  Double_t fMinPowerLimit;
58  Double_t fMaxPowerLimit;
59  Double_t fMinFreqLimit;
60  Double_t fMaxFreqLimit;
64  //Int_t fRedoSurfCanvas;
67  Int_t fNewEvent;
68 
69  // Acclaim::AnalysisReco::mapMode_t fInterferometryMapMode;
70  // Acclaim::AnalysisReco::mapMode_t fLastInterferometryMapMode;
71  // Acclaim::AnalysisReco::zoomMode_t fInterferometryZoomMode;
72  // Acclaim::AnalysisReco::zoomMode_t fLastInterferometryZoomMode;
73 
75 
82  // TPad *getEventViewerCanvas(UsefulAnitaEvent *evPtr,RawAnitaHeader *hdPtr, TPad *useCan=0);
83  TPad *getEventViewerCanvas(FilteredAnitaEvent* fEv, TPad *useCan=0, bool forceRedo = false);
85 
91  TPad *getInterferometryCanvas(const RawAnitaHeader *hdPtr,TPad *useCan=NULL);
92  TPad *getUCorrelatorCanvas(const RawAnitaHeader *hdPtr,TPad *useCan=NULL);
93 
94 
96 
102  TPad *quickGetEventViewerCanvasForWebPlottter(const UsefulAnitaEvent *evPtr, const RawAnitaHeader *hdPtr, TPad *useCan=0);
103 
104 
105 
106 
108 
113  TPad *getEventInfoCanvas(const UsefulAnitaEvent *evPtr, const RawAnitaHeader *hdPtr, const Adu5Pat *pat, TPad *useCan=0);
114 
115 
116  void setupPhiPadWithFrames(TPad *plotPad);
117  void setupInterfPadWithFrames(TPad *plotPad);
118  void setupSurfPadWithFrames(TPad *plotPad);
119  void setupPayloadViewWithFrames(TPad *plotPad);
120  //void deleteTGraphsFromPad(TPad *paddy); ///< Deprecated.
121  void deleteTGraphsFromPad(TPad *paddy,int surf,int chan);
122  void deleteTGraphsFromPad(TPad *paddy,int surf,int chan,int chan2);
123 
125 
131 
132 
134 
135 
136  //Instance generator
137  static AnitaCanvasMaker* Instance();
138 
139  void setPassBandFilterFlag( int flag) { fPassBandFilter=flag;}
140  void setNotchFilterFlag( int flag) { fNotchFilter=flag;}
141  void setPassBandLimits(Double_t low, Double_t high)
142  { fLowPassEdge=low; fHighPassEdge=high;}
143  void setNotchBandLimits(Double_t low, Double_t high)
144  { fLowNotchEdge=low; fHighNotchEdge=high;}
145 
146 
147 
148 
150 
151  protected:
153 
154  private:
155 
156  static Acclaim::AnalysisReco* reco;
157 
158  Int_t fPhiMax;
159  TFile *fAnitaGeomFile;
160  TGeoManager *fAnitaGeomManager;
161  Int_t fPassBandFilter;
162  Int_t fNotchFilter;
163  Double_t fLowPassEdge;
164  Double_t fHighPassEdge;
165  Double_t fLowNotchEdge;
166  Double_t fHighNotchEdge;
167 
172  TPad *getHorizontalCanvas(const RawAnitaHeader *hdPtr, TPad *useCan=0);
174 
178  TPad *getVerticalCanvas(const RawAnitaHeader *hdPtr, TPad *useCan=0);
180 
184  TPad *getCombinedCanvas(const RawAnitaHeader *hdPtr, TPad *useCan=0);
186 
190  TPad *getSurfChanCanvas(const RawAnitaHeader *hdPtr, TPad *useCan=0);
192 
196  TPad *getVerticalCanvasForWebPlotter(const RawAnitaHeader *hdPtr, TPad *useCan=0);
197 
201  TPad *getCombinedCanvasForWebPlotter(const RawAnitaHeader *hdPtr, TPad *useCan=0);
202 
204 
208  TPad *getPayloadCanvas(const RawAnitaHeader *hdPtr, TPad *useCan=0);
209  void loadPayloadViewSutff();
210 };
211 
212 
213 #endif //ANITACANVASMAKER_H
Double_t fMaxInterfLimit
The maximum interferometry.
enum MagicDisplayCanvasLayoutOption::EMagicDisplayCanvasLayoutOption MagicDisplayCanvasLayoutOption_t
Enumeration for canvas layout.
static AnitaCanvasMaker * Instance()
The instance generator.
Double_t fMinTimeLimit
The minimum time in the waveform (typically 0).
MagicDisplayCanvasLayoutOption::MagicDisplayCanvasLayoutOption_t fLastCanvasView
What was the last view (phi or SURF)?
Double_t fMinVoltLimit
The minimum voltage.
Double_t fMaxFreqLimit
The maximum frequency in the PSDs (typically 1200).
Double_t fMaxTimeLimit
The maximum time in the waveform (typically 100).
Int_t fRedoEventCanvas
Do we neeed to redraw the event canvas (eg. switching from phi to SURF)?
enum MagicDisplayFormatOption::EMagicDisplayFormatOption MagicDisplayFormatOption_t
Enumeration for plot style.
void setPassBandLimits(Double_t low, Double_t high)
Sets the limits of the pass band (200-1200) in MHz.
Adu5Pat – The ADU5 Position and Attitude Data.
Definition: Adu5Pat.h:26
Double_t fMinVertVoltLimit
The minimum voltage in vertical channels.
WaveCalType::WaveCalType_t fCalType
The calibration type.
Does the event reconstruction, and produces a summary of it.
Definition: AnalysisReco.h:30
enum WaveCalType::EWaveCalType WaveCalType_t
The calibration enumeration type.
Double_t fMaxPowerLimit
The maximum power in the PSDs.
void deleteTGraphsFromPad(TPad *paddy, int surf, int chan)
Worker fucntion to delete a specific graph from a pad.
Double_t fMinFreqLimit
The minimum frequency in the PSDs (typically 0).
void setupPayloadViewWithFrames(TPad *plotPad)
Worker function to setup the payload view canvas.
Double_t fMaxVoltLimit
The maximum voltage.
Double_t fMinClockVoltLimit
The minimum voltage in the clock channels.
void setupInterfPadWithFrames(TPad *plotPad)
Worker function to setup the phi view canvas.
RawAnitaHeader – The Raw ANITA Event Header.
MagicDisplayFormatOption::MagicDisplayFormatOption_t fWaveformOption
Are we viewing PSDs, waveforms or other stuff?
~AnitaCanvasMaker()
Destructor.
TPad * getInterferometryCanvas(const RawAnitaHeader *hdPtr, TPad *useCan=NULL)
The interferometry canvas getter.
Double_t fMinPowerLimit
The minimum power in the PSDs.
MagicDisplayCanvasLayoutOption::MagicDisplayCanvasLayoutOption_t fCanvasView
Which canvas layout do we want?
UsefulAnitaEvent – The Calibrated Useful Anita Event object.
void setNotchBandLimits(Double_t low, Double_t high)
Sets the limits of the notched band (235-500) in MHz.
static AnitaCanvasMaker * fgInstance
To protect against multiple instances.
AnitaCanvasMaker(WaveCalType::WaveCalType_t calType=WaveCalType::kVoltageTime)
The assignment constructor.
Int_t fNewEvent
Is this a new event?
MagicDisplayFormatOption::MagicDisplayFormatOption_t fLastWaveformFormat
What did we plot last time??
Double_t fMaxClockVoltLimit
The maximum voltage in the clock channels.
TPad * quickGetEventViewerCanvasForWebPlottter(const UsefulAnitaEvent *evPtr, const RawAnitaHeader *hdPtr, TPad *useCan=0)
The main event view canvas getter used by QnDWBOM.
void setPassBandFilterFlag(int flag)
Flags the pass band filter on or off.
void setupSurfPadWithFrames(TPad *plotPad)
Worker function to setup the surf view canvas.
Acclaim::AnalysisReco & getAnalysisReco()
get command line access with a reference
Double_t fMaxVertVoltLimit
The maximum voltage in vertical channels.
Double_t fMinInterfLimit
The minimum interferometry.
TPad * getEventViewerCanvas(FilteredAnitaEvent *fEv, TPad *useCan=0, bool forceRedo=false)
The main event view canvas getter.
void setNotchFilterFlag(int flag)
Flags the notch filter on or off.
TPad * getEventInfoCanvas(const UsefulAnitaEvent *evPtr, const RawAnitaHeader *hdPtr, const Adu5Pat *pat, TPad *useCan=0)
The event info canvas getter.
void setupPhiPadWithFrames(TPad *plotPad)
Worker function to setup the phi view canvas.
Int_t fAutoScaleNeg
Fixed or auto-scaling y-axis?
Int_t fAutoScale
Fixed or auto-scaling y-axis?
This class is intended to store all the necessary data about an ANITA event for filtering and analysi...
The event display canvas maker.