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