Analysis  version 7.0 - august 2014
FilterList.hh
Go to the documentation of this file.
1 //======================================================================
2 /*! \file FilterList.hh
3  *
4  * Fichier de déclaration de la classe FilterList.
5  */
6 //======================================================================
7 
8 
9 #ifndef FILTER_LIST_HH
10 #define FILTER_LIST_HH
11 
12 #include "EventCommon.hh"
13 
14 #include "Filter.hh"
15 #include "SpectrumList.hh"
16 #include "GNamedListT.hh"
17 
18 #include "RContourList.hh"
19 #include "RPointerList.hh"
20 
21 //======================================================================
22 /*! \class FilterList
23  *
24  * Classe permettant de gérer une liste de filtres. Les filtres
25  * ajoutés sont copiés, et détruits losqu'ils sont retirés de la
26  * liste.
27  *
28  * La liste de filtre sert aussi de gestionnaire d'une liste de
29  * contours.
30  *
31  * La classe contient un champ correspondant à un pointeur sur un
32  * gestionnaire d'événements, afin de tester qu'un filtre n'est
33  * pas utilisé ailleurs avant d'être supprimé, et de retirer le
34  * conditionnement d'un spectre par un filtre supprimé. */ class FilterList : public GNamedListT<Filter> { //---------------------------------------------------------------------- /*! \object_doc */ GObject(FilterList); //---------------------------------------------------------------------- /// Définition du type itérateur pour les listes de filtres typedef GListIterT<Filter> iterator; protected: RContourList contour_list; ///< Liste des contours associés aux filtres const EventManager * event_mgr_ptr; ///< Pointeur sur le gestionnaire d'événement const Event * event_ptr; ///< Pointeur sur la structure d'événement du gestionnaire const SpectrumList * spec_list_ptr; ///< Pointeur sur la liste de spectres du gestionnaire public: // Constructeurs FilterList ( const EventManager *evt_mgr ); FilterList ( const FilterList &original ); // Destructeur virtual ~FilterList ( ); //---------------------------------------------------------------------- virtual const RContourList * GetContourListPtr ( ) const; virtual RContourList * GetContourListPtr ( ); // Lecture / Ecriture de la liste de filtres. virtual Int_t Save ( const string & filename ) const; virtual Int_t Save ( FILE * fptr ) const; virtual Int_t Load ( const string & filename, const bool append = true ); virtual Int_t Load ( FILE * fptr, const bool append = true ); //---------------------------------------------------------------------- // Fonctions de liste // surcharge de la fonction pour vider toujours en commençant par la // fin, parce qu'un filtre peut faire référence à des filtres précédents virtual void Empty ( ); // fonction surchargée parce qu'un filtre B ne peut être placé avant // un autre filtre A qui intervient dans la définition de B virtual bool MoveUp ( ); virtual bool MoveDown ( ); virtual bool MoveTop ( ); virtual bool MoveBottom ( ); // teste si un des filtres de la liste utilise un contour ou un autre // filtre virtual Filter * UsesContour ( const RContour * ct, const bool rec = true ) const; virtual Filter * UsesFilter ( const Filter * f, const bool rec = true ) const; // retourne des listes de pointeurs sur les filtres utilisant un // contour ou un autre filtre. virtual u_int GetListUsingContour ( const RContour *ct, RPointerList & list ) const; virtual u_int GetListUsingFilter ( const Filter *f, RPointerList & list ) const; // retourne un numéro de filtre ou de contour virtual int GetContourIndex ( const string &cname ) const; virtual int GetFilterIndex ( const string &fname ) const; // retire un filtre ou un contour avec vérification virtual bool Remove ( ); virtual bool RemoveFilter ( const bool force = true ); virtual bool RemoveFilter ( const string &fname, const bool force = true ); virtual bool RemoveFilter ( const int fnum, const bool force = true ); virtual bool RemoveFilter ( Filter *fptr, const bool force = true ); virtual bool RemoveContour ( const RContour *ct, const bool force = true ); // mise à jour de tous les résultats de filtres virtual void UpdateValues ( ) const; //---------------------------------------------------------------------- public: /*! Définition à usage de ROOT... */ ClassDef(FilterList,0); }; //====================================================================== // METHODES INLINE /*! Retourne le pointeur sur la liste de contours associée à la liste * de filtres.*/ inline const RContourList * FilterList::GetContourListPtr ( ) const { return (&contour_list); } /*! Retourne le pointeur sur la liste de contours associée à la liste * de filtres.*/ inline RContourList * FilterList::GetContourListPtr ( ) { return (&contour_list); } //====================================================================== #endif
35  */
36 
37 class FilterList : public GNamedListT<Filter>
38 {
39 //----------------------------------------------------------------------
40  /*! \object_doc */
42 //----------------------------------------------------------------------
43 
44  /// Définition du type itérateur pour les listes de filtres
45  typedef GListIterT<Filter> iterator;
46 
47  protected:
48  RContourList contour_list; ///< Liste des contours associés aux filtres
49 
50  const EventManager * event_mgr_ptr; ///< Pointeur sur le gestionnaire d'événement
51  const Event * event_ptr; ///< Pointeur sur la structure d'événement du gestionnaire
52  const SpectrumList * spec_list_ptr; ///< Pointeur sur la liste de spectres du gestionnaire
53 
54  public:
55 
56  // Constructeurs
57  FilterList ( const EventManager *evt_mgr );
58  FilterList ( const FilterList &original );
59 
60  // Destructeur
61  virtual ~FilterList ( );
62 
63 //----------------------------------------------------------------------
64 
65  virtual const RContourList * GetContourListPtr ( ) const;
66  virtual RContourList * GetContourListPtr ( );
67 
68  // Lecture / Ecriture de la liste de filtres.
69  virtual Int_t Save ( const string & filename ) const;
70  virtual Int_t Save ( FILE * fptr ) const;
71  virtual Int_t Load ( const string & filename, const bool append = true );
72  virtual Int_t Load ( FILE * fptr, const bool append = true );
73 
74 //----------------------------------------------------------------------
75  // Fonctions de liste
76 
77  // surcharge de la fonction pour vider toujours en commençant par la
78  // fin, parce qu'un filtre peut faire référence à des filtres précédents
79  virtual void Empty ( );
80 
81  // fonction surchargée parce qu'un filtre B ne peut être placé avant
82  // un autre filtre A qui intervient dans la définition de B
83  virtual bool MoveUp ( );
84  virtual bool MoveDown ( );
85  virtual bool MoveTop ( );
86  virtual bool MoveBottom ( );
87 
88  // teste si un des filtres de la liste utilise un contour ou un autre
89  // filtre
90  virtual Filter * UsesContour ( const RContour * ct, const bool rec = true ) const;
91  virtual Filter * UsesFilter ( const Filter * f, const bool rec = true ) const;
92 
93  // retourne des listes de pointeurs sur les filtres utilisant un
94  // contour ou un autre filtre.
95  virtual u_int GetListUsingContour ( const RContour *ct, RPointerList & list ) const;
96  virtual u_int GetListUsingFilter ( const Filter *f, RPointerList & list ) const;
97 
98  // retourne un numéro de filtre ou de contour
99  virtual int GetContourIndex ( const string &cname ) const;
100  virtual int GetFilterIndex ( const string &fname ) const;
101 
102  // retire un filtre ou un contour avec vérification
103  virtual bool Remove ( );
104  virtual bool RemoveFilter ( const bool force = true );
105  virtual bool RemoveFilter ( const string &fname, const bool force = true );
106  virtual bool RemoveFilter ( const int fnum, const bool force = true );
107  virtual bool RemoveFilter ( Filter *fptr, const bool force = true );
108 
109  virtual bool RemoveContour ( const RContour *ct, const bool force = true );
110 
111  // mise à jour de tous les résultats de filtres
112  virtual void UpdateValues ( ) const;
113 
114 //----------------------------------------------------------------------
115  public:
116  /*! Définition à usage de ROOT... */
117  ClassDef(FilterList,0);
118 };
119 
120 
121 //======================================================================
122 // METHODES INLINE
123 
124 /*! Retourne le pointeur sur la liste de contours associée à la liste
125  * de filtres.*/
126 inline const RContourList * FilterList::GetContourListPtr ( ) const
127  { return (&contour_list); }
128 
129 /*! Retourne le pointeur sur la liste de contours associée à la liste
130  * de filtres.*/
131 inline RContourList * FilterList::GetContourListPtr ( )
132  { return (&contour_list); }
133 
134 
135 //======================================================================
136 #endif
const EventManager * event_mgr_ptr
Pointeur sur le gestionnaire d&#39;événement.
Definition: FilterList.hh:50
virtual ~FilterList()
Definition: FilterList.cpp:43
virtual u_int GetListUsingContour(const RContour *ct, RPointerList &list) const
Definition: FilterList.cpp:358
virtual void Empty()
Definition: FilterList.cpp:54
virtual bool MoveUp()
Definition: FilterList.cpp:67
virtual Int_t Load(const string &filename, const bool append=true)
Definition: FilterList.cpp:223
virtual const RContourList * GetContourListPtr() const
Definition: FilterList.hh:126
RContourList contour_list
Liste des contours associés aux filtres.
Definition: FilterList.hh:48
virtual Int_t Save(const string &filename) const
Definition: FilterList.cpp:179
Definition: Filter.hh:50
ClassDef(FilterList, 0)
virtual bool MoveTop()
Definition: FilterList.cpp:111
FilterList(const EventManager *evt_mgr)
Definition: FilterList.cpp:18
virtual Filter * UsesFilter(const Filter *f, const bool rec=true) const
Definition: FilterList.cpp:335
GListIterT< Filter > iterator
Définition du type itérateur pour les listes de filtres.
Definition: FilterList.hh:45
const Event * event_ptr
Pointeur sur la structure d&#39;événement du gestionnaire.
Definition: FilterList.hh:51
virtual int GetContourIndex(const string &cname) const
Definition: FilterList.cpp:414
GObject(FilterList)
Definition: FilterList.hh:37
virtual int GetFilterIndex(const string &fname) const
Definition: FilterList.cpp:431
virtual bool MoveBottom()
Definition: FilterList.cpp:144
Definition: Event.hh:22
virtual void UpdateValues() const
Definition: FilterList.cpp:296
virtual bool Remove()
Definition: FilterList.cpp:453
Definition: SpectrumList.hh:30
virtual bool MoveDown()
Definition: FilterList.cpp:89
virtual u_int GetListUsingFilter(const Filter *f, RPointerList &list) const
Definition: FilterList.cpp:386
virtual Filter * UsesContour(const RContour *ct, const bool rec=true) const
Definition: FilterList.cpp:313
Definition: EventManager.hh:59
virtual bool RemoveContour(const RContour *ct, const bool force=true)
Definition: FilterList.cpp:611
const SpectrumList * spec_list_ptr
Pointeur sur la liste de spectres du gestionnaire.
Definition: FilterList.hh:52
virtual bool RemoveFilter(const bool force=true)
Definition: FilterList.cpp:501