Update from Alberica. Addition of VZERO equalized signals and ZNC.
[u/mrichter/AliRoot.git] / MUON / AliMUONTriggerGUI.h
CommitLineData
905654c2 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
bae1aa70 7/* $Id$ */
8
905654c2 9/// \ingroup evaluation
10/// \class AliMUONTriggerGUI
bae1aa70 11/// \brief Graphical User Interface utility class for the MUON trigger detector
12// Author Bogdan Vulpescu, LPC Clermont-Ferrand
905654c2 13
905654c2 14
15#include <TObject.h>
16#include <TObjArray.h>
17
18class TString;
19class TGMainFrame;
20class TGTransientFrame;
21class TGImageMap;
22class TGTextEntry;
23class TGTextBuffer;
24class TRootEmbeddedCanvas;
25class TParticle;
26class TGTableLayout;
27
28class AliStack;
29class AliLoader;
30class AliRunLoader;
31class AliCDBManager;
8b067dfe 32class AliRawReader;
905654c2 33class AliMUONCalibrationData;
34class AliMUONTriggerGUIboard;
35class AliMUONTriggerGUIdimap;
905654c2 36class AliMUONTriggerElectronics;
f9eb4448 37class AliMUONTriggerCrateStore;
38class AliMUONMCDataInterface;
8b067dfe 39class AliMUONDigitStoreV2R;
40class AliMUONDigitStoreV1;
41class AliMUONTriggerStoreV1;
905654c2 42
43class AliMUONTriggerGUI : public TObject
44{
45
46public:
47
f9eb4448 48 AliMUONTriggerGUI(Int_t runNumber = 0);
905654c2 49 virtual ~AliMUONTriggerGUI() {
50 /// main gui destructor
51 };
52
905654c2 53 void OpenBoard(Int_t id);
54 void HandleMenu(Int_t id);
55
8b067dfe 56 void CreateDigitStore();
57 void PrintDigitStore() const;
58 void ClearDigitStore();
59
60 void CreateTriggerStore();
61 void PrintTriggerStore() const;
62 void ClearTriggerStore();
63
64 void WriteTriggerRawData();
65
66 void FET(Int_t onoff);
67 void FETboard(Int_t ib, Int_t amp);
68
905654c2 69 /* Do functions */
70
8b067dfe 71 void DoRunGalApply();
72 void DoRunRawApply();
905654c2 73 void DoRunCancel();
74 void DoControlClose();
75 void DoCircuitCancel();
76 void DoCircuitOpen();
77 void DoErrorOK();
78 void DoNextEvent();
79 void DoPreviousEvent();
80 void DoSkipToEvent();
81 void DoErrorGUI(const Char_t *wt);
8b067dfe 82 void DoFETRegRun(Int_t onoff);
83 void DoFETRegOnCancel();
84 void DoFETRegOffCancel();
85 void DoFETRegOnRun();
86 void DoFETRegOffRun();
905654c2 87
88 /* Close functions */
89
90 void CloseWindow();
91 void CloseRunInput() const;
92 void CloseError() const;
93 void CloseControl() const;
94 void CloseCircuit() const;
8b067dfe 95 void CloseFETRegOn() const;
96 void CloseFETRegOff() const;
905654c2 97
98private:
bae1aa70 99
100 AliMUONTriggerGUI (const AliMUONTriggerGUI& board); ///< copy constructor
101 AliMUONTriggerGUI& operator=(const AliMUONTriggerGUI& board);///< assignment operator
102
103private:
905654c2 104
bae1aa70 105 /// nr of boards, nr of chambers
106 enum { kNBoards = 234, kNMT = 4 };
905654c2 107
bae1aa70 108 /// working status flags
905654c2 109 enum EMenuIdentifiers {
110
111 kMFILEEXIT,
112 kMFILERUN,
113 kMFILECNTRL,
114
115 kMMAPDIGITS,
116 kMRESETDIGITS,
117
118 kMCIRCUITOPEN,
119
8b067dfe 120 kMFETON,
121 kMFETOFF,
122 kMFETREGON,
123 kMFETREGOFF,
124
125 kMDSTORE,
126 kMTSTORE,
127 kMDSTORECL,
128 kMTSTORECL,
129 kMDSTOREP,
130 kMTSTOREP,
131
132 kMTRAWDATA
905654c2 133
bae1aa70 134 };
905654c2 135
136 enum {
137 kGood = 0x0001, kWithProblems = 0x0002, kNotWorking = 0x0004, kUnknown = 0x0008
138 }; ///< working status flags
139
140 TGMainFrame *fMain; ///< The main frame
141 TGImageMap *fImageMap; ///< The image map of the main frame
142 TGTextBuffer *fTxtBuffer1; ///< Path to the data (galice.root)
143 TGTextBuffer *fTxtBuffer2; ///< Current event number
144 TGTextBuffer *fTxtCircuit; ///< Circuit to open
8b067dfe 145 TGTextBuffer *fTxtFETRegOn; ///< Regional crate to FET ON
146 TGTextBuffer *fTxtFETRegOff; ///< Regional crate to FET OFF
905654c2 147
148 TGTransientFrame *fRunInput; ///< Run input window
149 TGTransientFrame *fError; ///< Error window
150 TGTransientFrame *fControl; ///< Run control window
151 TGTransientFrame *fCircuit; ///< Circuit window
8b067dfe 152 TGTransientFrame *fFETRegOn; ///< FET ON for a regional card
153 TGTransientFrame *fFETRegOff; ///< FET OFF for a regional card
905654c2 154
155 TGTextEntry *fSkipToEventTxt;///< Control field shows current event number
156
157 TString *fFileName; ///< Full galice file name
158 TString *fPath; ///< Path string to galice
159 TString *fEvString; ///< Event number string
160
161 Int_t fChamber; ///< Current MT chamber
162 Int_t fEvent; ///< Current event number
163 Int_t fEventsPerRun; ///< Number of events per file (run)
164
165 AliLoader *fLoader; ///< The MUON loader
166 AliRunLoader *fRunLoader; ///< The run loader
167
168 AliCDBManager *fCDBManager; ///< Calibration DB manager
169 AliMUONCalibrationData *fCalibrationData; ///< Calibration data for MUON
f9eb4448 170 AliMUONTriggerCrateStore *fCrateManager; ///< trigger boards manager
171 AliMUONMCDataInterface *fMCDataInterface; ///< MC data interface
905654c2 172
173 Bool_t fBoardsInit; ///< Control the InitBoards only once
8b067dfe 174 Bool_t fControlOn; ///< If the control frame is open
905654c2 175
176 AliMUONTriggerGUIdimap *fDiMap; ///< Digits map
177
178 AliMUONTriggerElectronics *fTriggerProcessor; ///< The GUI trigger processor
905654c2 179
180 TObjArray *fBoards; ///< The array of trigger boards
8b067dfe 181
182 AliMUONDigitStoreV2R *fDigitStore; ///< GUI digit store (DSET)
183 AliMUONTriggerStoreV1* fTriggerStore; ///< Trigger store with GUI digit store
184 Bool_t fTStoreOn; ///< True if DSET trigger store has data
185 Bool_t fRUNRAW; ///< True if run with raw data (root)
186 AliRawReader *fRawReader; ///< Reader for raw data input
187 Int_t fCurrentRawEvent; ///< Current event for raw data input
188 AliMUONDigitStoreV1 *fRawDigitStore; ///< Digit store from raw data
189 AliMUONTriggerStoreV1 *fRawTriggerStore; ///< Trigger store from raw data
190
bae1aa70 191 /// Access the array of trigger boards
905654c2 192 TObjArray *Boards() {
193 if(!fBoards) fBoards = new TObjArray(kNBoards); return fBoards;
bae1aa70 194 };
905654c2 195 AliMUONTriggerGUIboard *GetBoard(Int_t id) const;
196
197 virtual void Init();
198 virtual void InitBoards();
199
200 void SetStripBoxes(AliMUONTriggerGUIboard *board);
201
bae1aa70 202 ClassDef(AliMUONTriggerGUI,2) // Main GUI class for the MUON trigger
905654c2 203
204};
205
206#endif