Analysis  version 7.0 - august 2014
SpectrumList.hh
Go to the documentation of this file.
1 //======================================================================
2 /*! \file SpectrumList.hh
3  *
4  * Déclaration des méthodes de la classe SpectrumList qui décrit
5  * une liste de spectres.
6  */
7 //======================================================================
8 
9 #ifndef SPECTRUM_LIST_HH
10 #define SPECTRUM_LIST_HH
11 
12 #include "EventCommon.hh"
13 
14 // nécessaire pour la génération du dictionnaire ROOT parce que la classe
15 // GListT<T> (constructeur) a besoin de la définition de GVectT<T>
16 #include "GVectT.hh"
17 
18 #include "GNamedListT.hh"
19 #include "Spectrum.hh"
20 #include "SpectrumFamilyList.hh"
21 
22 #include "RPointerList.hh"
23 
24 //======================================================================
25 /*! \class SpectrumList
26  *
27  * Cette classe décrit une liste de spectres.
28  */
29 
30 class SpectrumList : public GNamedListT<Spectrum>
31 {
32 //----------------------------------------------------------------------
33  /*! \object_doc */
35 //----------------------------------------------------------------------
36 
37  friend class EventManager;
38 
39  /// Définition du type itérateur pour les listes de spectres
40  typedef GListIterT<Spectrum> iterator;
41 
42  protected:
43  SpectrumFamilyList family_list; ///< Liste des familles de spectres
44 
45 
46  public:
47 
48 //----------------------------------------------------------------------
49 // CONSTRUCTEUR / AFFECTATION / DESTRUCTEUR
50 //----------------------------------------------------------------------
51 
52  // Constructeur par défaut.
53  SpectrumList ( );
54 
55  // Constructeur de recopie.
56  SpectrumList( const SpectrumList & );
57 
58  // Destructeur
59  virtual ~SpectrumList ( );
60 
61 //----------------------------------------------------------------------
62  // formats d'écriture
63  void SetNameLen ( const int l = -1 ) const;
64  void SetTypeLen ( const int l = -1 ) const;
65  void SetParamNameLen ( const int l = -1 ) const;
66  void SetDimLen ( const int l = -1 ) const;
67  void SetBoundLen ( const int l = -1, const int p = 0 ) const;
68  void SetAutoFormat ( ) const;
69 
70 //----------------------------------------------------------------------
71 
72  // retourne le pointeur sur un spectre
73  virtual Spectrum * GetSpectrumPtr ( const u_int num ) const;
74  virtual Spectrum * GetSpectrumPtr ( const string & spec_name ) const;
75  virtual int GetSpectrumIndex ( const string & spec_name ) const;
76  virtual string GetSpectrumName ( const u_int spec_num ) const;
77 
78  // retourne le pointeur sur l'histogramme d'un spectre
79  TH1 * GetHistoPtr ( const u_int num ) const;
80  TH1 * GetHistoPtr ( const string & spec_name ) const;
81 
82  virtual bool RenameSpectrum ( const u_int num, const string &name,
83  const string &name_x = "",
84  const string &name_y = "",
85  const string &name_z = "" );
86  virtual bool RenameSpectrum ( const string & spec_name, const string &name,
87  const string &name_x = "",
88  const string &name_y = "",
89  const string &name_z = "" );
90 
91 //----------------------------------------------------------------------
92  // actions sur toute la liste la liste des spectres
93  virtual void IncrementList ( ) const;
94  virtual void UpdateList ( ) const;
95  virtual void ResetList ( ) const; // inline
96  virtual void StartList ( ) const; // inline
97  virtual void StopList ( ) const; // inline
98  virtual void SuspendList ( ) const; // inline
99 
100  // Function called before new event processing
101  virtual void ClearEvent ( ) const; // inline
102 
103  protected:
104  virtual void IncrementListFast ( ) const;
105 
106  public:
107  // écriture de la liste des spectres
108  virtual void PrintList () const;
109  virtual void PrintList ( const string & filename ) const;
110  virtual void PrintList ( ostream &os ) const;
111 
112  // état de sélection pour toute la liste
113  virtual void SetSelection ( const bool b = true ) const;
114  virtual void SetSaveSelection ( const bool b = true ) const;
115  virtual void SetDeleteSelection ( const bool b = true ) const;
116 
117  virtual void SelectionToSave ( ) const;
118  virtual void SelectionToDelete ( ) const;
119 
120 //----------------------------------------------------------------------
121  // Lecture / Ecriture de la liste de spectres.
122  virtual Int_t Save ( const string & file_name ) const;
123  virtual Int_t Save ( FILE * fptr ) const;
124  virtual Int_t SaveSelected ( const string & file_name ) const;
125  virtual Int_t SaveSelected ( FILE * fptr ) const;
126  virtual Int_t Load ( const string & file_name, const EventManager *mgr, const bool append = true );
127  virtual Int_t Load ( FILE * fptr, const EventManager *mgr, const bool append = true );
128 
129  virtual Int_t SaveHistograms ( const string & file_name ) const;
130  virtual Int_t SaveSelectedHistograms ( const string & file_name ) const;
131  virtual Int_t SaveFamilyHistograms ( const string & file_name, const string & family_name ) const;
132 
133 //----------------------------------------------------------------------
134 // Gestion des familles de spectres
135 
136  protected:
137  virtual bool SetSpectrumFamily ( Spectrum * spec_ptr, const string & family_name );
138  virtual bool ResetSpectrumFamily ( Spectrum * spec_ptr );
139 
140  public:
141  virtual const SpectrumFamilyList * GetSpectrumFamilyListPtr ( ) const;
142 
143  virtual bool SetSpectrumFamily ( const string & spec_name, const string & family_name );
144  virtual bool SetSpectrumFamily ( const u_int spec_num, const string & family_name );
145  virtual bool ResetSpectrumFamily ( const string & spec_name );
146  virtual bool ResetSpectrumFamily ( const u_int spec_num );
147 
148  // écriture des familles
149  virtual void PrintFamily ( const string & family_name );
150  virtual void PrintFamily ( ostream &os ,const string & family_name );
151  virtual void PrintFamily ( const string & file_name, const string & family_name );
152 
153  // demarrage/arrêt/suspension des familles
154  virtual bool StartFamily ( const string & family_name );
155  virtual bool StopFamily ( const string & family_name );
156  virtual bool SuspendFamily ( const string & family_name );
157  virtual bool ResetFamily ( const string & family_name );
158 
159  // état de sélection par familles
160  virtual bool SetFamilySelection ( const string & family_name, const bool b = true ) const;
161  virtual bool SetFamilySaveSelection ( const string & family_name, const bool b = true ) const;
162  virtual bool SetFamilyDeleteSelection ( const string & family_name, const bool b = true ) const;
163 
164  // sauvegarde des spectres ROOT.
165 
166 //----------------------------------------------------------------------
167 // Gestion des filtres
168 
169  // filtres
170  virtual void SetFilter ( Filter *f ) const;
171  virtual void ResetFilter ( ) const;
172 
173  virtual bool SetFamilyFilter ( const string & family_name, Filter *f ) const;
174  virtual bool ResetFamilyFilter ( const string & family_name ) const;
175 
176  // teste si un des spectre de la liste utilise un contour ou un filtre
177  virtual Spectrum * UsesContour ( const RContour * ct, const bool rec = true ) const;
178  virtual Spectrum * UsesFilter ( const Filter * f, const bool rec = true ) const;
179 
180  // retourne des listes de pointeurs sur les spectres utilisant un
181  // contour ou un filtre donné. virtual u_int GetListUsingContour ( const RContour *ct, RPointerList & list ) const; virtual u_int GetListUsingFilter ( const Filter *f, RPointerList & list ) const; //---------------------------------------------------------------------- // teste si un spectre le la liste en utilise un autre virtual Spectrum * UsesSpectrum ( const Spectrum * sp, const bool rec = true ) const; // retourne des listes de pointeurs sur les spectres utilisant un // autre spectre. virtual u_int GetListUsingSpectrum ( const Spectrum *sp, RPointerList & list ) const; // suppression de spectres de la liste virtual bool Remove ( ); virtual bool RemoveSpectrum ( const string & spec_name, const bool force = true ); virtual bool RemoveSpectrum ( const u_int spec_num, const bool force = true ); virtual bool RemoveSpectrum ( const Spectrum * spec_ptr, const bool force = true ); // modification des protections contre la sauvegarde et la suppression virtual bool SetSpectrumSaveProtection ( Spectrum * spec_ptr, const bool b = true ); virtual bool SetSpectrumDeleteProtection ( Spectrum * spec_ptr, const bool b = true ); //---------------------------------------------------------------------- // Fonctions de comparaison de spectres virtual bool Compare ( const string &spec_name1, const string &spec_name2, const UInt_t flags ) const; virtual Int_t Compare ( const string &spec_name1, const string &spec_name2 ) const; static bool Compare ( const Spectrum *spec1, const Spectrum *spec2, const UInt_t flags ); static Int_t Compare ( const Spectrum *spec1, const Spectrum *spec2 ); virtual bool Compare ( const string &spec_list, const UInt_t flags ) const; virtual int CreateSpecTable ( const string &spec_names, Spectrum **&sp_tab, int &num ) const; /*! Redéfinition de la fonction pour la classe de base GSortListT. * C'est le résultat de GNamed::Compare. * \param spec1 premier spectre à comparer * \param spec2 second spectre à comparer */ inline virtual int Compare ( const Spectrum &spec1, const Spectrum &spec2 ) const { return (GSortListT<Spectrum>::Compare(spec1,spec2)); } //---------------------------------------------------------------------- // fonctions surchargées de la classe GListT (protégée) // ajout d'un spectre virtual GListIterT<Spectrum> AddSpectrum ( Spectrum * spec, const string &family = "" ); // ces fonctions sont surchargées car les spectres ne peuvent être // déplacés avant un autre spectre utilisé dans leur définition virtual bool MoveUp ( ); virtual bool MoveDown ( ); virtual bool MoveTop ( ); virtual bool MoveBottom ( ); //---------------------------------------------------------------------- // pour ROOT... public: /*! Définition à usage de ROOT... */ ClassDef(SpectrumList,0); }; //====================================================================== /*! Définit automatiquement les formats d'écriture des spectres: * taille des noms de spectres, des noms de paramètres, des * dimensions, etc... pour obtenir un affichage aligné. */ inline void SpectrumList::SetAutoFormat ( ) const { SetNameLen ( -1 ); SetTypeLen ( -1 ); SetParamNameLen ( -1 ); SetDimLen ( -1 ); SetBoundLen ( -1 ); } /*! Ecriture de la liste de spectres sur la sortie standard.*/ inline void SpectrumList::PrintList ( ) const { PrintList ( cerr ); } //---------------------------------------------------------------------- /*! Fonction qui compare les caractéristiques de deux spectres. * Ces caractéristiques sont définies dans l'énumération SpectrumCompare. * Si toutes les caractéristiques demandées sont indentiques, la fonction * retourne vrai (voir Spectrum::Compare). * \param spec1 pointeur sur le premier spectre * \param spec2 pointeur sur le second spectre * \param flags bits des caractéristiques à comparer */ inline bool SpectrumList::Compare ( const Spectrum * spec1, const Spectrum * spec2, const UInt_t flags ) { return (Spectrum::Compare(spec1,spec2)); } /*! Fonction qui compare les caractéristiques de deux spectres. * Les bits correspondants aux caractéristiques identiques (voir énumération * SpectrumCompare) sont mis à 1 dans le résultat (voir Spectrum::Compare). * \param spec1 pointeur sur le premier spectre * \param spec2 pointeur sur le second spectre */ inline Int_t SpectrumList::Compare ( const Spectrum *spec1, const Spectrum *spec2 ) { return (Spectrum::Compare(spec1,spec2)); } //---------------------------------------------------------------------- /*! Démarre tous les spectres de la liste.*/ inline void SpectrumList::StartList ( ) const { for (GListIterT<Spectrum> i = Begin(); i != Null(); ++i) { i->Start(); } } /*! Arrête tous les spectres de la liste.*/ inline void SpectrumList::StopList ( ) const { for (GListIterT<Spectrum> i = Begin(); i != Null(); ++i) { i->Stop(); } } /*! Suspend tous les spectres de la liste.*/ inline void SpectrumList::SuspendList ( ) const { for (GListIterT<Spectrum> i = Begin(); i != Null(); ++i) { i->Suspend(); } } /*! Remet à zéro tous les spectres de la liste.*/ inline void SpectrumList::ResetList ( ) const { for (GListIterT<Spectrum> i = Begin(); i != Null(); ++i) { i->Reset(); } } /*! Call the ClearEvent function for all spectra.*/ inline void SpectrumList::ClearEvent ( ) const { for (GListIterT<Spectrum> i = Begin(); i != Null(); ++i) { i->ClearEvent(); } } //---------------------------------------------------------------------- // FAMILLES DE SPECTRES /*! Retourne le pointeur de la liste de familles de spectres associée * à la liste de spectres. */ inline const SpectrumFamilyList * SpectrumList::GetSpectrumFamilyListPtr ( ) const { return ( &family_list ); } /*! Ajoute un spectre (donné par son pointeur) à une famille. * Méthode à usage interne seulement. * \param spec_ptr pointeur sur le spectre * \param family_name nom de la famille de spectres */ inline bool SpectrumList::SetSpectrumFamily ( Spectrum * spec_ptr, const string & family_name ) { return ( family_list.SetSpectrumFamily(spec_ptr,family_name) ); } /*! Retire un spectre (donné par son pointeur) de sa famille * (le spectre lui-même n'est pas affecté). * Méthode à usage interne seulement. * \param spec_ptr pointeur sur le spectre */ inline bool SpectrumList::ResetSpectrumFamily ( Spectrum * spec_ptr ) { return ( family_list.ResetSpectrumFamily(spec_ptr) ); } /*! Ecriture d'une familles de spectres sur la sortie standard. * \param family_name nom de la famille ("" pour toutes les familles) */ inline void SpectrumList::PrintFamily ( const string & family_name ) { family_list.PrintFamily ( family_name ); } /*! Ecriture d'une familles de spectres dans un flux de sortie. * \param os flux de sortie * \param family_name nom de la famille ("" pour toutes les familles) */ inline void SpectrumList::PrintFamily ( ostream &os, const string & family_name ) { family_list.PrintFamily ( os, family_name ); } /*! Ecriture d'une familles de spectres dans un fichier. * \param file_name nom du fichier * \param family_name nom de la famille ("" pour toutes les familles) */ inline void SpectrumList::PrintFamily ( const string & file_name, const string & family_name) { family_list.PrintFamily ( file_name, family_name ); } /*! Définition de l'état de sélection des spectres d'une famille. * La fonction retourne vrai si la famille existe. * \param family_name nom de la famille * \param b état de sélection demandé */ inline bool SpectrumList::SetFamilySelection ( const string & family_name, const bool b ) const { return (family_list.SetSpectraSelection (family_name, b)); } /*! Définition de l'état de sélection pour sauvegarde des spectres * d'une famille. * La fonction retourne vrai si la famille existe. * \param family_name nom de la famille * \param b état de sélection demandé */ inline bool SpectrumList::SetFamilySaveSelection ( const string & family_name, const bool b ) const { return (family_list.SetSpectraSaveSelection (family_name, b)); } /*! Définition de l'état de sélection pour suppression des spectres * d'une famille. * La fonction retourne vrai si la famille existe. * \param family_name nom de la famille * \param b état de sélection demandé */ inline bool SpectrumList::SetFamilyDeleteSelection ( const string & family_name, const bool b ) const { return (family_list.SetSpectraDeleteSelection (family_name, b)); } //====================================================================== #endif
182  virtual u_int GetListUsingContour ( const RContour *ct, RPointerList & list ) const;
183  virtual u_int GetListUsingFilter ( const Filter *f, RPointerList & list ) const;
184 
185 //----------------------------------------------------------------------
186  // teste si un spectre le la liste en utilise un autre
187  virtual Spectrum * UsesSpectrum ( const Spectrum * sp, const bool rec = true ) const;
188 
189  // retourne des listes de pointeurs sur les spectres utilisant un
190  // autre spectre.
191  virtual u_int GetListUsingSpectrum ( const Spectrum *sp, RPointerList & list ) const;
192 
193  // suppression de spectres de la liste
194  virtual bool Remove ( );
195  virtual bool RemoveSpectrum ( const string & spec_name, const bool force = true );
196  virtual bool RemoveSpectrum ( const u_int spec_num, const bool force = true );
197  virtual bool RemoveSpectrum ( const Spectrum * spec_ptr, const bool force = true );
198 
199  // modification des protections contre la sauvegarde et la suppression
200  virtual bool SetSpectrumSaveProtection ( Spectrum * spec_ptr, const bool b = true );
201  virtual bool SetSpectrumDeleteProtection ( Spectrum * spec_ptr, const bool b = true );
202 
203 //----------------------------------------------------------------------
204 // Fonctions de comparaison de spectres
205  virtual bool Compare ( const string &spec_name1, const string &spec_name2, const UInt_t flags ) const;
206  virtual Int_t Compare ( const string &spec_name1, const string &spec_name2 ) const;
207 
208  static bool Compare ( const Spectrum *spec1, const Spectrum *spec2, const UInt_t flags );
209  static Int_t Compare ( const Spectrum *spec1, const Spectrum *spec2 );
210 
211  virtual bool Compare ( const string &spec_list, const UInt_t flags ) const;
212 
213  virtual int CreateSpecTable ( const string &spec_names, Spectrum **&sp_tab, int &num ) const;
214 
215  /*! Redéfinition de la fonction pour la classe de base GSortListT.
216  * C'est le résultat de GNamed::Compare.
217  * \param spec1 premier spectre à comparer
218  * \param spec2 second spectre à comparer
219  */
220  inline virtual int Compare ( const Spectrum &spec1, const Spectrum &spec2 ) const
221  { return (GSortListT<Spectrum>::Compare(spec1,spec2)); }
222 
223 //----------------------------------------------------------------------
224 // fonctions surchargées de la classe GListT (protégée)
225 
226  // ajout d'un spectre
227  virtual GListIterT<Spectrum> AddSpectrum ( Spectrum * spec, const string &family = "" );
228 
229  // ces fonctions sont surchargées car les spectres ne peuvent être
230  // déplacés avant un autre spectre utilisé dans leur définition
231  virtual bool MoveUp ( );
232  virtual bool MoveDown ( );
233  virtual bool MoveTop ( );
234  virtual bool MoveBottom ( );
235 
236 //----------------------------------------------------------------------
237 // pour ROOT...
238  public:
239  /*! Définition à usage de ROOT... */
241 };
242 
243 //======================================================================
244 
245 /*! Définit automatiquement les formats d'écriture des spectres:
246  * taille des noms de spectres, des noms de paramètres, des
247  * dimensions, etc... pour obtenir un affichage aligné. */ inline void SpectrumList::SetAutoFormat ( ) const { SetNameLen ( -1 ); SetTypeLen ( -1 ); SetParamNameLen ( -1 ); SetDimLen ( -1 ); SetBoundLen ( -1 ); } /*! Ecriture de la liste de spectres sur la sortie standard.*/ inline void SpectrumList::PrintList ( ) const { PrintList ( cerr ); } //---------------------------------------------------------------------- /*! Fonction qui compare les caractéristiques de deux spectres. * Ces caractéristiques sont définies dans l'énumération SpectrumCompare. * Si toutes les caractéristiques demandées sont indentiques, la fonction * retourne vrai (voir Spectrum::Compare). * \param spec1 pointeur sur le premier spectre * \param spec2 pointeur sur le second spectre * \param flags bits des caractéristiques à comparer */ inline bool SpectrumList::Compare ( const Spectrum * spec1, const Spectrum * spec2, const UInt_t flags ) { return (Spectrum::Compare(spec1,spec2)); } /*! Fonction qui compare les caractéristiques de deux spectres. * Les bits correspondants aux caractéristiques identiques (voir énumération * SpectrumCompare) sont mis à 1 dans le résultat (voir Spectrum::Compare). * \param spec1 pointeur sur le premier spectre * \param spec2 pointeur sur le second spectre */ inline Int_t SpectrumList::Compare ( const Spectrum *spec1, const Spectrum *spec2 ) { return (Spectrum::Compare(spec1,spec2)); } //---------------------------------------------------------------------- /*! Démarre tous les spectres de la liste.*/ inline void SpectrumList::StartList ( ) const { for (GListIterT<Spectrum> i = Begin(); i != Null(); ++i) { i->Start(); } } /*! Arrête tous les spectres de la liste.*/ inline void SpectrumList::StopList ( ) const { for (GListIterT<Spectrum> i = Begin(); i != Null(); ++i) { i->Stop(); } } /*! Suspend tous les spectres de la liste.*/ inline void SpectrumList::SuspendList ( ) const { for (GListIterT<Spectrum> i = Begin(); i != Null(); ++i) { i->Suspend(); } } /*! Remet à zéro tous les spectres de la liste.*/ inline void SpectrumList::ResetList ( ) const { for (GListIterT<Spectrum> i = Begin(); i != Null(); ++i) { i->Reset(); } } /*! Call the ClearEvent function for all spectra.*/ inline void SpectrumList::ClearEvent ( ) const { for (GListIterT<Spectrum> i = Begin(); i != Null(); ++i) { i->ClearEvent(); } } //---------------------------------------------------------------------- // FAMILLES DE SPECTRES /*! Retourne le pointeur de la liste de familles de spectres associée * à la liste de spectres. */ inline const SpectrumFamilyList * SpectrumList::GetSpectrumFamilyListPtr ( ) const { return ( &family_list ); } /*! Ajoute un spectre (donné par son pointeur) à une famille. * Méthode à usage interne seulement. * \param spec_ptr pointeur sur le spectre * \param family_name nom de la famille de spectres */ inline bool SpectrumList::SetSpectrumFamily ( Spectrum * spec_ptr, const string & family_name ) { return ( family_list.SetSpectrumFamily(spec_ptr,family_name) ); } /*! Retire un spectre (donné par son pointeur) de sa famille * (le spectre lui-même n'est pas affecté). * Méthode à usage interne seulement. * \param spec_ptr pointeur sur le spectre */ inline bool SpectrumList::ResetSpectrumFamily ( Spectrum * spec_ptr ) { return ( family_list.ResetSpectrumFamily(spec_ptr) ); } /*! Ecriture d'une familles de spectres sur la sortie standard. * \param family_name nom de la famille ("" pour toutes les familles) */ inline void SpectrumList::PrintFamily ( const string & family_name ) { family_list.PrintFamily ( family_name ); } /*! Ecriture d'une familles de spectres dans un flux de sortie. * \param os flux de sortie * \param family_name nom de la famille ("" pour toutes les familles) */ inline void SpectrumList::PrintFamily ( ostream &os, const string & family_name ) { family_list.PrintFamily ( os, family_name ); } /*! Ecriture d'une familles de spectres dans un fichier. * \param file_name nom du fichier * \param family_name nom de la famille ("" pour toutes les familles) */ inline void SpectrumList::PrintFamily ( const string & file_name, const string & family_name) { family_list.PrintFamily ( file_name, family_name ); } /*! Définition de l'état de sélection des spectres d'une famille. * La fonction retourne vrai si la famille existe. * \param family_name nom de la famille * \param b état de sélection demandé */ inline bool SpectrumList::SetFamilySelection ( const string & family_name, const bool b ) const { return (family_list.SetSpectraSelection (family_name, b)); } /*! Définition de l'état de sélection pour sauvegarde des spectres * d'une famille. * La fonction retourne vrai si la famille existe. * \param family_name nom de la famille * \param b état de sélection demandé */ inline bool SpectrumList::SetFamilySaveSelection ( const string & family_name, const bool b ) const { return (family_list.SetSpectraSaveSelection (family_name, b)); } /*! Définition de l'état de sélection pour suppression des spectres * d'une famille. * La fonction retourne vrai si la famille existe. * \param family_name nom de la famille * \param b état de sélection demandé */ inline bool SpectrumList::SetFamilyDeleteSelection ( const string & family_name, const bool b ) const { return (family_list.SetSpectraDeleteSelection (family_name, b)); } //====================================================================== #endif
248  */
249 inline void SpectrumList::SetAutoFormat ( ) const
250  {
251  SetNameLen ( -1 );
252  SetTypeLen ( -1 );
253  SetParamNameLen ( -1 );
254  SetDimLen ( -1 );
255  SetBoundLen ( -1 );
256  }
257 
258 /*! Ecriture de la liste de spectres sur la sortie standard.*/
259 inline void SpectrumList::PrintList ( ) const
260  { PrintList ( cerr ); }
261 
262 //----------------------------------------------------------------------
263 
264 /*! Fonction qui compare les caractéristiques de deux spectres.
265  * Ces caractéristiques sont définies dans l'énumération SpectrumCompare.
266  * Si toutes les caractéristiques demandées sont indentiques, la fonction
267  * retourne vrai (voir Spectrum::Compare).
268  * \param spec1 pointeur sur le premier spectre
269  * \param spec2 pointeur sur le second spectre
270  * \param flags bits des caractéristiques à comparer
271  */
272 inline bool SpectrumList::Compare ( const Spectrum * spec1,
273  const Spectrum * spec2,
274  const UInt_t flags )
275  { return (Spectrum::Compare(spec1,spec2)); }
276 
277 /*! Fonction qui compare les caractéristiques de deux spectres.
278  * Les bits correspondants aux caractéristiques identiques (voir énumération
279  * SpectrumCompare) sont mis à 1 dans le résultat (voir Spectrum::Compare).
280  * \param spec1 pointeur sur le premier spectre
281  * \param spec2 pointeur sur le second spectre
282  */
283 inline Int_t SpectrumList::Compare ( const Spectrum *spec1, const Spectrum *spec2 )
284  { return (Spectrum::Compare(spec1,spec2)); }
285 
286 //----------------------------------------------------------------------
287 
288 /*! Démarre tous les spectres de la liste.*/
289 inline void SpectrumList::StartList ( ) const
290 {
291  for (GListIterT<Spectrum> i = Begin(); i != Null(); ++i)
292  { i->Start(); }
293 }
294 
295 /*! Arrête tous les spectres de la liste.*/
296 inline void SpectrumList::StopList ( ) const
297 {
298  for (GListIterT<Spectrum> i = Begin(); i != Null(); ++i)
299  { i->Stop(); }
300 }
301 
302 /*! Suspend tous les spectres de la liste.*/
303 inline void SpectrumList::SuspendList ( ) const
304 {
305  for (GListIterT<Spectrum> i = Begin(); i != Null(); ++i)
306  { i->Suspend(); }
307 }
308 
309 /*! Remet à zéro tous les spectres de la liste.*/
310 inline void SpectrumList::ResetList ( ) const
311 {
312  for (GListIterT<Spectrum> i = Begin(); i != Null(); ++i)
313  { i->Reset(); }
314 }
315 
316 /*! Call the ClearEvent function for all spectra.*/
317 inline void SpectrumList::ClearEvent ( ) const
318 {
319  for (GListIterT<Spectrum> i = Begin(); i != Null(); ++i)
320  { i->ClearEvent(); }
321 }
322 
323 //----------------------------------------------------------------------
324 // FAMILLES DE SPECTRES
325 
326 /*! Retourne le pointeur de la liste de familles de spectres associée * à la liste de spectres. */ inline const SpectrumFamilyList * SpectrumList::GetSpectrumFamilyListPtr ( ) const { return ( &family_list ); } /*! Ajoute un spectre (donné par son pointeur) à une famille. * Méthode à usage interne seulement. * \param spec_ptr pointeur sur le spectre * \param family_name nom de la famille de spectres */ inline bool SpectrumList::SetSpectrumFamily ( Spectrum * spec_ptr, const string & family_name ) { return ( family_list.SetSpectrumFamily(spec_ptr,family_name) ); } /*! Retire un spectre (donné par son pointeur) de sa famille * (le spectre lui-même n'est pas affecté). * Méthode à usage interne seulement. * \param spec_ptr pointeur sur le spectre */ inline bool SpectrumList::ResetSpectrumFamily ( Spectrum * spec_ptr ) { return ( family_list.ResetSpectrumFamily(spec_ptr) ); } /*! Ecriture d'une familles de spectres sur la sortie standard. * \param family_name nom de la famille ("" pour toutes les familles) */ inline void SpectrumList::PrintFamily ( const string & family_name ) { family_list.PrintFamily ( family_name ); } /*! Ecriture d'une familles de spectres dans un flux de sortie. * \param os flux de sortie * \param family_name nom de la famille ("" pour toutes les familles) */ inline void SpectrumList::PrintFamily ( ostream &os, const string & family_name ) { family_list.PrintFamily ( os, family_name ); } /*! Ecriture d'une familles de spectres dans un fichier. * \param file_name nom du fichier * \param family_name nom de la famille ("" pour toutes les familles) */ inline void SpectrumList::PrintFamily ( const string & file_name, const string & family_name) { family_list.PrintFamily ( file_name, family_name ); } /*! Définition de l'état de sélection des spectres d'une famille. * La fonction retourne vrai si la famille existe. * \param family_name nom de la famille * \param b état de sélection demandé */ inline bool SpectrumList::SetFamilySelection ( const string & family_name, const bool b ) const { return (family_list.SetSpectraSelection (family_name, b)); } /*! Définition de l'état de sélection pour sauvegarde des spectres * d'une famille. * La fonction retourne vrai si la famille existe. * \param family_name nom de la famille * \param b état de sélection demandé */ inline bool SpectrumList::SetFamilySaveSelection ( const string & family_name, const bool b ) const { return (family_list.SetSpectraSaveSelection (family_name, b)); } /*! Définition de l'état de sélection pour suppression des spectres * d'une famille. * La fonction retourne vrai si la famille existe. * \param family_name nom de la famille * \param b état de sélection demandé */ inline bool SpectrumList::SetFamilyDeleteSelection ( const string & family_name, const bool b ) const { return (family_list.SetSpectraDeleteSelection (family_name, b)); } //====================================================================== #endif
327  * à la liste de spectres.
328  */
330  { return ( &family_list ); }
331 
332 /*! Ajoute un spectre (donné par son pointeur) à une famille.
333  * Méthode à usage interne seulement.
334  * \param spec_ptr pointeur sur le spectre
335  * \param family_name nom de la famille de spectres
336  */
337 inline bool SpectrumList::SetSpectrumFamily ( Spectrum * spec_ptr, const string & family_name )
338  { return ( family_list.SetSpectrumFamily(spec_ptr,family_name) ); }
339 
340 /*! Retire un spectre (donné par son pointeur) de sa famille
341  * (le spectre lui-même n'est pas affecté).
342  * Méthode à usage interne seulement.
343  * \param spec_ptr pointeur sur le spectre
344  */
345 inline bool SpectrumList::ResetSpectrumFamily ( Spectrum * spec_ptr )
346  { return ( family_list.ResetSpectrumFamily(spec_ptr) ); }
347 
348 
349 /*! Ecriture d'une familles de spectres sur la sortie standard.
350  * \param family_name nom de la famille ("" pour toutes les familles)
351  */
352 inline void SpectrumList::PrintFamily ( const string & family_name )
353  { family_list.PrintFamily ( family_name ); }
354 
355 /*! Ecriture d'une familles de spectres dans un flux de sortie.
356  * \param os flux de sortie
357  * \param family_name nom de la famille ("" pour toutes les familles)
358  */
359 inline void SpectrumList::PrintFamily ( ostream &os, const string & family_name )
360  { family_list.PrintFamily ( os, family_name ); }
361 
362 /*! Ecriture d'une familles de spectres dans un fichier.
363  * \param file_name nom du fichier
364  * \param family_name nom de la famille ("" pour toutes les familles)
365  */
366 inline void SpectrumList::PrintFamily ( const string & file_name, const string & family_name)
367  { family_list.PrintFamily ( file_name, family_name ); }
368 
369 /*! Définition de l'état de sélection des spectres d'une famille.
370  * La fonction retourne vrai si la famille existe.
371  * \param family_name nom de la famille
372  * \param b état de sélection demandé */ inline bool SpectrumList::SetFamilySelection ( const string & family_name, const bool b ) const { return (family_list.SetSpectraSelection (family_name, b)); } /*! Définition de l'état de sélection pour sauvegarde des spectres * d'une famille. * La fonction retourne vrai si la famille existe. * \param family_name nom de la famille * \param b état de sélection demandé */ inline bool SpectrumList::SetFamilySaveSelection ( const string & family_name, const bool b ) const { return (family_list.SetSpectraSaveSelection (family_name, b)); } /*! Définition de l'état de sélection pour suppression des spectres * d'une famille. * La fonction retourne vrai si la famille existe. * \param family_name nom de la famille * \param b état de sélection demandé */ inline bool SpectrumList::SetFamilyDeleteSelection ( const string & family_name, const bool b ) const { return (family_list.SetSpectraDeleteSelection (family_name, b)); } //====================================================================== #endif
373  */
374 inline bool SpectrumList::SetFamilySelection ( const string & family_name, const bool b ) const
375  { return (family_list.SetSpectraSelection (family_name, b)); }
376 
377 /*! Définition de l'état de sélection pour sauvegarde des spectres
378  * d'une famille.
379  * La fonction retourne vrai si la famille existe.
380  * \param family_name nom de la famille
381  * \param b état de sélection demandé */ inline bool SpectrumList::SetFamilySaveSelection ( const string & family_name, const bool b ) const { return (family_list.SetSpectraSaveSelection (family_name, b)); } /*! Définition de l'état de sélection pour suppression des spectres * d'une famille. * La fonction retourne vrai si la famille existe. * \param family_name nom de la famille * \param b état de sélection demandé */ inline bool SpectrumList::SetFamilyDeleteSelection ( const string & family_name, const bool b ) const { return (family_list.SetSpectraDeleteSelection (family_name, b)); } //====================================================================== #endif
382  */
383 inline bool SpectrumList::SetFamilySaveSelection ( const string & family_name, const bool b ) const
384  { return (family_list.SetSpectraSaveSelection (family_name, b)); }
385 
386 /*! Définition de l'état de sélection pour suppression des spectres
387  * d'une famille.
388  * La fonction retourne vrai si la famille existe.
389  * \param family_name nom de la famille
390  * \param b état de sélection demandé */ inline bool SpectrumList::SetFamilyDeleteSelection ( const string & family_name, const bool b ) const { return (family_list.SetSpectraDeleteSelection (family_name, b)); } //====================================================================== #endif
391  */
392 inline bool SpectrumList::SetFamilyDeleteSelection ( const string & family_name, const bool b ) const
393  { return (family_list.SetSpectraDeleteSelection (family_name, b)); }
394 
395 //======================================================================
396 
397 #endif
virtual void SetFilter(Filter *f) const
Definition: SpectrumList.cpp:1150
virtual void IncrementList() const
Definition: SpectrumList.cpp:87
virtual bool SetSpectrumSaveProtection(Spectrum *spec_ptr, const bool b=true)
Definition: SpectrumList.cpp:1793
virtual void SelectionToSave() const
Definition: SpectrumList.cpp:166
virtual bool SetSpectrumDeleteProtection(Spectrum *spec_ptr, const bool b=true)
Definition: SpectrumList.cpp:1846
SpectrumList spec_list
Liste des spectres de l&#39;analyse.
Definition: EventManager.hh:70
void SetTypeLen(const int l=-1) const
Definition: SpectrumList.cpp:256
virtual bool Compare(const string &spec_name1, const string &spec_name2, const UInt_t flags) const
Definition: SpectrumList.cpp:1228
virtual Int_t SaveHistograms(const string &file_name) const
Definition: SpectrumList.cpp:747
virtual Spectrum * UsesContour(const RContour *ct, const bool rec=true) const
Definition: SpectrumList.cpp:1374
virtual void StopList() const
Definition: SpectrumList.hh:296
virtual Int_t Save(const string &file_name) const
Definition: SpectrumList.cpp:528
bool ResetSpectrumFamily(Spectrum *spec)
Definition: SpectrumFamilyList.cpp:117
virtual bool MoveTop()
Definition: SpectrumList.cpp:1587
virtual void SetSelection(const bool b=true) const
Definition: SpectrumList.cpp:131
virtual u_int GetListUsingSpectrum(const Spectrum *sp, RPointerList &list) const
Definition: SpectrumList.cpp:1487
ClassDef(SpectrumList, 0)
GObject(SpectrumList)
virtual Int_t SaveFamilyHistograms(const string &file_name, const string &family_name) const
Definition: SpectrumList.cpp:815
virtual GListIterT< Spectrum > AddSpectrum(Spectrum *spec, const string &family="")
Definition: SpectrumList.cpp:49
static bool Compare(const Spectrum *spec1, const Spectrum *spec2, const UInt_t flags)
Definition: Spectrum.cpp:481
Definition: Filter.hh:50
SpectrumFamilyList family_list
Liste des familles de spectres.
Definition: SpectrumList.hh:43
virtual bool RemoveSpectrum(const string &spec_name, const bool force=true)
Definition: SpectrumList.cpp:1769
virtual Spectrum * UsesFilter(const Filter *f, const bool rec=true) const
Definition: SpectrumList.cpp:1396
virtual Int_t SaveSelectedHistograms(const string &file_name) const
Definition: SpectrumList.cpp:779
virtual Spectrum * GetSpectrumPtr(const u_int num) const
Definition: SpectrumList.cpp:836
virtual void SelectionToDelete() const
Definition: SpectrumList.cpp:177
Definition: Spectrum.hh:222
void SetBoundLen(const int l=-1, const int p=0) const
Definition: SpectrumList.cpp:416
virtual bool SetSpectraSelection(const string &family_name, const bool b=true) const
Definition: SpectrumFamilyList.cpp:248
virtual bool SetFamilyDeleteSelection(const string &family_name, const bool b=true) const
Definition: SpectrumList.hh:392
Definition: SpectrumFamilyList.hh:28
virtual int Compare(const Spectrum &spec1, const Spectrum &spec2) const
Definition: SpectrumList.hh:220
virtual u_int GetListUsingContour(const RContour *ct, RPointerList &list) const
Definition: SpectrumList.cpp:1419
virtual bool Remove()
Definition: SpectrumList.cpp:1660
virtual bool RenameSpectrum(const u_int num, const string &name, const string &name_x="", const string &name_y="", const string &name_z="")
Definition: SpectrumList.cpp:943
virtual bool SetSpectraDeleteSelection(const string &family_name, const bool b=true) const
Definition: SpectrumFamilyList.cpp:292
virtual bool SuspendFamily(const string &family_name)
Definition: SpectrumList.cpp:1105
virtual void SetSaveSelection(const bool b=true) const
Definition: SpectrumList.cpp:143
virtual const SpectrumFamilyList * GetSpectrumFamilyListPtr() const
Definition: SpectrumList.hh:329
virtual Int_t Load(const string &file_name, const EventManager *mgr, const bool append=true)
Definition: SpectrumList.cpp:641
virtual bool MoveBottom()
Definition: SpectrumList.cpp:1621
virtual void PrintList() const
Definition: SpectrumList.hh:259
virtual bool ResetFamily(const string &family_name)
Definition: SpectrumList.cpp:1125
void SetDimLen(const int l=-1) const
Definition: SpectrumList.cpp:337
virtual bool MoveUp()
Definition: SpectrumList.cpp:1541
bool SetSpectrumFamily(Spectrum *spec, const string &family_name)
Definition: SpectrumFamilyList.cpp:86
SpectrumList()
Definition: SpectrumList.cpp:23
virtual void PrintFamily(const string &family_name)
Definition: SpectrumList.hh:352
virtual void IncrementListFast() const
Definition: SpectrumList.cpp:101
virtual u_int GetListUsingFilter(const Filter *f, RPointerList &list) const
Definition: SpectrumList.cpp:1453
virtual bool ResetFamilyFilter(const string &family_name) const
Definition: SpectrumList.cpp:1200
void PrintFamily(const string &family_name) const
Definition: SpectrumFamilyList.hh:107
virtual ~SpectrumList()
Definition: SpectrumList.cpp:37
virtual void UpdateList() const
Definition: SpectrumList.cpp:115
virtual bool SetSpectrumFamily(Spectrum *spec_ptr, const string &family_name)
Definition: SpectrumList.hh:337
TH1 * GetHistoPtr(const u_int num) const
Definition: SpectrumList.cpp:905
virtual bool SetFamilySelection(const string &family_name, const bool b=true) const
Definition: SpectrumList.hh:374
virtual int CreateSpecTable(const string &spec_names, Spectrum **&sp_tab, int &num) const
Definition: SpectrumList.cpp:1302
virtual void SuspendList() const
Definition: SpectrumList.hh:303
virtual bool SetFamilyFilter(const string &family_name, Filter *f) const
Definition: SpectrumList.cpp:1178
void SetParamNameLen(const int l=-1) const
Definition: SpectrumList.cpp:278
virtual void ResetFilter() const
Definition: SpectrumList.cpp:1165
virtual void StartList() const
Definition: SpectrumList.hh:289
virtual void SetDeleteSelection(const bool b=true) const
Definition: SpectrumList.cpp:155
void SetAutoFormat() const
Definition: SpectrumList.hh:249
Definition: SpectrumList.hh:30
virtual string GetSpectrumName(const u_int spec_num) const
Definition: SpectrumList.cpp:884
virtual void ClearEvent() const
Definition: SpectrumList.hh:317
GListIterT< Spectrum > iterator
Définition du type itérateur pour les listes de spectres.
Definition: SpectrumList.hh:40
virtual Int_t SaveSelected(const string &file_name) const
Definition: SpectrumList.cpp:582
virtual bool SetSpectraSaveSelection(const string &family_name, const bool b=true) const
Definition: SpectrumFamilyList.cpp:270
virtual bool StopFamily(const string &family_name)
Definition: SpectrumList.cpp:1085
Definition: EventManager.hh:59
virtual void ResetList() const
Definition: SpectrumList.hh:310
virtual bool StartFamily(const string &family_name)
Definition: SpectrumList.cpp:1065
virtual bool MoveDown()
Definition: SpectrumList.cpp:1564
virtual bool ResetSpectrumFamily(Spectrum *spec_ptr)
Definition: SpectrumList.hh:345
virtual Spectrum * UsesSpectrum(const Spectrum *sp, const bool rec=true) const
Definition: SpectrumList.cpp:1515
void SetNameLen(const int l=-1) const
Definition: SpectrumList.cpp:231
virtual bool SetFamilySaveSelection(const string &family_name, const bool b=true) const
Definition: SpectrumList.hh:383
virtual int GetSpectrumIndex(const string &spec_name) const
Definition: SpectrumList.cpp:867