QIGUISession.hh

00001 #ifndef _QIGUI_SESSION__H_
00002 #define _QIGUI_SESSION__H_
00003 
00004 #include <QDockWidget>
00005 #include <QMainWindow>
00006 #include <QIGUICoSessionHandler.hh>
00007 #include <QIGUIChannelSet.hh>
00008 
00009 
00010 #include "ui_DockSession.h"
00011 class QChain;
00012 class QTree;
00013 class QIGUIFileHandler;
00014 class QIGUIDianaSessionHandler;
00015 class QIGUIPulseWindow;
00016 class QIGUIPlotData;
00017 class QIGUIMainWindow;
00018 class QProgressBar;
00019 class QComboBox;
00020 class QIGUIDetectorMapViewer;
00021 
00022 class QIGUISession: public QDockWidget,  public Ui::DockSession
00023 {
00024   Q_OBJECT
00025 
00026   private:
00027 
00028     QIGUIMainWindow * fMainWindow;
00029     QIGUIFileHandler * fFileHandler;
00030     std::list<QIGUIPulseWindow *> fPulseWindows;
00031 
00032     // Diana
00033     QIGUIDianaSessionHandler * fDianaSessionHandler;
00034     bool fDianaSessionRunning;
00035     std::string fDianaStatus;
00036 
00037     // Coincidence Analysis
00038     std::map<QString, QIGUICoSessionHandler *> fCoSessionHandlers;
00039 
00040     // DetectorMap Viewer
00041     QIGUIDetectorMapViewer * fDetectorMapViewer;
00042     bool fDetectorMapViewerActive;
00043 
00044     // Channels sets
00045     std::map<int, QIGUIChannelSet> fChannelSets;
00046 
00047     // Channels
00048     std::vector<int> fChannels;
00049 
00050   public:
00051 
00052     // Ctr, Dtr, initialization
00053     QIGUISession (QWidget * parent=0);
00054     QIGUISession (QString& name, QWidget * parent=0);
00055     virtual ~QIGUISession();
00056     void Init();
00057     void InitDianaConfiguration();
00058     void CreateSignals();
00059     void DestroySignals();
00060 
00061     // SIGNALS
00062 
00063   signals:
00064     void RequestFocusToMainWindow(QString name);
00065     void DisplayParametersSignal();
00066 
00067     // SLOTS
00068   public slots:
00069     void CheckRequestFocus(bool vis);
00070     void NotifyChangeParameter(QTreeWidgetItem * , int );
00071     void DisplayParameters();
00072     void RerunDiana();
00073     void RefreshModulesParameters();
00074     void ChangeDianaConfiguration(QTreeWidgetItem * item, int column);
00075     // CoAnalisys
00076     void AddCoAnalysis();
00077     void RemoveCoAnalysis();
00078     void BuildCoincidences(QString name = "");
00079     void RefreshCurrentCoData();
00080     void NotifyChangeCoData(QTreeWidgetItem * , int );
00081     void CoAnalysisEnd(QString, int);
00082     void SetCoSessionHandlersStatus (QIGUICoSessionHandler::Status status);
00083     void SetCoSessionHandlerStatus (QString name, QIGUICoSessionHandler::Status status);
00084     // Detector map
00085     void ChangeDetectorMap();
00086     void NotifyChangeDetectorMap();
00087     void ShowDetectorMapViewer(int);
00088     QIGUIDetectorMapViewer * GetDetectorMapViewer() {return fDetectorMapViewer;}
00089     bool IsDetectorMapViewerActive () {return fDetectorMapViewerActive;}
00090   
00091 
00092 
00093   public:
00094     // Getters and Setters
00095     //
00096     // File
00097     QIGUIFileHandler * GetFileHandler() {return fFileHandler;}
00098     QIGUIMainWindow * GetMainWindow() {return fMainWindow;}
00099     std::list<QIGUIPulseWindow*> GetPulseWindows() {return fPulseWindows;}
00100     std::vector<int> & GetChannels() {return fChannels;}
00101     
00102 
00103     // METHODS
00104     void UpdateOpenFilesList();
00105     void FillVariablesComboCut();
00106     void FillVariablesComboCut(QComboBox * );
00107     void EmitDisplayParametersSignal();
00108 
00109     // Diana
00110     QIGUIDianaSessionHandler * GetDianaSessionHandler() {return fDianaSessionHandler;}
00111     bool CheckAutorunDiana();
00112     bool IsDianaRunning() {return fDianaSessionRunning;}
00113     void SetDianaStatus(std::string status);
00114     std::string GetDianaStatus() {return fDianaStatus;}
00115     std::string GetDianaPath();
00116     std::string GetDianaConfigFile();
00117     std::string GetDianaOptions();
00118     std::string GetDianaLogFile();
00119     int GetDianaPort();
00120     void SetDianaPort(int port);
00121     void AddPulseWindow(QIGUIPulseWindow*);
00122     void RemovePulseWindow(QIGUIPulseWindow*);
00123     void LaunchDianaPulsesViewer(QIGUIPlotData *plotData=0, QIGUICoSessionHandler * coSession=0);
00124     int RunDiana();
00125 
00126     // Coincidence analysis
00127     QIGUICoSessionHandler * GetCoSessionHandler(QString name="");
00128     void DeleteCoSessionHandler(QString name);
00129     std::string GetDetectorMap();
00130     void NotifyCutChangeToCoSessionHandlers(QString name);
00131     void NotifyCoCutChangeToCoSessionHandlers(QString name);
00132 
00133     // Channel sets
00134     bool IsChannelSet(int ch);
00135     QIGUIChannelSet & GetChannelSet(int ch);
00136 
00137     // Ntupla
00138     void AddFriend();
00139     void AddDeltaTimeFriend();
00140     void SaveNtuplaWithSelectedCuts();
00141     void DumpCoincidenceEventList();
00142 
00143     // Auxiliar
00144     void NotifyChangeFile();
00145     void SetCoAnalysisToBeDone(bool flag, QTreeWidgetItem * item=0);
00146     void ChangeCoCutName(QString & oldName, QString & newName);
00147 
00148 
00149     friend class QIGUIDianaSessionHandler;
00150     friend class QIGUICoSessionHandler;
00151 
00152 };
00153 
00154 #endif

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