Analysis  version 7.0 - august 2014
TreeInfo Class Reference

#include <TreeInfo.hh>

Inheritance diagram for TreeInfo:

Public Member Functions

 TreeInfo (const string &t_name, const EventManager *mgr, const string &f_name="", UInt_t n_max=10000000)
 
 TreeInfo (const TreeInfo &original)
 
virtual ~TreeInfo ()
 
virtual Int_t GetFileNumber () const
 
virtual void SetFileNumber (const Int_t f_num, Int_t f_sub=0)
 
virtual string GetFileBase () const
 
virtual void SetFileBase (const string &f_base)
 
virtual Int_t SetTreeFile (const string &f_name, const UInt_t n_max)
 
virtual string GetTreeFile () const
 
virtual string GetFileName () const
 
virtual UInt_t GetFileMode () const
 
virtual TTree * GetTTreePtr () const
 
virtual UInt_t GetMaxEvent () const
 
virtual UInt_t GetParamNumber () const
 
virtual string GetParamName (const UInt_t par_num) const
 
virtual Bool_t AddParam (const Param *p_ptr)
 
virtual Bool_t AddParam (const string &p_name)
 
virtual Bool_t AddParam (const Int_t p_num)
 
virtual Int_t AddParamRange (const Int_t p1, const Int_t p2)
 
virtual Int_t AddAllParam ()
 
virtual Int_t Init ()
 
virtual Int_t Open ()
 
virtual Int_t Close ()
 
virtual Bool_t IsOpen ()
 
virtual Bool_t IsClosed ()
 
virtual Bool_t IsLocked ()
 
const ParamGetEventParamPtr (const u_int par_num) const
 
const ParamGetEventParamPtr (const string &par_name) const
 
TreeParamGetTreeParamPtr (const u_int par_num) const
 
TreeParamGetTreeParamPtr (const string &par_name) const
 
TreeParamFind (const string &par_name) const
 
TreeParamFind (const Int_t par_num) const
 
TreeParamFind (const Param *par_ptr) const
 
void Start ()
 
void Stop ()
 
void Suspend ()
 
bool IsStarted () const
 
bool IsStopped () const
 
bool IsSuspended () const
 
bool IsIncremented () const
 
virtual bool UsesContour (const RContour *ct, const bool rec=true) const
 
virtual bool UsesFilter (const Filter *f, const bool rec=true) const
 
bool FilterCheck () const
 
virtual void Increment ()
 
string GetFilterName () const
 
virtual string FilterInfo () const
 
virtual const FilterGetFilterPtr () const
 
virtual void SetFilter (const Filter *f)
 
virtual void ResetFilter ()
 
virtual bool Write (ostream &os) const
 
virtual bool Write (FILE *fptr) const
 
 ClassDef (TreeInfo, 0)
 

Static Public Member Functions

static TreeInfoReadTreeInfo (FILE *fptr, const EventManager *mgr, int &error)
 

Protected Member Functions

bool FilterFastCheck () const
 
virtual void IncrementFast ()
 
virtual void IncrementTree ()
 

Protected Attributes

const EventManagerevt_mgr
 pointeur sur le gestionnaire d'événement
 
RString tree_file
 nom du fichier de sortie du TTree
 
string file_name
 nom effectif du fichier en cours
 
string tree_dir
 répertoire du TTree dans l'arborescence ROOT
 
TTree * tree_ptr
 pointeur sur le TTree de ROOT
 
TFile * file_ptr
 pointeur sur le fichier ROOT associé
 
Int_t file_number
 numéro de fichier associé
 
Int_t file_sub
 numéro de fichier associé
 
string file_base
 nom de base de fichier associé
 
UInt_t tree_mode
 mode de création des fichiers
 
UInt_t event_max
 nombre maxi d'événements
 
UInt_t event_num
 nombre d'événements déjà placés
 
UInt_t branch_num
 nombre de branches
 
string * branch_name
 table des noms des branches
 
