Analysis  version 7.0 - august 2014
FilterBase.hh
Go to the documentation of this file.
1 //======================================================================
2 /*! \file FilterBase.hh
3  *
4  * Fichier de déclaration de la classe de base FilterBase.
5  */
6 //======================================================================
7 
8 
9 #ifndef FILTER_BASE_HH
10 #define FILTER_BASE_HH
11 
12 #include "EventCommon.hh"
13 
14 #include <iomanip>
15 using namespace std;
16 
17 #include "RString.hh"
18 
19 class EventManager;
20 class Filter;
21 class RContour;
22 
23 /// Mode de traitement des paramètres multiples pour les filtres 1D (filtre/gate ou contour /gate)
25 {
26  filterMultiParAnd = 0,
27  filterMultiParOr = 1
28 } ;
29 
30 //======================================================================
31 /*! \class FilterBase
32  *
33  * Classe de base pour les filtres sur des événements. Cette classe
34  * n'a pas vocation à être utilisée directement, mais comme un champ
35  * de la classe générique Filter.
36  *
37  * Les classes dérivées définissent différents types de filtres:
38  * - les filtres constants: True, False
39  * - les filtres logiques: And, Or, XOr, Not
40  * - les filtres numériques: Gate, Contour
41  */
43 {
44 //----------------------------------------------------------------------
45  /*! \object_doc */
46  GObjectV(FilterBase);
47 //----------------------------------------------------------------------
48 
49  protected:
50 
51  public:
52 
53 //----------------------------------------------------------------------
54 // CONSTRUCTEUR / AFFECTATION / DESTRUCTEUR
55 
56  // constructeurs
57  FilterBase ( );
58  FilterBase ( const FilterBase & f );
59 
60  // opérateur d'affectation
61  FilterBase & operator = ( const FilterBase & f );
62 
63  // destructeur
64  virtual ~FilterBase ( );
65 
66 //----------------------------------------------------------------------
67 
68  /*! Teste la validité du filtre.*/
69  virtual bool Ok ( ) const = 0;
70 
71  /*! Retourne le type de filtre.*/
72  virtual int Type ( ) const = 0;
73 
74  /*! Retourne le type de filtre, sous forme textuelle.*/
75  virtual string TypeName ( ) const = 0;
76 
77 
78  //----------------------------------------------------------------------
79 
80  // Ecriture du filtre.
81  virtual bool Write ( ostream &os ) const;
82  virtual bool Write ( FILE *fptr ) const;
83 
84  // Fonction statique de lecture d'un nouveau filtre.
85  static FilterBase * NewBase ( const string &def, const EventManager * mgr );
86 
87  //----------------------------------------------------------------------
88 
89  /*! Test si un filtre utilise un contour (en particulier pour savoir si le
90  * contour peut-être effacé).
91  * \param ct pointeur sur le contour
92  * \param rec indique si on doit chercher récursivement dans les filtres
93  */
94  virtual bool UsesContour ( const RContour *ct, const bool rec = true ) const = 0;
95 
96  /*! Test si un filtre utilise un autre filtre (en particulier pour savoir
97  * si le filtre peut-être effacé).
98  * \param f pointeur sur le filtre
99  * \param rec indique si on doit chercher récursivement dans les filtres
100  */
101  virtual bool UsesFilter ( const Filter *f, const bool rec = true ) const = 0;
102 
103  //----------------------------------------------------------------------
104 
105  protected:
106 
107  /*! Ecriture des données du filtre dans une chaîne de définition.*/
108  virtual string DefinitionString ( ) const = 0;
109 
110 //----------------------------------------------------------------------
111 // pour ROOT...
112 
113  public:
114  /*! Définition à usage de ROOT... */
115  ClassDef(FilterBase,0);
116 };
117 
118 
119 //======================================================================
120 // METHODES INLINE
121 
122 
123 //======================================================================
124 #endif
Definition: FilterBase.hh:42
FilterMultiParMode
Mode de traitement des paramètres multiples pour les filtres 1D (filtre/gate ou contour /gate) ...
Definition: FilterBase.hh:24
Definition: Filter.hh:50
Definition: EventManager.hh:59