Analysis  version 7.0 - august 2014
ParamMultihit.hh
Go to the documentation of this file.
1 //======================================================================
2 /*! \file ParamMultihit.hh
3  *
4  * Déclaration des méthodes de la classe ParamMultihit qui décrit
5  * les paramètres de type liste variable de données d'un événement.
6  */
7 //======================================================================
8 
9 
10 #ifndef PARAM_MULTIHIT_HH
11 #define PARAM_MULTIHIT_HH
12 
13 #include "Param.hh"
14 #include "GListT.hh"
15 
16 //======================================================================
17 /*! \class ParamMultihit
18  *
19  * C'est une classe qui décrit les paramètres de type liste variable
20  * de données d'un événement.
21  * Les données ont toutes le même type.
22  * Chaque affectation d'une donnée rallonge la liste d'un élément.
23  *
24  * En ce qui concerne la lecture, les
25  * méthode First(), Last(), Next() et Previous() permettent de se
26  * déplacer dans les valeurs (en plus de l'opérateur []).
27  *
28  * \note
29  * Les méthodes Get() et les cast retournent la valeur courante,
30  * donc en principe la dernière valeur ajoutée.
31  * L'opérateur [] accède à n'importe quel niveau de la liste,
32  * mais il est plus lent, surtout si les listes deviennent longues.
33  */
34 
35 class ParamMultihit : public Param
36 {
37 //----------------------------------------------------------------------
38  /*! \object_doc */
40 //----------------------------------------------------------------------
41 
42  protected:
43 
44  Data * data_ptr; ///< Pointeur sur une donnée pour information du type du paramètre
45  GListT<Data> data_list; ///< Liste des données
46 
47  public:
48 
49 //----------------------------------------------------------------------
50 // CONSTRUCTEUR / AFFECTATION /DESTRUCTEUR
51 //----------------------------------------------------------------------
52 
53  // Constructeur: le nom de paramètre doit être spécifié. ParamMultihit ( const string &par_name = PARAM_NONAME ); ParamMultihit ( const string &par_name, const Data &d ); // Constructeur de recopie. ParamMultihit ( const ParamMultihit &par ); // Opérateur d'affectation ParamMultihit & operator = ( const ParamMultihit &par ); // Destructeur virtual ~ParamMultihit (); //---------------------------------------------------------------------- // AFFECTATION //---------------------------------------------------------------------- /*! Opérateur d'affectation d'une donnée. * \param d donnée à affecter */ inline Param & operator = ( const Data &d ) { // conversion dans le type, puis ajout *data_ptr = d; data_list.Append (*data_ptr); return ( *this ); } /*! Opérateur d'affectation d'un entier 16 bits signé. * \param val valeur à affecter */ inline Param & operator = ( const Int2 val ) { // conversion dans le type, puis ajout *data_ptr = val; data_list.Append (*data_ptr); //data_list.Append (DataI2(val)); return ( *this ); } /*! Opérateur d'affectation d'un entier 16 bits non signé. * \param val valeur à affecter */ inline Param & operator = ( const U_Int2 val ) { // conversion dans le type, puis ajout *data_ptr = val; data_list.Append (*data_ptr); //data_list.Append (DataUI2(val)); return ( *this ); } /*! Opérateur d'affectation d'un entier 32 bits signé. * \param val valeur à affecter */ inline Param & operator = ( const Int4 val ) { // conversion dans le type, puis ajout *data_ptr = val; data_list.Append (*data_ptr); //data_list.Append (DataI4(val)); return ( *this ); } /*! Opérateur d'affectation d'un entier 32 bits non signé. * \param val valeur à affecter */ inline Param & operator = ( const U_Int4 val ) { // conversion dans le type, puis ajout *data_ptr = val; data_list.Append (*data_ptr); //data_list.Append (DataUI4(val)); return ( *this ); } /*! Opérateur d'affectation d'un entier 64 bits signé. * \param val valeur à affecter */ inline Param & operator = ( const Int8 val ) { // conversion dans le type, puis ajout *data_ptr = val; data_list.Append (*data_ptr); //data_list.Append (DataI4(val)); return ( *this ); } /*! Opérateur d'affectation d'un entier 64 bits non signé. * \param val valeur à affecter */ inline Param & operator = ( const U_Int8 val ) { // conversion dans le type, puis ajout *data_ptr = val; data_list.Append (*data_ptr); //data_list.Append (DataUI4(val)); return ( *this ); } /*! Opérateur d'affectation d'un réel 32 bits. * \param val valeur à affecter */ inline Param & operator = ( const Real4 val ) { // conversion dans le type, puis ajout *data_ptr = val; data_list.Append (*data_ptr); //data_list.Append (DataR4(val)); return ( *this ); } /*! Opérateur d'affectation d'un réel 64 bits. * \param val valeur à affecter */ inline Param & operator = ( const Real8 val ) { // conversion dans le type, puis ajout *data_ptr = val; data_list.Append (*data_ptr); //data_list.Append (DataR8(val)); return ( *this ); } //---------------------------------------------------------------------- // CAST //---------------------------------------------------------------------- #ifndef __MAKECINT__ /*! Opérateur de cast une donnée générique.*/ inline operator Data & () const { return ( _Get() ); } #endif /*! Opérateur de cast une donnée de type entier 32 bits signé.*/ inline operator Int2 () const { return ( (Int2) _Get() ); } /*! Opérateur de cast une donnée de type entier 32 bits non signé.*/ inline operator U_Int2 () const { return ( (U_Int2) _Get() ); } /*! Opérateur de cast une donnée de type entier 32 bits signé.*/ inline operator Int4 () const { return ( (Int4) _Get() ); } /*! Opérateur de cast une donnée de type entier 32 bits non signé.*/ inline operator U_Int4 () const { return ( (U_Int4) _Get() ); } /*! Opérateur de cast une donnée de type entier 64 bits signé.*/ inline operator Int8 () const { return ( (Int8) _Get() ); } /*! Opérateur de cast une donnée de type entier 64 bits non signé.*/ inline operator U_Int8 () const { return ( (U_Int8) _Get() ); } /*! Opérateur de cast une donnée de type réel 32 bits.*/ inline operator Real4 () const { return ( (Real4) _Get() ); } /*! Opérateur de cast une donnée de type réel 64 bits.*/ inline operator Real8 () const { return ( (Real8) _Get() ); } //---------------------------------------------------------------------- // //---------------------------------------------------------------------- /*! Retourne l'identificateur de type de paramètre.*/ inline u_int TypeId() const { return (typeMultihit); } /*! Retourne le type de paramètre.*/ inline string Type() const { return ("multihit"); } /*! Retourne chaîne de caractères avec le paramètre et son type. */ inline string InfoString() const { return (Name() + " = " + Type() + "[...] (" + data_ptr->Type() + ")"); } /*! Retourne chaîne de caractères avec le paramètre et son type * et la valeur courante. */ inline string ValueString() const { return ( Name() + " {" + GGetString(data_list.Index()+1) + "/" + GGetString(data_list.GetSize()) + "} = " + Get().Text() ) ; } /*! Retourne chaîne de caractères avec le paramètre et son type * et la valeur courante avec son mot d'état. */ inline string ValueFullString() const { return ( Name() + " {" + GGetString(data_list.Index()+1) + "/" + GGetString(data_list.GetSize()) + "} = " + Get().FullText() ) ; } // Retourne chaîne de caractères avec le paramètre et son type // et l'ensemble des données. string DataString() const; //---------------------------------------------------------------------- /*! Retourne chaîne de caractères avec de donnée.*/ inline string GetDataType() const { return (data_ptr->Type()); } /*! Retourne l'identifiant du type de donnée.*/ inline u_int GetDataTypeId() const { return (data_ptr->TypeId()); } //---------------------------------------------------------------------- /*! Remise à zéro du paramètre, ce qui correspond à vider la * liste. */ inline void Reset() { data_list.Empty(); status = 0; } /*! Retourne le nombre de données dans la liste variable. */ inline u_int Dimension() const { return (data_list.GetSize()); } /*! Retourne la donnée courante dans le liste. */ inline const Data & Get( ) const { return ( _Get() ); } // Opérateur []: renvoie la valeur de rang donnée. Data & operator [] (u_int index) const; //---------------------------------------------------------------------- /*! Positionne le paramètre sur sa première donnée. * Dans le cas d'un paramètre de type ParamMultihit, cette méthode * retourne vrai si le paramètre contient au moins une donnée. */ inline bool First() const { if (data_list.GetSize() > 0) { data_list.First(); return (true); } else return (false); } /*! Positionne le paramètre sur sa dernière donnée. * Dans le cas d'un paramètre de type ParamMultihit, cette méthode * retourne vrai si le paramètre contient au moins une donnée. */ inline bool Last() const { if (data_list.GetSize() > 0) { data_list.Last(); return (true); } else return (false); } /*! Positionne le paramètre sur la dernière suivante. * Dans le cas d'un paramètre de type ParamMultihit, cette méthode * retourne vrai le paramètre n'est pas déjà positionné sur la * dernière valeur. */ inline bool Next() const { if (data_list.GetSize() > 0) { return (data_list.Next() != data_list.Null()); } else return (false); } /*! Positionne le paramètre sur la dernière précédente. * Dans le cas d'un paramètre de type ParamMultihit, cette méthode * retourne vrai le paramètre n'est pas déjà positionné sur la * première valeur. */ inline bool Previous() const { if (data_list.GetSize() > 0) { return (data_list.Previous() != data_list.Null()); } else return (false); } //---------------------------------------------------------------------- // METHODES PROTEGEES //---------------------------------------------------------------------- protected: /*! Retourne la donnée courante dans le liste. La méthode génère * une erreur si aucune donnée n'est présente. Elle est utilisée * par la méthode Get et par les opérateurs de cast. */ inline Data & _Get( ) const { if (data_list.GetSize() > 0) return (*(data_list.Current())); else { GLogWarning ( "ParamMultihit: getting value in empty list"); return (bad_data); } } //---------------------------------------------------------------------- // pour ROOT... public: /*! Définition à usage de ROOT... */ ClassDef(ParamMultihit,0); } ; //====================================================================== #endif
54  ParamMultihit ( const string &par_name = PARAM_NONAME );
55  ParamMultihit ( const string &par_name, const Data &d );
56 
57  // Constructeur de recopie.
58  ParamMultihit ( const ParamMultihit &par );
59 
60  // Opérateur d'affectation
61  ParamMultihit & operator = ( const ParamMultihit &par );
62 
63  // Destructeur
64  virtual ~ParamMultihit ();
65 
66 
67 //----------------------------------------------------------------------
68 // AFFECTATION
69 //----------------------------------------------------------------------
70 
71  /*! Opérateur d'affectation d'une donnée.
72  * \param d donnée à affecter
73  */
74  inline Param & operator = ( const Data &d )
75  { // conversion dans le type, puis ajout
76  *data_ptr = d; data_list.Append (*data_ptr);
77  return ( *this );
78  }
79 
80  /*! Opérateur d'affectation d'un entier 16 bits signé. * \param val valeur à affecter */ inline Param & operator = ( const Int2 val ) { // conversion dans le type, puis ajout *data_ptr = val; data_list.Append (*data_ptr); //data_list.Append (DataI2(val)); return ( *this ); } /*! Opérateur d'affectation d'un entier 16 bits non signé. * \param val valeur à affecter */ inline Param & operator = ( const U_Int2 val ) { // conversion dans le type, puis ajout *data_ptr = val; data_list.Append (*data_ptr); //data_list.Append (DataUI2(val)); return ( *this ); } /*! Opérateur d'affectation d'un entier 32 bits signé. * \param val valeur à affecter */ inline Param & operator = ( const Int4 val ) { // conversion dans le type, puis ajout *data_ptr = val; data_list.Append (*data_ptr); //data_list.Append (DataI4(val)); return ( *this ); } /*! Opérateur d'affectation d'un entier 32 bits non signé. * \param val valeur à affecter */ inline Param & operator = ( const U_Int4 val ) { // conversion dans le type, puis ajout *data_ptr = val; data_list.Append (*data_ptr); //data_list.Append (DataUI4(val)); return ( *this ); } /*! Opérateur d'affectation d'un entier 64 bits signé. * \param val valeur à affecter */ inline Param & operator = ( const Int8 val ) { // conversion dans le type, puis ajout *data_ptr = val; data_list.Append (*data_ptr); //data_list.Append (DataI4(val)); return ( *this ); } /*! Opérateur d'affectation d'un entier 64 bits non signé. * \param val valeur à affecter */ inline Param & operator = ( const U_Int8 val ) { // conversion dans le type, puis ajout *data_ptr = val; data_list.Append (*data_ptr); //data_list.Append (DataUI4(val)); return ( *this ); } /*! Opérateur d'affectation d'un réel 32 bits. * \param val valeur à affecter */ inline Param & operator = ( const Real4 val ) { // conversion dans le type, puis ajout *data_ptr = val; data_list.Append (*data_ptr); //data_list.Append (DataR4(val)); return ( *this ); } /*! Opérateur d'affectation d'un réel 64 bits. * \param val valeur à affecter */ inline Param & operator = ( const Real8 val ) { // conversion dans le type, puis ajout *data_ptr = val; data_list.Append (*data_ptr); //data_list.Append (DataR8(val)); return ( *this ); } //---------------------------------------------------------------------- // CAST //---------------------------------------------------------------------- #ifndef __MAKECINT__ /*! Opérateur de cast une donnée générique.*/ inline operator Data & () const { return ( _Get() ); } #endif /*! Opérateur de cast une donnée de type entier 32 bits signé.*/ inline operator Int2 () const { return ( (Int2) _Get() ); } /*! Opérateur de cast une donnée de type entier 32 bits non signé.*/ inline operator U_Int2 () const { return ( (U_Int2) _Get() ); } /*! Opérateur de cast une donnée de type entier 32 bits signé.*/ inline operator Int4 () const { return ( (Int4) _Get() ); } /*! Opérateur de cast une donnée de type entier 32 bits non signé.*/ inline operator U_Int4 () const { return ( (U_Int4) _Get() ); } /*! Opérateur de cast une donnée de type entier 64 bits signé.*/ inline operator Int8 () const { return ( (Int8) _Get() ); } /*! Opérateur de cast une donnée de type entier 64 bits non signé.*/ inline operator U_Int8 () const { return ( (U_Int8) _Get() ); } /*! Opérateur de cast une donnée de type réel 32 bits.*/ inline operator Real4 () const { return ( (Real4) _Get() ); } /*! Opérateur de cast une donnée de type réel 64 bits.*/ inline operator Real8 () const { return ( (Real8) _Get() ); } //---------------------------------------------------------------------- // //---------------------------------------------------------------------- /*! Retourne l'identificateur de type de paramètre.*/ inline u_int TypeId() const { return (typeMultihit); } /*! Retourne le type de paramètre.*/ inline string Type() const { return ("multihit"); } /*! Retourne chaîne de caractères avec le paramètre et son type. */ inline string InfoString() const { return (Name() + " = " + Type() + "[...] (" + data_ptr->Type() + ")"); } /*! Retourne chaîne de caractères avec le paramètre et son type * et la valeur courante. */ inline string ValueString() const { return ( Name() + " {" + GGetString(data_list.Index()+1) + "/" + GGetString(data_list.GetSize()) + "} = " + Get().Text() ) ; } /*! Retourne chaîne de caractères avec le paramètre et son type * et la valeur courante avec son mot d'état. */ inline string ValueFullString() const { return ( Name() + " {" + GGetString(data_list.Index()+1) + "/" + GGetString(data_list.GetSize()) + "} = " + Get().FullText() ) ; } // Retourne chaîne de caractères avec le paramètre et son type // et l'ensemble des données. string DataString() const; //---------------------------------------------------------------------- /*! Retourne chaîne de caractères avec de donnée.*/ inline string GetDataType() const { return (data_ptr->Type()); } /*! Retourne l'identifiant du type de donnée.*/ inline u_int GetDataTypeId() const { return (data_ptr->TypeId()); } //---------------------------------------------------------------------- /*! Remise à zéro du paramètre, ce qui correspond à vider la * liste. */ inline void Reset() { data_list.Empty(); status = 0; } /*! Retourne le nombre de données dans la liste variable. */ inline u_int Dimension() const { return (data_list.GetSize()); } /*! Retourne la donnée courante dans le liste. */ inline const Data & Get( ) const { return ( _Get() ); } // Opérateur []: renvoie la valeur de rang donnée. Data & operator [] (u_int index) const; //---------------------------------------------------------------------- /*! Positionne le paramètre sur sa première donnée. * Dans le cas d'un paramètre de type ParamMultihit, cette méthode * retourne vrai si le paramètre contient au moins une donnée. */ inline bool First() const { if (data_list.GetSize() > 0) { data_list.First(); return (true); } else return (false); } /*! Positionne le paramètre sur sa dernière donnée. * Dans le cas d'un paramètre de type ParamMultihit, cette méthode * retourne vrai si le paramètre contient au moins une donnée. */ inline bool Last() const { if (data_list.GetSize() > 0) { data_list.Last(); return (true); } else return (false); } /*! Positionne le paramètre sur la dernière suivante. * Dans le cas d'un paramètre de type ParamMultihit, cette méthode * retourne vrai le paramètre n'est pas déjà positionné sur la * dernière valeur. */ inline bool Next() const { if (data_list.GetSize() > 0) { return (data_list.Next() != data_list.Null()); } else return (false); } /*! Positionne le paramètre sur la dernière précédente. * Dans le cas d'un paramètre de type ParamMultihit, cette méthode * retourne vrai le paramètre n'est pas déjà positionné sur la * première valeur. */ inline bool Previous() const { if (data_list.GetSize() > 0) { return (data_list.Previous() != data_list.Null()); } else return (false); } //---------------------------------------------------------------------- // METHODES PROTEGEES //---------------------------------------------------------------------- protected: /*! Retourne la donnée courante dans le liste. La méthode génère * une erreur si aucune donnée n'est présente. Elle est utilisée * par la méthode Get et par les opérateurs de cast. */ inline Data & _Get( ) const { if (data_list.GetSize() > 0) return (*(data_list.Current())); else { GLogWarning ( "ParamMultihit: getting value in empty list"); return (bad_data); } } //---------------------------------------------------------------------- // pour ROOT... public: /*! Définition à usage de ROOT... */ ClassDef(ParamMultihit,0); } ; //====================================================================== #endif
81  * \param val valeur à affecter
82  */
83  inline Param & operator = ( const Int2 val )
84  { // conversion dans le type, puis ajout
85  *data_ptr = val; data_list.Append (*data_ptr);
86  //data_list.Append (DataI2(val));
87  return ( *this );
88  }
89 
90  /*! Opérateur d'affectation d'un entier 16 bits non signé. * \param val valeur à affecter */ inline Param & operator = ( const U_Int2 val ) { // conversion dans le type, puis ajout *data_ptr = val; data_list.Append (*data_ptr); //data_list.Append (DataUI2(val)); return ( *this ); } /*! Opérateur d'affectation d'un entier 32 bits signé. * \param val valeur à affecter */ inline Param & operator = ( const Int4 val ) { // conversion dans le type, puis ajout *data_ptr = val; data_list.Append (*data_ptr); //data_list.Append (DataI4(val)); return ( *this ); } /*! Opérateur d'affectation d'un entier 32 bits non signé. * \param val valeur à affecter */ inline Param & operator = ( const U_Int4 val ) { // conversion dans le type, puis ajout *data_ptr = val; data_list.Append (*data_ptr); //data_list.Append (DataUI4(val)); return ( *this ); } /*! Opérateur d'affectation d'un entier 64 bits signé. * \param val valeur à affecter */ inline Param & operator = ( const Int8 val ) { // conversion dans le type, puis ajout *data_ptr = val; data_list.Append (*data_ptr); //data_list.Append (DataI4(val)); return ( *this ); } /*! Opérateur d'affectation d'un entier 64 bits non signé. * \param val valeur à affecter */ inline Param & operator = ( const U_Int8 val ) { // conversion dans le type, puis ajout *data_ptr = val; data_list.Append (*data_ptr); //data_list.Append (DataUI4(val)); return ( *this ); } /*! Opérateur d'affectation d'un réel 32 bits. * \param val valeur à affecter */ inline Param & operator = ( const Real4 val ) { // conversion dans le type, puis ajout *data_ptr = val; data_list.Append (*data_ptr); //data_list.Append (DataR4(val)); return ( *this ); } /*! Opérateur d'affectation d'un réel 64 bits. * \param val valeur à affecter */ inline Param & operator = ( const Real8 val ) { // conversion dans le type, puis ajout *data_ptr = val; data_list.Append (*data_ptr); //data_list.Append (DataR8(val)); return ( *this ); } //---------------------------------------------------------------------- // CAST //---------------------------------------------------------------------- #ifndef __MAKECINT__ /*! Opérateur de cast une donnée générique.*/ inline operator Data & () const { return ( _Get() ); } #endif /*! Opérateur de cast une donnée de type entier 32 bits signé.*/ inline operator Int2 () const { return ( (Int2) _Get() ); } /*! Opérateur de cast une donnée de type entier 32 bits non signé.*/ inline operator U_Int2 () const { return ( (U_Int2) _Get() ); } /*! Opérateur de cast une donnée de type entier 32 bits signé.*/ inline operator Int4 () const { return ( (Int4) _Get() ); } /*! Opérateur de cast une donnée de type entier 32 bits non signé.*/ inline operator U_Int4 () const { return ( (U_Int4) _Get() ); } /*! Opérateur de cast une donnée de type entier 64 bits signé.*/ inline operator Int8 () const { return ( (Int8) _Get() ); } /*! Opérateur de cast une donnée de type entier 64 bits non signé.*/ inline operator U_Int8 () const { return ( (U_Int8) _Get() ); } /*! Opérateur de cast une donnée de type réel 32 bits.*/ inline operator Real4 () const { return ( (Real4) _Get() ); } /*! Opérateur de cast une donnée de type réel 64 bits.*/ inline operator Real8 () const { return ( (Real8) _Get() ); } //---------------------------------------------------------------------- // //---------------------------------------------------------------------- /*! Retourne l'identificateur de type de paramètre.*/ inline u_int TypeId() const { return (typeMultihit); } /*! Retourne le type de paramètre.*/ inline string Type() const { return ("multihit"); } /*! Retourne chaîne de caractères avec le paramètre et son type. */ inline string InfoString() const { return (Name() + " = " + Type() + "[...] (" + data_ptr->Type() + ")"); } /*! Retourne chaîne de caractères avec le paramètre et son type * et la valeur courante. */ inline string ValueString() const { return ( Name() + " {" + GGetString(data_list.Index()+1) + "/" + GGetString(data_list.GetSize()) + "} = " + Get().Text() ) ; } /*! Retourne chaîne de caractères avec le paramètre et son type * et la valeur courante avec son mot d'état. */ inline string ValueFullString() const { return ( Name() + " {" + GGetString(data_list.Index()+1) + "/" + GGetString(data_list.GetSize()) + "} = " + Get().FullText() ) ; } // Retourne chaîne de caractères avec le paramètre et son type // et l'ensemble des données. string DataString() const; //---------------------------------------------------------------------- /*! Retourne chaîne de caractères avec de donnée.*/ inline string GetDataType() const { return (data_ptr->Type()); } /*! Retourne l'identifiant du type de donnée.*/ inline u_int GetDataTypeId() const { return (data_ptr->TypeId()); } //---------------------------------------------------------------------- /*! Remise à zéro du paramètre, ce qui correspond à vider la * liste. */ inline void Reset() { data_list.Empty(); status = 0; } /*! Retourne le nombre de données dans la liste variable. */ inline u_int Dimension() const { return (data_list.GetSize()); } /*! Retourne la donnée courante dans le liste. */ inline const Data & Get( ) const { return ( _Get() ); } // Opérateur []: renvoie la valeur de rang donnée. Data & operator [] (u_int index) const; //---------------------------------------------------------------------- /*! Positionne le paramètre sur sa première donnée. * Dans le cas d'un paramètre de type ParamMultihit, cette méthode * retourne vrai si le paramètre contient au moins une donnée. */ inline bool First() const { if (data_list.GetSize() > 0) { data_list.First(); return (true); } else return (false); } /*! Positionne le paramètre sur sa dernière donnée. * Dans le cas d'un paramètre de type ParamMultihit, cette méthode * retourne vrai si le paramètre contient au moins une donnée. */ inline bool Last() const { if (data_list.GetSize() > 0) { data_list.Last(); return (true); } else return (false); } /*! Positionne le paramètre sur la dernière suivante. * Dans le cas d'un paramètre de type ParamMultihit, cette méthode * retourne vrai le paramètre n'est pas déjà positionné sur la * dernière valeur. */ inline bool Next() const { if (data_list.GetSize() > 0) { return (data_list.Next() != data_list.Null()); } else return (false); } /*! Positionne le paramètre sur la dernière précédente. * Dans le cas d'un paramètre de type ParamMultihit, cette méthode * retourne vrai le paramètre n'est pas déjà positionné sur la * première valeur. */ inline bool Previous() const { if (data_list.GetSize() > 0) { return (data_list.Previous() != data_list.Null()); } else return (false); } //---------------------------------------------------------------------- // METHODES PROTEGEES //---------------------------------------------------------------------- protected: /*! Retourne la donnée courante dans le liste. La méthode génère * une erreur si aucune donnée n'est présente. Elle est utilisée * par la méthode Get et par les opérateurs de cast. */ inline Data & _Get( ) const { if (data_list.GetSize() > 0) return (*(data_list.Current())); else { GLogWarning ( "ParamMultihit: getting value in empty list"); return (bad_data); } } //---------------------------------------------------------------------- // pour ROOT... public: /*! Définition à usage de ROOT... */ ClassDef(ParamMultihit,0); } ; //====================================================================== #endif
91  * \param val valeur à affecter
92  */
93  inline Param & operator = ( const U_Int2 val )
94  { // conversion dans le type, puis ajout
95  *data_ptr = val; data_list.Append (*data_ptr);
96  //data_list.Append (DataUI2(val));
97  return ( *this );
98  }
99 
100  /*! Opérateur d'affectation d'un entier 32 bits signé. * \param val valeur à affecter */ inline Param & operator = ( const Int4 val ) { // conversion dans le type, puis ajout *data_ptr = val; data_list.Append (*data_ptr); //data_list.Append (DataI4(val)); return ( *this ); } /*! Opérateur d'affectation d'un entier 32 bits non signé. * \param val valeur à affecter */ inline Param & operator = ( const U_Int4 val ) { // conversion dans le type, puis ajout *data_ptr = val; data_list.Append (*data_ptr); //data_list.Append (DataUI4(val)); return ( *this ); } /*! Opérateur d'affectation d'un entier 64 bits signé. * \param val valeur à affecter */ inline Param & operator = ( const Int8 val ) { // conversion dans le type, puis ajout *data_ptr = val; data_list.Append (*data_ptr); //data_list.Append (DataI4(val)); return ( *this ); } /*! Opérateur d'affectation d'un entier 64 bits non signé. * \param val valeur à affecter */ inline Param & operator = ( const U_Int8 val ) { // conversion dans le type, puis ajout *data_ptr = val; data_list.Append (*data_ptr); //data_list.Append (DataUI4(val)); return ( *this ); } /*! Opérateur d'affectation d'un réel 32 bits. * \param val valeur à affecter */ inline Param & operator = ( const Real4 val ) { // conversion dans le type, puis ajout *data_ptr = val; data_list.Append (*data_ptr); //data_list.Append (DataR4(val)); return ( *this ); } /*! Opérateur d'affectation d'un réel 64 bits. * \param val valeur à affecter */ inline Param & operator = ( const Real8 val ) { // conversion dans le type, puis ajout *data_ptr = val; data_list.Append (*data_ptr); //data_list.Append (DataR8(val)); return ( *this ); } //---------------------------------------------------------------------- // CAST //---------------------------------------------------------------------- #ifndef __MAKECINT__ /*! Opérateur de cast une donnée générique.*/ inline operator Data & () const { return ( _Get() ); } #endif /*! Opérateur de cast une donnée de type entier 32 bits signé.*/ inline operator Int2 () const { return ( (Int2) _Get() ); } /*! Opérateur de cast une donnée de type entier 32 bits non signé.*/ inline operator U_Int2 () const { return ( (U_Int2) _Get() ); } /*! Opérateur de cast une donnée de type entier 32 bits signé.*/ inline operator Int4 () const { return ( (Int4) _Get() ); } /*! Opérateur de cast une donnée de type entier 32 bits non signé.*/ inline operator U_Int4 () const { return ( (U_Int4) _Get() ); } /*! Opérateur de cast une donnée de type entier 64 bits signé.*/ inline operator Int8 () const { return ( (Int8) _Get() ); } /*! Opérateur de cast une donnée de type entier 64 bits non signé.*/ inline operator U_Int8 () const { return ( (U_Int8) _Get() ); } /*! Opérateur de cast une donnée de type réel 32 bits.*/ inline operator Real4 () const { return ( (Real4) _Get() ); } /*! Opérateur de cast une donnée de type réel 64 bits.*/ inline operator Real8 () const { return ( (Real8) _Get() ); } //---------------------------------------------------------------------- // //---------------------------------------------------------------------- /*! Retourne l'identificateur de type de paramètre.*/ inline u_int TypeId() const { return (typeMultihit); } /*! Retourne le type de paramètre.*/ inline string Type() const { return ("multihit"); } /*! Retourne chaîne de caractères avec le paramètre et son type. */ inline string InfoString() const { return (Name() + " = " + Type() + "[...] (" + data_ptr->Type() + ")"); } /*! Retourne chaîne de caractères avec le paramètre et son type * et la valeur courante. */ inline string ValueString() const { return ( Name() + " {" + GGetString(data_list.Index()+1) + "/" + GGetString(data_list.GetSize()) + "} = " + Get().Text() ) ; } /*! Retourne chaîne de caractères avec le paramètre et son type * et la valeur courante avec son mot d'état. */ inline string ValueFullString() const { return ( Name() + " {" + GGetString(data_list.Index()+1) + "/" + GGetString(data_list.GetSize()) + "} = " + Get().FullText() ) ; } // Retourne chaîne de caractères avec le paramètre et son type // et l'ensemble des données. string DataString() const; //---------------------------------------------------------------------- /*! Retourne chaîne de caractères avec de donnée.*/ inline string GetDataType() const { return (data_ptr->Type()); } /*! Retourne l'identifiant du type de donnée.*/ inline u_int GetDataTypeId() const { return (data_ptr->TypeId()); } //---------------------------------------------------------------------- /*! Remise à zéro du paramètre, ce qui correspond à vider la * liste. */ inline void Reset() { data_list.Empty(); status = 0; } /*! Retourne le nombre de données dans la liste variable. */ inline u_int Dimension() const { return (data_list.GetSize()); } /*! Retourne la donnée courante dans le liste. */ inline const Data & Get( ) const { return ( _Get() ); } // Opérateur []: renvoie la valeur de rang donnée. Data & operator [] (u_int index) const; //---------------------------------------------------------------------- /*! Positionne le paramètre sur sa première donnée. * Dans le cas d'un paramètre de type ParamMultihit, cette méthode * retourne vrai si le paramètre contient au moins une donnée. */ inline bool First() const { if (data_list.GetSize() > 0) { data_list.First(); return (true); } else return (false); } /*! Positionne le paramètre sur sa dernière donnée. * Dans le cas d'un paramètre de type ParamMultihit, cette méthode * retourne vrai si le paramètre contient au moins une donnée. */ inline bool Last() const { if (data_list.GetSize() > 0) { data_list.Last(); return (true); } else return (false); } /*! Positionne le paramètre sur la dernière suivante. * Dans le cas d'un paramètre de type ParamMultihit, cette méthode * retourne vrai le paramètre n'est pas déjà positionné sur la * dernière valeur. */ inline bool Next() const { if (data_list.GetSize() > 0) { return (data_list.Next() != data_list.Null()); } else return (false); } /*! Positionne le paramètre sur la dernière précédente. * Dans le cas d'un paramètre de type ParamMultihit, cette méthode * retourne vrai le paramètre n'est pas déjà positionné sur la * première valeur. */ inline bool Previous() const { if (data_list.GetSize() > 0) { return (data_list.Previous() != data_list.Null()); } else return (false); } //---------------------------------------------------------------------- // METHODES PROTEGEES //---------------------------------------------------------------------- protected: /*! Retourne la donnée courante dans le liste. La méthode génère * une erreur si aucune donnée n'est présente. Elle est utilisée * par la méthode Get et par les opérateurs de cast. */ inline Data & _Get( ) const { if (data_list.GetSize() > 0) return (*(data_list.Current())); else { GLogWarning ( "ParamMultihit: getting value in empty list"); return (bad_data); } } //---------------------------------------------------------------------- // pour ROOT... public: /*! Définition à usage de ROOT... */ ClassDef(ParamMultihit,0); } ; //====================================================================== #endif
101  * \param val valeur à affecter
102  */
103  inline Param & operator = ( const Int4 val )
104  { // conversion dans le type, puis ajout
105  *data_ptr = val; data_list.Append (*data_ptr);
106  //data_list.Append (DataI4(val));
107  return ( *this );
108  }
109 
110  /*! Opérateur d'affectation d'un entier 32 bits non signé. * \param val valeur à affecter */ inline Param & operator = ( const U_Int4 val ) { // conversion dans le type, puis ajout *data_ptr = val; data_list.Append (*data_ptr); //data_list.Append (DataUI4(val)); return ( *this ); } /*! Opérateur d'affectation d'un entier 64 bits signé. * \param val valeur à affecter */ inline Param & operator = ( const Int8 val ) { // conversion dans le type, puis ajout *data_ptr = val; data_list.Append (*data_ptr); //data_list.Append (DataI4(val)); return ( *this ); } /*! Opérateur d'affectation d'un entier 64 bits non signé. * \param val valeur à affecter */ inline Param & operator = ( const U_Int8 val ) { // conversion dans le type, puis ajout *data_ptr = val; data_list.Append (*data_ptr); //data_list.Append (DataUI4(val)); return ( *this ); } /*! Opérateur d'affectation d'un réel 32 bits. * \param val valeur à affecter */ inline Param & operator = ( const Real4 val ) { // conversion dans le type, puis ajout *data_ptr = val; data_list.Append (*data_ptr); //data_list.Append (DataR4(val)); return ( *this ); } /*! Opérateur d'affectation d'un réel 64 bits. * \param val valeur à affecter */ inline Param & operator = ( const Real8 val ) { // conversion dans le type, puis ajout *data_ptr = val; data_list.Append (*data_ptr); //data_list.Append (DataR8(val)); return ( *this ); } //---------------------------------------------------------------------- // CAST //---------------------------------------------------------------------- #ifndef __MAKECINT__ /*! Opérateur de cast une donnée générique.*/ inline operator Data & () const { return ( _Get() ); } #endif /*! Opérateur de cast une donnée de type entier 32 bits signé.*/ inline operator Int2 () const { return ( (Int2) _Get() ); } /*! Opérateur de cast une donnée de type entier 32 bits non signé.*/ inline operator U_Int2 () const { return ( (U_Int2) _Get() ); } /*! Opérateur de cast une donnée de type entier 32 bits signé.*/ inline operator Int4 () const { return ( (Int4) _Get() ); } /*! Opérateur de cast une donnée de type entier 32 bits non signé.*/ inline operator U_Int4 () const { return ( (U_Int4) _Get() ); } /*! Opérateur de cast une donnée de type entier 64 bits signé.*/ inline operator Int8 () const { return ( (Int8) _Get() ); } /*! Opérateur de cast une donnée de type entier 64 bits non signé.*/ inline operator U_Int8 () const { return ( (U_Int8) _Get() ); } /*! Opérateur de cast une donnée de type réel 32 bits.*/ inline operator Real4 () const { return ( (Real4) _Get() ); } /*! Opérateur de cast une donnée de type réel 64 bits.*/ inline operator Real8 () const { return ( (Real8) _Get() ); } //---------------------------------------------------------------------- // //---------------------------------------------------------------------- /*! Retourne l'identificateur de type de paramètre.*/ inline u_int TypeId() const { return (typeMultihit); } /*! Retourne le type de paramètre.*/ inline string Type() const { return ("multihit"); } /*! Retourne chaîne de caractères avec le paramètre et son type. */ inline string InfoString() const { return (Name() + " = " + Type() + "[...] (" + data_ptr->Type() + ")"); } /*! Retourne chaîne de caractères avec le paramètre et son type * et la valeur courante. */ inline string ValueString() const { return ( Name() + " {" + GGetString(data_list.Index()+1) + "/" + GGetString(data_list.GetSize()) + "} = " + Get().Text() ) ; } /*! Retourne chaîne de caractères avec le paramètre et son type * et la valeur courante avec son mot d'état. */ inline string ValueFullString() const { return ( Name() + " {" + GGetString(data_list.Index()+1) + "/" + GGetString(data_list.GetSize()) + "} = " + Get().FullText() ) ; } // Retourne chaîne de caractères avec le paramètre et son type // et l'ensemble des données. string DataString() const; //---------------------------------------------------------------------- /*! Retourne chaîne de caractères avec de donnée.*/ inline string GetDataType() const { return (data_ptr->Type()); } /*! Retourne l'identifiant du type de donnée.*/ inline u_int GetDataTypeId() const { return (data_ptr->TypeId()); } //---------------------------------------------------------------------- /*! Remise à zéro du paramètre, ce qui correspond à vider la * liste. */ inline void Reset() { data_list.Empty(); status = 0; } /*! Retourne le nombre de données dans la liste variable. */ inline u_int Dimension() const { return (data_list.GetSize()); } /*! Retourne la donnée courante dans le liste. */ inline const Data & Get( ) const { return ( _Get() ); } // Opérateur []: renvoie la valeur de rang donnée. Data & operator [] (u_int index) const; //---------------------------------------------------------------------- /*! Positionne le paramètre sur sa première donnée. * Dans le cas d'un paramètre de type ParamMultihit, cette méthode * retourne vrai si le paramètre contient au moins une donnée. */ inline bool First() const { if (data_list.GetSize() > 0) { data_list.First(); return (true); } else return (false); } /*! Positionne le paramètre sur sa dernière donnée. * Dans le cas d'un paramètre de type ParamMultihit, cette méthode * retourne vrai si le paramètre contient au moins une donnée. */ inline bool Last() const { if (data_list.GetSize() > 0) { data_list.Last(); return (true); } else return (false); } /*! Positionne le paramètre sur la dernière suivante. * Dans le cas d'un paramètre de type ParamMultihit, cette méthode * retourne vrai le paramètre n'est pas déjà positionné sur la * dernière valeur. */ inline bool Next() const { if (data_list.GetSize() > 0) { return (data_list.Next() != data_list.Null()); } else return (false); } /*! Positionne le paramètre sur la dernière précédente. * Dans le cas d'un paramètre de type ParamMultihit, cette méthode * retourne vrai le paramètre n'est pas déjà positionné sur la * première valeur. */ inline bool Previous() const { if (data_list.GetSize() > 0) { return (data_list.Previous() != data_list.Null()); } else return (false); } //---------------------------------------------------------------------- // METHODES PROTEGEES //---------------------------------------------------------------------- protected: /*! Retourne la donnée courante dans le liste. La méthode génère * une erreur si aucune donnée n'est présente. Elle est utilisée * par la méthode Get et par les opérateurs de cast. */ inline Data & _Get( ) const { if (data_list.GetSize() > 0) return (*(data_list.Current())); else { GLogWarning ( "ParamMultihit: getting value in empty list"); return (bad_data); } } //---------------------------------------------------------------------- // pour ROOT... public: /*! Définition à usage de ROOT... */ ClassDef(ParamMultihit,0); } ; //====================================================================== #endif
111  * \param val valeur à affecter
112  */
113  inline Param & operator = ( const U_Int4 val )
114  { // conversion dans le type, puis ajout
115  *data_ptr = val; data_list.Append (*data_ptr);
116  //data_list.Append (DataUI4(val));
117  return ( *this );
118  }
119 
120  /*! Opérateur d'affectation d'un entier 64 bits signé. * \param val valeur à affecter */ inline Param & operator = ( const Int8 val ) { // conversion dans le type, puis ajout *data_ptr = val; data_list.Append (*data_ptr); //data_list.Append (DataI4(val)); return ( *this ); } /*! Opérateur d'affectation d'un entier 64 bits non signé. * \param val valeur à affecter */ inline Param & operator = ( const U_Int8 val ) { // conversion dans le type, puis ajout *data_ptr = val; data_list.Append (*data_ptr); //data_list.Append (DataUI4(val)); return ( *this ); } /*! Opérateur d'affectation d'un réel 32 bits. * \param val valeur à affecter */ inline Param & operator = ( const Real4 val ) { // conversion dans le type, puis ajout *data_ptr = val; data_list.Append (*data_ptr); //data_list.Append (DataR4(val)); return ( *this ); } /*! Opérateur d'affectation d'un réel 64 bits. * \param val valeur à affecter */ inline Param & operator = ( const Real8 val ) { // conversion dans le type, puis ajout *data_ptr = val; data_list.Append (*data_ptr); //data_list.Append (DataR8(val)); return ( *this ); } //---------------------------------------------------------------------- // CAST //---------------------------------------------------------------------- #ifndef __MAKECINT__ /*! Opérateur de cast une donnée générique.*/ inline operator Data & () const { return ( _Get() ); } #endif /*! Opérateur de cast une donnée de type entier 32 bits signé.*/ inline operator Int2 () const { return ( (Int2) _Get() ); } /*! Opérateur de cast une donnée de type entier 32 bits non signé.*/ inline operator U_Int2 () const { return ( (U_Int2) _Get() ); } /*! Opérateur de cast une donnée de type entier 32 bits signé.*/ inline operator Int4 () const { return ( (Int4) _Get() ); } /*! Opérateur de cast une donnée de type entier 32 bits non signé.*/ inline operator U_Int4 () const { return ( (U_Int4) _Get() ); } /*! Opérateur de cast une donnée de type entier 64 bits signé.*/ inline operator Int8 () const { return ( (Int8) _Get() ); } /*! Opérateur de cast une donnée de type entier 64 bits non signé.*/ inline operator U_Int8 () const { return ( (U_Int8) _Get() ); } /*! Opérateur de cast une donnée de type réel 32 bits.*/ inline operator Real4 () const { return ( (Real4) _Get() ); } /*! Opérateur de cast une donnée de type réel 64 bits.*/ inline operator Real8 () const { return ( (Real8) _Get() ); } //---------------------------------------------------------------------- // //---------------------------------------------------------------------- /*! Retourne l'identificateur de type de paramètre.*/ inline u_int TypeId() const { return (typeMultihit); } /*! Retourne le type de paramètre.*/ inline string Type() const { return ("multihit"); } /*! Retourne chaîne de caractères avec le paramètre et son type. */ inline string InfoString() const { return (Name() + " = " + Type() + "[...] (" + data_ptr->Type() + ")"); } /*! Retourne chaîne de caractères avec le paramètre et son type * et la valeur courante. */ inline string ValueString() const { return ( Name() + " {" + GGetString(data_list.Index()+1) + "/" + GGetString(data_list.GetSize()) + "} = " + Get().Text() ) ; } /*! Retourne chaîne de caractères avec le paramètre et son type * et la valeur courante avec son mot d'état. */ inline string ValueFullString() const { return ( Name() + " {" + GGetString(data_list.Index()+1) + "/" + GGetString(data_list.GetSize()) + "} = " + Get().FullText() ) ; } // Retourne chaîne de caractères avec le paramètre et son type // et l'ensemble des données. string DataString() const; //---------------------------------------------------------------------- /*! Retourne chaîne de caractères avec de donnée.*/ inline string GetDataType() const { return (data_ptr->Type()); } /*! Retourne l'identifiant du type de donnée.*/ inline u_int GetDataTypeId() const { return (data_ptr->TypeId()); } //---------------------------------------------------------------------- /*! Remise à zéro du paramètre, ce qui correspond à vider la * liste. */ inline void Reset() { data_list.Empty(); status = 0; } /*! Retourne le nombre de données dans la liste variable. */ inline u_int Dimension() const { return (data_list.GetSize()); } /*! Retourne la donnée courante dans le liste. */ inline const Data & Get( ) const { return ( _Get() ); } // Opérateur []: renvoie la valeur de rang donnée. Data & operator [] (u_int index) const; //---------------------------------------------------------------------- /*! Positionne le paramètre sur sa première donnée. * Dans le cas d'un paramètre de type ParamMultihit, cette méthode * retourne vrai si le paramètre contient au moins une donnée. */ inline bool First() const { if (data_list.GetSize() > 0) { data_list.First(); return (true); } else return (false); } /*! Positionne le paramètre sur sa dernière donnée. * Dans le cas d'un paramètre de type ParamMultihit, cette méthode * retourne vrai si le paramètre contient au moins une donnée. */ inline bool Last() const { if (data_list.GetSize() > 0) { data_list.Last(); return (true); } else return (false); } /*! Positionne le paramètre sur la dernière suivante. * Dans le cas d'un paramètre de type ParamMultihit, cette méthode * retourne vrai le paramètre n'est pas déjà positionné sur la * dernière valeur. */ inline bool Next() const { if (data_list.GetSize() > 0) { return (data_list.Next() != data_list.Null()); } else return (false); } /*! Positionne le paramètre sur la dernière précédente. * Dans le cas d'un paramètre de type ParamMultihit, cette méthode * retourne vrai le paramètre n'est pas déjà positionné sur la * première valeur. */ inline bool Previous() const { if (data_list.GetSize() > 0) { return (data_list.Previous() != data_list.Null()); } else return (false); } //---------------------------------------------------------------------- // METHODES PROTEGEES //---------------------------------------------------------------------- protected: /*! Retourne la donnée courante dans le liste. La méthode génère * une erreur si aucune donnée n'est présente. Elle est utilisée * par la méthode Get et par les opérateurs de cast. */ inline Data & _Get( ) const { if (data_list.GetSize() > 0) return (*(data_list.Current())); else { GLogWarning ( "ParamMultihit: getting value in empty list"); return (bad_data); } } //---------------------------------------------------------------------- // pour ROOT... public: /*! Définition à usage de ROOT... */ ClassDef(ParamMultihit,0); } ; //====================================================================== #endif
121  * \param val valeur à affecter
122  */
123  inline Param & operator = ( const Int8 val )
124  { // conversion dans le type, puis ajout
125  *data_ptr = val; data_list.Append (*data_ptr);
126  //data_list.Append (DataI4(val));
127  return ( *this );
128  }
129 
130  /*! Opérateur d'affectation d'un entier 64 bits non signé. * \param val valeur à affecter */ inline Param & operator = ( const U_Int8 val ) { // conversion dans le type, puis ajout *data_ptr = val; data_list.Append (*data_ptr); //data_list.Append (DataUI4(val)); return ( *this ); } /*! Opérateur d'affectation d'un réel 32 bits. * \param val valeur à affecter */ inline Param & operator = ( const Real4 val ) { // conversion dans le type, puis ajout *data_ptr = val; data_list.Append (*data_ptr); //data_list.Append (DataR4(val)); return ( *this ); } /*! Opérateur d'affectation d'un réel 64 bits. * \param val valeur à affecter */ inline Param & operator = ( const Real8 val ) { // conversion dans le type, puis ajout *data_ptr = val; data_list.Append (*data_ptr); //data_list.Append (DataR8(val)); return ( *this ); } //---------------------------------------------------------------------- // CAST //---------------------------------------------------------------------- #ifndef __MAKECINT__ /*! Opérateur de cast une donnée générique.*/ inline operator Data & () const { return ( _Get() ); } #endif /*! Opérateur de cast une donnée de type entier 32 bits signé.*/ inline operator Int2 () const { return ( (Int2) _Get() ); } /*! Opérateur de cast une donnée de type entier 32 bits non signé.*/ inline operator U_Int2 () const { return ( (U_Int2) _Get() ); } /*! Opérateur de cast une donnée de type entier 32 bits signé.*/ inline operator Int4 () const { return ( (Int4) _Get() ); } /*! Opérateur de cast une donnée de type entier 32 bits non signé.*/ inline operator U_Int4 () const { return ( (U_Int4) _Get() ); } /*! Opérateur de cast une donnée de type entier 64 bits signé.*/ inline operator Int8 () const { return ( (Int8) _Get() ); } /*! Opérateur de cast une donnée de type entier 64 bits non signé.*/ inline operator U_Int8 () const { return ( (U_Int8) _Get() ); } /*! Opérateur de cast une donnée de type réel 32 bits.*/ inline operator Real4 () const { return ( (Real4) _Get() ); } /*! Opérateur de cast une donnée de type réel 64 bits.*/ inline operator Real8 () const { return ( (Real8) _Get() ); } //---------------------------------------------------------------------- // //---------------------------------------------------------------------- /*! Retourne l'identificateur de type de paramètre.*/ inline u_int TypeId() const { return (typeMultihit); } /*! Retourne le type de paramètre.*/ inline string Type() const { return ("multihit"); } /*! Retourne chaîne de caractères avec le paramètre et son type. */ inline string InfoString() const { return (Name() + " = " + Type() + "[...] (" + data_ptr->Type() + ")"); } /*! Retourne chaîne de caractères avec le paramètre et son type * et la valeur courante. */ inline string ValueString() const { return ( Name() + " {" + GGetString(data_list.Index()+1) + "/" + GGetString(data_list.GetSize()) + "} = " + Get().Text() ) ; } /*! Retourne chaîne de caractères avec le paramètre et son type * et la valeur courante avec son mot d'état. */ inline string ValueFullString() const { return ( Name() + " {" + GGetString(data_list.Index()+1) + "/" + GGetString(data_list.GetSize()) + "} = " + Get().FullText() ) ; } // Retourne chaîne de caractères avec le paramètre et son type // et l'ensemble des données. string DataString() const; //---------------------------------------------------------------------- /*! Retourne chaîne de caractères avec de donnée.*/ inline string GetDataType() const { return (data_ptr->Type()); } /*! Retourne l'identifiant du type de donnée.*/ inline u_int GetDataTypeId() const { return (data_ptr->TypeId()); } //---------------------------------------------------------------------- /*! Remise à zéro du paramètre, ce qui correspond à vider la * liste. */ inline void Reset() { data_list.Empty(); status = 0; } /*! Retourne le nombre de données dans la liste variable. */ inline u_int Dimension() const { return (data_list.GetSize()); } /*! Retourne la donnée courante dans le liste. */ inline const Data & Get( ) const { return ( _Get() ); } // Opérateur []: renvoie la valeur de rang donnée. Data & operator [] (u_int index) const; //---------------------------------------------------------------------- /*! Positionne le paramètre sur sa première donnée. * Dans le cas d'un paramètre de type ParamMultihit, cette méthode * retourne vrai si le paramètre contient au moins une donnée. */ inline bool First() const { if (data_list.GetSize() > 0) { data_list.First(); return (true); } else return (false); } /*! Positionne le paramètre sur sa dernière donnée. * Dans le cas d'un paramètre de type ParamMultihit, cette méthode * retourne vrai si le paramètre contient au moins une donnée. */ inline bool Last() const { if (data_list.GetSize() > 0) { data_list.Last(); return (true); } else return (false); } /*! Positionne le paramètre sur la dernière suivante. * Dans le cas d'un paramètre de type ParamMultihit, cette méthode * retourne vrai le paramètre n'est pas déjà positionné sur la * dernière valeur. */ inline bool Next() const { if (data_list.GetSize() > 0) { return (data_list.Next() != data_list.Null()); } else return (false); } /*! Positionne le paramètre sur la dernière précédente. * Dans le cas d'un paramètre de type ParamMultihit, cette méthode * retourne vrai le paramètre n'est pas déjà positionné sur la * première valeur. */ inline bool Previous() const { if (data_list.GetSize() > 0) { return (data_list.Previous() != data_list.Null()); } else return (false); } //---------------------------------------------------------------------- // METHODES PROTEGEES //---------------------------------------------------------------------- protected: /*! Retourne la donnée courante dans le liste. La méthode génère * une erreur si aucune donnée n'est présente. Elle est utilisée * par la méthode Get et par les opérateurs de cast. */ inline Data & _Get( ) const { if (data_list.GetSize() > 0) return (*(data_list.Current())); else { GLogWarning ( "ParamMultihit: getting value in empty list"); return (bad_data); } } //---------------------------------------------------------------------- // pour ROOT... public: /*! Définition à usage de ROOT... */ ClassDef(ParamMultihit,0); } ; //====================================================================== #endif
131  * \param val valeur à affecter
132  */
133  inline Param & operator = ( const U_Int8 val )
134  { // conversion dans le type, puis ajout
135  *data_ptr = val; data_list.Append (*data_ptr);
136  //data_list.Append (DataUI4(val));
137  return ( *this );
138  }
139 
140  /*! Opérateur d'affectation d'un réel 32 bits.
141  * \param val valeur à affecter
142  */
143  inline Param & operator = ( const Real4 val )
144  { // conversion dans le type, puis ajout
145  *data_ptr = val; data_list.Append (*data_ptr);
146  //data_list.Append (DataR4(val));
147  return ( *this );
148  }
149 
150  /*! Opérateur d'affectation d'un réel 64 bits.
151  * \param val valeur à affecter
152  */
153  inline Param & operator = ( const Real8 val )
154  { // conversion dans le type, puis ajout
155  *data_ptr = val; data_list.Append (*data_ptr);
156  //data_list.Append (DataR8(val));
157  return ( *this );
158  }
159 
160 
161 //----------------------------------------------------------------------
162 // CAST
163 //----------------------------------------------------------------------
164 
165 #ifndef __MAKECINT__
166  /*! Opérateur de cast une donnée générique.*/
167  inline operator Data & () const
168  { return ( _Get() ); }
169 #endif
170 
171  /*! Opérateur de cast une donnée de type entier 32 bits signé./ inline operator Int2 () const { return ( (Int2) _Get() ); } /*! Opérateur de cast une donnée de type entier 32 bits non signé.*/ inline operator U_Int2 () const { return ( (U_Int2) _Get() ); } /*! Opérateur de cast une donnée de type entier 32 bits signé.*/ inline operator Int4 () const { return ( (Int4) _Get() ); } /*! Opérateur de cast une donnée de type entier 32 bits non signé.*/ inline operator U_Int4 () const { return ( (U_Int4) _Get() ); } /*! Opérateur de cast une donnée de type entier 64 bits signé.*/ inline operator Int8 () const { return ( (Int8) _Get() ); } /*! Opérateur de cast une donnée de type entier 64 bits non signé.*/ inline operator U_Int8 () const { return ( (U_Int8) _Get() ); } /*! Opérateur de cast une donnée de type réel 32 bits.*/ inline operator Real4 () const { return ( (Real4) _Get() ); } /*! Opérateur de cast une donnée de type réel 64 bits.*/ inline operator Real8 () const { return ( (Real8) _Get() ); } //---------------------------------------------------------------------- // //---------------------------------------------------------------------- /*! Retourne l'identificateur de type de paramètre.*/ inline u_int TypeId() const { return (typeMultihit); } /*! Retourne le type de paramètre.*/ inline string Type() const { return ("multihit"); } /*! Retourne chaîne de caractères avec le paramètre et son type. */ inline string InfoString() const { return (Name() + " = " + Type() + "[...] (" + data_ptr->Type() + ")"); } /*! Retourne chaîne de caractères avec le paramètre et son type * et la valeur courante. */ inline string ValueString() const { return ( Name() + " {" + GGetString(data_list.Index()+1) + "/" + GGetString(data_list.GetSize()) + "} = " + Get().Text() ) ; } /*! Retourne chaîne de caractères avec le paramètre et son type * et la valeur courante avec son mot d'état. */ inline string ValueFullString() const { return ( Name() + " {" + GGetString(data_list.Index()+1) + "/" + GGetString(data_list.GetSize()) + "} = " + Get().FullText() ) ; } // Retourne chaîne de caractères avec le paramètre et son type // et l'ensemble des données. string DataString() const; //---------------------------------------------------------------------- /*! Retourne chaîne de caractères avec de donnée.*/ inline string GetDataType() const { return (data_ptr->Type()); } /*! Retourne l'identifiant du type de donnée.*/ inline u_int GetDataTypeId() const { return (data_ptr->TypeId()); } //---------------------------------------------------------------------- /*! Remise à zéro du paramètre, ce qui correspond à vider la * liste. */ inline void Reset() { data_list.Empty(); status = 0; } /*! Retourne le nombre de données dans la liste variable. */ inline u_int Dimension() const { return (data_list.GetSize()); } /*! Retourne la donnée courante dans le liste. */ inline const Data & Get( ) const { return ( _Get() ); } // Opérateur []: renvoie la valeur de rang donnée. Data & operator [] (u_int index) const; //---------------------------------------------------------------------- /*! Positionne le paramètre sur sa première donnée. * Dans le cas d'un paramètre de type ParamMultihit, cette méthode * retourne vrai si le paramètre contient au moins une donnée. */ inline bool First() const { if (data_list.GetSize() > 0) { data_list.First(); return (true); } else return (false); } /*! Positionne le paramètre sur sa dernière donnée. * Dans le cas d'un paramètre de type ParamMultihit, cette méthode * retourne vrai si le paramètre contient au moins une donnée. */ inline bool Last() const { if (data_list.GetSize() > 0) { data_list.Last(); return (true); } else return (false); } /*! Positionne le paramètre sur la dernière suivante. * Dans le cas d'un paramètre de type ParamMultihit, cette méthode * retourne vrai le paramètre n'est pas déjà positionné sur la * dernière valeur. */ inline bool Next() const { if (data_list.GetSize() > 0) { return (data_list.Next() != data_list.Null()); } else return (false); } /*! Positionne le paramètre sur la dernière précédente. * Dans le cas d'un paramètre de type ParamMultihit, cette méthode * retourne vrai le paramètre n'est pas déjà positionné sur la * première valeur. */ inline bool Previous() const { if (data_list.GetSize() > 0) { return (data_list.Previous() != data_list.Null()); } else return (false); } //---------------------------------------------------------------------- // METHODES PROTEGEES //---------------------------------------------------------------------- protected: /*! Retourne la donnée courante dans le liste. La méthode génère * une erreur si aucune donnée n'est présente. Elle est utilisée * par la méthode Get et par les opérateurs de cast. */ inline Data & _Get( ) const { if (data_list.GetSize() > 0) return (*(data_list.Current())); else { GLogWarning ( "ParamMultihit: getting value in empty list"); return (bad_data); } } //---------------------------------------------------------------------- // pour ROOT... public: /*! Définition à usage de ROOT... */ ClassDef(ParamMultihit,0); } ; //====================================================================== #endif */
172  inline operator Int2 () const
173  { return ( (Int2) _Get() ); }
174 
175  /*! Opérateur de cast une donnée de type entier 32 bits non signé./ inline operator U_Int2 () const { return ( (U_Int2) _Get() ); } /*! Opérateur de cast une donnée de type entier 32 bits signé.*/ inline operator Int4 () const { return ( (Int4) _Get() ); } /*! Opérateur de cast une donnée de type entier 32 bits non signé.*/ inline operator U_Int4 () const { return ( (U_Int4) _Get() ); } /*! Opérateur de cast une donnée de type entier 64 bits signé.*/ inline operator Int8 () const { return ( (Int8) _Get() ); } /*! Opérateur de cast une donnée de type entier 64 bits non signé.*/ inline operator U_Int8 () const { return ( (U_Int8) _Get() ); } /*! Opérateur de cast une donnée de type réel 32 bits.*/ inline operator Real4 () const { return ( (Real4) _Get() ); } /*! Opérateur de cast une donnée de type réel 64 bits.*/ inline operator Real8 () const { return ( (Real8) _Get() ); } //---------------------------------------------------------------------- // //---------------------------------------------------------------------- /*! Retourne l'identificateur de type de paramètre.*/ inline u_int TypeId() const { return (typeMultihit); } /*! Retourne le type de paramètre.*/ inline string Type() const { return ("multihit"); } /*! Retourne chaîne de caractères avec le paramètre et son type. */ inline string InfoString() const { return (Name() + " = " + Type() + "[...] (" + data_ptr->Type() + ")"); } /*! Retourne chaîne de caractères avec le paramètre et son type * et la valeur courante. */ inline string ValueString() const { return ( Name() + " {" + GGetString(data_list.Index()+1) + "/" + GGetString(data_list.GetSize()) + "} = " + Get().Text() ) ; } /*! Retourne chaîne de caractères avec le paramètre et son type * et la valeur courante avec son mot d'état. */ inline string ValueFullString() const { return ( Name() + " {" + GGetString(data_list.Index()+1) + "/" + GGetString(data_list.GetSize()) + "} = " + Get().FullText() ) ; } // Retourne chaîne de caractères avec le paramètre et son type // et l'ensemble des données. string DataString() const; //---------------------------------------------------------------------- /*! Retourne chaîne de caractères avec de donnée.*/ inline string GetDataType() const { return (data_ptr->Type()); } /*! Retourne l'identifiant du type de donnée.*/ inline u_int GetDataTypeId() const { return (data_ptr->TypeId()); } //---------------------------------------------------------------------- /*! Remise à zéro du paramètre, ce qui correspond à vider la * liste. */ inline void Reset() { data_list.Empty(); status = 0; } /*! Retourne le nombre de données dans la liste variable. */ inline u_int Dimension() const { return (data_list.GetSize()); } /*! Retourne la donnée courante dans le liste. */ inline const Data & Get( ) const { return ( _Get() ); } // Opérateur []: renvoie la valeur de rang donnée. Data & operator [] (u_int index) const; //---------------------------------------------------------------------- /*! Positionne le paramètre sur sa première donnée. * Dans le cas d'un paramètre de type ParamMultihit, cette méthode * retourne vrai si le paramètre contient au moins une donnée. */ inline bool First() const { if (data_list.GetSize() > 0) { data_list.First(); return (true); } else return (false); } /*! Positionne le paramètre sur sa dernière donnée. * Dans le cas d'un paramètre de type ParamMultihit, cette méthode * retourne vrai si le paramètre contient au moins une donnée. */ inline bool Last() const { if (data_list.GetSize() > 0) { data_list.Last(); return (true); } else return (false); } /*! Positionne le paramètre sur la dernière suivante. * Dans le cas d'un paramètre de type ParamMultihit, cette méthode * retourne vrai le paramètre n'est pas déjà positionné sur la * dernière valeur. */ inline bool Next() const { if (data_list.GetSize() > 0) { return (data_list.Next() != data_list.Null()); } else return (false); } /*! Positionne le paramètre sur la dernière précédente. * Dans le cas d'un paramètre de type ParamMultihit, cette méthode * retourne vrai le paramètre n'est pas déjà positionné sur la * première valeur. */ inline bool Previous() const { if (data_list.GetSize() > 0) { return (data_list.Previous() != data_list.Null()); } else return (false); } //---------------------------------------------------------------------- // METHODES PROTEGEES //---------------------------------------------------------------------- protected: /*! Retourne la donnée courante dans le liste. La méthode génère * une erreur si aucune donnée n'est présente. Elle est utilisée * par la méthode Get et par les opérateurs de cast. */ inline Data & _Get( ) const { if (data_list.GetSize() > 0) return (*(data_list.Current())); else { GLogWarning ( "ParamMultihit: getting value in empty list"); return (bad_data); } } //---------------------------------------------------------------------- // pour ROOT... public: /*! Définition à usage de ROOT... */ ClassDef(ParamMultihit,0); } ; //====================================================================== #endif */
176  inline operator U_Int2 () const
177  { return ( (U_Int2) _Get() ); }
178 
179  /*! Opérateur de cast une donnée de type entier 32 bits signé./ inline operator Int4 () const { return ( (Int4) _Get() ); } /*! Opérateur de cast une donnée de type entier 32 bits non signé.*/ inline operator U_Int4 () const { return ( (U_Int4) _Get() ); } /*! Opérateur de cast une donnée de type entier 64 bits signé.*/ inline operator Int8 () const { return ( (Int8) _Get() ); } /*! Opérateur de cast une donnée de type entier 64 bits non signé.*/ inline operator U_Int8 () const { return ( (U_Int8) _Get() ); } /*! Opérateur de cast une donnée de type réel 32 bits.*/ inline operator Real4 () const { return ( (Real4) _Get() ); } /*! Opérateur de cast une donnée de type réel 64 bits.*/ inline operator Real8 () const { return ( (Real8) _Get() ); } //---------------------------------------------------------------------- // //---------------------------------------------------------------------- /*! Retourne l'identificateur de type de paramètre.*/ inline u_int TypeId() const { return (typeMultihit); } /*! Retourne le type de paramètre.*/ inline string Type() const { return ("multihit"); } /*! Retourne chaîne de caractères avec le paramètre et son type. */ inline string InfoString() const { return (Name() + " = " + Type() + "[...] (" + data_ptr->Type() + ")"); } /*! Retourne chaîne de caractères avec le paramètre et son type * et la valeur courante. */ inline string ValueString() const { return ( Name() + " {" + GGetString(data_list.Index()+1) + "/" + GGetString(data_list.GetSize()) + "} = " + Get().Text() ) ; } /*! Retourne chaîne de caractères avec le paramètre et son type * et la valeur courante avec son mot d'état. */ inline string ValueFullString() const { return ( Name() + " {" + GGetString(data_list.Index()+1) + "/" + GGetString(data_list.GetSize()) + "} = " + Get().FullText() ) ; } // Retourne chaîne de caractères avec le paramètre et son type // et l'ensemble des données. string DataString() const; //---------------------------------------------------------------------- /*! Retourne chaîne de caractères avec de donnée.*/ inline string GetDataType() const { return (data_ptr->Type()); } /*! Retourne l'identifiant du type de donnée.*/ inline u_int GetDataTypeId() const { return (data_ptr->TypeId()); } //---------------------------------------------------------------------- /*! Remise à zéro du paramètre, ce qui correspond à vider la * liste. */ inline void Reset() { data_list.Empty(); status = 0; } /*! Retourne le nombre de données dans la liste variable. */ inline u_int Dimension() const { return (data_list.GetSize()); } /*! Retourne la donnée courante dans le liste. */ inline const Data & Get( ) const { return ( _Get() ); } // Opérateur []: renvoie la valeur de rang donnée. Data & operator [] (u_int index) const; //---------------------------------------------------------------------- /*! Positionne le paramètre sur sa première donnée. * Dans le cas d'un paramètre de type ParamMultihit, cette méthode * retourne vrai si le paramètre contient au moins une donnée. */ inline bool First() const { if (data_list.GetSize() > 0) { data_list.First(); return (true); } else return (false); } /*! Positionne le paramètre sur sa dernière donnée. * Dans le cas d'un paramètre de type ParamMultihit, cette méthode * retourne vrai si le paramètre contient au moins une donnée. */ inline bool Last() const { if (data_list.GetSize() > 0) { data_list.Last(); return (true); } else return (false); } /*! Positionne le paramètre sur la dernière suivante. * Dans le cas d'un paramètre de type ParamMultihit, cette méthode * retourne vrai le paramètre n'est pas déjà positionné sur la * dernière valeur. */ inline bool Next() const { if (data_list.GetSize() > 0) { return (data_list.Next() != data_list.Null()); } else return (false); } /*! Positionne le paramètre sur la dernière précédente. * Dans le cas d'un paramètre de type ParamMultihit, cette méthode * retourne vrai le paramètre n'est pas déjà positionné sur la * première valeur. */ inline bool Previous() const { if (data_list.GetSize() > 0) { return (data_list.Previous() != data_list.Null()); } else return (false); } //---------------------------------------------------------------------- // METHODES PROTEGEES //---------------------------------------------------------------------- protected: /*! Retourne la donnée courante dans le liste. La méthode génère * une erreur si aucune donnée n'est présente. Elle est utilisée * par la méthode Get et par les opérateurs de cast. */ inline Data & _Get( ) const { if (data_list.GetSize() > 0) return (*(data_list.Current())); else { GLogWarning ( "ParamMultihit: getting value in empty list"); return (bad_data); } } //---------------------------------------------------------------------- // pour ROOT... public: /*! Définition à usage de ROOT... */ ClassDef(ParamMultihit,0); } ; //====================================================================== #endif */
180  inline operator Int4 () const
181  { return ( (Int4) _Get() ); }
182 
183  /*! Opérateur de cast une donnée de type entier 32 bits non signé./ inline operator U_Int4 () const { return ( (U_Int4) _Get() ); } /*! Opérateur de cast une donnée de type entier 64 bits signé.*/ inline operator Int8 () const { return ( (Int8) _Get() ); } /*! Opérateur de cast une donnée de type entier 64 bits non signé.*/ inline operator U_Int8 () const { return ( (U_Int8) _Get() ); } /*! Opérateur de cast une donnée de type réel 32 bits.*/ inline operator Real4 () const { return ( (Real4) _Get() ); } /*! Opérateur de cast une donnée de type réel 64 bits.*/ inline operator Real8 () const { return ( (Real8) _Get() ); } //---------------------------------------------------------------------- // //---------------------------------------------------------------------- /*! Retourne l'identificateur de type de paramètre.*/ inline u_int TypeId() const { return (typeMultihit); } /*! Retourne le type de paramètre.*/ inline string Type() const { return ("multihit"); } /*! Retourne chaîne de caractères avec le paramètre et son type. */ inline string InfoString() const { return (Name() + " = " + Type() + "[...] (" + data_ptr->Type() + ")"); } /*! Retourne chaîne de caractères avec le paramètre et son type * et la valeur courante. */ inline string ValueString() const { return ( Name() + " {" + GGetString(data_list.Index()+1) + "/" + GGetString(data_list.GetSize()) + "} = " + Get().Text() ) ; } /*! Retourne chaîne de caractères avec le paramètre et son type * et la valeur courante avec son mot d'état. */ inline string ValueFullString() const { return ( Name() + " {" + GGetString(data_list.Index()+1) + "/" + GGetString(data_list.GetSize()) + "} = " + Get().FullText() ) ; } // Retourne chaîne de caractères avec le paramètre et son type // et l'ensemble des données. string DataString() const; //---------------------------------------------------------------------- /*! Retourne chaîne de caractères avec de donnée.*/ inline string GetDataType() const { return (data_ptr->Type()); } /*! Retourne l'identifiant du type de donnée.*/ inline u_int GetDataTypeId() const { return (data_ptr->TypeId()); } //---------------------------------------------------------------------- /*! Remise à zéro du paramètre, ce qui correspond à vider la * liste. */ inline void Reset() { data_list.Empty(); status = 0; } /*! Retourne le nombre de données dans la liste variable. */ inline u_int Dimension() const { return (data_list.GetSize()); } /*! Retourne la donnée courante dans le liste. */ inline const Data & Get( ) const { return ( _Get() ); } // Opérateur []: renvoie la valeur de rang donnée. Data & operator [] (u_int index) const; //---------------------------------------------------------------------- /*! Positionne le paramètre sur sa première donnée. * Dans le cas d'un paramètre de type ParamMultihit, cette méthode * retourne vrai si le paramètre contient au moins une donnée. */ inline bool First() const { if (data_list.GetSize() > 0) { data_list.First(); return (true); } else return (false); } /*! Positionne le paramètre sur sa dernière donnée. * Dans le cas d'un paramètre de type ParamMultihit, cette méthode * retourne vrai si le paramètre contient au moins une donnée. */ inline bool Last() const { if (data_list.GetSize() > 0) { data_list.Last(); return (true); } else return (false); } /*! Positionne le paramètre sur la dernière suivante. * Dans le cas d'un paramètre de type ParamMultihit, cette méthode * retourne vrai le paramètre n'est pas déjà positionné sur la * dernière valeur. */ inline bool Next() const { if (data_list.GetSize() > 0) { return (data_list.Next() != data_list.Null()); } else return (false); } /*! Positionne le paramètre sur la dernière précédente. * Dans le cas d'un paramètre de type ParamMultihit, cette méthode * retourne vrai le paramètre n'est pas déjà positionné sur la * première valeur. */ inline bool Previous() const { if (data_list.GetSize() > 0) { return (data_list.Previous() != data_list.Null()); } else return (false); } //---------------------------------------------------------------------- // METHODES PROTEGEES //---------------------------------------------------------------------- protected: /*! Retourne la donnée courante dans le liste. La méthode génère * une erreur si aucune donnée n'est présente. Elle est utilisée * par la méthode Get et par les opérateurs de cast. */ inline Data & _Get( ) const { if (data_list.GetSize() > 0) return (*(data_list.Current())); else { GLogWarning ( "ParamMultihit: getting value in empty list"); return (bad_data); } } //---------------------------------------------------------------------- // pour ROOT... public: /*! Définition à usage de ROOT... */ ClassDef(ParamMultihit,0); } ; //====================================================================== #endif */
184  inline operator U_Int4 () const
185  { return ( (U_Int4) _Get() ); }
186 
187  /*! Opérateur de cast une donnée de type entier 64 bits signé./ inline operator Int8 () const { return ( (Int8) _Get() ); } /*! Opérateur de cast une donnée de type entier 64 bits non signé.*/ inline operator U_Int8 () const { return ( (U_Int8) _Get() ); } /*! Opérateur de cast une donnée de type réel 32 bits.*/ inline operator Real4 () const { return ( (Real4) _Get() ); } /*! Opérateur de cast une donnée de type réel 64 bits.*/ inline operator Real8 () const { return ( (Real8) _Get() ); } //---------------------------------------------------------------------- // //---------------------------------------------------------------------- /*! Retourne l'identificateur de type de paramètre.*/ inline u_int TypeId() const { return (typeMultihit); } /*! Retourne le type de paramètre.*/ inline string Type() const { return ("multihit"); } /*! Retourne chaîne de caractères avec le paramètre et son type. */ inline string InfoString() const { return (Name() + " = " + Type() + "[...] (" + data_ptr->Type() + ")"); } /*! Retourne chaîne de caractères avec le paramètre et son type * et la valeur courante. */ inline string ValueString() const { return ( Name() + " {" + GGetString(data_list.Index()+1) + "/" + GGetString(data_list.GetSize()) + "} = " + Get().Text() ) ; } /*! Retourne chaîne de caractères avec le paramètre et son type * et la valeur courante avec son mot d'état. */ inline string ValueFullString() const { return ( Name() + " {" + GGetString(data_list.Index()+1) + "/" + GGetString(data_list.GetSize()) + "} = " + Get().FullText() ) ; } // Retourne chaîne de caractères avec le paramètre et son type // et l'ensemble des données. string DataString() const; //---------------------------------------------------------------------- /*! Retourne chaîne de caractères avec de donnée.*/ inline string GetDataType() const { return (data_ptr->Type()); } /*! Retourne l'identifiant du type de donnée.*/ inline u_int GetDataTypeId() const { return (data_ptr->TypeId()); } //---------------------------------------------------------------------- /*! Remise à zéro du paramètre, ce qui correspond à vider la * liste. */ inline void Reset() { data_list.Empty(); status = 0; } /*! Retourne le nombre de données dans la liste variable. */ inline u_int Dimension() const { return (data_list.GetSize()); } /*! Retourne la donnée courante dans le liste. */ inline const Data & Get( ) const { return ( _Get() ); } // Opérateur []: renvoie la valeur de rang donnée. Data & operator [] (u_int index) const; //---------------------------------------------------------------------- /*! Positionne le paramètre sur sa première donnée. * Dans le cas d'un paramètre de type ParamMultihit, cette méthode * retourne vrai si le paramètre contient au moins une donnée. */ inline bool First() const { if (data_list.GetSize() > 0) { data_list.First(); return (true); } else return (false); } /*! Positionne le paramètre sur sa dernière donnée. * Dans le cas d'un paramètre de type ParamMultihit, cette méthode * retourne vrai si le paramètre contient au moins une donnée. */ inline bool Last() const { if (data_list.GetSize() > 0) { data_list.Last(); return (true); } else return (false); } /*! Positionne le paramètre sur la dernière suivante. * Dans le cas d'un paramètre de type ParamMultihit, cette méthode * retourne vrai le paramètre n'est pas déjà positionné sur la * dernière valeur. */ inline bool Next() const { if (data_list.GetSize() > 0) { return (data_list.Next() != data_list.Null()); } else return (false); } /*! Positionne le paramètre sur la dernière précédente. * Dans le cas d'un paramètre de type ParamMultihit, cette méthode * retourne vrai le paramètre n'est pas déjà positionné sur la * première valeur. */ inline bool Previous() const { if (data_list.GetSize() > 0) { return (data_list.Previous() != data_list.Null()); } else return (false); } //---------------------------------------------------------------------- // METHODES PROTEGEES //---------------------------------------------------------------------- protected: /*! Retourne la donnée courante dans le liste. La méthode génère * une erreur si aucune donnée n'est présente. Elle est utilisée * par la méthode Get et par les opérateurs de cast. */ inline Data & _Get( ) const { if (data_list.GetSize() > 0) return (*(data_list.Current())); else { GLogWarning ( "ParamMultihit: getting value in empty list"); return (bad_data); } } //---------------------------------------------------------------------- // pour ROOT... public: /*! Définition à usage de ROOT... */ ClassDef(ParamMultihit,0); } ; //====================================================================== #endif */
188  inline operator Int8 () const
189  { return ( (Int8) _Get() ); }
190 
191  /*! Opérateur de cast une donnée de type entier 64 bits non signé./ inline operator U_Int8 () const { return ( (U_Int8) _Get() ); } /*! Opérateur de cast une donnée de type réel 32 bits.*/ inline operator Real4 () const { return ( (Real4) _Get() ); } /*! Opérateur de cast une donnée de type réel 64 bits.*/ inline operator Real8 () const { return ( (Real8) _Get() ); } //---------------------------------------------------------------------- // //---------------------------------------------------------------------- /*! Retourne l'identificateur de type de paramètre.*/ inline u_int TypeId() const { return (typeMultihit); } /*! Retourne le type de paramètre.*/ inline string Type() const { return ("multihit"); } /*! Retourne chaîne de caractères avec le paramètre et son type. */ inline string InfoString() const { return (Name() + " = " + Type() + "[...] (" + data_ptr->Type() + ")"); } /*! Retourne chaîne de caractères avec le paramètre et son type * et la valeur courante. */ inline string ValueString() const { return ( Name() + " {" + GGetString(data_list.Index()+1) + "/" + GGetString(data_list.GetSize()) + "} = " + Get().Text() ) ; } /*! Retourne chaîne de caractères avec le paramètre et son type * et la valeur courante avec son mot d'état. */ inline string ValueFullString() const { return ( Name() + " {" + GGetString(data_list.Index()+1) + "/" + GGetString(data_list.GetSize()) + "} = " + Get().FullText() ) ; } // Retourne chaîne de caractères avec le paramètre et son type // et l'ensemble des données. string DataString() const; //---------------------------------------------------------------------- /*! Retourne chaîne de caractères avec de donnée.*/ inline string GetDataType() const { return (data_ptr->Type()); } /*! Retourne l'identifiant du type de donnée.*/ inline u_int GetDataTypeId() const { return (data_ptr->TypeId()); } //---------------------------------------------------------------------- /*! Remise à zéro du paramètre, ce qui correspond à vider la * liste. */ inline void Reset() { data_list.Empty(); status = 0; } /*! Retourne le nombre de données dans la liste variable. */ inline u_int Dimension() const { return (data_list.GetSize()); } /*! Retourne la donnée courante dans le liste. */ inline const Data & Get( ) const { return ( _Get() ); } // Opérateur []: renvoie la valeur de rang donnée. Data & operator [] (u_int index) const; //---------------------------------------------------------------------- /*! Positionne le paramètre sur sa première donnée. * Dans le cas d'un paramètre de type ParamMultihit, cette méthode * retourne vrai si le paramètre contient au moins une donnée. */ inline bool First() const { if (data_list.GetSize() > 0) { data_list.First(); return (true); } else return (false); } /*! Positionne le paramètre sur sa dernière donnée. * Dans le cas d'un paramètre de type ParamMultihit, cette méthode * retourne vrai si le paramètre contient au moins une donnée. */ inline bool Last() const { if (data_list.GetSize() > 0) { data_list.Last(); return (true); } else return (false); } /*! Positionne le paramètre sur la dernière suivante. * Dans le cas d'un paramètre de type ParamMultihit, cette méthode * retourne vrai le paramètre n'est pas déjà positionné sur la * dernière valeur. */ inline bool Next() const { if (data_list.GetSize() > 0) { return (data_list.Next() != data_list.Null()); } else return (false); } /*! Positionne le paramètre sur la dernière précédente. * Dans le cas d'un paramètre de type ParamMultihit, cette méthode * retourne vrai le paramètre n'est pas déjà positionné sur la * première valeur. */ inline bool Previous() const { if (data_list.GetSize() > 0) { return (data_list.Previous() != data_list.Null()); } else return (false); } //---------------------------------------------------------------------- // METHODES PROTEGEES //---------------------------------------------------------------------- protected: /*! Retourne la donnée courante dans le liste. La méthode génère * une erreur si aucune donnée n'est présente. Elle est utilisée * par la méthode Get et par les opérateurs de cast. */ inline Data & _Get( ) const { if (data_list.GetSize() > 0) return (*(data_list.Current())); else { GLogWarning ( "ParamMultihit: getting value in empty list"); return (bad_data); } } //---------------------------------------------------------------------- // pour ROOT... public: /*! Définition à usage de ROOT... */ ClassDef(ParamMultihit,0); } ; //====================================================================== #endif */
192  inline operator U_Int8 () const
193  { return ( (U_Int8) _Get() ); }
194 
195  /*! Opérateur de cast une donnée de type réel 32 bits.*/
196  inline operator Real4 () const
197  { return ( (Real4) _Get() ); }
198 
199  /*! Opérateur de cast une donnée de type réel 64 bits.*/
200  inline operator Real8 () const
201  { return ( (Real8) _Get() ); }
202 
203 
204 //----------------------------------------------------------------------
205 //
206 //----------------------------------------------------------------------
207 
208  /*! Retourne l'identificateur de type de paramètre.*/
209  inline u_int TypeId() const { return (typeMultihit); }
210 
211  /*! Retourne le type de paramètre.*/
212  inline string Type() const { return ("multihit"); }
213 
214  /*! Retourne chaîne de caractères avec le paramètre et son type.
215  */
216  inline string InfoString() const
217  { return (Name() + " = " + Type()
218  + "[...] (" + data_ptr->Type() + ")"); }
219 
220  /*! Retourne chaîne de caractères avec le paramètre et son type
221  * et la valeur courante.
222  */
223  inline string ValueString() const
224  { return ( Name() + " {" + GGetString(data_list.Index()+1)
225  + "/" + GGetString(data_list.GetSize())
226  + "} = " + Get().Text() ) ; }
227 
228  /*! Retourne chaîne de caractères avec le paramètre et son type
229  * et la valeur courante avec son mot d'état.
230  */
231  inline string ValueFullString() const
232  { return ( Name() + " {" + GGetString(data_list.Index()+1)
233  + "/" + GGetString(data_list.GetSize())
234  + "} = " + Get().FullText() ) ; }
235 
236  // Retourne chaîne de caractères avec le paramètre et son type
237  // et l'ensemble des données.
238  string DataString() const;
239 
240 //----------------------------------------------------------------------
241 
242  /*! Retourne chaîne de caractères avec de donnée.*/
243  inline string GetDataType() const
244  { return (data_ptr->Type()); }
245 
246  /*! Retourne l'identifiant du type de donnée.*/
247  inline u_int GetDataTypeId() const
248  { return (data_ptr->TypeId()); }
249 
250 //----------------------------------------------------------------------
251  /*! Remise à zéro du paramètre, ce qui correspond à vider la
252  * liste.
253  */
254  inline void Reset()
255  { data_list.Empty(); status = 0; }
256 
257  /*! Retourne le nombre de données dans la liste variable.
258  */
259  inline u_int Dimension() const
260  { return (data_list.GetSize()); }
261 
262  /*! Retourne la donnée courante dans le liste.
263  */
264  inline const Data & Get( ) const
265  { return ( _Get() ); }
266 
267  // Opérateur []: renvoie la valeur de rang donnée.
268  Data & operator [] (u_int index) const;
269 
270 //----------------------------------------------------------------------
271 
272  /*! Positionne le paramètre sur sa première donnée.
273  * Dans le cas d'un paramètre de type ParamMultihit, cette méthode
274  * retourne vrai si le paramètre contient au moins une donnée.
275  */
276  inline bool First() const
277  {
278  if (data_list.GetSize() > 0)
279  {
280  data_list.First(); return (true);
281  }
282  else
283  return (false);
284  }
285 
286  /*! Positionne le paramètre sur sa dernière donnée.
287  * Dans le cas d'un paramètre de type ParamMultihit, cette méthode
288  * retourne vrai si le paramètre contient au moins une donnée.
289  */
290  inline bool Last() const
291  {
292  if (data_list.GetSize() > 0)
293  {
294  data_list.Last(); return (true);
295  }
296  else
297  return (false);
298  }
299 
300  /*! Positionne le paramètre sur la dernière suivante.
301  * Dans le cas d'un paramètre de type ParamMultihit, cette méthode
302  * retourne vrai le paramètre n'est pas déjà positionné sur la
303  * dernière valeur.
304  */
305  inline bool Next() const
306  {
307  if (data_list.GetSize() > 0)
308  {
309  return (data_list.Next() != data_list.Null());
310  }
311  else
312  return (false);
313  }
314 
315  /*! Positionne le paramètre sur la dernière précédente.
316  * Dans le cas d'un paramètre de type ParamMultihit, cette méthode
317  * retourne vrai le paramètre n'est pas déjà positionné sur la
318  * première valeur.
319  */
320  inline bool Previous() const
321  {
322  if (data_list.GetSize() > 0)
323  {
324  return (data_list.Previous() != data_list.Null());
325  }
326  else
327  return (false);
328  }
329 
330 //----------------------------------------------------------------------
331 // METHODES PROTEGEES
332 //----------------------------------------------------------------------
333 
334  protected:
335 
336  /*! Retourne la donnée courante dans le liste. La méthode génère
337  * une erreur si aucune donnée n'est présente. Elle est utilisée * par la méthode Get et par les opérateurs de cast. */ inline Data & _Get( ) const { if (data_list.GetSize() > 0) return (*(data_list.Current())); else { GLogWarning ( "ParamMultihit: getting value in empty list"); return (bad_data); } } //---------------------------------------------------------------------- // pour ROOT... public: /*! Définition à usage de ROOT... */ ClassDef(ParamMultihit,0); } ; //====================================================================== #endif
338  * par la méthode Get et par les opérateurs de cast.
339  */
340  inline Data & _Get( ) const
341  {
342  if (data_list.GetSize() > 0)
343  return (*(data_list.Current()));
344  else
345  {
346  GLogWarning ( "ParamMultihit: getting value in empty list");
347  return (bad_data);
348  }
349  }
350 
351 
352 //----------------------------------------------------------------------
353 // pour ROOT...
354  public:
355  /*! Définition à usage de ROOT... */
357 } ;
358 
359 
360 //======================================================================
361 
362 #endif
double Real8
Définition du type réel 32 bits.
Definition: EventCommon.hh:68
float Real4
Définition du type réel 32 bits.
Definition: EventCommon.hh:62
virtual ~ParamMultihit()
Definition: ParamMultihit.cpp:76
bool Last() const
Definition: ParamMultihit.hh:290
u_int Dimension() const
Definition: ParamMultihit.hh:259
bool Next() const
Definition: ParamMultihit.hh:305
DataBad & bad_data
Definition: DataBad.cpp:51
virtual string Text() const
Definition: Data.hh:284
virtual u_int TypeId() const =0
string Type() const
Definition: ParamMultihit.hh:212
ParamMultihit & operator=(const ParamMultihit &par)
Definition: ParamMultihit.cpp:57
#define PARAM_NONAME
Nom de paramètre non spécifié
Definition: Param.hh:17
unsigned short U_Int2
Définition du type entier 16 bits non signé
Definition: EventCommon.hh:32
string ValueFullString() const
Definition: ParamMultihit.hh:231
u_int TypeId() const
Definition: ParamMultihit.hh:209
Definition: ParamMultihit.hh:35
virtual string Type() const =0
short Int2
Définition du type entier 16 bits.
Definition: EventCommon.hh:26
bool First() const
Definition: ParamMultihit.hh:276
u_int GetDataTypeId() const
Definition: ParamMultihit.hh:247
string GetDataType() const
Definition: ParamMultihit.hh:243
Definition: Param.hh:83
ULong64_t U_Int8
Définition du type entier 64 bits non signé
Definition: EventCommon.hh:56
void Reset()
Definition: ParamMultihit.hh:254
GObject(ParamMultihit)
Data & operator[](u_int index) const
Definition: ParamMultihit.cpp:93
string DataString() const
Definition: ParamMultihit.cpp:111
string ValueString() const
Definition: ParamMultihit.hh:223
ParamMultihit(const string &par_name="unnamed")
Definition: ParamMultihit.cpp:22
string InfoString() const
Definition: ParamMultihit.hh:216
const Data & Get() const
Definition: ParamMultihit.hh:264
bool Previous() const
Definition: ParamMultihit.hh:320
ClassDef(ParamMultihit, 0)
Definition: Data.hh:153
int Int4
Définition du type entier 32 bits.
Definition: EventCommon.hh:38
Data * data_ptr
Pointeur sur une donnée pour information du type du paramètre.
Definition: ParamMultihit.hh:44
unsigned int U_Int4
Définition du type entier 32 bits non signé
Definition: EventCommon.hh:44
u_int status
Mot d&#39;état du paramètre (non implémenté)
Definition: Param.hh:100
Long64_t Int8
Définition du type entier 64 bits.
Definition: EventCommon.hh:50
Data & _Get() const
Definition: ParamMultihit.hh:340
virtual string FullText() const
Definition: Data.hh:292
GListT< Data > data_list
Liste des données
Definition: ParamMultihit.hh:45