]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MUON/AliMUONTriggerGUI.h
Updated geometry
[u/mrichter/AliRoot.git] / MUON / AliMUONTriggerGUI.h
1 #ifndef ALIMUONTRIGGERGUI_H
2 #define ALIMUONTRIGGERGUI_H
3
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5  * See cxx source for full Copyright notice                               */
6
7 /* $Id$ */
8
9 /// \ingroup evaluation
10 /// \class AliMUONTriggerGUI
11 /// \brief Graphical User Interface utility class for the MUON trigger detector
12 //  Author Bogdan Vulpescu, LPC Clermont-Ferrand
13
14
15 #include <TObject.h>
16 #include <TObjArray.h>
17
18 class TString;
19 class TGMainFrame;
20 class TGTransientFrame;
21 class TGImageMap;
22 class TGTextEntry;
23 class TGTextBuffer;
24 class TRootEmbeddedCanvas;
25 class TParticle;
26 class TGTableLayout;
27
28 class AliStack;
29 class AliLoader;
30 class AliRunLoader;
31 class AliCDBManager;
32 class AliMUONCalibrationData;
33 class AliMUONTriggerGUIboard;
34 class AliMUONTriggerGUIdimap;
35 class AliMUONTriggerElectronics;
36 class AliMUONTriggerCrateStore;
37 class AliMUONMCDataInterface;
38
39 class AliMUONTriggerGUI : public TObject
40 {
41
42 public:
43
44   AliMUONTriggerGUI(Int_t runNumber = 0);
45   virtual ~AliMUONTriggerGUI() { 
46     /// main gui destructor 
47   };
48   
49   void OpenBoard(Int_t id);
50   void HandleMenu(Int_t id);
51
52   /* Do functions */
53
54   void DoRunApply();
55   void DoRunCancel();
56   void DoControlClose();
57   void DoCircuitCancel();
58   void DoCircuitOpen();
59   void DoErrorOK();
60   void DoNextEvent();
61   void DoPreviousEvent();
62   void DoSkipToEvent();
63   void DoErrorGUI(const Char_t *wt);
64
65   /* Close functions */
66
67   void CloseWindow();
68   void CloseRunInput() const;
69   void CloseError() const;
70   void CloseControl() const;
71   void CloseCircuit() const;
72
73 private:
74     
75   AliMUONTriggerGUI (const AliMUONTriggerGUI& board); ///< copy constructor
76   AliMUONTriggerGUI& operator=(const AliMUONTriggerGUI& board);///< assignment operator
77   
78 private:
79   
80   /// nr of boards, nr of chambers
81   enum { kNBoards = 234, kNMT = 4 }; 
82
83   /// working status flags
84   enum EMenuIdentifiers {
85     
86     kMFILEEXIT,
87     kMFILERUN,
88     kMFILECNTRL,
89     
90     kMMAPDIGITS,
91     kMRESETDIGITS,
92
93     kMCIRCUITOPEN,
94
95     kMTRIGGERDSET
96
97   };
98
99   enum {
100     kGood = 0x0001, kWithProblems = 0x0002, kNotWorking = 0x0004, kUnknown = 0x0008
101   };                                ///< working status flags
102
103   TGMainFrame      *fMain;          ///< The main frame
104   TGImageMap       *fImageMap;      ///< The image map of the main frame
105   TGTextBuffer     *fTxtBuffer1;    ///< Path to the data (galice.root)
106   TGTextBuffer     *fTxtBuffer2;    ///< Current event number
107   TGTextBuffer     *fTxtCircuit;    ///< Circuit to open
108
109   TGTransientFrame *fRunInput;      ///< Run input window
110   TGTransientFrame *fError;         ///< Error window
111   TGTransientFrame *fControl;       ///< Run control window
112   TGTransientFrame *fCircuit;       ///< Circuit window
113
114   TGTextEntry      *fSkipToEventTxt;///< Control field shows current event number
115
116   TString          *fFileName;      ///< Full galice file name
117   TString          *fPath;          ///< Path string to galice
118   TString          *fEvString;      ///< Event number string
119
120   Int_t             fChamber;       ///< Current MT chamber
121   Int_t             fEvent;         ///< Current event number
122   Int_t             fEventsPerRun;  ///< Number of events per file (run)
123
124   AliLoader        *fLoader;        ///< The MUON loader
125   AliRunLoader     *fRunLoader;     ///< The run loader
126
127   AliCDBManager    *fCDBManager;    ///< Calibration DB manager
128   AliMUONCalibrationData *fCalibrationData;   ///< Calibration data for MUON
129   AliMUONTriggerCrateStore *fCrateManager;    ///< trigger boards manager
130   AliMUONMCDataInterface *fMCDataInterface;   ///< MC data interface
131
132   Bool_t            fBoardsInit;    ///< Control the InitBoards only once
133
134   AliMUONTriggerGUIdimap *fDiMap;   ///< Digits map
135
136   AliMUONTriggerElectronics *fTriggerProcessor;   ///< The GUI trigger processor
137
138   TObjArray *fBoards;               ///< The array of trigger boards
139   /// Access the array of trigger boards
140   TObjArray *Boards() {
141     if(!fBoards) fBoards = new TObjArray(kNBoards); return fBoards;
142   };                                
143   AliMUONTriggerGUIboard *GetBoard(Int_t id) const;
144
145   virtual void Init();
146   virtual void InitBoards();
147
148   void  SetStripBoxes(AliMUONTriggerGUIboard *board);
149
150   ClassDef(AliMUONTriggerGUI,2)      // Main GUI class for the MUON trigger
151
152 };
153
154 #endif