1 #ifndef ALIMUONTRIGGERGUIBDMAP_H
2 #define ALIMUONTRIGGERGUIBDMAP_H
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
7 /// \ingroup evaluation
8 /// \class AliMUONTriggerGUIbdmap
9 /// \brief Trigger GUI utility class: single board map of the strips/digits
11 //////////////////////////////////////////////////////////////////////////
13 // Graphical User Interface utility class for the MUON trigger //
14 // - single board map of the strips/digits //
16 //////////////////////////////////////////////////////////////////////////
19 #include <RQ_OBJECT.h>
34 class AliMUONTriggerGUIboard;
35 class AliMUONTriggerGUI;
36 class AliMUONTriggerCircuit;
40 class AliMUONTriggerGUIbdmap : public TObject
43 RQ_OBJECT("AliMUONTriggerGUIbdmap")
47 AliMUONTriggerGUIbdmap(const TGWindow *p, const TGWindow *main, UInt_t w, UInt_t h);
48 virtual ~AliMUONTriggerGUIbdmap();
50 AliMUONTriggerGUIbdmap (const AliMUONTriggerGUIbdmap& bdmap);
51 AliMUONTriggerGUIbdmap& operator=(const AliMUONTriggerGUIbdmap& bdmap);
53 /// set the name of the board gui window
54 void SetName(Char_t *name) { fMain->SetWindowName(name); };
55 /// set the board associated to this instance
56 void SetBoard(AliMUONTriggerGUIboard *b) { fBoard = b; };
57 /// set the board associated to this instance, from boards array and id
58 void SetBoard(TObjArray *boards, Int_t id) {
60 fBoard = (AliMUONTriggerGUIboard*)boards->UncheckedAt(id); }
61 /// set the current muon loader
62 void SetLoader(AliLoader *loader) { fLoader = loader; };
66 void DrawStrips(Bool_t bx, Bool_t by);
67 void DrawDigits(Bool_t bx, Bool_t by);
69 void EditStrips(Int_t event, Int_t x, Int_t y, TObject *sel);
72 void HandleButtons(Int_t id = -1);
73 void HandleEditButton();
78 void LocalTriggerInfo();
82 enum { kNBoards = 234, kNMT = 4, kNS = 16 }; ///< constants
84 TGTransientFrame *fMain; ///< Main board frame
85 TCanvas *fCanvas[kNMT]; ///< MT canvases
86 TGTextEdit *fLocTrigE; ///< Window local trigger info
88 AliMUONTriggerGUIboard *fBoard; ///< Current board object
89 AliLoader *fLoader; ///< The MUON loader
90 AliMUONData *fMUONData; ///< MUON data manager
92 TGCheckButton *fXStrips; ///< Draw x-strips and digits
93 TGCheckButton *fYStrips; ///< Draw y-strips and digits
94 TGCheckButton *fEditStrips; ///< Set/unset the strips
96 TPolyLine *fXDigPL[kNMT][kNS]; ///< X-strip polyline
97 TPolyLine *fYDigPL[kNMT][kNS]; ///< Y-strip polyline
98 TBox *fXDigBox[kNMT][kNS]; ///< X-digit box
99 TBox *fYDigBox[kNMT][kNS]; ///< Y-digit box
100 TPaveText *fXLabelL[kNMT][kNS]; ///< X-strip labels left
101 TPaveText *fXLabelR[kNMT][kNS]; ///< X-strip labels right
102 TPaveText *fYLabelL[kNMT][kNS]; ///< Y-strip labels left
103 TPaveText *fYLabelR[kNMT][kNS]; ///< Y-strip labels right
105 Float_t fXWidth[kNMT]; ///< Board x-width
106 Float_t fYWidth[kNMT]; ///< Board y-width
107 Float_t fXCenter[kNMT]; ///< Board x-center
108 Float_t fYCenter[kNMT]; ///< Board y-center
110 Bool_t fXOn; ///< x-strips/digits on canvas ?
111 Bool_t fYOn; ///< y-strips/digits on canvas ?
112 Bool_t fLabelX; ///< x-labels exist
113 Bool_t fLabelY; ///< y-labels exist
114 Bool_t fIsEditable; ///< allows set/unset the strips
116 UInt_t fCanvasSize; ///< Size of the canvas
117 Int_t fNStripX; ///< Number of x-strips on board
118 Int_t fNStripY; ///< Number of y-strips on board
120 TObjArray *fBoards; ///< Array with all boards
122 ClassDef(AliMUONTriggerGUIbdmap,1) // board gui class