string * branch_def
 table des définitions des branches
 
Int_t * branch_size
 table des tailles des branches (0 pour une branche variable)
 
TBranch ** branch_ptr
 table des pointeurs des branches
 
char ** branch_buffer
 table des buffers de données par branche
 
Int_t * branch_leaf_num
 table des nombres de feuilles par branche
 
TLeaf *** branch_leaf_ptr
 tables des pointeurs des feuilles pour chaque branche
 
Int_t ** branch_leaf_off
 tables des positions des données des feuilles pour chaque branche
 
Int_t ** branch_leaf_size
 tables des tailles de type des données des feuilles pour chaque branche
 
const Param *** branch_leaf_par
 tables des paramètres associés feuilles pour chaque branche
 
Bool_t ** branch_leaf_cnt
 tables des indicateur de compteur pour un paramètre multihit
 
u_int status
 mot d'état de l'arbre
 
const Filter ** filter_ptr
 pointeur sur le filtre associé
 

Private Types

typedef GListIterT< TreeParamiterator
 Définition du type itérateur pour les listes de paramètres d'arbres.
 

Private Member Functions

 GObject (TreeInfo)
 

Friends

class TreeList
 
class FilterList
 

Detailed Description

Cette classe sert d'interface pour créer des fichiers contenant des TTree pour ROOT dans des fichiers séparés. A chaque arbre est associé un ensemble de fichiers numérotés, selon le mode choisi:

  • un seul fichier pour toute l'analyse
  • un fichier pour chaque run de données
  • un fichier par groupe d'événement, défini par un nombre maximum d'événements par fichier Le mode est défini à partir du nom de fichier et du nombre maxi d'événements (voir fonction SetTreeFile):
  • si le nom de fichier ne contient pas de format de type nF alors c'est un seul fichier pour toute l'analyse
  • si le nom contient un format nF, alors si le nombre maximum d'événements est 0, c'est un fichier par run (et le format est remplacé par le numéro de fichier), et si ce nombre est différent de 0, c'est un fichier par paquet d'événements
  • si le nom contient le format B, alors c'est un fichier par run, et le format est remplacé par le nom de base du fichier d'entrée.
Note
En mode runFileNumberTree (un fichier par run), le numéro de fichier doit être défini extérieurement à l'ouverture des fichiers de runs.

Les paramètres d'arbre (classe TreeParam) ne servent que pendant la phase de création de l'arbre. Ensuite, toutes les informations sont reportées dans les tables de la classe TreeInfo.

L'arbre créé n'a qu'une branche pour des paramètres simples. Pour des paramètres multihit (de dimension variable), une autre branche est créée automatiquement, la première branche ne contenant que le nombre de valeurs. Pour les paramètres multihit, toutes les données de l'arbre doivent avoir le même type.

Constructor & Destructor Documentation

TreeInfo::TreeInfo ( const string &  t_name,
const EventManager mgr,
const string &  f_name = "",
UInt_t  n_max = 10000000 
)

Constructeur. Si le nom de fichier n'est pas spécifié (chaîne vide), il est défini automatiquement à partir du nom de l'arbre et du mode de fichier.

Parameters
t_namenom de l'arbre
mgrpointeur sur le gestionnaire d'événement
f_namenom du fichier associé
n_maxnombre maxi d'événements par fichier (mode maxEventTree)

References branch_buffer, branch_def, branch_leaf_cnt, branch_leaf_num, branch_leaf_par, branch_leaf_ptr, branch_leaf_size, branch_name, branch_num, branch_ptr, branch_size, event_num, evt_mgr, ExportName(), file_base, file_name, file_number, file_ptr, file_sub, filter_ptr, SetTreeFile(), status, tree_file, tree_mode, and tree_ptr.

Referenced by ReadTreeInfo().

TreeInfo::~TreeInfo ( )
virtual

Member Function Documentation

TreeInfo::GObject ( TreeInfo  )
private

