]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/mapping/AliMpDEVisu.h
Improving error handling and replacing printf by AliError
[u/mrichter/AliRoot.git] / MUON / mapping / AliMpDEVisu.h
index f03f98027c95e2a7c5857786297a4c104d1aef17..617b062677f17c12f2db6929648d24dd2586782b 100644 (file)
 #define ALI_MP_DE_VISU_H
 
 #include <TGFrame.h>
+
 #include "AliMpPlaneType.h"
 
+#include <TArrayI.h>
+#include <TObjArray.h>
+
 class TObject;
 class TString;
-class TList;
-class TArrayI;
 class TRootEmbeddedCanvas;
 class TGComboBox;
 class TGMainFrame;
@@ -31,30 +33,34 @@ class AliMpSector;
 class AliMpVSegmentation;
 class AliMpDDLStore;
 class TGTextEntry;
+class AliMpMotifPosition;
 
-class AliMpDEVisu : public TGFrame {
-
+class AliMpDEVisu : public TGFrame 
+{
 
 public:
     AliMpDEVisu(UInt_t w = 1200, UInt_t h = 600);
     virtual ~AliMpDEVisu();
 
 
+    void   UpdateComboCH();
     void   UpdateComboDE();
     Bool_t ProcessMessage(Long_t msg, Long_t parm1, Long_t parm2);
-    void   DrawDE();
+    void   DrawDE(Bool_t info = kTRUE);
     void   NextDE();
     void   DrawManuMotif(Bool_t popup = kFALSE);
     void   DrawQuadrant(Option_t* option, Bool_t popup = kFALSE);
     void   DrawSlat(Option_t* option, Bool_t popup = kFALSE);
 
     void   ResetManu();
-    void   UpdateNameView();
+    void   UpdateNameView(Bool_t firstTime = kFALSE);
     void   PopUpManuMotif(AliMpSlat* slat);
     void   PopUpManuMotif(AliMpSector* sector);
-
-    void   ClosedPopUpMotif(Int_t id);
+    void   PopUpZoom(Int_t ix0, Int_t iy0, Int_t ix1, Int_t iy1);
+    
+    void   ClosePopupWindow(Int_t id);
     void   InfoDE();
+    void   InfoManuMotif(AliMpMotifPosition* motifPos);
     void   DeletePopUp();
     void   SaveLogMessage();
     void   ClearLogMessage();
@@ -62,6 +68,16 @@ public:
     void   HandleMovement(Int_t eventType, Int_t eventX, Int_t eventY, TObject* select);
 
 private:
+    void EventToReal(Int_t eventX, Int_t eventY, Double_t& x, Double_t& y) const;
+    void CreatePopupWindow(Int_t w, Int_t h, const char* title,
+                           AliMpVPainter* painter,
+                           const char* option);
+    
+private:
+    /// Not implemented
+    AliMpDEVisu(const AliMpDEVisu& src);
+    /// Not implemented
+    AliMpDEVisu& operator=(const AliMpDEVisu& src);
 
     const TGWindow*    fkMainWindow; //!< main window
     TGMainFrame*       fMain;        //!< main frame
@@ -71,12 +87,15 @@ private:
     TGComboBox*    fDECombo;         //!< DE botton
     TGNumberEntry* fNumberEntry;     //!< manu id button
     TGCheckButton* fPlaneButton;     //!< check button for NB plane, defaultwise B plane
-    TGTextView*    fNameDEView;      //!< name of the DE
+    TGCheckButton* fZoomButton;      //!< check button to activate zoom mode, default wise disable
+    TGComboBox*    fNameDECombo;     //!< name of the DE
     TGTextView*    fLogMessage;      //!< log message
     TGTextEntry*   fLogFile;         //!< text entry for log file name
-    TList          fTrashList;       //!< list of transient windows to delete
+    TObjArray      fTrashList;       //!< list of transient windows to delete
 
     TArrayI        fDEComboIdx;      //!< array for index vs DE id
+    TString        fNameDEComboIdx[156];  //!< array for index vs DE names
+    TArrayI        fDEOccurrence;     //!< occurrence of DE
 
     AliMp::PlaneType fCurrentPlane;   //!< current plane type
     Int_t            fCurrentDetElem; //!< current DE
@@ -85,14 +104,11 @@ private:
     const AliMpVSegmentation* fSegmentation; //!< segmentation instance
     AliMpDDLStore*            fDDLStore;     //!< DDL Store
 
-    Int_t            fNumberOfPopUp;   //!< number of manu motif popup window open    
-
-    enum {kChamberCombo, kDECombo, kPlaneType, kDEName, kManuEntries, kLogMessage};
-
+    Bool_t           fZoomMode;        //!< flag for zoom mode on canvas instead of click mode
 
-    AliMpDEVisu(const AliMpDEVisu& src);
-    AliMpDEVisu& operator=(const AliMpDEVisu& src);
+    enum {kChamberCombo, kDECombo, kPlaneType, kDEName, kManuEntries, kLogMessage, kZoomMode};
 
-    ClassDef(AliMpDEVisu,1)
+    ClassDef(AliMpDEVisu,1) //GUI for drawing detection element segmentation
 };
 #endif
+