#include #include #include #include #include #include #include #include #include #include #include #include #include #include "CAENDigitizer.h" #include "macro.h" #include "ClassDigitizer.h" #include "boardSetting.h" #include "channelSettingPHA.h" #include "channelSettingPSD.h" #include "registerSetting.h" #include "triggerSummary.h" #include "programSetting.h" class TGWindow; class TGMainFrame; class TRootEmbeddedCanvas; class TGNumberEntry; class MainWindow{ RQ_OBJECT("MainWindow") private: TGMainFrame *fMain; static TRootEmbeddedCanvas *fEcanvas; TGMenuBar *fMenuBar; TGPopupMenu *fMenuFile, *fMenuDigitizers, *fMenuUtility; static TGNumberEntry * boardIDEntry, *chIDEntry; static TGTextEdit * teLog; TGTextButton *bOpenDigitizers; TGTextButton *bStartRun; TGTextButton *bStopRun; static TGComboBox* cbMode; static TGTextEntry * dataPrefix; static TGNumberEntry * runIDEntry; TGTextButton *bPlotSingleTrace; TGTextButton *bFitTrace; unsigned short nDigi; std::vector portID; std::vector boardID; std::vector serialNum; static Digitizer ** digi; static BoardSetting * boardSetting; ChannelSettingPHA * channelSettingPHA; ChannelSettingPSD * channelSettingPSD; RegisterSetting * registerSetting; TriggerSummary * triggerSummary; ProgramSetting * programSetting; TThread * fillHistThread; static TH1F * hEnergy [MaxNBoards][MaxNChannels]; static TH1F * hChannel[MaxNBoards]; static TGraph * gAnaTrace1; /// analogy trace 1 static TGraph * gAnaTrace2; /// analogy trace 2 static TGraph * gDigiTrace1; /// digital trace 1 static TGraph * gDigiTrace2; /// digital trace 1 public: MainWindow(const TGWindow *p, UInt_t w, UInt_t h); virtual ~MainWindow(); void HandleMenu(Int_t id); void OpenDigitizers(); void ChangeBoard(); void LoadSettingFromFile(); void StartRun(); void StopRun(); static void * FillHistogram(void * ptr); /// thread void PlotSingleTrace(); void FitTrace(); void Oscilloscope(); void OpenChannelSetting(Int_t); void LogMsg(char * ); void GoodBye(); };