Analysis  version 7.0 - august 2014
FilterBaseContour.hh
Go to the documentation of this file.
1 //======================================================================
2 /*! \file FilterBaseContour.hh
3  *
4  * Fichier de déclaration de la classe FilterBaseContour.
5  */
6 //======================================================================
7 
8 #ifndef FILTER_BASE_CONTOUR_HH
9 #define FILTER_BASE_CONTOUR_HH
10 
11 #include "FilterBase.hh"
12 #include "FilterList.hh"
13 #include "RContourList.hh"
14 #include "Event.hh"
15 
16 //======================================================================
17 /*! \class FilterBaseContour
18  *
19  * Classe des filtres testant un contour sur 1 (Gate) ou 2 paramètres.
20  * Dans le cas d'un contour à 1 paramètre, les paramètres de type
21  * ParamArray ou ParamMultihit peuvent être testés en mode ET ou en
22  * mode OU.
23  * Pour des filtres avec des contours 2D sur ce type de paramètres, le
24  * résultat est toujours faux.
25  */
27 {
28 //----------------------------------------------------------------------
29  /*! \object_doc */
31 //----------------------------------------------------------------------
32 
33  protected:
34  const RContour * contour; ///< Contour associé au filtre
35  const Param * par_x; ///< Paramètre X pour test du contour
36  const Param * par_y; ///< Paramètre Y pour test du contour
37  bool invert; ///< Définit si le filtre est inversé
38  int mode_multi; ///< Mode de traitement des paramètres multiples
39 
40  public:
41 
42 //----------------------------------------------------------------------
43 // CONSTRUCTEUR / AFFECTATION / DESTRUCTEUR
44 
45  // constructeur
46  FilterBaseContour ( const RContour * ctr, const Param * px, const Param * py, const bool inv = false, const int mode = filterMultiParAnd );
47  FilterBaseContour ( const RContour * ctr, const Param * px, const bool inv = false, const int mode = filterMultiParAnd );
48 
49  // constructeur de recopie
51 
52  // opérateur d'affectation
54 
55  // destructeur
56  virtual ~FilterBaseContour ( );
57 
58 //----------------------------------------------------------------------
59 
60  // Ecriture des données du filtre dans une chaîne de définition.
61  virtual string DefinitionString ( ) const;
62 
63  // Fonction statique de lecture d'un nouveau filtre.
64  // il faut passer une liste en argument, dans laquelle doit
65  // se trouver le contour, et l'événement dans lequel sont les paramètres
66  static FilterBaseContour * NewBase ( const string &def, const EventManager * mgr );
67 
68  // test si un filtre utilise un contour ou un autre filtre
69  // pour vérifier qu'il peut être effacé dans les listes.
70  virtual bool UsesContour ( const RContour *ct, const bool rec = true ) const;
71  virtual bool UsesFilter ( const Filter *f, const bool rec = true ) const;
72 
73 //----------------------------------------------------------------------
74 
75  virtual bool Ok ( ) const;
76  virtual int Type ( ) const;
77  virtual string TypeName ( ) const;
78  virtual const RContour * GetContourPtr ( ) const;
79  virtual const Param * GetXParamPtr ( ) const;
80  virtual const Param * GetYParamPtr ( ) const;
81  virtual bool GetInvert ( ) const;
82  virtual int GetModeMulti ( ) const;
83 
84  protected:
85 
86 
87 //----------------------------------------------------------------------
88 // pour ROOT...
89 
90  public:
91  /*! Définition à usage de ROOT... */
93 };
94 
95 
96 //======================================================================
97 // METHODES INLINE
98 
99 /*! Retourne le type de filtre. */
100 inline int FilterBaseContour::Type ( ) const
101  { return (Filter::typeContour); }
102 
103 /*! Retourne le type de filtre, sous forme textuelle. */
104 inline string FilterBaseContour::TypeName ( ) const
105  { return (FILTER_TYPE_TXT_CONTOUR); }
106 
107 /*! Retourne le pointeur sur le contour. */
108 inline const RContour * FilterBaseContour::GetContourPtr ( ) const
109  { return (contour); }
110 
111 /*! Retourne le pointeur sur le paramètre X. */
112 inline const Param * FilterBaseContour::GetXParamPtr ( ) const
113  { return (par_x); }
114 
115 /*! Retourne le pointeur sur le paramètre Y. */
116 inline const Param * FilterBaseContour::GetYParamPtr ( ) const
117  { return (par_y); }
118 
119 /*! Retourne l'état d'inversion d'appartenance du contour. */
120 inline bool FilterBaseContour::GetInvert ( ) const
121  { return (invert); }
122 
123 /*! Retourne le mode de traitement des paramètres multiples. */
125  { return (mode_multi); }
126 
127 //----------------------------------------------------------------------
128 
129 /*! Test si un filtre utilise un contour (en particulier pour savoir si le
130  * contour peut-être effacé).
131  * \param ct pointeur sur le contour
132  * \param rec indique si on doit chercher récursivement dans les filtres
133  */
134 inline bool FilterBaseContour::UsesContour ( const RContour *ct, const bool rec ) const
135  { return ( (contour != NULL) && (contour == ct) ); }
136 
137 /*! Test si un filtre utilise un autre filtre (en particulier pour savoir
138  * si le filtre peut-être effacé).
139  * \param f pointeur sur le filtre
140  * \param rec indique si on doit chercher récursivement dans les filtres
141  */
142 inline bool FilterBaseContour::UsesFilter ( const Filter *f, const bool rec ) const
143  { return ( false ); }
144 
145 
146 //======================================================================
147 #endif
Definition: FilterBase.hh:42
virtual bool GetInvert() const
Definition: FilterBaseContour.hh:120
virtual ~FilterBaseContour()
Definition: FilterBaseContour.cpp:95
const RContour * contour
Contour associé au filtre.
Definition: FilterBaseContour.hh:34
#define FILTER_TYPE_TXT_CONTOUR
Nom du type de filtre.
Definition: Filter.hh:27
virtual string TypeName() const
Definition: FilterBaseContour.hh:104
ClassDef(FilterBaseContour, 0)
FilterBaseContour & operator=(const FilterBaseContour &f)
Definition: FilterBaseContour.cpp:74
Definition: Filter.hh:50
int mode_multi
Mode de traitement des paramètres multiples.
Definition: FilterBaseContour.hh:38
virtual bool UsesFilter(const Filter *f, const bool rec=true) const
Definition: FilterBaseContour.hh:142
virtual const Param * GetYParamPtr() const
Definition: FilterBaseContour.hh:116
GObject(FilterBaseContour)
virtual int GetModeMulti() const
Definition: FilterBaseContour.hh:124
virtual bool Ok() const
Definition: FilterBaseContour.cpp:108
virtual string DefinitionString() const
Definition: FilterBaseContour.cpp:203
Definition: Param.hh:83
virtual int Type() const
Definition: FilterBaseContour.hh:100
virtual const RContour * GetContourPtr() const
Definition: FilterBaseContour.hh:108
virtual const Param * GetXParamPtr() const
Definition: FilterBaseContour.hh:112
const Param * par_y
Paramètre Y pour test du contour.
Definition: FilterBaseContour.hh:36
virtual bool UsesContour(const RContour *ct, const bool rec=true) const
Definition: FilterBaseContour.hh:134
const Param * par_x
Paramètre X pour test du contour.
Definition: FilterBaseContour.hh:35
bool invert
Définit si le filtre est inversé
Definition: FilterBaseContour.hh:37
Definition: EventManager.hh:59
static FilterBaseContour * NewBase(const string &def, const EventManager *mgr)
Definition: FilterBaseContour.cpp:233
FilterBaseContour(const RContour *ctr, const Param *px, const Param *py, const bool inv=false, const int mode=filterMultiParAnd)
Definition: FilterBaseContour.cpp:41
Definition: FilterBaseContour.hh:26