Analysis  version 7.0 - august 2014
GEVPadContour.hh
Go to the documentation of this file.
1 //======================================================================
2 /*! \file GEVPadContour.hh
3  *
4  * Déclaration des méthodes de la classe GEVPadContour, qui gère les
5  * contours associés à une zone graphique (Pad).
6  */
7 //======================================================================
8 
9 #ifndef GEV_PAD_CONTOUR_HH
10 #define GEV_PAD_CONTOUR_HH
11 
12 // includes
13 #include "EventCommon.hh"
14 
15 #include "GEVPreferences.hh"
16 
17 // includes ROOT
18 #include <TAttLine.h>
19 #include <TPad.h>
20 
21 #include "RContour.hh"
22 
23 class GEVPad;
24 
25 //======================================================================
26 /*! \class GEVPadContour
27  *
28  * Classe qui fait référence à un contour du gestionnaire d'événement,
29  * et à ses attributs graphiques pour le tracé dans un Pad.
30  *
31  * La classe définit sa propre liste d'objets à tracer, qui n'est pas
32  * celle de la classe RContour, parce que les contours de base peuvent
33  * être tracé dans plusieurs Pads avec des attributs différents.
34  * La classe définit donc ses propres méthodes de création et destruction
35  * des objets graphiques (de façon similaire à la classe RContour:
36  * le champ \b draw_list joue le même rôle que le champ \b object_list
37  * de la classe RContour).
38  *
39  * Les objets graphiques ROOT ne sont créés qu'au moment du tracé. * * \note * Les tracés de contour ne sont valides que sous certaines conditions: * - pour un contour 2D: il faut un spectre Bidim dans le pad; * - pour un contour 1D: les spectres de types Mono ou Distrib ne peuvent * en modifier l'orientation. * Les contours sont associés au premier spectre tracé dans le pad, les * spectres superposés étant ignorés. */ class GEVPadContour : public TAttLine { friend class GEVPad; //---------------------------------------------------------------------- /*! \object_doc */ GObject(GEVPadContour); //---------------------------------------------------------------------- static Double_t gate_pos; ///< Placement des contours de type gate static Double_t gate_off; ///< Décalage des contours de type gate enum { ctDrawNormal = 0, ctDrawFlipped = 1 }; protected: RContour * cont_ptr; ///< Pointeur sur le contour associé Int_t draw_mode; ///< Mode d'affichage du tracé (orientation) TList * draw_list; ///< Objets à tracer pour le contour Int_t counts; ///< Nombre de coups dans le contour public: //---------------------------------------------------------------------- // CONSTRUCTEUR / AFFECTATION / DESTRUCTEUR // Constructeur GEVPadContour ( RContour * ct, const Int_t m = ctDrawNormal ); // Constructeur de recopie GEVPadContour ( const GEVPadContour & original ); // Destructeur virtual ~GEVPadContour ( ); // Opérateur d'affectation GEVPadContour & operator = ( const GEVPadContour & original ); //---------------------------------------------------------------------- // informations sur le contour et son tracé dans le pad virtual RContour * GetContourPtr ( ) const; virtual Int_t GetContourDimension ( ) const; virtual Int_t GetContourType ( ) const; virtual Int_t GetDrawMode ( ) const; virtual void SetDrawMode ( const Int_t m ); virtual Int_t GetCounts ( ) const; virtual void ResetCounts ( ); virtual void DeleteDrawList ( ); virtual void CreateDrawList ( const TVirtualPad *pad = NULL ); virtual void Draw ( const TVirtualPad *pad = NULL ); // lecture/écriture d'un contour dans un fichier virtual bool Write ( FILE * fptr ) const; static GEVPadContour * Read ( const string & def, GEVPad *pad ); //---------------------------------------------------------------------- // pour ROOT... public: /*! Définition à usage de ROOT... */ ClassDef(GEVPadContour,0); }; //---------------------------------------------------------------------- // METHODES INLINE //---------------------------------------------------------------------- /*! Retourne le pointeur sur le contour associé.*/ inline RContour * GEVPadContour::GetContourPtr ( ) const { return (cont_ptr); } /*! Retourne la dimension du contour associé.*/ inline Int_t GEVPadContour::GetContourDimension ( ) const { return (cont_ptr == NULL ? 0 : cont_ptr->Dimension()); } /*! Retourne le type du contour associé.*/ inline Int_t GEVPadContour::GetContourType ( ) const { return (cont_ptr == NULL ? RContour::typeUndefined : cont_ptr->Type()); } /*! Retourne le nombre de coups dans le contour tracé.*/ inline Int_t GEVPadContour::GetCounts ( ) const { return ( counts ); } /*! Remet à zéro le compteur pour le contour tracé.*/ inline void GEVPadContour::ResetCounts ( ) { counts = 0; } //---------------------------------------------------------------------- /*! Retourne l'orientation pour le tracé du contour.*/ inline Int_t GEVPadContour::GetDrawMode ( ) const { return (draw_mode); } //====================================================================== #endif
40  *
41  * \note
42  * Les tracés de contour ne sont valides que sous certaines conditions:
43  * - pour un contour 2D: il faut un spectre Bidim dans le pad;
44  * - pour un contour 1D: les spectres de types Mono ou Distrib ne peuvent
45  * en modifier l'orientation.
46  * Les contours sont associés au premier spectre tracé dans le pad, les
47  * spectres superposés étant ignorés.
48  */
49 class GEVPadContour : public TAttLine
50 {
51  friend class GEVPad;
52 
53 //----------------------------------------------------------------------
54  /*! \object_doc */
56 //----------------------------------------------------------------------
57 
58  static Double_t gate_pos; ///< Placement des contours de type gate
59  static Double_t gate_off; ///< Décalage des contours de type gate
60 
61  enum
62  {
63  ctDrawNormal = 0,
64  ctDrawFlipped = 1
65  };
66 
67  protected:
68 
69  RContour * cont_ptr; ///< Pointeur sur le contour associé
70 
71  Int_t draw_mode; ///< Mode d'affichage du tracé (orientation)
72  TList * draw_list; ///< Objets à tracer pour le contour
73 
74  Int_t counts; ///< Nombre de coups dans le contour
75 
76  public:
77 
78 //----------------------------------------------------------------------
79 // CONSTRUCTEUR / AFFECTATION / DESTRUCTEUR
80 
81  // Constructeur
82  GEVPadContour ( RContour * ct, const Int_t m = ctDrawNormal );
83 
84  // Constructeur de recopie
85  GEVPadContour ( const GEVPadContour & original );
86 
87  // Destructeur
88  virtual ~GEVPadContour ( );
89 
90  // Opérateur d'affectation
91  GEVPadContour & operator = ( const GEVPadContour & original );
92 
93 //----------------------------------------------------------------------
94 
95  // informations sur le contour et son tracé dans le pad
96  virtual RContour * GetContourPtr ( ) const;
97 
98  virtual Int_t GetContourDimension ( ) const;
99  virtual Int_t GetContourType ( ) const;
100 
101  virtual Int_t GetDrawMode ( ) const;
102  virtual void SetDrawMode ( const Int_t m );
103 
104  virtual Int_t GetCounts ( ) const;
105  virtual void ResetCounts ( );
106 
107  virtual void DeleteDrawList ( );
108  virtual void CreateDrawList ( const TVirtualPad *pad = NULL );
109  virtual void Draw ( const TVirtualPad *pad = NULL );
110 
111  // lecture/écriture d'un contour dans un fichier
112  virtual bool Write ( FILE * fptr ) const;
113  static GEVPadContour * Read ( const string & def, GEVPad *pad );
114 
115 //----------------------------------------------------------------------
116 // pour ROOT...
117  public:
118  /*! Définition à usage de ROOT... */
120 };
121 
122 
123 //----------------------------------------------------------------------
124 // METHODES INLINE
125 //----------------------------------------------------------------------
126 
127 /*! Retourne le pointeur sur le contour associé./ inline RContour * GEVPadContour::GetContourPtr ( ) const { return (cont_ptr); } /*! Retourne la dimension du contour associé.*/ inline Int_t GEVPadContour::GetContourDimension ( ) const { return (cont_ptr == NULL ? 0 : cont_ptr->Dimension()); } /*! Retourne le type du contour associé.*/ inline Int_t GEVPadContour::GetContourType ( ) const { return (cont_ptr == NULL ? RContour::typeUndefined : cont_ptr->Type()); } /*! Retourne le nombre de coups dans le contour tracé.*/ inline Int_t GEVPadContour::GetCounts ( ) const { return ( counts ); } /*! Remet à zéro le compteur pour le contour tracé.*/ inline void GEVPadContour::ResetCounts ( ) { counts = 0; } //---------------------------------------------------------------------- /*! Retourne l'orientation pour le tracé du contour.*/ inline Int_t GEVPadContour::GetDrawMode ( ) const { return (draw_mode); } //====================================================================== #endif */
128 inline RContour * GEVPadContour::GetContourPtr ( ) const
129  { return (cont_ptr); }
130 
131 /*! Retourne la dimension du contour associé./ inline Int_t GEVPadContour::GetContourDimension ( ) const { return (cont_ptr == NULL ? 0 : cont_ptr->Dimension()); } /*! Retourne le type du contour associé.*/ inline Int_t GEVPadContour::GetContourType ( ) const { return (cont_ptr == NULL ? RContour::typeUndefined : cont_ptr->Type()); } /*! Retourne le nombre de coups dans le contour tracé.*/ inline Int_t GEVPadContour::GetCounts ( ) const { return ( counts ); } /*! Remet à zéro le compteur pour le contour tracé.*/ inline void GEVPadContour::ResetCounts ( ) { counts = 0; } //---------------------------------------------------------------------- /*! Retourne l'orientation pour le tracé du contour.*/ inline Int_t GEVPadContour::GetDrawMode ( ) const { return (draw_mode); } //====================================================================== #endif */
133  { return (cont_ptr == NULL ? 0 : cont_ptr->Dimension()); }
134 
135 /*! Retourne le type du contour associé./ inline Int_t GEVPadContour::GetContourType ( ) const { return (cont_ptr == NULL ? RContour::typeUndefined : cont_ptr->Type()); } /*! Retourne le nombre de coups dans le contour tracé.*/ inline Int_t GEVPadContour::GetCounts ( ) const { return ( counts ); } /*! Remet à zéro le compteur pour le contour tracé.*/ inline void GEVPadContour::ResetCounts ( ) { counts = 0; } //---------------------------------------------------------------------- /*! Retourne l'orientation pour le tracé du contour.*/ inline Int_t GEVPadContour::GetDrawMode ( ) const { return (draw_mode); } //====================================================================== #endif */
136 inline Int_t GEVPadContour::GetContourType ( ) const
137  { return (cont_ptr == NULL ? RContour::typeUndefined : cont_ptr->Type()); }
138 
139 /*! Retourne le nombre de coups dans le contour tracé./ inline Int_t GEVPadContour::GetCounts ( ) const { return ( counts ); } /*! Remet à zéro le compteur pour le contour tracé.*/ inline void GEVPadContour::ResetCounts ( ) { counts = 0; } //---------------------------------------------------------------------- /*! Retourne l'orientation pour le tracé du contour.*/ inline Int_t GEVPadContour::GetDrawMode ( ) const { return (draw_mode); } //====================================================================== #endif */
140 inline Int_t GEVPadContour::GetCounts ( ) const
141  { return ( counts ); }
142 
143 /*! Remet à zéro le compteur pour le contour tracé./ inline void GEVPadContour::ResetCounts ( ) { counts = 0; } //---------------------------------------------------------------------- /*! Retourne l'orientation pour le tracé du contour.*/ inline Int_t GEVPadContour::GetDrawMode ( ) const { return (draw_mode); } //====================================================================== #endif */
145  { counts = 0; }
146 
147 
148 //----------------------------------------------------------------------
149 /*! Retourne l'orientation pour le tracé du contour.*/
150 inline Int_t GEVPadContour::GetDrawMode ( ) const
151  { return (draw_mode); }
152 
153 //======================================================================
154 #endif
GObject(GEVPadContour)
Int_t draw_mode
Mode d&#39;affichage du tracé (orientation)
Definition: GEVPadContour.hh:71
static GEVPadContour * Read(const string &def, GEVPad *pad)
Definition: GEVPadContour.cpp:241
virtual Int_t GetCounts() const
Definition: GEVPadContour.hh:140
GEVPadContour(RContour *ct, const Int_t m=ctDrawNormal)
Definition: GEVPadContour.cpp:26
virtual RContour * GetContourPtr() const
Definition: GEVPadContour.hh:128
GEVPadContour & operator=(const GEVPadContour &original)
Definition: GEVPadContour.cpp:66
virtual void ResetCounts()
Definition: GEVPadContour.hh:144
Definition: GEVPadContour.hh:49
virtual void Draw(const TVirtualPad *pad=NULL)
Definition: GEVPadContour.cpp:191
Int_t counts
Nombre de coups dans le contour.
Definition: GEVPadContour.hh:74
virtual ~GEVPadContour()
Definition: GEVPadContour.cpp:57
virtual Int_t GetDrawMode() const
Definition: GEVPadContour.hh:150
virtual void CreateDrawList(const TVirtualPad *pad=NULL)
Definition: GEVPadContour.cpp:121
Definition: GEVPad.hh:62
virtual Int_t GetContourDimension() const
Definition: GEVPadContour.hh:132
ClassDef(GEVPadContour, 0)
static Double_t gate_off
Décalage des contours de type gate.
Definition: GEVPadContour.hh:59
virtual void DeleteDrawList()
Definition: GEVPadContour.cpp:98
virtual Int_t GetContourType() const
Definition: GEVPadContour.hh:136
RContour * cont_ptr
Pointeur sur le contour associé
Definition: GEVPadContour.hh:69
virtual bool Write(FILE *fptr) const
Definition: GEVPadContour.cpp:218
static Double_t gate_pos
Placement des contours de type gate.
Definition: GEVPadContour.hh:58
TList * draw_list
Objets à tracer pour le contour.
Definition: GEVPadContour.hh:72
virtual void SetDrawMode(const Int_t m)
Definition: GEVPadContour.cpp:86