Macro from GCpp library that defines the following functions:

  • ClassName(): return the real class name of the object
  • StaticClassName(): return the used class name of the object (that may be a base class of the real object).
  • IsInstanceOf<T>(): return true if the current object is an instance of the template class name argument
  • Clone(): return an allocated copy of the object.
Int_t TreeInfo::GetFileNumber ( ) const
inlinevirtual

Retourne le numéro de fichier associé à l'arbre.

References file_number.

void TreeInfo::SetFileNumber ( const Int_t  f_num,
Int_t  f_sub = 0 
)
virtual

Fonction qui définit le numéro de fichier: cette fonction n'est effective que si le mode de fichier est runFileNumberTree, auquel cas elle doit être appelée après l'ouverture des fichiers d'entrée. Le fichier du TTree doit être fermé.

Parameters
f_numnuméro de fichier
f_subsous-numéro de fichier

References file_number, file_ptr, file_sub, and tree_mode.

string TreeInfo::GetFileBase ( ) const
inlinevirtual

Retourne le nom de base de fichier associé à l'arbre.

References file_base.

void TreeInfo::SetFileBase ( const string &  f_base)
virtual

Fonction qui définit le nom de base de fichier: cette fonction n'est effective que si le mode de fichier est runFileNameTree, auquel cas elle doit être appelée après l'ouverture des fichiers d'entrée. Le fichier du TTree doit être fermé.

Parameters
f_basenom de base de fichier

References file_base, file_ptr, and tree_mode.

Int_t TreeInfo::SetTreeFile ( const string &  f_name,
const UInt_t  n_max 
)
virtual

