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
00033 QIGUIDianaSessionHandler * fDianaSessionHandler;
00034 bool fDianaSessionRunning;
00035 std::string fDianaStatus;
00036
00037
00038 std::map<QString, QIGUICoSessionHandler *> fCoSessionHandlers;
00039
00040
00041 QIGUIDetectorMapViewer * fDetectorMapViewer;
00042 bool fDetectorMapViewerActive;
00043
00044
00045 std::map<int, QIGUIChannelSet> fChannelSets;
00046
00047
00048 std::vector<int> fChannels;
00049
00050 public:
00051
00052
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
00062
00063 signals:
00064 void RequestFocusToMainWindow(QString name);
00065 void DisplayParametersSignal();
00066
00067
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
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
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
00095
00096
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
00104 void UpdateOpenFilesList();
00105 void FillVariablesComboCut();
00106 void FillVariablesComboCut(QComboBox * );
00107 void EmitDisplayParametersSignal();
00108
00109
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
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
00134 bool IsChannelSet(int ch);
00135 QIGUIChannelSet & GetChannelSet(int ch);
00136
00137
00138 void AddFriend();
00139 void AddDeltaTimeFriend();
00140 void SaveNtuplaWithSelectedCuts();
00141 void DumpCoincidenceEventList();
00142
00143
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