Analysis  version 7.0 - august 2014
GEVSpectrumCreator.hh
Go to the documentation of this file.
1 //======================================================================
2 /*! \file GEVSpectrumCreator.hh
3  *
4  * Déclaration de la classe GEVSpectrumCreator, qui est
5  * une interface graphique pour définir un nouveau spectre.
6  *
7  * 14 septembre 2009
8  * - prise en compte des spectres 3D
9  */
10 //======================================================================
11 
12 #ifndef GEV_SPECTRUM_CREATOR_HH
13 #define GEV_SPECTRUM_CREATOR_HH
14 
15 #include "EventManager.hh"
16 
17 #include "RGBaseRequester.hh"
18 
19 // includes ROOT
20 #include <TGFrame.h>
21 #include <TGButton.h>
22 #include <TGComboBox.h>
23 #include <TGTextEntry.h>
24 #include <TGNumberEntry.h>
25 
26 ///! Nombre maxi de spectres opérandes à prévoir pour l'interface
27 #define GEV_SC_MAX_OPER 2
28 
29 ///! Nombre maxi de coefficients à prévoir pour l'interface
30 #define GEV_SC_MAX_COEF 3
31 
32 //======================================================================
33 /*! \class GEVSpectrumCreator
34  *
35  * Interface graphique de création d'un spectre.
36  *
37  * Elle permet de définir le type de spectre et les paramètres
38  * associés.
39  */
40 
41 class GEVSpectrumCreator : public RGBaseRequester
42 {
43 //----------------------------------------------------------------------
44  /*! \object_doc */
46 //----------------------------------------------------------------------
47 
48  protected:
49  EventManager * event_mgr; ///< Pointeur sur le gestionnaire d'événements
50  SpectrumList * spec_list; ///< Pointeur sur la liste de spectres
51 
52  string sp_name; ///< Nom du nouveau spectre
53  static Int_t sp_type; ///< Type du nouveau spectre
54  static string sp_family; ///< Nom de la famille
55 
56  static string xparam; ///< Nom du paramètre X
57  static Int_t xdim; ///< Dimension sur l'axe X
58  static Double_t xmin; ///< Valeur inférieure sur l'axe X
59  static Double_t xmax; ///< Valeur supérieure sur l'axe X
60 
61  static string yparam; ///< Nom du paramètre Y
62  static Int_t ydim; ///< Dimension sur l'axe Y
63  static Double_t ymin; ///< Valeur inférieure sur l'axe Y
64  static Double_t ymax; ///< Valeur supérieure sur l'axe Y
65 
66  static string zparam; ///< Nom du paramètre Z
67  static Int_t zdim; ///< Dimension sur l'axe Z
68  static Double_t zmin; ///< Valeur inférieure sur l'axe Z
69  static Double_t zmax; ///< Valeur supérieure sur l'axe Z
70 
71  static string spec_names; ///< Nom du spectre (spectre externe)
72  static string histo_file; ///< Nom du fichier (spectre externe)
73 
74 #ifndef __MAKECINT__
75  string spec_info[SPECTRUM_TYPE_MAX]; ///< Textes d'information sur les types de spectres
76 
77  Spectrum ** spec_result; ///< Pointeur sur l'adresse du spectre alloué en sortie
78 #endif
79 
80  // widgets de l'interface
81  TGCompositeFrame * w_frame; ///< Cadre principal (de la classe RGBaseRequester)
82 
83  TGLabel * w_name_label; ///< Label pour nom de spectre
84  TGTextEntry * w_name_text; ///< Texte pour nom de spectre
85 
86  TGComboBox * w_spec_type; ///< Type de spectre
87  TGTextButton * w_type_info; ///< Bouton d'info du type de spectre
88 
89  // widgets de l'axe X
90  TGGroupFrame * w_x_frame; ///< Cadre d'ensemble pour l'axe X
91 
92  TGTextButton * w_xparam_select; ///< Bouton de sélection du paramètre X
93  TGTextEntry * w_xparam_entry; ///< Saisie du paramètre X
94 
95  TGLabel * w_xdim_label; ///< Label dimension axe X
96  TGHorizontalFrame * w_xdim_h; ///< Cadre saisie dimension
97  TGNumberEntry * w_xdim_entry; ///< Saisie dimension axe X
98  TGTextButton * w_xdim_mult; ///< Bouton dimension x2
99  TGTextButton * w_xdim_div; ///< Bouton dimension /2
100 
101  TGLabel * w_xmin_label; ///< Label valeur mini axe X
102  TGNumberEntry * w_xmin_entry; ///< Saisie valeur mini axe X
103 
104  TGLabel * w_xmax_label; ///< Label valeur maxi axe X
105  TGNumberEntry * w_xmax_entry; ///< Saisie valeur maxi axe X
106 
107  // widgets de l'axe Y
108  TGGroupFrame * w_y_frame; ///< Cadre d'ensemble pour l'axe Y
109 
110  TGTextButton * w_yparam_select; ///< Bouton de sélection du paramètre Y
111  TGTextEntry * w_yparam_entry; ///< Saisie du paramètre Y
112 
113  TGLabel * w_ydim_label; ///< Label dimension axe Y
114  TGHorizontalFrame * w_ydim_h; ///< Cadre saisie dimension
115  TGNumberEntry * w_ydim_entry; ///< Saisie dimension axe Y
116  TGTextButton * w_ydim_mult; ///< Bouton dimension x2
117  TGTextButton * w_ydim_div; ///< Bouton dimension /2
118 
119  TGLabel * w_ymin_label; ///< Label valeur mini axe Y
120  TGNumberEntry * w_ymin_entry; ///< Saisie valeur mini axe Y
121 
122  TGLabel * w_ymax_label; ///< Label valeur maxi axe Y
123  TGNumberEntry * w_ymax_entry; ///< Saisie valeur maxi axe Y
124 
125  // widgets de l'axe Z
126  TGGroupFrame * w_z_frame; ///< Cadre d'ensemble pour l'axe Z
127 
128  TGTextButton * w_zparam_select; ///< Bouton de sélection du paramètre Z
129  TGTextEntry * w_zparam_entry; ///< Saisie du paramètre Z
130 
131  TGLabel * w_zdim_label; ///< Label dimension axe Z
132  TGHorizontalFrame * w_zdim_h; ///< Cadre saisie dimension
133  TGNumberEntry * w_zdim_entry; ///< Saisie dimension axe Z
134  TGTextButton * w_zdim_mult; ///< Bouton dimension x2
135  TGTextButton * w_zdim_div; ///< Bouton dimension /2
136 
137  TGLabel * w_zmin_label; ///< Label valeur mini axe Z
138  TGNumberEntry * w_zmin_entry; ///< Saisie valeur mini axe Z
139 
140  TGLabel * w_zmax_label; ///< Label valeur maxi axe Z
141  TGNumberEntry * w_zmax_entry; ///< Saisie valeur maxi axe Z
142 
143  // widgets pour spectres externe
144  TGGroupFrame * w_extern_frame; ///< Cadre d'ensemble pour données de spectre externe
145 
146  TGTextButton * w_file_button; ///< Bouton de sélection du fichier
147  TGTextEntry * w_file_text; ///< Saisie du nom de fichier
148  TGTextButton * w_histo_button; ///< Bouton de sélection des histogrammes
149  TGTextEntry * w_histo_text; ///< Saisie des noms d'histogrammes
150 
151  // widgets pour spectres calculés (1 ou 2 opérandes)
152  TGGroupFrame * w_calc_frame; ///< Cadre d'ensemble pour données de spectre calculé
153 
154  TGVerticalFrame * w_calc_oper_frame; ///< Cadre pour spectres opérandes
155  TGHorizontalFrame * w_oper_frame [GEV_SC_MAX_OPER]; ///< Cadre-ligne pour spectre opérande
156  TGTextButton * w_oper_select[GEV_SC_MAX_OPER]; ///< Bouton de sélection opérandes
157  TGTextEntry * w_oper_entry [GEV_SC_MAX_OPER]; ///< Saisie des spectres opérandes
158 
159  TGVerticalFrame * w_calc_coef_frame; ///< Cadre pour coefficients
160  TGHorizontalFrame * w_coef_frame[GEV_SC_MAX_COEF]; ///< Cadre-ligne pour coefficient
161  TGLabel * w_coef_label[GEV_SC_MAX_COEF]; ///< Label coefficients
162  TGNumberEntry * w_coef_entry[GEV_SC_MAX_COEF]; ///< Saisie valeur coefficients
163 
164  // widgets pour spectres calculés (N opérandes)
165  TGGroupFrame * w_oplist_frame; ///< Cadre d'ensemble pour données de spectre calculé sur liste d'opérandes
166  TGTextButton * w_oplist_select; ///< Bouton de sélection de la liste de spectres
167  TGTextEntry * w_oplist_entry; ///< Saisie des noms de spectres
168 
169  // famille de spectre
170  TGGroupFrame * w_fam_frame; ///< Cadre d'ensemble pour la famille
171  TGTextButton * w_fam_select; ///< Bouton de sélection de famille
172  TGTextEntry * w_fam_entry; ///< Saisie de la famille
173 
174 
175  public:
176 //----------------------------------------------------------------------
177 // Constructeur, destructeur, affectation
178  GEVSpectrumCreator ( EventManager * evt_mgr,
179  Int_t & result,
180  Spectrum *& spec_ptr,
181  const TGWindow * mw = NULL );
182  virtual ~GEVSpectrumCreator ( );
183 
184  protected:
185  GEVSpectrumCreator ( const GEVSpectrumCreator & original );
186 
187 //----------------------------------------------------------------------
188  public:
189 
190  virtual void Construct ( );
191  virtual void MapRequester ( );
192  virtual bool CheckInputs ( );
193  virtual bool CheckSize ( );
194 
195  virtual Int_t SpecRequest ( TGTextEntry *w_entry, const bool multi = false );
196 
197 //----------------------------------------------------------------------
198 // Slots
199 
200  virtual void TypeSelected ( Int_t type );
201  virtual void TypeInfoClicked ( );
202 
203  virtual void XParamClicked ( );
204  virtual void YParamClicked ( );
205  virtual void ZParamClicked ( );
206 
207  virtual void XDimMultClicked ( );
208  virtual void XDimDivClicked ( );
209 
210  virtual void YDimMultClicked ( );
211  virtual void YDimDivClicked ( );
212 
213  virtual void ZDimMultClicked ( );
214  virtual void ZDimDivClicked ( );
215 
216  virtual void FileButtonClicked ( );
217  virtual void HistoButtonClicked ( );
218 
219  virtual void OperSelectClicked ( Int_t num );
220  virtual void OperListButtonClicked ( );
221 
222  virtual void FamilyClicked ( );
223 
224  // boutons de la requête (surcharge de RGMessageRequester)
225  virtual void Button ( Int_t n );
226 
227 
228 //----------------------------------------------------------------------
229  public:
230  /*! Définition à usage de ROOT... */
232 };
233 
234 //----------------------------------------------------------------------
235 // FONCTIONS INLINE
236 //----------------------------------------------------------------------
237 
238 
239 //======================================================================
240 #endif
GObject(GEVSpectrumCreator)
TGNumberEntry * w_ymin_entry
Saisie valeur mini axe Y.
Definition: GEVSpectrumCreator.hh:120
TGLabel * w_ymin_label
Label valeur mini axe Y.
Definition: GEVSpectrumCreator.hh:119
TGNumberEntry * w_coef_entry[3]
Saisie valeur coefficients.
Definition: GEVSpectrumCreator.hh:162
TGTextButton * w_xdim_div
Bouton dimension /2.
Definition: GEVSpectrumCreator.hh:99
virtual void ZDimMultClicked()
Definition: GEVSpectrumCreator.cpp:1531
string sp_name
Nom du nouveau spectre.
Definition: GEVSpectrumCreator.hh:52
TGNumberEntry * w_xdim_entry
Saisie dimension axe X.
Definition: GEVSpectrumCreator.hh:97
virtual void MapRequester()
Definition: GEVSpectrumCreator.cpp:779
TGTextEntry * w_zparam_entry
Saisie du paramètre Z.
Definition: GEVSpectrumCreator.hh:129
static Double_t zmax
Valeur supérieure sur l&#39;axe Z.
Definition: GEVSpectrumCreator.hh:69
TGGroupFrame * w_oplist_frame
Cadre d&#39;ensemble pour données de spectre calculé sur liste d&#39;opérandes.
Definition: GEVSpectrumCreator.hh:165
static Int_t ydim
Dimension sur l&#39;axe Y.
Definition: GEVSpectrumCreator.hh:62
virtual void TypeInfoClicked()
Definition: GEVSpectrumCreator.cpp:1985
#define SPECTRUM_TYPE_MAX
! Maximum number of different spectra types
Definition: Spectrum.hh:96
virtual void OperListButtonClicked()
Definition: GEVSpectrumCreator.cpp:1669
TGHorizontalFrame * w_coef_frame[3]
Cadre-ligne pour coefficient.
Definition: GEVSpectrumCreator.hh:160
TGTextEntry * w_histo_text
Saisie des noms d&#39;histogrammes.
Definition: GEVSpectrumCreator.hh:149
TGTextEntry * w_yparam_entry
Saisie du paramètre Y.
Definition: GEVSpectrumCreator.hh:111
virtual Int_t SpecRequest(TGTextEntry *w_entry, const bool multi=false)
Definition: GEVSpectrumCreator.cpp:1092
TGTextButton * w_xdim_mult
Bouton dimension x2.
Definition: GEVSpectrumCreator.hh:98
virtual void FamilyClicked()
Definition: GEVSpectrumCreator.cpp:1680
#define GEV_SC_MAX_COEF
! Nombre maxi de coefficients à prévoir pour l&#39;interface
Definition: GEVSpectrumCreator.hh:30
SpectrumList * spec_list
Pointeur sur la liste de spectres.
Definition: GEVSpectrumCreator.hh:50
static Double_t ymin
Valeur inférieure sur l&#39;axe Y.
Definition: GEVSpectrumCreator.hh:63
static string histo_file
Nom du fichier (spectre externe)
Definition: GEVSpectrumCreator.hh:72
virtual void FileButtonClicked()
Definition: GEVSpectrumCreator.cpp:1553
TGGroupFrame * w_extern_frame
Cadre d&#39;ensemble pour données de spectre externe.
Definition: GEVSpectrumCreator.hh:144
static string zparam
Nom du paramètre Z.
Definition: GEVSpectrumCreator.hh:66
TGLabel * w_xmax_label
Label valeur maxi axe X.
Definition: GEVSpectrumCreator.hh:104
TGHorizontalFrame * w_ydim_h
Cadre saisie dimension.
Definition: GEVSpectrumCreator.hh:114
static Int_t sp_type
Type du nouveau spectre.
Definition: GEVSpectrumCreator.hh:53
TGLabel * w_coef_label[3]
Label coefficients.
Definition: GEVSpectrumCreator.hh:161
TGHorizontalFrame * w_oper_frame[2]
Cadre-ligne pour spectre opérande.
Definition: GEVSpectrumCreator.hh:155
TGTextEntry * w_oplist_entry
Saisie des noms de spectres.
Definition: GEVSpectrumCreator.hh:167
Definition: GEVSpectrumCreator.hh:41
TGNumberEntry * w_zdim_entry
Saisie dimension axe Z.
Definition: GEVSpectrumCreator.hh:133
TGTextButton * w_zparam_select
Bouton de sélection du paramètre Z.
Definition: GEVSpectrumCreator.hh:128
TGTextButton * w_file_button
Bouton de sélection du fichier.
Definition: GEVSpectrumCreator.hh:146
TGTextButton * w_oper_select[2]
Bouton de sélection opérandes.
Definition: GEVSpectrumCreator.hh:156
Definition: Spectrum.hh:222
TGGroupFrame * w_y_frame
Cadre d&#39;ensemble pour l&#39;axe Y.
Definition: GEVSpectrumCreator.hh:108
virtual ~GEVSpectrumCreator()
Definition: GEVSpectrumCreator.cpp:125
TGTextButton * w_zdim_mult
Bouton dimension x2.
Definition: GEVSpectrumCreator.hh:134
TGTextEntry * w_file_text
Saisie du nom de fichier.
Definition: GEVSpectrumCreator.hh:147
static Double_t ymax
Valeur supérieure sur l&#39;axe Y.
Definition: GEVSpectrumCreator.hh:64
#define GEV_SC_MAX_OPER
! Nombre maxi de spectres opérandes à prévoir pour l&#39;interface
Definition: GEVSpectrumCreator.hh:27
static Int_t xdim
Dimension sur l&#39;axe X.
Definition: GEVSpectrumCreator.hh:57
TGGroupFrame * w_fam_frame
Cadre d&#39;ensemble pour la famille.
Definition: GEVSpectrumCreator.hh:170
TGTextEntry * w_name_text
Texte pour nom de spectre.
Definition: GEVSpectrumCreator.hh:84
TGHorizontalFrame * w_xdim_h
Cadre saisie dimension.
Definition: GEVSpectrumCreator.hh:96
TGLabel * w_ymax_label
Label valeur maxi axe Y.
Definition: GEVSpectrumCreator.hh:122
static Double_t xmin
Valeur inférieure sur l&#39;axe X.
Definition: GEVSpectrumCreator.hh:58
TGNumberEntry * w_ymax_entry
Saisie valeur maxi axe Y.
Definition: GEVSpectrumCreator.hh:123
TGLabel * w_xmin_label
Label valeur mini axe X.
Definition: GEVSpectrumCreator.hh:101
TGTextButton * w_type_info
Bouton d&#39;info du type de spectre.
Definition: GEVSpectrumCreator.hh:87
Spectrum ** spec_result
Pointeur sur l&#39;adresse du spectre alloué en sortie.
Definition: GEVSpectrumCreator.hh:77
virtual void ZParamClicked()
Definition: GEVSpectrumCreator.cpp:1473
static string spec_names
Nom du spectre (spectre externe)
Definition: GEVSpectrumCreator.hh:71
TGNumberEntry * w_xmin_entry
Saisie valeur mini axe X.
Definition: GEVSpectrumCreator.hh:102
TGTextButton * w_oplist_select
Bouton de sélection de la liste de spectres.
Definition: GEVSpectrumCreator.hh:166
TGTextButton * w_ydim_mult
Bouton dimension x2.
Definition: GEVSpectrumCreator.hh:116
virtual bool CheckSize()
Definition: GEVSpectrumCreator.cpp:1044
TGComboBox * w_spec_type
Type de spectre.
Definition: GEVSpectrumCreator.hh:86
TGLabel * w_xdim_label
Label dimension axe X.
Definition: GEVSpectrumCreator.hh:95
TGHorizontalFrame * w_zdim_h
Cadre saisie dimension.
Definition: GEVSpectrumCreator.hh:132
static string yparam
Nom du paramètre Y.
Definition: GEVSpectrumCreator.hh:61
ClassDef(GEVSpectrumCreator, 0)
virtual void XDimMultClicked()
Definition: GEVSpectrumCreator.cpp:1493
static Double_t xmax
Valeur supérieure sur l&#39;axe X.
Definition: GEVSpectrumCreator.hh:59
TGTextButton * w_histo_button
Bouton de sélection des histogrammes.
Definition: GEVSpectrumCreator.hh:148
TGGroupFrame * w_x_frame
Cadre d&#39;ensemble pour l&#39;axe X.
Definition: GEVSpectrumCreator.hh:90
TGGroupFrame * w_calc_frame
Cadre d&#39;ensemble pour données de spectre calculé
Definition: GEVSpectrumCreator.hh:152
TGTextButton * w_yparam_select
Bouton de sélection du paramètre Y.
Definition: GEVSpectrumCreator.hh:110
virtual void Button(Int_t n)
Definition: GEVSpectrumCreator.cpp:1220
virtual void TypeSelected(Int_t type)
Definition: GEVSpectrumCreator.cpp:1696
virtual bool CheckInputs()
Definition: GEVSpectrumCreator.cpp:809
EventManager * event_mgr
Pointeur sur le gestionnaire d&#39;événements.
Definition: GEVSpectrumCreator.hh:49
TGLabel * w_name_label
Label pour nom de spectre.
Definition: GEVSpectrumCreator.hh:83
TGLabel * w_zmax_label
Label valeur maxi axe Z.
Definition: GEVSpectrumCreator.hh:140
TGGroupFrame * w_z_frame
Cadre d&#39;ensemble pour l&#39;axe Z.
Definition: GEVSpectrumCreator.hh:126
TGVerticalFrame * w_calc_oper_frame
Cadre pour spectres opérandes.
Definition: GEVSpectrumCreator.hh:154
virtual void XParamClicked()
Definition: GEVSpectrumCreator.cpp:1433
virtual void HistoButtonClicked()
Definition: GEVSpectrumCreator.cpp:1588
static string sp_family
Nom de la famille.
Definition: GEVSpectrumCreator.hh:54
TGLabel * w_zdim_label
Label dimension axe Z.
Definition: GEVSpectrumCreator.hh:131
virtual void YDimMultClicked()
Definition: GEVSpectrumCreator.cpp:1512
string spec_info[SPECTRUM_TYPE_MAX]
Textes d&#39;information sur les types de spectres.
Definition: GEVSpectrumCreator.hh:75
TGTextButton * w_xparam_select
Bouton de sélection du paramètre X.
Definition: GEVSpectrumCreator.hh:92
virtual void OperSelectClicked(Int_t num)
Definition: GEVSpectrumCreator.cpp:1661
Definition: SpectrumList.hh:30
static string xparam
Nom du paramètre X.
Definition: GEVSpectrumCreator.hh:56
TGNumberEntry * w_xmax_entry
Saisie valeur maxi axe X.
Definition: GEVSpectrumCreator.hh:105
TGNumberEntry * w_zmin_entry
Saisie valeur mini axe Z.
Definition: GEVSpectrumCreator.hh:138
TGTextEntry * w_oper_entry[2]
Saisie des spectres opérandes.
Definition: GEVSpectrumCreator.hh:157
TGTextButton * w_fam_select
Bouton de sélection de famille.
Definition: GEVSpectrumCreator.hh:171
TGTextButton * w_ydim_div
Bouton dimension /2.
Definition: GEVSpectrumCreator.hh:117
TGCompositeFrame * w_frame
Cadre principal (de la classe RGBaseRequester)
Definition: GEVSpectrumCreator.hh:81
TGLabel * w_zmin_label
Label valeur mini axe Z.
Definition: GEVSpectrumCreator.hh:137
TGNumberEntry * w_ydim_entry
Saisie dimension axe Y.
Definition: GEVSpectrumCreator.hh:115
TGTextButton * w_zdim_div
Bouton dimension /2.
Definition: GEVSpectrumCreator.hh:135
virtual void YParamClicked()
Definition: GEVSpectrumCreator.cpp:1453
GEVSpectrumCreator(EventManager *evt_mgr, Int_t &result, Spectrum *&spec_ptr, const TGWindow *mw=NULL)
Definition: GEVSpectrumCreator.cpp:64
static Int_t zdim
Dimension sur l&#39;axe Z.
Definition: GEVSpectrumCreator.hh:67
virtual void YDimDivClicked()
Definition: GEVSpectrumCreator.cpp:1520
TGNumberEntry * w_zmax_entry
Saisie valeur maxi axe Z.
Definition: GEVSpectrumCreator.hh:141
TGVerticalFrame * w_calc_coef_frame
Cadre pour coefficients.
Definition: GEVSpectrumCreator.hh:159
virtual void Construct()
Definition: GEVSpectrumCreator.cpp:136
TGTextEntry * w_xparam_entry
Saisie du paramètre X.
Definition: GEVSpectrumCreator.hh:93
static Double_t zmin
Valeur inférieure sur l&#39;axe Z.
Definition: GEVSpectrumCreator.hh:68
virtual void ZDimDivClicked()
Definition: GEVSpectrumCreator.cpp:1539
Definition: EventManager.hh:59
TGLabel * w_ydim_label
Label dimension axe Y.
Definition: GEVSpectrumCreator.hh:113
TGTextEntry * w_fam_entry
Saisie de la famille.
Definition: GEVSpectrumCreator.hh:172
virtual void XDimDivClicked()
Definition: GEVSpectrumCreator.cpp:1501