#ifndef ALIMUONTRIGGERGUI_H
#define ALIMUONTRIGGERGUI_H
#include <TObject.h>
#include <TObjArray.h>
class TString;
class TGMainFrame;
class TGTransientFrame;
class TGImageMap;
class TGTextEntry;
class TGTextBuffer;
class TRootEmbeddedCanvas;
class TParticle;
class TGTableLayout;
class AliStack;
class AliLoader;
class AliRunLoader;
class AliCDBManager;
class AliRawReader;
class AliMUONCalibrationData;
class AliMUONTriggerGUIboard;
class AliMUONTriggerGUIdimap;
class AliMUONTriggerElectronics;
class AliMUONTriggerCrateStore;
class AliMUONMCDataInterface;
class AliMUONDigitStoreV2R;
class AliMUONDigitStoreV1;
class AliMUONTriggerStoreV1;
class AliMUONTriggerGUI : public TObject
{
public:
AliMUONTriggerGUI(Int_t runNumber = 0);
virtual ~AliMUONTriggerGUI() {
};
void OpenBoard(Int_t id);
void HandleMenu(Int_t id);
void CreateDigitStore();
void PrintDigitStore() const;
void ClearDigitStore();
void CreateTriggerStore();
void PrintTriggerStore() const;
void ClearTriggerStore();
void WriteTriggerRawData();
void FET(Int_t onoff);
void FETboard(Int_t ib, Int_t amp);
void DoRunGalApply();
void DoRunRawApply();
void DoRunCancel();
void DoControlClose();
void DoCircuitCancel();
void DoCircuitOpen();
void DoErrorOK();
void DoNextEvent();
void DoPreviousEvent();
void DoSkipToEvent();
void DoErrorGUI(const Char_t *wt);
void DoFETRegRun(Int_t onoff);
void DoFETRegOnCancel();
void DoFETRegOffCancel();
void DoFETRegOnRun();
void DoFETRegOffRun();
void CloseWindow();
void CloseRunInput() const;
void CloseError() const;
void CloseControl() const;
void CloseCircuit() const;
void CloseFETRegOn() const;
void CloseFETRegOff() const;
private:
AliMUONTriggerGUI (const AliMUONTriggerGUI& board);
AliMUONTriggerGUI& operator=(const AliMUONTriggerGUI& board);
private:
enum { kNBoards = 234, kNMT = 4 };
enum EMenuIdentifiers {
kMFILEEXIT,
kMFILERUN,
kMFILECNTRL,
kMMAPDIGITS,
kMRESETDIGITS,
kMCIRCUITOPEN,
kMFETON,
kMFETOFF,
kMFETREGON,
kMFETREGOFF,
kMDSTORE,
kMTSTORE,
kMDSTORECL,
kMTSTORECL,
kMDSTOREP,
kMTSTOREP,
kMTRAWDATA
};
enum {
kGood = 0x0001, kWithProblems = 0x0002, kNotWorking = 0x0004, kUnknown = 0x0008
};
TGMainFrame *fMain;
TGImageMap *fImageMap;
TGTextBuffer *fTxtBuffer1;
TGTextBuffer *fTxtBuffer2;
TGTextBuffer *fTxtCircuit;
TGTextBuffer *fTxtFETRegOn;
TGTextBuffer *fTxtFETRegOff;
TGTransientFrame *fRunInput;
TGTransientFrame *fError;
TGTransientFrame *fControl;
TGTransientFrame *fCircuit;
TGTransientFrame *fFETRegOn;
TGTransientFrame *fFETRegOff;
TGTextEntry *fSkipToEventTxt;
TString *fFileName;
TString *fPath;
TString *fEvString;
Int_t fChamber;
Int_t fEvent;
Int_t fEventsPerRun;
AliLoader *fLoader;
AliRunLoader *fRunLoader;
AliCDBManager *fCDBManager;
AliMUONCalibrationData *fCalibrationData;
AliMUONTriggerCrateStore *fCrateManager;
AliMUONMCDataInterface *fMCDataInterface;
Bool_t fBoardsInit;
Bool_t fControlOn;
AliMUONTriggerGUIdimap *fDiMap;
AliMUONTriggerElectronics *fTriggerProcessor;
TObjArray *fBoards;
AliMUONDigitStoreV2R *fDigitStore;
AliMUONTriggerStoreV1* fTriggerStore;
Bool_t fTStoreOn;
Bool_t fRUNRAW;
AliRawReader *fRawReader;
Int_t fCurrentRawEvent;
AliMUONDigitStoreV1 *fRawDigitStore;
AliMUONTriggerStoreV1 *fRawTriggerStore;
TObjArray *Boards() {
if(!fBoards) fBoards = new TObjArray(kNBoards); return fBoards;
};
AliMUONTriggerGUIboard *GetBoard(Int_t id) const;
virtual void Init();
virtual void InitBoards();
void SetStripBoxes(AliMUONTriggerGUIboard *board);
ClassDef(AliMUONTriggerGUI,2)
};
#endif