Fixing a backward compatibility issue
[u/mrichter/AliRoot.git] / MUON / mapping / AliMpGraphContext.h
1 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
2  * See cxx source for full Copyright notice                               */
3
4 // $Id$
5 // $MpId: AliMpGraphContext.h,v 1.11 2006/05/24 13:58:13 ivana Exp $
6
7 /// \ingroup mpgraphics
8 /// \class AliMpGraphContext
9 /// \brief Class describing the correspondance between a given area
10 /// in pad, and a zone of real (cm) position
11 ///
12 /// \author David GUEZ, IPN Orsay
13
14 #ifndef ALI_MP_GRAPH_CONTEXT_H
15 #define ALI_MP_GRAPH_CONTEXT_H
16
17 #include <TObject.h>
18
19 #include "AliMpExMap.h"
20
21 #include <TVector2.h>
22
23 class MPainter;
24
25 class AliMpGraphContext : public TObject
26 {
27  public:
28   void Push() const;
29   void Pop();
30   static AliMpGraphContext *Instance();
31
32   //
33   // set methods
34   //
35            /// Set position of the pad area where to draw
36   void SetPadPosition(const TVector2 &position){fPadPosition=position;}
37            /// Set dimensions of the pad area where to draw
38   void SetPadDimensions(const TVector2 &dimensions){fPadDimensions=dimensions;}
39            /// Set position of the real area where to draw
40   void SetRealPosition(const TVector2 &position){fRealPosition=position;}
41            /// Set dimensions of the real area where to draw
42   void SetRealDimensions(const TVector2 &dimensions){fRealDimensions=dimensions;}
43            /// Set color to use
44   void SetColor(Int_t color){fColor=color;}
45
46   //
47   // get methods
48   //
49
50            /// Return position of the pad area where to draw
51   TVector2 GetPadPosition() const {return fPadPosition;}
52            /// Return dimensions of the pad area where to draw
53   TVector2 GetPadDimensions() const {return fPadDimensions;}
54            /// Return position of the real area where to draw
55   TVector2 GetRealPosition() const{return fRealPosition;}
56            /// Return dimensions of the real area where to draw
57   TVector2 GetRealDimensions() const{return fRealDimensions;}
58            /// Return color to use
59   Int_t GetColor() const {return fColor;}
60
61   //methods
62   TVector2 RealToPad(const TVector2 &position) const;
63   void RealToPad(const TVector2 &position
64                  ,const TVector2 &dimensions,
65                  TVector2 &padPosition,
66                  TVector2 &padDimensions) const;
67   void SetPadPosForReal(const TVector2 &position,const TVector2 &dimensions);
68
69  protected:
70   AliMpGraphContext(const AliMpGraphContext& right);
71   AliMpGraphContext&  operator = (const AliMpGraphContext& right);
72
73  private:
74   //private constructor (not instanciable from outside)
75   AliMpGraphContext();
76
77   ///< static data members
78   static AliMpGraphContext* fgInstance; ///< the global instance
79   static TObjArray          fgStack;    ///< the object stack
80   static Int_t              fgStackSize;///< the object stack size
81
82   //data members
83   Int_t    fColor;          ///< color to use
84   TVector2 fPadPosition;    ///< Position of the pad area where to draw
85   TVector2 fPadDimensions;  ///< Dimensions of the pad area where to draw
86
87   TVector2 fRealPosition;   ///< Position of the real area to draw
88   TVector2 fRealDimensions; ///< Dimensions of the real area to draw
89
90   ClassDef(AliMpGraphContext,1) // Correspondance pad area/real world
91 };
92
93 #endif //ALI_MP_GRAPH_CONTEXT_H
94
95