Analysis  version 7.0 - august 2014
GEVPadProperties.hh
Go to the documentation of this file.
1 //======================================================================
2 /*! \file GEVPadProperties.hh
3  *
4  * Déclaration de la classe GEVPadProperties, qui définit les
5  * propriétés d'une zone graphique.
6  */
7 //======================================================================
8 
9 #ifndef GEV_PAD_PROPERTIES_HH
10 #define GEV_PAD_PROPERTIES_HH
11 
12 // patrons de classes
13 #include "EventCommon.hh"
14 #include "GEVPreferences.hh"
15 
16 // includes ROOT
17 #include <TStyle.h>
18 
19 //======================================================================
20 /*! \class GEVPadProperties
21  *
22  * Cette classe contient l'ensemble des informations relative à * l'affichage d'une zone graphique de spectres: * - position du pad dans la page (canevas) * - marges dans le pad * - position des titres des axes * - ... */ class GEVPadProperties { //---------------------------------------------------------------------- /*! \object_doc */ GObject(GEVPadProperties); //---------------------------------------------------------------------- protected: Double_t x_inf; ///< Coordonnée mini sur l'axe X dans le canevas [0:1] Double_t x_sup; ///< Coordonnée maxi sur l'axe X dans le canevas [0:1] Double_t y_inf; ///< Coordonnée mini sur l'axe Y dans le canevas [0:1] Double_t y_sup; ///< Coordonnée maxi sur l'axe Y dans le canevas [0:1] Double_t x_mgl; ///< Marge à gauche du pad Double_t x_mgr; ///< Marge à droite du pad Double_t y_mgu; ///< Marge en haut du pad Double_t y_mgd; ///< Marge en bas du pad Double_t xtit_off; ///< Décalage du titre de l'axe X Double_t ytit_off; ///< Décalage du titre de l'axe Y Double_t theta; ///< Angle pour tracé 3D Double_t phi; ///< Angle pour tracé 3D //---------------------------------------------------------------------- // Constructeur, destructeur, affectation public: GEVPadProperties ( ); GEVPadProperties ( const GEVPadProperties & original ); GEVPadProperties & operator = ( const GEVPadProperties & original ); virtual ~GEVPadProperties ( ); //---------------------------------------------------------------------- // Modification de la geometrie du pad virtual void SetGeometry ( const Double_t x0, const Double_t x1, const Double_t y0, const Double_t y1 ); void SetXinf ( const Double_t v ); void SetXsup ( const Double_t v ); void SetYinf ( const Double_t v ); void SetYsup ( const Double_t v ); // Modification des marges du pad virtual void SetMargins ( const Double_t mgxl, const Double_t mgxr, const Double_t mgyu, const Double_t mgyd ); void SetMarginLeft ( const Double_t m ); void SetMarginRight ( const Double_t m ); void SetMarginUp ( const Double_t m ); void SetMarginDown ( const Double_t m ); // Modification du décalage des titres des axes virtual void SetAxisTitleOffsets ( const Double_t xoff, const Double_t yoff ); virtual void SetXTitleOffset ( const Double_t off ); virtual void SetYTitleOffset ( const Double_t off ); //---------------------------------------------------------------------- Double_t GetXinf ( ) const; Double_t GetXsup ( ) const; Double_t GetYinf ( ) const; Double_t GetYsup ( ) const; Double_t GetMarginLeft ( ) const; Double_t GetMarginRight ( ) const; Double_t GetMarginUp ( ) const; Double_t GetMarginDown ( ) const; Double_t GetXTitleOffset ( ) const; Double_t GetYTitleOffset ( ) const; //---------------------------------------------------------------------- // Angles pour les tracés 3D Double_t GetTheta ( ) const; Double_t GetPhi ( ) const; void SetTheta ( const Double_t ang ); void SetPhi ( const Double_t ang ); void SetAngles ( const Double_t th, const Double_t ph ); //---------------------------------------------------------------------- public: /*! Définition à usage de ROOT... */ ClassDef(GEVPadProperties,0); } ; //---------------------------------------------------------------------- // METHODES INLINE //---------------------------------------------------------------------- /*! Retourne la valeur définie pour Xinf (position dans le canevas, entre 0 et 1). */ inline Double_t GEVPadProperties::GetXinf ( ) const { return (x_inf); } /*! Retourne la valeur définie pour Xsup (position dans le canevas, entre 0 et 1). */ inline Double_t GEVPadProperties::GetXsup ( ) const { return (x_sup); } /*! Retourne la valeur définie pour Yinf (position dans le canevas, entre 0 et 1). */ inline Double_t GEVPadProperties::GetYinf ( ) const { return (y_inf); } /*! Retourne la valeur définie pour Ysup (position dans le canevas, entre 0 et 1). */ inline Double_t GEVPadProperties::GetYsup ( ) const { return (y_sup); } /*! Définit la valeur de Xinf (position dans le canevas, entre 0 et 1). * \param v nouvelle valeur */ inline void GEVPadProperties::SetXinf ( const Double_t v ) { if ((v >= 0.) && (v <= 1.) && (v < x_sup)) x_inf = v; } /*! Définit la valeur de Xsup (position dans le canevas, entre 0 et 1). * \param v nouvelle valeur */ inline void GEVPadProperties::SetXsup ( const Double_t v ) { if ((v >= 0.) && (v <= 1.) && (v > x_inf)) x_sup = v; } /*! Définit la valeur de Yinf (position dans le canevas, entre 0 et 1). * \param v nouvelle valeur */ inline void GEVPadProperties::SetYinf ( const Double_t v ) { if ((v >= 0.) && (v <= 1.) && (v < y_sup)) y_inf = v; } /*! Définit la valeur de Ysup (position dans le canevas, entre 0 et 1). * \param v nouvelle valeur */ inline void GEVPadProperties::SetYsup ( const Double_t v ) { if ((v >= 0.) && (v <= 1.) && (v > y_inf)) y_sup = v; } //---------------------------------------------------------------------- /*! Retourne la valeur définie pour la marge de gauche (marge interne). */ inline Double_t GEVPadProperties::GetMarginLeft ( ) const { return (x_mgl); } /*! Retourne la valeur définie pour la marge de droite (marge interne). */ inline Double_t GEVPadProperties::GetMarginRight ( ) const { return (x_mgr); } /*! Retourne la valeur définie pour la marge supérieure (marge interne). */ inline Double_t GEVPadProperties::GetMarginUp ( ) const { return (y_mgu); } /*! Retourne la valeur définie pour la marge inférieure (marge interne). */ inline Double_t GEVPadProperties::GetMarginDown ( ) const { return (y_mgd); } /*! Définit la valeur de la marge de gauche (marge interne). * \param m nouvelle valeur */ inline void GEVPadProperties::SetMarginLeft ( const Double_t m ) { x_mgl = m; } /*! Définit la valeur de la marge de droite (marge interne). * \param m nouvelle valeur */ inline void GEVPadProperties::SetMarginRight ( const Double_t m ) { x_mgr = m; } /*! Définit la valeur de la marge supérieure (marge interne). * \param m nouvelle valeur */ inline void GEVPadProperties::SetMarginUp ( const Double_t m ) { y_mgu = m; } /*! Définit la valeur de la marge inférieure (marge interne). * \param m nouvelle valeur */ inline void GEVPadProperties::SetMarginDown ( const Double_t m ) { y_mgd = m; } //---------------------------------------------------------------------- /*! Retourne la valeur du décalage du titre de l'axe X. */ inline Double_t GEVPadProperties::GetXTitleOffset ( ) const { return (xtit_off); } /*! Retourne la valeur du décalage du titre de l'axe Y. */ inline Double_t GEVPadProperties::GetYTitleOffset ( ) const { return (ytit_off); } /*! Définition du décalage des titres des axes. * \param xoff décalage du titre de l'axe X * \param yoff décalage du titre de l'axe Y */ inline void GEVPadProperties::SetAxisTitleOffsets ( const Double_t xoff, const Double_t yoff ) { xtit_off = xoff; ytit_off = yoff; } /*! Définition du décalage du titre de l'axe X. * \param off décalage du titre */ inline void GEVPadProperties::SetXTitleOffset ( const Double_t off ) { xtit_off = off; } /*! Définition du décalage du titre de l'axe Y. * \param off décalage du titre */ inline void GEVPadProperties::SetYTitleOffset ( const Double_t off ) { ytit_off = off; } //---------------------------------------------------------------------- /*! Retourne l'angle de rotation Theta pour les tracés en 3D.*/ inline Double_t GEVPadProperties::GetTheta ( ) const { return (theta); } /*! Retourne l'angle de rotation Phi pour les tracés en 3D.*/ inline Double_t GEVPadProperties::GetPhi ( ) const { return (phi); } /*! Définit l'angle de rotation Theta pour les tracés en 3D. * \param ang angle de rotation */ inline void GEVPadProperties::SetTheta ( const Double_t ang ) { theta = ang; } /*! Définit l'angle de rotation Phi pour les tracés en 3D. * \param ang angle de rotation */ inline void GEVPadProperties::SetPhi ( const Double_t ang ) { phi = ang; } /*! Définit les angles de rotation pour les tracés en 3D. * \param th angle de rotation * \param ph angle de rotation */ inline void GEVPadProperties::SetAngles ( const Double_t th, const Double_t ph ) { SetTheta(th); SetPhi(ph); } //====================================================================== #endif
23  * l'affichage d'une zone graphique de spectres:
24  * - position du pad dans la page (canevas)
25  * - marges dans le pad
26  * - position des titres des axes
27  * - ...
28  */
30 {
31 //----------------------------------------------------------------------
32  /*! \object_doc */
34 //----------------------------------------------------------------------
35 
36  protected:
37  Double_t x_inf; ///< Coordonnée mini sur l'axe X dans le canevas [0:1]
38  Double_t x_sup; ///< Coordonnée maxi sur l'axe X dans le canevas [0:1]
39  Double_t y_inf; ///< Coordonnée mini sur l'axe Y dans le canevas [0:1]
40  Double_t y_sup; ///< Coordonnée maxi sur l'axe Y dans le canevas [0:1]
41 
42  Double_t x_mgl; ///< Marge à gauche du pad
43  Double_t x_mgr; ///< Marge à droite du pad
44  Double_t y_mgu; ///< Marge en haut du pad
45  Double_t y_mgd; ///< Marge en bas du pad
46 
47  Double_t xtit_off; ///< Décalage du titre de l'axe X
48  Double_t ytit_off; ///< Décalage du titre de l'axe Y
49 
50  Double_t theta; ///< Angle pour tracé 3D
51  Double_t phi; ///< Angle pour tracé 3D
52 
53 //----------------------------------------------------------------------
54 // Constructeur, destructeur, affectation
55  public:
56 
57  GEVPadProperties ( );
58  GEVPadProperties ( const GEVPadProperties & original );
59  GEVPadProperties & operator = ( const GEVPadProperties & original );
60  virtual ~GEVPadProperties ( );
61 
62 //----------------------------------------------------------------------
63  // Modification de la geometrie du pad
64  virtual void SetGeometry ( const Double_t x0, const Double_t x1, const Double_t y0, const Double_t y1 );
65  void SetXinf ( const Double_t v );
66  void SetXsup ( const Double_t v );
67  void SetYinf ( const Double_t v );
68  void SetYsup ( const Double_t v );
69 
70  // Modification des marges du pad
71  virtual void SetMargins ( const Double_t mgxl, const Double_t mgxr, const Double_t mgyu, const Double_t mgyd );
72  void SetMarginLeft ( const Double_t m );
73  void SetMarginRight ( const Double_t m );
74  void SetMarginUp ( const Double_t m );
75  void SetMarginDown ( const Double_t m );
76 
77  // Modification du décalage des titres des axes
78  virtual void SetAxisTitleOffsets ( const Double_t xoff, const Double_t yoff );
79  virtual void SetXTitleOffset ( const Double_t off );
80  virtual void SetYTitleOffset ( const Double_t off );
81 
82 //----------------------------------------------------------------------
83  Double_t GetXinf ( ) const;
84  Double_t GetXsup ( ) const;
85  Double_t GetYinf ( ) const;
86  Double_t GetYsup ( ) const;
87 
88  Double_t GetMarginLeft ( ) const;
89  Double_t GetMarginRight ( ) const;
90  Double_t GetMarginUp ( ) const;
91  Double_t GetMarginDown ( ) const;
92 
93  Double_t GetXTitleOffset ( ) const;
94  Double_t GetYTitleOffset ( ) const;
95 
96 //----------------------------------------------------------------------
97  // Angles pour les tracés 3D
98  Double_t GetTheta ( ) const;
99  Double_t GetPhi ( ) const;
100  void SetTheta ( const Double_t ang );
101  void SetPhi ( const Double_t ang );
102  void SetAngles ( const Double_t th, const Double_t ph );
103 
104 //----------------------------------------------------------------------
105  public:
106  /*! Définition à usage de ROOT... */
108 } ;
109 
110 
111 //----------------------------------------------------------------------
112 // METHODES INLINE
113 //----------------------------------------------------------------------
114 
115 /*! Retourne la valeur définie pour Xinf (position dans le canevas, entre 0 et 1).
116  */
117 inline Double_t GEVPadProperties::GetXinf ( ) const { return (x_inf); }
118 
119 /*! Retourne la valeur définie pour Xsup (position dans le canevas, entre 0 et 1).
120  */
121 inline Double_t GEVPadProperties::GetXsup ( ) const { return (x_sup); }
122 
123 /*! Retourne la valeur définie pour Yinf (position dans le canevas, entre 0 et 1).
124  */
125 inline Double_t GEVPadProperties::GetYinf ( ) const { return (y_inf); }
126 
127 /*! Retourne la valeur définie pour Ysup (position dans le canevas, entre 0 et 1).
128  */
129 inline Double_t GEVPadProperties::GetYsup ( ) const { return (y_sup); }
130 
131 
132 /*! Définit la valeur de Xinf (position dans le canevas, entre 0 et 1).
133  * \param v nouvelle valeur
134  */
135 inline void GEVPadProperties::SetXinf ( const Double_t v )
136  { if ((v >= 0.) && (v <= 1.) && (v < x_sup)) x_inf = v; }
137 
138 /*! Définit la valeur de Xsup (position dans le canevas, entre 0 et 1).
139  * \param v nouvelle valeur
140  */
141 inline void GEVPadProperties::SetXsup ( const Double_t v )
142  { if ((v >= 0.) && (v <= 1.) && (v > x_inf)) x_sup = v; }
143 
144 /*! Définit la valeur de Yinf (position dans le canevas, entre 0 et 1).
145  * \param v nouvelle valeur
146  */
147 inline void GEVPadProperties::SetYinf ( const Double_t v )
148  { if ((v >= 0.) && (v <= 1.) && (v < y_sup)) y_inf = v; }
149 
150 /*! Définit la valeur de Ysup (position dans le canevas, entre 0 et 1).
151  * \param v nouvelle valeur
152  */
153 inline void GEVPadProperties::SetYsup ( const Double_t v )
154  { if ((v >= 0.) && (v <= 1.) && (v > y_inf)) y_sup = v; }
155 
156 
157 //----------------------------------------------------------------------
158 
159 /*! Retourne la valeur définie pour la marge de gauche (marge interne).
160  */
161 inline Double_t GEVPadProperties::GetMarginLeft ( ) const { return (x_mgl); }
162 
163 /*! Retourne la valeur définie pour la marge de droite (marge interne).
164  */
165 inline Double_t GEVPadProperties::GetMarginRight ( ) const { return (x_mgr); }
166 
167 /*! Retourne la valeur définie pour la marge supérieure (marge interne).
168  */
169 inline Double_t GEVPadProperties::GetMarginUp ( ) const { return (y_mgu); }
170 
171 /*! Retourne la valeur définie pour la marge inférieure (marge interne).
172  */
173 inline Double_t GEVPadProperties::GetMarginDown ( ) const { return (y_mgd); }
174 
175 
176 /*! Définit la valeur de la marge de gauche (marge interne).
177  * \param m nouvelle valeur
178  */
179 inline void GEVPadProperties::SetMarginLeft ( const Double_t m )
180  { x_mgl = m; }
181 
182 /*! Définit la valeur de la marge de droite (marge interne).
183  * \param m nouvelle valeur
184  */
185 inline void GEVPadProperties::SetMarginRight ( const Double_t m )
186  { x_mgr = m; }
187 
188 /*! Définit la valeur de la marge supérieure (marge interne).
189  * \param m nouvelle valeur
190  */
191 inline void GEVPadProperties::SetMarginUp ( const Double_t m )
192  { y_mgu = m; }
193 
194 /*! Définit la valeur de la marge inférieure (marge interne).
195  * \param m nouvelle valeur
196  */
197 inline void GEVPadProperties::SetMarginDown ( const Double_t m )
198  { y_mgd = m; }
199 
200 
201 //----------------------------------------------------------------------
202 
203 /*! Retourne la valeur du décalage du titre de l'axe X.
204  */
205 inline Double_t GEVPadProperties::GetXTitleOffset ( ) const
206  { return (xtit_off); }
207 
208 /*! Retourne la valeur du décalage du titre de l'axe Y.
209  */
210 inline Double_t GEVPadProperties::GetYTitleOffset ( ) const
211  { return (ytit_off); }
212 
213 /*! Définition du décalage des titres des axes.
214  * \param xoff décalage du titre de l'axe X
215  * \param yoff décalage du titre de l'axe Y
216  */
217 inline void GEVPadProperties::SetAxisTitleOffsets ( const Double_t xoff,
218  const Double_t yoff )
219  { xtit_off = xoff; ytit_off = yoff; }
220 
221 /*! Définition du décalage du titre de l'axe X.
222  * \param off décalage du titre
223  */
224 inline void GEVPadProperties::SetXTitleOffset ( const Double_t off )
225  { xtit_off = off; }
226 
227 /*! Définition du décalage du titre de l'axe Y.
228  * \param off décalage du titre
229  */
230 inline void GEVPadProperties::SetYTitleOffset ( const Double_t off )
231  { ytit_off = off; }
232 
233 //----------------------------------------------------------------------
234 
235 /*! Retourne l'angle de rotation Theta pour les tracés en 3D.*/
236 inline Double_t GEVPadProperties::GetTheta ( ) const
237  { return (theta); }
238 
239 /*! Retourne l'angle de rotation Phi pour les tracés en 3D.*/
240 inline Double_t GEVPadProperties::GetPhi ( ) const
241  { return (phi); }
242 
243 /*! Définit l'angle de rotation Theta pour les tracés en 3D.
244  * \param ang angle de rotation
245  */
246 inline void GEVPadProperties::SetTheta ( const Double_t ang )
247  { theta = ang; }
248 
249 /*! Définit l'angle de rotation Phi pour les tracés en 3D.
250  * \param ang angle de rotation
251  */
252 inline void GEVPadProperties::SetPhi ( const Double_t ang )
253  { phi = ang; }
254 
255 /*! Définit les angles de rotation pour les tracés en 3D.
256  * \param th angle de rotation
257  * \param ph angle de rotation
258  */
259 inline void GEVPadProperties::SetAngles ( const Double_t th, const Double_t ph )
260  { SetTheta(th); SetPhi(ph); }
261 
262 //======================================================================
263 #endif
Double_t x_inf
Coordonnée mini sur l&#39;axe X dans le canevas [0:1].
Definition: GEVPadProperties.hh:37
Double_t GetYinf() const
Definition: GEVPadProperties.hh:125
Double_t GetXsup() const
Definition: GEVPadProperties.hh:121
Double_t GetMarginDown() const
Definition: GEVPadProperties.hh:173
Double_t x_sup
Coordonnée maxi sur l&#39;axe X dans le canevas [0:1].
Definition: GEVPadProperties.hh:38
Definition: GEVPadProperties.hh:29
virtual void SetGeometry(const Double_t x0, const Double_t x1, const Double_t y0, const Double_t y1)
Definition: GEVPadProperties.cpp:113
virtual void SetMargins(const Double_t mgxl, const Double_t mgxr, const Double_t mgyu, const Double_t mgyd)
Definition: GEVPadProperties.cpp:138
Double_t GetTheta() const
Definition: GEVPadProperties.hh:236
Double_t GetMarginRight() const
Definition: GEVPadProperties.hh:165
Double_t y_sup
Coordonnée maxi sur l&#39;axe Y dans le canevas [0:1].
Definition: GEVPadProperties.hh:40
void SetMarginUp(const Double_t m)
Definition: GEVPadProperties.hh:191
virtual ~GEVPadProperties()
Definition: GEVPadProperties.cpp:101
ClassDef(GEVPadProperties, 0)
Double_t phi
Angle pour tracé 3D.
Definition: GEVPadProperties.hh:51
void SetPhi(const Double_t ang)
Definition: GEVPadProperties.hh:252
Double_t GetYTitleOffset() const
Definition: GEVPadProperties.hh:210
virtual void SetAxisTitleOffsets(const Double_t xoff, const Double_t yoff)
Definition: GEVPadProperties.hh:217
Double_t GetMarginLeft() const
Definition: GEVPadProperties.hh:161
virtual void SetYTitleOffset(const Double_t off)
Definition: GEVPadProperties.hh:230
void SetMarginRight(const Double_t m)
Definition: GEVPadProperties.hh:185
GEVPadProperties & operator=(const GEVPadProperties &original)
Definition: GEVPadProperties.cpp:74
void SetTheta(const Double_t ang)
Definition: GEVPadProperties.hh:246
Double_t y_inf
Coordonnée mini sur l&#39;axe Y dans le canevas [0:1].
Definition: GEVPadProperties.hh:39
GObject(GEVPadProperties)
void SetXinf(const Double_t v)
Definition: GEVPadProperties.hh:135
Double_t GetXinf() const
Definition: GEVPadProperties.hh:117
Double_t GetYsup() const
Definition: GEVPadProperties.hh:129
void SetMarginLeft(const Double_t m)
Definition: GEVPadProperties.hh:179
void SetXsup(const Double_t v)
Definition: GEVPadProperties.hh:141
Double_t GetXTitleOffset() const
Definition: GEVPadProperties.hh:205
Double_t ytit_off
Décalage du titre de l&#39;axe Y.
Definition: GEVPadProperties.hh:48
virtual void SetXTitleOffset(const Double_t off)
Definition: GEVPadProperties.hh:224
Double_t y_mgd
Marge en bas du pad.
Definition: GEVPadProperties.hh:45
Double_t xtit_off
Décalage du titre de l&#39;axe X.
Definition: GEVPadProperties.hh:47
Double_t theta
Angle pour tracé 3D.
Definition: GEVPadProperties.hh:50
void SetMarginDown(const Double_t m)
Definition: GEVPadProperties.hh:197
Double_t GetMarginUp() const
Definition: GEVPadProperties.hh:169
void SetYsup(const Double_t v)
Definition: GEVPadProperties.hh:153
void SetAngles(const Double_t th, const Double_t ph)
Definition: GEVPadProperties.hh:259
Double_t y_mgu
Marge en haut du pad.
Definition: GEVPadProperties.hh:44
GEVPadProperties()
Definition: GEVPadProperties.cpp:21
Double_t x_mgl
Marge à gauche du pad.
Definition: GEVPadProperties.hh:42
Double_t GetPhi() const
Definition: GEVPadProperties.hh:240
Double_t x_mgr
Marge à droite du pad.
Definition: GEVPadProperties.hh:43
void SetYinf(const Double_t v)
Definition: GEVPadProperties.hh:147