]>
Commit | Line | Data |
---|---|---|
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 | ||
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; | |
8b067dfe | 32 | class AliRawReader; |
905654c2 | 33 | class AliMUONCalibrationData; |
34 | class AliMUONTriggerGUIboard; | |
35 | class AliMUONTriggerGUIdimap; | |
905654c2 | 36 | class AliMUONTriggerElectronics; |
f9eb4448 | 37 | class AliMUONTriggerCrateStore; |
38 | class AliMUONMCDataInterface; | |
8b067dfe | 39 | class AliMUONDigitStoreV2R; |
40 | class AliMUONDigitStoreV1; | |
41 | class AliMUONTriggerStoreV1; | |
905654c2 | 42 | |
43 | class AliMUONTriggerGUI : public TObject | |
44 | { | |
45 | ||
46 | public: | |
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 | |
bae1aa70 | 98 | private: |
99 | ||
100 | AliMUONTriggerGUI (const AliMUONTriggerGUI& board); ///< copy constructor | |
101 | AliMUONTriggerGUI& operator=(const AliMUONTriggerGUI& board);///< assignment operator | |
102 | ||
905654c2 | 103 | private: |
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 |