Fonction qui modifie le nom de fichier associé à l'arbre. La fonction retourne 0 si tout s'est bien passé, une valeur négative si le mode a été modifié (avec message d'erreur) et 1 si le fichier n'est pas fermé, auquel cas la fonction ne change pas le nom. Le mode de fichier est ajusté automatiquement:

  • pas de format "%nF" ni "%B": allEventsTree
  • nom avec format "%nF" et nombre max d'événements = 0: maxEventTree
  • nom avec format "%nF" et nombre max d'événements > 0: runFileNumberTree
  • nom avec format "%B": runFileNameTree
    Parameters
    f_namenouveau nom de fichier
    n_maxnombre maxi d'événements par fichier (mode maxEventTree)

References event_max, ExportName(), IsLocked(), IsOpen(), tree_file, and tree_mode.

Referenced by EventManager::SetTreeFile(), and TreeInfo().

string TreeInfo::GetTreeFile ( ) const
inlinevirtual

Retourne le nom générique de fichier d'arbre.

References tree_file.

Referenced by EventManager::GetTreeFile(), and GEVTreeEditor::Info().

string TreeInfo::GetFileName ( ) const
inlinevirtual

Retourne le nom courant de fichier d'arbre.

References file_name.

Referenced by EventManager::GetTreeFileName().

UInt_t TreeInfo::GetFileMode ( ) const
inlinevirtual

Retourne le mode de création/fermeture des fichiers.

References tree_mode.

Referenced by EventManager::GetTreeFileMode(), and GEVTreeEditor::Info().

TTree * TreeInfo::GetTTreePtr ( ) const
inlinevirtual

Retourne le pointeur sur le TTree associé à l'arbre.

References tree_ptr.

Referenced by TreeList::GetTTreePtr().

UInt_t TreeInfo::GetMaxEvent ( ) const
inlinevirtual

Retourne le nombre maxi d'événements par fichier. Si l'arbre n'est pas en mode maxEventTree, la fonction retourne 0.

References event_max.

Referenced by GEVTreeEditor::Info().

UInt_t TreeInfo::GetParamNumber ( ) const
inlinevirtual

Retourne le nombre de paramètre de l'événement transférés dans le TTree.

Referenced by GEVTreeEditor::Info().

string TreeInfo::GetParamName ( const UInt_t  par_num) const
inlinevirtual

Retourne le nom d'un paramètre de l'événement transfére dans le TTree.

Parameters
par_numnuméro du paramètre

References GetTreeParamPtr().

Bool_t TreeInfo::AddParam ( const Param p_ptr)
virtual

Ajoute un paramètre à la liste de l'arbre.

Parameters
p_ptrpointeur sur le paramètre à ajouter

References Find(), and status.

Referenced by AddParam(), AddParamRange(), EventManager::AddTreeParam(), ReadTreeInfo(), and TreeInfo().

Bool_t TreeInfo::AddParam ( const string &  p_name)
virtual

Ajoute un paramètre à la liste de l'arbre.

Parameters
p_namenom du paramètre à ajouter

References AddParam(), evt_mgr, and EventManager::GetParamPtr().

Bool_t TreeInfo::AddParam ( const Int_t  p_num)
virtual

Ajoute un paramètre à la liste de l'arbre.

Parameters
p_numnuméro du paramètre à ajouter

References AddParam(), evt_mgr, and EventManager::GetParamPtr().

Int_t TreeInfo::AddParamRange ( const Int_t  p1,
const Int_t  p2 
)
virtual

Ajoute un ensemble de paramètres à la liste de l'arbre. La fonction retourne de nombre de paramètres ajoutés.

Parameters
p1numéro du premier paramètre à ajouter
p2numéro du dernier paramètre à ajouter

References AddParam(), and status.

Referenced by AddAllParam(), and EventManager::AddTreeParamRange().

Int_t TreeInfo::AddAllParam ( )
virtual

Ajoute tous les paramètres de l'événement à la liste de l'arbre.

References AddParamRange(), evt_mgr, and EventManager::ParamNumber().

Referenced by EventManager::AddTreeAllParam().

Int_t TreeInfo::Init ( )
virtual

Fonction qui initialise la structure de l'arbre: une fois initialisé, il ne peut plus être modifié. La fonction retourne 0 si tout s'est bien passé. Les buffers des branches de taille fixe sont alloués une fois pour toutes, alors que ceux des branches variables (paramètres multihit) le sont à chaque événement.

References branch_buffer, branch_def, branch_leaf_cnt, branch_leaf_num, branch_leaf_off, branch_leaf_par, branch_leaf_ptr, branch_leaf_size, branch_name, branch_num, branch_ptr, branch_size, Param::Dimension(), Param::GetDataTypeId(), PARAM_TYPE_ARRAY, PARAM_TYPE_MULTIHIT, status, and Param::TypeId().

Referenced by EventManager::InitTree(), and TreeList::Load().

Int_t TreeInfo::Open ( )
virtual

Fonction qui créé réellement le TTree dans le fichier ROOT. En mode runFileNumberTree, le numéro de fichier doit avoir été défini au préalable. En mode runFileNameTree, le nom de base de fichier doit avoir été défini au préalable. La fonction retourne 0 si tout s'est bien passé.

References branch_buffer, branch_def, branch_leaf_ptr, branch_name, branch_num, branch_ptr, branch_size, event_num, file_base, file_name, file_number, file_ptr, file_sub, FileDirName(), IsClosed(), status, tree_dir, tree_file, tree_mode, and tree_ptr.

Referenced by IncrementTree(), and EventManager::OpenTree().

Int_t TreeInfo::Close ( )
virtual

Fonction qui ferme le fichier ROOT avec le TTree.

References file_name, file_ptr, IsOpen(), tree_dir, and tree_ptr.

Referenced by EventManager::CloseTree(), IncrementTree(), and ~TreeInfo().

Bool_t TreeInfo::IsOpen ( )
inlinevirtual

Retourne vrai si le fichier d'arbre est ouvert.

References file_ptr.

Referenced by Close(), EventManager::IsTreeOpen(), and SetTreeFile().

Bool_t TreeInfo::IsClosed ( )
inlinevirtual

Retourne vrai si le fichier d'arbre est fermé.

References file_ptr.

Referenced by EventManager::IsTreeClosed(), and Open().

Bool_t TreeInfo::IsLocked ( )
inlinevirtual

Retourne vrai si le fichier d'arbre est verrouillé, c'est à dire si sa définition est figée.

References status.

Referenced by SetTreeFile().

const Param * TreeInfo::GetEventParamPtr ( const u_int  par_num) const
inline

Retourne le pointeur du paramètre d'événement correspondant au numéro de paramètre de l'arbre.

Parameters
par_numnuméro de paramètre de l'arbre

References GetTreeParamPtr().

Referenced by GEVTreeEditor::Info().

const Param * TreeInfo::GetEventParamPtr ( const string &  par_name) const
inline

Retourne le pointeur du paramètre d'événement correspondant au nom de paramètre de l'arbre.

Parameters
par_namenom de paramètre de l'arbre

References TreeParam::GetParamPtr(), and GetTreeParamPtr().

TreeParam * TreeInfo::GetTreeParamPtr ( const u_int  par_num) const

Retourne un pointeur du paramètre d'arbre donné par son numéro.

Parameters
par_numnuméro de paramètre de l'arbre

Referenced by GetEventParamPtr(), and GetParamName().

TreeParam * TreeInfo::GetTreeParamPtr ( const string &  par_name) const
inline

Retourne un pointeur du paramètre d'arbre donné par son nom.

Parameters
par_namenom de paramètre de l'arbre

References Find().

TreeParam * TreeInfo::Find ( const string &  par_name) const

Retourne le pointeur sur le paramètre d'arbre correspondant à un paramètre de l'événement donné par son nom.

Parameters
par_namenom du paramètre de l'événement

Referenced by AddParam(), and GetTreeParamPtr().

TreeParam * TreeInfo::Find ( const Int_t  par_num) const

Retourne le pointeur sur le paramètre d'arbre correspondant à un paramètre de l'événement donné par son nom.

Parameters
par_numnuméro du paramètre dans l'événement

References evt_mgr, and EventManager::GetParamPtr().

TreeParam * TreeInfo::Find ( const Param par_ptr) const

Retourne le pointeur sur le paramètre d'arbre correspondant à un paramètre de l'événement donné par son pointeur.

Parameters
par_ptrpointeur du paramètre dans l'événement
void TreeInfo::Start ( )
inline

Démarre l'arbre, ce qui autorise l'incrémentation.

References status.

Referenced by EventManager::StartTree().

void TreeInfo::Stop ( )
inline

Stoppe l'arbre, ce qui interdit l'incrémentation, jusqu'à ce que l'arbre soit à nouveau démarré.

References status.

Referenced by EventManager::StopTree().

void TreeInfo::Suspend ( )
inline

Suspend l'arbre, ce qui interdit l'incrémentation pour un seul événement (en fait pour une tentative d'incrémentation: le bit correspondant est remis à zéro par l'incrémentation).

References status.

Referenced by EventManager::SuspendTree().

bool TreeInfo::IsStarted ( ) const
inline

Retourne vrai si l'arbre est démarré (il peut cependant être suspendu).

References status.

bool TreeInfo::IsStopped ( ) const
inline

Retourne vrai si l'arbre est arrêté.

References status.

bool TreeInfo::IsSuspended ( ) const
inline

Retourne vrai si l'arbre est suspendu.

References status.

bool TreeInfo::IsIncremented ( ) const
inline

Retourne vrai si l'arbre est démarré et non suspendu: l'incrémentation est donc autorisée.

References status.

Referenced by Increment(), and IncrementFast().

bool TreeInfo::UsesContour ( const RContour *  ct,
const bool  rec = true 
) const
virtual

Teste si l'arbre utilise un contour dans son filtre.

Parameters
ctpointeur sur le contour
recindique si on doit chercher récursivement dans les filtres

References filter_ptr, and Filter::UsesContour().

bool TreeInfo::UsesFilter ( const Filter f,
const bool  rec = true 
) const
virtual

Teste si l'arbre utilise un filtre.

Parameters
fpointeur sur le filtre
recindique si on doit chercher récursivement dans les filtres

References filter_ptr, and Filter::UsesFilter().

bool TreeInfo::FilterCheck ( ) const
inline

Retourne vrai si le filtre associé à l'arbre est valide.

References filter_ptr.

Referenced by Increment().

void TreeInfo::Increment ( )
inlinevirtual

Méthode générique pour l'incrémentation d'un arbre: la méthode vérifie que l'arbre est démarré et l'état des filtres.

References FilterCheck(), IncrementTree(), IsIncremented(), and status.

bool TreeInfo::FilterFastCheck ( ) const
inlineprotected

Retourne la valeur précalculée du filtre, pour l'incrémentation automatique plus rapide.

References filter_ptr.

Referenced by IncrementFast().

void TreeInfo::IncrementFast ( )
inlineprotectedvirtual

Méthode générique pour l'incrémentation d'un arbre: la méthode vérifie que l'arbre est démarré et l'état des filtres. Cette fonction est plus rapide que Increment, car les filtres ne sont pas recalculés

References FilterFastCheck(), IncrementTree(), IsIncremented(), and status.

void TreeInfo::IncrementTree ( )
protectedvirtual
string TreeInfo::GetFilterName ( ) const
inline

Retourne le nom du filtre associé au TTree, ou une chaîne vide.

References filter_ptr.

Referenced by GEVTreeEditor::SelectionChanged().

string TreeInfo::FilterInfo ( ) const
inlinevirtual

Méthode qui retourne une chaîne décrivant le filtre d'un TTree.

References filter_ptr.

const Filter * TreeInfo::GetFilterPtr ( ) const
inlinevirtual

Retourne le pointeur sur le filtre conditionnant l'arbre, ou NULL si l'arbre n'est pas conditionné.

References filter_ptr.

Referenced by GEVTreeEditor::Info(), and GEVTreeEditor::SelectionChanged().

void TreeInfo::SetFilter ( const Filter f)
inlinevirtual

Applique un filtre comme condition sur un arbre.

Parameters
fpointeur sur le filtre

Referenced by EventManager::FilterTree(), and ReadTreeInfo().

void TreeInfo::ResetFilter ( )
inlinevirtual

Retire la condition sur un arbre.

bool TreeInfo::Write ( ostream &  os) const
virtual

Ecriture de la structure de l'arbre dans un flux de sortie.

Parameters
osflux de sortie

Referenced by GEVTreeEditor::SaveSelected().

bool TreeInfo::Write ( FILE *  fptr) const
virtual

Ecriture de la structure de l'arbre dans un flux de sortie.

Parameters
fptrpointeur sur le fichier

References event_max, filter_ptr, TREE_BEGIN_ID, TREE_END_ID, and tree_file.

TreeInfo * TreeInfo::ReadTreeInfo ( FILE *  fptr,
const EventManager mgr,
int &  error 
)
static

Fonction qui alloue un nouvel arbre à partir de la lecture dans un fichier. Le code d'erreur en sortie vaut 0 si tout s'est bien passé, prend une valeur négative s'il s'agit bien d'un arbre mais que sa définition pose problème, et une valeur positive s'il s'agit d'une autre erreur. Si on est en fin de fichier, la fonction retourne NULL avec un code d'erreur à 0.

Parameters
fptrfichier dans lequel on lit la définition
mgrpointeur sur le gestionnaire d'événements
errorcode d'erreur en sortie

References AddParam(), EventManager::GetFilterListPtr(), read_string(), SetFilter(), TREE_BEGIN_ID, TREE_END_ID, and TreeInfo().

Referenced by TreeList::Load().

TreeInfo::ClassDef ( TreeInfo  ,
 
)

Définition à usage de ROOT...


The documentation for this class was generated from the following files: