ROOT logo
#ifndef ALIMUONMANUPADPAINTER_H
#define ALIMUONMANUPADPAINTER_H

/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
* See cxx source for full Copyright notice                               */

// $Id$

/// \ingroup graphics
/// \class AliMUONManuPadPainter
/// \brief Painter for the pads of one manu
/// 
// Author Laurent Aphecetche, Subatech

#ifndef ALIMUONVPAINTER_H
#  include "AliMUONVPainter.h"
#endif
#ifndef ALI_MP_PAD_H
#  include "AliMpPad.h"
#endif

class AliMUONManuPadPainter : public AliMUONVPainter
{
public:
  AliMUONManuPadPainter(TRootIOCtor* ioCtor);
  AliMUONManuPadPainter();
  AliMUONManuPadPainter(const AliMUONVPainter& mother,
                        Int_t detElemId,
                        Int_t manuId);
  virtual ~AliMUONManuPadPainter();

  /// Clone ourselves
  virtual TObject* Clone(const char* = "") const { return new AliMUONManuPadPainter(*this); }
  
  virtual void ComputeDataRange(const AliMUONVTrackerData& data,
                                Int_t dataIndex,
                                Double_t& dataMin, Double_t& dataMax) const;
    
  virtual char* GetObjectInfo(Int_t px, Int_t py) const;
  
  /// We advertise that we do handle mouse movement
  virtual Bool_t HandleMouseMotion() const { return kTRUE; }
  
  TString NameAtPosition(Double_t x, Double_t y) const;

    virtual TString Describe(const AliMUONVTrackerData& data, Int_t dataIndex,
                             Double_t x=FLT_MAX, Double_t y=FLT_MAX);

  using AliMUONVPainter::PaintArea;
  
  void PaintArea(const AliMUONVTrackerData& data,
                   Int_t dataIndex,
                   Double_t min,
                   Double_t max);
  
  void PaintOutline(Int_t color=-1, Int_t width=-1, Double_t x=FLT_MAX, Double_t y=FLT_MAX);

  /// Whether this painter can be detached from the current view.
  Bool_t CanBeDetached() const { return kFALSE; }

  virtual void DrawHistogramClone(Double_t* values=0x0) const;

  virtual Bool_t IsIncluded() const;
  
private:
    
  void BackupStyle();
  void RestoreStyle();
  AliMpPad PadByPosition(Double_t x, Double_t y) const;
  void PaintPad(const AliMpPad& pad) const;
  
private:
  Int_t fDetElemId; ///< our detection element id
  Int_t fManuId; ///< our manu id
  Int_t fLineColorBck; ///< line color for backup
  Int_t fLineWidthBck; ///< line width for backup
  Int_t fFillColorBck; ///< fill color for backup
  Int_t fFillStyleBck; ///< fill style for backup
  
  ClassDef(AliMUONManuPadPainter,1) // Painter for the pads of one manu
};

#endif
 AliMUONManuPadPainter.h:1
 AliMUONManuPadPainter.h:2
 AliMUONManuPadPainter.h:3
 AliMUONManuPadPainter.h:4
 AliMUONManuPadPainter.h:5
 AliMUONManuPadPainter.h:6
 AliMUONManuPadPainter.h:7
 AliMUONManuPadPainter.h:8
 AliMUONManuPadPainter.h:9
 AliMUONManuPadPainter.h:10
 AliMUONManuPadPainter.h:11
 AliMUONManuPadPainter.h:12
 AliMUONManuPadPainter.h:13
 AliMUONManuPadPainter.h:14
 AliMUONManuPadPainter.h:15
 AliMUONManuPadPainter.h:16
 AliMUONManuPadPainter.h:17
 AliMUONManuPadPainter.h:18
 AliMUONManuPadPainter.h:19
 AliMUONManuPadPainter.h:20
 AliMUONManuPadPainter.h:21
 AliMUONManuPadPainter.h:22
 AliMUONManuPadPainter.h:23
 AliMUONManuPadPainter.h:24
 AliMUONManuPadPainter.h:25
 AliMUONManuPadPainter.h:26
 AliMUONManuPadPainter.h:27
 AliMUONManuPadPainter.h:28
 AliMUONManuPadPainter.h:29
 AliMUONManuPadPainter.h:30
 AliMUONManuPadPainter.h:31
 AliMUONManuPadPainter.h:32
 AliMUONManuPadPainter.h:33
 AliMUONManuPadPainter.h:34
 AliMUONManuPadPainter.h:35
 AliMUONManuPadPainter.h:36
 AliMUONManuPadPainter.h:37
 AliMUONManuPadPainter.h:38
 AliMUONManuPadPainter.h:39
 AliMUONManuPadPainter.h:40
 AliMUONManuPadPainter.h:41
 AliMUONManuPadPainter.h:42
 AliMUONManuPadPainter.h:43
 AliMUONManuPadPainter.h:44
 AliMUONManuPadPainter.h:45
 AliMUONManuPadPainter.h:46
 AliMUONManuPadPainter.h:47
 AliMUONManuPadPainter.h:48
 AliMUONManuPadPainter.h:49
 AliMUONManuPadPainter.h:50
 AliMUONManuPadPainter.h:51
 AliMUONManuPadPainter.h:52
 AliMUONManuPadPainter.h:53
 AliMUONManuPadPainter.h:54
 AliMUONManuPadPainter.h:55
 AliMUONManuPadPainter.h:56
 AliMUONManuPadPainter.h:57
 AliMUONManuPadPainter.h:58
 AliMUONManuPadPainter.h:59
 AliMUONManuPadPainter.h:60
 AliMUONManuPadPainter.h:61
 AliMUONManuPadPainter.h:62
 AliMUONManuPadPainter.h:63
 AliMUONManuPadPainter.h:64
 AliMUONManuPadPainter.h:65
 AliMUONManuPadPainter.h:66
 AliMUONManuPadPainter.h:67
 AliMUONManuPadPainter.h:68
 AliMUONManuPadPainter.h:69
 AliMUONManuPadPainter.h:70
 AliMUONManuPadPainter.h:71
 AliMUONManuPadPainter.h:72
 AliMUONManuPadPainter.h:73
 AliMUONManuPadPainter.h:74
 AliMUONManuPadPainter.h:75
 AliMUONManuPadPainter.h:76
 AliMUONManuPadPainter.h:77
 AliMUONManuPadPainter.h:78
 AliMUONManuPadPainter.h:79
 AliMUONManuPadPainter.h:80
 AliMUONManuPadPainter.h:81
 AliMUONManuPadPainter.h:82
 AliMUONManuPadPainter.h:83