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     // Ctr, Dtr, initialization
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     // setters and getters
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     // Add and Remove cut
00061     void AddCut(QIGUICut * c) ;
00062     void RemoveCut(QString name) ;
00063     void ClearCuts(); // Clear all the cuts (except channelcut)
00064     void ToggleEventListNeedsRegeneration (bool flag = true) {fEventListNeedsRegeneration=flag;}
00065 
00066     // TODO Aritmetica de cuts
00067     TCut AndAllTheCuts(); // Return the && of all the fCuts
00068     QString NameAndAllTheCuts(); // Return the name of the and of all the cuts
00069                                  // example:   cut && !cut_1
00070 
00071     int GetNEvents(); // Return total number of events
00072 
00073     void RegenerateEventList();
00074     TEventList * GetEventList();
00075     int GetNSelectedEvents(); // Return the number of selected events
00076     int GetEventNumber(int index); // get event number corresponding to index in the eventList
00077     bool Contains(int ev); // Return true if ev is in the event list
00078 
00079     // Lock/UnLock Mutex that protects chain
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

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