Analysis  version 7.0 - august 2014
EventManager.hh
Go to the documentation of this file.
1 //======================================================================
2 /*! \file EventManager.hh
3  *
4  * Déclaration des méthodes de la classe EventManager qui est un
5  * gestionnaire de base d'une structure d'événement.
6  */
7 //======================================================================
8 
9 
10 #ifndef EVENT_MANAGER_HH
11 #define EVENT_MANAGER_HH
12 
13 #include "Event.hh"
14 #include "ParamTypes.hh"
15 #include "TreeList.hh"
16 #include "SpectrumList.hh"
17 #include "FilterList.hh"
18 #include "FilterTypes.hh"
19 
20 // extensions bibliothéque ROOT
21 #include "RContourList.hh"
22 
23 //======================================================================
24 /*! \class EventManager
25  *
26  * Cette classe décrit un gestionnaire d'événements: une structure
27  * d'événement, une liste de spectres associés, etc... C'est la classe
28  * centrale d'analyse, qui assure la cohérence entre les paramètres
29  * de l'événement, les spectres et les filtres.
30  *
31  * Il s'agit d'une classe de base pour les classes d'analyse, qui
32  * fournit les méthodes pour:
33  * - la création de la structure d'événement etla gestion des paramètres
34  * - la création des spectres associés aux paramètres, la gestion de ces
35  * spectres et des familles de spectres
36  * - la mise à jour des spectres
37  * - la gestion des filtres et des contours
38  * - ...
39  *
40  * \par Spectres et familles
41  *
42  * - Les spectres peuvent être protégés contre la suppression et contre
43  * la sauvegarde (voir les fonctions \ref SetSpectrumDeleteProtection,
44  * et SetSpectrumSaveProtection ou les fonctions correspondantes de
45  * la classe \ref Spectrum).
46  * - Les familles de spectres sont ajoutées automatiquement lors de
47  * la création des spectres.
48  *
49  * \par Filtres et contours
50  *
51  * - Un contour ne peut pas être supprimé s'il est utilisé par un filtre.
52  * - Cela peut interdire le remplacement d'une liste par une nouvelle
53  * liste lue dans un fichier
54  * - losrqu'un filtre est retiré, tous les spectres qui étaient conditionnés * par ce filtre ne sont plus conditionnés. * */ class EventManager { //---------------------------------------------------------------------- /*! \object_doc */ GObjectV(EventManager); //---------------------------------------------------------------------- protected: Event event; ///< Structure physique de l'événement TreeList tree_list; ///< Liste des arbres de l'analyse SpectrumList spec_list; ///< Liste des spectres de l'analyse FilterList filter_list; ///< Liste des filtres de l'analyse //---------------------------------------------------------------------- // CONSTRUCTEUR / AFFECTATION / DESTRUCTEUR //---------------------------------------------------------------------- public: // Constructeur par défaut. EventManager ( ); protected: // Constructeur de recopie. EventManager ( const EventManager & ); public: // Destructeur virtual ~EventManager ( ); //---------------------------------------------------------------------- // Retourne le nombre d'objets dans la structure. u_int ParamNumber ( ) const; u_int SpecNumber ( ) const; u_int TreeNumber ( ) const; u_int ContourNumber ( ) const; u_int FilterNumber ( ) const; // Retourne les pointeurs sur les structures const Event * GetEventPtr ( ) const; const TreeList * GetTreeListPtr ( ) const; const SpectrumList * GetSpectrumListPtr ( ) const; const FilterList * GetFilterListPtr ( ) const; const RContourList * GetContourListPtr ( ) const; Event * GetEventPtr ( ); TreeList * GetTreeListPtr ( ); SpectrumList * GetSpectrumListPtr ( ); FilterList * GetFilterListPtr ( ); RContourList * GetContourListPtr ( ); //---------------------------------------------------------------------- // INFOS SUR LES STRUCTURES //---------------------------------------------------------------------- // paramètres virtual const Param * GetParamPtr ( const u_int n ) const; virtual const Param * GetParamPtr ( const string &par_name ) const; virtual string GetParamName ( const u_int n ) const; virtual int GetParamIndex ( const string &par_name ) const; virtual int GetParamDimension ( const u_int n ) const; virtual int GetParamDimension ( const string &par_name ) const; // arbres virtual TreeInfo * GetTreePtr ( const u_int t_num ) const; virtual TreeInfo * GetTreePtr ( const string & t_name ) const; virtual int GetTreeIndex ( const string & t_name ) const; // spectres (et histo associé) virtual Spectrum * GetSpectrumPtr ( const u_int num ) const; virtual Spectrum * GetSpectrumPtr ( const string & spec_name ) const; virtual int GetSpectrumIndex ( const string & spec_name ) const; virtual string GetSpectrumName ( const u_int spec_num ) const; TH1 * GetHistoPtr ( const u_int num ) const; TH1 * GetHistoPtr ( const string & spec_name ) const; // contours virtual RContour * GetContourPtr ( const string &cname ) const; virtual RContour * GetContourPtr ( const u_int cnum ) const; virtual int GetContourIndex ( const string &cname ) const; virtual string GetContourName ( const u_int cnum ) const; // filtres virtual Filter * GetFilterPtr ( const string &fname ) const; virtual Filter * GetFilterPtr ( const u_int fnum ) const; virtual int GetFilterIndex ( const string &fname ) const; virtual string GetFilterName ( const u_int fnum ) const; //---------------------------------------------------------------------- // PARAMETRES //---------------------------------------------------------------------- // Ajout d'un paramètre virtual int AddParam ( const Param &par ); virtual int AddParamSingle ( const string &par_name, const Data &d = DataUI2(0) ); virtual int AddParamArray ( const string &par_name, const u_int dim, const Data &d = DataUI2(0) ); virtual int AddParamMultihit ( const string &par_name, const Data &d = DataUI2(0) ); // valeur par défaut d'un paramètre const Data & GetParamDefaultValue ( const u_int num ); const Data & GetParamDefaultValue ( const string &par_name ); bool SetParamDefaultValue ( const u_int num, const Data &d ); bool SetParamDefaultValue ( const string &par_name, const Data &d ); // retourne la valeur d'un paramètre de l'événement. const Data & GetParam ( const u_int num ); const Data & GetParam ( const string &par_name ); // retourne la valeur d'un paramètre multiple de l'événement. const Data & GetParam ( const u_int num, const u_int index ); const Data & GetParam ( const string &par_name, const u_int index ); // mise à valeur un paramètre de l'événement. template < class T > const Data & SetParam( const u_int num, const T &val ); template < class T > const Data & SetParam( const string &par_name, const T &val ); // mise à valeur un paramètre multiple de l'événement. template < class T > const Data & SetParam( const u_int num, const u_int index, const T &val ); template < class T > const Data & SetParam( const string &par_name, const u_int index, const T &val ); //---------------------------------------------------------------------- // ARBRES //---------------------------------------------------------------------- virtual int AddTree ( const string & t_name, const string &f_name = "", const UInt_t n_max = 0 ); virtual int InitTree ( const string & t_name ); virtual int InitTree ( const int t_num = -1 ); virtual bool RemoveTree ( const TreeInfo * t_ptr ); virtual bool RemoveTree ( const u_int t_num ); virtual bool RemoveTree ( const string & t_name ); virtual void RemoveAllTrees ( ); virtual Int_t SetTreeFile ( const int t_num, const string &f_name, const UInt_t n_max = 0 ); virtual string GetTreeFile ( const int t_num ) const; virtual string GetTreeFileName ( const int t_num ) const; virtual UInt_t GetTreeFileMode ( const int t_num ) const; virtual Int_t SetTreeFile ( const string &t_name, const string &f_name, const UInt_t n_max = 0 ); virtual string GetTreeFile ( const string &t_name ) const; virtual string GetTreeFileName ( const string &t_name ) const; virtual UInt_t GetTreeFileMode ( const string &t_name ) const; virtual Bool_t AddTreeParam ( const int t_num, const Param *p_ptr ); virtual Bool_t AddTreeParam ( const int t_num, const string &p_name ); virtual Bool_t AddTreeParam ( const int t_num, const Int_t p_num ); virtual Int_t AddTreeParamRange ( const int t_num, const Int_t p1, const Int_t p2 ); virtual Int_t AddTreeAllParam ( const int t_num ); virtual Bool_t AddTreeParam ( const string &t_name, const Param *p_ptr ); virtual Bool_t AddTreeParam ( const string &t_name, const string &p_name ); virtual Bool_t AddTreeParam ( const string &t_name, const Int_t p_num ); virtual Int_t AddTreeParamRange ( const string &t_name, const Int_t p1, const Int_t p2 ); virtual Int_t AddTreeAllParam ( const string &t_name ); virtual void OpenTreeList ( const Int_t m = -1 ) const; virtual void CloseTreeList ( const Int_t m = -1 ) const; virtual Bool_t OpenTree ( const int t_num ) const; virtual Bool_t OpenTree ( const string &t_name ) const; virtual Bool_t CloseTree ( const int t_num ) const; virtual Bool_t CloseTree ( const string &t_name ) const; virtual Bool_t IsTreeOpen ( const int t_num ) const; virtual Bool_t IsTreeOpen ( const string &t_name ) const; virtual Bool_t IsTreeClosed ( const int t_num ) const; virtual Bool_t IsTreeClosed ( const string &t_name ) const; // démmarrage / arrêt des arbres bool StartTree ( const int t_num = -1 ) const; bool StopTree ( const int t_num = -1 ) const; bool SuspendTree ( const int t_num = -1 ) const; bool StartTree ( const string & t_name ) const; bool StopTree ( const string & t_name ) const; bool SuspendTree ( const string & t_name ) const; //---------------------------------------------------------------------- virtual int LoadTreeList ( const string &filename, const bool append = true ); virtual int SaveTreeList ( const string &filename ) const; //---------------------------------------------------------------------- // SPECTRES ET FAMILLES //---------------------------------------------------------------------- // ajout d'un spectre Mono int AddSpecMono ( const string & spec_name, const u_int par_num, const u_int nx, const double x1, const double x2, const string & family_name = "" ); // ajout d'un spectre Mono int AddSpecMono ( const string & spec_name, const string & par_name, const u_int nx, const double x1, const double x2, const string & family_name = "" ); // ajout d'un spectre Bidim int AddSpecBidim ( const string & spec_name, const u_int par_num_x, const u_int nx, const double x1, const double x2, const u_int par_num_y, const u_int ny, const double y1, const double y2, const string & family_name = "" ); // ajout d'un spectre Bidim int AddSpecBidim ( const string & spec_name, const string & par_name_x, const u_int nx, const double x1, const double x2, const string & par_name_y, const u_int ny, const double y1, const double y2, const string & family_name = "" ); // ajout d'un spectre Tridim int AddSpecTridim ( const string & spec_name, const u_int par_num_x, const u_int nx, const double x1, const double x2, const u_int par_num_y, const u_int ny, const double y1, const double y2, const u_int par_num_z, const u_int nz, const double z1, const double z2, const string & family_name = "" ); // ajout d'un spectre Tridim int AddSpecTridim ( const string & spec_name, const string & par_name_x, const u_int nx, const double x1, const double x2, const string & par_name_y, const u_int ny, const double y1, const double y2, const string & par_name_z, const u_int nz, const double z1, const double z2, const string & family_name = "" ); // ajout d'un spectre Trace int AddSpecDistrib ( const string & spec_name, const u_int par_num, const double x1, const double x2, const string & family_name = "" ); // ajout d'un spectre Trace int AddSpecDistrib ( const string & spec_name, const string & par_name, const double x1, const double x2, const string & family_name = "" ); // ajout d'un spectre Trace int AddSpecTrace ( const string & spec_name, const u_int par_num, const double x1, const double x2, const string & family_name = "" ); // ajout d'un spectre Trace int AddSpecTrace ( const string & spec_name, const string & par_name, const double x1, const double x2, const string & family_name = "" ); // ajout d'un spectre Cumul int AddSpecCumul ( const string & spec_name, const u_int par_num_x, const double x1, const double x2, const u_int ny, const double y1, const double y2, const string & family_name = "" ); // ajout d'un spectre Cumul int AddSpecCumul ( const string & spec_name, const string & par_name_x, const double x1, const double x2, const u_int ny, const double y1, const double y2, const string & family_name = "" ); // ajout d'un spectre pour histogramme xterne int AddSpecHisto ( TH1 & h, const string & family_name = "" ); // ajout d'un spectre Externe int AddSpecExtern ( const string & h_name, const string & f_name, const string & s_name = "", const string & family_name = "" ); // ajout d'un spectre User 1D int AddSpecUser1D ( const string & spec_name, const u_int nx, const double x1, const double x2, const string & family_name = "" ); // ajout d'un spectre User 2D int AddSpecUser2D ( const string & spec_name, const u_int nx, const double x1, const double x2, const u_int ny, const double y1, const double y2, const string & family_name = "" ); // ajout d'un spectre normalise int AddSpecNorm ( const string & spec_name, const string & oper_name, const double norm = 1., const string & family_name = "" ); // ajout d'un spectre racine carree int AddSpecSqrt ( const string & spec_name, const string & oper_name, const double c0 = 1., const double c1 = 0., const string & family_name = "" ); // ajout d'un spectre inverse int AddSpecInv ( const string & spec_name, const string & oper_name, const double c0 = 1., const double c1 = 0., const double c2 = 0., const string & family_name = "" ); // ajout d'un spectre somme int AddSpecSum ( const string & spec_name, const string & oper0_name, const string & oper1_name, const double c0 = 1., const double c1 = 1., const double c2 = 0., const string & family_name = "" ); // ajout d'un spectre produit int AddSpecProd ( const string & spec_name, const string & oper0_name, const string & oper1_name, const double c0 = 1., const double c1 = 1., const string & family_name = "" ); // ajout d'un spectre rapprot int AddSpecDiv ( const string & spec_name, const string & oper0_name, const string & oper1_name, const double c0 = 1., const double c1 = 1., const double c2 = 0., const string & family_name = "" ); // ajout d'un spectre somme int AddSpecSumN ( const string & spec_name, const Int_t oper_num, Spectrum ** oper_tab, const string & family_name = "" ); int AddSpecSumN ( const string & spec_name, const string & oper_names, const string & family_name = "" ); // ajout d'un spectre de cumul d'histogrammes int AddSpecHSum ( const string & spec_name, const string & src_name, const string & family_name = "" ); int AddSpecHSum ( const string & spec_name, const Int_t src_num, const string & family_name = "" ); int AddSpecHSum ( const string & spec_name, const TH1 * src_histo, const string & family_name = "" ); int AddSpecHMean ( const string & spec_name, const string & src_name, const string & family_name = "" ); int AddSpecHMean ( const string & spec_name, const Int_t src_num, const string & family_name = "" ); int AddSpecHMean ( const string & spec_name, const TH1 * src_histo, const string & family_name = "" ); // ajout d'un spectre HCumul int AddSpecHCumul ( const string & spec_name, const string & src_name, const u_int ny, const double y1, const double y2, const string & family_name = "" ); int AddSpecHCumul ( const string & spec_name, const Int_t src_num, const u_int ny, const double y1, const double y2, const string & family_name = "" ); int AddSpecHCumul ( const string & spec_name, const TH1 * src_histo, const u_int ny, const double y1, const double y2, const string & family_name = "" ); // mise a valeur et incrementation manuelle des spectres utilisateur 1D virtual bool User1DIncrement ( const string & spec_name, const Double_t x, const Double_t incr = 1. ); virtual bool User1DSetValue ( const string & spec_name, const Double_t x, const Double_t val ); virtual bool User1DIncrement ( const u_int spec_num, const Double_t x, const Double_t incr = 1. ); virtual bool User1DSetValue ( const u_int spec_num, const Double_t x, const Double_t val ); virtual bool User1DIncrement ( const string & spec_name, const Int_t ix, const Double_t incr = 1. ); virtual bool User1DSetValue ( const string & spec_name, const Int_t ix, const Double_t val ); virtual bool User1DIncrement ( const u_int spec_num, const Int_t ix, const Double_t incr = 1. ); virtual bool User1DSetValue ( const u_int spec_num, const Int_t ix, const Double_t val ); // mise a valeur et incrementation manuelle des spectres utilisateur 2D virtual bool User2DIncrement ( const string & spec_name, const Double_t x, const Double_t y, const Double_t incr = 1. ); virtual bool User2DSetValue ( const string & spec_name, const Double_t x, const Double_t y, const Double_t val ); virtual bool User2DIncrement ( const u_int spec_num, const Double_t x, const Double_t y, const Double_t incr = 1. ); virtual bool User2DSetValue ( const u_int spec_num, const Double_t x, const Double_t y, const Double_t val ); virtual bool User2DIncrement ( const string & spec_name, const Int_t ix, const Int_t iy, const Double_t incr = 1. ); virtual bool User2DSetValue ( const string & spec_name, const Int_t ix, const Int_t iy, const Double_t val ); virtual bool User2DIncrement ( const u_int spec_num, const Int_t ix, const Int_t iy, const Double_t incr = 1. ); virtual bool User2DSetValue ( const u_int spec_num, const Int_t ix, const Int_t iy, const Double_t val ); //---------------------------------------------------------------------- // suppression d'un spectre virtual bool RemoveSpectrum ( const Spectrum * spec_ptr, const bool force = true ); virtual bool RemoveSpectrum ( const u_int spec_num, const bool force = true ); virtual bool RemoveSpectrum ( const string & spec_name, const bool force = true ); virtual void RemoveAllSpectra ( const bool force = false ); // modification des protections contre la sauvegarde et la suppression virtual bool SetSpectrumSaveProtection ( Spectrum * spec_ptr, const bool b = true ); virtual bool SetSpectrumSaveProtection ( const string & spec_name, const bool b = true ); virtual bool SetSpectrumSaveProtection ( const u_int spec_num, const bool b = true ); virtual bool SetSpectrumDeleteProtection ( Spectrum * spec_ptr, const bool b = true ); virtual bool SetSpectrumDeleteProtection ( const string & spec_name, const bool b = true ); virtual bool SetSpectrumDeleteProtection ( const u_int spec_num, const bool b = true ); // changement de nom d'un spectre virtual bool RenameSpectrum ( const u_int num, const string &name, const string &name_x = "", const string &name_y = "", const string &name_z = "" ); virtual bool RenameSpectrum ( const string & spec_name, const string &name, const string &name_x = "", const string &name_y = "", const string &name_z = "" ); //---------------------------------------------------------------------- // démmarrage / arrêt des spectres bool StartSpectrum ( const int num = -1 ) const; bool StopSpectrum ( const int num = -1 ) const; bool SuspendSpectrum ( const int num = -1 ) const; bool ResetSpectrum ( const int num = -1 ) const; bool StartSpectrum ( const string & spec_name ) const; bool StopSpectrum ( const string & spec_name ) const; bool SuspendSpectrum ( const string & spec_name ) const; bool ResetSpectrum ( const string & spec_name ) const; //---------------------------------------------------------------------- // incrémentation automatique des spectres (et des arbres) virtual void IncrementSpectra ( ) const; //---------------------------------------------------------------------- bool SetSpectrumFamily ( const string & spec_name, const string & family_name ); bool SetSpectrumFamily ( const u_int spec_num, const string & family_name ); bool ResetSpectrumFamily ( const string & spec_name ); bool ResetSpectrumFamily ( const u_int spec_num ); // demarrage/arrêt/suspension des familles bool StartFamily ( const string & family_name ); bool StopFamily ( const string & family_name ); bool SuspendFamily ( const string & family_name ); bool ResetFamily ( const string & family_name ); //---------------------------------------------------------------------- // dump de l'événement courant virtual void DumpEvent ( const bool all = false, const u_int pmin = 0, const u_int pmax = 0 ) const; virtual void DumpEvent ( const string &file_name, const bool all = false, const u_int pmin = 0, const u_int pmax = 0 ) const; virtual void DumpEvent ( ostream &os, const bool all = false, const u_int pmin = 0, const u_int pmax = 0 ) const; // Ecriture de la structure d'événement virtual void PrintEvent ( ) const; virtual void PrintEvent ( const string &file_name ) const; virtual void PrintEvent ( ostream &os ) const; // Ecriture de la liste de spectres virtual void PrintSpecList ( ) const; virtual void PrintSpecList ( const string & ) const; virtual void PrintSpecList ( ostream &os ) const; // écriture des familles virtual void PrintFamily ( const string & family_name ); virtual void PrintFamily ( ostream &os ,const string & family_name ); virtual void PrintFamily ( const string & file_name, const string & family_name ); //---------------------------------------------------------------------- virtual int LoadSpectraList ( const string &filename, const bool append = true ); virtual int SaveSpectraList ( const string &filename ) const; virtual int SaveSelectedSpectra ( const string &filename ) const; // sauvegarde des histogrammes ROOT. virtual int SaveHistograms ( const string & file_name ) const; virtual int SaveSelectedHistograms ( const string & file_name ) const; virtual int SaveFamilyHistograms ( const string & file_name, const string & family_name ) const; //---------------------------------------------------------------------- // FILTRES ET CONTOURS //---------------------------------------------------------------------- // Rejet d'un événement (aucun spectre/arbre incrémenté) virtual void RejectEvent ( ); // traitement des contours virtual int AddContour ( const string &ct_name, RContourBase &ct ); virtual int AddContour ( RContour &ct ); virtual bool RemoveContour ( const string &ct_name, const bool force = true ); virtual bool RemoveContour ( const int ct_num, const bool force = true ); virtual bool RemoveContour ( const RContour *ct, const bool force = true ); virtual void RemoveAllContours ( ); virtual int LoadContourList ( const string &filename, const bool append = true ); virtual int SaveContourList ( const string &filename ) const; // traitement des filtres virtual int AddFilter ( const string & f_name, FilterBase &f ); virtual int AddFilter ( Filter * f ); virtual bool RemoveFilter ( Filter * f, const bool force = true ); virtual bool RemoveFilter ( const string & f_name, const bool force = true ); virtual bool RemoveFilter ( const int f_num, const bool force = true ); virtual void RemoveAllFilters ( ); virtual int AddFilterFalse ( const char *f_name ); virtual int AddFilterTrue ( const char *f_name ); virtual int AddFilterNot ( const char *f_name, const char *fnot_name ); virtual int AddFilterAnd ( const char *f_name, const char *f1_name, const char *f2_name ); virtual int AddFilterOr ( const char *f_name, const char *f1_name, const char *f2_name ); virtual int AddFilterXOr ( const char *f_name, const char *f1_name, const char *f2_name ); virtual int AddFilterMultiAnd ( const char *f_name, const char *fl_names ); virtual int AddFilterMultiOr ( const char *f_name, const char *fl_names ); virtual int AddFilterGate ( const char *f_name, const char *p_name, const double pmin, const double pmax, const int mode = filterMultiParAnd ); virtual int AddFilterContour ( const char *f_name, const char *c_name, const char *x_name, const char *y_name, const bool inv = false, const int mode = filterMultiParAnd ); virtual int AddFilterContour ( const char *f_name, const char *c_name, const char *x_name, const bool inv = false, const int mode = filterMultiParAnd ); virtual int LoadFilterList ( const string &filename, const bool append = true ); virtual int SaveFilterList ( const string &filename ) const; // application d'un filtre à un spectre / une famille virtual bool FilterSpectrum ( const int sp_num, const string &f_name = "" ); virtual bool FilterSpectrum ( const string &sp_name, const string &f_name = "" ); virtual bool FilterFamily ( const string &family_name, const string &f_name = "" ); virtual bool FilterTree ( const int t_num, const string &f_name = "" ); virtual bool FilterTree ( const string &t_name, const string &f_name = "" ); virtual bool CheckFilter ( const string &f_name ); virtual bool CheckFilter ( const u_int f_num ); virtual bool CheckFilter ( const Filter *f ); //---------------------------------------------------------------------- // pour ROOT... public: /*! Définition à usage de ROOT... */ ClassDef(EventManager,0); }; //====================================================================== // METHODES INLINE //====================================================================== /*! Retourne le nombre total de paramètres de la structure d'événement.*/ inline u_int EventManager::ParamNumber () const { return (event.GetSize()); } /*! Retourne le nombre de spectres définis.*/ inline u_int EventManager::SpecNumber () const { return (spec_list.GetSize()); } /*! Retourne le nombre d'arbres définis.*/ inline u_int EventManager::TreeNumber () const { return (tree_list.GetSize()); } /*! Retourne le nombre de contours du gestionnaire.*/ inline u_int EventManager::ContourNumber () const { return ( ((FilterList *) &filter_list)->GetContourListPtr()->GetSize()); } /*! Retourne le nombre de filtres du gestionnaire.*/ inline u_int EventManager::FilterNumber () const { return (filter_list.GetSize()); } //---------------------------------------------------------------------- /*! Retourne le pointeur sur la structure d'événement.*/ inline const Event * EventManager::GetEventPtr() const { return (&event); } /*! Retourne le pointeur sur la liste d'arbres.*/ inline const TreeList * EventManager::GetTreeListPtr() const { return (&tree_list); } /*! Retourne le pointeur sur la liste de spectres.*/ inline const SpectrumList * EventManager::GetSpectrumListPtr() const { return (&spec_list); } /*! Retourne le pointeur sur la liste de filtres.*/ inline const FilterList * EventManager::GetFilterListPtr() const { return (&filter_list); } /*! Retourne le pointeur sur la liste de contours (de la liste de filtres).*/ inline const RContourList * EventManager::GetContourListPtr() const { return (filter_list.GetContourListPtr()); } /*! Retourne le pointeur sur la structure d'événement.*/ inline Event * EventManager::GetEventPtr() { return (&event); } /*! Retourne le pointeur sur la liste d'arbres.*/ inline TreeList * EventManager::GetTreeListPtr() { return (&tree_list); } /*! Retourne le pointeur sur la liste de spectres.*/ inline SpectrumList * EventManager::GetSpectrumListPtr() { return (&spec_list); } /*! Retourne le pointeur sur la liste de filtres.*/ inline FilterList * EventManager::GetFilterListPtr() { return (&filter_list); } /*! Retourne le pointeur sur la liste de contours (de la liste de filtres).*/ inline RContourList * EventManager::GetContourListPtr() { return (filter_list.GetContourListPtr()); } //---------------------------------------------------------------------- /*! Rejet d'un événement: tous les spectres sont suspendus.*/ inline void EventManager::RejectEvent ( ) { spec_list.SuspendList(); tree_list.SuspendList(); } //---------------------------------------------------------------------- // PARAMETRES /*! Ajoute un paramètre utilisateur de type \b single. * La fonction retourne le numéro du paramètre dans la structure d'événement, * où une valeur négative en cas d'erreur. * \param par_name nom du paramètre * \param d donnée qui fixe le type numérique associé */ inline int EventManager::AddParamSingle ( const string &par_name, const Data &d ) { return (AddParam ( ParamSingle (par_name,d) )); } /*! Ajoute un paramètre utilisateur de type \b array (tableau). * La fonction retourne le numéro du paramètre dans la structure d'événement, * où une valeur négative en cas d'erreur. * \param par_name nom du paramètre * \param dim dimension du paramètre tableau * \param d donnée qui fixe le type numérique associé */ inline int EventManager::AddParamArray ( const string &par_name, const u_int dim, const Data &d ) { return (AddParam ( ParamArray (par_name, dim, d) )); } /*! Ajoute un paramètre utilisateur de type \b multihit. * La fonction retourne le numéro du paramètre dans la structure d'événement, * où une valeur négative en cas d'erreur. * \param par_name nom du paramètre * \param d donnée qui fixe le type numérique associé */ inline int EventManager::AddParamMultihit ( const string &par_name, const Data &d ) { return (AddParam ( ParamMultihit (par_name, d) )); } /*! Renvoie le pointeur d'un paramètre identifié par son nom. * Si le paramètre n'existe pas, un pointeur NULL est retournée. * \param n numéro du paramètre */ inline const Param * EventManager::GetParamPtr ( const u_int n ) const { return (event.GetParamPtr ( n )); } /*! Renvoie le pointeur d'un paramètre identifié par son numéro. * Si le paramètre n'existe pas, un pointeur NULL est retournée. * \param par_name nom du paramètre */ inline const Param * EventManager::GetParamPtr ( const string &par_name ) const { return (event.GetParamPtr ( par_name )); } /*! Renvoie le nom d'un paramètre identifié par son numéro. * Si le paramètre n'existe pas, une chaîne vide est retournée. * \param n numéro du paramètre */ inline string EventManager::GetParamName ( const u_int n ) const { return (event.GetParamName ( n )); } /*! Renvoie le numéro d'un paramètre identifié par son nom. * Si le paramètre n'existe pas, la valeur EVENT_UNKNOWN_PARAM est * retournée. * \param par_name nom du paramètre */ inline int EventManager::GetParamIndex ( const string &par_name ) const { return (event.GetParamIndex ( par_name )); } /*! Retourne la dimension d'un paramètre, ou Event::undefinedParam si le * paramètre n'est pas défini. * \param n numéro du paramètre */ inline int EventManager::GetParamDimension ( const u_int n ) const { return (event.GetParamDimension ( n )); } /*! Retourne la dimension d'un paramètre, ou Event::undefinedParam si le * paramètre n'est pas défini. * \param par_name nom du paramètre */ inline int EventManager::GetParamDimension ( const string &par_name ) const { return (event.GetParamDimension ( par_name )); } /*! Méthode patron qui sert à l'affectation d'un paramètre utilisateur * à partir d'une valeur donnée par un type de base ou une instance * de type Data. * Dans le cas d'un paramètre de type ParamArray, c'est la donnée * courante du tableau qui est affectée. * Dans le cas d'un paramètre de type ParamMultihit, une nouvelle * donnée est ajoutée en fin de liste. * Le type en retour est une référence sur l'instance Data associée au * paramètre (après affectation), avec le qualificatif const car la donnée * en retour (par référence) ne doit pas être modifiée directement. * \param num numéro de paramètre * \param val valeur à affecter (Data ou type de base) */ template < class T > const Data & EventManager::SetParam( const u_int num, const T &val ) { if (num < event.GetSize()) return (event[num] = val); else { GLogWarning ( "GetParam(): parameter number " + GGetString(num) + " over event size [0:" + GGetString(event.GetSize()) + "]"); return (bad_data); } } /*! Méthode patron qui sert à l'affectation d'un paramètre utilisateur * à partir d'une valeur donnée par un type de base ou une instance * de type Data. * Dans le cas d'un paramètre de type ParamArray, c'est la donnée * courante du tableau qui est affectée. * Dans le cas d'un paramètre de type ParamMultihit, une nouvelle * donnée est ajoutée en fin de liste. * Le type en retour est une référence sur l'instance Data associée au * paramètre (après affectation), avec le qualificatif const car la donnée * en retour (par référence) ne doit pas être modifiée directement. * \param par_name nom du paramètre * \param val valeur à affecter (Data ou type de base) */ template < class T > const Data & EventManager::SetParam( const string &par_name, const T &val ) { u_int num = event.GetParamIndex(par_name); if (num < event.GetSize()) return (SetParam(num,val)); else { GLogWarning ( "GetParam(): no parameter " + par_name); return (bad_data); } } /*! Méthode patron qui sert à l'affectation d'un paramètre utilisateur * à partir d'une valeur donnée par un type de base ou une instance * de type Data. * Le type en retour est une référence sur l'instance Data associée au * paramètre (après affectation), avec le qualificatif const car la donnée * en retour (par référence) ne doit pas être modifiée directement. * Dans le cas d'un paramètre de type ParamMultihit, cette méthode ne * doit être appelée que pour modifier une donnée déjà dans la liste. * Pour ajouter une nouvelle donnée à la liste il faut appeler la * méthode sans spécification d'index. * \param num numéro de paramètre * \param index index de la valeur à affecter dans le paramètre * \param val valeur à affecter (Data ou type de base) */ template < class T > const Data & EventManager::SetParam( const u_int num, const u_int index, const T &val ) { if (num < event.GetSize()) { Param &p = event[num]; if (index < p.Dimension()) { //cerr << "EventManager::SetParam: p[index] = val" << endl; return (p[index] = val); } else { return (bad_data); } } else { GLogWarning ( "GetParam(): parameter number " + GGetString(num) + " over event size [0:" + GGetString(event.GetSize()) + "]"); return (bad_data); } } /*! Méthode patron qui sert à l'affectation d'un paramètre utilisateur * à partir d'une valeur donnée par un type de base ou une instance * de type Data. * Le type en retour est une référence sur l'instance Data associée au * paramètre (après affectation), avec le qualificatif const car la donnée * en retour (par référence) ne doit pas être modifiée directement. * Dans le cas d'un paramètre de type ParamMultihit, cette méthode ne * doit être appelée que pour modifier une donnée déjà dans la liste. * Pour ajouter une nouvelle donnée à la liste il faut appeler la * méthode sans spécification d'index. * \param par_name nom du paramètre * \param index index de la valeur à affecter dans le paramètre * \param val valeur à affecter (Data ou type de base) */ template < class T > const Data & EventManager::SetParam ( const string &par_name, const u_int index, const T &val ) { u_int num = event.GetParamIndex(par_name); if (num < event.GetSize()) return (SetParam(num,val)); else { GLogWarning ( "GetParam(): no parameter " + par_name); return (bad_data); } } //---------------------------------------------------------------------- // ARBRES /*! Retourne le pointeur sur un arbre à partir de son numéro dans * la liste. Si l'arbre n'existe pas, retourne NULL. * \param t_num numéro de l'arbre recherché */ inline TreeInfo * EventManager::GetTreePtr ( const u_int t_num ) const { return ( tree_list.GetTreePtr (t_num) ); } /*! Retourne le pointeur sur un arbre à partir de son nom dans * la liste. Si l'arbre n'existe pas, retourne NULL. * \param t_name nom de l'arbre recherché */ inline TreeInfo * EventManager::GetTreePtr ( const string & t_name ) const { return ( tree_list.GetTreePtr (t_name) ); } /*! Retourne le numéro d'un arbre à partir de son nom dans * la liste. Si l'arbre n'existe pas, retourne -1. * \param t_name nom de l'arbre recherché */ inline int EventManager::GetTreeIndex ( const string & t_name ) const { return ( tree_list.GetTreeIndex (t_name) ); } /*! Ouvre tous les arbres de la liste qui sont pas déjà ouverts. * L'argument indique le mode sélectionné: seuls les arbres fonctionnant * sur ce mode sont ouverts (tous si m vaut -1). * \param m mode de fichier sélectionné */ inline void EventManager::OpenTreeList ( const Int_t m ) const { tree_list.OpenList ( m ); } /*! Ferme tous les arbres de la liste. * L'argument indique le mode sélectionné: seuls les arbres fonctionnant * sur ce mode sont fermés (tous si m vaut -1). * \param m mode de fichier sélectionné */ inline void EventManager::CloseTreeList ( const Int_t m ) const { tree_list.CloseList ( m ); } //---------------------------------------------------------------------- // SPECTRES ET HISTOGRAMMES /*! Renomme un spectre de la liste et éventuellement ses axes. * La fonction retourne vrai si l'opération est réussie, et faux * si un spectre protre déjà ce nom ou que le spectre n'est * pas trouvé. * \param num numéro du spectre à renommer * \param name nom du spectre * \param name_x nom de l'axe X * \param name_y nom de l'axe Y * \param name_z nom de l'axe Z */ inline bool EventManager::RenameSpectrum ( const u_int num, const string &name, const string &name_x, const string &name_y, const string &name_z ) { return ( spec_list.RenameSpectrum(num, name, name_x, name_y, name_z) ); } /*! Renomme un spectre de la liste et éventuellement ses axes. * La fonction retourne vrai si l'opération est réussie, et faux * si un spectre protre déjà ce nom ou que le spectre n'est * pas trouvé. * \param spec_name numéro du spectre à renommer * \param name nom du spectre * \param name_x nom de l'axe X * \param name_y nom de l'axe Y * \param name_z nom de l'axe Z */ inline bool EventManager::RenameSpectrum ( const string & spec_name, const string &name, const string &name_x, const string &name_y, const string &name_z ) { return ( spec_list.RenameSpectrum(spec_name, name, name_x, name_y, name_z) ); } /*! Incrémentation automatique (rapide) des spectres et des arbres, * avec mise à jour préalable des filtres. */ inline void EventManager::IncrementSpectra ( ) const { filter_list.UpdateValues (); spec_list.IncrementListFast(); //spec_list.UpdateList(); // pas à chaque événement !!! tree_list.IncrementListFast(); } /*! Retourne le pointeur sur un spectre à partir de son numéro dans * la liste. Si le spectre n'existe pas, retourne NULL. * \param num numéro du spectre recherché */ inline Spectrum * EventManager::GetSpectrumPtr ( const u_int num ) const { return ( spec_list.GetSpectrumPtr (num) ); } /*! Retourne le pointeur sur un spectre à partir de son nom dans * la liste. Si le spectre n'existe pas, retourne NULL. * \param spec_name nom du spectre recherché */ inline Spectrum * EventManager::GetSpectrumPtr ( const string & spec_name ) const { return ( spec_list.GetSpectrumPtr (spec_name) ); } /*! Retourne le numéro d'un spectre à partir de son nom dans * la liste. Si le spectre n'existe pas, retourne -1. * \param spec_name nom du spectre recherché */ inline int EventManager::GetSpectrumIndex ( const string & spec_name ) const { return ( spec_list.GetSpectrumIndex (spec_name) ); } /*! Retourne le nom d'un spectre de la liste, ou une chaîne vide si le spectre * n'existe pas. * \param spec_num numéro du spectre recherché */ inline string EventManager::GetSpectrumName ( const u_int spec_num ) const { return ( spec_list.GetSpectrumName (spec_num) ); } /*! Retourne le pointeur sur l'histogramme d'un spectre à partir de * son numéro dans la liste. * Si le spectre n'existe pas, retourne NULL. * \param num numéro du spectre dont on cherche l'histogramme */ inline TH1 * EventManager::GetHistoPtr ( const u_int num ) const { return ( spec_list.GetHistoPtr (num) ); } /*! Retourne le pointeur sur l'histogramme d'un spectre à partir de * son nom dans la liste. * Si le spectre n'existe pas, retourne NULL. * \param spec_name nom du spectre dont on cherche l'histogramme */ inline TH1 * EventManager::GetHistoPtr ( const string & spec_name ) const { return ( spec_list.GetHistoPtr (spec_name) ); } //---------------------------------------------------------------------- // FAMILLES DE SPECTRES /*! Place un spectre dans une famille. * \param spec_name nom du spectre * \param family_name nom de la famille de spectres */ inline bool EventManager::SetSpectrumFamily ( const string & spec_name, const string & family_name ) { return ( spec_list.SetSpectrumFamily(spec_name,family_name) ); } /*! Place un spectre dans une famille. * \param spec_num numéro du spectre * \param family_name nom de la famille de spectres */ inline bool EventManager::SetSpectrumFamily ( const u_int spec_num, const string & family_name ) { return ( spec_list.SetSpectrumFamily(spec_num,family_name) ); } /*! Retire un spectre de sa famille (le spectre lui-même n'est pas * affecté). * \param spec_name nom du spectre */ inline bool EventManager::ResetSpectrumFamily ( const string & spec_name ) { return ( spec_list.ResetSpectrumFamily(spec_name) ); } /*! Retire un spectre de sa famille (le spectre lui-même n'est pas * affecté). * \param spec_num numéro du spectre */ inline bool EventManager::ResetSpectrumFamily ( const u_int spec_num ) { return ( spec_list.ResetSpectrumFamily(spec_num) ); } /*! Démarre une famille de spectres. La méthode retourne vrai * si la famille existe * \param family_name nom de la famille */ inline bool EventManager::StartFamily ( const string & family_name ) { return ( spec_list.StartFamily(family_name) ); } /*! Arrête une famille de spectres. La méthode retourne vrai * si la famille existe * \param family_name nom de la famille */ inline bool EventManager::StopFamily ( const string & family_name ) { return ( spec_list.StopFamily(family_name) ); } /*! Suspend une famille de spectres. La méthode retourne vrai * si la famille existe * \param family_name nom de la famille */ inline bool EventManager::SuspendFamily ( const string & family_name ) { return ( spec_list.SuspendFamily(family_name) ); } /*! Remise à zéro d'une famille de spectres. La méthode retourne vrai * si la famille existe * \param family_name nom de la famille */ inline bool EventManager::ResetFamily ( const string & family_name ) { return ( spec_list.ResetFamily(family_name) ); } //---------------------------------------------------------------------- // ECRITURE DES STRUCTURES /*! Ecriture de l'événement courant sur la sortie standard. * \param all indique s'il faut écrire tout l'événement, y compris * les paramètres non affectés * \param pmin numéro du 1er paramètre à écrire (à partir de 0) * \param pmax numéro du dernier paramètre (exclus) */ inline void EventManager::DumpEvent ( const bool all, const u_int pmin, const u_int pmax ) const { DumpEvent ( cout, all, pmin, pmax ); } /*! Ecriture de la structure d'événement sur la sortie standard. * Tous les paramètres (y compris ceux définis par l'utilisateur) * sont écris. */ inline void EventManager::PrintEvent ( ) const { PrintEvent ( cout ); } /*! Ecriture de la liste de spectres sur la sortie standard. */ inline void EventManager::PrintSpecList ( ) const { PrintSpecList ( cout ); } //---------------------------------------------------------------------- /*! Ecriture d'une familles de spectres sur la sortie standard. * \param family_name nom de la famille ("" pour toutes les familles) */ inline void EventManager::PrintFamily ( const string & family_name ) { spec_list.PrintFamily ( family_name ); } /*! Ecriture d'une familles de spectres dans un flux de sortie. * \param os flux de sortie * \param family_name nom de la famille ("" pour toutes les familles) */ inline void EventManager::PrintFamily ( ostream &os, const string & family_name ) { spec_list.PrintFamily ( os, family_name ); } /*! Ecriture d'une familles de spectres dans un fichier. * \param file_name nom du fichier * \param family_name nom de la famille ("" pour toutes les familles) */ inline void EventManager::PrintFamily ( const string & file_name, const string & family_name) { spec_list.PrintFamily ( file_name, family_name ); } //---------------------------------------------------------------------- /*! Retire un filtre du gestionnaire, en vérifiant au préalable s'il * est utilisé par les autres filtres de la liste ou par les spectres. * \param f pointeur sur le filtre à supprimer * \param force indique s'il faut forcer la suppression des filtres * utilisant celui qui est supprimé */ inline bool EventManager::RemoveFilter ( Filter *f, const bool force ) { return ( filter_list.RemoveFilter (f,force) ); } /*! Retire un filtre du gestionnaire, en vérifiant au préalable s'il * est utilisé par les autres filtres de la liste ou par les spectres. * \param f_name nom du filtre à supprimer * \param force indique s'il faut forcer la suppression des filtres * utilisant celui qui est supprimé */ inline bool EventManager::RemoveFilter ( const string &f_name, const bool force ) { return ( filter_list.RemoveFilter (f_name,force) ); } /*! Retire un filtre du gestionnaire, en vérifiant au préalable s'il * est utilisé par les autres filtres de la liste ou par les spectres. * \param f_num numéro du filtre à supprimer * \param force indique s'il faut forcer la suppression des filtres * utilisant celui qui est supprimé */ inline bool EventManager::RemoveFilter ( const int f_num, const bool force ) { return ( filter_list.RemoveFilter (f_num,force) ); } /*! Fonction qui teste l'état d'un filtre. * \param f pointeur sur le filtre */ inline bool EventManager::CheckFilter ( const Filter * f ) { return ( (f == NULL) ? false : f->Ok() ); } //---------------------------------------------------------------------- /*! Retourne le pointeur sur un contour de la liste, ou NULL si le contour * n'existe pas. * \param cname nom du contour recherché */ inline RContour * EventManager::GetContourPtr ( const string &cname ) const { return ( GetContourListPtr()->FindName(cname) ); } /*! Retourne le pointeur sur un contour de la liste, ou NULL si le contour * n'existe pas. * \param cnum numéro du contour recherché */ inline RContour * EventManager::GetContourPtr ( const u_int cnum ) const { return ( GetContourListPtr()->Goto(cnum) ); } /*! Retourne le numéro d'un contour de la liste, ou -1 si le contour * n'existe pas. * \param cname nom du contour recherché */ inline int EventManager::GetContourIndex ( const string &cname ) const { return ( GetFilterListPtr()->GetContourIndex (cname) ); } /*! Retourne le nom d'un contour de la liste, ou une chaîne vide si le contour * n'existe pas. * \param cnum numéro du contour recherché */ inline string EventManager::GetContourName ( const u_int cnum ) const { RContour *ptr = GetContourPtr(cnum); return ( (ptr == NULL) ? "" : ptr->GetName() ); } /*! Retourne le pointeur sur un filtre de la liste, ou NULL si le filtre * n'existe pas. * \param fname nom du filtre recherché */ inline Filter * EventManager::GetFilterPtr ( const string &fname ) const { return ( GetFilterListPtr()->FindName(fname) ); } /*! Retourne le pointeur sur un filtre de la liste, ou NULL si le filtre * n'existe pas. * \param fnum numéro du filtre recherché */ inline Filter * EventManager::GetFilterPtr ( const u_int fnum ) const { return ( GetFilterListPtr()->Goto(fnum) ); } /*! Retourne le numéro d'un filtre de la liste, ou -1 si le filtre * n'existe pas. * \param fname nom du filtre recherché */ inline int EventManager::GetFilterIndex ( const string &fname ) const { return ( GetFilterListPtr()->GetFilterIndex (fname) ); } /*! Retourne le nom d'un filtre de la liste, ou une chaîne vide si le filtre * n'existe pas. * \param fnum numéro du filtre recherché */ inline string EventManager::GetFilterName ( const u_int fnum ) const { const Filter *ptr = GetFilterPtr(fnum); return ( (ptr == NULL) ? "" : ptr->GetName() ); } //====================================================================== #endif
55  * par ce filtre ne sont plus conditionnés.
56  *
57  */
58 
60 {
61 //----------------------------------------------------------------------
62  /*! \object_doc */
64 //----------------------------------------------------------------------
65 
66  protected:
67 
68  Event event; ///< Structure physique de l'événement
69  TreeList tree_list; ///< Liste des arbres de l'analyse
70  SpectrumList spec_list; ///< Liste des spectres de l'analyse
71  FilterList filter_list; ///< Liste des filtres de l'analyse
72 
73 //----------------------------------------------------------------------
74 // CONSTRUCTEUR / AFFECTATION / DESTRUCTEUR
75 //----------------------------------------------------------------------
76 
77  public:
78 
79  // Constructeur par défaut.
80  EventManager ( );
81 
82  protected:
83  // Constructeur de recopie.
84  EventManager ( const EventManager & );
85 
86  public:
87  // Destructeur
88  virtual ~EventManager ( );
89 
90 //----------------------------------------------------------------------
91 
92  // Retourne le nombre d'objets dans la structure.
93  u_int ParamNumber ( ) const;
94  u_int SpecNumber ( ) const;
95  u_int TreeNumber ( ) const;
96  u_int ContourNumber ( ) const;
97  u_int FilterNumber ( ) const;
98 
99  // Retourne les pointeurs sur les structures
100  const Event * GetEventPtr ( ) const;
101  const TreeList * GetTreeListPtr ( ) const;
102  const SpectrumList * GetSpectrumListPtr ( ) const;
103  const FilterList * GetFilterListPtr ( ) const;
104  const RContourList * GetContourListPtr ( ) const;
105 
106  Event * GetEventPtr ( );
107  TreeList * GetTreeListPtr ( );
110  RContourList * GetContourListPtr ( );
111 
112 //----------------------------------------------------------------------
113 // INFOS SUR LES STRUCTURES
114 //----------------------------------------------------------------------
115 
116  // paramètres
117  virtual const Param * GetParamPtr ( const u_int n ) const;
118  virtual const Param * GetParamPtr ( const string &par_name ) const;
119  virtual string GetParamName ( const u_int n ) const;
120  virtual int GetParamIndex ( const string &par_name ) const;
121 
122  virtual int GetParamDimension ( const u_int n ) const;
123  virtual int GetParamDimension ( const string &par_name ) const;
124 
125  // arbres
126  virtual TreeInfo * GetTreePtr ( const u_int t_num ) const;
127  virtual TreeInfo * GetTreePtr ( const string & t_name ) const;
128  virtual int GetTreeIndex ( const string & t_name ) const;
129 
130  // spectres (et histo associé) virtual Spectrum * GetSpectrumPtr ( const u_int num ) const; virtual Spectrum * GetSpectrumPtr ( const string & spec_name ) const; virtual int GetSpectrumIndex ( const string & spec_name ) const; virtual string GetSpectrumName ( const u_int spec_num ) const; TH1 * GetHistoPtr ( const u_int num ) const; TH1 * GetHistoPtr ( const string & spec_name ) const; // contours virtual RContour * GetContourPtr ( const string &cname ) const; virtual RContour * GetContourPtr ( const u_int cnum ) const; virtual int GetContourIndex ( const string &cname ) const; virtual string GetContourName ( const u_int cnum ) const; // filtres virtual Filter * GetFilterPtr ( const string &fname ) const; virtual Filter * GetFilterPtr ( const u_int fnum ) const; virtual int GetFilterIndex ( const string &fname ) const; virtual string GetFilterName ( const u_int fnum ) const; //---------------------------------------------------------------------- // PARAMETRES //---------------------------------------------------------------------- // Ajout d'un paramètre virtual int AddParam ( const Param &par ); virtual int AddParamSingle ( const string &par_name, const Data &d = DataUI2(0) ); virtual int AddParamArray ( const string &par_name, const u_int dim, const Data &d = DataUI2(0) ); virtual int AddParamMultihit ( const string &par_name, const Data &d = DataUI2(0) ); // valeur par défaut d'un paramètre const Data & GetParamDefaultValue ( const u_int num ); const Data & GetParamDefaultValue ( const string &par_name ); bool SetParamDefaultValue ( const u_int num, const Data &d ); bool SetParamDefaultValue ( const string &par_name, const Data &d ); // retourne la valeur d'un paramètre de l'événement. const Data & GetParam ( const u_int num ); const Data & GetParam ( const string &par_name ); // retourne la valeur d'un paramètre multiple de l'événement. const Data & GetParam ( const u_int num, const u_int index ); const Data & GetParam ( const string &par_name, const u_int index ); // mise à valeur un paramètre de l'événement. template < class T > const Data & SetParam( const u_int num, const T &val ); template < class T > const Data & SetParam( const string &par_name, const T &val ); // mise à valeur un paramètre multiple de l'événement. template < class T > const Data & SetParam( const u_int num, const u_int index, const T &val ); template < class T > const Data & SetParam( const string &par_name, const u_int index, const T &val ); //---------------------------------------------------------------------- // ARBRES //---------------------------------------------------------------------- virtual int AddTree ( const string & t_name, const string &f_name = "", const UInt_t n_max = 0 ); virtual int InitTree ( const string & t_name ); virtual int InitTree ( const int t_num = -1 ); virtual bool RemoveTree ( const TreeInfo * t_ptr ); virtual bool RemoveTree ( const u_int t_num ); virtual bool RemoveTree ( const string & t_name ); virtual void RemoveAllTrees ( ); virtual Int_t SetTreeFile ( const int t_num, const string &f_name, const UInt_t n_max = 0 ); virtual string GetTreeFile ( const int t_num ) const; virtual string GetTreeFileName ( const int t_num ) const; virtual UInt_t GetTreeFileMode ( const int t_num ) const; virtual Int_t SetTreeFile ( const string &t_name, const string &f_name, const UInt_t n_max = 0 ); virtual string GetTreeFile ( const string &t_name ) const; virtual string GetTreeFileName ( const string &t_name ) const; virtual UInt_t GetTreeFileMode ( const string &t_name ) const; virtual Bool_t AddTreeParam ( const int t_num, const Param *p_ptr ); virtual Bool_t AddTreeParam ( const int t_num, const string &p_name ); virtual Bool_t AddTreeParam ( const int t_num, const Int_t p_num ); virtual Int_t AddTreeParamRange ( const int t_num, const Int_t p1, const Int_t p2 ); virtual Int_t AddTreeAllParam ( const int t_num ); virtual Bool_t AddTreeParam ( const string &t_name, const Param *p_ptr ); virtual Bool_t AddTreeParam ( const string &t_name, const string &p_name ); virtual Bool_t AddTreeParam ( const string &t_name, const Int_t p_num ); virtual Int_t AddTreeParamRange ( const string &t_name, const Int_t p1, const Int_t p2 ); virtual Int_t AddTreeAllParam ( const string &t_name ); virtual void OpenTreeList ( const Int_t m = -1 ) const; virtual void CloseTreeList ( const Int_t m = -1 ) const; virtual Bool_t OpenTree ( const int t_num ) const; virtual Bool_t OpenTree ( const string &t_name ) const; virtual Bool_t CloseTree ( const int t_num ) const; virtual Bool_t CloseTree ( const string &t_name ) const; virtual Bool_t IsTreeOpen ( const int t_num ) const; virtual Bool_t IsTreeOpen ( const string &t_name ) const; virtual Bool_t IsTreeClosed ( const int t_num ) const; virtual Bool_t IsTreeClosed ( const string &t_name ) const; // démmarrage / arrêt des arbres bool StartTree ( const int t_num = -1 ) const; bool StopTree ( const int t_num = -1 ) const; bool SuspendTree ( const int t_num = -1 ) const; bool StartTree ( const string & t_name ) const; bool StopTree ( const string & t_name ) const; bool SuspendTree ( const string & t_name ) const; //---------------------------------------------------------------------- virtual int LoadTreeList ( const string &filename, const bool append = true ); virtual int SaveTreeList ( const string &filename ) const; //---------------------------------------------------------------------- // SPECTRES ET FAMILLES //---------------------------------------------------------------------- // ajout d'un spectre Mono int AddSpecMono ( const string & spec_name, const u_int par_num, const u_int nx, const double x1, const double x2, const string & family_name = "" ); // ajout d'un spectre Mono int AddSpecMono ( const string & spec_name, const string & par_name, const u_int nx, const double x1, const double x2, const string & family_name = "" ); // ajout d'un spectre Bidim int AddSpecBidim ( const string & spec_name, const u_int par_num_x, const u_int nx, const double x1, const double x2, const u_int par_num_y, const u_int ny, const double y1, const double y2, const string & family_name = "" ); // ajout d'un spectre Bidim int AddSpecBidim ( const string & spec_name, const string & par_name_x, const u_int nx, const double x1, const double x2, const string & par_name_y, const u_int ny, const double y1, const double y2, const string & family_name = "" ); // ajout d'un spectre Tridim int AddSpecTridim ( const string & spec_name, const u_int par_num_x, const u_int nx, const double x1, const double x2, const u_int par_num_y, const u_int ny, const double y1, const double y2, const u_int par_num_z, const u_int nz, const double z1, const double z2, const string & family_name = "" ); // ajout d'un spectre Tridim int AddSpecTridim ( const string & spec_name, const string & par_name_x, const u_int nx, const double x1, const double x2, const string & par_name_y, const u_int ny, const double y1, const double y2, const string & par_name_z, const u_int nz, const double z1, const double z2, const string & family_name = "" ); // ajout d'un spectre Trace int AddSpecDistrib ( const string & spec_name, const u_int par_num, const double x1, const double x2, const string & family_name = "" ); // ajout d'un spectre Trace int AddSpecDistrib ( const string & spec_name, const string & par_name, const double x1, const double x2, const string & family_name = "" ); // ajout d'un spectre Trace int AddSpecTrace ( const string & spec_name, const u_int par_num, const double x1, const double x2, const string & family_name = "" ); // ajout d'un spectre Trace int AddSpecTrace ( const string & spec_name, const string & par_name, const double x1, const double x2, const string & family_name = "" ); // ajout d'un spectre Cumul int AddSpecCumul ( const string & spec_name, const u_int par_num_x, const double x1, const double x2, const u_int ny, const double y1, const double y2, const string & family_name = "" ); // ajout d'un spectre Cumul int AddSpecCumul ( const string & spec_name, const string & par_name_x, const double x1, const double x2, const u_int ny, const double y1, const double y2, const string & family_name = "" ); // ajout d'un spectre pour histogramme xterne int AddSpecHisto ( TH1 & h, const string & family_name = "" ); // ajout d'un spectre Externe int AddSpecExtern ( const string & h_name, const string & f_name, const string & s_name = "", const string & family_name = "" ); // ajout d'un spectre User 1D int AddSpecUser1D ( const string & spec_name, const u_int nx, const double x1, const double x2, const string & family_name = "" ); // ajout d'un spectre User 2D int AddSpecUser2D ( const string & spec_name, const u_int nx, const double x1, const double x2, const u_int ny, const double y1, const double y2, const string & family_name = "" ); // ajout d'un spectre normalise int AddSpecNorm ( const string & spec_name, const string & oper_name, const double norm = 1., const string & family_name = "" ); // ajout d'un spectre racine carree int AddSpecSqrt ( const string & spec_name, const string & oper_name, const double c0 = 1., const double c1 = 0., const string & family_name = "" ); // ajout d'un spectre inverse int AddSpecInv ( const string & spec_name, const string & oper_name, const double c0 = 1., const double c1 = 0., const double c2 = 0., const string & family_name = "" ); // ajout d'un spectre somme int AddSpecSum ( const string & spec_name, const string & oper0_name, const string & oper1_name, const double c0 = 1., const double c1 = 1., const double c2 = 0., const string & family_name = "" ); // ajout d'un spectre produit int AddSpecProd ( const string & spec_name, const string & oper0_name, const string & oper1_name, const double c0 = 1., const double c1 = 1., const string & family_name = "" ); // ajout d'un spectre rapprot int AddSpecDiv ( const string & spec_name, const string & oper0_name, const string & oper1_name, const double c0 = 1., const double c1 = 1., const double c2 = 0., const string & family_name = "" ); // ajout d'un spectre somme int AddSpecSumN ( const string & spec_name, const Int_t oper_num, Spectrum ** oper_tab, const string & family_name = "" ); int AddSpecSumN ( const string & spec_name, const string & oper_names, const string & family_name = "" ); // ajout d'un spectre de cumul d'histogrammes int AddSpecHSum ( const string & spec_name, const string & src_name, const string & family_name = "" ); int AddSpecHSum ( const string & spec_name, const Int_t src_num, const string & family_name = "" ); int AddSpecHSum ( const string & spec_name, const TH1 * src_histo, const string & family_name = "" ); int AddSpecHMean ( const string & spec_name, const string & src_name, const string & family_name = "" ); int AddSpecHMean ( const string & spec_name, const Int_t src_num, const string & family_name = "" ); int AddSpecHMean ( const string & spec_name, const TH1 * src_histo, const string & family_name = "" ); // ajout d'un spectre HCumul int AddSpecHCumul ( const string & spec_name, const string & src_name, const u_int ny, const double y1, const double y2, const string & family_name = "" ); int AddSpecHCumul ( const string & spec_name, const Int_t src_num, const u_int ny, const double y1, const double y2, const string & family_name = "" ); int AddSpecHCumul ( const string & spec_name, const TH1 * src_histo, const u_int ny, const double y1, const double y2, const string & family_name = "" ); // mise a valeur et incrementation manuelle des spectres utilisateur 1D virtual bool User1DIncrement ( const string & spec_name, const Double_t x, const Double_t incr = 1. ); virtual bool User1DSetValue ( const string & spec_name, const Double_t x, const Double_t val ); virtual bool User1DIncrement ( const u_int spec_num, const Double_t x, const Double_t incr = 1. ); virtual bool User1DSetValue ( const u_int spec_num, const Double_t x, const Double_t val ); virtual bool User1DIncrement ( const string & spec_name, const Int_t ix, const Double_t incr = 1. ); virtual bool User1DSetValue ( const string & spec_name, const Int_t ix, const Double_t val ); virtual bool User1DIncrement ( const u_int spec_num, const Int_t ix, const Double_t incr = 1. ); virtual bool User1DSetValue ( const u_int spec_num, const Int_t ix, const Double_t val ); // mise a valeur et incrementation manuelle des spectres utilisateur 2D virtual bool User2DIncrement ( const string & spec_name, const Double_t x, const Double_t y, const Double_t incr = 1. ); virtual bool User2DSetValue ( const string & spec_name, const Double_t x, const Double_t y, const Double_t val ); virtual bool User2DIncrement ( const u_int spec_num, const Double_t x, const Double_t y, const Double_t incr = 1. ); virtual bool User2DSetValue ( const u_int spec_num, const Double_t x, const Double_t y, const Double_t val ); virtual bool User2DIncrement ( const string & spec_name, const Int_t ix, const Int_t iy, const Double_t incr = 1. ); virtual bool User2DSetValue ( const string & spec_name, const Int_t ix, const Int_t iy, const Double_t val ); virtual bool User2DIncrement ( const u_int spec_num, const Int_t ix, const Int_t iy, const Double_t incr = 1. ); virtual bool User2DSetValue ( const u_int spec_num, const Int_t ix, const Int_t iy, const Double_t val ); //---------------------------------------------------------------------- // suppression d'un spectre virtual bool RemoveSpectrum ( const Spectrum * spec_ptr, const bool force = true ); virtual bool RemoveSpectrum ( const u_int spec_num, const bool force = true ); virtual bool RemoveSpectrum ( const string & spec_name, const bool force = true ); virtual void RemoveAllSpectra ( const bool force = false ); // modification des protections contre la sauvegarde et la suppression virtual bool SetSpectrumSaveProtection ( Spectrum * spec_ptr, const bool b = true ); virtual bool SetSpectrumSaveProtection ( const string & spec_name, const bool b = true ); virtual bool SetSpectrumSaveProtection ( const u_int spec_num, const bool b = true ); virtual bool SetSpectrumDeleteProtection ( Spectrum * spec_ptr, const bool b = true ); virtual bool SetSpectrumDeleteProtection ( const string & spec_name, const bool b = true ); virtual bool SetSpectrumDeleteProtection ( const u_int spec_num, const bool b = true ); // changement de nom d'un spectre virtual bool RenameSpectrum ( const u_int num, const string &name, const string &name_x = "", const string &name_y = "", const string &name_z = "" ); virtual bool RenameSpectrum ( const string & spec_name, const string &name, const string &name_x = "", const string &name_y = "", const string &name_z = "" ); //---------------------------------------------------------------------- // démmarrage / arrêt des spectres bool StartSpectrum ( const int num = -1 ) const; bool StopSpectrum ( const int num = -1 ) const; bool SuspendSpectrum ( const int num = -1 ) const; bool ResetSpectrum ( const int num = -1 ) const; bool StartSpectrum ( const string & spec_name ) const; bool StopSpectrum ( const string & spec_name ) const; bool SuspendSpectrum ( const string & spec_name ) const; bool ResetSpectrum ( const string & spec_name ) const; //---------------------------------------------------------------------- // incrémentation automatique des spectres (et des arbres) virtual void IncrementSpectra ( ) const; //---------------------------------------------------------------------- bool SetSpectrumFamily ( const string & spec_name, const string & family_name ); bool SetSpectrumFamily ( const u_int spec_num, const string & family_name ); bool ResetSpectrumFamily ( const string & spec_name ); bool ResetSpectrumFamily ( const u_int spec_num ); // demarrage/arrêt/suspension des familles bool StartFamily ( const string & family_name ); bool StopFamily ( const string & family_name ); bool SuspendFamily ( const string & family_name ); bool ResetFamily ( const string & family_name ); //---------------------------------------------------------------------- // dump de l'événement courant virtual void DumpEvent ( const bool all = false, const u_int pmin = 0, const u_int pmax = 0 ) const; virtual void DumpEvent ( const string &file_name, const bool all = false, const u_int pmin = 0, const u_int pmax = 0 ) const; virtual void DumpEvent ( ostream &os, const bool all = false, const u_int pmin = 0, const u_int pmax = 0 ) const; // Ecriture de la structure d'événement virtual void PrintEvent ( ) const; virtual void PrintEvent ( const string &file_name ) const; virtual void PrintEvent ( ostream &os ) const; // Ecriture de la liste de spectres virtual void PrintSpecList ( ) const; virtual void PrintSpecList ( const string & ) const; virtual void PrintSpecList ( ostream &os ) const; // écriture des familles virtual void PrintFamily ( const string & family_name ); virtual void PrintFamily ( ostream &os ,const string & family_name ); virtual void PrintFamily ( const string & file_name, const string & family_name ); //---------------------------------------------------------------------- virtual int LoadSpectraList ( const string &filename, const bool append = true ); virtual int SaveSpectraList ( const string &filename ) const; virtual int SaveSelectedSpectra ( const string &filename ) const; // sauvegarde des histogrammes ROOT. virtual int SaveHistograms ( const string & file_name ) const; virtual int SaveSelectedHistograms ( const string & file_name ) const; virtual int SaveFamilyHistograms ( const string & file_name, const string & family_name ) const; //---------------------------------------------------------------------- // FILTRES ET CONTOURS //---------------------------------------------------------------------- // Rejet d'un événement (aucun spectre/arbre incrémenté) virtual void RejectEvent ( ); // traitement des contours virtual int AddContour ( const string &ct_name, RContourBase &ct ); virtual int AddContour ( RContour &ct ); virtual bool RemoveContour ( const string &ct_name, const bool force = true ); virtual bool RemoveContour ( const int ct_num, const bool force = true ); virtual bool RemoveContour ( const RContour *ct, const bool force = true ); virtual void RemoveAllContours ( ); virtual int LoadContourList ( const string &filename, const bool append = true ); virtual int SaveContourList ( const string &filename ) const; // traitement des filtres virtual int AddFilter ( const string & f_name, FilterBase &f ); virtual int AddFilter ( Filter * f ); virtual bool RemoveFilter ( Filter * f, const bool force = true ); virtual bool RemoveFilter ( const string & f_name, const bool force = true ); virtual bool RemoveFilter ( const int f_num, const bool force = true ); virtual void RemoveAllFilters ( ); virtual int AddFilterFalse ( const char *f_name ); virtual int AddFilterTrue ( const char *f_name ); virtual int AddFilterNot ( const char *f_name, const char *fnot_name ); virtual int AddFilterAnd ( const char *f_name, const char *f1_name, const char *f2_name ); virtual int AddFilterOr ( const char *f_name, const char *f1_name, const char *f2_name ); virtual int AddFilterXOr ( const char *f_name, const char *f1_name, const char *f2_name ); virtual int AddFilterMultiAnd ( const char *f_name, const char *fl_names ); virtual int AddFilterMultiOr ( const char *f_name, const char *fl_names ); virtual int AddFilterGate ( const char *f_name, const char *p_name, const double pmin, const double pmax, const int mode = filterMultiParAnd ); virtual int AddFilterContour ( const char *f_name, const char *c_name, const char *x_name, const char *y_name, const bool inv = false, const int mode = filterMultiParAnd ); virtual int AddFilterContour ( const char *f_name, const char *c_name, const char *x_name, const bool inv = false, const int mode = filterMultiParAnd ); virtual int LoadFilterList ( const string &filename, const bool append = true ); virtual int SaveFilterList ( const string &filename ) const; // application d'un filtre à un spectre / une famille virtual bool FilterSpectrum ( const int sp_num, const string &f_name = "" ); virtual bool FilterSpectrum ( const string &sp_name, const string &f_name = "" ); virtual bool FilterFamily ( const string &family_name, const string &f_name = "" ); virtual bool FilterTree ( const int t_num, const string &f_name = "" ); virtual bool FilterTree ( const string &t_name, const string &f_name = "" ); virtual bool CheckFilter ( const string &f_name ); virtual bool CheckFilter ( const u_int f_num ); virtual bool CheckFilter ( const Filter *f ); //---------------------------------------------------------------------- // pour ROOT... public: /*! Définition à usage de ROOT... */ ClassDef(EventManager,0); }; //====================================================================== // METHODES INLINE //====================================================================== /*! Retourne le nombre total de paramètres de la structure d'événement.*/ inline u_int EventManager::ParamNumber () const { return (event.GetSize()); } /*! Retourne le nombre de spectres définis.*/ inline u_int EventManager::SpecNumber () const { return (spec_list.GetSize()); } /*! Retourne le nombre d'arbres définis.*/ inline u_int EventManager::TreeNumber () const { return (tree_list.GetSize()); } /*! Retourne le nombre de contours du gestionnaire.*/ inline u_int EventManager::ContourNumber () const { return ( ((FilterList *) &filter_list)->GetContourListPtr()->GetSize()); } /*! Retourne le nombre de filtres du gestionnaire.*/ inline u_int EventManager::FilterNumber () const { return (filter_list.GetSize()); } //---------------------------------------------------------------------- /*! Retourne le pointeur sur la structure d'événement.*/ inline const Event * EventManager::GetEventPtr() const { return (&event); } /*! Retourne le pointeur sur la liste d'arbres.*/ inline const TreeList * EventManager::GetTreeListPtr() const { return (&tree_list); } /*! Retourne le pointeur sur la liste de spectres.*/ inline const SpectrumList * EventManager::GetSpectrumListPtr() const { return (&spec_list); } /*! Retourne le pointeur sur la liste de filtres.*/ inline const FilterList * EventManager::GetFilterListPtr() const { return (&filter_list); } /*! Retourne le pointeur sur la liste de contours (de la liste de filtres).*/ inline const RContourList * EventManager::GetContourListPtr() const { return (filter_list.GetContourListPtr()); } /*! Retourne le pointeur sur la structure d'événement.*/ inline Event * EventManager::GetEventPtr() { return (&event); } /*! Retourne le pointeur sur la liste d'arbres.*/ inline TreeList * EventManager::GetTreeListPtr() { return (&tree_list); } /*! Retourne le pointeur sur la liste de spectres.*/ inline SpectrumList * EventManager::GetSpectrumListPtr() { return (&spec_list); } /*! Retourne le pointeur sur la liste de filtres.*/ inline FilterList * EventManager::GetFilterListPtr() { return (&filter_list); } /*! Retourne le pointeur sur la liste de contours (de la liste de filtres).*/ inline RContourList * EventManager::GetContourListPtr() { return (filter_list.GetContourListPtr()); } //---------------------------------------------------------------------- /*! Rejet d'un événement: tous les spectres sont suspendus.*/ inline void EventManager::RejectEvent ( ) { spec_list.SuspendList(); tree_list.SuspendList(); } //---------------------------------------------------------------------- // PARAMETRES /*! Ajoute un paramètre utilisateur de type \b single. * La fonction retourne le numéro du paramètre dans la structure d'événement, * où une valeur négative en cas d'erreur. * \param par_name nom du paramètre * \param d donnée qui fixe le type numérique associé */ inline int EventManager::AddParamSingle ( const string &par_name, const Data &d ) { return (AddParam ( ParamSingle (par_name,d) )); } /*! Ajoute un paramètre utilisateur de type \b array (tableau). * La fonction retourne le numéro du paramètre dans la structure d'événement, * où une valeur négative en cas d'erreur. * \param par_name nom du paramètre * \param dim dimension du paramètre tableau * \param d donnée qui fixe le type numérique associé */ inline int EventManager::AddParamArray ( const string &par_name, const u_int dim, const Data &d ) { return (AddParam ( ParamArray (par_name, dim, d) )); } /*! Ajoute un paramètre utilisateur de type \b multihit. * La fonction retourne le numéro du paramètre dans la structure d'événement, * où une valeur négative en cas d'erreur. * \param par_name nom du paramètre * \param d donnée qui fixe le type numérique associé */ inline int EventManager::AddParamMultihit ( const string &par_name, const Data &d ) { return (AddParam ( ParamMultihit (par_name, d) )); } /*! Renvoie le pointeur d'un paramètre identifié par son nom. * Si le paramètre n'existe pas, un pointeur NULL est retournée. * \param n numéro du paramètre */ inline const Param * EventManager::GetParamPtr ( const u_int n ) const { return (event.GetParamPtr ( n )); } /*! Renvoie le pointeur d'un paramètre identifié par son numéro. * Si le paramètre n'existe pas, un pointeur NULL est retournée. * \param par_name nom du paramètre */ inline const Param * EventManager::GetParamPtr ( const string &par_name ) const { return (event.GetParamPtr ( par_name )); } /*! Renvoie le nom d'un paramètre identifié par son numéro. * Si le paramètre n'existe pas, une chaîne vide est retournée. * \param n numéro du paramètre */ inline string EventManager::GetParamName ( const u_int n ) const { return (event.GetParamName ( n )); } /*! Renvoie le numéro d'un paramètre identifié par son nom. * Si le paramètre n'existe pas, la valeur EVENT_UNKNOWN_PARAM est * retournée. * \param par_name nom du paramètre */ inline int EventManager::GetParamIndex ( const string &par_name ) const { return (event.GetParamIndex ( par_name )); } /*! Retourne la dimension d'un paramètre, ou Event::undefinedParam si le * paramètre n'est pas défini. * \param n numéro du paramètre */ inline int EventManager::GetParamDimension ( const u_int n ) const { return (event.GetParamDimension ( n )); } /*! Retourne la dimension d'un paramètre, ou Event::undefinedParam si le * paramètre n'est pas défini. * \param par_name nom du paramètre */ inline int EventManager::GetParamDimension ( const string &par_name ) const { return (event.GetParamDimension ( par_name )); } /*! Méthode patron qui sert à l'affectation d'un paramètre utilisateur * à partir d'une valeur donnée par un type de base ou une instance * de type Data. * Dans le cas d'un paramètre de type ParamArray, c'est la donnée * courante du tableau qui est affectée. * Dans le cas d'un paramètre de type ParamMultihit, une nouvelle * donnée est ajoutée en fin de liste. * Le type en retour est une référence sur l'instance Data associée au * paramètre (après affectation), avec le qualificatif const car la donnée * en retour (par référence) ne doit pas être modifiée directement. * \param num numéro de paramètre * \param val valeur à affecter (Data ou type de base) */ template < class T > const Data & EventManager::SetParam( const u_int num, const T &val ) { if (num < event.GetSize()) return (event[num] = val); else { GLogWarning ( "GetParam(): parameter number " + GGetString(num) + " over event size [0:" + GGetString(event.GetSize()) + "]"); return (bad_data); } } /*! Méthode patron qui sert à l'affectation d'un paramètre utilisateur * à partir d'une valeur donnée par un type de base ou une instance * de type Data. * Dans le cas d'un paramètre de type ParamArray, c'est la donnée * courante du tableau qui est affectée. * Dans le cas d'un paramètre de type ParamMultihit, une nouvelle * donnée est ajoutée en fin de liste. * Le type en retour est une référence sur l'instance Data associée au * paramètre (après affectation), avec le qualificatif const car la donnée * en retour (par référence) ne doit pas être modifiée directement. * \param par_name nom du paramètre * \param val valeur à affecter (Data ou type de base) */ template < class T > const Data & EventManager::SetParam( const string &par_name, const T &val ) { u_int num = event.GetParamIndex(par_name); if (num < event.GetSize()) return (SetParam(num,val)); else { GLogWarning ( "GetParam(): no parameter " + par_name); return (bad_data); } } /*! Méthode patron qui sert à l'affectation d'un paramètre utilisateur * à partir d'une valeur donnée par un type de base ou une instance * de type Data. * Le type en retour est une référence sur l'instance Data associée au * paramètre (après affectation), avec le qualificatif const car la donnée * en retour (par référence) ne doit pas être modifiée directement. * Dans le cas d'un paramètre de type ParamMultihit, cette méthode ne * doit être appelée que pour modifier une donnée déjà dans la liste. * Pour ajouter une nouvelle donnée à la liste il faut appeler la * méthode sans spécification d'index. * \param num numéro de paramètre * \param index index de la valeur à affecter dans le paramètre * \param val valeur à affecter (Data ou type de base) */ template < class T > const Data & EventManager::SetParam( const u_int num, const u_int index, const T &val ) { if (num < event.GetSize()) { Param &p = event[num]; if (index < p.Dimension()) { //cerr << "EventManager::SetParam: p[index] = val" << endl; return (p[index] = val); } else { return (bad_data); } } else { GLogWarning ( "GetParam(): parameter number " + GGetString(num) + " over event size [0:" + GGetString(event.GetSize()) + "]"); return (bad_data); } } /*! Méthode patron qui sert à l'affectation d'un paramètre utilisateur * à partir d'une valeur donnée par un type de base ou une instance * de type Data. * Le type en retour est une référence sur l'instance Data associée au * paramètre (après affectation), avec le qualificatif const car la donnée * en retour (par référence) ne doit pas être modifiée directement. * Dans le cas d'un paramètre de type ParamMultihit, cette méthode ne * doit être appelée que pour modifier une donnée déjà dans la liste. * Pour ajouter une nouvelle donnée à la liste il faut appeler la * méthode sans spécification d'index. * \param par_name nom du paramètre * \param index index de la valeur à affecter dans le paramètre * \param val valeur à affecter (Data ou type de base) */ template < class T > const Data & EventManager::SetParam ( const string &par_name, const u_int index, const T &val ) { u_int num = event.GetParamIndex(par_name); if (num < event.GetSize()) return (SetParam(num,val)); else { GLogWarning ( "GetParam(): no parameter " + par_name); return (bad_data); } } //---------------------------------------------------------------------- // ARBRES /*! Retourne le pointeur sur un arbre à partir de son numéro dans * la liste. Si l'arbre n'existe pas, retourne NULL. * \param t_num numéro de l'arbre recherché */ inline TreeInfo * EventManager::GetTreePtr ( const u_int t_num ) const { return ( tree_list.GetTreePtr (t_num) ); } /*! Retourne le pointeur sur un arbre à partir de son nom dans * la liste. Si l'arbre n'existe pas, retourne NULL. * \param t_name nom de l'arbre recherché */ inline TreeInfo * EventManager::GetTreePtr ( const string & t_name ) const { return ( tree_list.GetTreePtr (t_name) ); } /*! Retourne le numéro d'un arbre à partir de son nom dans * la liste. Si l'arbre n'existe pas, retourne -1. * \param t_name nom de l'arbre recherché */ inline int EventManager::GetTreeIndex ( const string & t_name ) const { return ( tree_list.GetTreeIndex (t_name) ); } /*! Ouvre tous les arbres de la liste qui sont pas déjà ouverts. * L'argument indique le mode sélectionné: seuls les arbres fonctionnant * sur ce mode sont ouverts (tous si m vaut -1). * \param m mode de fichier sélectionné */ inline void EventManager::OpenTreeList ( const Int_t m ) const { tree_list.OpenList ( m ); } /*! Ferme tous les arbres de la liste. * L'argument indique le mode sélectionné: seuls les arbres fonctionnant * sur ce mode sont fermés (tous si m vaut -1). * \param m mode de fichier sélectionné */ inline void EventManager::CloseTreeList ( const Int_t m ) const { tree_list.CloseList ( m ); } //---------------------------------------------------------------------- // SPECTRES ET HISTOGRAMMES /*! Renomme un spectre de la liste et éventuellement ses axes. * La fonction retourne vrai si l'opération est réussie, et faux * si un spectre protre déjà ce nom ou que le spectre n'est * pas trouvé. * \param num numéro du spectre à renommer * \param name nom du spectre * \param name_x nom de l'axe X * \param name_y nom de l'axe Y * \param name_z nom de l'axe Z */ inline bool EventManager::RenameSpectrum ( const u_int num, const string &name, const string &name_x, const string &name_y, const string &name_z ) { return ( spec_list.RenameSpectrum(num, name, name_x, name_y, name_z) ); } /*! Renomme un spectre de la liste et éventuellement ses axes. * La fonction retourne vrai si l'opération est réussie, et faux * si un spectre protre déjà ce nom ou que le spectre n'est * pas trouvé. * \param spec_name numéro du spectre à renommer * \param name nom du spectre * \param name_x nom de l'axe X * \param name_y nom de l'axe Y * \param name_z nom de l'axe Z */ inline bool EventManager::RenameSpectrum ( const string & spec_name, const string &name, const string &name_x, const string &name_y, const string &name_z ) { return ( spec_list.RenameSpectrum(spec_name, name, name_x, name_y, name_z) ); } /*! Incrémentation automatique (rapide) des spectres et des arbres, * avec mise à jour préalable des filtres. */ inline void EventManager::IncrementSpectra ( ) const { filter_list.UpdateValues (); spec_list.IncrementListFast(); //spec_list.UpdateList(); // pas à chaque événement !!! tree_list.IncrementListFast(); } /*! Retourne le pointeur sur un spectre à partir de son numéro dans * la liste. Si le spectre n'existe pas, retourne NULL. * \param num numéro du spectre recherché */ inline Spectrum * EventManager::GetSpectrumPtr ( const u_int num ) const { return ( spec_list.GetSpectrumPtr (num) ); } /*! Retourne le pointeur sur un spectre à partir de son nom dans * la liste. Si le spectre n'existe pas, retourne NULL. * \param spec_name nom du spectre recherché */ inline Spectrum * EventManager::GetSpectrumPtr ( const string & spec_name ) const { return ( spec_list.GetSpectrumPtr (spec_name) ); } /*! Retourne le numéro d'un spectre à partir de son nom dans * la liste. Si le spectre n'existe pas, retourne -1. * \param spec_name nom du spectre recherché */ inline int EventManager::GetSpectrumIndex ( const string & spec_name ) const { return ( spec_list.GetSpectrumIndex (spec_name) ); } /*! Retourne le nom d'un spectre de la liste, ou une chaîne vide si le spectre * n'existe pas. * \param spec_num numéro du spectre recherché */ inline string EventManager::GetSpectrumName ( const u_int spec_num ) const { return ( spec_list.GetSpectrumName (spec_num) ); } /*! Retourne le pointeur sur l'histogramme d'un spectre à partir de * son numéro dans la liste. * Si le spectre n'existe pas, retourne NULL. * \param num numéro du spectre dont on cherche l'histogramme */ inline TH1 * EventManager::GetHistoPtr ( const u_int num ) const { return ( spec_list.GetHistoPtr (num) ); } /*! Retourne le pointeur sur l'histogramme d'un spectre à partir de * son nom dans la liste. * Si le spectre n'existe pas, retourne NULL. * \param spec_name nom du spectre dont on cherche l'histogramme */ inline TH1 * EventManager::GetHistoPtr ( const string & spec_name ) const { return ( spec_list.GetHistoPtr (spec_name) ); } //---------------------------------------------------------------------- // FAMILLES DE SPECTRES /*! Place un spectre dans une famille. * \param spec_name nom du spectre * \param family_name nom de la famille de spectres */ inline bool EventManager::SetSpectrumFamily ( const string & spec_name, const string & family_name ) { return ( spec_list.SetSpectrumFamily(spec_name,family_name) ); } /*! Place un spectre dans une famille. * \param spec_num numéro du spectre * \param family_name nom de la famille de spectres */ inline bool EventManager::SetSpectrumFamily ( const u_int spec_num, const string & family_name ) { return ( spec_list.SetSpectrumFamily(spec_num,family_name) ); } /*! Retire un spectre de sa famille (le spectre lui-même n'est pas * affecté). * \param spec_name nom du spectre */ inline bool EventManager::ResetSpectrumFamily ( const string & spec_name ) { return ( spec_list.ResetSpectrumFamily(spec_name) ); } /*! Retire un spectre de sa famille (le spectre lui-même n'est pas * affecté). * \param spec_num numéro du spectre */ inline bool EventManager::ResetSpectrumFamily ( const u_int spec_num ) { return ( spec_list.ResetSpectrumFamily(spec_num) ); } /*! Démarre une famille de spectres. La méthode retourne vrai * si la famille existe * \param family_name nom de la famille */ inline bool EventManager::StartFamily ( const string & family_name ) { return ( spec_list.StartFamily(family_name) ); } /*! Arrête une famille de spectres. La méthode retourne vrai * si la famille existe * \param family_name nom de la famille */ inline bool EventManager::StopFamily ( const string & family_name ) { return ( spec_list.StopFamily(family_name) ); } /*! Suspend une famille de spectres. La méthode retourne vrai * si la famille existe * \param family_name nom de la famille */ inline bool EventManager::SuspendFamily ( const string & family_name ) { return ( spec_list.SuspendFamily(family_name) ); } /*! Remise à zéro d'une famille de spectres. La méthode retourne vrai * si la famille existe * \param family_name nom de la famille */ inline bool EventManager::ResetFamily ( const string & family_name ) { return ( spec_list.ResetFamily(family_name) ); } //---------------------------------------------------------------------- // ECRITURE DES STRUCTURES /*! Ecriture de l'événement courant sur la sortie standard. * \param all indique s'il faut écrire tout l'événement, y compris * les paramètres non affectés * \param pmin numéro du 1er paramètre à écrire (à partir de 0) * \param pmax numéro du dernier paramètre (exclus) */ inline void EventManager::DumpEvent ( const bool all, const u_int pmin, const u_int pmax ) const { DumpEvent ( cout, all, pmin, pmax ); } /*! Ecriture de la structure d'événement sur la sortie standard. * Tous les paramètres (y compris ceux définis par l'utilisateur) * sont écris. */ inline void EventManager::PrintEvent ( ) const { PrintEvent ( cout ); } /*! Ecriture de la liste de spectres sur la sortie standard. */ inline void EventManager::PrintSpecList ( ) const { PrintSpecList ( cout ); } //---------------------------------------------------------------------- /*! Ecriture d'une familles de spectres sur la sortie standard. * \param family_name nom de la famille ("" pour toutes les familles) */ inline void EventManager::PrintFamily ( const string & family_name ) { spec_list.PrintFamily ( family_name ); } /*! Ecriture d'une familles de spectres dans un flux de sortie. * \param os flux de sortie * \param family_name nom de la famille ("" pour toutes les familles) */ inline void EventManager::PrintFamily ( ostream &os, const string & family_name ) { spec_list.PrintFamily ( os, family_name ); } /*! Ecriture d'une familles de spectres dans un fichier. * \param file_name nom du fichier * \param family_name nom de la famille ("" pour toutes les familles) */ inline void EventManager::PrintFamily ( const string & file_name, const string & family_name) { spec_list.PrintFamily ( file_name, family_name ); } //---------------------------------------------------------------------- /*! Retire un filtre du gestionnaire, en vérifiant au préalable s'il * est utilisé par les autres filtres de la liste ou par les spectres. * \param f pointeur sur le filtre à supprimer * \param force indique s'il faut forcer la suppression des filtres * utilisant celui qui est supprimé */ inline bool EventManager::RemoveFilter ( Filter *f, const bool force ) { return ( filter_list.RemoveFilter (f,force) ); } /*! Retire un filtre du gestionnaire, en vérifiant au préalable s'il * est utilisé par les autres filtres de la liste ou par les spectres. * \param f_name nom du filtre à supprimer * \param force indique s'il faut forcer la suppression des filtres * utilisant celui qui est supprimé */ inline bool EventManager::RemoveFilter ( const string &f_name, const bool force ) { return ( filter_list.RemoveFilter (f_name,force) ); } /*! Retire un filtre du gestionnaire, en vérifiant au préalable s'il * est utilisé par les autres filtres de la liste ou par les spectres. * \param f_num numéro du filtre à supprimer * \param force indique s'il faut forcer la suppression des filtres * utilisant celui qui est supprimé */ inline bool EventManager::RemoveFilter ( const int f_num, const bool force ) { return ( filter_list.RemoveFilter (f_num,force) ); } /*! Fonction qui teste l'état d'un filtre. * \param f pointeur sur le filtre */ inline bool EventManager::CheckFilter ( const Filter * f ) { return ( (f == NULL) ? false : f->Ok() ); } //---------------------------------------------------------------------- /*! Retourne le pointeur sur un contour de la liste, ou NULL si le contour * n'existe pas. * \param cname nom du contour recherché */ inline RContour * EventManager::GetContourPtr ( const string &cname ) const { return ( GetContourListPtr()->FindName(cname) ); } /*! Retourne le pointeur sur un contour de la liste, ou NULL si le contour * n'existe pas. * \param cnum numéro du contour recherché */ inline RContour * EventManager::GetContourPtr ( const u_int cnum ) const { return ( GetContourListPtr()->Goto(cnum) ); } /*! Retourne le numéro d'un contour de la liste, ou -1 si le contour * n'existe pas. * \param cname nom du contour recherché */ inline int EventManager::GetContourIndex ( const string &cname ) const { return ( GetFilterListPtr()->GetContourIndex (cname) ); } /*! Retourne le nom d'un contour de la liste, ou une chaîne vide si le contour * n'existe pas. * \param cnum numéro du contour recherché */ inline string EventManager::GetContourName ( const u_int cnum ) const { RContour *ptr = GetContourPtr(cnum); return ( (ptr == NULL) ? "" : ptr->GetName() ); } /*! Retourne le pointeur sur un filtre de la liste, ou NULL si le filtre * n'existe pas. * \param fname nom du filtre recherché */ inline Filter * EventManager::GetFilterPtr ( const string &fname ) const { return ( GetFilterListPtr()->FindName(fname) ); } /*! Retourne le pointeur sur un filtre de la liste, ou NULL si le filtre * n'existe pas. * \param fnum numéro du filtre recherché */ inline Filter * EventManager::GetFilterPtr ( const u_int fnum ) const { return ( GetFilterListPtr()->Goto(fnum) ); } /*! Retourne le numéro d'un filtre de la liste, ou -1 si le filtre * n'existe pas. * \param fname nom du filtre recherché */ inline int EventManager::GetFilterIndex ( const string &fname ) const { return ( GetFilterListPtr()->GetFilterIndex (fname) ); } /*! Retourne le nom d'un filtre de la liste, ou une chaîne vide si le filtre * n'existe pas. * \param fnum numéro du filtre recherché */ inline string EventManager::GetFilterName ( const u_int fnum ) const { const Filter *ptr = GetFilterPtr(fnum); return ( (ptr == NULL) ? "" : ptr->GetName() ); } //====================================================================== #endif
131  virtual Spectrum * GetSpectrumPtr ( const u_int num ) const;
132  virtual Spectrum * GetSpectrumPtr ( const string & spec_name ) const;
133  virtual int GetSpectrumIndex ( const string & spec_name ) const;
134  virtual string GetSpectrumName ( const u_int spec_num ) const;
135 
136  TH1 * GetHistoPtr ( const u_int num ) const;
137  TH1 * GetHistoPtr ( const string & spec_name ) const;
138 
139  // contours
140  virtual RContour * GetContourPtr ( const string &cname ) const;
141  virtual RContour * GetContourPtr ( const u_int cnum ) const;
142  virtual int GetContourIndex ( const string &cname ) const;
143  virtual string GetContourName ( const u_int cnum ) const;
144 
145  // filtres
146  virtual Filter * GetFilterPtr ( const string &fname ) const;
147  virtual Filter * GetFilterPtr ( const u_int fnum ) const;
148  virtual int GetFilterIndex ( const string &fname ) const;
149  virtual string GetFilterName ( const u_int fnum ) const;
150 
151 
152 //----------------------------------------------------------------------
153 // PARAMETRES
154 //----------------------------------------------------------------------
155 
156  // Ajout d'un paramètre
157  virtual int AddParam ( const Param &par );
158  virtual int AddParamSingle ( const string &par_name, const Data &d = DataUI2(0) );
159  virtual int AddParamArray ( const string &par_name, const u_int dim, const Data &d = DataUI2(0) );
160  virtual int AddParamMultihit ( const string &par_name, const Data &d = DataUI2(0) );
161 
162  // valeur par défaut d'un paramètre
163  const Data & GetParamDefaultValue ( const u_int num );
164  const Data & GetParamDefaultValue ( const string &par_name );
165  bool SetParamDefaultValue ( const u_int num, const Data &d );
166  bool SetParamDefaultValue ( const string &par_name, const Data &d );
167 
168  // retourne la valeur d'un paramètre de l'événement.
169  const Data & GetParam ( const u_int num );
170  const Data & GetParam ( const string &par_name );
171 
172  // retourne la valeur d'un paramètre multiple de l'événement.
173  const Data & GetParam ( const u_int num, const u_int index );
174  const Data & GetParam ( const string &par_name, const u_int index );
175 
176  // mise à valeur un paramètre de l'événement.
177  template < class T > const Data & SetParam( const u_int num, const T &val );
178  template < class T > const Data & SetParam( const string &par_name, const T &val );
179 
180  // mise à valeur un paramètre multiple de l'événement.
181  template < class T > const Data & SetParam( const u_int num, const u_int index, const T &val );
182  template < class T > const Data & SetParam( const string &par_name, const u_int index, const T &val );
183 
184 //----------------------------------------------------------------------
185 // ARBRES
186 //----------------------------------------------------------------------
187 
188  virtual int AddTree ( const string & t_name, const string &f_name = "", const UInt_t n_max = 0 );
189  virtual int InitTree ( const string & t_name );
190  virtual int InitTree ( const int t_num = -1 );
191 
192  virtual bool RemoveTree ( const TreeInfo * t_ptr );
193  virtual bool RemoveTree ( const u_int t_num );
194  virtual bool RemoveTree ( const string & t_name );
195 
196  virtual void RemoveAllTrees ( );
197 
198  virtual Int_t SetTreeFile ( const int t_num, const string &f_name, const UInt_t n_max = 0 );
199  virtual string GetTreeFile ( const int t_num ) const;
200  virtual string GetTreeFileName ( const int t_num ) const;
201  virtual UInt_t GetTreeFileMode ( const int t_num ) const;
202 
203  virtual Int_t SetTreeFile ( const string &t_name, const string &f_name, const UInt_t n_max = 0 );
204  virtual string GetTreeFile ( const string &t_name ) const;
205  virtual string GetTreeFileName ( const string &t_name ) const;
206  virtual UInt_t GetTreeFileMode ( const string &t_name ) const;
207 
208 
209  virtual Bool_t AddTreeParam ( const int t_num, const Param *p_ptr );
210  virtual Bool_t AddTreeParam ( const int t_num, const string &p_name );
211  virtual Bool_t AddTreeParam ( const int t_num, const Int_t p_num );
212  virtual Int_t AddTreeParamRange ( const int t_num, const Int_t p1, const Int_t p2 );
213  virtual Int_t AddTreeAllParam ( const int t_num );
214 
215  virtual Bool_t AddTreeParam ( const string &t_name, const Param *p_ptr );
216  virtual Bool_t AddTreeParam ( const string &t_name, const string &p_name );
217  virtual Bool_t AddTreeParam ( const string &t_name, const Int_t p_num );
218  virtual Int_t AddTreeParamRange ( const string &t_name, const Int_t p1, const Int_t p2 );
219  virtual Int_t AddTreeAllParam ( const string &t_name );
220 
221  virtual void OpenTreeList ( const Int_t m = -1 ) const;
222  virtual void CloseTreeList ( const Int_t m = -1 ) const;
223 
224  virtual Bool_t OpenTree ( const int t_num ) const;
225  virtual Bool_t OpenTree ( const string &t_name ) const;
226  virtual Bool_t CloseTree ( const int t_num ) const;
227  virtual Bool_t CloseTree ( const string &t_name ) const;
228 
229  virtual Bool_t IsTreeOpen ( const int t_num ) const;
230  virtual Bool_t IsTreeOpen ( const string &t_name ) const;
231  virtual Bool_t IsTreeClosed ( const int t_num ) const;
232  virtual Bool_t IsTreeClosed ( const string &t_name ) const;
233 
234  // démmarrage / arrêt des arbres
235  bool StartTree ( const int t_num = -1 ) const;
236  bool StopTree ( const int t_num = -1 ) const;
237  bool SuspendTree ( const int t_num = -1 ) const;
238 
239  bool StartTree ( const string & t_name ) const;
240  bool StopTree ( const string & t_name ) const;
241  bool SuspendTree ( const string & t_name ) const;
242 
243 //----------------------------------------------------------------------
244 
245  virtual int LoadTreeList ( const string &filename, const bool append = true );
246  virtual int SaveTreeList ( const string &filename ) const;
247 
248 //----------------------------------------------------------------------
249 // SPECTRES ET FAMILLES
250 //----------------------------------------------------------------------
251 
252  // ajout d'un spectre Mono
253  int AddSpecMono ( const string & spec_name,
254  const u_int par_num,
255  const u_int nx, const double x1, const double x2,
256  const string & family_name = "" );
257 
258  // ajout d'un spectre Mono
259  int AddSpecMono ( const string & spec_name,
260  const string & par_name,
261  const u_int nx, const double x1, const double x2,
262  const string & family_name = "" );
263 
264  // ajout d'un spectre Bidim
265  int AddSpecBidim ( const string & spec_name,
266  const u_int par_num_x,
267  const u_int nx, const double x1, const double x2,
268  const u_int par_num_y,
269  const u_int ny, const double y1, const double y2,
270  const string & family_name = "" );
271 
272  // ajout d'un spectre Bidim
273  int AddSpecBidim ( const string & spec_name,
274  const string & par_name_x,
275  const u_int nx, const double x1, const double x2,
276  const string & par_name_y,
277  const u_int ny, const double y1, const double y2,
278  const string & family_name = "" );
279 
280  // ajout d'un spectre Tridim
281  int AddSpecTridim ( const string & spec_name,
282  const u_int par_num_x,
283  const u_int nx, const double x1, const double x2,
284  const u_int par_num_y,
285  const u_int ny, const double y1, const double y2,
286  const u_int par_num_z,
287  const u_int nz, const double z1, const double z2,
288  const string & family_name = "" );
289 
290  // ajout d'un spectre Tridim
291  int AddSpecTridim ( const string & spec_name,
292  const string & par_name_x,
293  const u_int nx, const double x1, const double x2,
294  const string & par_name_y,
295  const u_int ny, const double y1, const double y2,
296  const string & par_name_z,
297  const u_int nz, const double z1, const double z2,
298  const string & family_name = "" );
299 
300  // ajout d'un spectre Trace
301  int AddSpecDistrib ( const string & spec_name,
302  const u_int par_num,
303  const double x1, const double x2,
304  const string & family_name = "" );
305 
306  // ajout d'un spectre Trace
307  int AddSpecDistrib ( const string & spec_name,
308  const string & par_name,
309  const double x1, const double x2,
310  const string & family_name = "" );
311 
312  // ajout d'un spectre Trace
313  int AddSpecTrace ( const string & spec_name,
314  const u_int par_num,
315  const double x1, const double x2,
316  const string & family_name = "" );
317 
318  // ajout d'un spectre Trace
319  int AddSpecTrace ( const string & spec_name,
320  const string & par_name,
321  const double x1, const double x2,
322  const string & family_name = "" );
323 
324  // ajout d'un spectre Cumul
325  int AddSpecCumul ( const string & spec_name,
326  const u_int par_num_x,
327  const double x1, const double x2,
328  const u_int ny, const double y1, const double y2,
329  const string & family_name = "" );
330 
331  // ajout d'un spectre Cumul
332  int AddSpecCumul ( const string & spec_name,
333  const string & par_name_x,
334  const double x1, const double x2,
335  const u_int ny, const double y1, const double y2,
336  const string & family_name = "" );
337 
338  // ajout d'un spectre pour histogramme xterne
339  int AddSpecHisto ( TH1 & h,
340  const string & family_name = "" );
341 
342  // ajout d'un spectre Externe
343  int AddSpecExtern ( const string & h_name,
344  const string & f_name,
345  const string & s_name = "",
346  const string & family_name = "" );
347 
348  // ajout d'un spectre User 1D
349  int AddSpecUser1D ( const string & spec_name,
350  const u_int nx, const double x1, const double x2,
351  const string & family_name = "" );
352 
353  // ajout d'un spectre User 2D
354  int AddSpecUser2D ( const string & spec_name,
355  const u_int nx, const double x1, const double x2,
356  const u_int ny, const double y1, const double y2,
357  const string & family_name = "" );
358 
359  // ajout d'un spectre normalise
360  int AddSpecNorm ( const string & spec_name,
361  const string & oper_name,
362  const double norm = 1.,
363  const string & family_name = "" );
364 
365  // ajout d'un spectre racine carree
366  int AddSpecSqrt ( const string & spec_name,
367  const string & oper_name,
368  const double c0 = 1.,
369  const double c1 = 0.,
370  const string & family_name = "" );
371 
372  // ajout d'un spectre inverse
373  int AddSpecInv ( const string & spec_name,
374  const string & oper_name,
375  const double c0 = 1.,
376  const double c1 = 0.,
377  const double c2 = 0.,
378  const string & family_name = "" );
379 
380  // ajout d'un spectre somme
381  int AddSpecSum ( const string & spec_name,
382  const string & oper0_name,
383  const string & oper1_name,
384  const double c0 = 1.,
385  const double c1 = 1.,
386  const double c2 = 0.,
387  const string & family_name = "" );
388 
389  // ajout d'un spectre produit
390  int AddSpecProd ( const string & spec_name,
391  const string & oper0_name,
392  const string & oper1_name,
393  const double c0 = 1.,
394  const double c1 = 1.,
395  const string & family_name = "" );
396 
397  // ajout d'un spectre rapprot
398  int AddSpecDiv ( const string & spec_name,
399  const string & oper0_name,
400  const string & oper1_name,
401  const double c0 = 1.,
402  const double c1 = 1.,
403  const double c2 = 0.,
404  const string & family_name = "" );
405 
406  // ajout d'un spectre somme
407  int AddSpecSumN ( const string & spec_name,
408  const Int_t oper_num,
409  Spectrum ** oper_tab,
410  const string & family_name = "" );
411 
412  int AddSpecSumN ( const string & spec_name,
413  const string & oper_names,
414  const string & family_name = "" );
415 
416  // ajout d'un spectre de cumul d'histogrammes
417  int AddSpecHSum ( const string & spec_name,
418  const string & src_name,
419  const string & family_name = "" );
420  int AddSpecHSum ( const string & spec_name,
421  const Int_t src_num,
422  const string & family_name = "" );
423  int AddSpecHSum ( const string & spec_name,
424  const TH1 * src_histo,
425  const string & family_name = "" );
426 
427  int AddSpecHMean ( const string & spec_name,
428  const string & src_name,
429  const string & family_name = "" );
430  int AddSpecHMean ( const string & spec_name,
431  const Int_t src_num,
432  const string & family_name = "" );
433  int AddSpecHMean ( const string & spec_name,
434  const TH1 * src_histo,
435  const string & family_name = "" );
436 
437  // ajout d'un spectre HCumul
438  int AddSpecHCumul ( const string & spec_name,
439  const string & src_name,
440  const u_int ny, const double y1, const double y2,
441  const string & family_name = "" );
442 
443  int AddSpecHCumul ( const string & spec_name,
444  const Int_t src_num,
445  const u_int ny, const double y1, const double y2,
446  const string & family_name = "" );
447 
448  int AddSpecHCumul ( const string & spec_name,
449  const TH1 * src_histo,
450  const u_int ny, const double y1, const double y2,
451  const string & family_name = "" );
452 
453 
454  // mise a valeur et incrementation manuelle des spectres utilisateur 1D
455  virtual bool User1DIncrement ( const string & spec_name, const Double_t x, const Double_t incr = 1. );
456  virtual bool User1DSetValue ( const string & spec_name, const Double_t x, const Double_t val );
457  virtual bool User1DIncrement ( const u_int spec_num, const Double_t x, const Double_t incr = 1. );
458  virtual bool User1DSetValue ( const u_int spec_num, const Double_t x, const Double_t val );
459 
460  virtual bool User1DIncrement ( const string & spec_name, const Int_t ix, const Double_t incr = 1. );
461  virtual bool User1DSetValue ( const string & spec_name, const Int_t ix, const Double_t val );
462  virtual bool User1DIncrement ( const u_int spec_num, const Int_t ix, const Double_t incr = 1. );
463  virtual bool User1DSetValue ( const u_int spec_num, const Int_t ix, const Double_t val );
464 
465  // mise a valeur et incrementation manuelle des spectres utilisateur 2D
466  virtual bool User2DIncrement ( const string & spec_name, const Double_t x, const Double_t y, const Double_t incr = 1. );
467  virtual bool User2DSetValue ( const string & spec_name, const Double_t x, const Double_t y, const Double_t val );
468  virtual bool User2DIncrement ( const u_int spec_num, const Double_t x, const Double_t y, const Double_t incr = 1. );
469  virtual bool User2DSetValue ( const u_int spec_num, const Double_t x, const Double_t y, const Double_t val );
470 
471  virtual bool User2DIncrement ( const string & spec_name, const Int_t ix, const Int_t iy, const Double_t incr = 1. );
472  virtual bool User2DSetValue ( const string & spec_name, const Int_t ix, const Int_t iy, const Double_t val );
473  virtual bool User2DIncrement ( const u_int spec_num, const Int_t ix, const Int_t iy, const Double_t incr = 1. );
474  virtual bool User2DSetValue ( const u_int spec_num, const Int_t ix, const Int_t iy, const Double_t val );
475 
476 
477 //----------------------------------------------------------------------
478  // suppression d'un spectre
479  virtual bool RemoveSpectrum ( const Spectrum * spec_ptr, const bool force = true );
480  virtual bool RemoveSpectrum ( const u_int spec_num, const bool force = true );
481  virtual bool RemoveSpectrum ( const string & spec_name, const bool force = true );
482 
483  virtual void RemoveAllSpectra ( const bool force = false );
484 
485  // modification des protections contre la sauvegarde et la suppression
486  virtual bool SetSpectrumSaveProtection ( Spectrum * spec_ptr, const bool b = true );
487  virtual bool SetSpectrumSaveProtection ( const string & spec_name, const bool b = true );
488  virtual bool SetSpectrumSaveProtection ( const u_int spec_num, const bool b = true );
489  virtual bool SetSpectrumDeleteProtection ( Spectrum * spec_ptr, const bool b = true );
490  virtual bool SetSpectrumDeleteProtection ( const string & spec_name, const bool b = true );
491  virtual bool SetSpectrumDeleteProtection ( const u_int spec_num, const bool b = true );
492 
493  // changement de nom d'un spectre
494  virtual bool RenameSpectrum ( const u_int num, const string &name,
495  const string &name_x = "",
496  const string &name_y = "",
497  const string &name_z = "" );
498  virtual bool RenameSpectrum ( const string & spec_name, const string &name,
499  const string &name_x = "",
500  const string &name_y = "",
501  const string &name_z = "" );
502 
503 
504 //----------------------------------------------------------------------
505 
506  // démmarrage / arrêt des spectres
507  bool StartSpectrum ( const int num = -1 ) const;
508  bool StopSpectrum ( const int num = -1 ) const;
509  bool SuspendSpectrum ( const int num = -1 ) const;
510  bool ResetSpectrum ( const int num = -1 ) const;
511 
512  bool StartSpectrum ( const string & spec_name ) const;
513  bool StopSpectrum ( const string & spec_name ) const;
514  bool SuspendSpectrum ( const string & spec_name ) const;
515  bool ResetSpectrum ( const string & spec_name ) const;
516 
517 //----------------------------------------------------------------------
518  // incrémentation automatique des spectres (et des arbres)
519  virtual void IncrementSpectra ( ) const;
520 
521 //----------------------------------------------------------------------
522 
523  bool SetSpectrumFamily ( const string & spec_name, const string & family_name );
524  bool SetSpectrumFamily ( const u_int spec_num, const string & family_name );
525  bool ResetSpectrumFamily ( const string & spec_name );
526  bool ResetSpectrumFamily ( const u_int spec_num );
527 
528  // demarrage/arrêt/suspension des familles
529  bool StartFamily ( const string & family_name );
530  bool StopFamily ( const string & family_name );
531  bool SuspendFamily ( const string & family_name );
532  bool ResetFamily ( const string & family_name );
533 
534 
535 //----------------------------------------------------------------------
536 
537  // dump de l'événement courant
538  virtual void DumpEvent ( const bool all = false,
539  const u_int pmin = 0,
540  const u_int pmax = 0 ) const;
541  virtual void DumpEvent ( const string &file_name,
542  const bool all = false,
543  const u_int pmin = 0,
544  const u_int pmax = 0 ) const;
545  virtual void DumpEvent ( ostream &os,
546  const bool all = false,
547  const u_int pmin = 0,
548  const u_int pmax = 0 ) const;
549 
550  // Ecriture de la structure d'événement
551  virtual void PrintEvent ( ) const;
552  virtual void PrintEvent ( const string &file_name ) const;
553  virtual void PrintEvent ( ostream &os ) const;
554 
555  // Ecriture de la liste de spectres
556  virtual void PrintSpecList ( ) const;
557  virtual void PrintSpecList ( const string & ) const;
558  virtual void PrintSpecList ( ostream &os ) const;
559 
560  // écriture des familles
561  virtual void PrintFamily ( const string & family_name );
562  virtual void PrintFamily ( ostream &os ,const string & family_name );
563  virtual void PrintFamily ( const string & file_name, const string & family_name );
564 
565 //----------------------------------------------------------------------
566 
567  virtual int LoadSpectraList ( const string &filename, const bool append = true );
568  virtual int SaveSpectraList ( const string &filename ) const;
569  virtual int SaveSelectedSpectra ( const string &filename ) const;
570 
571  // sauvegarde des histogrammes ROOT.
572  virtual int SaveHistograms ( const string & file_name ) const;
573  virtual int SaveSelectedHistograms ( const string & file_name ) const;
574  virtual int SaveFamilyHistograms ( const string & file_name, const string & family_name ) const;
575 
576 
577 //----------------------------------------------------------------------
578 // FILTRES ET CONTOURS
579 //----------------------------------------------------------------------
580 
581  // Rejet d'un événement (aucun spectre/arbre incrémenté) virtual void RejectEvent ( ); // traitement des contours virtual int AddContour ( const string &ct_name, RContourBase &ct ); virtual int AddContour ( RContour &ct ); virtual bool RemoveContour ( const string &ct_name, const bool force = true ); virtual bool RemoveContour ( const int ct_num, const bool force = true ); virtual bool RemoveContour ( const RContour *ct, const bool force = true ); virtual void RemoveAllContours ( ); virtual int LoadContourList ( const string &filename, const bool append = true ); virtual int SaveContourList ( const string &filename ) const; // traitement des filtres virtual int AddFilter ( const string & f_name, FilterBase &f ); virtual int AddFilter ( Filter * f ); virtual bool RemoveFilter ( Filter * f, const bool force = true ); virtual bool RemoveFilter ( const string & f_name, const bool force = true ); virtual bool RemoveFilter ( const int f_num, const bool force = true ); virtual void RemoveAllFilters ( ); virtual int AddFilterFalse ( const char *f_name ); virtual int AddFilterTrue ( const char *f_name ); virtual int AddFilterNot ( const char *f_name, const char *fnot_name ); virtual int AddFilterAnd ( const char *f_name, const char *f1_name, const char *f2_name ); virtual int AddFilterOr ( const char *f_name, const char *f1_name, const char *f2_name ); virtual int AddFilterXOr ( const char *f_name, const char *f1_name, const char *f2_name ); virtual int AddFilterMultiAnd ( const char *f_name, const char *fl_names ); virtual int AddFilterMultiOr ( const char *f_name, const char *fl_names ); virtual int AddFilterGate ( const char *f_name, const char *p_name, const double pmin, const double pmax, const int mode = filterMultiParAnd ); virtual int AddFilterContour ( const char *f_name, const char *c_name, const char *x_name, const char *y_name, const bool inv = false, const int mode = filterMultiParAnd ); virtual int AddFilterContour ( const char *f_name, const char *c_name, const char *x_name, const bool inv = false, const int mode = filterMultiParAnd ); virtual int LoadFilterList ( const string &filename, const bool append = true ); virtual int SaveFilterList ( const string &filename ) const; // application d'un filtre à un spectre / une famille virtual bool FilterSpectrum ( const int sp_num, const string &f_name = "" ); virtual bool FilterSpectrum ( const string &sp_name, const string &f_name = "" ); virtual bool FilterFamily ( const string &family_name, const string &f_name = "" ); virtual bool FilterTree ( const int t_num, const string &f_name = "" ); virtual bool FilterTree ( const string &t_name, const string &f_name = "" ); virtual bool CheckFilter ( const string &f_name ); virtual bool CheckFilter ( const u_int f_num ); virtual bool CheckFilter ( const Filter *f ); //---------------------------------------------------------------------- // pour ROOT... public: /*! Définition à usage de ROOT... */ ClassDef(EventManager,0); }; //====================================================================== // METHODES INLINE //====================================================================== /*! Retourne le nombre total de paramètres de la structure d'événement.*/ inline u_int EventManager::ParamNumber () const { return (event.GetSize()); } /*! Retourne le nombre de spectres définis.*/ inline u_int EventManager::SpecNumber () const { return (spec_list.GetSize()); } /*! Retourne le nombre d'arbres définis.*/ inline u_int EventManager::TreeNumber () const { return (tree_list.GetSize()); } /*! Retourne le nombre de contours du gestionnaire.*/ inline u_int EventManager::ContourNumber () const { return ( ((FilterList *) &filter_list)->GetContourListPtr()->GetSize()); } /*! Retourne le nombre de filtres du gestionnaire.*/ inline u_int EventManager::FilterNumber () const { return (filter_list.GetSize()); } //---------------------------------------------------------------------- /*! Retourne le pointeur sur la structure d'événement.*/ inline const Event * EventManager::GetEventPtr() const { return (&event); } /*! Retourne le pointeur sur la liste d'arbres.*/ inline const TreeList * EventManager::GetTreeListPtr() const { return (&tree_list); } /*! Retourne le pointeur sur la liste de spectres.*/ inline const SpectrumList * EventManager::GetSpectrumListPtr() const { return (&spec_list); } /*! Retourne le pointeur sur la liste de filtres.*/ inline const FilterList * EventManager::GetFilterListPtr() const { return (&filter_list); } /*! Retourne le pointeur sur la liste de contours (de la liste de filtres).*/ inline const RContourList * EventManager::GetContourListPtr() const { return (filter_list.GetContourListPtr()); } /*! Retourne le pointeur sur la structure d'événement.*/ inline Event * EventManager::GetEventPtr() { return (&event); } /*! Retourne le pointeur sur la liste d'arbres.*/ inline TreeList * EventManager::GetTreeListPtr() { return (&tree_list); } /*! Retourne le pointeur sur la liste de spectres.*/ inline SpectrumList * EventManager::GetSpectrumListPtr() { return (&spec_list); } /*! Retourne le pointeur sur la liste de filtres.*/ inline FilterList * EventManager::GetFilterListPtr() { return (&filter_list); } /*! Retourne le pointeur sur la liste de contours (de la liste de filtres).*/ inline RContourList * EventManager::GetContourListPtr() { return (filter_list.GetContourListPtr()); } //---------------------------------------------------------------------- /*! Rejet d'un événement: tous les spectres sont suspendus.*/ inline void EventManager::RejectEvent ( ) { spec_list.SuspendList(); tree_list.SuspendList(); } //---------------------------------------------------------------------- // PARAMETRES /*! Ajoute un paramètre utilisateur de type \b single. * La fonction retourne le numéro du paramètre dans la structure d'événement, * où une valeur négative en cas d'erreur. * \param par_name nom du paramètre * \param d donnée qui fixe le type numérique associé */ inline int EventManager::AddParamSingle ( const string &par_name, const Data &d ) { return (AddParam ( ParamSingle (par_name,d) )); } /*! Ajoute un paramètre utilisateur de type \b array (tableau). * La fonction retourne le numéro du paramètre dans la structure d'événement, * où une valeur négative en cas d'erreur. * \param par_name nom du paramètre * \param dim dimension du paramètre tableau * \param d donnée qui fixe le type numérique associé */ inline int EventManager::AddParamArray ( const string &par_name, const u_int dim, const Data &d ) { return (AddParam ( ParamArray (par_name, dim, d) )); } /*! Ajoute un paramètre utilisateur de type \b multihit. * La fonction retourne le numéro du paramètre dans la structure d'événement, * où une valeur négative en cas d'erreur. * \param par_name nom du paramètre * \param d donnée qui fixe le type numérique associé */ inline int EventManager::AddParamMultihit ( const string &par_name, const Data &d ) { return (AddParam ( ParamMultihit (par_name, d) )); } /*! Renvoie le pointeur d'un paramètre identifié par son nom. * Si le paramètre n'existe pas, un pointeur NULL est retournée. * \param n numéro du paramètre */ inline const Param * EventManager::GetParamPtr ( const u_int n ) const { return (event.GetParamPtr ( n )); } /*! Renvoie le pointeur d'un paramètre identifié par son numéro. * Si le paramètre n'existe pas, un pointeur NULL est retournée. * \param par_name nom du paramètre */ inline const Param * EventManager::GetParamPtr ( const string &par_name ) const { return (event.GetParamPtr ( par_name )); } /*! Renvoie le nom d'un paramètre identifié par son numéro. * Si le paramètre n'existe pas, une chaîne vide est retournée. * \param n numéro du paramètre */ inline string EventManager::GetParamName ( const u_int n ) const { return (event.GetParamName ( n )); } /*! Renvoie le numéro d'un paramètre identifié par son nom. * Si le paramètre n'existe pas, la valeur EVENT_UNKNOWN_PARAM est * retournée. * \param par_name nom du paramètre */ inline int EventManager::GetParamIndex ( const string &par_name ) const { return (event.GetParamIndex ( par_name )); } /*! Retourne la dimension d'un paramètre, ou Event::undefinedParam si le * paramètre n'est pas défini. * \param n numéro du paramètre */ inline int EventManager::GetParamDimension ( const u_int n ) const { return (event.GetParamDimension ( n )); } /*! Retourne la dimension d'un paramètre, ou Event::undefinedParam si le * paramètre n'est pas défini. * \param par_name nom du paramètre */ inline int EventManager::GetParamDimension ( const string &par_name ) const { return (event.GetParamDimension ( par_name )); } /*! Méthode patron qui sert à l'affectation d'un paramètre utilisateur * à partir d'une valeur donnée par un type de base ou une instance * de type Data. * Dans le cas d'un paramètre de type ParamArray, c'est la donnée * courante du tableau qui est affectée. * Dans le cas d'un paramètre de type ParamMultihit, une nouvelle * donnée est ajoutée en fin de liste. * Le type en retour est une référence sur l'instance Data associée au * paramètre (après affectation), avec le qualificatif const car la donnée * en retour (par référence) ne doit pas être modifiée directement. * \param num numéro de paramètre * \param val valeur à affecter (Data ou type de base) */ template < class T > const Data & EventManager::SetParam( const u_int num, const T &val ) { if (num < event.GetSize()) return (event[num] = val); else { GLogWarning ( "GetParam(): parameter number " + GGetString(num) + " over event size [0:" + GGetString(event.GetSize()) + "]"); return (bad_data); } } /*! Méthode patron qui sert à l'affectation d'un paramètre utilisateur * à partir d'une valeur donnée par un type de base ou une instance * de type Data. * Dans le cas d'un paramètre de type ParamArray, c'est la donnée * courante du tableau qui est affectée. * Dans le cas d'un paramètre de type ParamMultihit, une nouvelle * donnée est ajoutée en fin de liste. * Le type en retour est une référence sur l'instance Data associée au * paramètre (après affectation), avec le qualificatif const car la donnée * en retour (par référence) ne doit pas être modifiée directement. * \param par_name nom du paramètre * \param val valeur à affecter (Data ou type de base) */ template < class T > const Data & EventManager::SetParam( const string &par_name, const T &val ) { u_int num = event.GetParamIndex(par_name); if (num < event.GetSize()) return (SetParam(num,val)); else { GLogWarning ( "GetParam(): no parameter " + par_name); return (bad_data); } } /*! Méthode patron qui sert à l'affectation d'un paramètre utilisateur * à partir d'une valeur donnée par un type de base ou une instance * de type Data. * Le type en retour est une référence sur l'instance Data associée au * paramètre (après affectation), avec le qualificatif const car la donnée * en retour (par référence) ne doit pas être modifiée directement. * Dans le cas d'un paramètre de type ParamMultihit, cette méthode ne * doit être appelée que pour modifier une donnée déjà dans la liste. * Pour ajouter une nouvelle donnée à la liste il faut appeler la * méthode sans spécification d'index. * \param num numéro de paramètre * \param index index de la valeur à affecter dans le paramètre * \param val valeur à affecter (Data ou type de base) */ template < class T > const Data & EventManager::SetParam( const u_int num, const u_int index, const T &val ) { if (num < event.GetSize()) { Param &p = event[num]; if (index < p.Dimension()) { //cerr << "EventManager::SetParam: p[index] = val" << endl; return (p[index] = val); } else { return (bad_data); } } else { GLogWarning ( "GetParam(): parameter number " + GGetString(num) + " over event size [0:" + GGetString(event.GetSize()) + "]"); return (bad_data); } } /*! Méthode patron qui sert à l'affectation d'un paramètre utilisateur * à partir d'une valeur donnée par un type de base ou une instance * de type Data. * Le type en retour est une référence sur l'instance Data associée au * paramètre (après affectation), avec le qualificatif const car la donnée * en retour (par référence) ne doit pas être modifiée directement. * Dans le cas d'un paramètre de type ParamMultihit, cette méthode ne * doit être appelée que pour modifier une donnée déjà dans la liste. * Pour ajouter une nouvelle donnée à la liste il faut appeler la * méthode sans spécification d'index. * \param par_name nom du paramètre * \param index index de la valeur à affecter dans le paramètre * \param val valeur à affecter (Data ou type de base) */ template < class T > const Data & EventManager::SetParam ( const string &par_name, const u_int index, const T &val ) { u_int num = event.GetParamIndex(par_name); if (num < event.GetSize()) return (SetParam(num,val)); else { GLogWarning ( "GetParam(): no parameter " + par_name); return (bad_data); } } //---------------------------------------------------------------------- // ARBRES /*! Retourne le pointeur sur un arbre à partir de son numéro dans * la liste. Si l'arbre n'existe pas, retourne NULL. * \param t_num numéro de l'arbre recherché */ inline TreeInfo * EventManager::GetTreePtr ( const u_int t_num ) const { return ( tree_list.GetTreePtr (t_num) ); } /*! Retourne le pointeur sur un arbre à partir de son nom dans * la liste. Si l'arbre n'existe pas, retourne NULL. * \param t_name nom de l'arbre recherché */ inline TreeInfo * EventManager::GetTreePtr ( const string & t_name ) const { return ( tree_list.GetTreePtr (t_name) ); } /*! Retourne le numéro d'un arbre à partir de son nom dans * la liste. Si l'arbre n'existe pas, retourne -1. * \param t_name nom de l'arbre recherché */ inline int EventManager::GetTreeIndex ( const string & t_name ) const { return ( tree_list.GetTreeIndex (t_name) ); } /*! Ouvre tous les arbres de la liste qui sont pas déjà ouverts. * L'argument indique le mode sélectionné: seuls les arbres fonctionnant * sur ce mode sont ouverts (tous si m vaut -1). * \param m mode de fichier sélectionné */ inline void EventManager::OpenTreeList ( const Int_t m ) const { tree_list.OpenList ( m ); } /*! Ferme tous les arbres de la liste. * L'argument indique le mode sélectionné: seuls les arbres fonctionnant * sur ce mode sont fermés (tous si m vaut -1). * \param m mode de fichier sélectionné */ inline void EventManager::CloseTreeList ( const Int_t m ) const { tree_list.CloseList ( m ); } //---------------------------------------------------------------------- // SPECTRES ET HISTOGRAMMES /*! Renomme un spectre de la liste et éventuellement ses axes. * La fonction retourne vrai si l'opération est réussie, et faux * si un spectre protre déjà ce nom ou que le spectre n'est * pas trouvé. * \param num numéro du spectre à renommer * \param name nom du spectre * \param name_x nom de l'axe X * \param name_y nom de l'axe Y * \param name_z nom de l'axe Z */ inline bool EventManager::RenameSpectrum ( const u_int num, const string &name, const string &name_x, const string &name_y, const string &name_z ) { return ( spec_list.RenameSpectrum(num, name, name_x, name_y, name_z) ); } /*! Renomme un spectre de la liste et éventuellement ses axes. * La fonction retourne vrai si l'opération est réussie, et faux * si un spectre protre déjà ce nom ou que le spectre n'est * pas trouvé. * \param spec_name numéro du spectre à renommer * \param name nom du spectre * \param name_x nom de l'axe X * \param name_y nom de l'axe Y * \param name_z nom de l'axe Z */ inline bool EventManager::RenameSpectrum ( const string & spec_name, const string &name, const string &name_x, const string &name_y, const string &name_z ) { return ( spec_list.RenameSpectrum(spec_name, name, name_x, name_y, name_z) ); } /*! Incrémentation automatique (rapide) des spectres et des arbres, * avec mise à jour préalable des filtres. */ inline void EventManager::IncrementSpectra ( ) const { filter_list.UpdateValues (); spec_list.IncrementListFast(); //spec_list.UpdateList(); // pas à chaque événement !!! tree_list.IncrementListFast(); } /*! Retourne le pointeur sur un spectre à partir de son numéro dans * la liste. Si le spectre n'existe pas, retourne NULL. * \param num numéro du spectre recherché */ inline Spectrum * EventManager::GetSpectrumPtr ( const u_int num ) const { return ( spec_list.GetSpectrumPtr (num) ); } /*! Retourne le pointeur sur un spectre à partir de son nom dans * la liste. Si le spectre n'existe pas, retourne NULL. * \param spec_name nom du spectre recherché */ inline Spectrum * EventManager::GetSpectrumPtr ( const string & spec_name ) const { return ( spec_list.GetSpectrumPtr (spec_name) ); } /*! Retourne le numéro d'un spectre à partir de son nom dans * la liste. Si le spectre n'existe pas, retourne -1. * \param spec_name nom du spectre recherché */ inline int EventManager::GetSpectrumIndex ( const string & spec_name ) const { return ( spec_list.GetSpectrumIndex (spec_name) ); } /*! Retourne le nom d'un spectre de la liste, ou une chaîne vide si le spectre * n'existe pas. * \param spec_num numéro du spectre recherché */ inline string EventManager::GetSpectrumName ( const u_int spec_num ) const { return ( spec_list.GetSpectrumName (spec_num) ); } /*! Retourne le pointeur sur l'histogramme d'un spectre à partir de * son numéro dans la liste. * Si le spectre n'existe pas, retourne NULL. * \param num numéro du spectre dont on cherche l'histogramme */ inline TH1 * EventManager::GetHistoPtr ( const u_int num ) const { return ( spec_list.GetHistoPtr (num) ); } /*! Retourne le pointeur sur l'histogramme d'un spectre à partir de * son nom dans la liste. * Si le spectre n'existe pas, retourne NULL. * \param spec_name nom du spectre dont on cherche l'histogramme */ inline TH1 * EventManager::GetHistoPtr ( const string & spec_name ) const { return ( spec_list.GetHistoPtr (spec_name) ); } //---------------------------------------------------------------------- // FAMILLES DE SPECTRES /*! Place un spectre dans une famille. * \param spec_name nom du spectre * \param family_name nom de la famille de spectres */ inline bool EventManager::SetSpectrumFamily ( const string & spec_name, const string & family_name ) { return ( spec_list.SetSpectrumFamily(spec_name,family_name) ); } /*! Place un spectre dans une famille. * \param spec_num numéro du spectre * \param family_name nom de la famille de spectres */ inline bool EventManager::SetSpectrumFamily ( const u_int spec_num, const string & family_name ) { return ( spec_list.SetSpectrumFamily(spec_num,family_name) ); } /*! Retire un spectre de sa famille (le spectre lui-même n'est pas * affecté). * \param spec_name nom du spectre */ inline bool EventManager::ResetSpectrumFamily ( const string & spec_name ) { return ( spec_list.ResetSpectrumFamily(spec_name) ); } /*! Retire un spectre de sa famille (le spectre lui-même n'est pas * affecté). * \param spec_num numéro du spectre */ inline bool EventManager::ResetSpectrumFamily ( const u_int spec_num ) { return ( spec_list.ResetSpectrumFamily(spec_num) ); } /*! Démarre une famille de spectres. La méthode retourne vrai * si la famille existe * \param family_name nom de la famille */ inline bool EventManager::StartFamily ( const string & family_name ) { return ( spec_list.StartFamily(family_name) ); } /*! Arrête une famille de spectres. La méthode retourne vrai * si la famille existe * \param family_name nom de la famille */ inline bool EventManager::StopFamily ( const string & family_name ) { return ( spec_list.StopFamily(family_name) ); } /*! Suspend une famille de spectres. La méthode retourne vrai * si la famille existe * \param family_name nom de la famille */ inline bool EventManager::SuspendFamily ( const string & family_name ) { return ( spec_list.SuspendFamily(family_name) ); } /*! Remise à zéro d'une famille de spectres. La méthode retourne vrai * si la famille existe * \param family_name nom de la famille */ inline bool EventManager::ResetFamily ( const string & family_name ) { return ( spec_list.ResetFamily(family_name) ); } //---------------------------------------------------------------------- // ECRITURE DES STRUCTURES /*! Ecriture de l'événement courant sur la sortie standard. * \param all indique s'il faut écrire tout l'événement, y compris * les paramètres non affectés * \param pmin numéro du 1er paramètre à écrire (à partir de 0) * \param pmax numéro du dernier paramètre (exclus) */ inline void EventManager::DumpEvent ( const bool all, const u_int pmin, const u_int pmax ) const { DumpEvent ( cout, all, pmin, pmax ); } /*! Ecriture de la structure d'événement sur la sortie standard. * Tous les paramètres (y compris ceux définis par l'utilisateur) * sont écris. */ inline void EventManager::PrintEvent ( ) const { PrintEvent ( cout ); } /*! Ecriture de la liste de spectres sur la sortie standard. */ inline void EventManager::PrintSpecList ( ) const { PrintSpecList ( cout ); } //---------------------------------------------------------------------- /*! Ecriture d'une familles de spectres sur la sortie standard. * \param family_name nom de la famille ("" pour toutes les familles) */ inline void EventManager::PrintFamily ( const string & family_name ) { spec_list.PrintFamily ( family_name ); } /*! Ecriture d'une familles de spectres dans un flux de sortie. * \param os flux de sortie * \param family_name nom de la famille ("" pour toutes les familles) */ inline void EventManager::PrintFamily ( ostream &os, const string & family_name ) { spec_list.PrintFamily ( os, family_name ); } /*! Ecriture d'une familles de spectres dans un fichier. * \param file_name nom du fichier * \param family_name nom de la famille ("" pour toutes les familles) */ inline void EventManager::PrintFamily ( const string & file_name, const string & family_name) { spec_list.PrintFamily ( file_name, family_name ); } //---------------------------------------------------------------------- /*! Retire un filtre du gestionnaire, en vérifiant au préalable s'il * est utilisé par les autres filtres de la liste ou par les spectres. * \param f pointeur sur le filtre à supprimer * \param force indique s'il faut forcer la suppression des filtres * utilisant celui qui est supprimé */ inline bool EventManager::RemoveFilter ( Filter *f, const bool force ) { return ( filter_list.RemoveFilter (f,force) ); } /*! Retire un filtre du gestionnaire, en vérifiant au préalable s'il * est utilisé par les autres filtres de la liste ou par les spectres. * \param f_name nom du filtre à supprimer * \param force indique s'il faut forcer la suppression des filtres * utilisant celui qui est supprimé */ inline bool EventManager::RemoveFilter ( const string &f_name, const bool force ) { return ( filter_list.RemoveFilter (f_name,force) ); } /*! Retire un filtre du gestionnaire, en vérifiant au préalable s'il * est utilisé par les autres filtres de la liste ou par les spectres. * \param f_num numéro du filtre à supprimer * \param force indique s'il faut forcer la suppression des filtres * utilisant celui qui est supprimé */ inline bool EventManager::RemoveFilter ( const int f_num, const bool force ) { return ( filter_list.RemoveFilter (f_num,force) ); } /*! Fonction qui teste l'état d'un filtre. * \param f pointeur sur le filtre */ inline bool EventManager::CheckFilter ( const Filter * f ) { return ( (f == NULL) ? false : f->Ok() ); } //---------------------------------------------------------------------- /*! Retourne le pointeur sur un contour de la liste, ou NULL si le contour * n'existe pas. * \param cname nom du contour recherché */ inline RContour * EventManager::GetContourPtr ( const string &cname ) const { return ( GetContourListPtr()->FindName(cname) ); } /*! Retourne le pointeur sur un contour de la liste, ou NULL si le contour * n'existe pas. * \param cnum numéro du contour recherché */ inline RContour * EventManager::GetContourPtr ( const u_int cnum ) const { return ( GetContourListPtr()->Goto(cnum) ); } /*! Retourne le numéro d'un contour de la liste, ou -1 si le contour * n'existe pas. * \param cname nom du contour recherché */ inline int EventManager::GetContourIndex ( const string &cname ) const { return ( GetFilterListPtr()->GetContourIndex (cname) ); } /*! Retourne le nom d'un contour de la liste, ou une chaîne vide si le contour * n'existe pas. * \param cnum numéro du contour recherché */ inline string EventManager::GetContourName ( const u_int cnum ) const { RContour *ptr = GetContourPtr(cnum); return ( (ptr == NULL) ? "" : ptr->GetName() ); } /*! Retourne le pointeur sur un filtre de la liste, ou NULL si le filtre * n'existe pas. * \param fname nom du filtre recherché */ inline Filter * EventManager::GetFilterPtr ( const string &fname ) const { return ( GetFilterListPtr()->FindName(fname) ); } /*! Retourne le pointeur sur un filtre de la liste, ou NULL si le filtre * n'existe pas. * \param fnum numéro du filtre recherché */ inline Filter * EventManager::GetFilterPtr ( const u_int fnum ) const { return ( GetFilterListPtr()->Goto(fnum) ); } /*! Retourne le numéro d'un filtre de la liste, ou -1 si le filtre * n'existe pas. * \param fname nom du filtre recherché */ inline int EventManager::GetFilterIndex ( const string &fname ) const { return ( GetFilterListPtr()->GetFilterIndex (fname) ); } /*! Retourne le nom d'un filtre de la liste, ou une chaîne vide si le filtre * n'existe pas. * \param fnum numéro du filtre recherché */ inline string EventManager::GetFilterName ( const u_int fnum ) const { const Filter *ptr = GetFilterPtr(fnum); return ( (ptr == NULL) ? "" : ptr->GetName() ); } //====================================================================== #endif
582  virtual void RejectEvent ( );
583 
584  // traitement des contours
585  virtual int AddContour ( const string &ct_name, RContourBase &ct );
586  virtual int AddContour ( RContour &ct );
587 
588  virtual bool RemoveContour ( const string &ct_name, const bool force = true );
589  virtual bool RemoveContour ( const int ct_num, const bool force = true );
590  virtual bool RemoveContour ( const RContour *ct, const bool force = true );
591 
592  virtual void RemoveAllContours ( );
593 
594  virtual int LoadContourList ( const string &filename, const bool append = true );
595  virtual int SaveContourList ( const string &filename ) const;
596 
597  // traitement des filtres
598  virtual int AddFilter ( const string & f_name, FilterBase &f );
599  virtual int AddFilter ( Filter * f );
600 
601  virtual bool RemoveFilter ( Filter * f, const bool force = true );
602  virtual bool RemoveFilter ( const string & f_name, const bool force = true );
603  virtual bool RemoveFilter ( const int f_num, const bool force = true );
604 
605  virtual void RemoveAllFilters ( );
606 
607  virtual int AddFilterFalse ( const char *f_name );
608  virtual int AddFilterTrue ( const char *f_name );
609  virtual int AddFilterNot ( const char *f_name, const char *fnot_name );
610  virtual int AddFilterAnd ( const char *f_name, const char *f1_name, const char *f2_name );
611  virtual int AddFilterOr ( const char *f_name, const char *f1_name, const char *f2_name );
612  virtual int AddFilterXOr ( const char *f_name, const char *f1_name, const char *f2_name );
613  virtual int AddFilterMultiAnd ( const char *f_name, const char *fl_names );
614  virtual int AddFilterMultiOr ( const char *f_name, const char *fl_names );
615 
616  virtual int AddFilterGate ( const char *f_name, const char *p_name, const double pmin, const double pmax, const int mode = filterMultiParAnd );
617  virtual int AddFilterContour ( const char *f_name, const char *c_name, const char *x_name, const char *y_name, const bool inv = false, const int mode = filterMultiParAnd );
618  virtual int AddFilterContour ( const char *f_name, const char *c_name, const char *x_name, const bool inv = false, const int mode = filterMultiParAnd );
619 
620  virtual int LoadFilterList ( const string &filename, const bool append = true );
621  virtual int SaveFilterList ( const string &filename ) const;
622 
623  // application d'un filtre à un spectre / une famille
624  virtual bool FilterSpectrum ( const int sp_num, const string &f_name = "" );
625  virtual bool FilterSpectrum ( const string &sp_name, const string &f_name = "" );
626 
627  virtual bool FilterFamily ( const string &family_name, const string &f_name = "" );
628 
629  virtual bool FilterTree ( const int t_num, const string &f_name = "" );
630  virtual bool FilterTree ( const string &t_name, const string &f_name = "" );
631 
632  virtual bool CheckFilter ( const string &f_name );
633  virtual bool CheckFilter ( const u_int f_num );
634  virtual bool CheckFilter ( const Filter *f );
635 
636 //----------------------------------------------------------------------
637 // pour ROOT...
638  public:
639  /*! Définition à usage de ROOT... */
641 };
642 
643 
644 //======================================================================
645 // METHODES INLINE
646 //======================================================================
647 
648 /*! Retourne le nombre total de paramètres de la structure d'événement.*/
649 inline u_int EventManager::ParamNumber () const
650  { return (event.GetSize()); }
651 
652 /*! Retourne le nombre de spectres définis.*/
653 inline u_int EventManager::SpecNumber () const
654  { return (spec_list.GetSize()); }
655 
656 /*! Retourne le nombre d'arbres définis.*/
657 inline u_int EventManager::TreeNumber () const
658  { return (tree_list.GetSize()); }
659 
660 /*! Retourne le nombre de contours du gestionnaire.*/
661 inline u_int EventManager::ContourNumber () const
662  { return ( ((FilterList *) &filter_list)->GetContourListPtr()->GetSize()); }
663 
664 /*! Retourne le nombre de filtres du gestionnaire.*/
665 inline u_int EventManager::FilterNumber () const
666  { return (filter_list.GetSize()); }
667 
668 //----------------------------------------------------------------------
669 
670 /*! Retourne le pointeur sur la structure d'événement.*/
671 inline const Event * EventManager::GetEventPtr() const
672  { return (&event); }
673 
674 /*! Retourne le pointeur sur la liste d'arbres.*/
676  { return (&tree_list); }
677 
678 /*! Retourne le pointeur sur la liste de spectres.*/
680  { return (&spec_list); }
681 
682 /*! Retourne le pointeur sur la liste de filtres.*/
684  { return (&filter_list); }
685 
686 /*! Retourne le pointeur sur la liste de contours (de la liste de filtres).*/
687 inline const RContourList * EventManager::GetContourListPtr() const
688  { return (filter_list.GetContourListPtr()); }
689 
690 
691 /*! Retourne le pointeur sur la structure d'événement.*/
693  { return (&event); }
694 
695 /*! Retourne le pointeur sur la liste d'arbres.*/
697  { return (&tree_list); }
698 
699 /*! Retourne le pointeur sur la liste de spectres.*/
701  { return (&spec_list); }
702 
703 /*! Retourne le pointeur sur la liste de filtres.*/
705  { return (&filter_list); }
706 
707 /*! Retourne le pointeur sur la liste de contours (de la liste de filtres).*/
708 inline RContourList * EventManager::GetContourListPtr()
709  { return (filter_list.GetContourListPtr()); }
710 
711 //----------------------------------------------------------------------
712 
713 /*! Rejet d'un événement: tous les spectres sont suspendus.*/
716 
717 
718 //----------------------------------------------------------------------
719 // PARAMETRES
720 
721 /*! Ajoute un paramètre utilisateur de type \b single.
722  * La fonction retourne le numéro du paramètre dans la structure d'événement,
723  * où une valeur négative en cas d'erreur.
724  * \param par_name nom du paramètre
725  * \param d donnée qui fixe le type numérique associé */ inline int EventManager::AddParamSingle ( const string &par_name, const Data &d ) { return (AddParam ( ParamSingle (par_name,d) )); } /*! Ajoute un paramètre utilisateur de type \b array (tableau). * La fonction retourne le numéro du paramètre dans la structure d'événement, * où une valeur négative en cas d'erreur. * \param par_name nom du paramètre * \param dim dimension du paramètre tableau * \param d donnée qui fixe le type numérique associé */ inline int EventManager::AddParamArray ( const string &par_name, const u_int dim, const Data &d ) { return (AddParam ( ParamArray (par_name, dim, d) )); } /*! Ajoute un paramètre utilisateur de type \b multihit. * La fonction retourne le numéro du paramètre dans la structure d'événement, * où une valeur négative en cas d'erreur. * \param par_name nom du paramètre * \param d donnée qui fixe le type numérique associé */ inline int EventManager::AddParamMultihit ( const string &par_name, const Data &d ) { return (AddParam ( ParamMultihit (par_name, d) )); } /*! Renvoie le pointeur d'un paramètre identifié par son nom. * Si le paramètre n'existe pas, un pointeur NULL est retournée. * \param n numéro du paramètre */ inline const Param * EventManager::GetParamPtr ( const u_int n ) const { return (event.GetParamPtr ( n )); } /*! Renvoie le pointeur d'un paramètre identifié par son numéro. * Si le paramètre n'existe pas, un pointeur NULL est retournée. * \param par_name nom du paramètre */ inline const Param * EventManager::GetParamPtr ( const string &par_name ) const { return (event.GetParamPtr ( par_name )); } /*! Renvoie le nom d'un paramètre identifié par son numéro. * Si le paramètre n'existe pas, une chaîne vide est retournée. * \param n numéro du paramètre */ inline string EventManager::GetParamName ( const u_int n ) const { return (event.GetParamName ( n )); } /*! Renvoie le numéro d'un paramètre identifié par son nom. * Si le paramètre n'existe pas, la valeur EVENT_UNKNOWN_PARAM est * retournée. * \param par_name nom du paramètre */ inline int EventManager::GetParamIndex ( const string &par_name ) const { return (event.GetParamIndex ( par_name )); } /*! Retourne la dimension d'un paramètre, ou Event::undefinedParam si le * paramètre n'est pas défini. * \param n numéro du paramètre */ inline int EventManager::GetParamDimension ( const u_int n ) const { return (event.GetParamDimension ( n )); } /*! Retourne la dimension d'un paramètre, ou Event::undefinedParam si le * paramètre n'est pas défini. * \param par_name nom du paramètre */ inline int EventManager::GetParamDimension ( const string &par_name ) const { return (event.GetParamDimension ( par_name )); } /*! Méthode patron qui sert à l'affectation d'un paramètre utilisateur * à partir d'une valeur donnée par un type de base ou une instance * de type Data. * Dans le cas d'un paramètre de type ParamArray, c'est la donnée * courante du tableau qui est affectée. * Dans le cas d'un paramètre de type ParamMultihit, une nouvelle * donnée est ajoutée en fin de liste. * Le type en retour est une référence sur l'instance Data associée au * paramètre (après affectation), avec le qualificatif const car la donnée * en retour (par référence) ne doit pas être modifiée directement. * \param num numéro de paramètre * \param val valeur à affecter (Data ou type de base) */ template < class T > const Data & EventManager::SetParam( const u_int num, const T &val ) { if (num < event.GetSize()) return (event[num] = val); else { GLogWarning ( "GetParam(): parameter number " + GGetString(num) + " over event size [0:" + GGetString(event.GetSize()) + "]"); return (bad_data); } } /*! Méthode patron qui sert à l'affectation d'un paramètre utilisateur * à partir d'une valeur donnée par un type de base ou une instance * de type Data. * Dans le cas d'un paramètre de type ParamArray, c'est la donnée * courante du tableau qui est affectée. * Dans le cas d'un paramètre de type ParamMultihit, une nouvelle * donnée est ajoutée en fin de liste. * Le type en retour est une référence sur l'instance Data associée au * paramètre (après affectation), avec le qualificatif const car la donnée * en retour (par référence) ne doit pas être modifiée directement. * \param par_name nom du paramètre * \param val valeur à affecter (Data ou type de base) */ template < class T > const Data & EventManager::SetParam( const string &par_name, const T &val ) { u_int num = event.GetParamIndex(par_name); if (num < event.GetSize()) return (SetParam(num,val)); else { GLogWarning ( "GetParam(): no parameter " + par_name); return (bad_data); } } /*! Méthode patron qui sert à l'affectation d'un paramètre utilisateur * à partir d'une valeur donnée par un type de base ou une instance * de type Data. * Le type en retour est une référence sur l'instance Data associée au * paramètre (après affectation), avec le qualificatif const car la donnée * en retour (par référence) ne doit pas être modifiée directement. * Dans le cas d'un paramètre de type ParamMultihit, cette méthode ne * doit être appelée que pour modifier une donnée déjà dans la liste. * Pour ajouter une nouvelle donnée à la liste il faut appeler la * méthode sans spécification d'index. * \param num numéro de paramètre * \param index index de la valeur à affecter dans le paramètre * \param val valeur à affecter (Data ou type de base) */ template < class T > const Data & EventManager::SetParam( const u_int num, const u_int index, const T &val ) { if (num < event.GetSize()) { Param &p = event[num]; if (index < p.Dimension()) { //cerr << "EventManager::SetParam: p[index] = val" << endl; return (p[index] = val); } else { return (bad_data); } } else { GLogWarning ( "GetParam(): parameter number " + GGetString(num) + " over event size [0:" + GGetString(event.GetSize()) + "]"); return (bad_data); } } /*! Méthode patron qui sert à l'affectation d'un paramètre utilisateur * à partir d'une valeur donnée par un type de base ou une instance * de type Data. * Le type en retour est une référence sur l'instance Data associée au * paramètre (après affectation), avec le qualificatif const car la donnée * en retour (par référence) ne doit pas être modifiée directement. * Dans le cas d'un paramètre de type ParamMultihit, cette méthode ne * doit être appelée que pour modifier une donnée déjà dans la liste. * Pour ajouter une nouvelle donnée à la liste il faut appeler la * méthode sans spécification d'index. * \param par_name nom du paramètre * \param index index de la valeur à affecter dans le paramètre * \param val valeur à affecter (Data ou type de base) */ template < class T > const Data & EventManager::SetParam ( const string &par_name, const u_int index, const T &val ) { u_int num = event.GetParamIndex(par_name); if (num < event.GetSize()) return (SetParam(num,val)); else { GLogWarning ( "GetParam(): no parameter " + par_name); return (bad_data); } } //---------------------------------------------------------------------- // ARBRES /*! Retourne le pointeur sur un arbre à partir de son numéro dans * la liste. Si l'arbre n'existe pas, retourne NULL. * \param t_num numéro de l'arbre recherché */ inline TreeInfo * EventManager::GetTreePtr ( const u_int t_num ) const { return ( tree_list.GetTreePtr (t_num) ); } /*! Retourne le pointeur sur un arbre à partir de son nom dans * la liste. Si l'arbre n'existe pas, retourne NULL. * \param t_name nom de l'arbre recherché */ inline TreeInfo * EventManager::GetTreePtr ( const string & t_name ) const { return ( tree_list.GetTreePtr (t_name) ); } /*! Retourne le numéro d'un arbre à partir de son nom dans * la liste. Si l'arbre n'existe pas, retourne -1. * \param t_name nom de l'arbre recherché */ inline int EventManager::GetTreeIndex ( const string & t_name ) const { return ( tree_list.GetTreeIndex (t_name) ); } /*! Ouvre tous les arbres de la liste qui sont pas déjà ouverts. * L'argument indique le mode sélectionné: seuls les arbres fonctionnant * sur ce mode sont ouverts (tous si m vaut -1). * \param m mode de fichier sélectionné */ inline void EventManager::OpenTreeList ( const Int_t m ) const { tree_list.OpenList ( m ); } /*! Ferme tous les arbres de la liste. * L'argument indique le mode sélectionné: seuls les arbres fonctionnant * sur ce mode sont fermés (tous si m vaut -1). * \param m mode de fichier sélectionné */ inline void EventManager::CloseTreeList ( const Int_t m ) const { tree_list.CloseList ( m ); } //---------------------------------------------------------------------- // SPECTRES ET HISTOGRAMMES /*! Renomme un spectre de la liste et éventuellement ses axes. * La fonction retourne vrai si l'opération est réussie, et faux * si un spectre protre déjà ce nom ou que le spectre n'est * pas trouvé. * \param num numéro du spectre à renommer * \param name nom du spectre * \param name_x nom de l'axe X * \param name_y nom de l'axe Y * \param name_z nom de l'axe Z */ inline bool EventManager::RenameSpectrum ( const u_int num, const string &name, const string &name_x, const string &name_y, const string &name_z ) { return ( spec_list.RenameSpectrum(num, name, name_x, name_y, name_z) ); } /*! Renomme un spectre de la liste et éventuellement ses axes. * La fonction retourne vrai si l'opération est réussie, et faux * si un spectre protre déjà ce nom ou que le spectre n'est * pas trouvé. * \param spec_name numéro du spectre à renommer * \param name nom du spectre * \param name_x nom de l'axe X * \param name_y nom de l'axe Y * \param name_z nom de l'axe Z */ inline bool EventManager::RenameSpectrum ( const string & spec_name, const string &name, const string &name_x, const string &name_y, const string &name_z ) { return ( spec_list.RenameSpectrum(spec_name, name, name_x, name_y, name_z) ); } /*! Incrémentation automatique (rapide) des spectres et des arbres, * avec mise à jour préalable des filtres. */ inline void EventManager::IncrementSpectra ( ) const { filter_list.UpdateValues (); spec_list.IncrementListFast(); //spec_list.UpdateList(); // pas à chaque événement !!! tree_list.IncrementListFast(); } /*! Retourne le pointeur sur un spectre à partir de son numéro dans * la liste. Si le spectre n'existe pas, retourne NULL. * \param num numéro du spectre recherché */ inline Spectrum * EventManager::GetSpectrumPtr ( const u_int num ) const { return ( spec_list.GetSpectrumPtr (num) ); } /*! Retourne le pointeur sur un spectre à partir de son nom dans * la liste. Si le spectre n'existe pas, retourne NULL. * \param spec_name nom du spectre recherché */ inline Spectrum * EventManager::GetSpectrumPtr ( const string & spec_name ) const { return ( spec_list.GetSpectrumPtr (spec_name) ); } /*! Retourne le numéro d'un spectre à partir de son nom dans * la liste. Si le spectre n'existe pas, retourne -1. * \param spec_name nom du spectre recherché */ inline int EventManager::GetSpectrumIndex ( const string & spec_name ) const { return ( spec_list.GetSpectrumIndex (spec_name) ); } /*! Retourne le nom d'un spectre de la liste, ou une chaîne vide si le spectre * n'existe pas. * \param spec_num numéro du spectre recherché */ inline string EventManager::GetSpectrumName ( const u_int spec_num ) const { return ( spec_list.GetSpectrumName (spec_num) ); } /*! Retourne le pointeur sur l'histogramme d'un spectre à partir de * son numéro dans la liste. * Si le spectre n'existe pas, retourne NULL. * \param num numéro du spectre dont on cherche l'histogramme */ inline TH1 * EventManager::GetHistoPtr ( const u_int num ) const { return ( spec_list.GetHistoPtr (num) ); } /*! Retourne le pointeur sur l'histogramme d'un spectre à partir de * son nom dans la liste. * Si le spectre n'existe pas, retourne NULL. * \param spec_name nom du spectre dont on cherche l'histogramme */ inline TH1 * EventManager::GetHistoPtr ( const string & spec_name ) const { return ( spec_list.GetHistoPtr (spec_name) ); } //---------------------------------------------------------------------- // FAMILLES DE SPECTRES /*! Place un spectre dans une famille. * \param spec_name nom du spectre * \param family_name nom de la famille de spectres */ inline bool EventManager::SetSpectrumFamily ( const string & spec_name, const string & family_name ) { return ( spec_list.SetSpectrumFamily(spec_name,family_name) ); } /*! Place un spectre dans une famille. * \param spec_num numéro du spectre * \param family_name nom de la famille de spectres */ inline bool EventManager::SetSpectrumFamily ( const u_int spec_num, const string & family_name ) { return ( spec_list.SetSpectrumFamily(spec_num,family_name) ); } /*! Retire un spectre de sa famille (le spectre lui-même n'est pas * affecté). * \param spec_name nom du spectre */ inline bool EventManager::ResetSpectrumFamily ( const string & spec_name ) { return ( spec_list.ResetSpectrumFamily(spec_name) ); } /*! Retire un spectre de sa famille (le spectre lui-même n'est pas * affecté). * \param spec_num numéro du spectre */ inline bool EventManager::ResetSpectrumFamily ( const u_int spec_num ) { return ( spec_list.ResetSpectrumFamily(spec_num) ); } /*! Démarre une famille de spectres. La méthode retourne vrai * si la famille existe * \param family_name nom de la famille */ inline bool EventManager::StartFamily ( const string & family_name ) { return ( spec_list.StartFamily(family_name) ); } /*! Arrête une famille de spectres. La méthode retourne vrai * si la famille existe * \param family_name nom de la famille */ inline bool EventManager::StopFamily ( const string & family_name ) { return ( spec_list.StopFamily(family_name) ); } /*! Suspend une famille de spectres. La méthode retourne vrai * si la famille existe * \param family_name nom de la famille */ inline bool EventManager::SuspendFamily ( const string & family_name ) { return ( spec_list.SuspendFamily(family_name) ); } /*! Remise à zéro d'une famille de spectres. La méthode retourne vrai * si la famille existe * \param family_name nom de la famille */ inline bool EventManager::ResetFamily ( const string & family_name ) { return ( spec_list.ResetFamily(family_name) ); } //---------------------------------------------------------------------- // ECRITURE DES STRUCTURES /*! Ecriture de l'événement courant sur la sortie standard. * \param all indique s'il faut écrire tout l'événement, y compris * les paramètres non affectés * \param pmin numéro du 1er paramètre à écrire (à partir de 0) * \param pmax numéro du dernier paramètre (exclus) */ inline void EventManager::DumpEvent ( const bool all, const u_int pmin, const u_int pmax ) const { DumpEvent ( cout, all, pmin, pmax ); } /*! Ecriture de la structure d'événement sur la sortie standard. * Tous les paramètres (y compris ceux définis par l'utilisateur) * sont écris. */ inline void EventManager::PrintEvent ( ) const { PrintEvent ( cout ); } /*! Ecriture de la liste de spectres sur la sortie standard. */ inline void EventManager::PrintSpecList ( ) const { PrintSpecList ( cout ); } //---------------------------------------------------------------------- /*! Ecriture d'une familles de spectres sur la sortie standard. * \param family_name nom de la famille ("" pour toutes les familles) */ inline void EventManager::PrintFamily ( const string & family_name ) { spec_list.PrintFamily ( family_name ); } /*! Ecriture d'une familles de spectres dans un flux de sortie. * \param os flux de sortie * \param family_name nom de la famille ("" pour toutes les familles) */ inline void EventManager::PrintFamily ( ostream &os, const string & family_name ) { spec_list.PrintFamily ( os, family_name ); } /*! Ecriture d'une familles de spectres dans un fichier. * \param file_name nom du fichier * \param family_name nom de la famille ("" pour toutes les familles) */ inline void EventManager::PrintFamily ( const string & file_name, const string & family_name) { spec_list.PrintFamily ( file_name, family_name ); } //---------------------------------------------------------------------- /*! Retire un filtre du gestionnaire, en vérifiant au préalable s'il * est utilisé par les autres filtres de la liste ou par les spectres. * \param f pointeur sur le filtre à supprimer * \param force indique s'il faut forcer la suppression des filtres * utilisant celui qui est supprimé */ inline bool EventManager::RemoveFilter ( Filter *f, const bool force ) { return ( filter_list.RemoveFilter (f,force) ); } /*! Retire un filtre du gestionnaire, en vérifiant au préalable s'il * est utilisé par les autres filtres de la liste ou par les spectres. * \param f_name nom du filtre à supprimer * \param force indique s'il faut forcer la suppression des filtres * utilisant celui qui est supprimé */ inline bool EventManager::RemoveFilter ( const string &f_name, const bool force ) { return ( filter_list.RemoveFilter (f_name,force) ); } /*! Retire un filtre du gestionnaire, en vérifiant au préalable s'il * est utilisé par les autres filtres de la liste ou par les spectres. * \param f_num numéro du filtre à supprimer * \param force indique s'il faut forcer la suppression des filtres * utilisant celui qui est supprimé */ inline bool EventManager::RemoveFilter ( const int f_num, const bool force ) { return ( filter_list.RemoveFilter (f_num,force) ); } /*! Fonction qui teste l'état d'un filtre. * \param f pointeur sur le filtre */ inline bool EventManager::CheckFilter ( const Filter * f ) { return ( (f == NULL) ? false : f->Ok() ); } //---------------------------------------------------------------------- /*! Retourne le pointeur sur un contour de la liste, ou NULL si le contour * n'existe pas. * \param cname nom du contour recherché */ inline RContour * EventManager::GetContourPtr ( const string &cname ) const { return ( GetContourListPtr()->FindName(cname) ); } /*! Retourne le pointeur sur un contour de la liste, ou NULL si le contour * n'existe pas. * \param cnum numéro du contour recherché */ inline RContour * EventManager::GetContourPtr ( const u_int cnum ) const { return ( GetContourListPtr()->Goto(cnum) ); } /*! Retourne le numéro d'un contour de la liste, ou -1 si le contour * n'existe pas. * \param cname nom du contour recherché */ inline int EventManager::GetContourIndex ( const string &cname ) const { return ( GetFilterListPtr()->GetContourIndex (cname) ); } /*! Retourne le nom d'un contour de la liste, ou une chaîne vide si le contour * n'existe pas. * \param cnum numéro du contour recherché */ inline string EventManager::GetContourName ( const u_int cnum ) const { RContour *ptr = GetContourPtr(cnum); return ( (ptr == NULL) ? "" : ptr->GetName() ); } /*! Retourne le pointeur sur un filtre de la liste, ou NULL si le filtre * n'existe pas. * \param fname nom du filtre recherché */ inline Filter * EventManager::GetFilterPtr ( const string &fname ) const { return ( GetFilterListPtr()->FindName(fname) ); } /*! Retourne le pointeur sur un filtre de la liste, ou NULL si le filtre * n'existe pas. * \param fnum numéro du filtre recherché */ inline Filter * EventManager::GetFilterPtr ( const u_int fnum ) const { return ( GetFilterListPtr()->Goto(fnum) ); } /*! Retourne le numéro d'un filtre de la liste, ou -1 si le filtre * n'existe pas. * \param fname nom du filtre recherché */ inline int EventManager::GetFilterIndex ( const string &fname ) const { return ( GetFilterListPtr()->GetFilterIndex (fname) ); } /*! Retourne le nom d'un filtre de la liste, ou une chaîne vide si le filtre * n'existe pas. * \param fnum numéro du filtre recherché */ inline string EventManager::GetFilterName ( const u_int fnum ) const { const Filter *ptr = GetFilterPtr(fnum); return ( (ptr == NULL) ? "" : ptr->GetName() ); } //====================================================================== #endif
726  */
727 inline int EventManager::AddParamSingle ( const string &par_name, const Data &d )
728  { return (AddParam ( ParamSingle (par_name,d) )); }
729 
730 /*! Ajoute un paramètre utilisateur de type \b array (tableau).
731  * La fonction retourne le numéro du paramètre dans la structure d'événement,
732  * où une valeur négative en cas d'erreur.
733  * \param par_name nom du paramètre
734  * \param dim dimension du paramètre tableau
735  * \param d donnée qui fixe le type numérique associé */ inline int EventManager::AddParamArray ( const string &par_name, const u_int dim, const Data &d ) { return (AddParam ( ParamArray (par_name, dim, d) )); } /*! Ajoute un paramètre utilisateur de type \b multihit. * La fonction retourne le numéro du paramètre dans la structure d'événement, * où une valeur négative en cas d'erreur. * \param par_name nom du paramètre * \param d donnée qui fixe le type numérique associé */ inline int EventManager::AddParamMultihit ( const string &par_name, const Data &d ) { return (AddParam ( ParamMultihit (par_name, d) )); } /*! Renvoie le pointeur d'un paramètre identifié par son nom. * Si le paramètre n'existe pas, un pointeur NULL est retournée. * \param n numéro du paramètre */ inline const Param * EventManager::GetParamPtr ( const u_int n ) const { return (event.GetParamPtr ( n )); } /*! Renvoie le pointeur d'un paramètre identifié par son numéro. * Si le paramètre n'existe pas, un pointeur NULL est retournée. * \param par_name nom du paramètre */ inline const Param * EventManager::GetParamPtr ( const string &par_name ) const { return (event.GetParamPtr ( par_name )); } /*! Renvoie le nom d'un paramètre identifié par son numéro. * Si le paramètre n'existe pas, une chaîne vide est retournée. * \param n numéro du paramètre */ inline string EventManager::GetParamName ( const u_int n ) const { return (event.GetParamName ( n )); } /*! Renvoie le numéro d'un paramètre identifié par son nom. * Si le paramètre n'existe pas, la valeur EVENT_UNKNOWN_PARAM est * retournée. * \param par_name nom du paramètre */ inline int EventManager::GetParamIndex ( const string &par_name ) const { return (event.GetParamIndex ( par_name )); } /*! Retourne la dimension d'un paramètre, ou Event::undefinedParam si le * paramètre n'est pas défini. * \param n numéro du paramètre */ inline int EventManager::GetParamDimension ( const u_int n ) const { return (event.GetParamDimension ( n )); } /*! Retourne la dimension d'un paramètre, ou Event::undefinedParam si le * paramètre n'est pas défini. * \param par_name nom du paramètre */ inline int EventManager::GetParamDimension ( const string &par_name ) const { return (event.GetParamDimension ( par_name )); } /*! Méthode patron qui sert à l'affectation d'un paramètre utilisateur * à partir d'une valeur donnée par un type de base ou une instance * de type Data. * Dans le cas d'un paramètre de type ParamArray, c'est la donnée * courante du tableau qui est affectée. * Dans le cas d'un paramètre de type ParamMultihit, une nouvelle * donnée est ajoutée en fin de liste. * Le type en retour est une référence sur l'instance Data associée au * paramètre (après affectation), avec le qualificatif const car la donnée * en retour (par référence) ne doit pas être modifiée directement. * \param num numéro de paramètre * \param val valeur à affecter (Data ou type de base) */ template < class T > const Data & EventManager::SetParam( const u_int num, const T &val ) { if (num < event.GetSize()) return (event[num] = val); else { GLogWarning ( "GetParam(): parameter number " + GGetString(num) + " over event size [0:" + GGetString(event.GetSize()) + "]"); return (bad_data); } } /*! Méthode patron qui sert à l'affectation d'un paramètre utilisateur * à partir d'une valeur donnée par un type de base ou une instance * de type Data. * Dans le cas d'un paramètre de type ParamArray, c'est la donnée * courante du tableau qui est affectée. * Dans le cas d'un paramètre de type ParamMultihit, une nouvelle * donnée est ajoutée en fin de liste. * Le type en retour est une référence sur l'instance Data associée au * paramètre (après affectation), avec le qualificatif const car la donnée * en retour (par référence) ne doit pas être modifiée directement. * \param par_name nom du paramètre * \param val valeur à affecter (Data ou type de base) */ template < class T > const Data & EventManager::SetParam( const string &par_name, const T &val ) { u_int num = event.GetParamIndex(par_name); if (num < event.GetSize()) return (SetParam(num,val)); else { GLogWarning ( "GetParam(): no parameter " + par_name); return (bad_data); } } /*! Méthode patron qui sert à l'affectation d'un paramètre utilisateur * à partir d'une valeur donnée par un type de base ou une instance * de type Data. * Le type en retour est une référence sur l'instance Data associée au * paramètre (après affectation), avec le qualificatif const car la donnée * en retour (par référence) ne doit pas être modifiée directement. * Dans le cas d'un paramètre de type ParamMultihit, cette méthode ne * doit être appelée que pour modifier une donnée déjà dans la liste. * Pour ajouter une nouvelle donnée à la liste il faut appeler la * méthode sans spécification d'index. * \param num numéro de paramètre * \param index index de la valeur à affecter dans le paramètre * \param val valeur à affecter (Data ou type de base) */ template < class T > const Data & EventManager::SetParam( const u_int num, const u_int index, const T &val ) { if (num < event.GetSize()) { Param &p = event[num]; if (index < p.Dimension()) { //cerr << "EventManager::SetParam: p[index] = val" << endl; return (p[index] = val); } else { return (bad_data); } } else { GLogWarning ( "GetParam(): parameter number " + GGetString(num) + " over event size [0:" + GGetString(event.GetSize()) + "]"); return (bad_data); } } /*! Méthode patron qui sert à l'affectation d'un paramètre utilisateur * à partir d'une valeur donnée par un type de base ou une instance * de type Data. * Le type en retour est une référence sur l'instance Data associée au * paramètre (après affectation), avec le qualificatif const car la donnée * en retour (par référence) ne doit pas être modifiée directement. * Dans le cas d'un paramètre de type ParamMultihit, cette méthode ne * doit être appelée que pour modifier une donnée déjà dans la liste. * Pour ajouter une nouvelle donnée à la liste il faut appeler la * méthode sans spécification d'index. * \param par_name nom du paramètre * \param index index de la valeur à affecter dans le paramètre * \param val valeur à affecter (Data ou type de base) */ template < class T > const Data & EventManager::SetParam ( const string &par_name, const u_int index, const T &val ) { u_int num = event.GetParamIndex(par_name); if (num < event.GetSize()) return (SetParam(num,val)); else { GLogWarning ( "GetParam(): no parameter " + par_name); return (bad_data); } } //---------------------------------------------------------------------- // ARBRES /*! Retourne le pointeur sur un arbre à partir de son numéro dans * la liste. Si l'arbre n'existe pas, retourne NULL. * \param t_num numéro de l'arbre recherché */ inline TreeInfo * EventManager::GetTreePtr ( const u_int t_num ) const { return ( tree_list.GetTreePtr (t_num) ); } /*! Retourne le pointeur sur un arbre à partir de son nom dans * la liste. Si l'arbre n'existe pas, retourne NULL. * \param t_name nom de l'arbre recherché */ inline TreeInfo * EventManager::GetTreePtr ( const string & t_name ) const { return ( tree_list.GetTreePtr (t_name) ); } /*! Retourne le numéro d'un arbre à partir de son nom dans * la liste. Si l'arbre n'existe pas, retourne -1. * \param t_name nom de l'arbre recherché */ inline int EventManager::GetTreeIndex ( const string & t_name ) const { return ( tree_list.GetTreeIndex (t_name) ); } /*! Ouvre tous les arbres de la liste qui sont pas déjà ouverts. * L'argument indique le mode sélectionné: seuls les arbres fonctionnant * sur ce mode sont ouverts (tous si m vaut -1). * \param m mode de fichier sélectionné */ inline void EventManager::OpenTreeList ( const Int_t m ) const { tree_list.OpenList ( m ); } /*! Ferme tous les arbres de la liste. * L'argument indique le mode sélectionné: seuls les arbres fonctionnant * sur ce mode sont fermés (tous si m vaut -1). * \param m mode de fichier sélectionné */ inline void EventManager::CloseTreeList ( const Int_t m ) const { tree_list.CloseList ( m ); } //---------------------------------------------------------------------- // SPECTRES ET HISTOGRAMMES /*! Renomme un spectre de la liste et éventuellement ses axes. * La fonction retourne vrai si l'opération est réussie, et faux * si un spectre protre déjà ce nom ou que le spectre n'est * pas trouvé. * \param num numéro du spectre à renommer * \param name nom du spectre * \param name_x nom de l'axe X * \param name_y nom de l'axe Y * \param name_z nom de l'axe Z */ inline bool EventManager::RenameSpectrum ( const u_int num, const string &name, const string &name_x, const string &name_y, const string &name_z ) { return ( spec_list.RenameSpectrum(num, name, name_x, name_y, name_z) ); } /*! Renomme un spectre de la liste et éventuellement ses axes. * La fonction retourne vrai si l'opération est réussie, et faux * si un spectre protre déjà ce nom ou que le spectre n'est * pas trouvé. * \param spec_name numéro du spectre à renommer * \param name nom du spectre * \param name_x nom de l'axe X * \param name_y nom de l'axe Y * \param name_z nom de l'axe Z */ inline bool EventManager::RenameSpectrum ( const string & spec_name, const string &name, const string &name_x, const string &name_y, const string &name_z ) { return ( spec_list.RenameSpectrum(spec_name, name, name_x, name_y, name_z) ); } /*! Incrémentation automatique (rapide) des spectres et des arbres, * avec mise à jour préalable des filtres. */ inline void EventManager::IncrementSpectra ( ) const { filter_list.UpdateValues (); spec_list.IncrementListFast(); //spec_list.UpdateList(); // pas à chaque événement !!! tree_list.IncrementListFast(); } /*! Retourne le pointeur sur un spectre à partir de son numéro dans * la liste. Si le spectre n'existe pas, retourne NULL. * \param num numéro du spectre recherché */ inline Spectrum * EventManager::GetSpectrumPtr ( const u_int num ) const { return ( spec_list.GetSpectrumPtr (num) ); } /*! Retourne le pointeur sur un spectre à partir de son nom dans * la liste. Si le spectre n'existe pas, retourne NULL. * \param spec_name nom du spectre recherché */ inline Spectrum * EventManager::GetSpectrumPtr ( const string & spec_name ) const { return ( spec_list.GetSpectrumPtr (spec_name) ); } /*! Retourne le numéro d'un spectre à partir de son nom dans * la liste. Si le spectre n'existe pas, retourne -1. * \param spec_name nom du spectre recherché */ inline int EventManager::GetSpectrumIndex ( const string & spec_name ) const { return ( spec_list.GetSpectrumIndex (spec_name) ); } /*! Retourne le nom d'un spectre de la liste, ou une chaîne vide si le spectre * n'existe pas. * \param spec_num numéro du spectre recherché */ inline string EventManager::GetSpectrumName ( const u_int spec_num ) const { return ( spec_list.GetSpectrumName (spec_num) ); } /*! Retourne le pointeur sur l'histogramme d'un spectre à partir de * son numéro dans la liste. * Si le spectre n'existe pas, retourne NULL. * \param num numéro du spectre dont on cherche l'histogramme */ inline TH1 * EventManager::GetHistoPtr ( const u_int num ) const { return ( spec_list.GetHistoPtr (num) ); } /*! Retourne le pointeur sur l'histogramme d'un spectre à partir de * son nom dans la liste. * Si le spectre n'existe pas, retourne NULL. * \param spec_name nom du spectre dont on cherche l'histogramme */ inline TH1 * EventManager::GetHistoPtr ( const string & spec_name ) const { return ( spec_list.GetHistoPtr (spec_name) ); } //---------------------------------------------------------------------- // FAMILLES DE SPECTRES /*! Place un spectre dans une famille. * \param spec_name nom du spectre * \param family_name nom de la famille de spectres */ inline bool EventManager::SetSpectrumFamily ( const string & spec_name, const string & family_name ) { return ( spec_list.SetSpectrumFamily(spec_name,family_name) ); } /*! Place un spectre dans une famille. * \param spec_num numéro du spectre * \param family_name nom de la famille de spectres */ inline bool EventManager::SetSpectrumFamily ( const u_int spec_num, const string & family_name ) { return ( spec_list.SetSpectrumFamily(spec_num,family_name) ); } /*! Retire un spectre de sa famille (le spectre lui-même n'est pas * affecté). * \param spec_name nom du spectre */ inline bool EventManager::ResetSpectrumFamily ( const string & spec_name ) { return ( spec_list.ResetSpectrumFamily(spec_name) ); } /*! Retire un spectre de sa famille (le spectre lui-même n'est pas * affecté). * \param spec_num numéro du spectre */ inline bool EventManager::ResetSpectrumFamily ( const u_int spec_num ) { return ( spec_list.ResetSpectrumFamily(spec_num) ); } /*! Démarre une famille de spectres. La méthode retourne vrai * si la famille existe * \param family_name nom de la famille */ inline bool EventManager::StartFamily ( const string & family_name ) { return ( spec_list.StartFamily(family_name) ); } /*! Arrête une famille de spectres. La méthode retourne vrai * si la famille existe * \param family_name nom de la famille */ inline bool EventManager::StopFamily ( const string & family_name ) { return ( spec_list.StopFamily(family_name) ); } /*! Suspend une famille de spectres. La méthode retourne vrai * si la famille existe * \param family_name nom de la famille */ inline bool EventManager::SuspendFamily ( const string & family_name ) { return ( spec_list.SuspendFamily(family_name) ); } /*! Remise à zéro d'une famille de spectres. La méthode retourne vrai * si la famille existe * \param family_name nom de la famille */ inline bool EventManager::ResetFamily ( const string & family_name ) { return ( spec_list.ResetFamily(family_name) ); } //---------------------------------------------------------------------- // ECRITURE DES STRUCTURES /*! Ecriture de l'événement courant sur la sortie standard. * \param all indique s'il faut écrire tout l'événement, y compris * les paramètres non affectés * \param pmin numéro du 1er paramètre à écrire (à partir de 0) * \param pmax numéro du dernier paramètre (exclus) */ inline void EventManager::DumpEvent ( const bool all, const u_int pmin, const u_int pmax ) const { DumpEvent ( cout, all, pmin, pmax ); } /*! Ecriture de la structure d'événement sur la sortie standard. * Tous les paramètres (y compris ceux définis par l'utilisateur) * sont écris. */ inline void EventManager::PrintEvent ( ) const { PrintEvent ( cout ); } /*! Ecriture de la liste de spectres sur la sortie standard. */ inline void EventManager::PrintSpecList ( ) const { PrintSpecList ( cout ); } //---------------------------------------------------------------------- /*! Ecriture d'une familles de spectres sur la sortie standard. * \param family_name nom de la famille ("" pour toutes les familles) */ inline void EventManager::PrintFamily ( const string & family_name ) { spec_list.PrintFamily ( family_name ); } /*! Ecriture d'une familles de spectres dans un flux de sortie. * \param os flux de sortie * \param family_name nom de la famille ("" pour toutes les familles) */ inline void EventManager::PrintFamily ( ostream &os, const string & family_name ) { spec_list.PrintFamily ( os, family_name ); } /*! Ecriture d'une familles de spectres dans un fichier. * \param file_name nom du fichier * \param family_name nom de la famille ("" pour toutes les familles) */ inline void EventManager::PrintFamily ( const string & file_name, const string & family_name) { spec_list.PrintFamily ( file_name, family_name ); } //---------------------------------------------------------------------- /*! Retire un filtre du gestionnaire, en vérifiant au préalable s'il * est utilisé par les autres filtres de la liste ou par les spectres. * \param f pointeur sur le filtre à supprimer * \param force indique s'il faut forcer la suppression des filtres * utilisant celui qui est supprimé */ inline bool EventManager::RemoveFilter ( Filter *f, const bool force ) { return ( filter_list.RemoveFilter (f,force) ); } /*! Retire un filtre du gestionnaire, en vérifiant au préalable s'il * est utilisé par les autres filtres de la liste ou par les spectres. * \param f_name nom du filtre à supprimer * \param force indique s'il faut forcer la suppression des filtres * utilisant celui qui est supprimé */ inline bool EventManager::RemoveFilter ( const string &f_name, const bool force ) { return ( filter_list.RemoveFilter (f_name,force) ); } /*! Retire un filtre du gestionnaire, en vérifiant au préalable s'il * est utilisé par les autres filtres de la liste ou par les spectres. * \param f_num numéro du filtre à supprimer * \param force indique s'il faut forcer la suppression des filtres * utilisant celui qui est supprimé */ inline bool EventManager::RemoveFilter ( const int f_num, const bool force ) { return ( filter_list.RemoveFilter (f_num,force) ); } /*! Fonction qui teste l'état d'un filtre. * \param f pointeur sur le filtre */ inline bool EventManager::CheckFilter ( const Filter * f ) { return ( (f == NULL) ? false : f->Ok() ); } //---------------------------------------------------------------------- /*! Retourne le pointeur sur un contour de la liste, ou NULL si le contour * n'existe pas. * \param cname nom du contour recherché */ inline RContour * EventManager::GetContourPtr ( const string &cname ) const { return ( GetContourListPtr()->FindName(cname) ); } /*! Retourne le pointeur sur un contour de la liste, ou NULL si le contour * n'existe pas. * \param cnum numéro du contour recherché */ inline RContour * EventManager::GetContourPtr ( const u_int cnum ) const { return ( GetContourListPtr()->Goto(cnum) ); } /*! Retourne le numéro d'un contour de la liste, ou -1 si le contour * n'existe pas. * \param cname nom du contour recherché */ inline int EventManager::GetContourIndex ( const string &cname ) const { return ( GetFilterListPtr()->GetContourIndex (cname) ); } /*! Retourne le nom d'un contour de la liste, ou une chaîne vide si le contour * n'existe pas. * \param cnum numéro du contour recherché */ inline string EventManager::GetContourName ( const u_int cnum ) const { RContour *ptr = GetContourPtr(cnum); return ( (ptr == NULL) ? "" : ptr->GetName() ); } /*! Retourne le pointeur sur un filtre de la liste, ou NULL si le filtre * n'existe pas. * \param fname nom du filtre recherché */ inline Filter * EventManager::GetFilterPtr ( const string &fname ) const { return ( GetFilterListPtr()->FindName(fname) ); } /*! Retourne le pointeur sur un filtre de la liste, ou NULL si le filtre * n'existe pas. * \param fnum numéro du filtre recherché */ inline Filter * EventManager::GetFilterPtr ( const u_int fnum ) const { return ( GetFilterListPtr()->Goto(fnum) ); } /*! Retourne le numéro d'un filtre de la liste, ou -1 si le filtre * n'existe pas. * \param fname nom du filtre recherché */ inline int EventManager::GetFilterIndex ( const string &fname ) const { return ( GetFilterListPtr()->GetFilterIndex (fname) ); } /*! Retourne le nom d'un filtre de la liste, ou une chaîne vide si le filtre * n'existe pas. * \param fnum numéro du filtre recherché */ inline string EventManager::GetFilterName ( const u_int fnum ) const { const Filter *ptr = GetFilterPtr(fnum); return ( (ptr == NULL) ? "" : ptr->GetName() ); } //====================================================================== #endif
736  */
737 inline int EventManager::AddParamArray ( const string &par_name, const u_int dim, const Data &d )
738  { return (AddParam ( ParamArray (par_name, dim, d) )); }
739 
740 /*! Ajoute un paramètre utilisateur de type \b multihit.
741  * La fonction retourne le numéro du paramètre dans la structure d'événement,
742  * où une valeur négative en cas d'erreur.
743  * \param par_name nom du paramètre
744  * \param d donnée qui fixe le type numérique associé */ inline int EventManager::AddParamMultihit ( const string &par_name, const Data &d ) { return (AddParam ( ParamMultihit (par_name, d) )); } /*! Renvoie le pointeur d'un paramètre identifié par son nom. * Si le paramètre n'existe pas, un pointeur NULL est retournée. * \param n numéro du paramètre */ inline const Param * EventManager::GetParamPtr ( const u_int n ) const { return (event.GetParamPtr ( n )); } /*! Renvoie le pointeur d'un paramètre identifié par son numéro. * Si le paramètre n'existe pas, un pointeur NULL est retournée. * \param par_name nom du paramètre */ inline const Param * EventManager::GetParamPtr ( const string &par_name ) const { return (event.GetParamPtr ( par_name )); } /*! Renvoie le nom d'un paramètre identifié par son numéro. * Si le paramètre n'existe pas, une chaîne vide est retournée. * \param n numéro du paramètre */ inline string EventManager::GetParamName ( const u_int n ) const { return (event.GetParamName ( n )); } /*! Renvoie le numéro d'un paramètre identifié par son nom. * Si le paramètre n'existe pas, la valeur EVENT_UNKNOWN_PARAM est * retournée. * \param par_name nom du paramètre */ inline int EventManager::GetParamIndex ( const string &par_name ) const { return (event.GetParamIndex ( par_name )); } /*! Retourne la dimension d'un paramètre, ou Event::undefinedParam si le * paramètre n'est pas défini. * \param n numéro du paramètre */ inline int EventManager::GetParamDimension ( const u_int n ) const { return (event.GetParamDimension ( n )); } /*! Retourne la dimension d'un paramètre, ou Event::undefinedParam si le * paramètre n'est pas défini. * \param par_name nom du paramètre */ inline int EventManager::GetParamDimension ( const string &par_name ) const { return (event.GetParamDimension ( par_name )); } /*! Méthode patron qui sert à l'affectation d'un paramètre utilisateur * à partir d'une valeur donnée par un type de base ou une instance * de type Data. * Dans le cas d'un paramètre de type ParamArray, c'est la donnée * courante du tableau qui est affectée. * Dans le cas d'un paramètre de type ParamMultihit, une nouvelle * donnée est ajoutée en fin de liste. * Le type en retour est une référence sur l'instance Data associée au * paramètre (après affectation), avec le qualificatif const car la donnée * en retour (par référence) ne doit pas être modifiée directement. * \param num numéro de paramètre * \param val valeur à affecter (Data ou type de base) */ template < class T > const Data & EventManager::SetParam( const u_int num, const T &val ) { if (num < event.GetSize()) return (event[num] = val); else { GLogWarning ( "GetParam(): parameter number " + GGetString(num) + " over event size [0:" + GGetString(event.GetSize()) + "]"); return (bad_data); } } /*! Méthode patron qui sert à l'affectation d'un paramètre utilisateur * à partir d'une valeur donnée par un type de base ou une instance * de type Data. * Dans le cas d'un paramètre de type ParamArray, c'est la donnée * courante du tableau qui est affectée. * Dans le cas d'un paramètre de type ParamMultihit, une nouvelle * donnée est ajoutée en fin de liste. * Le type en retour est une référence sur l'instance Data associée au * paramètre (après affectation), avec le qualificatif const car la donnée * en retour (par référence) ne doit pas être modifiée directement. * \param par_name nom du paramètre * \param val valeur à affecter (Data ou type de base) */ template < class T > const Data & EventManager::SetParam( const string &par_name, const T &val ) { u_int num = event.GetParamIndex(par_name); if (num < event.GetSize()) return (SetParam(num,val)); else { GLogWarning ( "GetParam(): no parameter " + par_name); return (bad_data); } } /*! Méthode patron qui sert à l'affectation d'un paramètre utilisateur * à partir d'une valeur donnée par un type de base ou une instance * de type Data. * Le type en retour est une référence sur l'instance Data associée au * paramètre (après affectation), avec le qualificatif const car la donnée * en retour (par référence) ne doit pas être modifiée directement. * Dans le cas d'un paramètre de type ParamMultihit, cette méthode ne * doit être appelée que pour modifier une donnée déjà dans la liste. * Pour ajouter une nouvelle donnée à la liste il faut appeler la * méthode sans spécification d'index. * \param num numéro de paramètre * \param index index de la valeur à affecter dans le paramètre * \param val valeur à affecter (Data ou type de base) */ template < class T > const Data & EventManager::SetParam( const u_int num, const u_int index, const T &val ) { if (num < event.GetSize()) { Param &p = event[num]; if (index < p.Dimension()) { //cerr << "EventManager::SetParam: p[index] = val" << endl; return (p[index] = val); } else { return (bad_data); } } else { GLogWarning ( "GetParam(): parameter number " + GGetString(num) + " over event size [0:" + GGetString(event.GetSize()) + "]"); return (bad_data); } } /*! Méthode patron qui sert à l'affectation d'un paramètre utilisateur * à partir d'une valeur donnée par un type de base ou une instance * de type Data. * Le type en retour est une référence sur l'instance Data associée au * paramètre (après affectation), avec le qualificatif const car la donnée * en retour (par référence) ne doit pas être modifiée directement. * Dans le cas d'un paramètre de type ParamMultihit, cette méthode ne * doit être appelée que pour modifier une donnée déjà dans la liste. * Pour ajouter une nouvelle donnée à la liste il faut appeler la * méthode sans spécification d'index. * \param par_name nom du paramètre * \param index index de la valeur à affecter dans le paramètre * \param val valeur à affecter (Data ou type de base) */ template < class T > const Data & EventManager::SetParam ( const string &par_name, const u_int index, const T &val ) { u_int num = event.GetParamIndex(par_name); if (num < event.GetSize()) return (SetParam(num,val)); else { GLogWarning ( "GetParam(): no parameter " + par_name); return (bad_data); } } //---------------------------------------------------------------------- // ARBRES /*! Retourne le pointeur sur un arbre à partir de son numéro dans * la liste. Si l'arbre n'existe pas, retourne NULL. * \param t_num numéro de l'arbre recherché */ inline TreeInfo * EventManager::GetTreePtr ( const u_int t_num ) const { return ( tree_list.GetTreePtr (t_num) ); } /*! Retourne le pointeur sur un arbre à partir de son nom dans * la liste. Si l'arbre n'existe pas, retourne NULL. * \param t_name nom de l'arbre recherché */ inline TreeInfo * EventManager::GetTreePtr ( const string & t_name ) const { return ( tree_list.GetTreePtr (t_name) ); } /*! Retourne le numéro d'un arbre à partir de son nom dans * la liste. Si l'arbre n'existe pas, retourne -1. * \param t_name nom de l'arbre recherché */ inline int EventManager::GetTreeIndex ( const string & t_name ) const { return ( tree_list.GetTreeIndex (t_name) ); } /*! Ouvre tous les arbres de la liste qui sont pas déjà ouverts. * L'argument indique le mode sélectionné: seuls les arbres fonctionnant * sur ce mode sont ouverts (tous si m vaut -1). * \param m mode de fichier sélectionné */ inline void EventManager::OpenTreeList ( const Int_t m ) const { tree_list.OpenList ( m ); } /*! Ferme tous les arbres de la liste. * L'argument indique le mode sélectionné: seuls les arbres fonctionnant * sur ce mode sont fermés (tous si m vaut -1). * \param m mode de fichier sélectionné */ inline void EventManager::CloseTreeList ( const Int_t m ) const { tree_list.CloseList ( m ); } //---------------------------------------------------------------------- // SPECTRES ET HISTOGRAMMES /*! Renomme un spectre de la liste et éventuellement ses axes. * La fonction retourne vrai si l'opération est réussie, et faux * si un spectre protre déjà ce nom ou que le spectre n'est * pas trouvé. * \param num numéro du spectre à renommer * \param name nom du spectre * \param name_x nom de l'axe X * \param name_y nom de l'axe Y * \param name_z nom de l'axe Z */ inline bool EventManager::RenameSpectrum ( const u_int num, const string &name, const string &name_x, const string &name_y, const string &name_z ) { return ( spec_list.RenameSpectrum(num, name, name_x, name_y, name_z) ); } /*! Renomme un spectre de la liste et éventuellement ses axes. * La fonction retourne vrai si l'opération est réussie, et faux * si un spectre protre déjà ce nom ou que le spectre n'est * pas trouvé. * \param spec_name numéro du spectre à renommer * \param name nom du spectre * \param name_x nom de l'axe X * \param name_y nom de l'axe Y * \param name_z nom de l'axe Z */ inline bool EventManager::RenameSpectrum ( const string & spec_name, const string &name, const string &name_x, const string &name_y, const string &name_z ) { return ( spec_list.RenameSpectrum(spec_name, name, name_x, name_y, name_z) ); } /*! Incrémentation automatique (rapide) des spectres et des arbres, * avec mise à jour préalable des filtres. */ inline void EventManager::IncrementSpectra ( ) const { filter_list.UpdateValues (); spec_list.IncrementListFast(); //spec_list.UpdateList(); // pas à chaque événement !!! tree_list.IncrementListFast(); } /*! Retourne le pointeur sur un spectre à partir de son numéro dans * la liste. Si le spectre n'existe pas, retourne NULL. * \param num numéro du spectre recherché */ inline Spectrum * EventManager::GetSpectrumPtr ( const u_int num ) const { return ( spec_list.GetSpectrumPtr (num) ); } /*! Retourne le pointeur sur un spectre à partir de son nom dans * la liste. Si le spectre n'existe pas, retourne NULL. * \param spec_name nom du spectre recherché */ inline Spectrum * EventManager::GetSpectrumPtr ( const string & spec_name ) const { return ( spec_list.GetSpectrumPtr (spec_name) ); } /*! Retourne le numéro d'un spectre à partir de son nom dans * la liste. Si le spectre n'existe pas, retourne -1. * \param spec_name nom du spectre recherché */ inline int EventManager::GetSpectrumIndex ( const string & spec_name ) const { return ( spec_list.GetSpectrumIndex (spec_name) ); } /*! Retourne le nom d'un spectre de la liste, ou une chaîne vide si le spectre * n'existe pas. * \param spec_num numéro du spectre recherché */ inline string EventManager::GetSpectrumName ( const u_int spec_num ) const { return ( spec_list.GetSpectrumName (spec_num) ); } /*! Retourne le pointeur sur l'histogramme d'un spectre à partir de * son numéro dans la liste. * Si le spectre n'existe pas, retourne NULL. * \param num numéro du spectre dont on cherche l'histogramme */ inline TH1 * EventManager::GetHistoPtr ( const u_int num ) const { return ( spec_list.GetHistoPtr (num) ); } /*! Retourne le pointeur sur l'histogramme d'un spectre à partir de * son nom dans la liste. * Si le spectre n'existe pas, retourne NULL. * \param spec_name nom du spectre dont on cherche l'histogramme */ inline TH1 * EventManager::GetHistoPtr ( const string & spec_name ) const { return ( spec_list.GetHistoPtr (spec_name) ); } //---------------------------------------------------------------------- // FAMILLES DE SPECTRES /*! Place un spectre dans une famille. * \param spec_name nom du spectre * \param family_name nom de la famille de spectres */ inline bool EventManager::SetSpectrumFamily ( const string & spec_name, const string & family_name ) { return ( spec_list.SetSpectrumFamily(spec_name,family_name) ); } /*! Place un spectre dans une famille. * \param spec_num numéro du spectre * \param family_name nom de la famille de spectres */ inline bool EventManager::SetSpectrumFamily ( const u_int spec_num, const string & family_name ) { return ( spec_list.SetSpectrumFamily(spec_num,family_name) ); } /*! Retire un spectre de sa famille (le spectre lui-même n'est pas * affecté). * \param spec_name nom du spectre */ inline bool EventManager::ResetSpectrumFamily ( const string & spec_name ) { return ( spec_list.ResetSpectrumFamily(spec_name) ); } /*! Retire un spectre de sa famille (le spectre lui-même n'est pas * affecté). * \param spec_num numéro du spectre */ inline bool EventManager::ResetSpectrumFamily ( const u_int spec_num ) { return ( spec_list.ResetSpectrumFamily(spec_num) ); } /*! Démarre une famille de spectres. La méthode retourne vrai * si la famille existe * \param family_name nom de la famille */ inline bool EventManager::StartFamily ( const string & family_name ) { return ( spec_list.StartFamily(family_name) ); } /*! Arrête une famille de spectres. La méthode retourne vrai * si la famille existe * \param family_name nom de la famille */ inline bool EventManager::StopFamily ( const string & family_name ) { return ( spec_list.StopFamily(family_name) ); } /*! Suspend une famille de spectres. La méthode retourne vrai * si la famille existe * \param family_name nom de la famille */ inline bool EventManager::SuspendFamily ( const string & family_name ) { return ( spec_list.SuspendFamily(family_name) ); } /*! Remise à zéro d'une famille de spectres. La méthode retourne vrai * si la famille existe * \param family_name nom de la famille */ inline bool EventManager::ResetFamily ( const string & family_name ) { return ( spec_list.ResetFamily(family_name) ); } //---------------------------------------------------------------------- // ECRITURE DES STRUCTURES /*! Ecriture de l'événement courant sur la sortie standard. * \param all indique s'il faut écrire tout l'événement, y compris * les paramètres non affectés * \param pmin numéro du 1er paramètre à écrire (à partir de 0) * \param pmax numéro du dernier paramètre (exclus) */ inline void EventManager::DumpEvent ( const bool all, const u_int pmin, const u_int pmax ) const { DumpEvent ( cout, all, pmin, pmax ); } /*! Ecriture de la structure d'événement sur la sortie standard. * Tous les paramètres (y compris ceux définis par l'utilisateur) * sont écris. */ inline void EventManager::PrintEvent ( ) const { PrintEvent ( cout ); } /*! Ecriture de la liste de spectres sur la sortie standard. */ inline void EventManager::PrintSpecList ( ) const { PrintSpecList ( cout ); } //---------------------------------------------------------------------- /*! Ecriture d'une familles de spectres sur la sortie standard. * \param family_name nom de la famille ("" pour toutes les familles) */ inline void EventManager::PrintFamily ( const string & family_name ) { spec_list.PrintFamily ( family_name ); } /*! Ecriture d'une familles de spectres dans un flux de sortie. * \param os flux de sortie * \param family_name nom de la famille ("" pour toutes les familles) */ inline void EventManager::PrintFamily ( ostream &os, const string & family_name ) { spec_list.PrintFamily ( os, family_name ); } /*! Ecriture d'une familles de spectres dans un fichier. * \param file_name nom du fichier * \param family_name nom de la famille ("" pour toutes les familles) */ inline void EventManager::PrintFamily ( const string & file_name, const string & family_name) { spec_list.PrintFamily ( file_name, family_name ); } //---------------------------------------------------------------------- /*! Retire un filtre du gestionnaire, en vérifiant au préalable s'il * est utilisé par les autres filtres de la liste ou par les spectres. * \param f pointeur sur le filtre à supprimer * \param force indique s'il faut forcer la suppression des filtres * utilisant celui qui est supprimé */ inline bool EventManager::RemoveFilter ( Filter *f, const bool force ) { return ( filter_list.RemoveFilter (f,force) ); } /*! Retire un filtre du gestionnaire, en vérifiant au préalable s'il * est utilisé par les autres filtres de la liste ou par les spectres. * \param f_name nom du filtre à supprimer * \param force indique s'il faut forcer la suppression des filtres * utilisant celui qui est supprimé */ inline bool EventManager::RemoveFilter ( const string &f_name, const bool force ) { return ( filter_list.RemoveFilter (f_name,force) ); } /*! Retire un filtre du gestionnaire, en vérifiant au préalable s'il * est utilisé par les autres filtres de la liste ou par les spectres. * \param f_num numéro du filtre à supprimer * \param force indique s'il faut forcer la suppression des filtres * utilisant celui qui est supprimé */ inline bool EventManager::RemoveFilter ( const int f_num, const bool force ) { return ( filter_list.RemoveFilter (f_num,force) ); } /*! Fonction qui teste l'état d'un filtre. * \param f pointeur sur le filtre */ inline bool EventManager::CheckFilter ( const Filter * f ) { return ( (f == NULL) ? false : f->Ok() ); } //---------------------------------------------------------------------- /*! Retourne le pointeur sur un contour de la liste, ou NULL si le contour * n'existe pas. * \param cname nom du contour recherché */ inline RContour * EventManager::GetContourPtr ( const string &cname ) const { return ( GetContourListPtr()->FindName(cname) ); } /*! Retourne le pointeur sur un contour de la liste, ou NULL si le contour * n'existe pas. * \param cnum numéro du contour recherché */ inline RContour * EventManager::GetContourPtr ( const u_int cnum ) const { return ( GetContourListPtr()->Goto(cnum) ); } /*! Retourne le numéro d'un contour de la liste, ou -1 si le contour * n'existe pas. * \param cname nom du contour recherché */ inline int EventManager::GetContourIndex ( const string &cname ) const { return ( GetFilterListPtr()->GetContourIndex (cname) ); } /*! Retourne le nom d'un contour de la liste, ou une chaîne vide si le contour * n'existe pas. * \param cnum numéro du contour recherché */ inline string EventManager::GetContourName ( const u_int cnum ) const { RContour *ptr = GetContourPtr(cnum); return ( (ptr == NULL) ? "" : ptr->GetName() ); } /*! Retourne le pointeur sur un filtre de la liste, ou NULL si le filtre * n'existe pas. * \param fname nom du filtre recherché */ inline Filter * EventManager::GetFilterPtr ( const string &fname ) const { return ( GetFilterListPtr()->FindName(fname) ); } /*! Retourne le pointeur sur un filtre de la liste, ou NULL si le filtre * n'existe pas. * \param fnum numéro du filtre recherché */ inline Filter * EventManager::GetFilterPtr ( const u_int fnum ) const { return ( GetFilterListPtr()->Goto(fnum) ); } /*! Retourne le numéro d'un filtre de la liste, ou -1 si le filtre * n'existe pas. * \param fname nom du filtre recherché */ inline int EventManager::GetFilterIndex ( const string &fname ) const { return ( GetFilterListPtr()->GetFilterIndex (fname) ); } /*! Retourne le nom d'un filtre de la liste, ou une chaîne vide si le filtre * n'existe pas. * \param fnum numéro du filtre recherché */ inline string EventManager::GetFilterName ( const u_int fnum ) const { const Filter *ptr = GetFilterPtr(fnum); return ( (ptr == NULL) ? "" : ptr->GetName() ); } //====================================================================== #endif
745  */
746 inline int EventManager::AddParamMultihit ( const string &par_name, const Data &d )
747  { return (AddParam ( ParamMultihit (par_name, d) )); }
748 
749 /*! Renvoie le pointeur d'un paramètre identifié par son nom.
750  * Si le paramètre n'existe pas, un pointeur NULL est retournée.
751  * \param n numéro du paramètre
752  */
753 inline const Param * EventManager::GetParamPtr ( const u_int n ) const
754  { return (event.GetParamPtr ( n )); }
755 
756 /*! Renvoie le pointeur d'un paramètre identifié par son numéro.
757  * Si le paramètre n'existe pas, un pointeur NULL est retournée.
758  * \param par_name nom du paramètre
759  */
760 inline const Param * EventManager::GetParamPtr ( const string &par_name ) const
761  { return (event.GetParamPtr ( par_name )); }
762 
763 /*! Renvoie le nom d'un paramètre identifié par son numéro.
764  * Si le paramètre n'existe pas, une chaîne vide est retournée.
765  * \param n numéro du paramètre
766  */
767 inline string EventManager::GetParamName ( const u_int n ) const
768  { return (event.GetParamName ( n )); }
769 
770 /*! Renvoie le numéro d'un paramètre identifié par son nom.
771  * Si le paramètre n'existe pas, la valeur EVENT_UNKNOWN_PARAM est
772  * retournée.
773  * \param par_name nom du paramètre
774  */
775 inline int EventManager::GetParamIndex ( const string &par_name ) const
776  { return (event.GetParamIndex ( par_name )); }
777 
778 /*! Retourne la dimension d'un paramètre, ou Event::undefinedParam si le
779  * paramètre n'est pas défini.
780  * \param n numéro du paramètre
781  */
782 inline int EventManager::GetParamDimension ( const u_int n ) const
783  { return (event.GetParamDimension ( n )); }
784 
785 /*! Retourne la dimension d'un paramètre, ou Event::undefinedParam si le
786  * paramètre n'est pas défini.
787  * \param par_name nom du paramètre
788  */
789 inline int EventManager::GetParamDimension ( const string &par_name ) const
790  { return (event.GetParamDimension ( par_name )); }
791 
792 
793 /*! Méthode patron qui sert à l'affectation d'un paramètre utilisateur
794  * à partir d'une valeur donnée par un type de base ou une instance
795  * de type Data.
796  * Dans le cas d'un paramètre de type ParamArray, c'est la donnée * courante du tableau qui est affectée. * Dans le cas d'un paramètre de type ParamMultihit, une nouvelle * donnée est ajoutée en fin de liste. * Le type en retour est une référence sur l'instance Data associée au * paramètre (après affectation), avec le qualificatif const car la donnée * en retour (par référence) ne doit pas être modifiée directement. * \param num numéro de paramètre * \param val valeur à affecter (Data ou type de base) */ template < class T > const Data & EventManager::SetParam( const u_int num, const T &val ) { if (num < event.GetSize()) return (event[num] = val); else { GLogWarning ( "GetParam(): parameter number " + GGetString(num) + " over event size [0:" + GGetString(event.GetSize()) + "]"); return (bad_data); } } /*! Méthode patron qui sert à l'affectation d'un paramètre utilisateur * à partir d'une valeur donnée par un type de base ou une instance * de type Data. * Dans le cas d'un paramètre de type ParamArray, c'est la donnée * courante du tableau qui est affectée. * Dans le cas d'un paramètre de type ParamMultihit, une nouvelle * donnée est ajoutée en fin de liste. * Le type en retour est une référence sur l'instance Data associée au * paramètre (après affectation), avec le qualificatif const car la donnée * en retour (par référence) ne doit pas être modifiée directement. * \param par_name nom du paramètre * \param val valeur à affecter (Data ou type de base) */ template < class T > const Data & EventManager::SetParam( const string &par_name, const T &val ) { u_int num = event.GetParamIndex(par_name); if (num < event.GetSize()) return (SetParam(num,val)); else { GLogWarning ( "GetParam(): no parameter " + par_name); return (bad_data); } } /*! Méthode patron qui sert à l'affectation d'un paramètre utilisateur * à partir d'une valeur donnée par un type de base ou une instance * de type Data. * Le type en retour est une référence sur l'instance Data associée au * paramètre (après affectation), avec le qualificatif const car la donnée * en retour (par référence) ne doit pas être modifiée directement. * Dans le cas d'un paramètre de type ParamMultihit, cette méthode ne * doit être appelée que pour modifier une donnée déjà dans la liste. * Pour ajouter une nouvelle donnée à la liste il faut appeler la * méthode sans spécification d'index. * \param num numéro de paramètre * \param index index de la valeur à affecter dans le paramètre * \param val valeur à affecter (Data ou type de base) */ template < class T > const Data & EventManager::SetParam( const u_int num, const u_int index, const T &val ) { if (num < event.GetSize()) { Param &p = event[num]; if (index < p.Dimension()) { //cerr << "EventManager::SetParam: p[index] = val" << endl; return (p[index] = val); } else { return (bad_data); } } else { GLogWarning ( "GetParam(): parameter number " + GGetString(num) + " over event size [0:" + GGetString(event.GetSize()) + "]"); return (bad_data); } } /*! Méthode patron qui sert à l'affectation d'un paramètre utilisateur * à partir d'une valeur donnée par un type de base ou une instance * de type Data. * Le type en retour est une référence sur l'instance Data associée au * paramètre (après affectation), avec le qualificatif const car la donnée * en retour (par référence) ne doit pas être modifiée directement. * Dans le cas d'un paramètre de type ParamMultihit, cette méthode ne * doit être appelée que pour modifier une donnée déjà dans la liste. * Pour ajouter une nouvelle donnée à la liste il faut appeler la * méthode sans spécification d'index. * \param par_name nom du paramètre * \param index index de la valeur à affecter dans le paramètre * \param val valeur à affecter (Data ou type de base) */ template < class T > const Data & EventManager::SetParam ( const string &par_name, const u_int index, const T &val ) { u_int num = event.GetParamIndex(par_name); if (num < event.GetSize()) return (SetParam(num,val)); else { GLogWarning ( "GetParam(): no parameter " + par_name); return (bad_data); } } //---------------------------------------------------------------------- // ARBRES /*! Retourne le pointeur sur un arbre à partir de son numéro dans * la liste. Si l'arbre n'existe pas, retourne NULL. * \param t_num numéro de l'arbre recherché */ inline TreeInfo * EventManager::GetTreePtr ( const u_int t_num ) const { return ( tree_list.GetTreePtr (t_num) ); } /*! Retourne le pointeur sur un arbre à partir de son nom dans * la liste. Si l'arbre n'existe pas, retourne NULL. * \param t_name nom de l'arbre recherché */ inline TreeInfo * EventManager::GetTreePtr ( const string & t_name ) const { return ( tree_list.GetTreePtr (t_name) ); } /*! Retourne le numéro d'un arbre à partir de son nom dans * la liste. Si l'arbre n'existe pas, retourne -1. * \param t_name nom de l'arbre recherché */ inline int EventManager::GetTreeIndex ( const string & t_name ) const { return ( tree_list.GetTreeIndex (t_name) ); } /*! Ouvre tous les arbres de la liste qui sont pas déjà ouverts. * L'argument indique le mode sélectionné: seuls les arbres fonctionnant * sur ce mode sont ouverts (tous si m vaut -1). * \param m mode de fichier sélectionné */ inline void EventManager::OpenTreeList ( const Int_t m ) const { tree_list.OpenList ( m ); } /*! Ferme tous les arbres de la liste. * L'argument indique le mode sélectionné: seuls les arbres fonctionnant * sur ce mode sont fermés (tous si m vaut -1). * \param m mode de fichier sélectionné */ inline void EventManager::CloseTreeList ( const Int_t m ) const { tree_list.CloseList ( m ); } //---------------------------------------------------------------------- // SPECTRES ET HISTOGRAMMES /*! Renomme un spectre de la liste et éventuellement ses axes. * La fonction retourne vrai si l'opération est réussie, et faux * si un spectre protre déjà ce nom ou que le spectre n'est * pas trouvé. * \param num numéro du spectre à renommer * \param name nom du spectre * \param name_x nom de l'axe X * \param name_y nom de l'axe Y * \param name_z nom de l'axe Z */ inline bool EventManager::RenameSpectrum ( const u_int num, const string &name, const string &name_x, const string &name_y, const string &name_z ) { return ( spec_list.RenameSpectrum(num, name, name_x, name_y, name_z) ); } /*! Renomme un spectre de la liste et éventuellement ses axes. * La fonction retourne vrai si l'opération est réussie, et faux * si un spectre protre déjà ce nom ou que le spectre n'est * pas trouvé. * \param spec_name numéro du spectre à renommer * \param name nom du spectre * \param name_x nom de l'axe X * \param name_y nom de l'axe Y * \param name_z nom de l'axe Z */ inline bool EventManager::RenameSpectrum ( const string & spec_name, const string &name, const string &name_x, const string &name_y, const string &name_z ) { return ( spec_list.RenameSpectrum(spec_name, name, name_x, name_y, name_z) ); } /*! Incrémentation automatique (rapide) des spectres et des arbres, * avec mise à jour préalable des filtres. */ inline void EventManager::IncrementSpectra ( ) const { filter_list.UpdateValues (); spec_list.IncrementListFast(); //spec_list.UpdateList(); // pas à chaque événement !!! tree_list.IncrementListFast(); } /*! Retourne le pointeur sur un spectre à partir de son numéro dans * la liste. Si le spectre n'existe pas, retourne NULL. * \param num numéro du spectre recherché */ inline Spectrum * EventManager::GetSpectrumPtr ( const u_int num ) const { return ( spec_list.GetSpectrumPtr (num) ); } /*! Retourne le pointeur sur un spectre à partir de son nom dans * la liste. Si le spectre n'existe pas, retourne NULL. * \param spec_name nom du spectre recherché */ inline Spectrum * EventManager::GetSpectrumPtr ( const string & spec_name ) const { return ( spec_list.GetSpectrumPtr (spec_name) ); } /*! Retourne le numéro d'un spectre à partir de son nom dans * la liste. Si le spectre n'existe pas, retourne -1. * \param spec_name nom du spectre recherché */ inline int EventManager::GetSpectrumIndex ( const string & spec_name ) const { return ( spec_list.GetSpectrumIndex (spec_name) ); } /*! Retourne le nom d'un spectre de la liste, ou une chaîne vide si le spectre * n'existe pas. * \param spec_num numéro du spectre recherché */ inline string EventManager::GetSpectrumName ( const u_int spec_num ) const { return ( spec_list.GetSpectrumName (spec_num) ); } /*! Retourne le pointeur sur l'histogramme d'un spectre à partir de * son numéro dans la liste. * Si le spectre n'existe pas, retourne NULL. * \param num numéro du spectre dont on cherche l'histogramme */ inline TH1 * EventManager::GetHistoPtr ( const u_int num ) const { return ( spec_list.GetHistoPtr (num) ); } /*! Retourne le pointeur sur l'histogramme d'un spectre à partir de * son nom dans la liste. * Si le spectre n'existe pas, retourne NULL. * \param spec_name nom du spectre dont on cherche l'histogramme */ inline TH1 * EventManager::GetHistoPtr ( const string & spec_name ) const { return ( spec_list.GetHistoPtr (spec_name) ); } //---------------------------------------------------------------------- // FAMILLES DE SPECTRES /*! Place un spectre dans une famille. * \param spec_name nom du spectre * \param family_name nom de la famille de spectres */ inline bool EventManager::SetSpectrumFamily ( const string & spec_name, const string & family_name ) { return ( spec_list.SetSpectrumFamily(spec_name,family_name) ); } /*! Place un spectre dans une famille. * \param spec_num numéro du spectre * \param family_name nom de la famille de spectres */ inline bool EventManager::SetSpectrumFamily ( const u_int spec_num, const string & family_name ) { return ( spec_list.SetSpectrumFamily(spec_num,family_name) ); } /*! Retire un spectre de sa famille (le spectre lui-même n'est pas * affecté). * \param spec_name nom du spectre */ inline bool EventManager::ResetSpectrumFamily ( const string & spec_name ) { return ( spec_list.ResetSpectrumFamily(spec_name) ); } /*! Retire un spectre de sa famille (le spectre lui-même n'est pas * affecté). * \param spec_num numéro du spectre */ inline bool EventManager::ResetSpectrumFamily ( const u_int spec_num ) { return ( spec_list.ResetSpectrumFamily(spec_num) ); } /*! Démarre une famille de spectres. La méthode retourne vrai * si la famille existe * \param family_name nom de la famille */ inline bool EventManager::StartFamily ( const string & family_name ) { return ( spec_list.StartFamily(family_name) ); } /*! Arrête une famille de spectres. La méthode retourne vrai * si la famille existe * \param family_name nom de la famille */ inline bool EventManager::StopFamily ( const string & family_name ) { return ( spec_list.StopFamily(family_name) ); } /*! Suspend une famille de spectres. La méthode retourne vrai * si la famille existe * \param family_name nom de la famille */ inline bool EventManager::SuspendFamily ( const string & family_name ) { return ( spec_list.SuspendFamily(family_name) ); } /*! Remise à zéro d'une famille de spectres. La méthode retourne vrai * si la famille existe * \param family_name nom de la famille */ inline bool EventManager::ResetFamily ( const string & family_name ) { return ( spec_list.ResetFamily(family_name) ); } //---------------------------------------------------------------------- // ECRITURE DES STRUCTURES /*! Ecriture de l'événement courant sur la sortie standard. * \param all indique s'il faut écrire tout l'événement, y compris * les paramètres non affectés * \param pmin numéro du 1er paramètre à écrire (à partir de 0) * \param pmax numéro du dernier paramètre (exclus) */ inline void EventManager::DumpEvent ( const bool all, const u_int pmin, const u_int pmax ) const { DumpEvent ( cout, all, pmin, pmax ); } /*! Ecriture de la structure d'événement sur la sortie standard. * Tous les paramètres (y compris ceux définis par l'utilisateur) * sont écris. */ inline void EventManager::PrintEvent ( ) const { PrintEvent ( cout ); } /*! Ecriture de la liste de spectres sur la sortie standard. */ inline void EventManager::PrintSpecList ( ) const { PrintSpecList ( cout ); } //---------------------------------------------------------------------- /*! Ecriture d'une familles de spectres sur la sortie standard. * \param family_name nom de la famille ("" pour toutes les familles) */ inline void EventManager::PrintFamily ( const string & family_name ) { spec_list.PrintFamily ( family_name ); } /*! Ecriture d'une familles de spectres dans un flux de sortie. * \param os flux de sortie * \param family_name nom de la famille ("" pour toutes les familles) */ inline void EventManager::PrintFamily ( ostream &os, const string & family_name ) { spec_list.PrintFamily ( os, family_name ); } /*! Ecriture d'une familles de spectres dans un fichier. * \param file_name nom du fichier * \param family_name nom de la famille ("" pour toutes les familles) */ inline void EventManager::PrintFamily ( const string & file_name, const string & family_name) { spec_list.PrintFamily ( file_name, family_name ); } //---------------------------------------------------------------------- /*! Retire un filtre du gestionnaire, en vérifiant au préalable s'il * est utilisé par les autres filtres de la liste ou par les spectres. * \param f pointeur sur le filtre à supprimer * \param force indique s'il faut forcer la suppression des filtres * utilisant celui qui est supprimé */ inline bool EventManager::RemoveFilter ( Filter *f, const bool force ) { return ( filter_list.RemoveFilter (f,force) ); } /*! Retire un filtre du gestionnaire, en vérifiant au préalable s'il * est utilisé par les autres filtres de la liste ou par les spectres. * \param f_name nom du filtre à supprimer * \param force indique s'il faut forcer la suppression des filtres * utilisant celui qui est supprimé */ inline bool EventManager::RemoveFilter ( const string &f_name, const bool force ) { return ( filter_list.RemoveFilter (f_name,force) ); } /*! Retire un filtre du gestionnaire, en vérifiant au préalable s'il * est utilisé par les autres filtres de la liste ou par les spectres. * \param f_num numéro du filtre à supprimer * \param force indique s'il faut forcer la suppression des filtres * utilisant celui qui est supprimé */ inline bool EventManager::RemoveFilter ( const int f_num, const bool force ) { return ( filter_list.RemoveFilter (f_num,force) ); } /*! Fonction qui teste l'état d'un filtre. * \param f pointeur sur le filtre */ inline bool EventManager::CheckFilter ( const Filter * f ) { return ( (f == NULL) ? false : f->Ok() ); } //---------------------------------------------------------------------- /*! Retourne le pointeur sur un contour de la liste, ou NULL si le contour * n'existe pas. * \param cname nom du contour recherché */ inline RContour * EventManager::GetContourPtr ( const string &cname ) const { return ( GetContourListPtr()->FindName(cname) ); } /*! Retourne le pointeur sur un contour de la liste, ou NULL si le contour * n'existe pas. * \param cnum numéro du contour recherché */ inline RContour * EventManager::GetContourPtr ( const u_int cnum ) const { return ( GetContourListPtr()->Goto(cnum) ); } /*! Retourne le numéro d'un contour de la liste, ou -1 si le contour * n'existe pas. * \param cname nom du contour recherché */ inline int EventManager::GetContourIndex ( const string &cname ) const { return ( GetFilterListPtr()->GetContourIndex (cname) ); } /*! Retourne le nom d'un contour de la liste, ou une chaîne vide si le contour * n'existe pas. * \param cnum numéro du contour recherché */ inline string EventManager::GetContourName ( const u_int cnum ) const { RContour *ptr = GetContourPtr(cnum); return ( (ptr == NULL) ? "" : ptr->GetName() ); } /*! Retourne le pointeur sur un filtre de la liste, ou NULL si le filtre * n'existe pas. * \param fname nom du filtre recherché */ inline Filter * EventManager::GetFilterPtr ( const string &fname ) const { return ( GetFilterListPtr()->FindName(fname) ); } /*! Retourne le pointeur sur un filtre de la liste, ou NULL si le filtre * n'existe pas. * \param fnum numéro du filtre recherché */ inline Filter * EventManager::GetFilterPtr ( const u_int fnum ) const { return ( GetFilterListPtr()->Goto(fnum) ); } /*! Retourne le numéro d'un filtre de la liste, ou -1 si le filtre * n'existe pas. * \param fname nom du filtre recherché */ inline int EventManager::GetFilterIndex ( const string &fname ) const { return ( GetFilterListPtr()->GetFilterIndex (fname) ); } /*! Retourne le nom d'un filtre de la liste, ou une chaîne vide si le filtre * n'existe pas. * \param fnum numéro du filtre recherché */ inline string EventManager::GetFilterName ( const u_int fnum ) const { const Filter *ptr = GetFilterPtr(fnum); return ( (ptr == NULL) ? "" : ptr->GetName() ); } //====================================================================== #endif
797  * courante du tableau qui est affectée.
798  * Dans le cas d'un paramètre de type ParamMultihit, une nouvelle
799  * donnée est ajoutée en fin de liste.
800  * Le type en retour est une référence sur l'instance Data associée au
801  * paramètre (après affectation), avec le qualificatif const car la donnée * en retour (par référence) ne doit pas être modifiée directement. * \param num numéro de paramètre * \param val valeur à affecter (Data ou type de base) */ template < class T > const Data & EventManager::SetParam( const u_int num, const T &val ) { if (num < event.GetSize()) return (event[num] = val); else { GLogWarning ( "GetParam(): parameter number " + GGetString(num) + " over event size [0:" + GGetString(event.GetSize()) + "]"); return (bad_data); } } /*! Méthode patron qui sert à l'affectation d'un paramètre utilisateur * à partir d'une valeur donnée par un type de base ou une instance * de type Data. * Dans le cas d'un paramètre de type ParamArray, c'est la donnée * courante du tableau qui est affectée. * Dans le cas d'un paramètre de type ParamMultihit, une nouvelle * donnée est ajoutée en fin de liste. * Le type en retour est une référence sur l'instance Data associée au * paramètre (après affectation), avec le qualificatif const car la donnée * en retour (par référence) ne doit pas être modifiée directement. * \param par_name nom du paramètre * \param val valeur à affecter (Data ou type de base) */ template < class T > const Data & EventManager::SetParam( const string &par_name, const T &val ) { u_int num = event.GetParamIndex(par_name); if (num < event.GetSize()) return (SetParam(num,val)); else { GLogWarning ( "GetParam(): no parameter " + par_name); return (bad_data); } } /*! Méthode patron qui sert à l'affectation d'un paramètre utilisateur * à partir d'une valeur donnée par un type de base ou une instance * de type Data. * Le type en retour est une référence sur l'instance Data associée au * paramètre (après affectation), avec le qualificatif const car la donnée * en retour (par référence) ne doit pas être modifiée directement. * Dans le cas d'un paramètre de type ParamMultihit, cette méthode ne * doit être appelée que pour modifier une donnée déjà dans la liste. * Pour ajouter une nouvelle donnée à la liste il faut appeler la * méthode sans spécification d'index. * \param num numéro de paramètre * \param index index de la valeur à affecter dans le paramètre * \param val valeur à affecter (Data ou type de base) */ template < class T > const Data & EventManager::SetParam( const u_int num, const u_int index, const T &val ) { if (num < event.GetSize()) { Param &p = event[num]; if (index < p.Dimension()) { //cerr << "EventManager::SetParam: p[index] = val" << endl; return (p[index] = val); } else { return (bad_data); } } else { GLogWarning ( "GetParam(): parameter number " + GGetString(num) + " over event size [0:" + GGetString(event.GetSize()) + "]"); return (bad_data); } } /*! Méthode patron qui sert à l'affectation d'un paramètre utilisateur * à partir d'une valeur donnée par un type de base ou une instance * de type Data. * Le type en retour est une référence sur l'instance Data associée au * paramètre (après affectation), avec le qualificatif const car la donnée * en retour (par référence) ne doit pas être modifiée directement. * Dans le cas d'un paramètre de type ParamMultihit, cette méthode ne * doit être appelée que pour modifier une donnée déjà dans la liste. * Pour ajouter une nouvelle donnée à la liste il faut appeler la * méthode sans spécification d'index. * \param par_name nom du paramètre * \param index index de la valeur à affecter dans le paramètre * \param val valeur à affecter (Data ou type de base) */ template < class T > const Data & EventManager::SetParam ( const string &par_name, const u_int index, const T &val ) { u_int num = event.GetParamIndex(par_name); if (num < event.GetSize()) return (SetParam(num,val)); else { GLogWarning ( "GetParam(): no parameter " + par_name); return (bad_data); } } //---------------------------------------------------------------------- // ARBRES /*! Retourne le pointeur sur un arbre à partir de son numéro dans * la liste. Si l'arbre n'existe pas, retourne NULL. * \param t_num numéro de l'arbre recherché */ inline TreeInfo * EventManager::GetTreePtr ( const u_int t_num ) const { return ( tree_list.GetTreePtr (t_num) ); } /*! Retourne le pointeur sur un arbre à partir de son nom dans * la liste. Si l'arbre n'existe pas, retourne NULL. * \param t_name nom de l'arbre recherché */ inline TreeInfo * EventManager::GetTreePtr ( const string & t_name ) const { return ( tree_list.GetTreePtr (t_name) ); } /*! Retourne le numéro d'un arbre à partir de son nom dans * la liste. Si l'arbre n'existe pas, retourne -1. * \param t_name nom de l'arbre recherché */ inline int EventManager::GetTreeIndex ( const string & t_name ) const { return ( tree_list.GetTreeIndex (t_name) ); } /*! Ouvre tous les arbres de la liste qui sont pas déjà ouverts. * L'argument indique le mode sélectionné: seuls les arbres fonctionnant * sur ce mode sont ouverts (tous si m vaut -1). * \param m mode de fichier sélectionné */ inline void EventManager::OpenTreeList ( const Int_t m ) const { tree_list.OpenList ( m ); } /*! Ferme tous les arbres de la liste. * L'argument indique le mode sélectionné: seuls les arbres fonctionnant * sur ce mode sont fermés (tous si m vaut -1). * \param m mode de fichier sélectionné */ inline void EventManager::CloseTreeList ( const Int_t m ) const { tree_list.CloseList ( m ); } //---------------------------------------------------------------------- // SPECTRES ET HISTOGRAMMES /*! Renomme un spectre de la liste et éventuellement ses axes. * La fonction retourne vrai si l'opération est réussie, et faux * si un spectre protre déjà ce nom ou que le spectre n'est * pas trouvé. * \param num numéro du spectre à renommer * \param name nom du spectre * \param name_x nom de l'axe X * \param name_y nom de l'axe Y * \param name_z nom de l'axe Z */ inline bool EventManager::RenameSpectrum ( const u_int num, const string &name, const string &name_x, const string &name_y, const string &name_z ) { return ( spec_list.RenameSpectrum(num, name, name_x, name_y, name_z) ); } /*! Renomme un spectre de la liste et éventuellement ses axes. * La fonction retourne vrai si l'opération est réussie, et faux * si un spectre protre déjà ce nom ou que le spectre n'est * pas trouvé. * \param spec_name numéro du spectre à renommer * \param name nom du spectre * \param name_x nom de l'axe X * \param name_y nom de l'axe Y * \param name_z nom de l'axe Z */ inline bool EventManager::RenameSpectrum ( const string & spec_name, const string &name, const string &name_x, const string &name_y, const string &name_z ) { return ( spec_list.RenameSpectrum(spec_name, name, name_x, name_y, name_z) ); } /*! Incrémentation automatique (rapide) des spectres et des arbres, * avec mise à jour préalable des filtres. */ inline void EventManager::IncrementSpectra ( ) const { filter_list.UpdateValues (); spec_list.IncrementListFast(); //spec_list.UpdateList(); // pas à chaque événement !!! tree_list.IncrementListFast(); } /*! Retourne le pointeur sur un spectre à partir de son numéro dans * la liste. Si le spectre n'existe pas, retourne NULL. * \param num numéro du spectre recherché */ inline Spectrum * EventManager::GetSpectrumPtr ( const u_int num ) const { return ( spec_list.GetSpectrumPtr (num) ); } /*! Retourne le pointeur sur un spectre à partir de son nom dans * la liste. Si le spectre n'existe pas, retourne NULL. * \param spec_name nom du spectre recherché */ inline Spectrum * EventManager::GetSpectrumPtr ( const string & spec_name ) const { return ( spec_list.GetSpectrumPtr (spec_name) ); } /*! Retourne le numéro d'un spectre à partir de son nom dans * la liste. Si le spectre n'existe pas, retourne -1. * \param spec_name nom du spectre recherché */ inline int EventManager::GetSpectrumIndex ( const string & spec_name ) const { return ( spec_list.GetSpectrumIndex (spec_name) ); } /*! Retourne le nom d'un spectre de la liste, ou une chaîne vide si le spectre * n'existe pas. * \param spec_num numéro du spectre recherché */ inline string EventManager::GetSpectrumName ( const u_int spec_num ) const { return ( spec_list.GetSpectrumName (spec_num) ); } /*! Retourne le pointeur sur l'histogramme d'un spectre à partir de * son numéro dans la liste. * Si le spectre n'existe pas, retourne NULL. * \param num numéro du spectre dont on cherche l'histogramme */ inline TH1 * EventManager::GetHistoPtr ( const u_int num ) const { return ( spec_list.GetHistoPtr (num) ); } /*! Retourne le pointeur sur l'histogramme d'un spectre à partir de * son nom dans la liste. * Si le spectre n'existe pas, retourne NULL. * \param spec_name nom du spectre dont on cherche l'histogramme */ inline TH1 * EventManager::GetHistoPtr ( const string & spec_name ) const { return ( spec_list.GetHistoPtr (spec_name) ); } //---------------------------------------------------------------------- // FAMILLES DE SPECTRES /*! Place un spectre dans une famille. * \param spec_name nom du spectre * \param family_name nom de la famille de spectres */ inline bool EventManager::SetSpectrumFamily ( const string & spec_name, const string & family_name ) { return ( spec_list.SetSpectrumFamily(spec_name,family_name) ); } /*! Place un spectre dans une famille. * \param spec_num numéro du spectre * \param family_name nom de la famille de spectres */ inline bool EventManager::SetSpectrumFamily ( const u_int spec_num, const string & family_name ) { return ( spec_list.SetSpectrumFamily(spec_num,family_name) ); } /*! Retire un spectre de sa famille (le spectre lui-même n'est pas * affecté). * \param spec_name nom du spectre */ inline bool EventManager::ResetSpectrumFamily ( const string & spec_name ) { return ( spec_list.ResetSpectrumFamily(spec_name) ); } /*! Retire un spectre de sa famille (le spectre lui-même n'est pas * affecté). * \param spec_num numéro du spectre */ inline bool EventManager::ResetSpectrumFamily ( const u_int spec_num ) { return ( spec_list.ResetSpectrumFamily(spec_num) ); } /*! Démarre une famille de spectres. La méthode retourne vrai * si la famille existe * \param family_name nom de la famille */ inline bool EventManager::StartFamily ( const string & family_name ) { return ( spec_list.StartFamily(family_name) ); } /*! Arrête une famille de spectres. La méthode retourne vrai * si la famille existe * \param family_name nom de la famille */ inline bool EventManager::StopFamily ( const string & family_name ) { return ( spec_list.StopFamily(family_name) ); } /*! Suspend une famille de spectres. La méthode retourne vrai * si la famille existe * \param family_name nom de la famille */ inline bool EventManager::SuspendFamily ( const string & family_name ) { return ( spec_list.SuspendFamily(family_name) ); } /*! Remise à zéro d'une famille de spectres. La méthode retourne vrai * si la famille existe * \param family_name nom de la famille */ inline bool EventManager::ResetFamily ( const string & family_name ) { return ( spec_list.ResetFamily(family_name) ); } //---------------------------------------------------------------------- // ECRITURE DES STRUCTURES /*! Ecriture de l'événement courant sur la sortie standard. * \param all indique s'il faut écrire tout l'événement, y compris * les paramètres non affectés * \param pmin numéro du 1er paramètre à écrire (à partir de 0) * \param pmax numéro du dernier paramètre (exclus) */ inline void EventManager::DumpEvent ( const bool all, const u_int pmin, const u_int pmax ) const { DumpEvent ( cout, all, pmin, pmax ); } /*! Ecriture de la structure d'événement sur la sortie standard. * Tous les paramètres (y compris ceux définis par l'utilisateur) * sont écris. */ inline void EventManager::PrintEvent ( ) const { PrintEvent ( cout ); } /*! Ecriture de la liste de spectres sur la sortie standard. */ inline void EventManager::PrintSpecList ( ) const { PrintSpecList ( cout ); } //---------------------------------------------------------------------- /*! Ecriture d'une familles de spectres sur la sortie standard. * \param family_name nom de la famille ("" pour toutes les familles) */ inline void EventManager::PrintFamily ( const string & family_name ) { spec_list.PrintFamily ( family_name ); } /*! Ecriture d'une familles de spectres dans un flux de sortie. * \param os flux de sortie * \param family_name nom de la famille ("" pour toutes les familles) */ inline void EventManager::PrintFamily ( ostream &os, const string & family_name ) { spec_list.PrintFamily ( os, family_name ); } /*! Ecriture d'une familles de spectres dans un fichier. * \param file_name nom du fichier * \param family_name nom de la famille ("" pour toutes les familles) */ inline void EventManager::PrintFamily ( const string & file_name, const string & family_name) { spec_list.PrintFamily ( file_name, family_name ); } //---------------------------------------------------------------------- /*! Retire un filtre du gestionnaire, en vérifiant au préalable s'il * est utilisé par les autres filtres de la liste ou par les spectres. * \param f pointeur sur le filtre à supprimer * \param force indique s'il faut forcer la suppression des filtres * utilisant celui qui est supprimé */ inline bool EventManager::RemoveFilter ( Filter *f, const bool force ) { return ( filter_list.RemoveFilter (f,force) ); } /*! Retire un filtre du gestionnaire, en vérifiant au préalable s'il * est utilisé par les autres filtres de la liste ou par les spectres. * \param f_name nom du filtre à supprimer * \param force indique s'il faut forcer la suppression des filtres * utilisant celui qui est supprimé */ inline bool EventManager::RemoveFilter ( const string &f_name, const bool force ) { return ( filter_list.RemoveFilter (f_name,force) ); } /*! Retire un filtre du gestionnaire, en vérifiant au préalable s'il * est utilisé par les autres filtres de la liste ou par les spectres. * \param f_num numéro du filtre à supprimer * \param force indique s'il faut forcer la suppression des filtres * utilisant celui qui est supprimé */ inline bool EventManager::RemoveFilter ( const int f_num, const bool force ) { return ( filter_list.RemoveFilter (f_num,force) ); } /*! Fonction qui teste l'état d'un filtre. * \param f pointeur sur le filtre */ inline bool EventManager::CheckFilter ( const Filter * f ) { return ( (f == NULL) ? false : f->Ok() ); } //---------------------------------------------------------------------- /*! Retourne le pointeur sur un contour de la liste, ou NULL si le contour * n'existe pas. * \param cname nom du contour recherché */ inline RContour * EventManager::GetContourPtr ( const string &cname ) const { return ( GetContourListPtr()->FindName(cname) ); } /*! Retourne le pointeur sur un contour de la liste, ou NULL si le contour * n'existe pas. * \param cnum numéro du contour recherché */ inline RContour * EventManager::GetContourPtr ( const u_int cnum ) const { return ( GetContourListPtr()->Goto(cnum) ); } /*! Retourne le numéro d'un contour de la liste, ou -1 si le contour * n'existe pas. * \param cname nom du contour recherché */ inline int EventManager::GetContourIndex ( const string &cname ) const { return ( GetFilterListPtr()->GetContourIndex (cname) ); } /*! Retourne le nom d'un contour de la liste, ou une chaîne vide si le contour * n'existe pas. * \param cnum numéro du contour recherché */ inline string EventManager::GetContourName ( const u_int cnum ) const { RContour *ptr = GetContourPtr(cnum); return ( (ptr == NULL) ? "" : ptr->GetName() ); } /*! Retourne le pointeur sur un filtre de la liste, ou NULL si le filtre * n'existe pas. * \param fname nom du filtre recherché */ inline Filter * EventManager::GetFilterPtr ( const string &fname ) const { return ( GetFilterListPtr()->FindName(fname) ); } /*! Retourne le pointeur sur un filtre de la liste, ou NULL si le filtre * n'existe pas. * \param fnum numéro du filtre recherché */ inline Filter * EventManager::GetFilterPtr ( const u_int fnum ) const { return ( GetFilterListPtr()->Goto(fnum) ); } /*! Retourne le numéro d'un filtre de la liste, ou -1 si le filtre * n'existe pas. * \param fname nom du filtre recherché */ inline int EventManager::GetFilterIndex ( const string &fname ) const { return ( GetFilterListPtr()->GetFilterIndex (fname) ); } /*! Retourne le nom d'un filtre de la liste, ou une chaîne vide si le filtre * n'existe pas. * \param fnum numéro du filtre recherché */ inline string EventManager::GetFilterName ( const u_int fnum ) const { const Filter *ptr = GetFilterPtr(fnum); return ( (ptr == NULL) ? "" : ptr->GetName() ); } //====================================================================== #endif
802  * en retour (par référence) ne doit pas être modifiée directement.
803  * \param num numéro de paramètre
804  * \param val valeur à affecter (Data ou type de base)
805  */
806 template < class T > const Data & EventManager::SetParam(
807  const u_int num,
808  const T &val )
809 {
810  if (num < event.GetSize())
811  return (event[num] = val);
812  else
813  {
814  GLogWarning ( "GetParam(): parameter number "
815  + GGetString(num) + " over event size [0:"
816  + GGetString(event.GetSize()) + "]");
817  return (bad_data);
818  }
819 }
820 
821 /*! Méthode patron qui sert à l'affectation d'un paramètre utilisateur
822  * à partir d'une valeur donnée par un type de base ou une instance
823  * de type Data.
824  * Dans le cas d'un paramètre de type ParamArray, c'est la donnée * courante du tableau qui est affectée. * Dans le cas d'un paramètre de type ParamMultihit, une nouvelle * donnée est ajoutée en fin de liste. * Le type en retour est une référence sur l'instance Data associée au * paramètre (après affectation), avec le qualificatif const car la donnée * en retour (par référence) ne doit pas être modifiée directement. * \param par_name nom du paramètre * \param val valeur à affecter (Data ou type de base) */ template < class T > const Data & EventManager::SetParam( const string &par_name, const T &val ) { u_int num = event.GetParamIndex(par_name); if (num < event.GetSize()) return (SetParam(num,val)); else { GLogWarning ( "GetParam(): no parameter " + par_name); return (bad_data); } } /*! Méthode patron qui sert à l'affectation d'un paramètre utilisateur * à partir d'une valeur donnée par un type de base ou une instance * de type Data. * Le type en retour est une référence sur l'instance Data associée au * paramètre (après affectation), avec le qualificatif const car la donnée * en retour (par référence) ne doit pas être modifiée directement. * Dans le cas d'un paramètre de type ParamMultihit, cette méthode ne * doit être appelée que pour modifier une donnée déjà dans la liste. * Pour ajouter une nouvelle donnée à la liste il faut appeler la * méthode sans spécification d'index. * \param num numéro de paramètre * \param index index de la valeur à affecter dans le paramètre * \param val valeur à affecter (Data ou type de base) */ template < class T > const Data & EventManager::SetParam( const u_int num, const u_int index, const T &val ) { if (num < event.GetSize()) { Param &p = event[num]; if (index < p.Dimension()) { //cerr << "EventManager::SetParam: p[index] = val" << endl; return (p[index] = val); } else { return (bad_data); } } else { GLogWarning ( "GetParam(): parameter number " + GGetString(num) + " over event size [0:" + GGetString(event.GetSize()) + "]"); return (bad_data); } } /*! Méthode patron qui sert à l'affectation d'un paramètre utilisateur * à partir d'une valeur donnée par un type de base ou une instance * de type Data. * Le type en retour est une référence sur l'instance Data associée au * paramètre (après affectation), avec le qualificatif const car la donnée * en retour (par référence) ne doit pas être modifiée directement. * Dans le cas d'un paramètre de type ParamMultihit, cette méthode ne * doit être appelée que pour modifier une donnée déjà dans la liste. * Pour ajouter une nouvelle donnée à la liste il faut appeler la * méthode sans spécification d'index. * \param par_name nom du paramètre * \param index index de la valeur à affecter dans le paramètre * \param val valeur à affecter (Data ou type de base) */ template < class T > const Data & EventManager::SetParam ( const string &par_name, const u_int index, const T &val ) { u_int num = event.GetParamIndex(par_name); if (num < event.GetSize()) return (SetParam(num,val)); else { GLogWarning ( "GetParam(): no parameter " + par_name); return (bad_data); } } //---------------------------------------------------------------------- // ARBRES /*! Retourne le pointeur sur un arbre à partir de son numéro dans * la liste. Si l'arbre n'existe pas, retourne NULL. * \param t_num numéro de l'arbre recherché */ inline TreeInfo * EventManager::GetTreePtr ( const u_int t_num ) const { return ( tree_list.GetTreePtr (t_num) ); } /*! Retourne le pointeur sur un arbre à partir de son nom dans * la liste. Si l'arbre n'existe pas, retourne NULL. * \param t_name nom de l'arbre recherché */ inline TreeInfo * EventManager::GetTreePtr ( const string & t_name ) const { return ( tree_list.GetTreePtr (t_name) ); } /*! Retourne le numéro d'un arbre à partir de son nom dans * la liste. Si l'arbre n'existe pas, retourne -1. * \param t_name nom de l'arbre recherché */ inline int EventManager::GetTreeIndex ( const string & t_name ) const { return ( tree_list.GetTreeIndex (t_name) ); } /*! Ouvre tous les arbres de la liste qui sont pas déjà ouverts. * L'argument indique le mode sélectionné: seuls les arbres fonctionnant * sur ce mode sont ouverts (tous si m vaut -1). * \param m mode de fichier sélectionné */ inline void EventManager::OpenTreeList ( const Int_t m ) const { tree_list.OpenList ( m ); } /*! Ferme tous les arbres de la liste. * L'argument indique le mode sélectionné: seuls les arbres fonctionnant * sur ce mode sont fermés (tous si m vaut -1). * \param m mode de fichier sélectionné */ inline void EventManager::CloseTreeList ( const Int_t m ) const { tree_list.CloseList ( m ); } //---------------------------------------------------------------------- // SPECTRES ET HISTOGRAMMES /*! Renomme un spectre de la liste et éventuellement ses axes. * La fonction retourne vrai si l'opération est réussie, et faux * si un spectre protre déjà ce nom ou que le spectre n'est * pas trouvé. * \param num numéro du spectre à renommer * \param name nom du spectre * \param name_x nom de l'axe X * \param name_y nom de l'axe Y * \param name_z nom de l'axe Z */ inline bool EventManager::RenameSpectrum ( const u_int num, const string &name, const string &name_x, const string &name_y, const string &name_z ) { return ( spec_list.RenameSpectrum(num, name, name_x, name_y, name_z) ); } /*! Renomme un spectre de la liste et éventuellement ses axes. * La fonction retourne vrai si l'opération est réussie, et faux * si un spectre protre déjà ce nom ou que le spectre n'est * pas trouvé. * \param spec_name numéro du spectre à renommer * \param name nom du spectre * \param name_x nom de l'axe X * \param name_y nom de l'axe Y * \param name_z nom de l'axe Z */ inline bool EventManager::RenameSpectrum ( const string & spec_name, const string &name, const string &name_x, const string &name_y, const string &name_z ) { return ( spec_list.RenameSpectrum(spec_name, name, name_x, name_y, name_z) ); } /*! Incrémentation automatique (rapide) des spectres et des arbres, * avec mise à jour préalable des filtres. */ inline void EventManager::IncrementSpectra ( ) const { filter_list.UpdateValues (); spec_list.IncrementListFast(); //spec_list.UpdateList(); // pas à chaque événement !!! tree_list.IncrementListFast(); } /*! Retourne le pointeur sur un spectre à partir de son numéro dans * la liste. Si le spectre n'existe pas, retourne NULL. * \param num numéro du spectre recherché */ inline Spectrum * EventManager::GetSpectrumPtr ( const u_int num ) const { return ( spec_list.GetSpectrumPtr (num) ); } /*! Retourne le pointeur sur un spectre à partir de son nom dans * la liste. Si le spectre n'existe pas, retourne NULL. * \param spec_name nom du spectre recherché */ inline Spectrum * EventManager::GetSpectrumPtr ( const string & spec_name ) const { return ( spec_list.GetSpectrumPtr (spec_name) ); } /*! Retourne le numéro d'un spectre à partir de son nom dans * la liste. Si le spectre n'existe pas, retourne -1. * \param spec_name nom du spectre recherché */ inline int EventManager::GetSpectrumIndex ( const string & spec_name ) const { return ( spec_list.GetSpectrumIndex (spec_name) ); } /*! Retourne le nom d'un spectre de la liste, ou une chaîne vide si le spectre * n'existe pas. * \param spec_num numéro du spectre recherché */ inline string EventManager::GetSpectrumName ( const u_int spec_num ) const { return ( spec_list.GetSpectrumName (spec_num) ); } /*! Retourne le pointeur sur l'histogramme d'un spectre à partir de * son numéro dans la liste. * Si le spectre n'existe pas, retourne NULL. * \param num numéro du spectre dont on cherche l'histogramme */ inline TH1 * EventManager::GetHistoPtr ( const u_int num ) const { return ( spec_list.GetHistoPtr (num) ); } /*! Retourne le pointeur sur l'histogramme d'un spectre à partir de * son nom dans la liste. * Si le spectre n'existe pas, retourne NULL. * \param spec_name nom du spectre dont on cherche l'histogramme */ inline TH1 * EventManager::GetHistoPtr ( const string & spec_name ) const { return ( spec_list.GetHistoPtr (spec_name) ); } //---------------------------------------------------------------------- // FAMILLES DE SPECTRES /*! Place un spectre dans une famille. * \param spec_name nom du spectre * \param family_name nom de la famille de spectres */ inline bool EventManager::SetSpectrumFamily ( const string & spec_name, const string & family_name ) { return ( spec_list.SetSpectrumFamily(spec_name,family_name) ); } /*! Place un spectre dans une famille. * \param spec_num numéro du spectre * \param family_name nom de la famille de spectres */ inline bool EventManager::SetSpectrumFamily ( const u_int spec_num, const string & family_name ) { return ( spec_list.SetSpectrumFamily(spec_num,family_name) ); } /*! Retire un spectre de sa famille (le spectre lui-même n'est pas * affecté). * \param spec_name nom du spectre */ inline bool EventManager::ResetSpectrumFamily ( const string & spec_name ) { return ( spec_list.ResetSpectrumFamily(spec_name) ); } /*! Retire un spectre de sa famille (le spectre lui-même n'est pas * affecté). * \param spec_num numéro du spectre */ inline bool EventManager::ResetSpectrumFamily ( const u_int spec_num ) { return ( spec_list.ResetSpectrumFamily(spec_num) ); } /*! Démarre une famille de spectres. La méthode retourne vrai * si la famille existe * \param family_name nom de la famille */ inline bool EventManager::StartFamily ( const string & family_name ) { return ( spec_list.StartFamily(family_name) ); } /*! Arrête une famille de spectres. La méthode retourne vrai * si la famille existe * \param family_name nom de la famille */ inline bool EventManager::StopFamily ( const string & family_name ) { return ( spec_list.StopFamily(family_name) ); } /*! Suspend une famille de spectres. La méthode retourne vrai * si la famille existe * \param family_name nom de la famille */ inline bool EventManager::SuspendFamily ( const string & family_name ) { return ( spec_list.SuspendFamily(family_name) ); } /*! Remise à zéro d'une famille de spectres. La méthode retourne vrai * si la famille existe * \param family_name nom de la famille */ inline bool EventManager::ResetFamily ( const string & family_name ) { return ( spec_list.ResetFamily(family_name) ); } //---------------------------------------------------------------------- // ECRITURE DES STRUCTURES /*! Ecriture de l'événement courant sur la sortie standard. * \param all indique s'il faut écrire tout l'événement, y compris * les paramètres non affectés * \param pmin numéro du 1er paramètre à écrire (à partir de 0) * \param pmax numéro du dernier paramètre (exclus) */ inline void EventManager::DumpEvent ( const bool all, const u_int pmin, const u_int pmax ) const { DumpEvent ( cout, all, pmin, pmax ); } /*! Ecriture de la structure d'événement sur la sortie standard. * Tous les paramètres (y compris ceux définis par l'utilisateur) * sont écris. */ inline void EventManager::PrintEvent ( ) const { PrintEvent ( cout ); } /*! Ecriture de la liste de spectres sur la sortie standard. */ inline void EventManager::PrintSpecList ( ) const { PrintSpecList ( cout ); } //---------------------------------------------------------------------- /*! Ecriture d'une familles de spectres sur la sortie standard. * \param family_name nom de la famille ("" pour toutes les familles) */ inline void EventManager::PrintFamily ( const string & family_name ) { spec_list.PrintFamily ( family_name ); } /*! Ecriture d'une familles de spectres dans un flux de sortie. * \param os flux de sortie * \param family_name nom de la famille ("" pour toutes les familles) */ inline void EventManager::PrintFamily ( ostream &os, const string & family_name ) { spec_list.PrintFamily ( os, family_name ); } /*! Ecriture d'une familles de spectres dans un fichier. * \param file_name nom du fichier * \param family_name nom de la famille ("" pour toutes les familles) */ inline void EventManager::PrintFamily ( const string & file_name, const string & family_name) { spec_list.PrintFamily ( file_name, family_name ); } //---------------------------------------------------------------------- /*! Retire un filtre du gestionnaire, en vérifiant au préalable s'il * est utilisé par les autres filtres de la liste ou par les spectres. * \param f pointeur sur le filtre à supprimer * \param force indique s'il faut forcer la suppression des filtres * utilisant celui qui est supprimé */ inline bool EventManager::RemoveFilter ( Filter *f, const bool force ) { return ( filter_list.RemoveFilter (f,force) ); } /*! Retire un filtre du gestionnaire, en vérifiant au préalable s'il * est utilisé par les autres filtres de la liste ou par les spectres. * \param f_name nom du filtre à supprimer * \param force indique s'il faut forcer la suppression des filtres * utilisant celui qui est supprimé */ inline bool EventManager::RemoveFilter ( const string &f_name, const bool force ) { return ( filter_list.RemoveFilter (f_name,force) ); } /*! Retire un filtre du gestionnaire, en vérifiant au préalable s'il * est utilisé par les autres filtres de la liste ou par les spectres. * \param f_num numéro du filtre à supprimer * \param force indique s'il faut forcer la suppression des filtres * utilisant celui qui est supprimé */ inline bool EventManager::RemoveFilter ( const int f_num, const bool force ) { return ( filter_list.RemoveFilter (f_num,force) ); } /*! Fonction qui teste l'état d'un filtre. * \param f pointeur sur le filtre */ inline bool EventManager::CheckFilter ( const Filter * f ) { return ( (f == NULL) ? false : f->Ok() ); } //---------------------------------------------------------------------- /*! Retourne le pointeur sur un contour de la liste, ou NULL si le contour * n'existe pas. * \param cname nom du contour recherché */ inline RContour * EventManager::GetContourPtr ( const string &cname ) const { return ( GetContourListPtr()->FindName(cname) ); } /*! Retourne le pointeur sur un contour de la liste, ou NULL si le contour * n'existe pas. * \param cnum numéro du contour recherché */ inline RContour * EventManager::GetContourPtr ( const u_int cnum ) const { return ( GetContourListPtr()->Goto(cnum) ); } /*! Retourne le numéro d'un contour de la liste, ou -1 si le contour * n'existe pas. * \param cname nom du contour recherché */ inline int EventManager::GetContourIndex ( const string &cname ) const { return ( GetFilterListPtr()->GetContourIndex (cname) ); } /*! Retourne le nom d'un contour de la liste, ou une chaîne vide si le contour * n'existe pas. * \param cnum numéro du contour recherché */ inline string EventManager::GetContourName ( const u_int cnum ) const { RContour *ptr = GetContourPtr(cnum); return ( (ptr == NULL) ? "" : ptr->GetName() ); } /*! Retourne le pointeur sur un filtre de la liste, ou NULL si le filtre * n'existe pas. * \param fname nom du filtre recherché */ inline Filter * EventManager::GetFilterPtr ( const string &fname ) const { return ( GetFilterListPtr()->FindName(fname) ); } /*! Retourne le pointeur sur un filtre de la liste, ou NULL si le filtre * n'existe pas. * \param fnum numéro du filtre recherché */ inline Filter * EventManager::GetFilterPtr ( const u_int fnum ) const { return ( GetFilterListPtr()->Goto(fnum) ); } /*! Retourne le numéro d'un filtre de la liste, ou -1 si le filtre * n'existe pas. * \param fname nom du filtre recherché */ inline int EventManager::GetFilterIndex ( const string &fname ) const { return ( GetFilterListPtr()->GetFilterIndex (fname) ); } /*! Retourne le nom d'un filtre de la liste, ou une chaîne vide si le filtre * n'existe pas. * \param fnum numéro du filtre recherché */ inline string EventManager::GetFilterName ( const u_int fnum ) const { const Filter *ptr = GetFilterPtr(fnum); return ( (ptr == NULL) ? "" : ptr->GetName() ); } //====================================================================== #endif
825  * courante du tableau qui est affectée.
826  * Dans le cas d'un paramètre de type ParamMultihit, une nouvelle
827  * donnée est ajoutée en fin de liste.
828  * Le type en retour est une référence sur l'instance Data associée au
829  * paramètre (après affectation), avec le qualificatif const car la donnée * en retour (par référence) ne doit pas être modifiée directement. * \param par_name nom du paramètre * \param val valeur à affecter (Data ou type de base) */ template < class T > const Data & EventManager::SetParam( const string &par_name, const T &val ) { u_int num = event.GetParamIndex(par_name); if (num < event.GetSize()) return (SetParam(num,val)); else { GLogWarning ( "GetParam(): no parameter " + par_name); return (bad_data); } } /*! Méthode patron qui sert à l'affectation d'un paramètre utilisateur * à partir d'une valeur donnée par un type de base ou une instance * de type Data. * Le type en retour est une référence sur l'instance Data associée au * paramètre (après affectation), avec le qualificatif const car la donnée * en retour (par référence) ne doit pas être modifiée directement. * Dans le cas d'un paramètre de type ParamMultihit, cette méthode ne * doit être appelée que pour modifier une donnée déjà dans la liste. * Pour ajouter une nouvelle donnée à la liste il faut appeler la * méthode sans spécification d'index. * \param num numéro de paramètre * \param index index de la valeur à affecter dans le paramètre * \param val valeur à affecter (Data ou type de base) */ template < class T > const Data & EventManager::SetParam( const u_int num, const u_int index, const T &val ) { if (num < event.GetSize()) { Param &p = event[num]; if (index < p.Dimension()) { //cerr << "EventManager::SetParam: p[index] = val" << endl; return (p[index] = val); } else { return (bad_data); } } else { GLogWarning ( "GetParam(): parameter number " + GGetString(num) + " over event size [0:" + GGetString(event.GetSize()) + "]"); return (bad_data); } } /*! Méthode patron qui sert à l'affectation d'un paramètre utilisateur * à partir d'une valeur donnée par un type de base ou une instance * de type Data. * Le type en retour est une référence sur l'instance Data associée au * paramètre (après affectation), avec le qualificatif const car la donnée * en retour (par référence) ne doit pas être modifiée directement. * Dans le cas d'un paramètre de type ParamMultihit, cette méthode ne * doit être appelée que pour modifier une donnée déjà dans la liste. * Pour ajouter une nouvelle donnée à la liste il faut appeler la * méthode sans spécification d'index. * \param par_name nom du paramètre * \param index index de la valeur à affecter dans le paramètre * \param val valeur à affecter (Data ou type de base) */ template < class T > const Data & EventManager::SetParam ( const string &par_name, const u_int index, const T &val ) { u_int num = event.GetParamIndex(par_name); if (num < event.GetSize()) return (SetParam(num,val)); else { GLogWarning ( "GetParam(): no parameter " + par_name); return (bad_data); } } //---------------------------------------------------------------------- // ARBRES /*! Retourne le pointeur sur un arbre à partir de son numéro dans * la liste. Si l'arbre n'existe pas, retourne NULL. * \param t_num numéro de l'arbre recherché */ inline TreeInfo * EventManager::GetTreePtr ( const u_int t_num ) const { return ( tree_list.GetTreePtr (t_num) ); } /*! Retourne le pointeur sur un arbre à partir de son nom dans * la liste. Si l'arbre n'existe pas, retourne NULL. * \param t_name nom de l'arbre recherché */ inline TreeInfo * EventManager::GetTreePtr ( const string & t_name ) const { return ( tree_list.GetTreePtr (t_name) ); } /*! Retourne le numéro d'un arbre à partir de son nom dans * la liste. Si l'arbre n'existe pas, retourne -1. * \param t_name nom de l'arbre recherché */ inline int EventManager::GetTreeIndex ( const string & t_name ) const { return ( tree_list.GetTreeIndex (t_name) ); } /*! Ouvre tous les arbres de la liste qui sont pas déjà ouverts. * L'argument indique le mode sélectionné: seuls les arbres fonctionnant * sur ce mode sont ouverts (tous si m vaut -1). * \param m mode de fichier sélectionné */ inline void EventManager::OpenTreeList ( const Int_t m ) const { tree_list.OpenList ( m ); } /*! Ferme tous les arbres de la liste. * L'argument indique le mode sélectionné: seuls les arbres fonctionnant * sur ce mode sont fermés (tous si m vaut -1). * \param m mode de fichier sélectionné */ inline void EventManager::CloseTreeList ( const Int_t m ) const { tree_list.CloseList ( m ); } //---------------------------------------------------------------------- // SPECTRES ET HISTOGRAMMES /*! Renomme un spectre de la liste et éventuellement ses axes. * La fonction retourne vrai si l'opération est réussie, et faux * si un spectre protre déjà ce nom ou que le spectre n'est * pas trouvé. * \param num numéro du spectre à renommer * \param name nom du spectre * \param name_x nom de l'axe X * \param name_y nom de l'axe Y * \param name_z nom de l'axe Z */ inline bool EventManager::RenameSpectrum ( const u_int num, const string &name, const string &name_x, const string &name_y, const string &name_z ) { return ( spec_list.RenameSpectrum(num, name, name_x, name_y, name_z) ); } /*! Renomme un spectre de la liste et éventuellement ses axes. * La fonction retourne vrai si l'opération est réussie, et faux * si un spectre protre déjà ce nom ou que le spectre n'est * pas trouvé. * \param spec_name numéro du spectre à renommer * \param name nom du spectre * \param name_x nom de l'axe X * \param name_y nom de l'axe Y * \param name_z nom de l'axe Z */ inline bool EventManager::RenameSpectrum ( const string & spec_name, const string &name, const string &name_x, const string &name_y, const string &name_z ) { return ( spec_list.RenameSpectrum(spec_name, name, name_x, name_y, name_z) ); } /*! Incrémentation automatique (rapide) des spectres et des arbres, * avec mise à jour préalable des filtres. */ inline void EventManager::IncrementSpectra ( ) const { filter_list.UpdateValues (); spec_list.IncrementListFast(); //spec_list.UpdateList(); // pas à chaque événement !!! tree_list.IncrementListFast(); } /*! Retourne le pointeur sur un spectre à partir de son numéro dans * la liste. Si le spectre n'existe pas, retourne NULL. * \param num numéro du spectre recherché */ inline Spectrum * EventManager::GetSpectrumPtr ( const u_int num ) const { return ( spec_list.GetSpectrumPtr (num) ); } /*! Retourne le pointeur sur un spectre à partir de son nom dans * la liste. Si le spectre n'existe pas, retourne NULL. * \param spec_name nom du spectre recherché */ inline Spectrum * EventManager::GetSpectrumPtr ( const string & spec_name ) const { return ( spec_list.GetSpectrumPtr (spec_name) ); } /*! Retourne le numéro d'un spectre à partir de son nom dans * la liste. Si le spectre n'existe pas, retourne -1. * \param spec_name nom du spectre recherché */ inline int EventManager::GetSpectrumIndex ( const string & spec_name ) const { return ( spec_list.GetSpectrumIndex (spec_name) ); } /*! Retourne le nom d'un spectre de la liste, ou une chaîne vide si le spectre * n'existe pas. * \param spec_num numéro du spectre recherché */ inline string EventManager::GetSpectrumName ( const u_int spec_num ) const { return ( spec_list.GetSpectrumName (spec_num) ); } /*! Retourne le pointeur sur l'histogramme d'un spectre à partir de * son numéro dans la liste. * Si le spectre n'existe pas, retourne NULL. * \param num numéro du spectre dont on cherche l'histogramme */ inline TH1 * EventManager::GetHistoPtr ( const u_int num ) const { return ( spec_list.GetHistoPtr (num) ); } /*! Retourne le pointeur sur l'histogramme d'un spectre à partir de * son nom dans la liste. * Si le spectre n'existe pas, retourne NULL. * \param spec_name nom du spectre dont on cherche l'histogramme */ inline TH1 * EventManager::GetHistoPtr ( const string & spec_name ) const { return ( spec_list.GetHistoPtr (spec_name) ); } //---------------------------------------------------------------------- // FAMILLES DE SPECTRES /*! Place un spectre dans une famille. * \param spec_name nom du spectre * \param family_name nom de la famille de spectres */ inline bool EventManager::SetSpectrumFamily ( const string & spec_name, const string & family_name ) { return ( spec_list.SetSpectrumFamily(spec_name,family_name) ); } /*! Place un spectre dans une famille. * \param spec_num numéro du spectre * \param family_name nom de la famille de spectres */ inline bool EventManager::SetSpectrumFamily ( const u_int spec_num, const string & family_name ) { return ( spec_list.SetSpectrumFamily(spec_num,family_name) ); } /*! Retire un spectre de sa famille (le spectre lui-même n'est pas * affecté). * \param spec_name nom du spectre */ inline bool EventManager::ResetSpectrumFamily ( const string & spec_name ) { return ( spec_list.ResetSpectrumFamily(spec_name) ); } /*! Retire un spectre de sa famille (le spectre lui-même n'est pas * affecté). * \param spec_num numéro du spectre */ inline bool EventManager::ResetSpectrumFamily ( const u_int spec_num ) { return ( spec_list.ResetSpectrumFamily(spec_num) ); } /*! Démarre une famille de spectres. La méthode retourne vrai * si la famille existe * \param family_name nom de la famille */ inline bool EventManager::StartFamily ( const string & family_name ) { return ( spec_list.StartFamily(family_name) ); } /*! Arrête une famille de spectres. La méthode retourne vrai * si la famille existe * \param family_name nom de la famille */ inline bool EventManager::StopFamily ( const string & family_name ) { return ( spec_list.StopFamily(family_name) ); } /*! Suspend une famille de spectres. La méthode retourne vrai * si la famille existe * \param family_name nom de la famille */ inline bool EventManager::SuspendFamily ( const string & family_name ) { return ( spec_list.SuspendFamily(family_name) ); } /*! Remise à zéro d'une famille de spectres. La méthode retourne vrai * si la famille existe * \param family_name nom de la famille */ inline bool EventManager::ResetFamily ( const string & family_name ) { return ( spec_list.ResetFamily(family_name) ); } //---------------------------------------------------------------------- // ECRITURE DES STRUCTURES /*! Ecriture de l'événement courant sur la sortie standard. * \param all indique s'il faut écrire tout l'événement, y compris * les paramètres non affectés * \param pmin numéro du 1er paramètre à écrire (à partir de 0) * \param pmax numéro du dernier paramètre (exclus) */ inline void EventManager::DumpEvent ( const bool all, const u_int pmin, const u_int pmax ) const { DumpEvent ( cout, all, pmin, pmax ); } /*! Ecriture de la structure d'événement sur la sortie standard. * Tous les paramètres (y compris ceux définis par l'utilisateur) * sont écris. */ inline void EventManager::PrintEvent ( ) const { PrintEvent ( cout ); } /*! Ecriture de la liste de spectres sur la sortie standard. */ inline void EventManager::PrintSpecList ( ) const { PrintSpecList ( cout ); } //---------------------------------------------------------------------- /*! Ecriture d'une familles de spectres sur la sortie standard. * \param family_name nom de la famille ("" pour toutes les familles) */ inline void EventManager::PrintFamily ( const string & family_name ) { spec_list.PrintFamily ( family_name ); } /*! Ecriture d'une familles de spectres dans un flux de sortie. * \param os flux de sortie * \param family_name nom de la famille ("" pour toutes les familles) */ inline void EventManager::PrintFamily ( ostream &os, const string & family_name ) { spec_list.PrintFamily ( os, family_name ); } /*! Ecriture d'une familles de spectres dans un fichier. * \param file_name nom du fichier * \param family_name nom de la famille ("" pour toutes les familles) */ inline void EventManager::PrintFamily ( const string & file_name, const string & family_name) { spec_list.PrintFamily ( file_name, family_name ); } //---------------------------------------------------------------------- /*! Retire un filtre du gestionnaire, en vérifiant au préalable s'il * est utilisé par les autres filtres de la liste ou par les spectres. * \param f pointeur sur le filtre à supprimer * \param force indique s'il faut forcer la suppression des filtres * utilisant celui qui est supprimé */ inline bool EventManager::RemoveFilter ( Filter *f, const bool force ) { return ( filter_list.RemoveFilter (f,force) ); } /*! Retire un filtre du gestionnaire, en vérifiant au préalable s'il * est utilisé par les autres filtres de la liste ou par les spectres. * \param f_name nom du filtre à supprimer * \param force indique s'il faut forcer la suppression des filtres * utilisant celui qui est supprimé */ inline bool EventManager::RemoveFilter ( const string &f_name, const bool force ) { return ( filter_list.RemoveFilter (f_name,force) ); } /*! Retire un filtre du gestionnaire, en vérifiant au préalable s'il * est utilisé par les autres filtres de la liste ou par les spectres. * \param f_num numéro du filtre à supprimer * \param force indique s'il faut forcer la suppression des filtres * utilisant celui qui est supprimé */ inline bool EventManager::RemoveFilter ( const int f_num, const bool force ) { return ( filter_list.RemoveFilter (f_num,force) ); } /*! Fonction qui teste l'état d'un filtre. * \param f pointeur sur le filtre */ inline bool EventManager::CheckFilter ( const Filter * f ) { return ( (f == NULL) ? false : f->Ok() ); } //---------------------------------------------------------------------- /*! Retourne le pointeur sur un contour de la liste, ou NULL si le contour * n'existe pas. * \param cname nom du contour recherché */ inline RContour * EventManager::GetContourPtr ( const string &cname ) const { return ( GetContourListPtr()->FindName(cname) ); } /*! Retourne le pointeur sur un contour de la liste, ou NULL si le contour * n'existe pas. * \param cnum numéro du contour recherché */ inline RContour * EventManager::GetContourPtr ( const u_int cnum ) const { return ( GetContourListPtr()->Goto(cnum) ); } /*! Retourne le numéro d'un contour de la liste, ou -1 si le contour * n'existe pas. * \param cname nom du contour recherché */ inline int EventManager::GetContourIndex ( const string &cname ) const { return ( GetFilterListPtr()->GetContourIndex (cname) ); } /*! Retourne le nom d'un contour de la liste, ou une chaîne vide si le contour * n'existe pas. * \param cnum numéro du contour recherché */ inline string EventManager::GetContourName ( const u_int cnum ) const { RContour *ptr = GetContourPtr(cnum); return ( (ptr == NULL) ? "" : ptr->GetName() ); } /*! Retourne le pointeur sur un filtre de la liste, ou NULL si le filtre * n'existe pas. * \param fname nom du filtre recherché */ inline Filter * EventManager::GetFilterPtr ( const string &fname ) const { return ( GetFilterListPtr()->FindName(fname) ); } /*! Retourne le pointeur sur un filtre de la liste, ou NULL si le filtre * n'existe pas. * \param fnum numéro du filtre recherché */ inline Filter * EventManager::GetFilterPtr ( const u_int fnum ) const { return ( GetFilterListPtr()->Goto(fnum) ); } /*! Retourne le numéro d'un filtre de la liste, ou -1 si le filtre * n'existe pas. * \param fname nom du filtre recherché */ inline int EventManager::GetFilterIndex ( const string &fname ) const { return ( GetFilterListPtr()->GetFilterIndex (fname) ); } /*! Retourne le nom d'un filtre de la liste, ou une chaîne vide si le filtre * n'existe pas. * \param fnum numéro du filtre recherché */ inline string EventManager::GetFilterName ( const u_int fnum ) const { const Filter *ptr = GetFilterPtr(fnum); return ( (ptr == NULL) ? "" : ptr->GetName() ); } //====================================================================== #endif
830  * en retour (par référence) ne doit pas être modifiée directement.
831  * \param par_name nom du paramètre
832  * \param val valeur à affecter (Data ou type de base)
833  */
834 template < class T > const Data & EventManager::SetParam(
835  const string &par_name,
836  const T &val )
837 {
838  u_int num = event.GetParamIndex(par_name);
839  if (num < event.GetSize())
840  return (SetParam(num,val));
841  else
842  {
843  GLogWarning ( "GetParam(): no parameter " + par_name);
844  return (bad_data);
845  }
846 }
847 
848 /*! Méthode patron qui sert à l'affectation d'un paramètre utilisateur
849  * à partir d'une valeur donnée par un type de base ou une instance
850  * de type Data.
851  * Le type en retour est une référence sur l'instance Data associée au
852  * paramètre (après affectation), avec le qualificatif const car la donnée * en retour (par référence) ne doit pas être modifiée directement. * Dans le cas d'un paramètre de type ParamMultihit, cette méthode ne * doit être appelée que pour modifier une donnée déjà dans la liste. * Pour ajouter une nouvelle donnée à la liste il faut appeler la * méthode sans spécification d'index. * \param num numéro de paramètre * \param index index de la valeur à affecter dans le paramètre * \param val valeur à affecter (Data ou type de base) */ template < class T > const Data & EventManager::SetParam( const u_int num, const u_int index, const T &val ) { if (num < event.GetSize()) { Param &p = event[num]; if (index < p.Dimension()) { //cerr << "EventManager::SetParam: p[index] = val" << endl; return (p[index] = val); } else { return (bad_data); } } else { GLogWarning ( "GetParam(): parameter number " + GGetString(num) + " over event size [0:" + GGetString(event.GetSize()) + "]"); return (bad_data); } } /*! Méthode patron qui sert à l'affectation d'un paramètre utilisateur * à partir d'une valeur donnée par un type de base ou une instance * de type Data. * Le type en retour est une référence sur l'instance Data associée au * paramètre (après affectation), avec le qualificatif const car la donnée * en retour (par référence) ne doit pas être modifiée directement. * Dans le cas d'un paramètre de type ParamMultihit, cette méthode ne * doit être appelée que pour modifier une donnée déjà dans la liste. * Pour ajouter une nouvelle donnée à la liste il faut appeler la * méthode sans spécification d'index. * \param par_name nom du paramètre * \param index index de la valeur à affecter dans le paramètre * \param val valeur à affecter (Data ou type de base) */ template < class T > const Data & EventManager::SetParam ( const string &par_name, const u_int index, const T &val ) { u_int num = event.GetParamIndex(par_name); if (num < event.GetSize()) return (SetParam(num,val)); else { GLogWarning ( "GetParam(): no parameter " + par_name); return (bad_data); } } //---------------------------------------------------------------------- // ARBRES /*! Retourne le pointeur sur un arbre à partir de son numéro dans * la liste. Si l'arbre n'existe pas, retourne NULL. * \param t_num numéro de l'arbre recherché */ inline TreeInfo * EventManager::GetTreePtr ( const u_int t_num ) const { return ( tree_list.GetTreePtr (t_num) ); } /*! Retourne le pointeur sur un arbre à partir de son nom dans * la liste. Si l'arbre n'existe pas, retourne NULL. * \param t_name nom de l'arbre recherché */ inline TreeInfo * EventManager::GetTreePtr ( const string & t_name ) const { return ( tree_list.GetTreePtr (t_name) ); } /*! Retourne le numéro d'un arbre à partir de son nom dans * la liste. Si l'arbre n'existe pas, retourne -1. * \param t_name nom de l'arbre recherché */ inline int EventManager::GetTreeIndex ( const string & t_name ) const { return ( tree_list.GetTreeIndex (t_name) ); } /*! Ouvre tous les arbres de la liste qui sont pas déjà ouverts. * L'argument indique le mode sélectionné: seuls les arbres fonctionnant * sur ce mode sont ouverts (tous si m vaut -1). * \param m mode de fichier sélectionné */ inline void EventManager::OpenTreeList ( const Int_t m ) const { tree_list.OpenList ( m ); } /*! Ferme tous les arbres de la liste. * L'argument indique le mode sélectionné: seuls les arbres fonctionnant * sur ce mode sont fermés (tous si m vaut -1). * \param m mode de fichier sélectionné */ inline void EventManager::CloseTreeList ( const Int_t m ) const { tree_list.CloseList ( m ); } //---------------------------------------------------------------------- // SPECTRES ET HISTOGRAMMES /*! Renomme un spectre de la liste et éventuellement ses axes. * La fonction retourne vrai si l'opération est réussie, et faux * si un spectre protre déjà ce nom ou que le spectre n'est * pas trouvé. * \param num numéro du spectre à renommer * \param name nom du spectre * \param name_x nom de l'axe X * \param name_y nom de l'axe Y * \param name_z nom de l'axe Z */ inline bool EventManager::RenameSpectrum ( const u_int num, const string &name, const string &name_x, const string &name_y, const string &name_z ) { return ( spec_list.RenameSpectrum(num, name, name_x, name_y, name_z) ); } /*! Renomme un spectre de la liste et éventuellement ses axes. * La fonction retourne vrai si l'opération est réussie, et faux * si un spectre protre déjà ce nom ou que le spectre n'est * pas trouvé. * \param spec_name numéro du spectre à renommer * \param name nom du spectre * \param name_x nom de l'axe X * \param name_y nom de l'axe Y * \param name_z nom de l'axe Z */ inline bool EventManager::RenameSpectrum ( const string & spec_name, const string &name, const string &name_x, const string &name_y, const string &name_z ) { return ( spec_list.RenameSpectrum(spec_name, name, name_x, name_y, name_z) ); } /*! Incrémentation automatique (rapide) des spectres et des arbres, * avec mise à jour préalable des filtres. */ inline void EventManager::IncrementSpectra ( ) const { filter_list.UpdateValues (); spec_list.IncrementListFast(); //spec_list.UpdateList(); // pas à chaque événement !!! tree_list.IncrementListFast(); } /*! Retourne le pointeur sur un spectre à partir de son numéro dans * la liste. Si le spectre n'existe pas, retourne NULL. * \param num numéro du spectre recherché */ inline Spectrum * EventManager::GetSpectrumPtr ( const u_int num ) const { return ( spec_list.GetSpectrumPtr (num) ); } /*! Retourne le pointeur sur un spectre à partir de son nom dans * la liste. Si le spectre n'existe pas, retourne NULL. * \param spec_name nom du spectre recherché */ inline Spectrum * EventManager::GetSpectrumPtr ( const string & spec_name ) const { return ( spec_list.GetSpectrumPtr (spec_name) ); } /*! Retourne le numéro d'un spectre à partir de son nom dans * la liste. Si le spectre n'existe pas, retourne -1. * \param spec_name nom du spectre recherché */ inline int EventManager::GetSpectrumIndex ( const string & spec_name ) const { return ( spec_list.GetSpectrumIndex (spec_name) ); } /*! Retourne le nom d'un spectre de la liste, ou une chaîne vide si le spectre * n'existe pas. * \param spec_num numéro du spectre recherché */ inline string EventManager::GetSpectrumName ( const u_int spec_num ) const { return ( spec_list.GetSpectrumName (spec_num) ); } /*! Retourne le pointeur sur l'histogramme d'un spectre à partir de * son numéro dans la liste. * Si le spectre n'existe pas, retourne NULL. * \param num numéro du spectre dont on cherche l'histogramme */ inline TH1 * EventManager::GetHistoPtr ( const u_int num ) const { return ( spec_list.GetHistoPtr (num) ); } /*! Retourne le pointeur sur l'histogramme d'un spectre à partir de * son nom dans la liste. * Si le spectre n'existe pas, retourne NULL. * \param spec_name nom du spectre dont on cherche l'histogramme */ inline TH1 * EventManager::GetHistoPtr ( const string & spec_name ) const { return ( spec_list.GetHistoPtr (spec_name) ); } //---------------------------------------------------------------------- // FAMILLES DE SPECTRES /*! Place un spectre dans une famille. * \param spec_name nom du spectre * \param family_name nom de la famille de spectres */ inline bool EventManager::SetSpectrumFamily ( const string & spec_name, const string & family_name ) { return ( spec_list.SetSpectrumFamily(spec_name,family_name) ); } /*! Place un spectre dans une famille. * \param spec_num numéro du spectre * \param family_name nom de la famille de spectres */ inline bool EventManager::SetSpectrumFamily ( const u_int spec_num, const string & family_name ) { return ( spec_list.SetSpectrumFamily(spec_num,family_name) ); } /*! Retire un spectre de sa famille (le spectre lui-même n'est pas * affecté). * \param spec_name nom du spectre */ inline bool EventManager::ResetSpectrumFamily ( const string & spec_name ) { return ( spec_list.ResetSpectrumFamily(spec_name) ); } /*! Retire un spectre de sa famille (le spectre lui-même n'est pas * affecté). * \param spec_num numéro du spectre */ inline bool EventManager::ResetSpectrumFamily ( const u_int spec_num ) { return ( spec_list.ResetSpectrumFamily(spec_num) ); } /*! Démarre une famille de spectres. La méthode retourne vrai * si la famille existe * \param family_name nom de la famille */ inline bool EventManager::StartFamily ( const string & family_name ) { return ( spec_list.StartFamily(family_name) ); } /*! Arrête une famille de spectres. La méthode retourne vrai * si la famille existe * \param family_name nom de la famille */ inline bool EventManager::StopFamily ( const string & family_name ) { return ( spec_list.StopFamily(family_name) ); } /*! Suspend une famille de spectres. La méthode retourne vrai * si la famille existe * \param family_name nom de la famille */ inline bool EventManager::SuspendFamily ( const string & family_name ) { return ( spec_list.SuspendFamily(family_name) ); } /*! Remise à zéro d'une famille de spectres. La méthode retourne vrai * si la famille existe * \param family_name nom de la famille */ inline bool EventManager::ResetFamily ( const string & family_name ) { return ( spec_list.ResetFamily(family_name) ); } //---------------------------------------------------------------------- // ECRITURE DES STRUCTURES /*! Ecriture de l'événement courant sur la sortie standard. * \param all indique s'il faut écrire tout l'événement, y compris * les paramètres non affectés * \param pmin numéro du 1er paramètre à écrire (à partir de 0) * \param pmax numéro du dernier paramètre (exclus) */ inline void EventManager::DumpEvent ( const bool all, const u_int pmin, const u_int pmax ) const { DumpEvent ( cout, all, pmin, pmax ); } /*! Ecriture de la structure d'événement sur la sortie standard. * Tous les paramètres (y compris ceux définis par l'utilisateur) * sont écris. */ inline void EventManager::PrintEvent ( ) const { PrintEvent ( cout ); } /*! Ecriture de la liste de spectres sur la sortie standard. */ inline void EventManager::PrintSpecList ( ) const { PrintSpecList ( cout ); } //---------------------------------------------------------------------- /*! Ecriture d'une familles de spectres sur la sortie standard. * \param family_name nom de la famille ("" pour toutes les familles) */ inline void EventManager::PrintFamily ( const string & family_name ) { spec_list.PrintFamily ( family_name ); } /*! Ecriture d'une familles de spectres dans un flux de sortie. * \param os flux de sortie * \param family_name nom de la famille ("" pour toutes les familles) */ inline void EventManager::PrintFamily ( ostream &os, const string & family_name ) { spec_list.PrintFamily ( os, family_name ); } /*! Ecriture d'une familles de spectres dans un fichier. * \param file_name nom du fichier * \param family_name nom de la famille ("" pour toutes les familles) */ inline void EventManager::PrintFamily ( const string & file_name, const string & family_name) { spec_list.PrintFamily ( file_name, family_name ); } //---------------------------------------------------------------------- /*! Retire un filtre du gestionnaire, en vérifiant au préalable s'il * est utilisé par les autres filtres de la liste ou par les spectres. * \param f pointeur sur le filtre à supprimer * \param force indique s'il faut forcer la suppression des filtres * utilisant celui qui est supprimé */ inline bool EventManager::RemoveFilter ( Filter *f, const bool force ) { return ( filter_list.RemoveFilter (f,force) ); } /*! Retire un filtre du gestionnaire, en vérifiant au préalable s'il * est utilisé par les autres filtres de la liste ou par les spectres. * \param f_name nom du filtre à supprimer * \param force indique s'il faut forcer la suppression des filtres * utilisant celui qui est supprimé */ inline bool EventManager::RemoveFilter ( const string &f_name, const bool force ) { return ( filter_list.RemoveFilter (f_name,force) ); } /*! Retire un filtre du gestionnaire, en vérifiant au préalable s'il * est utilisé par les autres filtres de la liste ou par les spectres. * \param f_num numéro du filtre à supprimer * \param force indique s'il faut forcer la suppression des filtres * utilisant celui qui est supprimé */ inline bool EventManager::RemoveFilter ( const int f_num, const bool force ) { return ( filter_list.RemoveFilter (f_num,force) ); } /*! Fonction qui teste l'état d'un filtre. * \param f pointeur sur le filtre */ inline bool EventManager::CheckFilter ( const Filter * f ) { return ( (f == NULL) ? false : f->Ok() ); } //---------------------------------------------------------------------- /*! Retourne le pointeur sur un contour de la liste, ou NULL si le contour * n'existe pas. * \param cname nom du contour recherché */ inline RContour * EventManager::GetContourPtr ( const string &cname ) const { return ( GetContourListPtr()->FindName(cname) ); } /*! Retourne le pointeur sur un contour de la liste, ou NULL si le contour * n'existe pas. * \param cnum numéro du contour recherché */ inline RContour * EventManager::GetContourPtr ( const u_int cnum ) const { return ( GetContourListPtr()->Goto(cnum) ); } /*! Retourne le numéro d'un contour de la liste, ou -1 si le contour * n'existe pas. * \param cname nom du contour recherché */ inline int EventManager::GetContourIndex ( const string &cname ) const { return ( GetFilterListPtr()->GetContourIndex (cname) ); } /*! Retourne le nom d'un contour de la liste, ou une chaîne vide si le contour * n'existe pas. * \param cnum numéro du contour recherché */ inline string EventManager::GetContourName ( const u_int cnum ) const { RContour *ptr = GetContourPtr(cnum); return ( (ptr == NULL) ? "" : ptr->GetName() ); } /*! Retourne le pointeur sur un filtre de la liste, ou NULL si le filtre * n'existe pas. * \param fname nom du filtre recherché */ inline Filter * EventManager::GetFilterPtr ( const string &fname ) const { return ( GetFilterListPtr()->FindName(fname) ); } /*! Retourne le pointeur sur un filtre de la liste, ou NULL si le filtre * n'existe pas. * \param fnum numéro du filtre recherché */ inline Filter * EventManager::GetFilterPtr ( const u_int fnum ) const { return ( GetFilterListPtr()->Goto(fnum) ); } /*! Retourne le numéro d'un filtre de la liste, ou -1 si le filtre * n'existe pas. * \param fname nom du filtre recherché */ inline int EventManager::GetFilterIndex ( const string &fname ) const { return ( GetFilterListPtr()->GetFilterIndex (fname) ); } /*! Retourne le nom d'un filtre de la liste, ou une chaîne vide si le filtre * n'existe pas. * \param fnum numéro du filtre recherché */ inline string EventManager::GetFilterName ( const u_int fnum ) const { const Filter *ptr = GetFilterPtr(fnum); return ( (ptr == NULL) ? "" : ptr->GetName() ); } //====================================================================== #endif
853  * en retour (par référence) ne doit pas être modifiée directement.
854  * Dans le cas d'un paramètre de type ParamMultihit, cette méthode ne
855  * doit être appelée que pour modifier une donnée déjà dans la liste.
856  * Pour ajouter une nouvelle donnée à la liste il faut appeler la
857  * méthode sans spécification d'index.
858  * \param num numéro de paramètre
859  * \param index index de la valeur à affecter dans le paramètre
860  * \param val valeur à affecter (Data ou type de base)
861  */
862 template < class T > const Data & EventManager::SetParam(
863  const u_int num,
864  const u_int index,
865  const T &val )
866 {
867  if (num < event.GetSize())
868  {
869  Param &p = event[num];
870 
871  if (index < p.Dimension())
872  {
873  //cerr << "EventManager::SetParam: p[index] = val" << endl;
874  return (p[index] = val);
875  }
876  else
877  {
878  return (bad_data);
879  }
880  }
881  else
882  {
883  GLogWarning ( "GetParam(): parameter number "
884  + GGetString(num) + " over event size [0:"
885  + GGetString(event.GetSize()) + "]");
886  return (bad_data);
887  }
888 }
889 
890 /*! Méthode patron qui sert à l'affectation d'un paramètre utilisateur
891  * à partir d'une valeur donnée par un type de base ou une instance
892  * de type Data.
893  * Le type en retour est une référence sur l'instance Data associée au
894  * paramètre (après affectation), avec le qualificatif const car la donnée * en retour (par référence) ne doit pas être modifiée directement. * Dans le cas d'un paramètre de type ParamMultihit, cette méthode ne * doit être appelée que pour modifier une donnée déjà dans la liste. * Pour ajouter une nouvelle donnée à la liste il faut appeler la * méthode sans spécification d'index. * \param par_name nom du paramètre * \param index index de la valeur à affecter dans le paramètre * \param val valeur à affecter (Data ou type de base) */ template < class T > const Data & EventManager::SetParam ( const string &par_name, const u_int index, const T &val ) { u_int num = event.GetParamIndex(par_name); if (num < event.GetSize()) return (SetParam(num,val)); else { GLogWarning ( "GetParam(): no parameter " + par_name); return (bad_data); } } //---------------------------------------------------------------------- // ARBRES /*! Retourne le pointeur sur un arbre à partir de son numéro dans * la liste. Si l'arbre n'existe pas, retourne NULL. * \param t_num numéro de l'arbre recherché */ inline TreeInfo * EventManager::GetTreePtr ( const u_int t_num ) const { return ( tree_list.GetTreePtr (t_num) ); } /*! Retourne le pointeur sur un arbre à partir de son nom dans * la liste. Si l'arbre n'existe pas, retourne NULL. * \param t_name nom de l'arbre recherché */ inline TreeInfo * EventManager::GetTreePtr ( const string & t_name ) const { return ( tree_list.GetTreePtr (t_name) ); } /*! Retourne le numéro d'un arbre à partir de son nom dans * la liste. Si l'arbre n'existe pas, retourne -1. * \param t_name nom de l'arbre recherché */ inline int EventManager::GetTreeIndex ( const string & t_name ) const { return ( tree_list.GetTreeIndex (t_name) ); } /*! Ouvre tous les arbres de la liste qui sont pas déjà ouverts. * L'argument indique le mode sélectionné: seuls les arbres fonctionnant * sur ce mode sont ouverts (tous si m vaut -1). * \param m mode de fichier sélectionné */ inline void EventManager::OpenTreeList ( const Int_t m ) const { tree_list.OpenList ( m ); } /*! Ferme tous les arbres de la liste. * L'argument indique le mode sélectionné: seuls les arbres fonctionnant * sur ce mode sont fermés (tous si m vaut -1). * \param m mode de fichier sélectionné */ inline void EventManager::CloseTreeList ( const Int_t m ) const { tree_list.CloseList ( m ); } //---------------------------------------------------------------------- // SPECTRES ET HISTOGRAMMES /*! Renomme un spectre de la liste et éventuellement ses axes. * La fonction retourne vrai si l'opération est réussie, et faux * si un spectre protre déjà ce nom ou que le spectre n'est * pas trouvé. * \param num numéro du spectre à renommer * \param name nom du spectre * \param name_x nom de l'axe X * \param name_y nom de l'axe Y * \param name_z nom de l'axe Z */ inline bool EventManager::RenameSpectrum ( const u_int num, const string &name, const string &name_x, const string &name_y, const string &name_z ) { return ( spec_list.RenameSpectrum(num, name, name_x, name_y, name_z) ); } /*! Renomme un spectre de la liste et éventuellement ses axes. * La fonction retourne vrai si l'opération est réussie, et faux * si un spectre protre déjà ce nom ou que le spectre n'est * pas trouvé. * \param spec_name numéro du spectre à renommer * \param name nom du spectre * \param name_x nom de l'axe X * \param name_y nom de l'axe Y * \param name_z nom de l'axe Z */ inline bool EventManager::RenameSpectrum ( const string & spec_name, const string &name, const string &name_x, const string &name_y, const string &name_z ) { return ( spec_list.RenameSpectrum(spec_name, name, name_x, name_y, name_z) ); } /*! Incrémentation automatique (rapide) des spectres et des arbres, * avec mise à jour préalable des filtres. */ inline void EventManager::IncrementSpectra ( ) const { filter_list.UpdateValues (); spec_list.IncrementListFast(); //spec_list.UpdateList(); // pas à chaque événement !!! tree_list.IncrementListFast(); } /*! Retourne le pointeur sur un spectre à partir de son numéro dans * la liste. Si le spectre n'existe pas, retourne NULL. * \param num numéro du spectre recherché */ inline Spectrum * EventManager::GetSpectrumPtr ( const u_int num ) const { return ( spec_list.GetSpectrumPtr (num) ); } /*! Retourne le pointeur sur un spectre à partir de son nom dans * la liste. Si le spectre n'existe pas, retourne NULL. * \param spec_name nom du spectre recherché */ inline Spectrum * EventManager::GetSpectrumPtr ( const string & spec_name ) const { return ( spec_list.GetSpectrumPtr (spec_name) ); } /*! Retourne le numéro d'un spectre à partir de son nom dans * la liste. Si le spectre n'existe pas, retourne -1. * \param spec_name nom du spectre recherché */ inline int EventManager::GetSpectrumIndex ( const string & spec_name ) const { return ( spec_list.GetSpectrumIndex (spec_name) ); } /*! Retourne le nom d'un spectre de la liste, ou une chaîne vide si le spectre * n'existe pas. * \param spec_num numéro du spectre recherché */ inline string EventManager::GetSpectrumName ( const u_int spec_num ) const { return ( spec_list.GetSpectrumName (spec_num) ); } /*! Retourne le pointeur sur l'histogramme d'un spectre à partir de * son numéro dans la liste. * Si le spectre n'existe pas, retourne NULL. * \param num numéro du spectre dont on cherche l'histogramme */ inline TH1 * EventManager::GetHistoPtr ( const u_int num ) const { return ( spec_list.GetHistoPtr (num) ); } /*! Retourne le pointeur sur l'histogramme d'un spectre à partir de * son nom dans la liste. * Si le spectre n'existe pas, retourne NULL. * \param spec_name nom du spectre dont on cherche l'histogramme */ inline TH1 * EventManager::GetHistoPtr ( const string & spec_name ) const { return ( spec_list.GetHistoPtr (spec_name) ); } //---------------------------------------------------------------------- // FAMILLES DE SPECTRES /*! Place un spectre dans une famille. * \param spec_name nom du spectre * \param family_name nom de la famille de spectres */ inline bool EventManager::SetSpectrumFamily ( const string & spec_name, const string & family_name ) { return ( spec_list.SetSpectrumFamily(spec_name,family_name) ); } /*! Place un spectre dans une famille. * \param spec_num numéro du spectre * \param family_name nom de la famille de spectres */ inline bool EventManager::SetSpectrumFamily ( const u_int spec_num, const string & family_name ) { return ( spec_list.SetSpectrumFamily(spec_num,family_name) ); } /*! Retire un spectre de sa famille (le spectre lui-même n'est pas * affecté). * \param spec_name nom du spectre */ inline bool EventManager::ResetSpectrumFamily ( const string & spec_name ) { return ( spec_list.ResetSpectrumFamily(spec_name) ); } /*! Retire un spectre de sa famille (le spectre lui-même n'est pas * affecté). * \param spec_num numéro du spectre */ inline bool EventManager::ResetSpectrumFamily ( const u_int spec_num ) { return ( spec_list.ResetSpectrumFamily(spec_num) ); } /*! Démarre une famille de spectres. La méthode retourne vrai * si la famille existe * \param family_name nom de la famille */ inline bool EventManager::StartFamily ( const string & family_name ) { return ( spec_list.StartFamily(family_name) ); } /*! Arrête une famille de spectres. La méthode retourne vrai * si la famille existe * \param family_name nom de la famille */ inline bool EventManager::StopFamily ( const string & family_name ) { return ( spec_list.StopFamily(family_name) ); } /*! Suspend une famille de spectres. La méthode retourne vrai * si la famille existe * \param family_name nom de la famille */ inline bool EventManager::SuspendFamily ( const string & family_name ) { return ( spec_list.SuspendFamily(family_name) ); } /*! Remise à zéro d'une famille de spectres. La méthode retourne vrai * si la famille existe * \param family_name nom de la famille */ inline bool EventManager::ResetFamily ( const string & family_name ) { return ( spec_list.ResetFamily(family_name) ); } //---------------------------------------------------------------------- // ECRITURE DES STRUCTURES /*! Ecriture de l'événement courant sur la sortie standard. * \param all indique s'il faut écrire tout l'événement, y compris * les paramètres non affectés * \param pmin numéro du 1er paramètre à écrire (à partir de 0) * \param pmax numéro du dernier paramètre (exclus) */ inline void EventManager::DumpEvent ( const bool all, const u_int pmin, const u_int pmax ) const { DumpEvent ( cout, all, pmin, pmax ); } /*! Ecriture de la structure d'événement sur la sortie standard. * Tous les paramètres (y compris ceux définis par l'utilisateur) * sont écris. */ inline void EventManager::PrintEvent ( ) const { PrintEvent ( cout ); } /*! Ecriture de la liste de spectres sur la sortie standard. */ inline void EventManager::PrintSpecList ( ) const { PrintSpecList ( cout ); } //---------------------------------------------------------------------- /*! Ecriture d'une familles de spectres sur la sortie standard. * \param family_name nom de la famille ("" pour toutes les familles) */ inline void EventManager::PrintFamily ( const string & family_name ) { spec_list.PrintFamily ( family_name ); } /*! Ecriture d'une familles de spectres dans un flux de sortie. * \param os flux de sortie * \param family_name nom de la famille ("" pour toutes les familles) */ inline void EventManager::PrintFamily ( ostream &os, const string & family_name ) { spec_list.PrintFamily ( os, family_name ); } /*! Ecriture d'une familles de spectres dans un fichier. * \param file_name nom du fichier * \param family_name nom de la famille ("" pour toutes les familles) */ inline void EventManager::PrintFamily ( const string & file_name, const string & family_name) { spec_list.PrintFamily ( file_name, family_name ); } //---------------------------------------------------------------------- /*! Retire un filtre du gestionnaire, en vérifiant au préalable s'il * est utilisé par les autres filtres de la liste ou par les spectres. * \param f pointeur sur le filtre à supprimer * \param force indique s'il faut forcer la suppression des filtres * utilisant celui qui est supprimé */ inline bool EventManager::RemoveFilter ( Filter *f, const bool force ) { return ( filter_list.RemoveFilter (f,force) ); } /*! Retire un filtre du gestionnaire, en vérifiant au préalable s'il * est utilisé par les autres filtres de la liste ou par les spectres. * \param f_name nom du filtre à supprimer * \param force indique s'il faut forcer la suppression des filtres * utilisant celui qui est supprimé */ inline bool EventManager::RemoveFilter ( const string &f_name, const bool force ) { return ( filter_list.RemoveFilter (f_name,force) ); } /*! Retire un filtre du gestionnaire, en vérifiant au préalable s'il * est utilisé par les autres filtres de la liste ou par les spectres. * \param f_num numéro du filtre à supprimer * \param force indique s'il faut forcer la suppression des filtres * utilisant celui qui est supprimé */ inline bool EventManager::RemoveFilter ( const int f_num, const bool force ) { return ( filter_list.RemoveFilter (f_num,force) ); } /*! Fonction qui teste l'état d'un filtre. * \param f pointeur sur le filtre */ inline bool EventManager::CheckFilter ( const Filter * f ) { return ( (f == NULL) ? false : f->Ok() ); } //---------------------------------------------------------------------- /*! Retourne le pointeur sur un contour de la liste, ou NULL si le contour * n'existe pas. * \param cname nom du contour recherché */ inline RContour * EventManager::GetContourPtr ( const string &cname ) const { return ( GetContourListPtr()->FindName(cname) ); } /*! Retourne le pointeur sur un contour de la liste, ou NULL si le contour * n'existe pas. * \param cnum numéro du contour recherché */ inline RContour * EventManager::GetContourPtr ( const u_int cnum ) const { return ( GetContourListPtr()->Goto(cnum) ); } /*! Retourne le numéro d'un contour de la liste, ou -1 si le contour * n'existe pas. * \param cname nom du contour recherché */ inline int EventManager::GetContourIndex ( const string &cname ) const { return ( GetFilterListPtr()->GetContourIndex (cname) ); } /*! Retourne le nom d'un contour de la liste, ou une chaîne vide si le contour * n'existe pas. * \param cnum numéro du contour recherché */ inline string EventManager::GetContourName ( const u_int cnum ) const { RContour *ptr = GetContourPtr(cnum); return ( (ptr == NULL) ? "" : ptr->GetName() ); } /*! Retourne le pointeur sur un filtre de la liste, ou NULL si le filtre * n'existe pas. * \param fname nom du filtre recherché */ inline Filter * EventManager::GetFilterPtr ( const string &fname ) const { return ( GetFilterListPtr()->FindName(fname) ); } /*! Retourne le pointeur sur un filtre de la liste, ou NULL si le filtre * n'existe pas. * \param fnum numéro du filtre recherché */ inline Filter * EventManager::GetFilterPtr ( const u_int fnum ) const { return ( GetFilterListPtr()->Goto(fnum) ); } /*! Retourne le numéro d'un filtre de la liste, ou -1 si le filtre * n'existe pas. * \param fname nom du filtre recherché */ inline int EventManager::GetFilterIndex ( const string &fname ) const { return ( GetFilterListPtr()->GetFilterIndex (fname) ); } /*! Retourne le nom d'un filtre de la liste, ou une chaîne vide si le filtre * n'existe pas. * \param fnum numéro du filtre recherché */ inline string EventManager::GetFilterName ( const u_int fnum ) const { const Filter *ptr = GetFilterPtr(fnum); return ( (ptr == NULL) ? "" : ptr->GetName() ); } //====================================================================== #endif
895  * en retour (par référence) ne doit pas être modifiée directement.
896  * Dans le cas d'un paramètre de type ParamMultihit, cette méthode ne
897  * doit être appelée que pour modifier une donnée déjà dans la liste.
898  * Pour ajouter une nouvelle donnée à la liste il faut appeler la
899  * méthode sans spécification d'index.
900  * \param par_name nom du paramètre
901  * \param index index de la valeur à affecter dans le paramètre
902  * \param val valeur à affecter (Data ou type de base)
903  */
904 template < class T > const Data & EventManager::SetParam (
905  const string &par_name,
906  const u_int index,
907  const T &val )
908 {
909  u_int num = event.GetParamIndex(par_name);
910  if (num < event.GetSize())
911  return (SetParam(num,val));
912  else
913  {
914  GLogWarning ( "GetParam(): no parameter " + par_name);
915  return (bad_data);
916  }
917 }
918 
919 //----------------------------------------------------------------------
920 // ARBRES
921 
922 /*! Retourne le pointeur sur un arbre à partir de son numéro dans
923  * la liste. Si l'arbre n'existe pas, retourne NULL.
924  * \param t_num numéro de l'arbre recherché */ inline TreeInfo * EventManager::GetTreePtr ( const u_int t_num ) const { return ( tree_list.GetTreePtr (t_num) ); } /*! Retourne le pointeur sur un arbre à partir de son nom dans * la liste. Si l'arbre n'existe pas, retourne NULL. * \param t_name nom de l'arbre recherché */ inline TreeInfo * EventManager::GetTreePtr ( const string & t_name ) const { return ( tree_list.GetTreePtr (t_name) ); } /*! Retourne le numéro d'un arbre à partir de son nom dans * la liste. Si l'arbre n'existe pas, retourne -1. * \param t_name nom de l'arbre recherché */ inline int EventManager::GetTreeIndex ( const string & t_name ) const { return ( tree_list.GetTreeIndex (t_name) ); } /*! Ouvre tous les arbres de la liste qui sont pas déjà ouverts. * L'argument indique le mode sélectionné: seuls les arbres fonctionnant * sur ce mode sont ouverts (tous si m vaut -1). * \param m mode de fichier sélectionné */ inline void EventManager::OpenTreeList ( const Int_t m ) const { tree_list.OpenList ( m ); } /*! Ferme tous les arbres de la liste. * L'argument indique le mode sélectionné: seuls les arbres fonctionnant * sur ce mode sont fermés (tous si m vaut -1). * \param m mode de fichier sélectionné */ inline void EventManager::CloseTreeList ( const Int_t m ) const { tree_list.CloseList ( m ); } //---------------------------------------------------------------------- // SPECTRES ET HISTOGRAMMES /*! Renomme un spectre de la liste et éventuellement ses axes. * La fonction retourne vrai si l'opération est réussie, et faux * si un spectre protre déjà ce nom ou que le spectre n'est * pas trouvé. * \param num numéro du spectre à renommer * \param name nom du spectre * \param name_x nom de l'axe X * \param name_y nom de l'axe Y * \param name_z nom de l'axe Z */ inline bool EventManager::RenameSpectrum ( const u_int num, const string &name, const string &name_x, const string &name_y, const string &name_z ) { return ( spec_list.RenameSpectrum(num, name, name_x, name_y, name_z) ); } /*! Renomme un spectre de la liste et éventuellement ses axes. * La fonction retourne vrai si l'opération est réussie, et faux * si un spectre protre déjà ce nom ou que le spectre n'est * pas trouvé. * \param spec_name numéro du spectre à renommer * \param name nom du spectre * \param name_x nom de l'axe X * \param name_y nom de l'axe Y * \param name_z nom de l'axe Z */ inline bool EventManager::RenameSpectrum ( const string & spec_name, const string &name, const string &name_x, const string &name_y, const string &name_z ) { return ( spec_list.RenameSpectrum(spec_name, name, name_x, name_y, name_z) ); } /*! Incrémentation automatique (rapide) des spectres et des arbres, * avec mise à jour préalable des filtres. */ inline void EventManager::IncrementSpectra ( ) const { filter_list.UpdateValues (); spec_list.IncrementListFast(); //spec_list.UpdateList(); // pas à chaque événement !!! tree_list.IncrementListFast(); } /*! Retourne le pointeur sur un spectre à partir de son numéro dans * la liste. Si le spectre n'existe pas, retourne NULL. * \param num numéro du spectre recherché */ inline Spectrum * EventManager::GetSpectrumPtr ( const u_int num ) const { return ( spec_list.GetSpectrumPtr (num) ); } /*! Retourne le pointeur sur un spectre à partir de son nom dans * la liste. Si le spectre n'existe pas, retourne NULL. * \param spec_name nom du spectre recherché */ inline Spectrum * EventManager::GetSpectrumPtr ( const string & spec_name ) const { return ( spec_list.GetSpectrumPtr (spec_name) ); } /*! Retourne le numéro d'un spectre à partir de son nom dans * la liste. Si le spectre n'existe pas, retourne -1. * \param spec_name nom du spectre recherché */ inline int EventManager::GetSpectrumIndex ( const string & spec_name ) const { return ( spec_list.GetSpectrumIndex (spec_name) ); } /*! Retourne le nom d'un spectre de la liste, ou une chaîne vide si le spectre * n'existe pas. * \param spec_num numéro du spectre recherché */ inline string EventManager::GetSpectrumName ( const u_int spec_num ) const { return ( spec_list.GetSpectrumName (spec_num) ); } /*! Retourne le pointeur sur l'histogramme d'un spectre à partir de * son numéro dans la liste. * Si le spectre n'existe pas, retourne NULL. * \param num numéro du spectre dont on cherche l'histogramme */ inline TH1 * EventManager::GetHistoPtr ( const u_int num ) const { return ( spec_list.GetHistoPtr (num) ); } /*! Retourne le pointeur sur l'histogramme d'un spectre à partir de * son nom dans la liste. * Si le spectre n'existe pas, retourne NULL. * \param spec_name nom du spectre dont on cherche l'histogramme */ inline TH1 * EventManager::GetHistoPtr ( const string & spec_name ) const { return ( spec_list.GetHistoPtr (spec_name) ); } //---------------------------------------------------------------------- // FAMILLES DE SPECTRES /*! Place un spectre dans une famille. * \param spec_name nom du spectre * \param family_name nom de la famille de spectres */ inline bool EventManager::SetSpectrumFamily ( const string & spec_name, const string & family_name ) { return ( spec_list.SetSpectrumFamily(spec_name,family_name) ); } /*! Place un spectre dans une famille. * \param spec_num numéro du spectre * \param family_name nom de la famille de spectres */ inline bool EventManager::SetSpectrumFamily ( const u_int spec_num, const string & family_name ) { return ( spec_list.SetSpectrumFamily(spec_num,family_name) ); } /*! Retire un spectre de sa famille (le spectre lui-même n'est pas * affecté). * \param spec_name nom du spectre */ inline bool EventManager::ResetSpectrumFamily ( const string & spec_name ) { return ( spec_list.ResetSpectrumFamily(spec_name) ); } /*! Retire un spectre de sa famille (le spectre lui-même n'est pas * affecté). * \param spec_num numéro du spectre */ inline bool EventManager::ResetSpectrumFamily ( const u_int spec_num ) { return ( spec_list.ResetSpectrumFamily(spec_num) ); } /*! Démarre une famille de spectres. La méthode retourne vrai * si la famille existe * \param family_name nom de la famille */ inline bool EventManager::StartFamily ( const string & family_name ) { return ( spec_list.StartFamily(family_name) ); } /*! Arrête une famille de spectres. La méthode retourne vrai * si la famille existe * \param family_name nom de la famille */ inline bool EventManager::StopFamily ( const string & family_name ) { return ( spec_list.StopFamily(family_name) ); } /*! Suspend une famille de spectres. La méthode retourne vrai * si la famille existe * \param family_name nom de la famille */ inline bool EventManager::SuspendFamily ( const string & family_name ) { return ( spec_list.SuspendFamily(family_name) ); } /*! Remise à zéro d'une famille de spectres. La méthode retourne vrai * si la famille existe * \param family_name nom de la famille */ inline bool EventManager::ResetFamily ( const string & family_name ) { return ( spec_list.ResetFamily(family_name) ); } //---------------------------------------------------------------------- // ECRITURE DES STRUCTURES /*! Ecriture de l'événement courant sur la sortie standard. * \param all indique s'il faut écrire tout l'événement, y compris * les paramètres non affectés * \param pmin numéro du 1er paramètre à écrire (à partir de 0) * \param pmax numéro du dernier paramètre (exclus) */ inline void EventManager::DumpEvent ( const bool all, const u_int pmin, const u_int pmax ) const { DumpEvent ( cout, all, pmin, pmax ); } /*! Ecriture de la structure d'événement sur la sortie standard. * Tous les paramètres (y compris ceux définis par l'utilisateur) * sont écris. */ inline void EventManager::PrintEvent ( ) const { PrintEvent ( cout ); } /*! Ecriture de la liste de spectres sur la sortie standard. */ inline void EventManager::PrintSpecList ( ) const { PrintSpecList ( cout ); } //---------------------------------------------------------------------- /*! Ecriture d'une familles de spectres sur la sortie standard. * \param family_name nom de la famille ("" pour toutes les familles) */ inline void EventManager::PrintFamily ( const string & family_name ) { spec_list.PrintFamily ( family_name ); } /*! Ecriture d'une familles de spectres dans un flux de sortie. * \param os flux de sortie * \param family_name nom de la famille ("" pour toutes les familles) */ inline void EventManager::PrintFamily ( ostream &os, const string & family_name ) { spec_list.PrintFamily ( os, family_name ); } /*! Ecriture d'une familles de spectres dans un fichier. * \param file_name nom du fichier * \param family_name nom de la famille ("" pour toutes les familles) */ inline void EventManager::PrintFamily ( const string & file_name, const string & family_name) { spec_list.PrintFamily ( file_name, family_name ); } //---------------------------------------------------------------------- /*! Retire un filtre du gestionnaire, en vérifiant au préalable s'il * est utilisé par les autres filtres de la liste ou par les spectres. * \param f pointeur sur le filtre à supprimer * \param force indique s'il faut forcer la suppression des filtres * utilisant celui qui est supprimé */ inline bool EventManager::RemoveFilter ( Filter *f, const bool force ) { return ( filter_list.RemoveFilter (f,force) ); } /*! Retire un filtre du gestionnaire, en vérifiant au préalable s'il * est utilisé par les autres filtres de la liste ou par les spectres. * \param f_name nom du filtre à supprimer * \param force indique s'il faut forcer la suppression des filtres * utilisant celui qui est supprimé */ inline bool EventManager::RemoveFilter ( const string &f_name, const bool force ) { return ( filter_list.RemoveFilter (f_name,force) ); } /*! Retire un filtre du gestionnaire, en vérifiant au préalable s'il * est utilisé par les autres filtres de la liste ou par les spectres. * \param f_num numéro du filtre à supprimer * \param force indique s'il faut forcer la suppression des filtres * utilisant celui qui est supprimé */ inline bool EventManager::RemoveFilter ( const int f_num, const bool force ) { return ( filter_list.RemoveFilter (f_num,force) ); } /*! Fonction qui teste l'état d'un filtre. * \param f pointeur sur le filtre */ inline bool EventManager::CheckFilter ( const Filter * f ) { return ( (f == NULL) ? false : f->Ok() ); } //---------------------------------------------------------------------- /*! Retourne le pointeur sur un contour de la liste, ou NULL si le contour * n'existe pas. * \param cname nom du contour recherché */ inline RContour * EventManager::GetContourPtr ( const string &cname ) const { return ( GetContourListPtr()->FindName(cname) ); } /*! Retourne le pointeur sur un contour de la liste, ou NULL si le contour * n'existe pas. * \param cnum numéro du contour recherché */ inline RContour * EventManager::GetContourPtr ( const u_int cnum ) const { return ( GetContourListPtr()->Goto(cnum) ); } /*! Retourne le numéro d'un contour de la liste, ou -1 si le contour * n'existe pas. * \param cname nom du contour recherché */ inline int EventManager::GetContourIndex ( const string &cname ) const { return ( GetFilterListPtr()->GetContourIndex (cname) ); } /*! Retourne le nom d'un contour de la liste, ou une chaîne vide si le contour * n'existe pas. * \param cnum numéro du contour recherché */ inline string EventManager::GetContourName ( const u_int cnum ) const { RContour *ptr = GetContourPtr(cnum); return ( (ptr == NULL) ? "" : ptr->GetName() ); } /*! Retourne le pointeur sur un filtre de la liste, ou NULL si le filtre * n'existe pas. * \param fname nom du filtre recherché */ inline Filter * EventManager::GetFilterPtr ( const string &fname ) const { return ( GetFilterListPtr()->FindName(fname) ); } /*! Retourne le pointeur sur un filtre de la liste, ou NULL si le filtre * n'existe pas. * \param fnum numéro du filtre recherché */ inline Filter * EventManager::GetFilterPtr ( const u_int fnum ) const { return ( GetFilterListPtr()->Goto(fnum) ); } /*! Retourne le numéro d'un filtre de la liste, ou -1 si le filtre * n'existe pas. * \param fname nom du filtre recherché */ inline int EventManager::GetFilterIndex ( const string &fname ) const { return ( GetFilterListPtr()->GetFilterIndex (fname) ); } /*! Retourne le nom d'un filtre de la liste, ou une chaîne vide si le filtre * n'existe pas. * \param fnum numéro du filtre recherché */ inline string EventManager::GetFilterName ( const u_int fnum ) const { const Filter *ptr = GetFilterPtr(fnum); return ( (ptr == NULL) ? "" : ptr->GetName() ); } //====================================================================== #endif
925  */
926 inline TreeInfo * EventManager::GetTreePtr ( const u_int t_num ) const
927  { return ( tree_list.GetTreePtr (t_num) ); }
928 
929 /*! Retourne le pointeur sur un arbre à partir de son nom dans
930  * la liste. Si l'arbre n'existe pas, retourne NULL.
931  * \param t_name nom de l'arbre recherché */ inline TreeInfo * EventManager::GetTreePtr ( const string & t_name ) const { return ( tree_list.GetTreePtr (t_name) ); } /*! Retourne le numéro d'un arbre à partir de son nom dans * la liste. Si l'arbre n'existe pas, retourne -1. * \param t_name nom de l'arbre recherché */ inline int EventManager::GetTreeIndex ( const string & t_name ) const { return ( tree_list.GetTreeIndex (t_name) ); } /*! Ouvre tous les arbres de la liste qui sont pas déjà ouverts. * L'argument indique le mode sélectionné: seuls les arbres fonctionnant * sur ce mode sont ouverts (tous si m vaut -1). * \param m mode de fichier sélectionné */ inline void EventManager::OpenTreeList ( const Int_t m ) const { tree_list.OpenList ( m ); } /*! Ferme tous les arbres de la liste. * L'argument indique le mode sélectionné: seuls les arbres fonctionnant * sur ce mode sont fermés (tous si m vaut -1). * \param m mode de fichier sélectionné */ inline void EventManager::CloseTreeList ( const Int_t m ) const { tree_list.CloseList ( m ); } //---------------------------------------------------------------------- // SPECTRES ET HISTOGRAMMES /*! Renomme un spectre de la liste et éventuellement ses axes. * La fonction retourne vrai si l'opération est réussie, et faux * si un spectre protre déjà ce nom ou que le spectre n'est * pas trouvé. * \param num numéro du spectre à renommer * \param name nom du spectre * \param name_x nom de l'axe X * \param name_y nom de l'axe Y * \param name_z nom de l'axe Z */ inline bool EventManager::RenameSpectrum ( const u_int num, const string &name, const string &name_x, const string &name_y, const string &name_z ) { return ( spec_list.RenameSpectrum(num, name, name_x, name_y, name_z) ); } /*! Renomme un spectre de la liste et éventuellement ses axes. * La fonction retourne vrai si l'opération est réussie, et faux * si un spectre protre déjà ce nom ou que le spectre n'est * pas trouvé. * \param spec_name numéro du spectre à renommer * \param name nom du spectre * \param name_x nom de l'axe X * \param name_y nom de l'axe Y * \param name_z nom de l'axe Z */ inline bool EventManager::RenameSpectrum ( const string & spec_name, const string &name, const string &name_x, const string &name_y, const string &name_z ) { return ( spec_list.RenameSpectrum(spec_name, name, name_x, name_y, name_z) ); } /*! Incrémentation automatique (rapide) des spectres et des arbres, * avec mise à jour préalable des filtres. */ inline void EventManager::IncrementSpectra ( ) const { filter_list.UpdateValues (); spec_list.IncrementListFast(); //spec_list.UpdateList(); // pas à chaque événement !!! tree_list.IncrementListFast(); } /*! Retourne le pointeur sur un spectre à partir de son numéro dans * la liste. Si le spectre n'existe pas, retourne NULL. * \param num numéro du spectre recherché */ inline Spectrum * EventManager::GetSpectrumPtr ( const u_int num ) const { return ( spec_list.GetSpectrumPtr (num) ); } /*! Retourne le pointeur sur un spectre à partir de son nom dans * la liste. Si le spectre n'existe pas, retourne NULL. * \param spec_name nom du spectre recherché */ inline Spectrum * EventManager::GetSpectrumPtr ( const string & spec_name ) const { return ( spec_list.GetSpectrumPtr (spec_name) ); } /*! Retourne le numéro d'un spectre à partir de son nom dans * la liste. Si le spectre n'existe pas, retourne -1. * \param spec_name nom du spectre recherché */ inline int EventManager::GetSpectrumIndex ( const string & spec_name ) const { return ( spec_list.GetSpectrumIndex (spec_name) ); } /*! Retourne le nom d'un spectre de la liste, ou une chaîne vide si le spectre * n'existe pas. * \param spec_num numéro du spectre recherché */ inline string EventManager::GetSpectrumName ( const u_int spec_num ) const { return ( spec_list.GetSpectrumName (spec_num) ); } /*! Retourne le pointeur sur l'histogramme d'un spectre à partir de * son numéro dans la liste. * Si le spectre n'existe pas, retourne NULL. * \param num numéro du spectre dont on cherche l'histogramme */ inline TH1 * EventManager::GetHistoPtr ( const u_int num ) const { return ( spec_list.GetHistoPtr (num) ); } /*! Retourne le pointeur sur l'histogramme d'un spectre à partir de * son nom dans la liste. * Si le spectre n'existe pas, retourne NULL. * \param spec_name nom du spectre dont on cherche l'histogramme */ inline TH1 * EventManager::GetHistoPtr ( const string & spec_name ) const { return ( spec_list.GetHistoPtr (spec_name) ); } //---------------------------------------------------------------------- // FAMILLES DE SPECTRES /*! Place un spectre dans une famille. * \param spec_name nom du spectre * \param family_name nom de la famille de spectres */ inline bool EventManager::SetSpectrumFamily ( const string & spec_name, const string & family_name ) { return ( spec_list.SetSpectrumFamily(spec_name,family_name) ); } /*! Place un spectre dans une famille. * \param spec_num numéro du spectre * \param family_name nom de la famille de spectres */ inline bool EventManager::SetSpectrumFamily ( const u_int spec_num, const string & family_name ) { return ( spec_list.SetSpectrumFamily(spec_num,family_name) ); } /*! Retire un spectre de sa famille (le spectre lui-même n'est pas * affecté). * \param spec_name nom du spectre */ inline bool EventManager::ResetSpectrumFamily ( const string & spec_name ) { return ( spec_list.ResetSpectrumFamily(spec_name) ); } /*! Retire un spectre de sa famille (le spectre lui-même n'est pas * affecté). * \param spec_num numéro du spectre */ inline bool EventManager::ResetSpectrumFamily ( const u_int spec_num ) { return ( spec_list.ResetSpectrumFamily(spec_num) ); } /*! Démarre une famille de spectres. La méthode retourne vrai * si la famille existe * \param family_name nom de la famille */ inline bool EventManager::StartFamily ( const string & family_name ) { return ( spec_list.StartFamily(family_name) ); } /*! Arrête une famille de spectres. La méthode retourne vrai * si la famille existe * \param family_name nom de la famille */ inline bool EventManager::StopFamily ( const string & family_name ) { return ( spec_list.StopFamily(family_name) ); } /*! Suspend une famille de spectres. La méthode retourne vrai * si la famille existe * \param family_name nom de la famille */ inline bool EventManager::SuspendFamily ( const string & family_name ) { return ( spec_list.SuspendFamily(family_name) ); } /*! Remise à zéro d'une famille de spectres. La méthode retourne vrai * si la famille existe * \param family_name nom de la famille */ inline bool EventManager::ResetFamily ( const string & family_name ) { return ( spec_list.ResetFamily(family_name) ); } //---------------------------------------------------------------------- // ECRITURE DES STRUCTURES /*! Ecriture de l'événement courant sur la sortie standard. * \param all indique s'il faut écrire tout l'événement, y compris * les paramètres non affectés * \param pmin numéro du 1er paramètre à écrire (à partir de 0) * \param pmax numéro du dernier paramètre (exclus) */ inline void EventManager::DumpEvent ( const bool all, const u_int pmin, const u_int pmax ) const { DumpEvent ( cout, all, pmin, pmax ); } /*! Ecriture de la structure d'événement sur la sortie standard. * Tous les paramètres (y compris ceux définis par l'utilisateur) * sont écris. */ inline void EventManager::PrintEvent ( ) const { PrintEvent ( cout ); } /*! Ecriture de la liste de spectres sur la sortie standard. */ inline void EventManager::PrintSpecList ( ) const { PrintSpecList ( cout ); } //---------------------------------------------------------------------- /*! Ecriture d'une familles de spectres sur la sortie standard. * \param family_name nom de la famille ("" pour toutes les familles) */ inline void EventManager::PrintFamily ( const string & family_name ) { spec_list.PrintFamily ( family_name ); } /*! Ecriture d'une familles de spectres dans un flux de sortie. * \param os flux de sortie * \param family_name nom de la famille ("" pour toutes les familles) */ inline void EventManager::PrintFamily ( ostream &os, const string & family_name ) { spec_list.PrintFamily ( os, family_name ); } /*! Ecriture d'une familles de spectres dans un fichier. * \param file_name nom du fichier * \param family_name nom de la famille ("" pour toutes les familles) */ inline void EventManager::PrintFamily ( const string & file_name, const string & family_name) { spec_list.PrintFamily ( file_name, family_name ); } //---------------------------------------------------------------------- /*! Retire un filtre du gestionnaire, en vérifiant au préalable s'il * est utilisé par les autres filtres de la liste ou par les spectres. * \param f pointeur sur le filtre à supprimer * \param force indique s'il faut forcer la suppression des filtres * utilisant celui qui est supprimé */ inline bool EventManager::RemoveFilter ( Filter *f, const bool force ) { return ( filter_list.RemoveFilter (f,force) ); } /*! Retire un filtre du gestionnaire, en vérifiant au préalable s'il * est utilisé par les autres filtres de la liste ou par les spectres. * \param f_name nom du filtre à supprimer * \param force indique s'il faut forcer la suppression des filtres * utilisant celui qui est supprimé */ inline bool EventManager::RemoveFilter ( const string &f_name, const bool force ) { return ( filter_list.RemoveFilter (f_name,force) ); } /*! Retire un filtre du gestionnaire, en vérifiant au préalable s'il * est utilisé par les autres filtres de la liste ou par les spectres. * \param f_num numéro du filtre à supprimer * \param force indique s'il faut forcer la suppression des filtres * utilisant celui qui est supprimé */ inline bool EventManager::RemoveFilter ( const int f_num, const bool force ) { return ( filter_list.RemoveFilter (f_num,force) ); } /*! Fonction qui teste l'état d'un filtre. * \param f pointeur sur le filtre */ inline bool EventManager::CheckFilter ( const Filter * f ) { return ( (f == NULL) ? false : f->Ok() ); } //---------------------------------------------------------------------- /*! Retourne le pointeur sur un contour de la liste, ou NULL si le contour * n'existe pas. * \param cname nom du contour recherché */ inline RContour * EventManager::GetContourPtr ( const string &cname ) const { return ( GetContourListPtr()->FindName(cname) ); } /*! Retourne le pointeur sur un contour de la liste, ou NULL si le contour * n'existe pas. * \param cnum numéro du contour recherché */ inline RContour * EventManager::GetContourPtr ( const u_int cnum ) const { return ( GetContourListPtr()->Goto(cnum) ); } /*! Retourne le numéro d'un contour de la liste, ou -1 si le contour * n'existe pas. * \param cname nom du contour recherché */ inline int EventManager::GetContourIndex ( const string &cname ) const { return ( GetFilterListPtr()->GetContourIndex (cname) ); } /*! Retourne le nom d'un contour de la liste, ou une chaîne vide si le contour * n'existe pas. * \param cnum numéro du contour recherché */ inline string EventManager::GetContourName ( const u_int cnum ) const { RContour *ptr = GetContourPtr(cnum); return ( (ptr == NULL) ? "" : ptr->GetName() ); } /*! Retourne le pointeur sur un filtre de la liste, ou NULL si le filtre * n'existe pas. * \param fname nom du filtre recherché */ inline Filter * EventManager::GetFilterPtr ( const string &fname ) const { return ( GetFilterListPtr()->FindName(fname) ); } /*! Retourne le pointeur sur un filtre de la liste, ou NULL si le filtre * n'existe pas. * \param fnum numéro du filtre recherché */ inline Filter * EventManager::GetFilterPtr ( const u_int fnum ) const { return ( GetFilterListPtr()->Goto(fnum) ); } /*! Retourne le numéro d'un filtre de la liste, ou -1 si le filtre * n'existe pas. * \param fname nom du filtre recherché */ inline int EventManager::GetFilterIndex ( const string &fname ) const { return ( GetFilterListPtr()->GetFilterIndex (fname) ); } /*! Retourne le nom d'un filtre de la liste, ou une chaîne vide si le filtre * n'existe pas. * \param fnum numéro du filtre recherché */ inline string EventManager::GetFilterName ( const u_int fnum ) const { const Filter *ptr = GetFilterPtr(fnum); return ( (ptr == NULL) ? "" : ptr->GetName() ); } //====================================================================== #endif
932  */
933 inline TreeInfo * EventManager::GetTreePtr ( const string & t_name ) const
934  { return ( tree_list.GetTreePtr (t_name) ); }
935 
936 /*! Retourne le numéro d'un arbre à partir de son nom dans
937  * la liste. Si l'arbre n'existe pas, retourne -1.
938  * \param t_name nom de l'arbre recherché */ inline int EventManager::GetTreeIndex ( const string & t_name ) const { return ( tree_list.GetTreeIndex (t_name) ); } /*! Ouvre tous les arbres de la liste qui sont pas déjà ouverts. * L'argument indique le mode sélectionné: seuls les arbres fonctionnant * sur ce mode sont ouverts (tous si m vaut -1). * \param m mode de fichier sélectionné */ inline void EventManager::OpenTreeList ( const Int_t m ) const { tree_list.OpenList ( m ); } /*! Ferme tous les arbres de la liste. * L'argument indique le mode sélectionné: seuls les arbres fonctionnant * sur ce mode sont fermés (tous si m vaut -1). * \param m mode de fichier sélectionné */ inline void EventManager::CloseTreeList ( const Int_t m ) const { tree_list.CloseList ( m ); } //---------------------------------------------------------------------- // SPECTRES ET HISTOGRAMMES /*! Renomme un spectre de la liste et éventuellement ses axes. * La fonction retourne vrai si l'opération est réussie, et faux * si un spectre protre déjà ce nom ou que le spectre n'est * pas trouvé. * \param num numéro du spectre à renommer * \param name nom du spectre * \param name_x nom de l'axe X * \param name_y nom de l'axe Y * \param name_z nom de l'axe Z */ inline bool EventManager::RenameSpectrum ( const u_int num, const string &name, const string &name_x, const string &name_y, const string &name_z ) { return ( spec_list.RenameSpectrum(num, name, name_x, name_y, name_z) ); } /*! Renomme un spectre de la liste et éventuellement ses axes. * La fonction retourne vrai si l'opération est réussie, et faux * si un spectre protre déjà ce nom ou que le spectre n'est * pas trouvé. * \param spec_name numéro du spectre à renommer * \param name nom du spectre * \param name_x nom de l'axe X * \param name_y nom de l'axe Y * \param name_z nom de l'axe Z */ inline bool EventManager::RenameSpectrum ( const string & spec_name, const string &name, const string &name_x, const string &name_y, const string &name_z ) { return ( spec_list.RenameSpectrum(spec_name, name, name_x, name_y, name_z) ); } /*! Incrémentation automatique (rapide) des spectres et des arbres, * avec mise à jour préalable des filtres. */ inline void EventManager::IncrementSpectra ( ) const { filter_list.UpdateValues (); spec_list.IncrementListFast(); //spec_list.UpdateList(); // pas à chaque événement !!! tree_list.IncrementListFast(); } /*! Retourne le pointeur sur un spectre à partir de son numéro dans * la liste. Si le spectre n'existe pas, retourne NULL. * \param num numéro du spectre recherché */ inline Spectrum * EventManager::GetSpectrumPtr ( const u_int num ) const { return ( spec_list.GetSpectrumPtr (num) ); } /*! Retourne le pointeur sur un spectre à partir de son nom dans * la liste. Si le spectre n'existe pas, retourne NULL. * \param spec_name nom du spectre recherché */ inline Spectrum * EventManager::GetSpectrumPtr ( const string & spec_name ) const { return ( spec_list.GetSpectrumPtr (spec_name) ); } /*! Retourne le numéro d'un spectre à partir de son nom dans * la liste. Si le spectre n'existe pas, retourne -1. * \param spec_name nom du spectre recherché */ inline int EventManager::GetSpectrumIndex ( const string & spec_name ) const { return ( spec_list.GetSpectrumIndex (spec_name) ); } /*! Retourne le nom d'un spectre de la liste, ou une chaîne vide si le spectre * n'existe pas. * \param spec_num numéro du spectre recherché */ inline string EventManager::GetSpectrumName ( const u_int spec_num ) const { return ( spec_list.GetSpectrumName (spec_num) ); } /*! Retourne le pointeur sur l'histogramme d'un spectre à partir de * son numéro dans la liste. * Si le spectre n'existe pas, retourne NULL. * \param num numéro du spectre dont on cherche l'histogramme */ inline TH1 * EventManager::GetHistoPtr ( const u_int num ) const { return ( spec_list.GetHistoPtr (num) ); } /*! Retourne le pointeur sur l'histogramme d'un spectre à partir de * son nom dans la liste. * Si le spectre n'existe pas, retourne NULL. * \param spec_name nom du spectre dont on cherche l'histogramme */ inline TH1 * EventManager::GetHistoPtr ( const string & spec_name ) const { return ( spec_list.GetHistoPtr (spec_name) ); } //---------------------------------------------------------------------- // FAMILLES DE SPECTRES /*! Place un spectre dans une famille. * \param spec_name nom du spectre * \param family_name nom de la famille de spectres */ inline bool EventManager::SetSpectrumFamily ( const string & spec_name, const string & family_name ) { return ( spec_list.SetSpectrumFamily(spec_name,family_name) ); } /*! Place un spectre dans une famille. * \param spec_num numéro du spectre * \param family_name nom de la famille de spectres */ inline bool EventManager::SetSpectrumFamily ( const u_int spec_num, const string & family_name ) { return ( spec_list.SetSpectrumFamily(spec_num,family_name) ); } /*! Retire un spectre de sa famille (le spectre lui-même n'est pas * affecté). * \param spec_name nom du spectre */ inline bool EventManager::ResetSpectrumFamily ( const string & spec_name ) { return ( spec_list.ResetSpectrumFamily(spec_name) ); } /*! Retire un spectre de sa famille (le spectre lui-même n'est pas * affecté). * \param spec_num numéro du spectre */ inline bool EventManager::ResetSpectrumFamily ( const u_int spec_num ) { return ( spec_list.ResetSpectrumFamily(spec_num) ); } /*! Démarre une famille de spectres. La méthode retourne vrai * si la famille existe * \param family_name nom de la famille */ inline bool EventManager::StartFamily ( const string & family_name ) { return ( spec_list.StartFamily(family_name) ); } /*! Arrête une famille de spectres. La méthode retourne vrai * si la famille existe * \param family_name nom de la famille */ inline bool EventManager::StopFamily ( const string & family_name ) { return ( spec_list.StopFamily(family_name) ); } /*! Suspend une famille de spectres. La méthode retourne vrai * si la famille existe * \param family_name nom de la famille */ inline bool EventManager::SuspendFamily ( const string & family_name ) { return ( spec_list.SuspendFamily(family_name) ); } /*! Remise à zéro d'une famille de spectres. La méthode retourne vrai * si la famille existe * \param family_name nom de la famille */ inline bool EventManager::ResetFamily ( const string & family_name ) { return ( spec_list.ResetFamily(family_name) ); } //---------------------------------------------------------------------- // ECRITURE DES STRUCTURES /*! Ecriture de l'événement courant sur la sortie standard. * \param all indique s'il faut écrire tout l'événement, y compris * les paramètres non affectés * \param pmin numéro du 1er paramètre à écrire (à partir de 0) * \param pmax numéro du dernier paramètre (exclus) */ inline void EventManager::DumpEvent ( const bool all, const u_int pmin, const u_int pmax ) const { DumpEvent ( cout, all, pmin, pmax ); } /*! Ecriture de la structure d'événement sur la sortie standard. * Tous les paramètres (y compris ceux définis par l'utilisateur) * sont écris. */ inline void EventManager::PrintEvent ( ) const { PrintEvent ( cout ); } /*! Ecriture de la liste de spectres sur la sortie standard. */ inline void EventManager::PrintSpecList ( ) const { PrintSpecList ( cout ); } //---------------------------------------------------------------------- /*! Ecriture d'une familles de spectres sur la sortie standard. * \param family_name nom de la famille ("" pour toutes les familles) */ inline void EventManager::PrintFamily ( const string & family_name ) { spec_list.PrintFamily ( family_name ); } /*! Ecriture d'une familles de spectres dans un flux de sortie. * \param os flux de sortie * \param family_name nom de la famille ("" pour toutes les familles) */ inline void EventManager::PrintFamily ( ostream &os, const string & family_name ) { spec_list.PrintFamily ( os, family_name ); } /*! Ecriture d'une familles de spectres dans un fichier. * \param file_name nom du fichier * \param family_name nom de la famille ("" pour toutes les familles) */ inline void EventManager::PrintFamily ( const string & file_name, const string & family_name) { spec_list.PrintFamily ( file_name, family_name ); } //---------------------------------------------------------------------- /*! Retire un filtre du gestionnaire, en vérifiant au préalable s'il * est utilisé par les autres filtres de la liste ou par les spectres. * \param f pointeur sur le filtre à supprimer * \param force indique s'il faut forcer la suppression des filtres * utilisant celui qui est supprimé */ inline bool EventManager::RemoveFilter ( Filter *f, const bool force ) { return ( filter_list.RemoveFilter (f,force) ); } /*! Retire un filtre du gestionnaire, en vérifiant au préalable s'il * est utilisé par les autres filtres de la liste ou par les spectres. * \param f_name nom du filtre à supprimer * \param force indique s'il faut forcer la suppression des filtres * utilisant celui qui est supprimé */ inline bool EventManager::RemoveFilter ( const string &f_name, const bool force ) { return ( filter_list.RemoveFilter (f_name,force) ); } /*! Retire un filtre du gestionnaire, en vérifiant au préalable s'il * est utilisé par les autres filtres de la liste ou par les spectres. * \param f_num numéro du filtre à supprimer * \param force indique s'il faut forcer la suppression des filtres * utilisant celui qui est supprimé */ inline bool EventManager::RemoveFilter ( const int f_num, const bool force ) { return ( filter_list.RemoveFilter (f_num,force) ); } /*! Fonction qui teste l'état d'un filtre. * \param f pointeur sur le filtre */ inline bool EventManager::CheckFilter ( const Filter * f ) { return ( (f == NULL) ? false : f->Ok() ); } //---------------------------------------------------------------------- /*! Retourne le pointeur sur un contour de la liste, ou NULL si le contour * n'existe pas. * \param cname nom du contour recherché */ inline RContour * EventManager::GetContourPtr ( const string &cname ) const { return ( GetContourListPtr()->FindName(cname) ); } /*! Retourne le pointeur sur un contour de la liste, ou NULL si le contour * n'existe pas. * \param cnum numéro du contour recherché */ inline RContour * EventManager::GetContourPtr ( const u_int cnum ) const { return ( GetContourListPtr()->Goto(cnum) ); } /*! Retourne le numéro d'un contour de la liste, ou -1 si le contour * n'existe pas. * \param cname nom du contour recherché */ inline int EventManager::GetContourIndex ( const string &cname ) const { return ( GetFilterListPtr()->GetContourIndex (cname) ); } /*! Retourne le nom d'un contour de la liste, ou une chaîne vide si le contour * n'existe pas. * \param cnum numéro du contour recherché */ inline string EventManager::GetContourName ( const u_int cnum ) const { RContour *ptr = GetContourPtr(cnum); return ( (ptr == NULL) ? "" : ptr->GetName() ); } /*! Retourne le pointeur sur un filtre de la liste, ou NULL si le filtre * n'existe pas. * \param fname nom du filtre recherché */ inline Filter * EventManager::GetFilterPtr ( const string &fname ) const { return ( GetFilterListPtr()->FindName(fname) ); } /*! Retourne le pointeur sur un filtre de la liste, ou NULL si le filtre * n'existe pas. * \param fnum numéro du filtre recherché */ inline Filter * EventManager::GetFilterPtr ( const u_int fnum ) const { return ( GetFilterListPtr()->Goto(fnum) ); } /*! Retourne le numéro d'un filtre de la liste, ou -1 si le filtre * n'existe pas. * \param fname nom du filtre recherché */ inline int EventManager::GetFilterIndex ( const string &fname ) const { return ( GetFilterListPtr()->GetFilterIndex (fname) ); } /*! Retourne le nom d'un filtre de la liste, ou une chaîne vide si le filtre * n'existe pas. * \param fnum numéro du filtre recherché */ inline string EventManager::GetFilterName ( const u_int fnum ) const { const Filter *ptr = GetFilterPtr(fnum); return ( (ptr == NULL) ? "" : ptr->GetName() ); } //====================================================================== #endif
939  */
940 inline int EventManager::GetTreeIndex ( const string & t_name ) const
941  { return ( tree_list.GetTreeIndex (t_name) ); }
942 
943 
944 /*! Ouvre tous les arbres de la liste qui sont pas déjà ouverts.
945  * L'argument indique le mode sélectionné: seuls les arbres fonctionnant
946  * sur ce mode sont ouverts (tous si m vaut -1).
947  * \param m mode de fichier sélectionné */ inline void EventManager::OpenTreeList ( const Int_t m ) const { tree_list.OpenList ( m ); } /*! Ferme tous les arbres de la liste. * L'argument indique le mode sélectionné: seuls les arbres fonctionnant * sur ce mode sont fermés (tous si m vaut -1). * \param m mode de fichier sélectionné */ inline void EventManager::CloseTreeList ( const Int_t m ) const { tree_list.CloseList ( m ); } //---------------------------------------------------------------------- // SPECTRES ET HISTOGRAMMES /*! Renomme un spectre de la liste et éventuellement ses axes. * La fonction retourne vrai si l'opération est réussie, et faux * si un spectre protre déjà ce nom ou que le spectre n'est * pas trouvé. * \param num numéro du spectre à renommer * \param name nom du spectre * \param name_x nom de l'axe X * \param name_y nom de l'axe Y * \param name_z nom de l'axe Z */ inline bool EventManager::RenameSpectrum ( const u_int num, const string &name, const string &name_x, const string &name_y, const string &name_z ) { return ( spec_list.RenameSpectrum(num, name, name_x, name_y, name_z) ); } /*! Renomme un spectre de la liste et éventuellement ses axes. * La fonction retourne vrai si l'opération est réussie, et faux * si un spectre protre déjà ce nom ou que le spectre n'est * pas trouvé. * \param spec_name numéro du spectre à renommer * \param name nom du spectre * \param name_x nom de l'axe X * \param name_y nom de l'axe Y * \param name_z nom de l'axe Z */ inline bool EventManager::RenameSpectrum ( const string & spec_name, const string &name, const string &name_x, const string &name_y, const string &name_z ) { return ( spec_list.RenameSpectrum(spec_name, name, name_x, name_y, name_z) ); } /*! Incrémentation automatique (rapide) des spectres et des arbres, * avec mise à jour préalable des filtres. */ inline void EventManager::IncrementSpectra ( ) const { filter_list.UpdateValues (); spec_list.IncrementListFast(); //spec_list.UpdateList(); // pas à chaque événement !!! tree_list.IncrementListFast(); } /*! Retourne le pointeur sur un spectre à partir de son numéro dans * la liste. Si le spectre n'existe pas, retourne NULL. * \param num numéro du spectre recherché */ inline Spectrum * EventManager::GetSpectrumPtr ( const u_int num ) const { return ( spec_list.GetSpectrumPtr (num) ); } /*! Retourne le pointeur sur un spectre à partir de son nom dans * la liste. Si le spectre n'existe pas, retourne NULL. * \param spec_name nom du spectre recherché */ inline Spectrum * EventManager::GetSpectrumPtr ( const string & spec_name ) const { return ( spec_list.GetSpectrumPtr (spec_name) ); } /*! Retourne le numéro d'un spectre à partir de son nom dans * la liste. Si le spectre n'existe pas, retourne -1. * \param spec_name nom du spectre recherché */ inline int EventManager::GetSpectrumIndex ( const string & spec_name ) const { return ( spec_list.GetSpectrumIndex (spec_name) ); } /*! Retourne le nom d'un spectre de la liste, ou une chaîne vide si le spectre * n'existe pas. * \param spec_num numéro du spectre recherché */ inline string EventManager::GetSpectrumName ( const u_int spec_num ) const { return ( spec_list.GetSpectrumName (spec_num) ); } /*! Retourne le pointeur sur l'histogramme d'un spectre à partir de * son numéro dans la liste. * Si le spectre n'existe pas, retourne NULL. * \param num numéro du spectre dont on cherche l'histogramme */ inline TH1 * EventManager::GetHistoPtr ( const u_int num ) const { return ( spec_list.GetHistoPtr (num) ); } /*! Retourne le pointeur sur l'histogramme d'un spectre à partir de * son nom dans la liste. * Si le spectre n'existe pas, retourne NULL. * \param spec_name nom du spectre dont on cherche l'histogramme */ inline TH1 * EventManager::GetHistoPtr ( const string & spec_name ) const { return ( spec_list.GetHistoPtr (spec_name) ); } //---------------------------------------------------------------------- // FAMILLES DE SPECTRES /*! Place un spectre dans une famille. * \param spec_name nom du spectre * \param family_name nom de la famille de spectres */ inline bool EventManager::SetSpectrumFamily ( const string & spec_name, const string & family_name ) { return ( spec_list.SetSpectrumFamily(spec_name,family_name) ); } /*! Place un spectre dans une famille. * \param spec_num numéro du spectre * \param family_name nom de la famille de spectres */ inline bool EventManager::SetSpectrumFamily ( const u_int spec_num, const string & family_name ) { return ( spec_list.SetSpectrumFamily(spec_num,family_name) ); } /*! Retire un spectre de sa famille (le spectre lui-même n'est pas * affecté). * \param spec_name nom du spectre */ inline bool EventManager::ResetSpectrumFamily ( const string & spec_name ) { return ( spec_list.ResetSpectrumFamily(spec_name) ); } /*! Retire un spectre de sa famille (le spectre lui-même n'est pas * affecté). * \param spec_num numéro du spectre */ inline bool EventManager::ResetSpectrumFamily ( const u_int spec_num ) { return ( spec_list.ResetSpectrumFamily(spec_num) ); } /*! Démarre une famille de spectres. La méthode retourne vrai * si la famille existe * \param family_name nom de la famille */ inline bool EventManager::StartFamily ( const string & family_name ) { return ( spec_list.StartFamily(family_name) ); } /*! Arrête une famille de spectres. La méthode retourne vrai * si la famille existe * \param family_name nom de la famille */ inline bool EventManager::StopFamily ( const string & family_name ) { return ( spec_list.StopFamily(family_name) ); } /*! Suspend une famille de spectres. La méthode retourne vrai * si la famille existe * \param family_name nom de la famille */ inline bool EventManager::SuspendFamily ( const string & family_name ) { return ( spec_list.SuspendFamily(family_name) ); } /*! Remise à zéro d'une famille de spectres. La méthode retourne vrai * si la famille existe * \param family_name nom de la famille */ inline bool EventManager::ResetFamily ( const string & family_name ) { return ( spec_list.ResetFamily(family_name) ); } //---------------------------------------------------------------------- // ECRITURE DES STRUCTURES /*! Ecriture de l'événement courant sur la sortie standard. * \param all indique s'il faut écrire tout l'événement, y compris * les paramètres non affectés * \param pmin numéro du 1er paramètre à écrire (à partir de 0) * \param pmax numéro du dernier paramètre (exclus) */ inline void EventManager::DumpEvent ( const bool all, const u_int pmin, const u_int pmax ) const { DumpEvent ( cout, all, pmin, pmax ); } /*! Ecriture de la structure d'événement sur la sortie standard. * Tous les paramètres (y compris ceux définis par l'utilisateur) * sont écris. */ inline void EventManager::PrintEvent ( ) const { PrintEvent ( cout ); } /*! Ecriture de la liste de spectres sur la sortie standard. */ inline void EventManager::PrintSpecList ( ) const { PrintSpecList ( cout ); } //---------------------------------------------------------------------- /*! Ecriture d'une familles de spectres sur la sortie standard. * \param family_name nom de la famille ("" pour toutes les familles) */ inline void EventManager::PrintFamily ( const string & family_name ) { spec_list.PrintFamily ( family_name ); } /*! Ecriture d'une familles de spectres dans un flux de sortie. * \param os flux de sortie * \param family_name nom de la famille ("" pour toutes les familles) */ inline void EventManager::PrintFamily ( ostream &os, const string & family_name ) { spec_list.PrintFamily ( os, family_name ); } /*! Ecriture d'une familles de spectres dans un fichier. * \param file_name nom du fichier * \param family_name nom de la famille ("" pour toutes les familles) */ inline void EventManager::PrintFamily ( const string & file_name, const string & family_name) { spec_list.PrintFamily ( file_name, family_name ); } //---------------------------------------------------------------------- /*! Retire un filtre du gestionnaire, en vérifiant au préalable s'il * est utilisé par les autres filtres de la liste ou par les spectres. * \param f pointeur sur le filtre à supprimer * \param force indique s'il faut forcer la suppression des filtres * utilisant celui qui est supprimé */ inline bool EventManager::RemoveFilter ( Filter *f, const bool force ) { return ( filter_list.RemoveFilter (f,force) ); } /*! Retire un filtre du gestionnaire, en vérifiant au préalable s'il * est utilisé par les autres filtres de la liste ou par les spectres. * \param f_name nom du filtre à supprimer * \param force indique s'il faut forcer la suppression des filtres * utilisant celui qui est supprimé */ inline bool EventManager::RemoveFilter ( const string &f_name, const bool force ) { return ( filter_list.RemoveFilter (f_name,force) ); } /*! Retire un filtre du gestionnaire, en vérifiant au préalable s'il * est utilisé par les autres filtres de la liste ou par les spectres. * \param f_num numéro du filtre à supprimer * \param force indique s'il faut forcer la suppression des filtres * utilisant celui qui est supprimé */ inline bool EventManager::RemoveFilter ( const int f_num, const bool force ) { return ( filter_list.RemoveFilter (f_num,force) ); } /*! Fonction qui teste l'état d'un filtre. * \param f pointeur sur le filtre */ inline bool EventManager::CheckFilter ( const Filter * f ) { return ( (f == NULL) ? false : f->Ok() ); } //---------------------------------------------------------------------- /*! Retourne le pointeur sur un contour de la liste, ou NULL si le contour * n'existe pas. * \param cname nom du contour recherché */ inline RContour * EventManager::GetContourPtr ( const string &cname ) const { return ( GetContourListPtr()->FindName(cname) ); } /*! Retourne le pointeur sur un contour de la liste, ou NULL si le contour * n'existe pas. * \param cnum numéro du contour recherché */ inline RContour * EventManager::GetContourPtr ( const u_int cnum ) const { return ( GetContourListPtr()->Goto(cnum) ); } /*! Retourne le numéro d'un contour de la liste, ou -1 si le contour * n'existe pas. * \param cname nom du contour recherché */ inline int EventManager::GetContourIndex ( const string &cname ) const { return ( GetFilterListPtr()->GetContourIndex (cname) ); } /*! Retourne le nom d'un contour de la liste, ou une chaîne vide si le contour * n'existe pas. * \param cnum numéro du contour recherché */ inline string EventManager::GetContourName ( const u_int cnum ) const { RContour *ptr = GetContourPtr(cnum); return ( (ptr == NULL) ? "" : ptr->GetName() ); } /*! Retourne le pointeur sur un filtre de la liste, ou NULL si le filtre * n'existe pas. * \param fname nom du filtre recherché */ inline Filter * EventManager::GetFilterPtr ( const string &fname ) const { return ( GetFilterListPtr()->FindName(fname) ); } /*! Retourne le pointeur sur un filtre de la liste, ou NULL si le filtre * n'existe pas. * \param fnum numéro du filtre recherché */ inline Filter * EventManager::GetFilterPtr ( const u_int fnum ) const { return ( GetFilterListPtr()->Goto(fnum) ); } /*! Retourne le numéro d'un filtre de la liste, ou -1 si le filtre * n'existe pas. * \param fname nom du filtre recherché */ inline int EventManager::GetFilterIndex ( const string &fname ) const { return ( GetFilterListPtr()->GetFilterIndex (fname) ); } /*! Retourne le nom d'un filtre de la liste, ou une chaîne vide si le filtre * n'existe pas. * \param fnum numéro du filtre recherché */ inline string EventManager::GetFilterName ( const u_int fnum ) const { const Filter *ptr = GetFilterPtr(fnum); return ( (ptr == NULL) ? "" : ptr->GetName() ); } //====================================================================== #endif
948  */
949 inline void EventManager::OpenTreeList ( const Int_t m ) const
950  { tree_list.OpenList ( m ); }
951 
952 /*! Ferme tous les arbres de la liste.
953  * L'argument indique le mode sélectionné: seuls les arbres fonctionnant
954  * sur ce mode sont fermés (tous si m vaut -1).
955  * \param m mode de fichier sélectionné */ inline void EventManager::CloseTreeList ( const Int_t m ) const { tree_list.CloseList ( m ); } //---------------------------------------------------------------------- // SPECTRES ET HISTOGRAMMES /*! Renomme un spectre de la liste et éventuellement ses axes. * La fonction retourne vrai si l'opération est réussie, et faux * si un spectre protre déjà ce nom ou que le spectre n'est * pas trouvé. * \param num numéro du spectre à renommer * \param name nom du spectre * \param name_x nom de l'axe X * \param name_y nom de l'axe Y * \param name_z nom de l'axe Z */ inline bool EventManager::RenameSpectrum ( const u_int num, const string &name, const string &name_x, const string &name_y, const string &name_z ) { return ( spec_list.RenameSpectrum(num, name, name_x, name_y, name_z) ); } /*! Renomme un spectre de la liste et éventuellement ses axes. * La fonction retourne vrai si l'opération est réussie, et faux * si un spectre protre déjà ce nom ou que le spectre n'est * pas trouvé. * \param spec_name numéro du spectre à renommer * \param name nom du spectre * \param name_x nom de l'axe X * \param name_y nom de l'axe Y * \param name_z nom de l'axe Z */ inline bool EventManager::RenameSpectrum ( const string & spec_name, const string &name, const string &name_x, const string &name_y, const string &name_z ) { return ( spec_list.RenameSpectrum(spec_name, name, name_x, name_y, name_z) ); } /*! Incrémentation automatique (rapide) des spectres et des arbres, * avec mise à jour préalable des filtres. */ inline void EventManager::IncrementSpectra ( ) const { filter_list.UpdateValues (); spec_list.IncrementListFast(); //spec_list.UpdateList(); // pas à chaque événement !!! tree_list.IncrementListFast(); } /*! Retourne le pointeur sur un spectre à partir de son numéro dans * la liste. Si le spectre n'existe pas, retourne NULL. * \param num numéro du spectre recherché */ inline Spectrum * EventManager::GetSpectrumPtr ( const u_int num ) const { return ( spec_list.GetSpectrumPtr (num) ); } /*! Retourne le pointeur sur un spectre à partir de son nom dans * la liste. Si le spectre n'existe pas, retourne NULL. * \param spec_name nom du spectre recherché */ inline Spectrum * EventManager::GetSpectrumPtr ( const string & spec_name ) const { return ( spec_list.GetSpectrumPtr (spec_name) ); } /*! Retourne le numéro d'un spectre à partir de son nom dans * la liste. Si le spectre n'existe pas, retourne -1. * \param spec_name nom du spectre recherché */ inline int EventManager::GetSpectrumIndex ( const string & spec_name ) const { return ( spec_list.GetSpectrumIndex (spec_name) ); } /*! Retourne le nom d'un spectre de la liste, ou une chaîne vide si le spectre * n'existe pas. * \param spec_num numéro du spectre recherché */ inline string EventManager::GetSpectrumName ( const u_int spec_num ) const { return ( spec_list.GetSpectrumName (spec_num) ); } /*! Retourne le pointeur sur l'histogramme d'un spectre à partir de * son numéro dans la liste. * Si le spectre n'existe pas, retourne NULL. * \param num numéro du spectre dont on cherche l'histogramme */ inline TH1 * EventManager::GetHistoPtr ( const u_int num ) const { return ( spec_list.GetHistoPtr (num) ); } /*! Retourne le pointeur sur l'histogramme d'un spectre à partir de * son nom dans la liste. * Si le spectre n'existe pas, retourne NULL. * \param spec_name nom du spectre dont on cherche l'histogramme */ inline TH1 * EventManager::GetHistoPtr ( const string & spec_name ) const { return ( spec_list.GetHistoPtr (spec_name) ); } //---------------------------------------------------------------------- // FAMILLES DE SPECTRES /*! Place un spectre dans une famille. * \param spec_name nom du spectre * \param family_name nom de la famille de spectres */ inline bool EventManager::SetSpectrumFamily ( const string & spec_name, const string & family_name ) { return ( spec_list.SetSpectrumFamily(spec_name,family_name) ); } /*! Place un spectre dans une famille. * \param spec_num numéro du spectre * \param family_name nom de la famille de spectres */ inline bool EventManager::SetSpectrumFamily ( const u_int spec_num, const string & family_name ) { return ( spec_list.SetSpectrumFamily(spec_num,family_name) ); } /*! Retire un spectre de sa famille (le spectre lui-même n'est pas * affecté). * \param spec_name nom du spectre */ inline bool EventManager::ResetSpectrumFamily ( const string & spec_name ) { return ( spec_list.ResetSpectrumFamily(spec_name) ); } /*! Retire un spectre de sa famille (le spectre lui-même n'est pas * affecté). * \param spec_num numéro du spectre */ inline bool EventManager::ResetSpectrumFamily ( const u_int spec_num ) { return ( spec_list.ResetSpectrumFamily(spec_num) ); } /*! Démarre une famille de spectres. La méthode retourne vrai * si la famille existe * \param family_name nom de la famille */ inline bool EventManager::StartFamily ( const string & family_name ) { return ( spec_list.StartFamily(family_name) ); } /*! Arrête une famille de spectres. La méthode retourne vrai * si la famille existe * \param family_name nom de la famille */ inline bool EventManager::StopFamily ( const string & family_name ) { return ( spec_list.StopFamily(family_name) ); } /*! Suspend une famille de spectres. La méthode retourne vrai * si la famille existe * \param family_name nom de la famille */ inline bool EventManager::SuspendFamily ( const string & family_name ) { return ( spec_list.SuspendFamily(family_name) ); } /*! Remise à zéro d'une famille de spectres. La méthode retourne vrai * si la famille existe * \param family_name nom de la famille */ inline bool EventManager::ResetFamily ( const string & family_name ) { return ( spec_list.ResetFamily(family_name) ); } //---------------------------------------------------------------------- // ECRITURE DES STRUCTURES /*! Ecriture de l'événement courant sur la sortie standard. * \param all indique s'il faut écrire tout l'événement, y compris * les paramètres non affectés * \param pmin numéro du 1er paramètre à écrire (à partir de 0) * \param pmax numéro du dernier paramètre (exclus) */ inline void EventManager::DumpEvent ( const bool all, const u_int pmin, const u_int pmax ) const { DumpEvent ( cout, all, pmin, pmax ); } /*! Ecriture de la structure d'événement sur la sortie standard. * Tous les paramètres (y compris ceux définis par l'utilisateur) * sont écris. */ inline void EventManager::PrintEvent ( ) const { PrintEvent ( cout ); } /*! Ecriture de la liste de spectres sur la sortie standard. */ inline void EventManager::PrintSpecList ( ) const { PrintSpecList ( cout ); } //---------------------------------------------------------------------- /*! Ecriture d'une familles de spectres sur la sortie standard. * \param family_name nom de la famille ("" pour toutes les familles) */ inline void EventManager::PrintFamily ( const string & family_name ) { spec_list.PrintFamily ( family_name ); } /*! Ecriture d'une familles de spectres dans un flux de sortie. * \param os flux de sortie * \param family_name nom de la famille ("" pour toutes les familles) */ inline void EventManager::PrintFamily ( ostream &os, const string & family_name ) { spec_list.PrintFamily ( os, family_name ); } /*! Ecriture d'une familles de spectres dans un fichier. * \param file_name nom du fichier * \param family_name nom de la famille ("" pour toutes les familles) */ inline void EventManager::PrintFamily ( const string & file_name, const string & family_name) { spec_list.PrintFamily ( file_name, family_name ); } //---------------------------------------------------------------------- /*! Retire un filtre du gestionnaire, en vérifiant au préalable s'il * est utilisé par les autres filtres de la liste ou par les spectres. * \param f pointeur sur le filtre à supprimer * \param force indique s'il faut forcer la suppression des filtres * utilisant celui qui est supprimé */ inline bool EventManager::RemoveFilter ( Filter *f, const bool force ) { return ( filter_list.RemoveFilter (f,force) ); } /*! Retire un filtre du gestionnaire, en vérifiant au préalable s'il * est utilisé par les autres filtres de la liste ou par les spectres. * \param f_name nom du filtre à supprimer * \param force indique s'il faut forcer la suppression des filtres * utilisant celui qui est supprimé */ inline bool EventManager::RemoveFilter ( const string &f_name, const bool force ) { return ( filter_list.RemoveFilter (f_name,force) ); } /*! Retire un filtre du gestionnaire, en vérifiant au préalable s'il * est utilisé par les autres filtres de la liste ou par les spectres. * \param f_num numéro du filtre à supprimer * \param force indique s'il faut forcer la suppression des filtres * utilisant celui qui est supprimé */ inline bool EventManager::RemoveFilter ( const int f_num, const bool force ) { return ( filter_list.RemoveFilter (f_num,force) ); } /*! Fonction qui teste l'état d'un filtre. * \param f pointeur sur le filtre */ inline bool EventManager::CheckFilter ( const Filter * f ) { return ( (f == NULL) ? false : f->Ok() ); } //---------------------------------------------------------------------- /*! Retourne le pointeur sur un contour de la liste, ou NULL si le contour * n'existe pas. * \param cname nom du contour recherché */ inline RContour * EventManager::GetContourPtr ( const string &cname ) const { return ( GetContourListPtr()->FindName(cname) ); } /*! Retourne le pointeur sur un contour de la liste, ou NULL si le contour * n'existe pas. * \param cnum numéro du contour recherché */ inline RContour * EventManager::GetContourPtr ( const u_int cnum ) const { return ( GetContourListPtr()->Goto(cnum) ); } /*! Retourne le numéro d'un contour de la liste, ou -1 si le contour * n'existe pas. * \param cname nom du contour recherché */ inline int EventManager::GetContourIndex ( const string &cname ) const { return ( GetFilterListPtr()->GetContourIndex (cname) ); } /*! Retourne le nom d'un contour de la liste, ou une chaîne vide si le contour * n'existe pas. * \param cnum numéro du contour recherché */ inline string EventManager::GetContourName ( const u_int cnum ) const { RContour *ptr = GetContourPtr(cnum); return ( (ptr == NULL) ? "" : ptr->GetName() ); } /*! Retourne le pointeur sur un filtre de la liste, ou NULL si le filtre * n'existe pas. * \param fname nom du filtre recherché */ inline Filter * EventManager::GetFilterPtr ( const string &fname ) const { return ( GetFilterListPtr()->FindName(fname) ); } /*! Retourne le pointeur sur un filtre de la liste, ou NULL si le filtre * n'existe pas. * \param fnum numéro du filtre recherché */ inline Filter * EventManager::GetFilterPtr ( const u_int fnum ) const { return ( GetFilterListPtr()->Goto(fnum) ); } /*! Retourne le numéro d'un filtre de la liste, ou -1 si le filtre * n'existe pas. * \param fname nom du filtre recherché */ inline int EventManager::GetFilterIndex ( const string &fname ) const { return ( GetFilterListPtr()->GetFilterIndex (fname) ); } /*! Retourne le nom d'un filtre de la liste, ou une chaîne vide si le filtre * n'existe pas. * \param fnum numéro du filtre recherché */ inline string EventManager::GetFilterName ( const u_int fnum ) const { const Filter *ptr = GetFilterPtr(fnum); return ( (ptr == NULL) ? "" : ptr->GetName() ); } //====================================================================== #endif
956  */
957 inline void EventManager::CloseTreeList ( const Int_t m ) const
958  { tree_list.CloseList ( m ); }
959 
960 //----------------------------------------------------------------------
961 // SPECTRES ET HISTOGRAMMES
962 
963 /*! Renomme un spectre de la liste et éventuellement ses axes.
964  * La fonction retourne vrai si l'opération est réussie, et faux
965  * si un spectre protre déjà ce nom ou que le spectre n'est
966  * pas trouvé. * \param num numéro du spectre à renommer * \param name nom du spectre * \param name_x nom de l'axe X * \param name_y nom de l'axe Y * \param name_z nom de l'axe Z */ inline bool EventManager::RenameSpectrum ( const u_int num, const string &name, const string &name_x, const string &name_y, const string &name_z ) { return ( spec_list.RenameSpectrum(num, name, name_x, name_y, name_z) ); } /*! Renomme un spectre de la liste et éventuellement ses axes. * La fonction retourne vrai si l'opération est réussie, et faux * si un spectre protre déjà ce nom ou que le spectre n'est * pas trouvé. * \param spec_name numéro du spectre à renommer * \param name nom du spectre * \param name_x nom de l'axe X * \param name_y nom de l'axe Y * \param name_z nom de l'axe Z */ inline bool EventManager::RenameSpectrum ( const string & spec_name, const string &name, const string &name_x, const string &name_y, const string &name_z ) { return ( spec_list.RenameSpectrum(spec_name, name, name_x, name_y, name_z) ); } /*! Incrémentation automatique (rapide) des spectres et des arbres, * avec mise à jour préalable des filtres. */ inline void EventManager::IncrementSpectra ( ) const { filter_list.UpdateValues (); spec_list.IncrementListFast(); //spec_list.UpdateList(); // pas à chaque événement !!! tree_list.IncrementListFast(); } /*! Retourne le pointeur sur un spectre à partir de son numéro dans * la liste. Si le spectre n'existe pas, retourne NULL. * \param num numéro du spectre recherché */ inline Spectrum * EventManager::GetSpectrumPtr ( const u_int num ) const { return ( spec_list.GetSpectrumPtr (num) ); } /*! Retourne le pointeur sur un spectre à partir de son nom dans * la liste. Si le spectre n'existe pas, retourne NULL. * \param spec_name nom du spectre recherché */ inline Spectrum * EventManager::GetSpectrumPtr ( const string & spec_name ) const { return ( spec_list.GetSpectrumPtr (spec_name) ); } /*! Retourne le numéro d'un spectre à partir de son nom dans * la liste. Si le spectre n'existe pas, retourne -1. * \param spec_name nom du spectre recherché */ inline int EventManager::GetSpectrumIndex ( const string & spec_name ) const { return ( spec_list.GetSpectrumIndex (spec_name) ); } /*! Retourne le nom d'un spectre de la liste, ou une chaîne vide si le spectre * n'existe pas. * \param spec_num numéro du spectre recherché */ inline string EventManager::GetSpectrumName ( const u_int spec_num ) const { return ( spec_list.GetSpectrumName (spec_num) ); } /*! Retourne le pointeur sur l'histogramme d'un spectre à partir de * son numéro dans la liste. * Si le spectre n'existe pas, retourne NULL. * \param num numéro du spectre dont on cherche l'histogramme */ inline TH1 * EventManager::GetHistoPtr ( const u_int num ) const { return ( spec_list.GetHistoPtr (num) ); } /*! Retourne le pointeur sur l'histogramme d'un spectre à partir de * son nom dans la liste. * Si le spectre n'existe pas, retourne NULL. * \param spec_name nom du spectre dont on cherche l'histogramme */ inline TH1 * EventManager::GetHistoPtr ( const string & spec_name ) const { return ( spec_list.GetHistoPtr (spec_name) ); } //---------------------------------------------------------------------- // FAMILLES DE SPECTRES /*! Place un spectre dans une famille. * \param spec_name nom du spectre * \param family_name nom de la famille de spectres */ inline bool EventManager::SetSpectrumFamily ( const string & spec_name, const string & family_name ) { return ( spec_list.SetSpectrumFamily(spec_name,family_name) ); } /*! Place un spectre dans une famille. * \param spec_num numéro du spectre * \param family_name nom de la famille de spectres */ inline bool EventManager::SetSpectrumFamily ( const u_int spec_num, const string & family_name ) { return ( spec_list.SetSpectrumFamily(spec_num,family_name) ); } /*! Retire un spectre de sa famille (le spectre lui-même n'est pas * affecté). * \param spec_name nom du spectre */ inline bool EventManager::ResetSpectrumFamily ( const string & spec_name ) { return ( spec_list.ResetSpectrumFamily(spec_name) ); } /*! Retire un spectre de sa famille (le spectre lui-même n'est pas * affecté). * \param spec_num numéro du spectre */ inline bool EventManager::ResetSpectrumFamily ( const u_int spec_num ) { return ( spec_list.ResetSpectrumFamily(spec_num) ); } /*! Démarre une famille de spectres. La méthode retourne vrai * si la famille existe * \param family_name nom de la famille */ inline bool EventManager::StartFamily ( const string & family_name ) { return ( spec_list.StartFamily(family_name) ); } /*! Arrête une famille de spectres. La méthode retourne vrai * si la famille existe * \param family_name nom de la famille */ inline bool EventManager::StopFamily ( const string & family_name ) { return ( spec_list.StopFamily(family_name) ); } /*! Suspend une famille de spectres. La méthode retourne vrai * si la famille existe * \param family_name nom de la famille */ inline bool EventManager::SuspendFamily ( const string & family_name ) { return ( spec_list.SuspendFamily(family_name) ); } /*! Remise à zéro d'une famille de spectres. La méthode retourne vrai * si la famille existe * \param family_name nom de la famille */ inline bool EventManager::ResetFamily ( const string & family_name ) { return ( spec_list.ResetFamily(family_name) ); } //---------------------------------------------------------------------- // ECRITURE DES STRUCTURES /*! Ecriture de l'événement courant sur la sortie standard. * \param all indique s'il faut écrire tout l'événement, y compris * les paramètres non affectés * \param pmin numéro du 1er paramètre à écrire (à partir de 0) * \param pmax numéro du dernier paramètre (exclus) */ inline void EventManager::DumpEvent ( const bool all, const u_int pmin, const u_int pmax ) const { DumpEvent ( cout, all, pmin, pmax ); } /*! Ecriture de la structure d'événement sur la sortie standard. * Tous les paramètres (y compris ceux définis par l'utilisateur) * sont écris. */ inline void EventManager::PrintEvent ( ) const { PrintEvent ( cout ); } /*! Ecriture de la liste de spectres sur la sortie standard. */ inline void EventManager::PrintSpecList ( ) const { PrintSpecList ( cout ); } //---------------------------------------------------------------------- /*! Ecriture d'une familles de spectres sur la sortie standard. * \param family_name nom de la famille ("" pour toutes les familles) */ inline void EventManager::PrintFamily ( const string & family_name ) { spec_list.PrintFamily ( family_name ); } /*! Ecriture d'une familles de spectres dans un flux de sortie. * \param os flux de sortie * \param family_name nom de la famille ("" pour toutes les familles) */ inline void EventManager::PrintFamily ( ostream &os, const string & family_name ) { spec_list.PrintFamily ( os, family_name ); } /*! Ecriture d'une familles de spectres dans un fichier. * \param file_name nom du fichier * \param family_name nom de la famille ("" pour toutes les familles) */ inline void EventManager::PrintFamily ( const string & file_name, const string & family_name) { spec_list.PrintFamily ( file_name, family_name ); } //---------------------------------------------------------------------- /*! Retire un filtre du gestionnaire, en vérifiant au préalable s'il * est utilisé par les autres filtres de la liste ou par les spectres. * \param f pointeur sur le filtre à supprimer * \param force indique s'il faut forcer la suppression des filtres * utilisant celui qui est supprimé */ inline bool EventManager::RemoveFilter ( Filter *f, const bool force ) { return ( filter_list.RemoveFilter (f,force) ); } /*! Retire un filtre du gestionnaire, en vérifiant au préalable s'il * est utilisé par les autres filtres de la liste ou par les spectres. * \param f_name nom du filtre à supprimer * \param force indique s'il faut forcer la suppression des filtres * utilisant celui qui est supprimé */ inline bool EventManager::RemoveFilter ( const string &f_name, const bool force ) { return ( filter_list.RemoveFilter (f_name,force) ); } /*! Retire un filtre du gestionnaire, en vérifiant au préalable s'il * est utilisé par les autres filtres de la liste ou par les spectres. * \param f_num numéro du filtre à supprimer * \param force indique s'il faut forcer la suppression des filtres * utilisant celui qui est supprimé */ inline bool EventManager::RemoveFilter ( const int f_num, const bool force ) { return ( filter_list.RemoveFilter (f_num,force) ); } /*! Fonction qui teste l'état d'un filtre. * \param f pointeur sur le filtre */ inline bool EventManager::CheckFilter ( const Filter * f ) { return ( (f == NULL) ? false : f->Ok() ); } //---------------------------------------------------------------------- /*! Retourne le pointeur sur un contour de la liste, ou NULL si le contour * n'existe pas. * \param cname nom du contour recherché */ inline RContour * EventManager::GetContourPtr ( const string &cname ) const { return ( GetContourListPtr()->FindName(cname) ); } /*! Retourne le pointeur sur un contour de la liste, ou NULL si le contour * n'existe pas. * \param cnum numéro du contour recherché */ inline RContour * EventManager::GetContourPtr ( const u_int cnum ) const { return ( GetContourListPtr()->Goto(cnum) ); } /*! Retourne le numéro d'un contour de la liste, ou -1 si le contour * n'existe pas. * \param cname nom du contour recherché */ inline int EventManager::GetContourIndex ( const string &cname ) const { return ( GetFilterListPtr()->GetContourIndex (cname) ); } /*! Retourne le nom d'un contour de la liste, ou une chaîne vide si le contour * n'existe pas. * \param cnum numéro du contour recherché */ inline string EventManager::GetContourName ( const u_int cnum ) const { RContour *ptr = GetContourPtr(cnum); return ( (ptr == NULL) ? "" : ptr->GetName() ); } /*! Retourne le pointeur sur un filtre de la liste, ou NULL si le filtre * n'existe pas. * \param fname nom du filtre recherché */ inline Filter * EventManager::GetFilterPtr ( const string &fname ) const { return ( GetFilterListPtr()->FindName(fname) ); } /*! Retourne le pointeur sur un filtre de la liste, ou NULL si le filtre * n'existe pas. * \param fnum numéro du filtre recherché */ inline Filter * EventManager::GetFilterPtr ( const u_int fnum ) const { return ( GetFilterListPtr()->Goto(fnum) ); } /*! Retourne le numéro d'un filtre de la liste, ou -1 si le filtre * n'existe pas. * \param fname nom du filtre recherché */ inline int EventManager::GetFilterIndex ( const string &fname ) const { return ( GetFilterListPtr()->GetFilterIndex (fname) ); } /*! Retourne le nom d'un filtre de la liste, ou une chaîne vide si le filtre * n'existe pas. * \param fnum numéro du filtre recherché */ inline string EventManager::GetFilterName ( const u_int fnum ) const { const Filter *ptr = GetFilterPtr(fnum); return ( (ptr == NULL) ? "" : ptr->GetName() ); } //====================================================================== #endif
967  * \param num numéro du spectre à renommer
968  * \param name nom du spectre
969  * \param name_x nom de l'axe X
970  * \param name_y nom de l'axe Y
971  * \param name_z nom de l'axe Z
972  */
973 inline bool EventManager::RenameSpectrum ( const u_int num, const string &name,
974  const string &name_x,
975  const string &name_y,
976  const string &name_z )
977  { return ( spec_list.RenameSpectrum(num, name, name_x, name_y, name_z) ); }
978 
979 /*! Renomme un spectre de la liste et éventuellement ses axes.
980  * La fonction retourne vrai si l'opération est réussie, et faux
981  * si un spectre protre déjà ce nom ou que le spectre n'est
982  * pas trouvé. * \param spec_name numéro du spectre à renommer * \param name nom du spectre * \param name_x nom de l'axe X * \param name_y nom de l'axe Y * \param name_z nom de l'axe Z */ inline bool EventManager::RenameSpectrum ( const string & spec_name, const string &name, const string &name_x, const string &name_y, const string &name_z ) { return ( spec_list.RenameSpectrum(spec_name, name, name_x, name_y, name_z) ); } /*! Incrémentation automatique (rapide) des spectres et des arbres, * avec mise à jour préalable des filtres. */ inline void EventManager::IncrementSpectra ( ) const { filter_list.UpdateValues (); spec_list.IncrementListFast(); //spec_list.UpdateList(); // pas à chaque événement !!! tree_list.IncrementListFast(); } /*! Retourne le pointeur sur un spectre à partir de son numéro dans * la liste. Si le spectre n'existe pas, retourne NULL. * \param num numéro du spectre recherché */ inline Spectrum * EventManager::GetSpectrumPtr ( const u_int num ) const { return ( spec_list.GetSpectrumPtr (num) ); } /*! Retourne le pointeur sur un spectre à partir de son nom dans * la liste. Si le spectre n'existe pas, retourne NULL. * \param spec_name nom du spectre recherché */ inline Spectrum * EventManager::GetSpectrumPtr ( const string & spec_name ) const { return ( spec_list.GetSpectrumPtr (spec_name) ); } /*! Retourne le numéro d'un spectre à partir de son nom dans * la liste. Si le spectre n'existe pas, retourne -1. * \param spec_name nom du spectre recherché */ inline int EventManager::GetSpectrumIndex ( const string & spec_name ) const { return ( spec_list.GetSpectrumIndex (spec_name) ); } /*! Retourne le nom d'un spectre de la liste, ou une chaîne vide si le spectre * n'existe pas. * \param spec_num numéro du spectre recherché */ inline string EventManager::GetSpectrumName ( const u_int spec_num ) const { return ( spec_list.GetSpectrumName (spec_num) ); } /*! Retourne le pointeur sur l'histogramme d'un spectre à partir de * son numéro dans la liste. * Si le spectre n'existe pas, retourne NULL. * \param num numéro du spectre dont on cherche l'histogramme */ inline TH1 * EventManager::GetHistoPtr ( const u_int num ) const { return ( spec_list.GetHistoPtr (num) ); } /*! Retourne le pointeur sur l'histogramme d'un spectre à partir de * son nom dans la liste. * Si le spectre n'existe pas, retourne NULL. * \param spec_name nom du spectre dont on cherche l'histogramme */ inline TH1 * EventManager::GetHistoPtr ( const string & spec_name ) const { return ( spec_list.GetHistoPtr (spec_name) ); } //---------------------------------------------------------------------- // FAMILLES DE SPECTRES /*! Place un spectre dans une famille. * \param spec_name nom du spectre * \param family_name nom de la famille de spectres */ inline bool EventManager::SetSpectrumFamily ( const string & spec_name, const string & family_name ) { return ( spec_list.SetSpectrumFamily(spec_name,family_name) ); } /*! Place un spectre dans une famille. * \param spec_num numéro du spectre * \param family_name nom de la famille de spectres */ inline bool EventManager::SetSpectrumFamily ( const u_int spec_num, const string & family_name ) { return ( spec_list.SetSpectrumFamily(spec_num,family_name) ); } /*! Retire un spectre de sa famille (le spectre lui-même n'est pas * affecté). * \param spec_name nom du spectre */ inline bool EventManager::ResetSpectrumFamily ( const string & spec_name ) { return ( spec_list.ResetSpectrumFamily(spec_name) ); } /*! Retire un spectre de sa famille (le spectre lui-même n'est pas * affecté). * \param spec_num numéro du spectre */ inline bool EventManager::ResetSpectrumFamily ( const u_int spec_num ) { return ( spec_list.ResetSpectrumFamily(spec_num) ); } /*! Démarre une famille de spectres. La méthode retourne vrai * si la famille existe * \param family_name nom de la famille */ inline bool EventManager::StartFamily ( const string & family_name ) { return ( spec_list.StartFamily(family_name) ); } /*! Arrête une famille de spectres. La méthode retourne vrai * si la famille existe * \param family_name nom de la famille */ inline bool EventManager::StopFamily ( const string & family_name ) { return ( spec_list.StopFamily(family_name) ); } /*! Suspend une famille de spectres. La méthode retourne vrai * si la famille existe * \param family_name nom de la famille */ inline bool EventManager::SuspendFamily ( const string & family_name ) { return ( spec_list.SuspendFamily(family_name) ); } /*! Remise à zéro d'une famille de spectres. La méthode retourne vrai * si la famille existe * \param family_name nom de la famille */ inline bool EventManager::ResetFamily ( const string & family_name ) { return ( spec_list.ResetFamily(family_name) ); } //---------------------------------------------------------------------- // ECRITURE DES STRUCTURES /*! Ecriture de l'événement courant sur la sortie standard. * \param all indique s'il faut écrire tout l'événement, y compris * les paramètres non affectés * \param pmin numéro du 1er paramètre à écrire (à partir de 0) * \param pmax numéro du dernier paramètre (exclus) */ inline void EventManager::DumpEvent ( const bool all, const u_int pmin, const u_int pmax ) const { DumpEvent ( cout, all, pmin, pmax ); } /*! Ecriture de la structure d'événement sur la sortie standard. * Tous les paramètres (y compris ceux définis par l'utilisateur) * sont écris. */ inline void EventManager::PrintEvent ( ) const { PrintEvent ( cout ); } /*! Ecriture de la liste de spectres sur la sortie standard. */ inline void EventManager::PrintSpecList ( ) const { PrintSpecList ( cout ); } //---------------------------------------------------------------------- /*! Ecriture d'une familles de spectres sur la sortie standard. * \param family_name nom de la famille ("" pour toutes les familles) */ inline void EventManager::PrintFamily ( const string & family_name ) { spec_list.PrintFamily ( family_name ); } /*! Ecriture d'une familles de spectres dans un flux de sortie. * \param os flux de sortie * \param family_name nom de la famille ("" pour toutes les familles) */ inline void EventManager::PrintFamily ( ostream &os, const string & family_name ) { spec_list.PrintFamily ( os, family_name ); } /*! Ecriture d'une familles de spectres dans un fichier. * \param file_name nom du fichier * \param family_name nom de la famille ("" pour toutes les familles) */ inline void EventManager::PrintFamily ( const string & file_name, const string & family_name) { spec_list.PrintFamily ( file_name, family_name ); } //---------------------------------------------------------------------- /*! Retire un filtre du gestionnaire, en vérifiant au préalable s'il * est utilisé par les autres filtres de la liste ou par les spectres. * \param f pointeur sur le filtre à supprimer * \param force indique s'il faut forcer la suppression des filtres * utilisant celui qui est supprimé */ inline bool EventManager::RemoveFilter ( Filter *f, const bool force ) { return ( filter_list.RemoveFilter (f,force) ); } /*! Retire un filtre du gestionnaire, en vérifiant au préalable s'il * est utilisé par les autres filtres de la liste ou par les spectres. * \param f_name nom du filtre à supprimer * \param force indique s'il faut forcer la suppression des filtres * utilisant celui qui est supprimé */ inline bool EventManager::RemoveFilter ( const string &f_name, const bool force ) { return ( filter_list.RemoveFilter (f_name,force) ); } /*! Retire un filtre du gestionnaire, en vérifiant au préalable s'il * est utilisé par les autres filtres de la liste ou par les spectres. * \param f_num numéro du filtre à supprimer * \param force indique s'il faut forcer la suppression des filtres * utilisant celui qui est supprimé */ inline bool EventManager::RemoveFilter ( const int f_num, const bool force ) { return ( filter_list.RemoveFilter (f_num,force) ); } /*! Fonction qui teste l'état d'un filtre. * \param f pointeur sur le filtre */ inline bool EventManager::CheckFilter ( const Filter * f ) { return ( (f == NULL) ? false : f->Ok() ); } //---------------------------------------------------------------------- /*! Retourne le pointeur sur un contour de la liste, ou NULL si le contour * n'existe pas. * \param cname nom du contour recherché */ inline RContour * EventManager::GetContourPtr ( const string &cname ) const { return ( GetContourListPtr()->FindName(cname) ); } /*! Retourne le pointeur sur un contour de la liste, ou NULL si le contour * n'existe pas. * \param cnum numéro du contour recherché */ inline RContour * EventManager::GetContourPtr ( const u_int cnum ) const { return ( GetContourListPtr()->Goto(cnum) ); } /*! Retourne le numéro d'un contour de la liste, ou -1 si le contour * n'existe pas. * \param cname nom du contour recherché */ inline int EventManager::GetContourIndex ( const string &cname ) const { return ( GetFilterListPtr()->GetContourIndex (cname) ); } /*! Retourne le nom d'un contour de la liste, ou une chaîne vide si le contour * n'existe pas. * \param cnum numéro du contour recherché */ inline string EventManager::GetContourName ( const u_int cnum ) const { RContour *ptr = GetContourPtr(cnum); return ( (ptr == NULL) ? "" : ptr->GetName() ); } /*! Retourne le pointeur sur un filtre de la liste, ou NULL si le filtre * n'existe pas. * \param fname nom du filtre recherché */ inline Filter * EventManager::GetFilterPtr ( const string &fname ) const { return ( GetFilterListPtr()->FindName(fname) ); } /*! Retourne le pointeur sur un filtre de la liste, ou NULL si le filtre * n'existe pas. * \param fnum numéro du filtre recherché */ inline Filter * EventManager::GetFilterPtr ( const u_int fnum ) const { return ( GetFilterListPtr()->Goto(fnum) ); } /*! Retourne le numéro d'un filtre de la liste, ou -1 si le filtre * n'existe pas. * \param fname nom du filtre recherché */ inline int EventManager::GetFilterIndex ( const string &fname ) const { return ( GetFilterListPtr()->GetFilterIndex (fname) ); } /*! Retourne le nom d'un filtre de la liste, ou une chaîne vide si le filtre * n'existe pas. * \param fnum numéro du filtre recherché */ inline string EventManager::GetFilterName ( const u_int fnum ) const { const Filter *ptr = GetFilterPtr(fnum); return ( (ptr == NULL) ? "" : ptr->GetName() ); } //====================================================================== #endif
983  * \param spec_name numéro du spectre à renommer
984  * \param name nom du spectre
985  * \param name_x nom de l'axe X
986  * \param name_y nom de l'axe Y
987  * \param name_z nom de l'axe Z
988  */
989 inline bool EventManager::RenameSpectrum ( const string & spec_name, const string &name,
990  const string &name_x,
991  const string &name_y,
992  const string &name_z )
993  { return ( spec_list.RenameSpectrum(spec_name, name, name_x, name_y, name_z) ); }
994 
995 
996 /*! Incrémentation automatique (rapide) des spectres et des arbres,
997  * avec mise à jour préalable des filtres.
998  */
999 inline void EventManager::IncrementSpectra ( ) const
1002  //spec_list.UpdateList(); // pas à chaque événement !!!
1004 
1005 
1006 /*! Retourne le pointeur sur un spectre à partir de son numéro dans
1007  * la liste. Si le spectre n'existe pas, retourne NULL.
1008  * \param num numéro du spectre recherché */ inline Spectrum * EventManager::GetSpectrumPtr ( const u_int num ) const { return ( spec_list.GetSpectrumPtr (num) ); } /*! Retourne le pointeur sur un spectre à partir de son nom dans * la liste. Si le spectre n'existe pas, retourne NULL. * \param spec_name nom du spectre recherché */ inline Spectrum * EventManager::GetSpectrumPtr ( const string & spec_name ) const { return ( spec_list.GetSpectrumPtr (spec_name) ); } /*! Retourne le numéro d'un spectre à partir de son nom dans * la liste. Si le spectre n'existe pas, retourne -1. * \param spec_name nom du spectre recherché */ inline int EventManager::GetSpectrumIndex ( const string & spec_name ) const { return ( spec_list.GetSpectrumIndex (spec_name) ); } /*! Retourne le nom d'un spectre de la liste, ou une chaîne vide si le spectre * n'existe pas. * \param spec_num numéro du spectre recherché */ inline string EventManager::GetSpectrumName ( const u_int spec_num ) const { return ( spec_list.GetSpectrumName (spec_num) ); } /*! Retourne le pointeur sur l'histogramme d'un spectre à partir de * son numéro dans la liste. * Si le spectre n'existe pas, retourne NULL. * \param num numéro du spectre dont on cherche l'histogramme */ inline TH1 * EventManager::GetHistoPtr ( const u_int num ) const { return ( spec_list.GetHistoPtr (num) ); } /*! Retourne le pointeur sur l'histogramme d'un spectre à partir de * son nom dans la liste. * Si le spectre n'existe pas, retourne NULL. * \param spec_name nom du spectre dont on cherche l'histogramme */ inline TH1 * EventManager::GetHistoPtr ( const string & spec_name ) const { return ( spec_list.GetHistoPtr (spec_name) ); } //---------------------------------------------------------------------- // FAMILLES DE SPECTRES /*! Place un spectre dans une famille. * \param spec_name nom du spectre * \param family_name nom de la famille de spectres */ inline bool EventManager::SetSpectrumFamily ( const string & spec_name, const string & family_name ) { return ( spec_list.SetSpectrumFamily(spec_name,family_name) ); } /*! Place un spectre dans une famille. * \param spec_num numéro du spectre * \param family_name nom de la famille de spectres */ inline bool EventManager::SetSpectrumFamily ( const u_int spec_num, const string & family_name ) { return ( spec_list.SetSpectrumFamily(spec_num,family_name) ); } /*! Retire un spectre de sa famille (le spectre lui-même n'est pas * affecté). * \param spec_name nom du spectre */ inline bool EventManager::ResetSpectrumFamily ( const string & spec_name ) { return ( spec_list.ResetSpectrumFamily(spec_name) ); } /*! Retire un spectre de sa famille (le spectre lui-même n'est pas * affecté). * \param spec_num numéro du spectre */ inline bool EventManager::ResetSpectrumFamily ( const u_int spec_num ) { return ( spec_list.ResetSpectrumFamily(spec_num) ); } /*! Démarre une famille de spectres. La méthode retourne vrai * si la famille existe * \param family_name nom de la famille */ inline bool EventManager::StartFamily ( const string & family_name ) { return ( spec_list.StartFamily(family_name) ); } /*! Arrête une famille de spectres. La méthode retourne vrai * si la famille existe * \param family_name nom de la famille */ inline bool EventManager::StopFamily ( const string & family_name ) { return ( spec_list.StopFamily(family_name) ); } /*! Suspend une famille de spectres. La méthode retourne vrai * si la famille existe * \param family_name nom de la famille */ inline bool EventManager::SuspendFamily ( const string & family_name ) { return ( spec_list.SuspendFamily(family_name) ); } /*! Remise à zéro d'une famille de spectres. La méthode retourne vrai * si la famille existe * \param family_name nom de la famille */ inline bool EventManager::ResetFamily ( const string & family_name ) { return ( spec_list.ResetFamily(family_name) ); } //---------------------------------------------------------------------- // ECRITURE DES STRUCTURES /*! Ecriture de l'événement courant sur la sortie standard. * \param all indique s'il faut écrire tout l'événement, y compris * les paramètres non affectés * \param pmin numéro du 1er paramètre à écrire (à partir de 0) * \param pmax numéro du dernier paramètre (exclus) */ inline void EventManager::DumpEvent ( const bool all, const u_int pmin, const u_int pmax ) const { DumpEvent ( cout, all, pmin, pmax ); } /*! Ecriture de la structure d'événement sur la sortie standard. * Tous les paramètres (y compris ceux définis par l'utilisateur) * sont écris. */ inline void EventManager::PrintEvent ( ) const { PrintEvent ( cout ); } /*! Ecriture de la liste de spectres sur la sortie standard. */ inline void EventManager::PrintSpecList ( ) const { PrintSpecList ( cout ); } //---------------------------------------------------------------------- /*! Ecriture d'une familles de spectres sur la sortie standard. * \param family_name nom de la famille ("" pour toutes les familles) */ inline void EventManager::PrintFamily ( const string & family_name ) { spec_list.PrintFamily ( family_name ); } /*! Ecriture d'une familles de spectres dans un flux de sortie. * \param os flux de sortie * \param family_name nom de la famille ("" pour toutes les familles) */ inline void EventManager::PrintFamily ( ostream &os, const string & family_name ) { spec_list.PrintFamily ( os, family_name ); } /*! Ecriture d'une familles de spectres dans un fichier. * \param file_name nom du fichier * \param family_name nom de la famille ("" pour toutes les familles) */ inline void EventManager::PrintFamily ( const string & file_name, const string & family_name) { spec_list.PrintFamily ( file_name, family_name ); } //---------------------------------------------------------------------- /*! Retire un filtre du gestionnaire, en vérifiant au préalable s'il * est utilisé par les autres filtres de la liste ou par les spectres. * \param f pointeur sur le filtre à supprimer * \param force indique s'il faut forcer la suppression des filtres * utilisant celui qui est supprimé */ inline bool EventManager::RemoveFilter ( Filter *f, const bool force ) { return ( filter_list.RemoveFilter (f,force) ); } /*! Retire un filtre du gestionnaire, en vérifiant au préalable s'il * est utilisé par les autres filtres de la liste ou par les spectres. * \param f_name nom du filtre à supprimer * \param force indique s'il faut forcer la suppression des filtres * utilisant celui qui est supprimé */ inline bool EventManager::RemoveFilter ( const string &f_name, const bool force ) { return ( filter_list.RemoveFilter (f_name,force) ); } /*! Retire un filtre du gestionnaire, en vérifiant au préalable s'il * est utilisé par les autres filtres de la liste ou par les spectres. * \param f_num numéro du filtre à supprimer * \param force indique s'il faut forcer la suppression des filtres * utilisant celui qui est supprimé */ inline bool EventManager::RemoveFilter ( const int f_num, const bool force ) { return ( filter_list.RemoveFilter (f_num,force) ); } /*! Fonction qui teste l'état d'un filtre. * \param f pointeur sur le filtre */ inline bool EventManager::CheckFilter ( const Filter * f ) { return ( (f == NULL) ? false : f->Ok() ); } //---------------------------------------------------------------------- /*! Retourne le pointeur sur un contour de la liste, ou NULL si le contour * n'existe pas. * \param cname nom du contour recherché */ inline RContour * EventManager::GetContourPtr ( const string &cname ) const { return ( GetContourListPtr()->FindName(cname) ); } /*! Retourne le pointeur sur un contour de la liste, ou NULL si le contour * n'existe pas. * \param cnum numéro du contour recherché */ inline RContour * EventManager::GetContourPtr ( const u_int cnum ) const { return ( GetContourListPtr()->Goto(cnum) ); } /*! Retourne le numéro d'un contour de la liste, ou -1 si le contour * n'existe pas. * \param cname nom du contour recherché */ inline int EventManager::GetContourIndex ( const string &cname ) const { return ( GetFilterListPtr()->GetContourIndex (cname) ); } /*! Retourne le nom d'un contour de la liste, ou une chaîne vide si le contour * n'existe pas. * \param cnum numéro du contour recherché */ inline string EventManager::GetContourName ( const u_int cnum ) const { RContour *ptr = GetContourPtr(cnum); return ( (ptr == NULL) ? "" : ptr->GetName() ); } /*! Retourne le pointeur sur un filtre de la liste, ou NULL si le filtre * n'existe pas. * \param fname nom du filtre recherché */ inline Filter * EventManager::GetFilterPtr ( const string &fname ) const { return ( GetFilterListPtr()->FindName(fname) ); } /*! Retourne le pointeur sur un filtre de la liste, ou NULL si le filtre * n'existe pas. * \param fnum numéro du filtre recherché */ inline Filter * EventManager::GetFilterPtr ( const u_int fnum ) const { return ( GetFilterListPtr()->Goto(fnum) ); } /*! Retourne le numéro d'un filtre de la liste, ou -1 si le filtre * n'existe pas. * \param fname nom du filtre recherché */ inline int EventManager::GetFilterIndex ( const string &fname ) const { return ( GetFilterListPtr()->GetFilterIndex (fname) ); } /*! Retourne le nom d'un filtre de la liste, ou une chaîne vide si le filtre * n'existe pas. * \param fnum numéro du filtre recherché */ inline string EventManager::GetFilterName ( const u_int fnum ) const { const Filter *ptr = GetFilterPtr(fnum); return ( (ptr == NULL) ? "" : ptr->GetName() ); } //====================================================================== #endif
1009  */
1010 inline Spectrum * EventManager::GetSpectrumPtr ( const u_int num ) const
1011  { return ( spec_list.GetSpectrumPtr (num) ); }
1012 
1013 /*! Retourne le pointeur sur un spectre à partir de son nom dans
1014  * la liste. Si le spectre n'existe pas, retourne NULL.
1015  * \param spec_name nom du spectre recherché */ inline Spectrum * EventManager::GetSpectrumPtr ( const string & spec_name ) const { return ( spec_list.GetSpectrumPtr (spec_name) ); } /*! Retourne le numéro d'un spectre à partir de son nom dans * la liste. Si le spectre n'existe pas, retourne -1. * \param spec_name nom du spectre recherché */ inline int EventManager::GetSpectrumIndex ( const string & spec_name ) const { return ( spec_list.GetSpectrumIndex (spec_name) ); } /*! Retourne le nom d'un spectre de la liste, ou une chaîne vide si le spectre * n'existe pas. * \param spec_num numéro du spectre recherché */ inline string EventManager::GetSpectrumName ( const u_int spec_num ) const { return ( spec_list.GetSpectrumName (spec_num) ); } /*! Retourne le pointeur sur l'histogramme d'un spectre à partir de * son numéro dans la liste. * Si le spectre n'existe pas, retourne NULL. * \param num numéro du spectre dont on cherche l'histogramme */ inline TH1 * EventManager::GetHistoPtr ( const u_int num ) const { return ( spec_list.GetHistoPtr (num) ); } /*! Retourne le pointeur sur l'histogramme d'un spectre à partir de * son nom dans la liste. * Si le spectre n'existe pas, retourne NULL. * \param spec_name nom du spectre dont on cherche l'histogramme */ inline TH1 * EventManager::GetHistoPtr ( const string & spec_name ) const { return ( spec_list.GetHistoPtr (spec_name) ); } //---------------------------------------------------------------------- // FAMILLES DE SPECTRES /*! Place un spectre dans une famille. * \param spec_name nom du spectre * \param family_name nom de la famille de spectres */ inline bool EventManager::SetSpectrumFamily ( const string & spec_name, const string & family_name ) { return ( spec_list.SetSpectrumFamily(spec_name,family_name) ); } /*! Place un spectre dans une famille. * \param spec_num numéro du spectre * \param family_name nom de la famille de spectres */ inline bool EventManager::SetSpectrumFamily ( const u_int spec_num, const string & family_name ) { return ( spec_list.SetSpectrumFamily(spec_num,family_name) ); } /*! Retire un spectre de sa famille (le spectre lui-même n'est pas * affecté). * \param spec_name nom du spectre */ inline bool EventManager::ResetSpectrumFamily ( const string & spec_name ) { return ( spec_list.ResetSpectrumFamily(spec_name) ); } /*! Retire un spectre de sa famille (le spectre lui-même n'est pas * affecté). * \param spec_num numéro du spectre */ inline bool EventManager::ResetSpectrumFamily ( const u_int spec_num ) { return ( spec_list.ResetSpectrumFamily(spec_num) ); } /*! Démarre une famille de spectres. La méthode retourne vrai * si la famille existe * \param family_name nom de la famille */ inline bool EventManager::StartFamily ( const string & family_name ) { return ( spec_list.StartFamily(family_name) ); } /*! Arrête une famille de spectres. La méthode retourne vrai * si la famille existe * \param family_name nom de la famille */ inline bool EventManager::StopFamily ( const string & family_name ) { return ( spec_list.StopFamily(family_name) ); } /*! Suspend une famille de spectres. La méthode retourne vrai * si la famille existe * \param family_name nom de la famille */ inline bool EventManager::SuspendFamily ( const string & family_name ) { return ( spec_list.SuspendFamily(family_name) ); } /*! Remise à zéro d'une famille de spectres. La méthode retourne vrai * si la famille existe * \param family_name nom de la famille */ inline bool EventManager::ResetFamily ( const string & family_name ) { return ( spec_list.ResetFamily(family_name) ); } //---------------------------------------------------------------------- // ECRITURE DES STRUCTURES /*! Ecriture de l'événement courant sur la sortie standard. * \param all indique s'il faut écrire tout l'événement, y compris * les paramètres non affectés * \param pmin numéro du 1er paramètre à écrire (à partir de 0) * \param pmax numéro du dernier paramètre (exclus) */ inline void EventManager::DumpEvent ( const bool all, const u_int pmin, const u_int pmax ) const { DumpEvent ( cout, all, pmin, pmax ); } /*! Ecriture de la structure d'événement sur la sortie standard. * Tous les paramètres (y compris ceux définis par l'utilisateur) * sont écris. */ inline void EventManager::PrintEvent ( ) const { PrintEvent ( cout ); } /*! Ecriture de la liste de spectres sur la sortie standard. */ inline void EventManager::PrintSpecList ( ) const { PrintSpecList ( cout ); } //---------------------------------------------------------------------- /*! Ecriture d'une familles de spectres sur la sortie standard. * \param family_name nom de la famille ("" pour toutes les familles) */ inline void EventManager::PrintFamily ( const string & family_name ) { spec_list.PrintFamily ( family_name ); } /*! Ecriture d'une familles de spectres dans un flux de sortie. * \param os flux de sortie * \param family_name nom de la famille ("" pour toutes les familles) */ inline void EventManager::PrintFamily ( ostream &os, const string & family_name ) { spec_list.PrintFamily ( os, family_name ); } /*! Ecriture d'une familles de spectres dans un fichier. * \param file_name nom du fichier * \param family_name nom de la famille ("" pour toutes les familles) */ inline void EventManager::PrintFamily ( const string & file_name, const string & family_name) { spec_list.PrintFamily ( file_name, family_name ); } //---------------------------------------------------------------------- /*! Retire un filtre du gestionnaire, en vérifiant au préalable s'il * est utilisé par les autres filtres de la liste ou par les spectres. * \param f pointeur sur le filtre à supprimer * \param force indique s'il faut forcer la suppression des filtres * utilisant celui qui est supprimé */ inline bool EventManager::RemoveFilter ( Filter *f, const bool force ) { return ( filter_list.RemoveFilter (f,force) ); } /*! Retire un filtre du gestionnaire, en vérifiant au préalable s'il * est utilisé par les autres filtres de la liste ou par les spectres. * \param f_name nom du filtre à supprimer * \param force indique s'il faut forcer la suppression des filtres * utilisant celui qui est supprimé */ inline bool EventManager::RemoveFilter ( const string &f_name, const bool force ) { return ( filter_list.RemoveFilter (f_name,force) ); } /*! Retire un filtre du gestionnaire, en vérifiant au préalable s'il * est utilisé par les autres filtres de la liste ou par les spectres. * \param f_num numéro du filtre à supprimer * \param force indique s'il faut forcer la suppression des filtres * utilisant celui qui est supprimé */ inline bool EventManager::RemoveFilter ( const int f_num, const bool force ) { return ( filter_list.RemoveFilter (f_num,force) ); } /*! Fonction qui teste l'état d'un filtre. * \param f pointeur sur le filtre */ inline bool EventManager::CheckFilter ( const Filter * f ) { return ( (f == NULL) ? false : f->Ok() ); } //---------------------------------------------------------------------- /*! Retourne le pointeur sur un contour de la liste, ou NULL si le contour * n'existe pas. * \param cname nom du contour recherché */ inline RContour * EventManager::GetContourPtr ( const string &cname ) const { return ( GetContourListPtr()->FindName(cname) ); } /*! Retourne le pointeur sur un contour de la liste, ou NULL si le contour * n'existe pas. * \param cnum numéro du contour recherché */ inline RContour * EventManager::GetContourPtr ( const u_int cnum ) const { return ( GetContourListPtr()->Goto(cnum) ); } /*! Retourne le numéro d'un contour de la liste, ou -1 si le contour * n'existe pas. * \param cname nom du contour recherché */ inline int EventManager::GetContourIndex ( const string &cname ) const { return ( GetFilterListPtr()->GetContourIndex (cname) ); } /*! Retourne le nom d'un contour de la liste, ou une chaîne vide si le contour * n'existe pas. * \param cnum numéro du contour recherché */ inline string EventManager::GetContourName ( const u_int cnum ) const { RContour *ptr = GetContourPtr(cnum); return ( (ptr == NULL) ? "" : ptr->GetName() ); } /*! Retourne le pointeur sur un filtre de la liste, ou NULL si le filtre * n'existe pas. * \param fname nom du filtre recherché */ inline Filter * EventManager::GetFilterPtr ( const string &fname ) const { return ( GetFilterListPtr()->FindName(fname) ); } /*! Retourne le pointeur sur un filtre de la liste, ou NULL si le filtre * n'existe pas. * \param fnum numéro du filtre recherché */ inline Filter * EventManager::GetFilterPtr ( const u_int fnum ) const { return ( GetFilterListPtr()->Goto(fnum) ); } /*! Retourne le numéro d'un filtre de la liste, ou -1 si le filtre * n'existe pas. * \param fname nom du filtre recherché */ inline int EventManager::GetFilterIndex ( const string &fname ) const { return ( GetFilterListPtr()->GetFilterIndex (fname) ); } /*! Retourne le nom d'un filtre de la liste, ou une chaîne vide si le filtre * n'existe pas. * \param fnum numéro du filtre recherché */ inline string EventManager::GetFilterName ( const u_int fnum ) const { const Filter *ptr = GetFilterPtr(fnum); return ( (ptr == NULL) ? "" : ptr->GetName() ); } //====================================================================== #endif
1016  */
1017 inline Spectrum * EventManager::GetSpectrumPtr ( const string & spec_name ) const
1018  { return ( spec_list.GetSpectrumPtr (spec_name) ); }
1019 
1020 /*! Retourne le numéro d'un spectre à partir de son nom dans
1021  * la liste. Si le spectre n'existe pas, retourne -1.
1022  * \param spec_name nom du spectre recherché */ inline int EventManager::GetSpectrumIndex ( const string & spec_name ) const { return ( spec_list.GetSpectrumIndex (spec_name) ); } /*! Retourne le nom d'un spectre de la liste, ou une chaîne vide si le spectre * n'existe pas. * \param spec_num numéro du spectre recherché */ inline string EventManager::GetSpectrumName ( const u_int spec_num ) const { return ( spec_list.GetSpectrumName (spec_num) ); } /*! Retourne le pointeur sur l'histogramme d'un spectre à partir de * son numéro dans la liste. * Si le spectre n'existe pas, retourne NULL. * \param num numéro du spectre dont on cherche l'histogramme */ inline TH1 * EventManager::GetHistoPtr ( const u_int num ) const { return ( spec_list.GetHistoPtr (num) ); } /*! Retourne le pointeur sur l'histogramme d'un spectre à partir de * son nom dans la liste. * Si le spectre n'existe pas, retourne NULL. * \param spec_name nom du spectre dont on cherche l'histogramme */ inline TH1 * EventManager::GetHistoPtr ( const string & spec_name ) const { return ( spec_list.GetHistoPtr (spec_name) ); } //---------------------------------------------------------------------- // FAMILLES DE SPECTRES /*! Place un spectre dans une famille. * \param spec_name nom du spectre * \param family_name nom de la famille de spectres */ inline bool EventManager::SetSpectrumFamily ( const string & spec_name, const string & family_name ) { return ( spec_list.SetSpectrumFamily(spec_name,family_name) ); } /*! Place un spectre dans une famille. * \param spec_num numéro du spectre * \param family_name nom de la famille de spectres */ inline bool EventManager::SetSpectrumFamily ( const u_int spec_num, const string & family_name ) { return ( spec_list.SetSpectrumFamily(spec_num,family_name) ); } /*! Retire un spectre de sa famille (le spectre lui-même n'est pas * affecté). * \param spec_name nom du spectre */ inline bool EventManager::ResetSpectrumFamily ( const string & spec_name ) { return ( spec_list.ResetSpectrumFamily(spec_name) ); } /*! Retire un spectre de sa famille (le spectre lui-même n'est pas * affecté). * \param spec_num numéro du spectre */ inline bool EventManager::ResetSpectrumFamily ( const u_int spec_num ) { return ( spec_list.ResetSpectrumFamily(spec_num) ); } /*! Démarre une famille de spectres. La méthode retourne vrai * si la famille existe * \param family_name nom de la famille */ inline bool EventManager::StartFamily ( const string & family_name ) { return ( spec_list.StartFamily(family_name) ); } /*! Arrête une famille de spectres. La méthode retourne vrai * si la famille existe * \param family_name nom de la famille */ inline bool EventManager::StopFamily ( const string & family_name ) { return ( spec_list.StopFamily(family_name) ); } /*! Suspend une famille de spectres. La méthode retourne vrai * si la famille existe * \param family_name nom de la famille */ inline bool EventManager::SuspendFamily ( const string & family_name ) { return ( spec_list.SuspendFamily(family_name) ); } /*! Remise à zéro d'une famille de spectres. La méthode retourne vrai * si la famille existe * \param family_name nom de la famille */ inline bool EventManager::ResetFamily ( const string & family_name ) { return ( spec_list.ResetFamily(family_name) ); } //---------------------------------------------------------------------- // ECRITURE DES STRUCTURES /*! Ecriture de l'événement courant sur la sortie standard. * \param all indique s'il faut écrire tout l'événement, y compris * les paramètres non affectés * \param pmin numéro du 1er paramètre à écrire (à partir de 0) * \param pmax numéro du dernier paramètre (exclus) */ inline void EventManager::DumpEvent ( const bool all, const u_int pmin, const u_int pmax ) const { DumpEvent ( cout, all, pmin, pmax ); } /*! Ecriture de la structure d'événement sur la sortie standard. * Tous les paramètres (y compris ceux définis par l'utilisateur) * sont écris. */ inline void EventManager::PrintEvent ( ) const { PrintEvent ( cout ); } /*! Ecriture de la liste de spectres sur la sortie standard. */ inline void EventManager::PrintSpecList ( ) const { PrintSpecList ( cout ); } //---------------------------------------------------------------------- /*! Ecriture d'une familles de spectres sur la sortie standard. * \param family_name nom de la famille ("" pour toutes les familles) */ inline void EventManager::PrintFamily ( const string & family_name ) { spec_list.PrintFamily ( family_name ); } /*! Ecriture d'une familles de spectres dans un flux de sortie. * \param os flux de sortie * \param family_name nom de la famille ("" pour toutes les familles) */ inline void EventManager::PrintFamily ( ostream &os, const string & family_name ) { spec_list.PrintFamily ( os, family_name ); } /*! Ecriture d'une familles de spectres dans un fichier. * \param file_name nom du fichier * \param family_name nom de la famille ("" pour toutes les familles) */ inline void EventManager::PrintFamily ( const string & file_name, const string & family_name) { spec_list.PrintFamily ( file_name, family_name ); } //---------------------------------------------------------------------- /*! Retire un filtre du gestionnaire, en vérifiant au préalable s'il * est utilisé par les autres filtres de la liste ou par les spectres. * \param f pointeur sur le filtre à supprimer * \param force indique s'il faut forcer la suppression des filtres * utilisant celui qui est supprimé */ inline bool EventManager::RemoveFilter ( Filter *f, const bool force ) { return ( filter_list.RemoveFilter (f,force) ); } /*! Retire un filtre du gestionnaire, en vérifiant au préalable s'il * est utilisé par les autres filtres de la liste ou par les spectres. * \param f_name nom du filtre à supprimer * \param force indique s'il faut forcer la suppression des filtres * utilisant celui qui est supprimé */ inline bool EventManager::RemoveFilter ( const string &f_name, const bool force ) { return ( filter_list.RemoveFilter (f_name,force) ); } /*! Retire un filtre du gestionnaire, en vérifiant au préalable s'il * est utilisé par les autres filtres de la liste ou par les spectres. * \param f_num numéro du filtre à supprimer * \param force indique s'il faut forcer la suppression des filtres * utilisant celui qui est supprimé */ inline bool EventManager::RemoveFilter ( const int f_num, const bool force ) { return ( filter_list.RemoveFilter (f_num,force) ); } /*! Fonction qui teste l'état d'un filtre. * \param f pointeur sur le filtre */ inline bool EventManager::CheckFilter ( const Filter * f ) { return ( (f == NULL) ? false : f->Ok() ); } //---------------------------------------------------------------------- /*! Retourne le pointeur sur un contour de la liste, ou NULL si le contour * n'existe pas. * \param cname nom du contour recherché */ inline RContour * EventManager::GetContourPtr ( const string &cname ) const { return ( GetContourListPtr()->FindName(cname) ); } /*! Retourne le pointeur sur un contour de la liste, ou NULL si le contour * n'existe pas. * \param cnum numéro du contour recherché */ inline RContour * EventManager::GetContourPtr ( const u_int cnum ) const { return ( GetContourListPtr()->Goto(cnum) ); } /*! Retourne le numéro d'un contour de la liste, ou -1 si le contour * n'existe pas. * \param cname nom du contour recherché */ inline int EventManager::GetContourIndex ( const string &cname ) const { return ( GetFilterListPtr()->GetContourIndex (cname) ); } /*! Retourne le nom d'un contour de la liste, ou une chaîne vide si le contour * n'existe pas. * \param cnum numéro du contour recherché */ inline string EventManager::GetContourName ( const u_int cnum ) const { RContour *ptr = GetContourPtr(cnum); return ( (ptr == NULL) ? "" : ptr->GetName() ); } /*! Retourne le pointeur sur un filtre de la liste, ou NULL si le filtre * n'existe pas. * \param fname nom du filtre recherché */ inline Filter * EventManager::GetFilterPtr ( const string &fname ) const { return ( GetFilterListPtr()->FindName(fname) ); } /*! Retourne le pointeur sur un filtre de la liste, ou NULL si le filtre * n'existe pas. * \param fnum numéro du filtre recherché */ inline Filter * EventManager::GetFilterPtr ( const u_int fnum ) const { return ( GetFilterListPtr()->Goto(fnum) ); } /*! Retourne le numéro d'un filtre de la liste, ou -1 si le filtre * n'existe pas. * \param fname nom du filtre recherché */ inline int EventManager::GetFilterIndex ( const string &fname ) const { return ( GetFilterListPtr()->GetFilterIndex (fname) ); } /*! Retourne le nom d'un filtre de la liste, ou une chaîne vide si le filtre * n'existe pas. * \param fnum numéro du filtre recherché */ inline string EventManager::GetFilterName ( const u_int fnum ) const { const Filter *ptr = GetFilterPtr(fnum); return ( (ptr == NULL) ? "" : ptr->GetName() ); } //====================================================================== #endif
1023  */
1024 inline int EventManager::GetSpectrumIndex ( const string & spec_name ) const
1025  { return ( spec_list.GetSpectrumIndex (spec_name) ); }
1026 
1027 /*! Retourne le nom d'un spectre de la liste, ou une chaîne vide si le spectre
1028  * n'existe pas.
1029  * \param spec_num numéro du spectre recherché */ inline string EventManager::GetSpectrumName ( const u_int spec_num ) const { return ( spec_list.GetSpectrumName (spec_num) ); } /*! Retourne le pointeur sur l'histogramme d'un spectre à partir de * son numéro dans la liste. * Si le spectre n'existe pas, retourne NULL. * \param num numéro du spectre dont on cherche l'histogramme */ inline TH1 * EventManager::GetHistoPtr ( const u_int num ) const { return ( spec_list.GetHistoPtr (num) ); } /*! Retourne le pointeur sur l'histogramme d'un spectre à partir de * son nom dans la liste. * Si le spectre n'existe pas, retourne NULL. * \param spec_name nom du spectre dont on cherche l'histogramme */ inline TH1 * EventManager::GetHistoPtr ( const string & spec_name ) const { return ( spec_list.GetHistoPtr (spec_name) ); } //---------------------------------------------------------------------- // FAMILLES DE SPECTRES /*! Place un spectre dans une famille. * \param spec_name nom du spectre * \param family_name nom de la famille de spectres */ inline bool EventManager::SetSpectrumFamily ( const string & spec_name, const string & family_name ) { return ( spec_list.SetSpectrumFamily(spec_name,family_name) ); } /*! Place un spectre dans une famille. * \param spec_num numéro du spectre * \param family_name nom de la famille de spectres */ inline bool EventManager::SetSpectrumFamily ( const u_int spec_num, const string & family_name ) { return ( spec_list.SetSpectrumFamily(spec_num,family_name) ); } /*! Retire un spectre de sa famille (le spectre lui-même n'est pas * affecté). * \param spec_name nom du spectre */ inline bool EventManager::ResetSpectrumFamily ( const string & spec_name ) { return ( spec_list.ResetSpectrumFamily(spec_name) ); } /*! Retire un spectre de sa famille (le spectre lui-même n'est pas * affecté). * \param spec_num numéro du spectre */ inline bool EventManager::ResetSpectrumFamily ( const u_int spec_num ) { return ( spec_list.ResetSpectrumFamily(spec_num) ); } /*! Démarre une famille de spectres. La méthode retourne vrai * si la famille existe * \param family_name nom de la famille */ inline bool EventManager::StartFamily ( const string & family_name ) { return ( spec_list.StartFamily(family_name) ); } /*! Arrête une famille de spectres. La méthode retourne vrai * si la famille existe * \param family_name nom de la famille */ inline bool EventManager::StopFamily ( const string & family_name ) { return ( spec_list.StopFamily(family_name) ); } /*! Suspend une famille de spectres. La méthode retourne vrai * si la famille existe * \param family_name nom de la famille */ inline bool EventManager::SuspendFamily ( const string & family_name ) { return ( spec_list.SuspendFamily(family_name) ); } /*! Remise à zéro d'une famille de spectres. La méthode retourne vrai * si la famille existe * \param family_name nom de la famille */ inline bool EventManager::ResetFamily ( const string & family_name ) { return ( spec_list.ResetFamily(family_name) ); } //---------------------------------------------------------------------- // ECRITURE DES STRUCTURES /*! Ecriture de l'événement courant sur la sortie standard. * \param all indique s'il faut écrire tout l'événement, y compris * les paramètres non affectés * \param pmin numéro du 1er paramètre à écrire (à partir de 0) * \param pmax numéro du dernier paramètre (exclus) */ inline void EventManager::DumpEvent ( const bool all, const u_int pmin, const u_int pmax ) const { DumpEvent ( cout, all, pmin, pmax ); } /*! Ecriture de la structure d'événement sur la sortie standard. * Tous les paramètres (y compris ceux définis par l'utilisateur) * sont écris. */ inline void EventManager::PrintEvent ( ) const { PrintEvent ( cout ); } /*! Ecriture de la liste de spectres sur la sortie standard. */ inline void EventManager::PrintSpecList ( ) const { PrintSpecList ( cout ); } //---------------------------------------------------------------------- /*! Ecriture d'une familles de spectres sur la sortie standard. * \param family_name nom de la famille ("" pour toutes les familles) */ inline void EventManager::PrintFamily ( const string & family_name ) { spec_list.PrintFamily ( family_name ); } /*! Ecriture d'une familles de spectres dans un flux de sortie. * \param os flux de sortie * \param family_name nom de la famille ("" pour toutes les familles) */ inline void EventManager::PrintFamily ( ostream &os, const string & family_name ) { spec_list.PrintFamily ( os, family_name ); } /*! Ecriture d'une familles de spectres dans un fichier. * \param file_name nom du fichier * \param family_name nom de la famille ("" pour toutes les familles) */ inline void EventManager::PrintFamily ( const string & file_name, const string & family_name) { spec_list.PrintFamily ( file_name, family_name ); } //---------------------------------------------------------------------- /*! Retire un filtre du gestionnaire, en vérifiant au préalable s'il * est utilisé par les autres filtres de la liste ou par les spectres. * \param f pointeur sur le filtre à supprimer * \param force indique s'il faut forcer la suppression des filtres * utilisant celui qui est supprimé */ inline bool EventManager::RemoveFilter ( Filter *f, const bool force ) { return ( filter_list.RemoveFilter (f,force) ); } /*! Retire un filtre du gestionnaire, en vérifiant au préalable s'il * est utilisé par les autres filtres de la liste ou par les spectres. * \param f_name nom du filtre à supprimer * \param force indique s'il faut forcer la suppression des filtres * utilisant celui qui est supprimé */ inline bool EventManager::RemoveFilter ( const string &f_name, const bool force ) { return ( filter_list.RemoveFilter (f_name,force) ); } /*! Retire un filtre du gestionnaire, en vérifiant au préalable s'il * est utilisé par les autres filtres de la liste ou par les spectres. * \param f_num numéro du filtre à supprimer * \param force indique s'il faut forcer la suppression des filtres * utilisant celui qui est supprimé */ inline bool EventManager::RemoveFilter ( const int f_num, const bool force ) { return ( filter_list.RemoveFilter (f_num,force) ); } /*! Fonction qui teste l'état d'un filtre. * \param f pointeur sur le filtre */ inline bool EventManager::CheckFilter ( const Filter * f ) { return ( (f == NULL) ? false : f->Ok() ); } //---------------------------------------------------------------------- /*! Retourne le pointeur sur un contour de la liste, ou NULL si le contour * n'existe pas. * \param cname nom du contour recherché */ inline RContour * EventManager::GetContourPtr ( const string &cname ) const { return ( GetContourListPtr()->FindName(cname) ); } /*! Retourne le pointeur sur un contour de la liste, ou NULL si le contour * n'existe pas. * \param cnum numéro du contour recherché */ inline RContour * EventManager::GetContourPtr ( const u_int cnum ) const { return ( GetContourListPtr()->Goto(cnum) ); } /*! Retourne le numéro d'un contour de la liste, ou -1 si le contour * n'existe pas. * \param cname nom du contour recherché */ inline int EventManager::GetContourIndex ( const string &cname ) const { return ( GetFilterListPtr()->GetContourIndex (cname) ); } /*! Retourne le nom d'un contour de la liste, ou une chaîne vide si le contour * n'existe pas. * \param cnum numéro du contour recherché */ inline string EventManager::GetContourName ( const u_int cnum ) const { RContour *ptr = GetContourPtr(cnum); return ( (ptr == NULL) ? "" : ptr->GetName() ); } /*! Retourne le pointeur sur un filtre de la liste, ou NULL si le filtre * n'existe pas. * \param fname nom du filtre recherché */ inline Filter * EventManager::GetFilterPtr ( const string &fname ) const { return ( GetFilterListPtr()->FindName(fname) ); } /*! Retourne le pointeur sur un filtre de la liste, ou NULL si le filtre * n'existe pas. * \param fnum numéro du filtre recherché */ inline Filter * EventManager::GetFilterPtr ( const u_int fnum ) const { return ( GetFilterListPtr()->Goto(fnum) ); } /*! Retourne le numéro d'un filtre de la liste, ou -1 si le filtre * n'existe pas. * \param fname nom du filtre recherché */ inline int EventManager::GetFilterIndex ( const string &fname ) const { return ( GetFilterListPtr()->GetFilterIndex (fname) ); } /*! Retourne le nom d'un filtre de la liste, ou une chaîne vide si le filtre * n'existe pas. * \param fnum numéro du filtre recherché */ inline string EventManager::GetFilterName ( const u_int fnum ) const { const Filter *ptr = GetFilterPtr(fnum); return ( (ptr == NULL) ? "" : ptr->GetName() ); } //====================================================================== #endif
1030  */
1031 inline string EventManager::GetSpectrumName ( const u_int spec_num ) const
1032  { return ( spec_list.GetSpectrumName (spec_num) ); }
1033 
1034 /*! Retourne le pointeur sur l'histogramme d'un spectre à partir de
1035  * son numéro dans la liste.
1036  * Si le spectre n'existe pas, retourne NULL.
1037  * \param num numéro du spectre dont on cherche l'histogramme
1038  */
1039 inline TH1 * EventManager::GetHistoPtr ( const u_int num ) const
1040  { return ( spec_list.GetHistoPtr (num) ); }
1041 
1042 /*! Retourne le pointeur sur l'histogramme d'un spectre à partir de
1043  * son nom dans la liste.
1044  * Si le spectre n'existe pas, retourne NULL.
1045  * \param spec_name nom du spectre dont on cherche l'histogramme
1046  */
1047 inline TH1 * EventManager::GetHistoPtr ( const string & spec_name ) const
1048  { return ( spec_list.GetHistoPtr (spec_name) ); }
1049 
1050 
1051 //----------------------------------------------------------------------
1052 // FAMILLES DE SPECTRES
1053 
1054 /*! Place un spectre dans une famille.
1055  * \param spec_name nom du spectre
1056  * \param family_name nom de la famille de spectres
1057  */
1058 inline bool EventManager::SetSpectrumFamily ( const string & spec_name,
1059  const string & family_name )
1060  { return ( spec_list.SetSpectrumFamily(spec_name,family_name) ); }
1061 
1062 /*! Place un spectre dans une famille.
1063  * \param spec_num numéro du spectre
1064  * \param family_name nom de la famille de spectres
1065  */
1066 inline bool EventManager::SetSpectrumFamily ( const u_int spec_num,
1067  const string & family_name )
1068  { return ( spec_list.SetSpectrumFamily(spec_num,family_name) ); }
1069 
1070 /*! Retire un spectre de sa famille (le spectre lui-même n'est pas
1071  * affecté).
1072  * \param spec_name nom du spectre
1073  */
1074 inline bool EventManager::ResetSpectrumFamily ( const string & spec_name )
1075  { return ( spec_list.ResetSpectrumFamily(spec_name) ); }
1076 
1077 /*! Retire un spectre de sa famille (le spectre lui-même n'est pas
1078  * affecté).
1079  * \param spec_num numéro du spectre
1080  */
1081 inline bool EventManager::ResetSpectrumFamily ( const u_int spec_num )
1082  { return ( spec_list.ResetSpectrumFamily(spec_num) ); }
1083 
1084 
1085 
1086 /*! Démarre une famille de spectres. La méthode retourne vrai
1087  * si la famille existe
1088  * \param family_name nom de la famille
1089  */
1090 inline bool EventManager::StartFamily ( const string & family_name )
1091  { return ( spec_list.StartFamily(family_name) ); }
1092 
1093 /*! Arrête une famille de spectres. La méthode retourne vrai
1094  * si la famille existe
1095  * \param family_name nom de la famille
1096  */
1097 inline bool EventManager::StopFamily ( const string & family_name )
1098  { return ( spec_list.StopFamily(family_name) ); }
1099 
1100 /*! Suspend une famille de spectres. La méthode retourne vrai
1101  * si la famille existe
1102  * \param family_name nom de la famille
1103  */
1104 inline bool EventManager::SuspendFamily ( const string & family_name )
1105  { return ( spec_list.SuspendFamily(family_name) ); }
1106 
1107 /*! Remise à zéro d'une famille de spectres. La méthode retourne vrai
1108  * si la famille existe
1109  * \param family_name nom de la famille
1110  */
1111 inline bool EventManager::ResetFamily ( const string & family_name )
1112  { return ( spec_list.ResetFamily(family_name) ); }
1113 
1114 
1115 //----------------------------------------------------------------------
1116 // ECRITURE DES STRUCTURES
1117 
1118 /*! Ecriture de l'événement courant sur la sortie standard.
1119  * \param all indique s'il faut écrire tout l'événement, y compris
1120  * les paramètres non affectés * \param pmin numéro du 1er paramètre à écrire (à partir de 0) * \param pmax numéro du dernier paramètre (exclus) */ inline void EventManager::DumpEvent ( const bool all, const u_int pmin, const u_int pmax ) const { DumpEvent ( cout, all, pmin, pmax ); } /*! Ecriture de la structure d'événement sur la sortie standard. * Tous les paramètres (y compris ceux définis par l'utilisateur) * sont écris. */ inline void EventManager::PrintEvent ( ) const { PrintEvent ( cout ); } /*! Ecriture de la liste de spectres sur la sortie standard. */ inline void EventManager::PrintSpecList ( ) const { PrintSpecList ( cout ); } //---------------------------------------------------------------------- /*! Ecriture d'une familles de spectres sur la sortie standard. * \param family_name nom de la famille ("" pour toutes les familles) */ inline void EventManager::PrintFamily ( const string & family_name ) { spec_list.PrintFamily ( family_name ); } /*! Ecriture d'une familles de spectres dans un flux de sortie. * \param os flux de sortie * \param family_name nom de la famille ("" pour toutes les familles) */ inline void EventManager::PrintFamily ( ostream &os, const string & family_name ) { spec_list.PrintFamily ( os, family_name ); } /*! Ecriture d'une familles de spectres dans un fichier. * \param file_name nom du fichier * \param family_name nom de la famille ("" pour toutes les familles) */ inline void EventManager::PrintFamily ( const string & file_name, const string & family_name) { spec_list.PrintFamily ( file_name, family_name ); } //---------------------------------------------------------------------- /*! Retire un filtre du gestionnaire, en vérifiant au préalable s'il * est utilisé par les autres filtres de la liste ou par les spectres. * \param f pointeur sur le filtre à supprimer * \param force indique s'il faut forcer la suppression des filtres * utilisant celui qui est supprimé */ inline bool EventManager::RemoveFilter ( Filter *f, const bool force ) { return ( filter_list.RemoveFilter (f,force) ); } /*! Retire un filtre du gestionnaire, en vérifiant au préalable s'il * est utilisé par les autres filtres de la liste ou par les spectres. * \param f_name nom du filtre à supprimer * \param force indique s'il faut forcer la suppression des filtres * utilisant celui qui est supprimé */ inline bool EventManager::RemoveFilter ( const string &f_name, const bool force ) { return ( filter_list.RemoveFilter (f_name,force) ); } /*! Retire un filtre du gestionnaire, en vérifiant au préalable s'il * est utilisé par les autres filtres de la liste ou par les spectres. * \param f_num numéro du filtre à supprimer * \param force indique s'il faut forcer la suppression des filtres * utilisant celui qui est supprimé */ inline bool EventManager::RemoveFilter ( const int f_num, const bool force ) { return ( filter_list.RemoveFilter (f_num,force) ); } /*! Fonction qui teste l'état d'un filtre. * \param f pointeur sur le filtre */ inline bool EventManager::CheckFilter ( const Filter * f ) { return ( (f == NULL) ? false : f->Ok() ); } //---------------------------------------------------------------------- /*! Retourne le pointeur sur un contour de la liste, ou NULL si le contour * n'existe pas. * \param cname nom du contour recherché */ inline RContour * EventManager::GetContourPtr ( const string &cname ) const { return ( GetContourListPtr()->FindName(cname) ); } /*! Retourne le pointeur sur un contour de la liste, ou NULL si le contour * n'existe pas. * \param cnum numéro du contour recherché */ inline RContour * EventManager::GetContourPtr ( const u_int cnum ) const { return ( GetContourListPtr()->Goto(cnum) ); } /*! Retourne le numéro d'un contour de la liste, ou -1 si le contour * n'existe pas. * \param cname nom du contour recherché */ inline int EventManager::GetContourIndex ( const string &cname ) const { return ( GetFilterListPtr()->GetContourIndex (cname) ); } /*! Retourne le nom d'un contour de la liste, ou une chaîne vide si le contour * n'existe pas. * \param cnum numéro du contour recherché */ inline string EventManager::GetContourName ( const u_int cnum ) const { RContour *ptr = GetContourPtr(cnum); return ( (ptr == NULL) ? "" : ptr->GetName() ); } /*! Retourne le pointeur sur un filtre de la liste, ou NULL si le filtre * n'existe pas. * \param fname nom du filtre recherché */ inline Filter * EventManager::GetFilterPtr ( const string &fname ) const { return ( GetFilterListPtr()->FindName(fname) ); } /*! Retourne le pointeur sur un filtre de la liste, ou NULL si le filtre * n'existe pas. * \param fnum numéro du filtre recherché */ inline Filter * EventManager::GetFilterPtr ( const u_int fnum ) const { return ( GetFilterListPtr()->Goto(fnum) ); } /*! Retourne le numéro d'un filtre de la liste, ou -1 si le filtre * n'existe pas. * \param fname nom du filtre recherché */ inline int EventManager::GetFilterIndex ( const string &fname ) const { return ( GetFilterListPtr()->GetFilterIndex (fname) ); } /*! Retourne le nom d'un filtre de la liste, ou une chaîne vide si le filtre * n'existe pas. * \param fnum numéro du filtre recherché */ inline string EventManager::GetFilterName ( const u_int fnum ) const { const Filter *ptr = GetFilterPtr(fnum); return ( (ptr == NULL) ? "" : ptr->GetName() ); } //====================================================================== #endif
1121  * \param pmin numéro du 1er paramètre à écrire (à partir de 0)
1122  * \param pmax numéro du dernier paramètre (exclus)
1123  */
1124 inline void EventManager::DumpEvent ( const bool all,
1125  const u_int pmin,
1126  const u_int pmax ) const
1127  { DumpEvent ( cout, all, pmin, pmax ); }
1128 
1129 /*! Ecriture de la structure d'événement sur la sortie standard.
1130  * Tous les paramètres (y compris ceux définis par l'utilisateur)
1131  * sont écris.
1132  */
1133 inline void EventManager::PrintEvent ( ) const
1134  { PrintEvent ( cout ); }
1135 
1136 /*! Ecriture de la liste de spectres sur la sortie standard.
1137  */
1138 inline void EventManager::PrintSpecList ( ) const
1139  { PrintSpecList ( cout ); }
1140 
1141 
1142 //----------------------------------------------------------------------
1143 
1144 /*! Ecriture d'une familles de spectres sur la sortie standard.
1145  * \param family_name nom de la famille ("" pour toutes les familles)
1146  */
1147 inline void EventManager::PrintFamily ( const string & family_name )
1148  { spec_list.PrintFamily ( family_name ); }
1149 
1150 /*! Ecriture d'une familles de spectres dans un flux de sortie.
1151  * \param os flux de sortie
1152  * \param family_name nom de la famille ("" pour toutes les familles)
1153  */
1154 inline void EventManager::PrintFamily ( ostream &os, const string & family_name )
1155  { spec_list.PrintFamily ( os, family_name ); }
1156 
1157 /*! Ecriture d'une familles de spectres dans un fichier.
1158  * \param file_name nom du fichier
1159  * \param family_name nom de la famille ("" pour toutes les familles)
1160  */
1161 inline void EventManager::PrintFamily ( const string & file_name, const string & family_name)
1162  { spec_list.PrintFamily ( file_name, family_name ); }
1163 
1164 //----------------------------------------------------------------------
1165 
1166 /*! Retire un filtre du gestionnaire, en vérifiant au préalable s'il
1167  * est utilisé par les autres filtres de la liste ou par les spectres.
1168  * \param f pointeur sur le filtre à supprimer
1169  * \param force indique s'il faut forcer la suppression des filtres
1170  * utilisant celui qui est supprimé */ inline bool EventManager::RemoveFilter ( Filter *f, const bool force ) { return ( filter_list.RemoveFilter (f,force) ); } /*! Retire un filtre du gestionnaire, en vérifiant au préalable s'il * est utilisé par les autres filtres de la liste ou par les spectres. * \param f_name nom du filtre à supprimer * \param force indique s'il faut forcer la suppression des filtres * utilisant celui qui est supprimé */ inline bool EventManager::RemoveFilter ( const string &f_name, const bool force ) { return ( filter_list.RemoveFilter (f_name,force) ); } /*! Retire un filtre du gestionnaire, en vérifiant au préalable s'il * est utilisé par les autres filtres de la liste ou par les spectres. * \param f_num numéro du filtre à supprimer * \param force indique s'il faut forcer la suppression des filtres * utilisant celui qui est supprimé */ inline bool EventManager::RemoveFilter ( const int f_num, const bool force ) { return ( filter_list.RemoveFilter (f_num,force) ); } /*! Fonction qui teste l'état d'un filtre. * \param f pointeur sur le filtre */ inline bool EventManager::CheckFilter ( const Filter * f ) { return ( (f == NULL) ? false : f->Ok() ); } //---------------------------------------------------------------------- /*! Retourne le pointeur sur un contour de la liste, ou NULL si le contour * n'existe pas. * \param cname nom du contour recherché */ inline RContour * EventManager::GetContourPtr ( const string &cname ) const { return ( GetContourListPtr()->FindName(cname) ); } /*! Retourne le pointeur sur un contour de la liste, ou NULL si le contour * n'existe pas. * \param cnum numéro du contour recherché */ inline RContour * EventManager::GetContourPtr ( const u_int cnum ) const { return ( GetContourListPtr()->Goto(cnum) ); } /*! Retourne le numéro d'un contour de la liste, ou -1 si le contour * n'existe pas. * \param cname nom du contour recherché */ inline int EventManager::GetContourIndex ( const string &cname ) const { return ( GetFilterListPtr()->GetContourIndex (cname) ); } /*! Retourne le nom d'un contour de la liste, ou une chaîne vide si le contour * n'existe pas. * \param cnum numéro du contour recherché */ inline string EventManager::GetContourName ( const u_int cnum ) const { RContour *ptr = GetContourPtr(cnum); return ( (ptr == NULL) ? "" : ptr->GetName() ); } /*! Retourne le pointeur sur un filtre de la liste, ou NULL si le filtre * n'existe pas. * \param fname nom du filtre recherché */ inline Filter * EventManager::GetFilterPtr ( const string &fname ) const { return ( GetFilterListPtr()->FindName(fname) ); } /*! Retourne le pointeur sur un filtre de la liste, ou NULL si le filtre * n'existe pas. * \param fnum numéro du filtre recherché */ inline Filter * EventManager::GetFilterPtr ( const u_int fnum ) const { return ( GetFilterListPtr()->Goto(fnum) ); } /*! Retourne le numéro d'un filtre de la liste, ou -1 si le filtre * n'existe pas. * \param fname nom du filtre recherché */ inline int EventManager::GetFilterIndex ( const string &fname ) const { return ( GetFilterListPtr()->GetFilterIndex (fname) ); } /*! Retourne le nom d'un filtre de la liste, ou une chaîne vide si le filtre * n'existe pas. * \param fnum numéro du filtre recherché */ inline string EventManager::GetFilterName ( const u_int fnum ) const { const Filter *ptr = GetFilterPtr(fnum); return ( (ptr == NULL) ? "" : ptr->GetName() ); } //====================================================================== #endif
1171  */
1172 inline bool EventManager::RemoveFilter ( Filter *f, const bool force )
1173  { return ( filter_list.RemoveFilter (f,force) ); }
1174 
1175 /*! Retire un filtre du gestionnaire, en vérifiant au préalable s'il
1176  * est utilisé par les autres filtres de la liste ou par les spectres.
1177  * \param f_name nom du filtre à supprimer
1178  * \param force indique s'il faut forcer la suppression des filtres
1179  * utilisant celui qui est supprimé */ inline bool EventManager::RemoveFilter ( const string &f_name, const bool force ) { return ( filter_list.RemoveFilter (f_name,force) ); } /*! Retire un filtre du gestionnaire, en vérifiant au préalable s'il * est utilisé par les autres filtres de la liste ou par les spectres. * \param f_num numéro du filtre à supprimer * \param force indique s'il faut forcer la suppression des filtres * utilisant celui qui est supprimé */ inline bool EventManager::RemoveFilter ( const int f_num, const bool force ) { return ( filter_list.RemoveFilter (f_num,force) ); } /*! Fonction qui teste l'état d'un filtre. * \param f pointeur sur le filtre */ inline bool EventManager::CheckFilter ( const Filter * f ) { return ( (f == NULL) ? false : f->Ok() ); } //---------------------------------------------------------------------- /*! Retourne le pointeur sur un contour de la liste, ou NULL si le contour * n'existe pas. * \param cname nom du contour recherché */ inline RContour * EventManager::GetContourPtr ( const string &cname ) const { return ( GetContourListPtr()->FindName(cname) ); } /*! Retourne le pointeur sur un contour de la liste, ou NULL si le contour * n'existe pas. * \param cnum numéro du contour recherché */ inline RContour * EventManager::GetContourPtr ( const u_int cnum ) const { return ( GetContourListPtr()->Goto(cnum) ); } /*! Retourne le numéro d'un contour de la liste, ou -1 si le contour * n'existe pas. * \param cname nom du contour recherché */ inline int EventManager::GetContourIndex ( const string &cname ) const { return ( GetFilterListPtr()->GetContourIndex (cname) ); } /*! Retourne le nom d'un contour de la liste, ou une chaîne vide si le contour * n'existe pas. * \param cnum numéro du contour recherché */ inline string EventManager::GetContourName ( const u_int cnum ) const { RContour *ptr = GetContourPtr(cnum); return ( (ptr == NULL) ? "" : ptr->GetName() ); } /*! Retourne le pointeur sur un filtre de la liste, ou NULL si le filtre * n'existe pas. * \param fname nom du filtre recherché */ inline Filter * EventManager::GetFilterPtr ( const string &fname ) const { return ( GetFilterListPtr()->FindName(fname) ); } /*! Retourne le pointeur sur un filtre de la liste, ou NULL si le filtre * n'existe pas. * \param fnum numéro du filtre recherché */ inline Filter * EventManager::GetFilterPtr ( const u_int fnum ) const { return ( GetFilterListPtr()->Goto(fnum) ); } /*! Retourne le numéro d'un filtre de la liste, ou -1 si le filtre * n'existe pas. * \param fname nom du filtre recherché */ inline int EventManager::GetFilterIndex ( const string &fname ) const { return ( GetFilterListPtr()->GetFilterIndex (fname) ); } /*! Retourne le nom d'un filtre de la liste, ou une chaîne vide si le filtre * n'existe pas. * \param fnum numéro du filtre recherché */ inline string EventManager::GetFilterName ( const u_int fnum ) const { const Filter *ptr = GetFilterPtr(fnum); return ( (ptr == NULL) ? "" : ptr->GetName() ); } //====================================================================== #endif
1180  */
1181 inline bool EventManager::RemoveFilter ( const string &f_name, const bool force )
1182  { return ( filter_list.RemoveFilter (f_name,force) ); }
1183 
1184 /*! Retire un filtre du gestionnaire, en vérifiant au préalable s'il
1185  * est utilisé par les autres filtres de la liste ou par les spectres.
1186  * \param f_num numéro du filtre à supprimer
1187  * \param force indique s'il faut forcer la suppression des filtres
1188  * utilisant celui qui est supprimé */ inline bool EventManager::RemoveFilter ( const int f_num, const bool force ) { return ( filter_list.RemoveFilter (f_num,force) ); } /*! Fonction qui teste l'état d'un filtre. * \param f pointeur sur le filtre */ inline bool EventManager::CheckFilter ( const Filter * f ) { return ( (f == NULL) ? false : f->Ok() ); } //---------------------------------------------------------------------- /*! Retourne le pointeur sur un contour de la liste, ou NULL si le contour * n'existe pas. * \param cname nom du contour recherché */ inline RContour * EventManager::GetContourPtr ( const string &cname ) const { return ( GetContourListPtr()->FindName(cname) ); } /*! Retourne le pointeur sur un contour de la liste, ou NULL si le contour * n'existe pas. * \param cnum numéro du contour recherché */ inline RContour * EventManager::GetContourPtr ( const u_int cnum ) const { return ( GetContourListPtr()->Goto(cnum) ); } /*! Retourne le numéro d'un contour de la liste, ou -1 si le contour * n'existe pas. * \param cname nom du contour recherché */ inline int EventManager::GetContourIndex ( const string &cname ) const { return ( GetFilterListPtr()->GetContourIndex (cname) ); } /*! Retourne le nom d'un contour de la liste, ou une chaîne vide si le contour * n'existe pas. * \param cnum numéro du contour recherché */ inline string EventManager::GetContourName ( const u_int cnum ) const { RContour *ptr = GetContourPtr(cnum); return ( (ptr == NULL) ? "" : ptr->GetName() ); } /*! Retourne le pointeur sur un filtre de la liste, ou NULL si le filtre * n'existe pas. * \param fname nom du filtre recherché */ inline Filter * EventManager::GetFilterPtr ( const string &fname ) const { return ( GetFilterListPtr()->FindName(fname) ); } /*! Retourne le pointeur sur un filtre de la liste, ou NULL si le filtre * n'existe pas. * \param fnum numéro du filtre recherché */ inline Filter * EventManager::GetFilterPtr ( const u_int fnum ) const { return ( GetFilterListPtr()->Goto(fnum) ); } /*! Retourne le numéro d'un filtre de la liste, ou -1 si le filtre * n'existe pas. * \param fname nom du filtre recherché */ inline int EventManager::GetFilterIndex ( const string &fname ) const { return ( GetFilterListPtr()->GetFilterIndex (fname) ); } /*! Retourne le nom d'un filtre de la liste, ou une chaîne vide si le filtre * n'existe pas. * \param fnum numéro du filtre recherché */ inline string EventManager::GetFilterName ( const u_int fnum ) const { const Filter *ptr = GetFilterPtr(fnum); return ( (ptr == NULL) ? "" : ptr->GetName() ); } //====================================================================== #endif
1189  */
1190 inline bool EventManager::RemoveFilter ( const int f_num, const bool force )
1191  { return ( filter_list.RemoveFilter (f_num,force) ); }
1192 
1193 /*! Fonction qui teste l'état d'un filtre.
1194  * \param f pointeur sur le filtre
1195  */
1196 inline bool EventManager::CheckFilter ( const Filter * f )
1197  { return ( (f == NULL) ? false : f->Ok() ); }
1198 
1199 
1200 //----------------------------------------------------------------------
1201 
1202 /*! Retourne le pointeur sur un contour de la liste, ou NULL si le contour
1203  * n'existe pas.
1204  * \param cname nom du contour recherché */ inline RContour * EventManager::GetContourPtr ( const string &cname ) const { return ( GetContourListPtr()->FindName(cname) ); } /*! Retourne le pointeur sur un contour de la liste, ou NULL si le contour * n'existe pas. * \param cnum numéro du contour recherché */ inline RContour * EventManager::GetContourPtr ( const u_int cnum ) const { return ( GetContourListPtr()->Goto(cnum) ); } /*! Retourne le numéro d'un contour de la liste, ou -1 si le contour * n'existe pas. * \param cname nom du contour recherché */ inline int EventManager::GetContourIndex ( const string &cname ) const { return ( GetFilterListPtr()->GetContourIndex (cname) ); } /*! Retourne le nom d'un contour de la liste, ou une chaîne vide si le contour * n'existe pas. * \param cnum numéro du contour recherché */ inline string EventManager::GetContourName ( const u_int cnum ) const { RContour *ptr = GetContourPtr(cnum); return ( (ptr == NULL) ? "" : ptr->GetName() ); } /*! Retourne le pointeur sur un filtre de la liste, ou NULL si le filtre * n'existe pas. * \param fname nom du filtre recherché */ inline Filter * EventManager::GetFilterPtr ( const string &fname ) const { return ( GetFilterListPtr()->FindName(fname) ); } /*! Retourne le pointeur sur un filtre de la liste, ou NULL si le filtre * n'existe pas. * \param fnum numéro du filtre recherché */ inline Filter * EventManager::GetFilterPtr ( const u_int fnum ) const { return ( GetFilterListPtr()->Goto(fnum) ); } /*! Retourne le numéro d'un filtre de la liste, ou -1 si le filtre * n'existe pas. * \param fname nom du filtre recherché */ inline int EventManager::GetFilterIndex ( const string &fname ) const { return ( GetFilterListPtr()->GetFilterIndex (fname) ); } /*! Retourne le nom d'un filtre de la liste, ou une chaîne vide si le filtre * n'existe pas. * \param fnum numéro du filtre recherché */ inline string EventManager::GetFilterName ( const u_int fnum ) const { const Filter *ptr = GetFilterPtr(fnum); return ( (ptr == NULL) ? "" : ptr->GetName() ); } //====================================================================== #endif
1205  */
1206 inline RContour * EventManager::GetContourPtr ( const string &cname ) const
1207  { return ( GetContourListPtr()->FindName(cname) ); }
1208 
1209 /*! Retourne le pointeur sur un contour de la liste, ou NULL si le contour
1210  * n'existe pas.
1211  * \param cnum numéro du contour recherché */ inline RContour * EventManager::GetContourPtr ( const u_int cnum ) const { return ( GetContourListPtr()->Goto(cnum) ); } /*! Retourne le numéro d'un contour de la liste, ou -1 si le contour * n'existe pas. * \param cname nom du contour recherché */ inline int EventManager::GetContourIndex ( const string &cname ) const { return ( GetFilterListPtr()->GetContourIndex (cname) ); } /*! Retourne le nom d'un contour de la liste, ou une chaîne vide si le contour * n'existe pas. * \param cnum numéro du contour recherché */ inline string EventManager::GetContourName ( const u_int cnum ) const { RContour *ptr = GetContourPtr(cnum); return ( (ptr == NULL) ? "" : ptr->GetName() ); } /*! Retourne le pointeur sur un filtre de la liste, ou NULL si le filtre * n'existe pas. * \param fname nom du filtre recherché */ inline Filter * EventManager::GetFilterPtr ( const string &fname ) const { return ( GetFilterListPtr()->FindName(fname) ); } /*! Retourne le pointeur sur un filtre de la liste, ou NULL si le filtre * n'existe pas. * \param fnum numéro du filtre recherché */ inline Filter * EventManager::GetFilterPtr ( const u_int fnum ) const { return ( GetFilterListPtr()->Goto(fnum) ); } /*! Retourne le numéro d'un filtre de la liste, ou -1 si le filtre * n'existe pas. * \param fname nom du filtre recherché */ inline int EventManager::GetFilterIndex ( const string &fname ) const { return ( GetFilterListPtr()->GetFilterIndex (fname) ); } /*! Retourne le nom d'un filtre de la liste, ou une chaîne vide si le filtre * n'existe pas. * \param fnum numéro du filtre recherché */ inline string EventManager::GetFilterName ( const u_int fnum ) const { const Filter *ptr = GetFilterPtr(fnum); return ( (ptr == NULL) ? "" : ptr->GetName() ); } //====================================================================== #endif
1212  */
1213 inline RContour * EventManager::GetContourPtr ( const u_int cnum ) const
1214  { return ( GetContourListPtr()->Goto(cnum) ); }
1215 
1216 /*! Retourne le numéro d'un contour de la liste, ou -1 si le contour
1217  * n'existe pas.
1218  * \param cname nom du contour recherché */ inline int EventManager::GetContourIndex ( const string &cname ) const { return ( GetFilterListPtr()->GetContourIndex (cname) ); } /*! Retourne le nom d'un contour de la liste, ou une chaîne vide si le contour * n'existe pas. * \param cnum numéro du contour recherché */ inline string EventManager::GetContourName ( const u_int cnum ) const { RContour *ptr = GetContourPtr(cnum); return ( (ptr == NULL) ? "" : ptr->GetName() ); } /*! Retourne le pointeur sur un filtre de la liste, ou NULL si le filtre * n'existe pas. * \param fname nom du filtre recherché */ inline Filter * EventManager::GetFilterPtr ( const string &fname ) const { return ( GetFilterListPtr()->FindName(fname) ); } /*! Retourne le pointeur sur un filtre de la liste, ou NULL si le filtre * n'existe pas. * \param fnum numéro du filtre recherché */ inline Filter * EventManager::GetFilterPtr ( const u_int fnum ) const { return ( GetFilterListPtr()->Goto(fnum) ); } /*! Retourne le numéro d'un filtre de la liste, ou -1 si le filtre * n'existe pas. * \param fname nom du filtre recherché */ inline int EventManager::GetFilterIndex ( const string &fname ) const { return ( GetFilterListPtr()->GetFilterIndex (fname) ); } /*! Retourne le nom d'un filtre de la liste, ou une chaîne vide si le filtre * n'existe pas. * \param fnum numéro du filtre recherché */ inline string EventManager::GetFilterName ( const u_int fnum ) const { const Filter *ptr = GetFilterPtr(fnum); return ( (ptr == NULL) ? "" : ptr->GetName() ); } //====================================================================== #endif
1219  */
1220 inline int EventManager::GetContourIndex ( const string &cname ) const
1221  { return ( GetFilterListPtr()->GetContourIndex (cname) ); }
1222 
1223 /*! Retourne le nom d'un contour de la liste, ou une chaîne vide si le contour
1224  * n'existe pas.
1225  * \param cnum numéro du contour recherché */ inline string EventManager::GetContourName ( const u_int cnum ) const { RContour *ptr = GetContourPtr(cnum); return ( (ptr == NULL) ? "" : ptr->GetName() ); } /*! Retourne le pointeur sur un filtre de la liste, ou NULL si le filtre * n'existe pas. * \param fname nom du filtre recherché */ inline Filter * EventManager::GetFilterPtr ( const string &fname ) const { return ( GetFilterListPtr()->FindName(fname) ); } /*! Retourne le pointeur sur un filtre de la liste, ou NULL si le filtre * n'existe pas. * \param fnum numéro du filtre recherché */ inline Filter * EventManager::GetFilterPtr ( const u_int fnum ) const { return ( GetFilterListPtr()->Goto(fnum) ); } /*! Retourne le numéro d'un filtre de la liste, ou -1 si le filtre * n'existe pas. * \param fname nom du filtre recherché */ inline int EventManager::GetFilterIndex ( const string &fname ) const { return ( GetFilterListPtr()->GetFilterIndex (fname) ); } /*! Retourne le nom d'un filtre de la liste, ou une chaîne vide si le filtre * n'existe pas. * \param fnum numéro du filtre recherché */ inline string EventManager::GetFilterName ( const u_int fnum ) const { const Filter *ptr = GetFilterPtr(fnum); return ( (ptr == NULL) ? "" : ptr->GetName() ); } //====================================================================== #endif
1226  */
1227 inline string EventManager::GetContourName ( const u_int cnum ) const
1228  {
1229  RContour *ptr = GetContourPtr(cnum);
1230  return ( (ptr == NULL) ? "" : ptr->GetName() );
1231  }
1232 
1233 
1234 /*! Retourne le pointeur sur un filtre de la liste, ou NULL si le filtre
1235  * n'existe pas.
1236  * \param fname nom du filtre recherché */ inline Filter * EventManager::GetFilterPtr ( const string &fname ) const { return ( GetFilterListPtr()->FindName(fname) ); } /*! Retourne le pointeur sur un filtre de la liste, ou NULL si le filtre * n'existe pas. * \param fnum numéro du filtre recherché */ inline Filter * EventManager::GetFilterPtr ( const u_int fnum ) const { return ( GetFilterListPtr()->Goto(fnum) ); } /*! Retourne le numéro d'un filtre de la liste, ou -1 si le filtre * n'existe pas. * \param fname nom du filtre recherché */ inline int EventManager::GetFilterIndex ( const string &fname ) const { return ( GetFilterListPtr()->GetFilterIndex (fname) ); } /*! Retourne le nom d'un filtre de la liste, ou une chaîne vide si le filtre * n'existe pas. * \param fnum numéro du filtre recherché */ inline string EventManager::GetFilterName ( const u_int fnum ) const { const Filter *ptr = GetFilterPtr(fnum); return ( (ptr == NULL) ? "" : ptr->GetName() ); } //====================================================================== #endif
1237  */
1238 inline Filter * EventManager::GetFilterPtr ( const string &fname ) const
1239  { return ( GetFilterListPtr()->FindName(fname) ); }
1240 
1241 /*! Retourne le pointeur sur un filtre de la liste, ou NULL si le filtre
1242  * n'existe pas.
1243  * \param fnum numéro du filtre recherché */ inline Filter * EventManager::GetFilterPtr ( const u_int fnum ) const { return ( GetFilterListPtr()->Goto(fnum) ); } /*! Retourne le numéro d'un filtre de la liste, ou -1 si le filtre * n'existe pas. * \param fname nom du filtre recherché */ inline int EventManager::GetFilterIndex ( const string &fname ) const { return ( GetFilterListPtr()->GetFilterIndex (fname) ); } /*! Retourne le nom d'un filtre de la liste, ou une chaîne vide si le filtre * n'existe pas. * \param fnum numéro du filtre recherché */ inline string EventManager::GetFilterName ( const u_int fnum ) const { const Filter *ptr = GetFilterPtr(fnum); return ( (ptr == NULL) ? "" : ptr->GetName() ); } //====================================================================== #endif
1244  */
1245 inline Filter * EventManager::GetFilterPtr ( const u_int fnum ) const
1246  { return ( GetFilterListPtr()->Goto(fnum) ); }
1247 
1248 /*! Retourne le numéro d'un filtre de la liste, ou -1 si le filtre
1249  * n'existe pas.
1250  * \param fname nom du filtre recherché */ inline int EventManager::GetFilterIndex ( const string &fname ) const { return ( GetFilterListPtr()->GetFilterIndex (fname) ); } /*! Retourne le nom d'un filtre de la liste, ou une chaîne vide si le filtre * n'existe pas. * \param fnum numéro du filtre recherché */ inline string EventManager::GetFilterName ( const u_int fnum ) const { const Filter *ptr = GetFilterPtr(fnum); return ( (ptr == NULL) ? "" : ptr->GetName() ); } //====================================================================== #endif
1251  */
1252 inline int EventManager::GetFilterIndex ( const string &fname ) const
1253  { return ( GetFilterListPtr()->GetFilterIndex (fname) ); }
1254 
1255 /*! Retourne le nom d'un filtre de la liste, ou une chaîne vide si le filtre
1256  * n'existe pas.
1257  * \param fnum numéro du filtre recherché */ inline string EventManager::GetFilterName ( const u_int fnum ) const { const Filter *ptr = GetFilterPtr(fnum); return ( (ptr == NULL) ? "" : ptr->GetName() ); } //====================================================================== #endif
1258  */
1259 inline string EventManager::GetFilterName ( const u_int fnum ) const
1260  {
1261  const Filter *ptr = GetFilterPtr(fnum);
1262  return ( (ptr == NULL) ? "" : ptr->GetName() );
1263  }
1264 
1265 
1266 //======================================================================
1267 #endif
bool SetParamDefaultValue(const u_int num, const Data &d)
Definition: EventManager.cpp:93
int AddSpecInv(const string &spec_name, const string &oper_name, const double c0=1., const double c1=0., const double c2=0., const string &family_name="")
Definition: EventManager.cpp:1761
const Data & GetParamDefaultValue(const u_int num)
Definition: EventManager.cpp:55
virtual bool User1DIncrement(const string &spec_name, const Double_t x, const Double_t incr=1.)
Definition: EventManager.cpp:2339
virtual int AddFilterAnd(const char *f_name, const char *f1_name, const char *f2_name)
Definition: EventManager.cpp:3568
virtual bool User2DSetValue(const string &spec_name, const Double_t x, const Double_t y, const Double_t val)
Definition: EventManager.cpp:2564
virtual bool FilterTree(const int t_num, const string &f_name="")
Definition: EventManager.cpp:4036
virtual string GetTreeFile(const int t_num) const
Definition: EventManager.cpp:808
int AddSpecHSum(const string &spec_name, const string &src_name, const string &family_name="")
Definition: EventManager.cpp:2052
Definition: FilterBase.hh:42
virtual int LoadContourList(const string &filename, const bool append=true)
Definition: EventManager.cpp:3419
virtual int AddFilterOr(const char *f_name, const char *f1_name, const char *f2_name)
Definition: EventManager.cpp:3597
int AddSpecExtern(const string &h_name, const string &f_name, const string &s_name="", const string &family_name="")
Definition: EventManager.cpp:1589
virtual int AddParamArray(const string &par_name, const u_int dim, const Data &d=DataUI2(0))
Definition: EventManager.hh:737
SpectrumList spec_list
Liste des spectres de l&#39;analyse.
Definition: EventManager.hh:70
int AddSpecBidim(const string &spec_name, const u_int par_num_x, const u_int nx, const double x1, const double x2, const u_int par_num_y, const u_int ny, const double y1, const double y2, const string &family_name="")
Definition: EventManager.cpp:1148
const SpectrumList * GetSpectrumListPtr() const
Definition: EventManager.hh:679
virtual int SaveSpectraList(const string &filename) const
Definition: EventManager.cpp:3255
virtual int LoadFilterList(const string &filename, const bool append=true)
Definition: EventManager.cpp:3898
ClassDef(EventManager, 0)
int AddSpecDiv(const string &spec_name, const string &oper0_name, const string &oper1_name, const double c0=1., const double c1=1., const double c2=0., const string &family_name="")
Definition: EventManager.cpp:1913
virtual ~EventManager()
Definition: EventManager.cpp:37
virtual bool User2DIncrement(const string &spec_name, const Double_t x, const Double_t y, const Double_t incr=1.)
Definition: EventManager.cpp:2519
const RContourList * GetContourListPtr() const
Definition: EventManager.hh:687
virtual int SaveSelectedHistograms(const string &file_name) const
Definition: EventManager.cpp:3287
virtual void RejectEvent()
Definition: EventManager.hh:714
virtual UInt_t GetTreeFileMode(const int t_num) const
Definition: EventManager.cpp:874
DataBad & bad_data
Definition: DataBad.cpp:51
virtual const RContourList * GetContourListPtr() const
Definition: FilterList.hh:126
virtual void PrintFamily(const string &family_name)
Definition: EventManager.hh:1147
virtual string GetTreeFileName(const int t_num) const
Definition: EventManager.cpp:841
virtual int LoadTreeList(const string &filename, const bool append=true)
Definition: EventManager.cpp:1045
const Param * GetParamPtr(const string &par_name) const
Definition: Event.cpp:149
int AddSpecSqrt(const string &spec_name, const string &oper_name, const double c0=1., const double c1=0., const string &family_name="")
Definition: EventManager.cpp:1722
bool StartSpectrum(const int num=-1) const
Definition: EventManager.cpp:2914
const FilterList * GetFilterListPtr() const
Definition: EventManager.hh:683
virtual int AddFilterGate(const char *f_name, const char *p_name, const double pmin, const double pmax, const int mode=filterMultiParAnd)
Definition: EventManager.cpp:3703
Definition: TreeInfo.hh:95
virtual void SuspendList() const
Definition: TreeList.hh:153
virtual const Param * GetParamPtr(const u_int n) const
Definition: EventManager.hh:753
virtual void OpenTreeList(const Int_t m=-1) const
Definition: EventManager.hh:949
virtual int SaveHistograms(const string &file_name) const
Definition: EventManager.cpp:3276
Definition: DataUI2.hh:19
virtual Bool_t OpenTree(const int t_num) const
Definition: EventManager.cpp:910
Definition: TreeList.hh:26
EventManager()
Definition: EventManager.cpp:22
virtual bool SetSpectrumDeleteProtection(Spectrum *spec_ptr, const bool b=true)
Definition: EventManager.cpp:2855
virtual int AddParamSingle(const string &par_name, const Data &d=DataUI2(0))
Definition: EventManager.hh:727
virtual int GetParamDimension(const u_int n) const
Definition: EventManager.hh:782
Definition: Filter.hh:50
const Event * GetEventPtr() const
Definition: EventManager.hh:671
u_int ParamNumber() const
Definition: EventManager.hh:649
bool ResetSpectrumFamily(const string &spec_name)
Definition: EventManager.hh:1074
virtual bool RemoveContour(const string &ct_name, const bool force=true)
Definition: EventManager.cpp:3374
virtual int GetTreeIndex(const string &tree_name) const
Definition: TreeList.cpp:79
u_int TreeNumber() const
Definition: EventManager.hh:657
virtual int AddTree(const string &t_name, const string &f_name="", const UInt_t n_max=0)
Definition: EventManager.cpp:273
const TreeList * GetTreeListPtr() const
Definition: EventManager.hh:675
int AddSpecNorm(const string &spec_name, const string &oper_name, const double norm=1., const string &family_name="")
Definition: EventManager.cpp:1687
virtual Spectrum * GetSpectrumPtr(const u_int num) const
Definition: SpectrumList.cpp:836
Definition: ParamArray.hh:38
virtual int AddFilterTrue(const char *f_name)
Definition: EventManager.cpp:3533
virtual bool RenameSpectrum(const u_int num, const string &name, const string &name_x="", const string &name_y="", const string &name_z="")
Definition: EventManager.hh:973
Definition: ParamMultihit.hh:35
Definition: Spectrum.hh:222
int AddSpecTridim(const string &spec_name, const u_int par_num_x, const u_int nx, const double x1, const double x2, const u_int par_num_y, const u_int ny, const double y1, const double y2, const u_int par_num_z, const u_int nz, const double z1, const double z2, const string &family_name="")
Definition: EventManager.cpp:1248
virtual void DumpEvent(const bool all=false, const u_int pmin=0, const u_int pmax=0) const
Definition: EventManager.hh:1124
bool SuspendTree(const int t_num=-1) const
Definition: EventManager.cpp:670
virtual void RemoveAllContours()
Definition: EventManager.cpp:3346
virtual Bool_t CloseTree(const int t_num) const
Definition: EventManager.cpp:942
virtual bool FilterSpectrum(const int sp_num, const string &f_name="")
Definition: EventManager.cpp:3923
virtual int AddContour(const string &ct_name, RContourBase &ct)
Definition: EventManager.cpp:3316
virtual int GetTreeIndex(const string &t_name) const
Definition: EventManager.hh:940
virtual int SaveFamilyHistograms(const string &file_name, const string &family_name) const
Definition: EventManager.cpp:3299
virtual bool RenameSpectrum(const u_int num, const string &name, const string &name_x="", const string &name_y="", const string &name_z="")
Definition: SpectrumList.cpp:943
int AddSpecDistrib(const string &spec_name, const u_int par_num, const double x1, const double x2, const string &family_name="")
Definition: EventManager.cpp:1357
virtual int AddFilterFalse(const char *f_name)
Definition: EventManager.cpp:3522
virtual void RemoveAllFilters()
Definition: EventManager.cpp:3509
virtual bool SuspendFamily(const string &family_name)
Definition: SpectrumList.cpp:1105
virtual void CloseTreeList(const Int_t m=-1) const
Definition: EventManager.hh:957
virtual void IncrementListFast() const
Definition: TreeList.cpp:369
virtual bool CheckFilter(const string &f_name)
Definition: EventManager.cpp:4116
virtual int AddParamMultihit(const string &par_name, const Data &d=DataUI2(0))
Definition: EventManager.hh:746
TH1 * GetHistoPtr(const u_int num) const
Definition: EventManager.hh:1039
FilterList filter_list
Liste des filtres de l&#39;analyse.
Definition: EventManager.hh:71
int AddSpecProd(const string &spec_name, const string &oper0_name, const string &oper1_name, const double c0=1., const double c1=1., const string &family_name="")
Definition: EventManager.cpp:1856
virtual void PrintEvent() const
Definition: EventManager.hh:1133
virtual RContour * GetContourPtr(const string &cname) const
Definition: EventManager.hh:1206
virtual bool RemoveSpectrum(const Spectrum *spec_ptr, const bool force=true)
Definition: EventManager.cpp:2737
bool StopTree(const int t_num=-1) const
Definition: EventManager.cpp:641
Definition: FilterList.hh:37
virtual bool SetSpectrumSaveProtection(Spectrum *spec_ptr, const bool b=true)
Definition: EventManager.cpp:2798
virtual bool ResetFamily(const string &family_name)
Definition: SpectrumList.cpp:1125
virtual u_int Dimension() const =0
virtual int GetContourIndex(const string &cname) const
Definition: EventManager.hh:1220
int AddSpecHCumul(const string &spec_name, const string &src_name, const u_int ny, const double y1, const double y2, const string &family_name="")
Definition: EventManager.cpp:2234
int AddSpecHMean(const string &spec_name, const string &src_name, const string &family_name="")
Definition: EventManager.cpp:2141
virtual int AddFilterMultiAnd(const char *f_name, const char *fl_names)
Definition: EventManager.cpp:3656
virtual Bool_t IsTreeClosed(const int t_num) const
Definition: EventManager.cpp:1006
Definition: Param.hh:83
virtual int SaveSelectedSpectra(const string &filename) const
Definition: EventManager.cpp:3266
virtual void PrintFamily(const string &family_name)
Definition: SpectrumList.hh:352
virtual void OpenList(const Int_t m=-1) const
Definition: TreeList.cpp:155
virtual bool User1DSetValue(const string &spec_name, const Double_t x, const Double_t val)
Definition: EventManager.cpp:2382
virtual void IncrementListFast() const
Definition: SpectrumList.cpp:101
int AddSpecTrace(const string &spec_name, const u_int par_num, const double x1, const double x2, const string &family_name="")
Definition: EventManager.cpp:1425
int GetParamIndex(const string &par_name) const
Definition: Event.cpp:102
virtual int AddFilterMultiOr(const char *f_name, const char *fl_names)
Definition: EventManager.cpp:3679
virtual void RemoveAllSpectra(const bool force=false)
Definition: EventManager.cpp:2706
virtual Int_t SetTreeFile(const int t_num, const string &f_name, const UInt_t n_max=0)
Definition: EventManager.cpp:767
const Data & GetParam(const u_int num)
Definition: EventManager.cpp:163
bool StopFamily(const string &family_name)
Definition: EventManager.hh:1097
virtual int LoadSpectraList(const string &filename, const bool append=true)
Definition: EventManager.cpp:3246
virtual string GetContourName(const u_int cnum) const
Definition: EventManager.hh:1227
bool SuspendSpectrum(const int num=-1) const
Definition: EventManager.cpp:3014
virtual int GetFilterIndex(const string &fname) const
Definition: EventManager.hh:1252
virtual int SaveFilterList(const string &filename) const
Definition: EventManager.cpp:3907
bool ResetSpectrum(const int num=-1) const
Definition: EventManager.cpp:3064
int AddSpecMono(const string &spec_name, const u_int par_num, const u_int nx, const double x1, const double x2, const string &family_name="")
Definition: EventManager.cpp:1075
virtual bool SetSpectrumFamily(Spectrum *spec_ptr, const string &family_name)
Definition: SpectrumList.hh:337
TH1 * GetHistoPtr(const u_int num) const
Definition: SpectrumList.cpp:905
bool SuspendFamily(const string &family_name)
Definition: EventManager.hh:1104
int GetParamDimension(const u_int n) const
Definition: Event.cpp:136
virtual int SaveContourList(const string &filename) const
Definition: EventManager.cpp:3460
int AddSpecSum(const string &spec_name, const string &oper0_name, const string &oper1_name, const double c0=1., const double c1=1., const double c2=0., const string &family_name="")
Definition: EventManager.cpp:1800
const Data & SetParam(const u_int num, const T &val)
Definition: EventManager.hh:806
virtual int AddParam(const Param &par)
Definition: EventManager.cpp:140
virtual void SuspendList() const
Definition: SpectrumList.hh:303
bool StopSpectrum(const int num=-1) const
Definition: EventManager.cpp:2964
TreeInfo * GetTreePtr(const u_int tree_num) const
Definition: TreeList.cpp:48
virtual void CloseList(const Int_t m=-1) const
Definition: TreeList.cpp:171
TreeList tree_list
Liste des arbres de l&#39;analyse.
Definition: EventManager.hh:69
virtual TreeInfo * GetTreePtr(const u_int t_num) const
Definition: EventManager.hh:926
virtual int SaveTreeList(const string &filename) const
Definition: EventManager.cpp:1054
const string GetParamName(const u_int n) const
Definition: Event.cpp:183
int AddSpecSumN(const string &spec_name, const Int_t oper_num, Spectrum **oper_tab, const string &family_name="")
Definition: EventManager.cpp:1967
virtual Int_t AddTreeAllParam(const int t_num)
Definition: EventManager.cpp:573
virtual int AddFilterXOr(const char *f_name, const char *f1_name, const char *f2_name)
Definition: EventManager.cpp:3626
Definition: Event.hh:22
virtual void UpdateValues() const
Definition: FilterList.cpp:296
int AddSpecUser1D(const string &spec_name, const u_int nx, const double x1, const double x2, const string &family_name="")
Definition: EventManager.cpp:1617
Definition: ParamSingle.hh:21
virtual int AddFilterNot(const char *f_name, const char *fnot_name)
Definition: EventManager.cpp:3545
bool SetSpectrumFamily(const string &spec_name, const string &family_name)
Definition: EventManager.hh:1058
virtual int GetSpectrumIndex(const string &spec_name) const
Definition: EventManager.hh:1024
virtual bool FilterFamily(const string &family_name, const string &f_name="")
Definition: EventManager.cpp:4006
Definition: SpectrumList.hh:30
virtual string GetSpectrumName(const u_int spec_num) const
Definition: SpectrumList.cpp:884
Definition: Data.hh:153
virtual Bool_t AddTreeParam(const int t_num, const Param *p_ptr)
Definition: EventManager.cpp:406
virtual string GetFilterName(const u_int fnum) const
Definition: EventManager.hh:1259
virtual Spectrum * GetSpectrumPtr(const u_int num) const
Definition: EventManager.hh:1010
virtual bool RemoveFilter(Filter *f, const bool force=true)
Definition: EventManager.hh:1172
virtual bool Ok() const
Definition: Filter.hh:152
virtual void IncrementSpectra() const
Definition: EventManager.hh:999
virtual void RemoveAllTrees()
Definition: EventManager.cpp:392
virtual int AddFilterContour(const char *f_name, const char *c_name, const char *x_name, const char *y_name, const bool inv=false, const int mode=filterMultiParAnd)
Definition: EventManager.cpp:3814
virtual int GetParamIndex(const string &par_name) const
Definition: EventManager.hh:775
u_int ContourNumber() const
Definition: EventManager.hh:661
u_int SpecNumber() const
Definition: EventManager.hh:653
virtual bool StopFamily(const string &family_name)
Definition: SpectrumList.cpp:1085
bool ResetFamily(const string &family_name)
Definition: EventManager.hh:1111
virtual int InitTree(const string &t_name)
Definition: EventManager.cpp:295
Definition: EventManager.hh:59
bool StartTree(const int t_num=-1) const
Definition: EventManager.cpp:612
virtual bool StartFamily(const string &family_name)
Definition: SpectrumList.cpp:1065
virtual string GetSpectrumName(const u_int spec_num) const
Definition: EventManager.hh:1031
virtual Filter * GetFilterPtr(const string &fname) const
Definition: EventManager.hh:1238
virtual int AddFilter(const string &f_name, FilterBase &f)
Definition: EventManager.cpp:3475
Event event
Structure physique de l&#39;événement.
Definition: EventManager.hh:68
virtual bool ResetSpectrumFamily(Spectrum *spec_ptr)
Definition: SpectrumList.hh:345
int AddSpecCumul(const string &spec_name, const u_int par_num_x, const double x1, const double x2, const u_int ny, const double y1, const double y2, const string &family_name="")
Definition: EventManager.cpp:1495
virtual Bool_t IsTreeOpen(const int t_num) const
Definition: EventManager.cpp:974
GObjectV(EventManager)
u_int FilterNumber() const
Definition: EventManager.hh:665
virtual string GetParamName(const u_int n) const
Definition: EventManager.hh:767
int AddSpecHisto(TH1 &h, const string &family_name="")
Definition: EventManager.cpp:1564
virtual void PrintSpecList() const
Definition: EventManager.hh:1138
virtual bool RemoveFilter(const bool force=true)
Definition: FilterList.cpp:501
int AddSpecUser2D(const string &spec_name, const u_int nx, const double x1, const double x2, const u_int ny, const double y1, const double y2, const string &family_name="")
Definition: EventManager.cpp:1653
bool StartFamily(const string &family_name)
Definition: EventManager.hh:1090
virtual int GetSpectrumIndex(const string &spec_name) const
Definition: SpectrumList.cpp:867
virtual Int_t AddTreeParamRange(const int t_num, const Int_t p1, const Int_t p2)
Definition: EventManager.cpp:534
virtual bool RemoveTree(const TreeInfo *t_ptr)
Definition: EventManager.cpp:351