Analysis  version 7.0 - august 2014
TreeRunInfo.hh
Go to the documentation of this file.
1 //======================================================================
2 /*! \file TreeRunInfo.hh
3  *
4  * Déclaration de la classe TreeRunInfo qui contient les données
5  * de la structure d'un TTree, pour la classe TreeRun.
6  */
7 //======================================================================
8 
9 
10 #ifndef TREE_RUN_INFO_HH
11 #define TREE_RUN_INFO_HH
12 
13 #include "EventCommon.hh"
14 #include "RString.hh"
15 #include "EventManager.hh"
16 
17 #include <TTree.h>
18 #include <TBranch.h>
19 #include <TLeaf.h>
20 #include <TFile.h>
21 #include <TKey.h>
22 
23 class TreeRun;
24 
25 /*! \class TreeRunInfo
26  *
27  * Classe qui contient les informations relatives à la structure du
28  * TTree de ROOT en entrée de la classe d'analyse TreeRun.
29  * Cette classe a pour vocation de vérifier la cohérence d'un ensemble
30  * de fichiers, en assurant que leur structure est identique.
31  *
32  */
34 {
35 //----------------------------------------------------------------------
36  /*! \object_doc */
38 //----------------------------------------------------------------------
39 
40  friend class TreeRun;
41 
42  protected:
43 
44  string tree_name; ///< nom du TTree
45  string tree_dir; ///< répertoire du TTree dans l'arborescence ROOT
46  TTree *tree_ptr; ///< pointeur sur le TTree de ROOT
47  TFile *tree_file; ///< pointeur sur le fichier ROOT
48 
49  UInt_t event_tot; ///< nombre d'événements dans le fichier
50  UInt_t tree_param_num; ///< nombre de paramètres du TTree
51 
52  // données pour les paramètres
53 #ifndef __MAKECINT__
54  // info branches
55  UInt_t branch_num; ///< nombre de branches
56  string *branch_name; ///< table des noms des branches
57  Int_t *branch_size; ///< table des tailles des branches (0 pour une branche variable)
58  bool *branch_var; ///< table des test taille variable des branches
59  TBranch **branch_ptr; ///< table des pointeurs des branches
60  char **branch_buffer; ///< table des buffers de données par branche
61  UInt_t *branch_leaf_num; ///< table des nombres de feuilles par branche
62 
63  // infos feuilles
64  TLeaf ***branch_leaf_ptr; ///< tables des pointeurs des feuilles pour chaque branche
65  Int_t **branch_leaf_off; ///< tables des positions des données des feuilles pour chaque branche
66  string **branch_leaf_name; ///< tables des noms des feuilles pour chaque branche
67  string **branch_leaf_type; ///< tables des type de données des feuilles pour chaque branche
68  char **branch_leaf_tid; ///< tables des identifiants de type des données des feuilles pour chaque branche
69  Int_t **branch_leaf_size; ///< tables des tailles de type des données des feuilles pour chaque branche
70  Int_t **branch_leaf_dim; ///< tables des dimensions (nombre d'éléments) des feuilles pour chaque branche
71  TLeaf ***branch_leaf_ref; ///< tables des pointeurs des feuilles indiquant la dimension (taille variable)
72  Param ***branch_leaf_par; ///< tables des paramètres associés feuilles pour chaque branche
73 #endif
74 
75  public:
76  // constructeur par défaut
77  TreeRunInfo ( );
78 
79  // destructeur
80  virtual ~TreeRunInfo ( );
81 
82  // constructeur de recopie
83  TreeRunInfo ( const TreeRunInfo &original );
84 
85  protected:
86  // operateur de d'affectation
87  TreeRunInfo & operator = ( const TreeRunInfo &original );
88 
89  // copie seulement l'info minimum: les pointeurs, ...
90  virtual void CopyData ( const TreeRunInfo &original );
91 
92  // fonction qui nettoie les pointeurs
93  virtual void Clear ( );
94 
95 
96  public:
97  // operateur de comparaison
98  virtual bool operator == ( const TreeRunInfo & );
99 
100  // Opérateur de comparaison (non-équivalence).
101  virtual bool operator != ( const TreeRunInfo &data );
102 
103 
104 //----------------------------------------------------------------------
105 // pour ROOT...
106  public:
107  /*! Définition à usage de ROOT... */
109 };
110 
111 
112 //======================================================================
113 // FONCTIONS INLINE
114 //======================================================================
115 
116 /*! Opérateur de comparaison (non-équivalence).
117  * \param data donnée avec laquelle on teste l'équivalence
118  */
119 inline bool TreeRunInfo::operator != ( const TreeRunInfo &data )
120  { return ( ! (*this == data) ); }
121 
122 
123 //======================================================================
124 #endif
125 
GObject(TreeRunInfo)
string tree_name
nom du TTree
Definition: TreeRunInfo.hh:44
TBranch ** branch_ptr
table des pointeurs des branches
Definition: TreeRunInfo.hh:59
string * branch_name
table des noms des branches
Definition: TreeRunInfo.hh:56
Definition: TreeRunInfo.hh:33
UInt_t event_tot
nombre d&#39;événements dans le fichier
Definition: TreeRunInfo.hh:49
ClassDef(TreeRunInfo, 0)
virtual ~TreeRunInfo()
Definition: TreeRunInfo.cpp:122
TreeRunInfo()
Definition: TreeRunInfo.cpp:17
char ** branch_buffer
table des buffers de données par branche
Definition: TreeRunInfo.hh:60
string ** branch_leaf_name
tables des noms des feuilles pour chaque branche
Definition: TreeRunInfo.hh:66
TreeRunInfo & operator=(const TreeRunInfo &original)
Definition: TreeRunInfo.cpp:131
TTree * tree_ptr
pointeur sur le TTree de ROOT
Definition: TreeRunInfo.hh:46
char ** branch_leaf_tid
tables des identifiants de type des données des feuilles pour chaque branche
Definition: TreeRunInfo.hh:68
TFile * tree_file
pointeur sur le fichier ROOT
Definition: TreeRunInfo.hh:47
TLeaf *** branch_leaf_ref
tables des pointeurs des feuilles indiquant la dimension (taille variable)
Definition: TreeRunInfo.hh:71
Definition: TreeRun.hh:31
string tree_dir
répertoire du TTree dans l&#39;arborescence ROOT
Definition: TreeRunInfo.hh:45
virtual void Clear()
Definition: TreeRunInfo.cpp:243
string ** branch_leaf_type
tables des type de données des feuilles pour chaque branche
Definition: TreeRunInfo.hh:67
UInt_t branch_num
nombre de branches
Definition: TreeRunInfo.hh:55
Definition: Param.hh:83
Int_t ** branch_leaf_dim
tables des dimensions (nombre d&#39;éléments) des feuilles pour chaque branche
Definition: TreeRunInfo.hh:70
virtual bool operator==(const TreeRunInfo &)
Definition: TreeRunInfo.cpp:305
UInt_t * branch_leaf_num
table des nombres de feuilles par branche
Definition: TreeRunInfo.hh:61
Int_t ** branch_leaf_size
tables des tailles de type des données des feuilles pour chaque branche
Definition: TreeRunInfo.hh:69
UInt_t tree_param_num
nombre de paramètres du TTree
Definition: TreeRunInfo.hh:50
Int_t * branch_size
table des tailles des branches (0 pour une branche variable)
Definition: TreeRunInfo.hh:57
Int_t ** branch_leaf_off
tables des positions des données des feuilles pour chaque branche
Definition: TreeRunInfo.hh:65
TLeaf *** branch_leaf_ptr
tables des pointeurs des feuilles pour chaque branche
Definition: TreeRunInfo.hh:64
bool * branch_var
table des test taille variable des branches
Definition: TreeRunInfo.hh:58
Param *** branch_leaf_par
tables des paramètres associés feuilles pour chaque branche
Definition: TreeRunInfo.hh:72
virtual void CopyData(const TreeRunInfo &original)
Definition: TreeRunInfo.cpp:215
virtual bool operator!=(const TreeRunInfo &data)
Definition: TreeRunInfo.hh:119