ARA ROOT v3.10 Software

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 Tue Jul 16 16:58:01 2013 for ARA ROOT v3.10 Software by doxygen 1.4.7