10/*! \page event_release Versions des bibliothèques Event
11 *
12 *
13 * june 2018: version 7.4
14 * - minor change: when loading pages at init, the main window is
15 * raised on top to avoid been hidden by pages.
16 *
17 * november 2016: version 7.2
18 * - added class SpecHisto and functions to manage it
19 *
20 * july 2016: version 7.2
21 * - modified RunBase, GEVRunBase , TreeList and TreeInfo classes in
22 * order to be able to process several files of the same run number
23 * according to the new automatic change of run files at GANIL.
24 *
25 * janvier 2013: version 6.3
26 * - corrections de code pour compilations SL5 / 64 bits
27 *
28 * décembre 2011, avril 2012: version 6.2
29 * - version 3.0 des bibliothèques additionnelles de Root, qui s'appellent maintenant GRootTools.
30 * (utilisation de la bibliothèque GTools).
31 * - fonction de récupération des "fitters" dans GEVRunBase, utilisable dans
32 * la fonction utilisateur UserFit.
33 *
34 * mars 2010 - octobre 2011: version 6.1
35 * - (oct. 2011) définition des protections pour sauvegarde et
36 * suppression des spectres, pour les spectres créés dans le code;
37 * l'interface graphique d'édition des spectres est modifiée * pour tenir compte de ces protections.
* - interface graphique d'édition des spectres : ajout de la
* sélection des spectres par familles.
* - septembre 2011:
* suppression du "tool-tip" du bouton d'initialisation, qui restait
* à chaque fois que le menu "load analysis" était demandé
* correction d'un bug dans la classe GEVPadAxisPropertiesEditor
* qui crashait à la construction
* - juin 2011:
* l'utilisation de TGFileDialog change le répetoire courant;
* lorsque les noms de fichiers d'entrée ou de sortie sont spécifiés en
* relatif, il est alors possible que le programme ne les retrouve plus.
* une variable "run_base_dir" est ajoutée à la classe de base
* RunBase, pour mémoriserle répertoire de démarrage et pouvoir
* repositionner le répertoire courant s'il est changé.
* - ajout de l'export direct des pads individuels
* - version 2.8 des bibliothèques de classes patron.
* - version 2.11 des bibliothèques additionnelles de Root.
* - corrections mineures de compatibilité avec compilateur sur Fedora Core.
* - ajout d'une valeur par défaut à la remise à zéro des paramètres
* de l'événement.
* - affichage des coordonnées du curseur dans la barre de titre des pages
* graphiques, et ajout d'une fonction (slot) lorsque le bouton
* de la souris est clické, qui peut être surchargée dans les
* classes utilisateur.
*
* mars 2010: version 6.0
* - compilation différenciée selon les versions de Root
* - version 2.10 des bibliothèques additionnelles de Root.
* - ajout des histogrammes 3D (Tridim) et des classes de base
* correspondantes (Spec3Par et Spec3Dim).
* - modification des modes de tracé des spectres (classes de la GUI):
* utilisation des widgets de Root2.9.
* - correction d'un bug dans la suppression du filtrage d'un spectre
* (si aucun filtre sélectionné, il ne retirait pas le filtrage).
*
* août 2009: version 5.4
* - version 2.8 des bibliothèques additionnelles de Root.
* - ajout de la classes d'analyse RGuiTreeRun utilisable
* dans une session ROOT.
* - définition des classes de base pour analyses sans fichier
* d'entrée (simulations): SimulRun et GEVSimulRun.
* - définition des classes de base pour analyse des fichiers
* d'entrée de MIDAS (version de base): MidasRun et GuiMidasRun.
*
* mai 2009: version 5.3
* - possibilité de conditionner les spectres (pas les arbres) avec
* plusieurs filtres (création d'un filtre local de type ET logique
* pour les spectres en question).
* La classe graphique d'édition des spectres est modifiée en
* conséquence (GEVSpectrumEditor).
* - ajout d'un boutin d'information dans la création des arbres
* (classe GEVTreeCreator), et d'un bouton de sélection de fichier.
* - correction du bug: les titres des axes ne sont pas mis correctement
* à la lecture d'un fichier de spectre.
* - ajouts à la classe GEVRunBase:
* - d'une fonction utilisateur au rafraichissement automatique
* des pages dans GEVRunBase
* - d'une fonction Stop() demandant l'interuption de lecture
* - ajout d'une option \b verbose dans l'exécutable \b TreeRun
*
* avril 2009: version 5.2
* - version 2.7 des bibliothèques additionnelles pour Root, corrigeant
* les listes triées.
* cela nécessite de lever les ambiguités des fonctions Compare sur
* les classes suivantes:
* - Spectrum et SpectrumList qui définissent d'autres fonctions
* Compare pour la compatibilité des opérations sur les spectres
* - GEVPage (ambiguité : ONamed/TObject)
* - ajout d'une classe de requête de sélection de spectres à partir
* d'une liste ou d'un pad.
* - ajout d'une classe de requête de sélection de spectres pour les fit:
* spectre à fitter et spectre d'erreur.
* - modification de l'héritage de la classe SpectrumList : elle hérite
* maintenant de façon publique de OList (et non plus de façon protégée).
* - ajout des menus d'outils dans les pads pour fit de spectres
* (c'est la classe GEVRunBase qui mémorise les données des fits)
* - ajout d'une fonction utilisateur UserFit()
* - ajout des définitions des classes créées à partir des patrons
* de listes et vecteurs, dans le dictionnaire pour ROOT, afin de
* pouvoir utiliser leurs fonctions dans une session ROOT.
* - définition des options d'angles pour les tracés 3D:
* - dans les préférences
* - dans les propriétés de pad
* - dans les options de tracé des pages
* - ajout d'un menu de nettoyage complet d'une analyse
*
* janvier 2009: version 5.1
* - version 2.6 des bibliothèques additionnelles pour Root.
* - création d'un exécutable de base à partir de la classe GEVTreeRun
* - les histogrammes ROOT associés aux spectres sont mis de force dans
* en mémoire (répertoire interne ROOT de base) pour éviter qu'ils ne
* soient détruits s'ils sont créés après l'ouverture d'un fichier
* TTree en entrée (classe TreeRun).
* - ajout des fonctionnalités d'impression (menu de pages et préférences)
* - mémorisation de la taille des fenêtres de certaines requêtes
* - ajout des menus de pages pour la sélection d'un ensemble de spectres
* dans les pages, et pour la définitions des bornes de tracé dans
* toute la page.
* - modification de l'attente système dans l'interface graphique: un temps
* d'attente inférieur à 1 ms permet de libérer le système de façon
* fractionnée (au 100e de ms), ce qui permet d'éviter la limitation
* à des nombres entiers de ms.
* - ajout de nouveaux types de spectres (ce qui implique la modification
* de l'interface graphique pour la création des spectres):
* - spectres externes (histogrammes de fichiers ROOT)
* - spectres opérations:
* - spectres à 1 opérande: normalisé, racine carrée, inverse
* - spectres à 2 opérandes: sommes pondérée, produit, division
* - spectres utilisateur (1D ou 2D)
* - cela implique des modifications des classes de base pour les
* spectres qui nécessitent des infos supplémentaires pour accéder
* aux informations requises (en particulier les spectres opérandes)
* - correction bugs:
* - saugegarde des échelles log dans les pages
* - ajustement automatique des échelles log (pas encore parfait...)
* - déplacement en début et fin de liste des spectres et des filtres
* (dans la GUI)
*
* octobre 2008: version 5.0
* - numérotation des version unique par ensemble Event et bibliothèques
* dérivées (GanilRun, ...)
*
* octobre 2008: version 4.0
* - modification de la lecture des filtres (incompatible avec fichiers
* filtres des versions antérieures).
* \note pour réutiliser les filtres des versions précédentes, il
* suffit de supprimer le numéro du type de filtre, après le
* nom du filtre
* - correction du bug d'affichage logarithmique de spectres vides
*
* septembre 2008: version 3.2
* - modifications sur les filtres:
* classes de base des filtres logiques à 2 ou plusieurs opérandes;
* nouveaux types de filtres: Gate, MultiAnd et MultiOr
* - version 2.4 de JG_Root (modification sur l'édition des contours)
* - ajout des boutons Reset et Unzoom dans l'édition des contours
* - correction de l'affichage des contours dans GEVPadContourEditor
* (il n'étaient pas affichés tout de suite, au démarrage ou au
* changement de type: l'édition du canevas était bloquée par
* RGFrameEvent pour des événements extérieurs au pad).
* - ajout des préférences épaisseur de ligne des contours 1D (suite à
* la modification de l'éditeur de contours).
* - nouvelle classe (GEVParamDisplayer) pour affichage de la liste des
* paramètres, avec bouton pour l'écriture dans un fichier.
* - variable logique page_construct ajoutée à la classe GEVPageManager
* pour autoriser ou non la construction effective des pages.
* (par défaut, elle est mise à vrai pour GEVPageManager, et à faux pour
* GEVRunBase qui n'autorise la construction des pages que lorsque
* l'interface est construite).
*
* mai 2008: version 3.1
* - version 2.3 des bibliothèques additionnelles de ROOT
* (utilisant OTemplates 2.6).
* - TTree: possibilité de détermination du nom de fichier associé
* à un arbre à partir du nom de base du fichier d'entrée (un
* fichier arbre par run).
* - modification de la détermination des listes de fichiers en mode
* runList, afin de ne pas relancer systématiquement (à chaque nouveau
* numéro de run) une recherche de fichier avec appel aux fonctions
* système.
* - correction de la fonction ParamMultihit::Get() pour éviter le
* planter en cas de lecture dans un paramètre vide (message d'alerte).
* - ajout des boutons pour affichage de la structure d'événements
* dans l'interface graphique de base.
*
* mars 2008: version 3.0
* - version 2.2 des bibliothèques additionnelles de Root
* - les paramètres de type multihit ont un type de données unique
* (en vue de la création de TTree à partir des données)
* - les données DataI8 et DataUI8 sont définies
* - ajout de la possibilité de créer des arbres (TTree de ROOT) à
* partir des paramètres (classes TreeInfo, TreeParam et TreeList)
* et modification de l'interface graphique pour l'édition des
* arbres en sortie
* - création des classes d'analyse TreeRun et GEVTreeRun pour relire
* des fichiers ROOT contenant des TTree (en entrée), et du script
* de génération automatique des squelettes de code pour analyse
* - utilisation de chemins relatifs dans la sauvegarde des
* analyses complètes (structures)
*
* février 2008: version 2.2
* - modifications pour compilation avec version 5.16 de ROOT:
* - modification du constructeurs de recopie de GEVSpectrumSelectionWidget
* parce que les widgets de base (de ROOT: TGHorizontalFrame) ont des
* constructeurs de recopie protégés
* - ajout des fonctions GetFilterIndex() et GetContourIndex() pour les
* classes FilterList et EventManager
* - ajout de la fonction GetSpectrumIndex() pour les
* classes SpectrumList et EventManager
*
* février 2008: version 2.1
* - fonctions d'ajout de cadres à l'interface de base (Bottom, Side et Sub)
* - ajout d'un bouton de copie dans l'édition de spectres
* - ajout d'un identifiant de type de spectre dans les listes de
* sélection
* - correction des noms de contour dans la liste de sélection, en
* retour d'éditeur (dans les Pads)
* - correction d'un bug dans GEVPadContourEditor: la validation ne
* marchait pas pour l'édition d'un contour déjà existant
*
* janvier 2008: version 2.0
* - première version complète
* - basée sur libRoot2.0 et OTemplates 2.5
* - structures d'analyse complètes:
* - structure d'événements et paramètres
* - spectres
* - contours et filtres
* - interfaces graphiques complètes avec lecture et sauvegarde des
* structures
* - classes génériques pour les analyses: RunBase et GEVRunBase
*
* janvier 2007: versions 1.0, 1.1
* - premières versions de test
* - basées sur libRoot1.x (bibliothèques additionnelles pour root).
*/
38 * pour tenir compte de ces protections.
39 * - interface graphique d'édition des spectres : ajout de la
40 * sélection des spectres par familles.
41 * - septembre 2011:
42 * suppression du "tool-tip" du bouton d'initialisation, qui restait
43 * à chaque fois que le menu "load analysis" était demandé * correction d'un bug dans la classe GEVPadAxisPropertiesEditor
* qui crashait à la construction
* - juin 2011:
* l'utilisation de TGFileDialog change le répetoire courant;
* lorsque les noms de fichiers d'entrée ou de sortie sont spécifiés en
* relatif, il est alors possible que le programme ne les retrouve plus.
* une variable "run_base_dir" est ajoutée à la classe de base
* RunBase, pour mémoriserle répertoire de démarrage et pouvoir
* repositionner le répertoire courant s'il est changé.
* - ajout de l'export direct des pads individuels
* - version 2.8 des bibliothèques de classes patron.
* - version 2.11 des bibliothèques additionnelles de Root.
* - corrections mineures de compatibilité avec compilateur sur Fedora Core.
* - ajout d'une valeur par défaut à la remise à zéro des paramètres
* de l'événement.
* - affichage des coordonnées du curseur dans la barre de titre des pages
* graphiques, et ajout d'une fonction (slot) lorsque le bouton
* de la souris est clické, qui peut être surchargée dans les
* classes utilisateur.
*
* mars 2010: version 6.0
* - compilation différenciée selon les versions de Root
* - version 2.10 des bibliothèques additionnelles de Root.
* - ajout des histogrammes 3D (Tridim) et des classes de base
* correspondantes (Spec3Par et Spec3Dim).
* - modification des modes de tracé des spectres (classes de la GUI):
* utilisation des widgets de Root2.9.
* - correction d'un bug dans la suppression du filtrage d'un spectre
* (si aucun filtre sélectionné, il ne retirait pas le filtrage).
*
* août 2009: version 5.4
* - version 2.8 des bibliothèques additionnelles de Root.
* - ajout de la classes d'analyse RGuiTreeRun utilisable
* dans une session ROOT.
* - définition des classes de base pour analyses sans fichier
* d'entrée (simulations): SimulRun et GEVSimulRun.
* - définition des classes de base pour analyse des fichiers
* d'entrée de MIDAS (version de base): MidasRun et GuiMidasRun.
*
* mai 2009: version 5.3
* - possibilité de conditionner les spectres (pas les arbres) avec
* plusieurs filtres (création d'un filtre local de type ET logique
* pour les spectres en question).
* La classe graphique d'édition des spectres est modifiée en
* conséquence (GEVSpectrumEditor).
* - ajout d'un boutin d'information dans la création des arbres
* (classe GEVTreeCreator), et d'un bouton de sélection de fichier.
* - correction du bug: les titres des axes ne sont pas mis correctement
* à la lecture d'un fichier de spectre.
* - ajouts à la classe GEVRunBase:
* - d'une fonction utilisateur au rafraichissement automatique
* des pages dans GEVRunBase
* - d'une fonction Stop() demandant l'interuption de lecture
* - ajout d'une option \b verbose dans l'exécutable \b TreeRun
*
* avril 2009: version 5.2
* - version 2.7 des bibliothèques additionnelles pour Root, corrigeant
* les listes triées.
* cela nécessite de lever les ambiguités des fonctions Compare sur
* les classes suivantes:
* - Spectrum et SpectrumList qui définissent d'autres fonctions
* Compare pour la compatibilité des opérations sur les spectres
* - GEVPage (ambiguité : ONamed/TObject)
* - ajout d'une classe de requête de sélection de spectres à partir
* d'une liste ou d'un pad.
* - ajout d'une classe de requête de sélection de spectres pour les fit:
* spectre à fitter et spectre d'erreur.
* - modification de l'héritage de la classe SpectrumList : elle hérite
* maintenant de façon publique de OList (et non plus de façon protégée).
* - ajout des menus d'outils dans les pads pour fit de spectres
* (c'est la classe GEVRunBase qui mémorise les données des fits)
* - ajout d'une fonction utilisateur UserFit()
* - ajout des définitions des classes créées à partir des patrons
* de listes et vecteurs, dans le dictionnaire pour ROOT, afin de
* pouvoir utiliser leurs fonctions dans une session ROOT.
* - définition des options d'angles pour les tracés 3D:
* - dans les préférences
* - dans les propriétés de pad
* - dans les options de tracé des pages
* - ajout d'un menu de nettoyage complet d'une analyse
*
* janvier 2009: version 5.1
* - version 2.6 des bibliothèques additionnelles pour Root.
* - création d'un exécutable de base à partir de la classe GEVTreeRun
* - les histogrammes ROOT associés aux spectres sont mis de force dans
* en mémoire (répertoire interne ROOT de base) pour éviter qu'ils ne
* soient détruits s'ils sont créés après l'ouverture d'un fichier
* TTree en entrée (classe TreeRun).
* - ajout des fonctionnalités d'impression (menu de pages et préférences)
* - mémorisation de la taille des fenêtres de certaines requêtes
* - ajout des menus de pages pour la sélection d'un ensemble de spectres
* dans les pages, et pour la définitions des bornes de tracé dans
* toute la page.
* - modification de l'attente système dans l'interface graphique: un temps
* d'attente inférieur à 1 ms permet de libérer le système de façon
* fractionnée (au 100e de ms), ce qui permet d'éviter la limitation
* à des nombres entiers de ms.
* - ajout de nouveaux types de spectres (ce qui implique la modification
* de l'interface graphique pour la création des spectres):
* - spectres externes (histogrammes de fichiers ROOT)
* - spectres opérations:
* - spectres à 1 opérande: normalisé, racine carrée, inverse
* - spectres à 2 opérandes: sommes pondérée, produit, division
* - spectres utilisateur (1D ou 2D)
* - cela implique des modifications des classes de base pour les
* spectres qui nécessitent des infos supplémentaires pour accéder
* aux informations requises (en particulier les spectres opérandes)
* - correction bugs:
* - saugegarde des échelles log dans les pages
* - ajustement automatique des échelles log (pas encore parfait...)
* - déplacement en début et fin de liste des spectres et des filtres
* (dans la GUI)
*
* octobre 2008: version 5.0
* - numérotation des version unique par ensemble Event et bibliothèques
* dérivées (GanilRun, ...)
*
* octobre 2008: version 4.0
* - modification de la lecture des filtres (incompatible avec fichiers
* filtres des versions antérieures).
* \note pour réutiliser les filtres des versions précédentes, il
* suffit de supprimer le numéro du type de filtre, après le
* nom du filtre
* - correction du bug d'affichage logarithmique de spectres vides
*
* septembre 2008: version 3.2
* - modifications sur les filtres:
* classes de base des filtres logiques à 2 ou plusieurs opérandes;
* nouveaux types de filtres: Gate, MultiAnd et MultiOr
* - version 2.4 de JG_Root (modification sur l'édition des contours)
* - ajout des boutons Reset et Unzoom dans l'édition des contours
* - correction de l'affichage des contours dans GEVPadContourEditor
* (il n'étaient pas affichés tout de suite, au démarrage ou au
* changement de type: l'édition du canevas était bloquée par
* RGFrameEvent pour des événements extérieurs au pad).
* - ajout des préférences épaisseur de ligne des contours 1D (suite à
* la modification de l'éditeur de contours).
* - nouvelle classe (GEVParamDisplayer) pour affichage de la liste des
* paramètres, avec bouton pour l'écriture dans un fichier.
* - variable logique page_construct ajoutée à la classe GEVPageManager
* pour autoriser ou non la construction effective des pages.
* (par défaut, elle est mise à vrai pour GEVPageManager, et à faux pour
* GEVRunBase qui n'autorise la construction des pages que lorsque
* l'interface est construite).
*
* mai 2008: version 3.1
* - version 2.3 des bibliothèques additionnelles de ROOT
* (utilisant OTemplates 2.6).
* - TTree: possibilité de détermination du nom de fichier associé
* à un arbre à partir du nom de base du fichier d'entrée (un
* fichier arbre par run).
* - modification de la détermination des listes de fichiers en mode
* runList, afin de ne pas relancer systématiquement (à chaque nouveau
* numéro de run) une recherche de fichier avec appel aux fonctions
* système.
* - correction de la fonction ParamMultihit::Get() pour éviter le
* planter en cas de lecture dans un paramètre vide (message d'alerte).
* - ajout des boutons pour affichage de la structure d'événements
* dans l'interface graphique de base.
*
* mars 2008: version 3.0
* - version 2.2 des bibliothèques additionnelles de Root
* - les paramètres de type multihit ont un type de données unique
* (en vue de la création de TTree à partir des données)
* - les données DataI8 et DataUI8 sont définies
* - ajout de la possibilité de créer des arbres (TTree de ROOT) à
* partir des paramètres (classes TreeInfo, TreeParam et TreeList)
* et modification de l'interface graphique pour l'édition des
* arbres en sortie
* - création des classes d'analyse TreeRun et GEVTreeRun pour relire
* des fichiers ROOT contenant des TTree (en entrée), et du script
* de génération automatique des squelettes de code pour analyse
* - utilisation de chemins relatifs dans la sauvegarde des
* analyses complètes (structures)
*
* février 2008: version 2.2
* - modifications pour compilation avec version 5.16 de ROOT:
* - modification du constructeurs de recopie de GEVSpectrumSelectionWidget
* parce que les widgets de base (de ROOT: TGHorizontalFrame) ont des
* constructeurs de recopie protégés
* - ajout des fonctions GetFilterIndex() et GetContourIndex() pour les
* classes FilterList et EventManager
* - ajout de la fonction GetSpectrumIndex() pour les
* classes SpectrumList et EventManager
*
* février 2008: version 2.1
* - fonctions d'ajout de cadres à l'interface de base (Bottom, Side et Sub)
* - ajout d'un bouton de copie dans l'édition de spectres
* - ajout d'un identifiant de type de spectre dans les listes de
* sélection
* - correction des noms de contour dans la liste de sélection, en
* retour d'éditeur (dans les Pads)
* - correction d'un bug dans GEVPadContourEditor: la validation ne
* marchait pas pour l'édition d'un contour déjà existant
*
* janvier 2008: version 2.0
* - première version complète
* - basée sur libRoot2.0 et OTemplates 2.5
* - structures d'analyse complètes:
* - structure d'événements et paramètres
* - spectres
* - contours et filtres
* - interfaces graphiques complètes avec lecture et sauvegarde des
* structures
* - classes génériques pour les analyses: RunBase et GEVRunBase
*
* janvier 2007: versions 1.0, 1.1
* - premières versions de test
* - basées sur libRoot1.x (bibliothèques additionnelles pour root).
*/
44 * correction d'un bug dans la classe GEVPadAxisPropertiesEditor
45 * qui crashait à la construction
46 * - juin 2011:
47 * l'utilisation de TGFileDialog change le répetoire courant;
48 * lorsque les noms de fichiers d'entrée ou de sortie sont spécifiés en
49 * relatif, il est alors possible que le programme ne les retrouve plus.
50 * une variable "run_base_dir" est ajoutée à la classe de base
51 * RunBase, pour mémoriserle répertoire de démarrage et pouvoir
52 * repositionner le répertoire courant s'il est changé. * - ajout de l'export direct des pads individuels
* - version 2.8 des bibliothèques de classes patron.
* - version 2.11 des bibliothèques additionnelles de Root.
* - corrections mineures de compatibilité avec compilateur sur Fedora Core.
* - ajout d'une valeur par défaut à la remise à zéro des paramètres
* de l'événement.
* - affichage des coordonnées du curseur dans la barre de titre des pages
* graphiques, et ajout d'une fonction (slot) lorsque le bouton
* de la souris est clické, qui peut être surchargée dans les
* classes utilisateur.
*
* mars 2010: version 6.0
* - compilation différenciée selon les versions de Root
* - version 2.10 des bibliothèques additionnelles de Root.
* - ajout des histogrammes 3D (Tridim) et des classes de base
* correspondantes (Spec3Par et Spec3Dim).
* - modification des modes de tracé des spectres (classes de la GUI):
* utilisation des widgets de Root2.9.
* - correction d'un bug dans la suppression du filtrage d'un spectre
* (si aucun filtre sélectionné, il ne retirait pas le filtrage).
*
* août 2009: version 5.4
* - version 2.8 des bibliothèques additionnelles de Root.
* - ajout de la classes d'analyse RGuiTreeRun utilisable
* dans une session ROOT.
* - définition des classes de base pour analyses sans fichier
* d'entrée (simulations): SimulRun et GEVSimulRun.
* - définition des classes de base pour analyse des fichiers
* d'entrée de MIDAS (version de base): MidasRun et GuiMidasRun.
*
* mai 2009: version 5.3
* - possibilité de conditionner les spectres (pas les arbres) avec
* plusieurs filtres (création d'un filtre local de type ET logique
* pour les spectres en question).
* La classe graphique d'édition des spectres est modifiée en
* conséquence (GEVSpectrumEditor).
* - ajout d'un boutin d'information dans la création des arbres
* (classe GEVTreeCreator), et d'un bouton de sélection de fichier.
* - correction du bug: les titres des axes ne sont pas mis correctement
* à la lecture d'un fichier de spectre.
* - ajouts à la classe GEVRunBase:
* - d'une fonction utilisateur au rafraichissement automatique
* des pages dans GEVRunBase
* - d'une fonction Stop() demandant l'interuption de lecture
* - ajout d'une option \b verbose dans l'exécutable \b TreeRun
*
* avril 2009: version 5.2
* - version 2.7 des bibliothèques additionnelles pour Root, corrigeant
* les listes triées.
* cela nécessite de lever les ambiguités des fonctions Compare sur
* les classes suivantes:
* - Spectrum et SpectrumList qui définissent d'autres fonctions
* Compare pour la compatibilité des opérations sur les spectres
* - GEVPage (ambiguité : ONamed/TObject)
* - ajout d'une classe de requête de sélection de spectres à partir
* d'une liste ou d'un pad.
* - ajout d'une classe de requête de sélection de spectres pour les fit:
* spectre à fitter et spectre d'erreur.
* - modification de l'héritage de la classe SpectrumList : elle hérite
* maintenant de façon publique de OList (et non plus de façon protégée).
* - ajout des menus d'outils dans les pads pour fit de spectres
* (c'est la classe GEVRunBase qui mémorise les données des fits)
* - ajout d'une fonction utilisateur UserFit()
* - ajout des définitions des classes créées à partir des patrons
* de listes et vecteurs, dans le dictionnaire pour ROOT, afin de
* pouvoir utiliser leurs fonctions dans une session ROOT.
* - définition des options d'angles pour les tracés 3D:
* - dans les préférences
* - dans les propriétés de pad
* - dans les options de tracé des pages
* - ajout d'un menu de nettoyage complet d'une analyse
*
* janvier 2009: version 5.1
* - version 2.6 des bibliothèques additionnelles pour Root.
* - création d'un exécutable de base à partir de la classe GEVTreeRun
* - les histogrammes ROOT associés aux spectres sont mis de force dans
* en mémoire (répertoire interne ROOT de base) pour éviter qu'ils ne
* soient détruits s'ils sont créés après l'ouverture d'un fichier
* TTree en entrée (classe TreeRun).
* - ajout des fonctionnalités d'impression (menu de pages et préférences)
* - mémorisation de la taille des fenêtres de certaines requêtes
* - ajout des menus de pages pour la sélection d'un ensemble de spectres
* dans les pages, et pour la définitions des bornes de tracé dans
* toute la page.
* - modification de l'attente système dans l'interface graphique: un temps
* d'attente inférieur à 1 ms permet de libérer le système de façon
* fractionnée (au 100e de ms), ce qui permet d'éviter la limitation
* à des nombres entiers de ms.
* - ajout de nouveaux types de spectres (ce qui implique la modification
* de l'interface graphique pour la création des spectres):
* - spectres externes (histogrammes de fichiers ROOT)
* - spectres opérations:
* - spectres à 1 opérande: normalisé, racine carrée, inverse
* - spectres à 2 opérandes: sommes pondérée, produit, division
* - spectres utilisateur (1D ou 2D)
* - cela implique des modifications des classes de base pour les
* spectres qui nécessitent des infos supplémentaires pour accéder
* aux informations requises (en particulier les spectres opérandes)
* - correction bugs:
* - saugegarde des échelles log dans les pages
* - ajustement automatique des échelles log (pas encore parfait...)
* - déplacement en début et fin de liste des spectres et des filtres
* (dans la GUI)
*
* octobre 2008: version 5.0
* - numérotation des version unique par ensemble Event et bibliothèques
* dérivées (GanilRun, ...)
*
* octobre 2008: version 4.0
* - modification de la lecture des filtres (incompatible avec fichiers
* filtres des versions antérieures).
* \note pour réutiliser les filtres des versions précédentes, il
* suffit de supprimer le numéro du type de filtre, après le
* nom du filtre
* - correction du bug d'affichage logarithmique de spectres vides
*
* septembre 2008: version 3.2
* - modifications sur les filtres:
* classes de base des filtres logiques à 2 ou plusieurs opérandes;
* nouveaux types de filtres: Gate, MultiAnd et MultiOr
* - version 2.4 de JG_Root (modification sur l'édition des contours)
* - ajout des boutons Reset et Unzoom dans l'édition des contours
* - correction de l'affichage des contours dans GEVPadContourEditor
* (il n'étaient pas affichés tout de suite, au démarrage ou au
* changement de type: l'édition du canevas était bloquée par
* RGFrameEvent pour des événements extérieurs au pad).
* - ajout des préférences épaisseur de ligne des contours 1D (suite à
* la modification de l'éditeur de contours).
* - nouvelle classe (GEVParamDisplayer) pour affichage de la liste des
* paramètres, avec bouton pour l'écriture dans un fichier.
* - variable logique page_construct ajoutée à la classe GEVPageManager
* pour autoriser ou non la construction effective des pages.
* (par défaut, elle est mise à vrai pour GEVPageManager, et à faux pour
* GEVRunBase qui n'autorise la construction des pages que lorsque
* l'interface est construite).
*
* mai 2008: version 3.1
* - version 2.3 des bibliothèques additionnelles de ROOT
* (utilisant OTemplates 2.6).
* - TTree: possibilité de détermination du nom de fichier associé
* à un arbre à partir du nom de base du fichier d'entrée (un
* fichier arbre par run).
* - modification de la détermination des listes de fichiers en mode
* runList, afin de ne pas relancer systématiquement (à chaque nouveau
* numéro de run) une recherche de fichier avec appel aux fonctions
* système.
* - correction de la fonction ParamMultihit::Get() pour éviter le
* planter en cas de lecture dans un paramètre vide (message d'alerte).
* - ajout des boutons pour affichage de la structure d'événements
* dans l'interface graphique de base.
*
* mars 2008: version 3.0
* - version 2.2 des bibliothèques additionnelles de Root
* - les paramètres de type multihit ont un type de données unique
* (en vue de la création de TTree à partir des données)
* - les données DataI8 et DataUI8 sont définies
* - ajout de la possibilité de créer des arbres (TTree de ROOT) à
* partir des paramètres (classes TreeInfo, TreeParam et TreeList)
* et modification de l'interface graphique pour l'édition des
* arbres en sortie
* - création des classes d'analyse TreeRun et GEVTreeRun pour relire
* des fichiers ROOT contenant des TTree (en entrée), et du script
* de génération automatique des squelettes de code pour analyse
* - utilisation de chemins relatifs dans la sauvegarde des
* analyses complètes (structures)
*
* février 2008: version 2.2
* - modifications pour compilation avec version 5.16 de ROOT:
* - modification du constructeurs de recopie de GEVSpectrumSelectionWidget
* parce que les widgets de base (de ROOT: TGHorizontalFrame) ont des
* constructeurs de recopie protégés
* - ajout des fonctions GetFilterIndex() et GetContourIndex() pour les
* classes FilterList et EventManager
* - ajout de la fonction GetSpectrumIndex() pour les
* classes SpectrumList et EventManager
*
* février 2008: version 2.1
* - fonctions d'ajout de cadres à l'interface de base (Bottom, Side et Sub)
* - ajout d'un bouton de copie dans l'édition de spectres
* - ajout d'un identifiant de type de spectre dans les listes de
* sélection
* - correction des noms de contour dans la liste de sélection, en
* retour d'éditeur (dans les Pads)
* - correction d'un bug dans GEVPadContourEditor: la validation ne
* marchait pas pour l'édition d'un contour déjà existant
*
* janvier 2008: version 2.0
* - première version complète
* - basée sur libRoot2.0 et OTemplates 2.5
* - structures d'analyse complètes:
* - structure d'événements et paramètres
* - spectres
* - contours et filtres
* - interfaces graphiques complètes avec lecture et sauvegarde des
* structures
* - classes génériques pour les analyses: RunBase et GEVRunBase
*
* janvier 2007: versions 1.0, 1.1
* - premières versions de test
* - basées sur libRoot1.x (bibliothèques additionnelles pour root).
*/
53 * - ajout de l'export direct des pads individuels
54 * - version 2.8 des bibliothèques de classes patron.
55 * - version 2.11 des bibliothèques additionnelles de Root.
56 * - corrections mineures de compatibilité avec compilateur sur Fedora Core.
57 * - ajout d'une valeur par défaut à la remise à zéro des paramètres
58 * de l'événement.
59 * - affichage des coordonnées du curseur dans la barre de titre des pages
60 * graphiques, et ajout d'une fonction (slot) lorsque le bouton
61 * de la souris est clické, qui peut être surchargée dans les
62 * classes utilisateur.
63 *
64 * mars 2010: version 6.0
65 * - compilation différenciée selon les versions de Root
66 * - version 2.10 des bibliothèques additionnelles de Root.
67 * - ajout des histogrammes 3D (Tridim) et des classes de base
68 * correspondantes (Spec3Par et Spec3Dim).
69 * - modification des modes de tracé des spectres (classes de la GUI):
70 * utilisation des widgets de Root2.9.
71 * - correction d'un bug dans la suppression du filtrage d'un spectre
72 * (si aucun filtre sélectionné, il ne retirait pas le filtrage).
73 *
74 * août 2009: version 5.4
75 * - version 2.8 des bibliothèques additionnelles de Root.
76 * - ajout de la classes d'analyse RGuiTreeRun utilisable
77 * dans une session ROOT.
78 * - définition des classes de base pour analyses sans fichier
79 * d'entrée (simulations): SimulRun et GEVSimulRun.
80 * - définition des classes de base pour analyse des fichiers
81 * d'entrée de MIDAS (version de base): MidasRun et GuiMidasRun.
82 *
83 * mai 2009: version 5.3
84 * - possibilité de conditionner les spectres (pas les arbres) avec
85 * plusieurs filtres (création d'un filtre local de type ET logique
86 * pour les spectres en question).
87 * La classe graphique d'édition des spectres est modifiée en
88 * conséquence (GEVSpectrumEditor).
89 * - ajout d'un boutin d'information dans la création des arbres
90 * (classe GEVTreeCreator), et d'un bouton de sélection de fichier.
91 * - correction du bug: les titres des axes ne sont pas mis correctement
92 * à la lecture d'un fichier de spectre.
93 * - ajouts à la classe GEVRunBase:
94 * - d'une fonction utilisateur au rafraichissement automatique
95 * des pages dans GEVRunBase
96 * - d'une fonction Stop() demandant l'interuption de lecture
97 * - ajout d'une option \b verbose dans l'exécutable \b TreeRun
98 *
99 * avril 2009: version 5.2
100 * - version 2.7 des bibliothèques additionnelles pour Root, corrigeant
101 * les listes triées.
102 * cela nécessite de lever les ambiguités des fonctions Compare sur
103 * les classes suivantes:
104 * - Spectrum et SpectrumList qui définissent d'autres fonctions
105 * Compare pour la compatibilité des opérations sur les spectres
106 * - GEVPage (ambiguité : ONamed/TObject)
107 * - ajout d'une classe de requête de sélection de spectres à partir
108 * d'une liste ou d'un pad.
109 * - ajout d'une classe de requête de sélection de spectres pour les fit:
110 * spectre à fitter et spectre d'erreur.
111 * - modification de l'héritage de la classe SpectrumList : elle hérite
112 * maintenant de façon publique de OList (et non plus de façon protégée).
113 * - ajout des menus d'outils dans les pads pour fit de spectres
114 * (c'est la classe GEVRunBase qui mémorise les données des fits)
115 * - ajout d'une fonction utilisateur UserFit()
116 * - ajout des définitions des classes créées à partir des patrons
117 * de listes et vecteurs, dans le dictionnaire pour ROOT, afin de
118 * pouvoir utiliser leurs fonctions dans une session ROOT.
119 * - définition des options d'angles pour les tracés 3D:
120 * - dans les préférences
121 * - dans les propriétés de pad
122 * - dans les options de tracé des pages
123 * - ajout d'un menu de nettoyage complet d'une analyse
124 *
125 * janvier 2009: version 5.1
126 * - version 2.6 des bibliothèques additionnelles pour Root.
127 * - création d'un exécutable de base à partir de la classe GEVTreeRun
128 * - les histogrammes ROOT associés aux spectres sont mis de force dans
129 * en mémoire (répertoire interne ROOT de base) pour éviter qu'ils ne
130 * soient détruits s'ils sont créés après l'ouverture d'un fichier
131 * TTree en entrée (classe TreeRun).
132 * - ajout des fonctionnalités d'impression (menu de pages et préférences)
133 * - mémorisation de la taille des fenêtres de certaines requêtes
134 * - ajout des menus de pages pour la sélection d'un ensemble de spectres
135 * dans les pages, et pour la définitions des bornes de tracé dans
136 * toute la page.
137 * - modification de l'attente système dans l'interface graphique: un temps
138 * d'attente inférieur à 1 ms permet de libérer le système de façon
139 * fractionnée (au 100e de ms), ce qui permet d'éviter la limitation
140 * à des nombres entiers de ms.
141 * - ajout de nouveaux types de spectres (ce qui implique la modification
142 * de l'interface graphique pour la création des spectres):
143 * - spectres externes (histogrammes de fichiers ROOT)
148 * - cela implique des modifications des classes de base pour les
149 * spectres qui nécessitent des infos supplémentaires pour accéder
150 * aux informations requises (en particulier les spectres opérandes)
151 * - correction bugs:
152 * - saugegarde des échelles log dans les pages
153 * - ajustement automatique des échelles log (pas encore parfait...)
154 * - déplacement en début et fin de liste des spectres et des filtres
155 * (dans la GUI)
156 *
157 * octobre 2008: version 5.0
158 * - numérotation des version unique par ensemble Event et bibliothèques
159 * dérivées (GanilRun, ...)
160 *
161 * octobre 2008: version 4.0
162 * - modification de la lecture des filtres (incompatible avec fichiers
163 * filtres des versions antérieures).
164 * \note pour réutiliser les filtres des versions précédentes, il
165 * suffit de supprimer le numéro du type de filtre, après le
166 * nom du filtre
167 * - correction du bug d'affichage logarithmique de spectres vides
168 *
169 * septembre 2008: version 3.2
170 * - modifications sur les filtres:
171 * classes de base des filtres logiques à 2 ou plusieurs opérandes;
172 * nouveaux types de filtres: Gate, MultiAnd et MultiOr
173 * - version 2.4 de JG_Root (modification sur l'édition des contours)
174 * - ajout des boutons Reset et Unzoom dans l'édition des contours
175 * - correction de l'affichage des contours dans GEVPadContourEditor
176 * (il n'étaient pas affichés tout de suite, au démarrage ou au
177 * changement de type: l'édition du canevas était bloquée par
178 * RGFrameEvent pour des événements extérieurs au pad).
179 * - ajout des préférences épaisseur de ligne des contours 1D (suite à * la modification de l'éditeur de contours).
* - nouvelle classe (GEVParamDisplayer) pour affichage de la liste des
* paramètres, avec bouton pour l'écriture dans un fichier.
* - variable logique page_construct ajoutée à la classe GEVPageManager
* pour autoriser ou non la construction effective des pages.
* (par défaut, elle est mise à vrai pour GEVPageManager, et à faux pour
* GEVRunBase qui n'autorise la construction des pages que lorsque
* l'interface est construite).
*
* mai 2008: version 3.1
* - version 2.3 des bibliothèques additionnelles de ROOT
* (utilisant OTemplates 2.6).
* - TTree: possibilité de détermination du nom de fichier associé
* à un arbre à partir du nom de base du fichier d'entrée (un
* fichier arbre par run).
* - modification de la détermination des listes de fichiers en mode
* runList, afin de ne pas relancer systématiquement (à chaque nouveau
* numéro de run) une recherche de fichier avec appel aux fonctions
* système.
* - correction de la fonction ParamMultihit::Get() pour éviter le
* planter en cas de lecture dans un paramètre vide (message d'alerte).
* - ajout des boutons pour affichage de la structure d'événements
* dans l'interface graphique de base.
*
* mars 2008: version 3.0
* - version 2.2 des bibliothèques additionnelles de Root
* - les paramètres de type multihit ont un type de données unique
* (en vue de la création de TTree à partir des données)
* - les données DataI8 et DataUI8 sont définies
* - ajout de la possibilité de créer des arbres (TTree de ROOT) à
* partir des paramètres (classes TreeInfo, TreeParam et TreeList)
* et modification de l'interface graphique pour l'édition des
* arbres en sortie
* - création des classes d'analyse TreeRun et GEVTreeRun pour relire
* des fichiers ROOT contenant des TTree (en entrée), et du script
* de génération automatique des squelettes de code pour analyse
* - utilisation de chemins relatifs dans la sauvegarde des
* analyses complètes (structures)
*
* février 2008: version 2.2
* - modifications pour compilation avec version 5.16 de ROOT:
* - modification du constructeurs de recopie de GEVSpectrumSelectionWidget
* parce que les widgets de base (de ROOT: TGHorizontalFrame) ont des
* constructeurs de recopie protégés
* - ajout des fonctions GetFilterIndex() et GetContourIndex() pour les
* classes FilterList et EventManager
* - ajout de la fonction GetSpectrumIndex() pour les
* classes SpectrumList et EventManager
*
* février 2008: version 2.1
* - fonctions d'ajout de cadres à l'interface de base (Bottom, Side et Sub)
* - ajout d'un bouton de copie dans l'édition de spectres
* - ajout d'un identifiant de type de spectre dans les listes de
* sélection
* - correction des noms de contour dans la liste de sélection, en
* retour d'éditeur (dans les Pads)
* - correction d'un bug dans GEVPadContourEditor: la validation ne
* marchait pas pour l'édition d'un contour déjà existant
*
* janvier 2008: version 2.0
* - première version complète
* - basée sur libRoot2.0 et OTemplates 2.5
* - structures d'analyse complètes:
* - structure d'événements et paramètres
* - spectres
* - contours et filtres
* - interfaces graphiques complètes avec lecture et sauvegarde des
* structures
* - classes génériques pour les analyses: RunBase et GEVRunBase
*
* janvier 2007: versions 1.0, 1.1
* - premières versions de test
* - basées sur libRoot1.x (bibliothèques additionnelles pour root).
*/
180 * la modification de l'éditeur de contours).
181 * - nouvelle classe (GEVParamDisplayer) pour affichage de la liste des
182 * paramètres, avec bouton pour l'écriture dans un fichier.
183 * - variable logique page_construct ajoutée à la classe GEVPageManager
184 * pour autoriser ou non la construction effective des pages.
185 * (par défaut, elle est mise à vrai pour GEVPageManager, et à faux pour
186 * GEVRunBase qui n'autorise la construction des pages que lorsque
187 * l'interface est construite).
188 *
189 * mai 2008: version 3.1
190 * - version 2.3 des bibliothèques additionnelles de ROOT
191 * (utilisant OTemplates 2.6).
192 * - TTree: possibilité de détermination du nom de fichier associé * à un arbre à partir du nom de base du fichier d'entrée (un
* fichier arbre par run).
* - modification de la détermination des listes de fichiers en mode
* runList, afin de ne pas relancer systématiquement (à chaque nouveau
* numéro de run) une recherche de fichier avec appel aux fonctions
* système.
* - correction de la fonction ParamMultihit::Get() pour éviter le
* planter en cas de lecture dans un paramètre vide (message d'alerte).
* - ajout des boutons pour affichage de la structure d'événements
* dans l'interface graphique de base.
*
* mars 2008: version 3.0
* - version 2.2 des bibliothèques additionnelles de Root
* - les paramètres de type multihit ont un type de données unique
* (en vue de la création de TTree à partir des données)
* - les données DataI8 et DataUI8 sont définies
* - ajout de la possibilité de créer des arbres (TTree de ROOT) à
* partir des paramètres (classes TreeInfo, TreeParam et TreeList)
* et modification de l'interface graphique pour l'édition des
* arbres en sortie
* - création des classes d'analyse TreeRun et GEVTreeRun pour relire
* des fichiers ROOT contenant des TTree (en entrée), et du script
* de génération automatique des squelettes de code pour analyse
* - utilisation de chemins relatifs dans la sauvegarde des
* analyses complètes (structures)
*
* février 2008: version 2.2
* - modifications pour compilation avec version 5.16 de ROOT:
* - modification du constructeurs de recopie de GEVSpectrumSelectionWidget
* parce que les widgets de base (de ROOT: TGHorizontalFrame) ont des
* constructeurs de recopie protégés
* - ajout des fonctions GetFilterIndex() et GetContourIndex() pour les
* classes FilterList et EventManager
* - ajout de la fonction GetSpectrumIndex() pour les
* classes SpectrumList et EventManager
*
* février 2008: version 2.1
* - fonctions d'ajout de cadres à l'interface de base (Bottom, Side et Sub)
* - ajout d'un bouton de copie dans l'édition de spectres
* - ajout d'un identifiant de type de spectre dans les listes de
* sélection
* - correction des noms de contour dans la liste de sélection, en
* retour d'éditeur (dans les Pads)
* - correction d'un bug dans GEVPadContourEditor: la validation ne
* marchait pas pour l'édition d'un contour déjà existant
*
* janvier 2008: version 2.0
* - première version complète
* - basée sur libRoot2.0 et OTemplates 2.5
* - structures d'analyse complètes:
* - structure d'événements et paramètres
* - spectres
* - contours et filtres
* - interfaces graphiques complètes avec lecture et sauvegarde des
* structures
* - classes génériques pour les analyses: RunBase et GEVRunBase
*
* janvier 2007: versions 1.0, 1.1
* - premières versions de test
* - basées sur libRoot1.x (bibliothèques additionnelles pour root).
*/
193 * à un arbre à partir du nom de base du fichier d'entrée (un
194 * fichier arbre par run).
195 * - modification de la détermination des listes de fichiers en mode
196 * runList, afin de ne pas relancer systématiquement (à chaque nouveau
197 * numéro de run) une recherche de fichier avec appel aux fonctions
198 * système.
199 * - correction de la fonction ParamMultihit::Get() pour éviter le
200 * planter en cas de lecture dans un paramètre vide (message d'alerte).
201 * - ajout des boutons pour affichage de la structure d'événements
202 * dans l'interface graphique de base.
203 *
204 * mars 2008: version 3.0
205 * - version 2.2 des bibliothèques additionnelles de Root
206 * - les paramètres de type multihit ont un type de données unique
207 * (en vue de la création de TTree à partir des données)
208 * - les données DataI8 et DataUI8 sont définies
209 * - ajout de la possibilité de créer des arbres (TTree de ROOT) à * partir des paramètres (classes TreeInfo, TreeParam et TreeList)
* et modification de l'interface graphique pour l'édition des
* arbres en sortie
* - création des classes d'analyse TreeRun et GEVTreeRun pour relire
* des fichiers ROOT contenant des TTree (en entrée), et du script
* de génération automatique des squelettes de code pour analyse
* - utilisation de chemins relatifs dans la sauvegarde des
* analyses complètes (structures)
*
* février 2008: version 2.2
* - modifications pour compilation avec version 5.16 de ROOT:
* - modification du constructeurs de recopie de GEVSpectrumSelectionWidget
* parce que les widgets de base (de ROOT: TGHorizontalFrame) ont des
* constructeurs de recopie protégés
* - ajout des fonctions GetFilterIndex() et GetContourIndex() pour les
* classes FilterList et EventManager
* - ajout de la fonction GetSpectrumIndex() pour les
* classes SpectrumList et EventManager
*
* février 2008: version 2.1
* - fonctions d'ajout de cadres à l'interface de base (Bottom, Side et Sub)
* - ajout d'un bouton de copie dans l'édition de spectres
* - ajout d'un identifiant de type de spectre dans les listes de
* sélection
* - correction des noms de contour dans la liste de sélection, en
* retour d'éditeur (dans les Pads)
* - correction d'un bug dans GEVPadContourEditor: la validation ne
* marchait pas pour l'édition d'un contour déjà existant
*
* janvier 2008: version 2.0
* - première version complète
* - basée sur libRoot2.0 et OTemplates 2.5
* - structures d'analyse complètes:
* - structure d'événements et paramètres
* - spectres
* - contours et filtres
* - interfaces graphiques complètes avec lecture et sauvegarde des
* structures
* - classes génériques pour les analyses: RunBase et GEVRunBase
*
* janvier 2007: versions 1.0, 1.1
* - premières versions de test
* - basées sur libRoot1.x (bibliothèques additionnelles pour root).
*/
210 * partir des paramètres (classes TreeInfo, TreeParam et TreeList)
211 * et modification de l'interface graphique pour l'édition des
212 * arbres en sortie
213 * - création des classes d'analyse TreeRun et GEVTreeRun pour relire
214 * des fichiers ROOT contenant des TTree (en entrée), et du script
215 * de génération automatique des squelettes de code pour analyse
216 * - utilisation de chemins relatifs dans la sauvegarde des
217 * analyses complètes (structures)
218 *
219 * février 2008: version 2.2
220 * - modifications pour compilation avec version 5.16 de ROOT:
221 * - modification du constructeurs de recopie de GEVSpectrumSelectionWidget
222 * parce que les widgets de base (de ROOT: TGHorizontalFrame) ont des
223 * constructeurs de recopie protégés
224 * - ajout des fonctions GetFilterIndex() et GetContourIndex() pour les
225 * classes FilterList et EventManager
226 * - ajout de la fonction GetSpectrumIndex() pour les
227 * classes SpectrumList et EventManager
228 *
229 * février 2008: version 2.1
230 * - fonctions d'ajout de cadres à l'interface de base (Bottom, Side et Sub)
231 * - ajout d'un bouton de copie dans l'édition de spectres
232 * - ajout d'un identifiant de type de spectre dans les listes de
233 * sélection
234 * - correction des noms de contour dans la liste de sélection, en
235 * retour d'éditeur (dans les Pads)
236 * - correction d'un bug dans GEVPadContourEditor: la validation ne
237 * marchait pas pour l'édition d'un contour déjà existant
238 *
239 * janvier 2008: version 2.0
240 * - première version complète
241 * - basée sur libRoot2.0 et OTemplates 2.5
242 * - structures d'analyse complètes:
243 * - structure d'événements et paramètres
244 * - spectres
245 * - contours et filtres
246 * - interfaces graphiques complètes avec lecture et sauvegarde des
247 * structures
248 * - classes génériques pour les analyses: RunBase et GEVRunBase
249 *
250 * janvier 2007: versions 1.0, 1.1
251 * - premières versions de test
252 * - basées sur libRoot1.x (bibliothèques additionnelles pour root).