#ifndef M_HEXAGON
#define M_HEXAGON

//////////////////////////////////////////////////////////////
//
//   MHexagon
//
//   A Hexagon for the MAGIC event display
//
//////////////////////////////////////////////////////////////

#ifndef ROOT_TObject
#include "TObject.h" 
#endif 

#ifndef ROOT_TAttLine
#include "TAttLine.h"
#endif 

#ifndef ROOT_TAttFill
#include "TAttFill.h" 
#endif 

class MHexagon : public TObject, public TAttLine, public TAttFill 
{ 
 protected: 
  
  Float_t      fX ;  // X coordinate  of center
  Float_t      fY ;  // Y coordinate  of center
  Float_t      fD ;  // diameter D or better distance between opposite sides
  
 public: 
  
  MHexagon() ; 
  MHexagon(Float_t x, Float_t y, Float_t d ) ; 
  MHexagon( const MHexagon &hexagon) ; 
  virtual ~MHexagon() ; 

  void Copy ( TObject &hexagon ) ; 

  virtual Int_t  DistancetoPrimitive(Int_t px, Int_t py ) ; 
  virtual void   Draw( Option_t *Option="") ; 
  virtual void   DrawHexagon( Float_t x, Float_t y, Float_t d ) ; 
  
  virtual void   ExecuteEvent(Int_t event, Int_t px, Int_t py ) ;  
  
  virtual void   ls (Option_t *Option="") ; 
  virtual void   Paint(Option_t *Option="") ; 
  virtual void   PaintHexagon(Float_t x, Float_t y, Float_t d) ; 
  virtual void   Print(Option_t *Option="") ;

  ClassDef ( MHexagon, 1 )    //  a hexagon for MAGIC

} ; 

#endif  

