Analysis  version 7.0 - august 2014
FilterBaseGate.hh
Go to the documentation of this file.
1 //======================================================================
2 /*! \file FilterBaseGate.hh
3  *
4  * Fichier de déclaration de la classe FilterBaseGate.
5  */
6 //======================================================================
7 
8 #ifndef FILTER_BASE_GATE_HH
9 #define FILTER_BASE_GATE_HH
10 
11 #include "FilterBase.hh"
12 #include "FilterList.hh"
13 
14 //======================================================================
15 /*! \class FilterBaseGate
16  *
17  * Classe des données des filtres de type porte: paramètre compris
18  * entre 2 valeurs.
19  *
20  * Dans le cas de paramètres multiples (tableaux, multihit), le filtre
21  * peut être valide soit en mode ET (toutes les valeurs dans la porte),
22  * soit en mode OU (au moins une valeur dans la porte).
23  * Ce mode est défini par la variable \b mode_multi.
24  */
25 class FilterBaseGate : public FilterBase
26 {
27 //----------------------------------------------------------------------
28  /*! \object_doc} */
30 //----------------------------------------------------------------------
31 
32  protected:
33  const Param * par; ///< Paramètre sur lequel est testée la porte
34  double par_min; ///< Borne inférieure de la porte
35  double par_max; ///< Borne supérieure de la porte
36 
37  int mode_multi; ///< Mode de traitement des paramètres multiples
38 
39  public:
40 
41 //----------------------------------------------------------------------
42 // CONSTRUCTEUR / AFFECTATION / DESTRUCTEUR
43 
44  // constructeur
45  FilterBaseGate ( const Param * p, const double pmin, const double pmax, const int mode = filterMultiParAnd );
46 
47  // constructeur de recopie
48  FilterBaseGate ( const FilterBaseGate & f );
49 
50  // opérateur d'affectation
52 
53  // destructeur
54  virtual ~FilterBaseGate ( );
55 
56 //----------------------------------------------------------------------
57 
58  // Ecriture des données du filtre dans une chaîne de définition.
59  virtual string DefinitionString ( ) const;
60 
61  // Fonction statique de lecture d'un nouveau filtre.
62  // il faut passer une liste en argument, dans laquelle doit
63  // se trouver le filtre dont on veut la négation
64  static FilterBaseGate * NewBase ( const string &def, const EventManager * mgr );
65 
66  // test si un filtre utilise un contour ou un autre filtre
67  // pour vérifier qu'il peut être effacé dans les listes.
68  virtual bool UsesContour ( const RContour *ct, const bool rec = true ) const;
69  virtual bool UsesFilter ( const Filter *f, const bool rec = true ) const;
70 
71 //----------------------------------------------------------------------
72 
73  virtual bool Ok ( ) const;
74  virtual int Type ( ) const;
75  virtual string TypeName ( ) const;
76  virtual const Param * GetParamPtr ( ) const;
77  virtual double GetMin ( ) const;
78  virtual double GetMax ( ) const;
79 
80  protected:
81 
82 
83 //----------------------------------------------------------------------
84  public:
85  /*! Définition à usage de ROOT... */
87 };
88 
89 
90 //======================================================================
91 // METHODES INLINE
92 
93 /*! Retourne le type de filtre. */
94 inline int FilterBaseGate::Type ( ) const
95  { return (Filter::typeGate); }
96 
97 /*! Retourne le type de filtre, sous forme textuelle. */
98 inline string FilterBaseGate::TypeName ( ) const
99  { return (FILTER_TYPE_TXT_GATE); }
100 
101 /*! Retourne le pointeur sur le paramètre associé au filtre. */
102 inline const Param * FilterBaseGate::GetParamPtr ( ) const
103  { return (par); }
104 
105 /*! Retourne le la borne inférieure de la porte. */
106 inline double FilterBaseGate::GetMin ( ) const
107  { return (par_min); }
108 
109 /*! Retourne le la borne supérieure de la porte. */
110 inline double FilterBaseGate::GetMax ( ) const
111  { return (par_max); }
112 
113 //----------------------------------------------------------------------
114 
115 /*! Test si un filtre utilise un contour (en particulier pour savoir si le
116  * contour peut-être effacé):
117  * toujours faux pour ce type de filtre.
118  * \param ct pointeur sur le contour
119  * \param rec indique si on doit chercher récursivement dans les filtres
120  */
121 inline bool FilterBaseGate::UsesContour ( const RContour *ct, const bool rec ) const
122  { return ( false ); }
123 
124 /*! Test si un filtre utilise un autre filtre (en particulier pour savoir
125  * si le filtre peut-être effacé):
126  * toujours faux pour ce type de filtre.
127  * \param f pointeur sur le filtre
128  * \param rec indique si on doit chercher récursivement dans les filtres
129  */
130 inline bool FilterBaseGate::UsesFilter ( const Filter *f, const bool rec ) const
131  { return ( false ); }
132 
133 
134 //======================================================================
135 #endif
static FilterBaseGate * NewBase(const string &def, const EventManager *mgr)
Definition: FilterBaseGate.cpp:159
virtual const Param * GetParamPtr() const
Definition: FilterBaseGate.hh:102
Definition: FilterBase.hh:42
#define FILTER_TYPE_TXT_GATE
Nom du type de filtre.
Definition: Filter.hh:26
virtual double GetMax() const
Definition: FilterBaseGate.hh:110
Definition: FilterBaseGate.hh:25
int mode_multi
Mode de traitement des paramètres multiples.
Definition: FilterBaseGate.hh:37
double par_min
Borne inférieure de la porte.
Definition: FilterBaseGate.hh:34
virtual int Type() const
Definition: FilterBaseGate.hh:94
const Param * par
Paramètre sur lequel est testée la porte.
Definition: FilterBaseGate.hh:33
Definition: Filter.hh:50
ClassDef(FilterBaseGate, 0)
virtual double GetMin() const
Definition: FilterBaseGate.hh:106
virtual bool Ok() const
Definition: FilterBaseGate.cpp:80
FilterBaseGate & operator=(const FilterBaseGate &f)
Definition: FilterBaseGate.cpp:52
virtual bool UsesContour(const RContour *ct, const bool rec=true) const
Definition: FilterBaseGate.hh:121
GObject(FilterBaseGate)
Definition: Param.hh:83
virtual bool UsesFilter(const Filter *f, const bool rec=true) const
Definition: FilterBaseGate.hh:130
virtual ~FilterBaseGate()
Definition: FilterBaseGate.cpp:72
virtual string DefinitionString() const
Definition: FilterBaseGate.cpp:138
double par_max
Borne supérieure de la porte.
Definition: FilterBaseGate.hh:35
FilterBaseGate(const Param *p, const double pmin, const double pmax, const int mode=filterMultiParAnd)
Definition: FilterBaseGate.cpp:22
Definition: EventManager.hh:59
virtual string TypeName() const
Definition: FilterBaseGate.hh:98