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
10 // Author Bogdan Vulpescu, LPC Clermont-Ferrand
26 class AliMUONTriggerGUIboard;
27 class AliMUONTriggerGUI;
28 class AliMUONTriggerCircuit;
29 class AliMUONTriggerCrateStore;
30 class AliMUONMCDataInterface;
31 class AliMUONDigitStoreV1;
32 class AliMUONTriggerStoreV1;
35 class AliMUONTriggerGUIbdmap : public TGFrame
40 AliMUONTriggerGUIbdmap(const TGWindow *p, const TGWindow *main, UInt_t w, UInt_t h);
41 virtual ~AliMUONTriggerGUIbdmap();
43 /// set the name of the board gui window
44 void SetName(const Char_t *name) { fMain->SetWindowName(name); };
45 /// set the board associated to this instance
46 void SetBoard(AliMUONTriggerGUIboard *b) { fBoard = b; };
47 /// set the board associated to this instance, from boards array and id
48 void SetBoard(TObjArray *boards, Int_t id) {
50 fBoard = (AliMUONTriggerGUIboard*)boards->UncheckedAt(id); }
51 /// set the current muon loader
52 void SetLoader(AliLoader *loader) { fLoader = loader; };
53 /// set the MC data interface
54 void SetMCDataInterface(AliMUONMCDataInterface *mc) { fMCDataInterface = mc; };
55 /// set the digit store from raw data
56 void SetRawDigitStore(AliMUONDigitStoreV1 *ds) { fRawDigitStore = ds; };
57 /// set the trigger store from raw data
58 void SetRawTriggerStore(AliMUONTriggerStoreV1 *ts) { fRawTriggerStore = ts; };
60 /// set the trigger boards manager
61 void SetCrateManager(AliMUONTriggerCrateStore *crates) { fCrateManager = crates; };
65 void DrawStrips(Bool_t bx, Bool_t by);
66 void DrawDigits(Bool_t bx, Bool_t by);
68 void EditStrips(Int_t event, Int_t x, Int_t y, TObject *sel);
71 void HandleButtons(Int_t id = -1);
72 void HandleEditButton();
73 void CloseWindow() const;
77 void LocalTriggerInfo();
81 AliMUONTriggerGUIbdmap (const AliMUONTriggerGUIbdmap& bdmap);
83 AliMUONTriggerGUIbdmap& operator=(const AliMUONTriggerGUIbdmap& bdmap);
86 enum { kNBoards = 234, kNMT = 4, kNS = 16 }; ///< constants
88 TGTransientFrame *fMain; ///< Main board frame
89 TCanvas *fCanvas[kNMT]; ///< MT canvases
90 TGTextEdit *fLocTrigE; ///< Window local trigger info
92 AliMUONTriggerGUIboard *fBoard; ///< Current board object
93 AliLoader *fLoader; ///< The MUON loader
94 AliMUONMCDataInterface *fMCDataInterface; ///< MC data interface
95 AliMUONDigitStoreV1 *fRawDigitStore; ///< Raw data digit store
96 AliMUONTriggerStoreV1 *fRawTriggerStore; ///< Raw data trigger store
98 TGCheckButton *fXStrips; ///< Draw x-strips and digits
99 TGCheckButton *fYStrips; ///< Draw y-strips and digits
100 TGCheckButton *fEditStrips; ///< Set/unset the strips
102 TPolyLine *fXDigPL[kNMT][kNS]; ///< X-strip polyline
103 TPolyLine *fYDigPL[kNMT][kNS]; ///< Y-strip polyline
104 TBox *fXDigBox[kNMT][kNS]; ///< X-digit box
105 TBox *fYDigBox[kNMT][kNS]; ///< Y-digit box
106 TPaveText *fXLabelL[kNMT][kNS]; ///< X-strip labels left
107 TPaveText *fXLabelR[kNMT][kNS]; ///< X-strip labels right
108 TPaveText *fYLabelL[kNMT][kNS]; ///< Y-strip labels left
109 TPaveText *fYLabelR[kNMT][kNS]; ///< Y-strip labels right
111 Float_t fXWidth[kNMT]; ///< Board x-width
112 Float_t fYWidth[kNMT]; ///< Board y-width
113 Float_t fXCenter[kNMT]; ///< Board x-center
114 Float_t fYCenter[kNMT]; ///< Board y-center
116 Bool_t fXOn; ///< x-strips/digits on canvas ?
117 Bool_t fYOn; ///< y-strips/digits on canvas ?
118 Bool_t fLabelX; ///< x-labels exist
119 Bool_t fLabelY; ///< y-labels exist
120 Bool_t fIsEditable; ///< allows set/unset the strips
122 UInt_t fCanvasSize; ///< Size of the canvas
123 Int_t fNStripX; ///< Number of x-strips on board
124 Int_t fNStripY; ///< Number of y-strips on board
126 TObjArray *fBoards; ///< Array with all boards
128 AliMUONCalibrationData *fCalibrationData; ///< Pointer to calibration data
129 AliMUONTriggerCrateStore *fCrateManager; ///< trigger boards manager
131 ClassDef(AliMUONTriggerGUIbdmap,2) // board gui class