remoe duplicate QA initialisation and do ESD QA for same detectors as RecPoint QA
[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
37 class AliMUONTriggerGUI : public TObject
38 {
39
40 public:
41
42   AliMUONTriggerGUI();
43   virtual ~AliMUONTriggerGUI() { 
44     /// main gui destructor 
45   };
46   
47   void OpenBoard(Int_t id);
48   void HandleMenu(Int_t id);
49
50   /* Do functions */
51
52   void DoRunApply();
53   void DoRunCancel();
54   void DoControlClose();
55   void DoCircuitCancel();
56   void DoCircuitOpen();
57   void DoErrorOK();
58   void DoNextEvent();
59   void DoPreviousEvent();
60   void DoSkipToEvent();
61   void DoErrorGUI(const Char_t *wt);
62
63   /* Close functions */
64
65   void CloseWindow();
66   void CloseRunInput() const;
67   void CloseError() const;
68   void CloseControl() const;
69   void CloseCircuit() const;
70
71 private:
72     
73   AliMUONTriggerGUI (const AliMUONTriggerGUI& board); ///< copy constructor
74   AliMUONTriggerGUI& operator=(const AliMUONTriggerGUI& board);///< assignment operator
75   
76 private:
77   
78   /// nr of boards, nr of chambers
79   enum { kNBoards = 234, kNMT = 4 }; 
80
81   /// working status flags
82   enum EMenuIdentifiers {
83     
84     kMFILEEXIT,
85     kMFILERUN,
86     kMFILECNTRL,
87     
88     kMMAPDIGITS,
89     kMRESETDIGITS,
90
91     kMCIRCUITOPEN,
92
93     kMTRIGGERDSET
94
95   };
96
97   enum {
98     kGood = 0x0001, kWithProblems = 0x0002, kNotWorking = 0x0004, kUnknown = 0x0008
99   };                                ///< working status flags
100
101   TGMainFrame      *fMain;          ///< The main frame
102   TGImageMap       *fImageMap;      ///< The image map of the main frame
103   TGTextBuffer     *fTxtBuffer1;    ///< Path to the data (galice.root)
104   TGTextBuffer     *fTxtBuffer2;    ///< Current event number
105   TGTextBuffer     *fTxtCircuit;    ///< Circuit to open
106
107   TGTransientFrame *fRunInput;      ///< Run input window
108   TGTransientFrame *fError;         ///< Error window
109   TGTransientFrame *fControl;       ///< Run control window
110   TGTransientFrame *fCircuit;       ///< Circuit window
111
112   TGTextEntry      *fSkipToEventTxt;///< Control field shows current event number
113
114   TString          *fFileName;      ///< Full galice file name
115   TString          *fPath;          ///< Path string to galice
116   TString          *fEvString;      ///< Event number string
117
118   Int_t             fChamber;       ///< Current MT chamber
119   Int_t             fEvent;         ///< Current event number
120   Int_t             fEventsPerRun;  ///< Number of events per file (run)
121
122   AliLoader        *fLoader;        ///< The MUON loader
123   AliRunLoader     *fRunLoader;     ///< The run loader
124
125   AliCDBManager    *fCDBManager;    ///< Calibration DB manager
126   AliMUONCalibrationData *fCalibrationData;   ///< Calibration data for MUON
127
128   Bool_t            fBoardsInit;    ///< Control the InitBoards only once
129
130   AliMUONTriggerGUIdimap *fDiMap;   ///< Digits map
131
132   AliMUONTriggerElectronics *fTriggerProcessor;   ///< The GUI trigger processor
133
134   TObjArray *fBoards;               ///< The array of trigger boards
135   /// Access the array of trigger boards
136   TObjArray *Boards() {
137     if(!fBoards) fBoards = new TObjArray(kNBoards); return fBoards;
138   };                                
139   AliMUONTriggerGUIboard *GetBoard(Int_t id) const;
140
141   virtual void Init();
142   virtual void InitBoards();
143
144   void  SetStripBoxes(AliMUONTriggerGUIboard *board);
145
146   ClassDef(AliMUONTriggerGUI,2)      // Main GUI class for the MUON trigger
147
148 };
149
150 #endif