AraDisplay/AraAtriCanvasMaker.h
00001 00002 00003 00004 00005 00006 00007 00008 00009 #ifndef ARACANVASMAKER_H 00010 #define ARACANVASMAKER_H 00011 00012 //Includes 00013 #include <iostream> 00014 #include <TObject.h> 00015 #include <TMath.h> 00016 #include <TH1.h> 00017 #include <TVector3.h> 00018 #include "araSoft.h" 00019 #include "AraDisplayConventions.h" 00020 #include "UsefulAtriStationEvent.h" 00021 #include "AraEventCalibrator.h" 00022 #include "AraEventCorrelator.h" 00023 00024 //Useful defines 00025 #define RF_COLS 4 00026 #define RF_ROWS 5 00027 #define ANT_COLS RF_COLS 00028 #define ANT_ROWS RF_ROWS 00029 00030 00031 00032 00033 class TPad; 00034 class TFile; 00035 00037 00040 class AraAtriCanvasMaker 00041 { 00042 public: 00043 //Something of a sleazy hack for the web plotter. 00044 TH1D *getFFTHisto(int ant); 00045 00046 void setCorrelatorType(AraCorrelatorType::AraCorrelatorType_t corType) {fCorType=corType;} 00047 void setCanvasLayout(AraDisplayCanvasLayoutOption::AraDisplayCanvasLayoutOption_t canOption) {fCanvasLayout=canOption;} 00048 void setWaveformFormat(AraDisplayFormatOption::AraDisplayFormatOption_t waveOption) {fWaveformOption=waveOption;} 00049 void resetAverage(); 00050 void setNumAntsInMap(int numAnts) {fNumAntsInMap=numAnts;} 00051 00052 00053 Int_t fNumAntsInMap; 00054 Double_t fThisMinTime; 00055 Double_t fThisMaxTime; 00056 00057 Double_t fMinVoltLimitElec[RFCHAN_PER_DDA]; 00058 Double_t fMaxVoltLimitElec[RFCHAN_PER_DDA]; 00059 Double_t fMinVoltLimitRf[RF_ROWS]; 00060 Double_t fMaxVoltLimitRf[RF_ROWS]; 00061 Double_t fMinVoltLimitAnt[ANT_ROWS]; 00062 Double_t fMaxVoltLimitAnt[ANT_ROWS]; 00063 Int_t fAutoScale; 00064 Double_t fMinClockVoltLimit; 00065 Double_t fMaxClockVoltLimit; 00066 Double_t fMinTimeLimit; 00067 Double_t fMaxTimeLimit; 00068 Double_t fMinPowerLimit; 00069 Double_t fMaxPowerLimit; 00070 Double_t fMinFreqLimit; 00071 Double_t fMaxFreqLimit; 00072 00073 AraCorrelatorType::AraCorrelatorType_t fCorType; 00074 AraDisplayCanvasLayoutOption::AraDisplayCanvasLayoutOption_t fCanvasLayout; 00075 AraDisplayFormatOption::AraDisplayFormatOption_t fWaveformOption; 00076 Int_t fRedoEventCanvas; 00077 //Int_t fRedoSurfCanvas; 00078 AraDisplayCanvasLayoutOption::AraDisplayCanvasLayoutOption_t fLastCanvasView; 00079 AraDisplayFormatOption::AraDisplayFormatOption_t fLastWaveformFormat; 00080 Int_t fNewEvent; 00081 00083 00089 TPad *getEventViewerCanvas(UsefulAtriStationEvent *evPtr, TPad *useCan=0); 00090 00092 00098 TPad *quickGetEventViewerCanvasForWebPlottter(UsefulAtriStationEvent *evPtr, TPad *useCan=0); 00099 00100 00101 00102 00104 00109 TPad *getEventInfoCanvas(UsefulAtriStationEvent *evPtr, TPad *useCan=0, Int_t runNumber=0); 00110 00111 00112 void setupElecPadWithFrames(TPad *plotPad); 00113 void setupRFChanPadWithFrames(TPad *plotPad); 00114 void setupAntPadWithFrames(TPad *plotPad); 00115 00116 void deleteTGraphsFromElecPad(TPad *paddy,int chan); 00117 void deleteTGraphsFromRFPad(TPad *paddy,int ant); 00118 00120 00124 AraAtriCanvasMaker(AraCalType::AraCalType_t calType=AraCalType::kVoltageTime); 00125 ~AraAtriCanvasMaker(); 00126 00127 //Instance generator 00128 static AraAtriCanvasMaker* Instance(); 00129 00130 void setPassBandFilterFlag( int flag) { fPassBandFilter=flag;} 00131 void setNotchFilterFlag( int flag) { fNotchFilter=flag;} 00132 void setPassBandLimits(Double_t low, Double_t high) 00133 { fLowPassEdge=low; fHighPassEdge=high;} 00134 void setNotchBandLimits(Double_t low, Double_t high) 00135 { fLowNotchEdge=low; fHighNotchEdge=high;} 00136 00137 00138 AraCalType::AraCalType_t fCalType; 00139 00140 protected: 00141 static AraAtriCanvasMaker *fgInstance; 00142 00143 private: 00144 Int_t fWebPlotterMode; 00145 Int_t fPhiMax; 00146 TFile *fAraGeomFile; 00147 Int_t fPassBandFilter; 00148 Int_t fNotchFilter; 00149 Double_t fLowPassEdge; 00150 Double_t fHighPassEdge; 00151 Double_t fLowNotchEdge; 00152 Double_t fHighNotchEdge; 00153 AraStationId_t fLastStationId; 00154 00156 00160 TPad *getElectronicsCanvas(UsefulAtriStationEvent *evPtr, TPad *useCan=0); 00162 00166 TPad *getAntennaCanvas(UsefulAtriStationEvent *evPtr, TPad *useCan=0); 00168 00172 TPad *getIntMapCanvas(UsefulAtriStationEvent *evPtr, TPad *useCan=0); 00174 00178 TPad *getRFChannelCanvas(UsefulAtriStationEvent *evPtr, TPad *useCan=0); 00179 00181 00185 TPad *getCanvasForWebPlotter(UsefulAtriStationEvent *evPtr, TPad *useCan=0); 00186 00187 }; 00188 00189 00190 #endif //ARACANVASMAKER_H
Generated on Mon Jun 3 16:10:04 2013 for ARA ROOT v3.9 Software by
