QIGUIPlotData.hh
00001 #ifndef _QIGUI_PLOT_DATA__H_
00002 #define _QIGUI_PLOT_DATA__H_
00003
00004 #include "QIGUIFileHandler.hh"
00005 #include "QIGUICut.hh"
00006 #include "QIGUISession.hh"
00007 #include <TCut.h>
00008
00009 class QIGUIChannelCut;
00010 class TEventList;
00011
00012 class QIGUIPlotData: public QObject
00013 {
00014 Q_OBJECT
00015
00016 private:
00018 int fChannel;
00019
00021 QIGUIChannelCut * fChannelCut;
00022
00024 std::map<QString, QIGUICut*> fCuts;
00025
00027 QIGUIFileHandler * fFileHandler;
00028
00030 QIGUISession * fSession;
00031
00033 TEventList * fEventList;
00034 bool fEventListNeedsRegeneration;
00035
00036 public:
00037
00038 QIGUIPlotData (QObject * parent = 0);
00039 QIGUIPlotData (QIGUIFileHandler * f, QIGUICut * c=0, QObject * parent = 0);
00040 QIGUIPlotData (const QIGUIPlotData &plotdata);
00041 const QIGUIPlotData& operator=(const QIGUIPlotData& plotdata);
00042 virtual ~QIGUIPlotData();
00043
00044 void Init();
00045
00046
00047 QIGUICut * GetCut(QString name);
00048 QIGUICut * GetChannelCut(){return (QIGUICut*)fChannelCut;}
00049 std::map<QString, QIGUICut*> GetCuts () { return fCuts; }
00050
00051 QIGUIFileHandler * GetFileHandler () {return fFileHandler;}
00052 void SetFileHandler (QIGUIFileHandler * f);
00053
00054 QIGUISession * GetSession(){return fSession;}
00055 void SetSession(QIGUISession * session) {fSession = session;}
00056
00057
00058 int GetChannel() {return fChannel;}
00059
00060
00061 void AddCut(QIGUICut * c) ;
00062 void RemoveCut(QString name) ;
00063 void ClearCuts();
00064 void ToggleEventListNeedsRegeneration (bool flag = true) {fEventListNeedsRegeneration=flag;}
00065
00066
00067 TCut AndAllTheCuts();
00068 QString NameAndAllTheCuts();
00069
00070
00071 int GetNEvents();
00072
00073 void RegenerateEventList();
00074 TEventList * GetEventList();
00075 int GetNSelectedEvents();
00076 int GetEventNumber(int index);
00077 bool Contains(int ev);
00078
00079
00080 void LockChainMutex();
00081 void UnLockChainMutex();
00082 void EmitNofityChannelChangedToSpinSignal(int);
00083
00084 public slots:
00085 void SetChannel(int ch) ;
00086
00087 signals:
00088 void RegenerateEventListSignal();
00089 void NofityChannelChangedToSpinSignal(int);
00090
00091
00092
00093 };
00094
00095 #endif