QGUIHistogramHandler.hh

Go to the documentation of this file.
00001 
00002 #ifndef _QGUI_HISTOGRAM_HANDLER_HH_
00003 #define _QGUI_HISTOGRAM_HANDLER_HH_
00004 
00005 #include <string>
00006 #include <map>
00007 
00008 #include <TH1F.h>
00009 
00010 #include "QApolloMonitorDefs.hh"
00011 
00012 class QMonitorHistogramReader;
00013 class QMonitorConfigHandler;
00014 class TCanvas;
00015 
00025 class QGUIHistogramHandler
00026 {
00027 public:
00028 
00030    QGUIHistogramHandler();
00031    
00033    virtual ~QGUIHistogramHandler();
00034    
00036    void SetChannel(unsigned int channel);
00037    
00039    unsigned int GetChannel() const { return fChannel; }
00040    
00042    void SetRateCanvas(TCanvas* ptr)     { fRateCanvas = ptr; }
00044    void SetSpectrumCanvas(TCanvas* ptr) { fSpectrumCanvas = ptr; }
00046    void SetPulseCanvas(TCanvas* ptr)    { fPulseCanvas = ptr; }
00047 
00049    void DrawHistograms();
00050    
00051    
00060    bool CheckUpdate();
00061 
00063    void ForceUpdate() const;
00064 
00069    void Inhibit() const;
00070 
00072    void SetHistogramColor(QApolloMonitorDefs::QMonitorEventType_t type,
00073                           Int_t color)
00074    { fColors[type] = color; }
00075 
00080    void SetSpectrumActive(QApolloMonitorDefs::QMonitorEventType_t type,
00081                           bool active)
00082    { fSpectrumActive[type] = active; }
00083 
00088    void SetRateActive(QApolloMonitorDefs::QMonitorEventType_t type,
00089                       bool active)
00090    { fRateActive[type] = active; }
00091 
00097    void SetRateStacked(bool stacked) { fRateStacked = stacked; }
00098 
00100    void SetSpectrumLogScale(bool logScale) { fSpectrumLogScale = logScale; }
00101 
00111    void SetAutoRangeSpectrum(bool lowerBound, bool upperBound)
00112    { fAutoRangeSpectrumMin = lowerBound; fAutoRangeSpectrumMax = upperBound; }
00113 
00125    void SetSpectrumMin(Int_t min) { fSpectrumMin = min; }
00126 
00138    void SetSpectrumMax(Int_t max) { fSpectrumMax = max; }
00139    
00140 private:
00141    unsigned int fChannel;  
00142    std::string fRootFile;  
00145    std::map<QApolloMonitorDefs::QMonitorEventType_t, TH1F> fRateHisto;
00147    std::map<QApolloMonitorDefs::QMonitorEventType_t, TH1F> fSpectrumHisto;
00148    TH1F fPulseHisto; 
00156    std::map<UInt_t, std::map<QApolloMonitorDefs::QMonitorEventType_t,
00157                              int> > fLastSpectrumBin;
00158 
00165    std::map<UInt_t, std::map<QApolloMonitorDefs::QMonitorEventType_t,
00166                              int> > fFirstSpectrumBin;
00167 
00168    Double_t fTimeFromStart;    
00169    time_t fEventTime;          
00170    unsigned int fSamplingRate; 
00172    QApolloMonitorDefs::QMonitorEventType_t fEventType;
00173 
00174    QMonitorHistogramReader *fReader;       
00175    QMonitorConfigHandler *fConfigHandler;  
00177    TCanvas* fRateCanvas;     
00178    TCanvas *fSpectrumCanvas; 
00179    TCanvas *fPulseCanvas;    
00181    bool fRateStacked; 
00183    bool fSpectrumLogScale; 
00186    bool fAutoRangeSpectrumMin;
00188    bool fAutoRangeSpectrumMax;
00189 
00190    Int_t fSpectrumMin; 
00191    Int_t fSpectrumMax; 
00194    std::map<QApolloMonitorDefs::QMonitorEventType_t, Int_t> fColors;
00195 
00197    std::map<QApolloMonitorDefs::QMonitorEventType_t, bool> fSpectrumActive;
00198 
00200    std::map<QApolloMonitorDefs::QMonitorEventType_t, bool> fRateActive;
00201 
00208    bool UpdateHistograms();
00209 
00211    void ResetHistograms();
00212 
00213 
00215    void EvalSpectrumRange();
00216 
00223    std::string GetTimeString(const time_t& time, const std::string& format);
00224 
00231    void DrawStackedHistograms(bool type, bool stacked);
00232 
00233    ClassDef(QGUIHistogramHandler,0)
00234 };
00235 #endif

Generated on Tue Nov 16 10:49:54 2010 for CUORE Software by  doxygen 1.5.6