1 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
2 * See cxx source for full Copyright notice */
7 /// \brief GUI for drawing detection element segmentation
11 #ifndef ALI_MP_DE_VISU_H
12 #define ALI_MP_DE_VISU_H
16 #include "AliMpPlaneType.h"
19 #include <TObjArray.h>
23 class TRootEmbeddedCanvas;
33 class AliMpVSegmentation;
36 class AliMpMotifPosition;
38 class AliMpDEVisu : public TGFrame
42 AliMpDEVisu(UInt_t w = 1200, UInt_t h = 600);
43 virtual ~AliMpDEVisu();
48 Bool_t ProcessMessage(Long_t msg, Long_t parm1, Long_t parm2);
49 void DrawDE(Bool_t info = kTRUE);
51 void DrawManuMotif(Bool_t popup = kFALSE);
52 void DrawQuadrant(Option_t* option, Bool_t popup = kFALSE);
53 void DrawSlat(Option_t* option, Bool_t popup = kFALSE);
56 void UpdateNameView(Bool_t firstTime = kFALSE);
57 void PopUpManuMotif(AliMpSlat* slat);
58 void PopUpManuMotif(AliMpSector* sector);
59 void PopUpZoom(Int_t ix0, Int_t iy0, Int_t ix1, Int_t iy1);
61 void ClosePopupWindow(Int_t id);
63 void InfoManuMotif(AliMpMotifPosition* motifPos);
65 void SaveLogMessage();
66 void ClearLogMessage();
68 void HandleMovement(Int_t eventType, Int_t eventX, Int_t eventY, TObject* select);
71 void EventToReal(Int_t eventX, Int_t eventY, Double_t& x, Double_t& y) const;
72 void CreatePopupWindow(Int_t w, Int_t h, const char* title,
73 AliMpVPainter* painter,
78 AliMpDEVisu(const AliMpDEVisu& src);
80 AliMpDEVisu& operator=(const AliMpDEVisu& src);
82 const TGWindow* fkMainWindow; //!< main window
83 TGMainFrame* fMain; //!< main frame
84 TRootEmbeddedCanvas* fEcanvas; //!< canvas for detection elt
86 TGComboBox* fChamberCombo; //!< chamber botton
87 TGComboBox* fDECombo; //!< DE botton
88 TGNumberEntry* fNumberEntry; //!< manu id button
89 TGCheckButton* fPlaneButton; //!< check button for NB plane, defaultwise B plane
90 TGCheckButton* fZoomButton; //!< check button to activate zoom mode, default wise disable
91 TGComboBox* fNameDECombo; //!< name of the DE
92 TGTextView* fLogMessage; //!< log message
93 TGTextEntry* fLogFile; //!< text entry for log file name
94 TObjArray fTrashList; //!< list of transient windows to delete
96 TArrayI fDEComboIdx; //!< array for index vs DE id
97 TString fNameDEComboIdx[156]; //!< array for index vs DE names
98 TArrayI fDEOccurrence; //!< occurrence of DE
100 AliMp::PlaneType fCurrentPlane; //!< current plane type
101 Int_t fCurrentDetElem; //!< current DE
102 TString fCurrentDEName; //!< current DE name
104 const AliMpVSegmentation* fSegmentation; //!< segmentation instance
105 AliMpDDLStore* fDDLStore; //!< DDL Store
107 Bool_t fZoomMode; //!< flag for zoom mode on canvas instead of click mode
109 enum {kChamberCombo, kDECombo, kPlaneType, kDEName, kManuEntries, kLogMessage, kZoomMode};
111 ClassDef(AliMpDEVisu,1)