KaliVeda
Toolkit for HIC analysis
KVPartitionGenerator Class Reference

Detailed Description

Permet de determiner numeriquement et exactement un ensemble de partitions d'entrees remplissante certaines conditions.

Les differentes recontrees grandeurs sont :

  • Ztot (Zt) -> Charge/Taille totale a repartir au sein de la partition
  • Mtot (Mt) -> Nombre de total d'element (fragment, cluster) de la partition (Zi) i=1,Mtot
  • Zmax (Zm) -> Charge/Taille du plus gros element de la partition
  • Zinf (Zi) -> Charge minimale des elements de la partition (Zi) Zi>=Zinf quelque soit i (tous les calculs necessitent cet argument)

Plusieurs methodes correspondant conditions initiales possibles :

  • BreakUsing_Ztot_Zinf_Criterion (la methode la plus generale), donnant toutes les partitions pour une taille initiale donnee
  • BreakUsing_Ztot_Zinf_Criterion, donnant toutes les partitions pour une taille initiale donnee
  • BreakUsing_Ztot_Zmax_Zinf_Criterion, donnant toutes les partitions pour une taille initiale donnee, avec une contrainte sur Zmax
  • BreakUsing_Mtot_Zmax_Zinf_Criterion, donnant toutes les partitions remplissant les contraintes sur le Zmax et sur le Mtot

Toutes ces methodes utilisent la protected methode MakePartitions() qui calcule les partitions pour un couple (Ztot,Mtot) donné qui sauvegarde ces partitions dans un fichier ROOT via un arbre, contenant l'information minimum :

  • branche zt
  • branche mt
  • branche tabz [mt], tableau d'entier comprenant les differentes charges (Zi), trie par ordre decroissant Le chemin ou les arbres sont ecrits peut etre definis via la methode SetPathForFile, par defaut les arbres seront ecrits dans le repertoire courant, attention car pour des nombres importants (Ztot>100) la place necessaire devient non negligeable (ex : toutes les partition de Ztot=200 et Zinf=5 -> 20GB environ)

A chaque fois que la methode MakePartitions() est appelle par les methodes BreakUsing...(), on garde en memoire l'ensemble des fichiers contenant chacun un arbre, pour a la fin du processus

ecrire dans un fichier ROOT, une TChain permettant de travailler rapidement et facilement sur les partitions generees

Un petit exemple de routine simple : Cette routine produit en sortie un fichier root Partitions_Zf60_Zi1.root contenant la TChain de tous les arbres ...

void test{
pg->SetPathForFile("/space/bonnet/");
Info in <BreakUsing_Ztot_Zinf_Criterion>: 966467.000000 partitions crees en 5 seconds
delete pg;
}
Permet de determiner numeriquement et exactement un ensemble de partitions d'entrees remplissante cer...
void SetPathForFile(KVString path)
KVPartitionGenerator()
Default constructor.
void BreakUsing_Ztot_Zinf_Criterion(Int_t Ztot, Int_t Zinf, KVString chain_name="", Int_t min=-1, Int_t max=-1)
void Info(const char *location, const char *fmt,...)
root Partitions_Zf60_Zi1.root
Attaching file Partitions_Zf60_Zi1.root as _file0...
root [2] .ls
TFile** Partitions_Zf60_Zi1.root
TFile* Partitions_Zf60_Zi1.root
KEY: TChain PartitionTree;1
root [3] PartitionTree->Draw("tabz")
Long64_t Draw(const char *varexp, const char *selection, Option_t *option="", Long64_t nentries=kMaxEntries, Long64_t firstentry=0) override
virtual void ls(Option_t *option="") const
TMatrixT< Double_t > as(SEXP)

Definition at line 70 of file KVPartitionGenerator.h.

#include <KVPartitionGenerator.h>

Public Member Functions

 KVPartitionGenerator ()
 Default constructor. More...
 
virtual ~KVPartitionGenerator ()
 Destructor. More...
 
void BreakUsing_Mtot_Zmax_Zinf_Criterion (Int_t Mtot, Int_t Zmax, Int_t Zinf, KVString chain_name="")
 
void BreakUsing_Ztot_Mtot_Zinf_Criterion (Int_t Ztot, Int_t Mtot, Int_t Zinf, KVString chain_name="")
 
void BreakUsing_Ztot_Zinf_Criterion (Int_t Ztot, Int_t Zinf, KVString chain_name="", Int_t min=-1, Int_t max=-1)
 
void BreakUsing_Ztot_Zmax_Zinf_Criterion (Int_t Ztot, Int_t Zmax, Int_t Zinf, KVString chain_name="")
 
void SetPathForFile (KVString path)
 
virtual void TreatePartition ()
 
virtual void WriteTreeAndCloseFile ()
 

Constructor & Destructor Documentation

◆ KVPartitionGenerator()

KVPartitionGenerator::KVPartitionGenerator ( )

Default constructor.

Definition at line 22 of file KVPartitionGenerator.cpp.

◆ ~KVPartitionGenerator()

KVPartitionGenerator::~KVPartitionGenerator ( )
virtual

Destructor.

Definition at line 63 of file KVPartitionGenerator.cpp.

Member Function Documentation

◆ BreakUsing_Mtot_Zmax_Zinf_Criterion()

void KVPartitionGenerator::BreakUsing_Mtot_Zmax_Zinf_Criterion ( Int_t  Mtot,
Int_t  Zmax,
Int_t  Zinf,
KVString  chain_name = "" 
)

Determine toutes les partitions pour :

  • une multiplicité de partition donnée (Mtot)
  • une taille donnée du plus gros fragment de la partition (Zmax)
  • une taille minimale pour les fragments de la partition (Zinf)
  • le nom du fichier ou la TChain recapitulant tous les arbres crees va etre enregistree (par defaut, si chain_name=="", le nom de fichier est formate en fonction des arguments

Definition at line 554 of file KVPartitionGenerator.cpp.

◆ BreakUsing_Ztot_Mtot_Zinf_Criterion()

void KVPartitionGenerator::BreakUsing_Ztot_Mtot_Zinf_Criterion ( Int_t  Ztot,
Int_t  Mtot,
Int_t  Zinf,
KVString  chain_name = "" 
)

Determine toutes les partitions pour :

  • une taille totale de la partition donnée (Ztot)
  • une multiplicité de partition donnée (Mtot)
  • une taille minimale pour les fragments de la partition (Zinf)
  • le nom du fichier ou la TChain recapitulant tous les arbres crees va etre enregistree (par defaut, si chain_name=="", le nom de fichier est formate en fonction des arguments

Definition at line 444 of file KVPartitionGenerator.cpp.

◆ BreakUsing_Ztot_Zinf_Criterion()

void KVPartitionGenerator::BreakUsing_Ztot_Zinf_Criterion ( Int_t  Ztot,
Int_t  Zinf,
KVString  chain_name = "",
Int_t  min = -1,
Int_t  max = -1 
)

Determine toutes les partitions pour :

  • une taille totale de la partition donnée (Ztot)
  • une taille minimale pour les fragments de la partition (Zinf)
  • le nom du fichier ou la TChain recapitulant tous les arbres crees va etre enregistree (par defaut, si chain_name=="", le nom de fichier est formate en fonction des arguments Les arguments min et max permettent de restreindre le calcul a une plage en multiplicité si min==-1 (defaut) -> mfmin=1 si max==-1 (defaut) -> mfmax=Ztot/Zinf

Definition at line 402 of file KVPartitionGenerator.cpp.

◆ BreakUsing_Ztot_Zmax_Zinf_Criterion()

void KVPartitionGenerator::BreakUsing_Ztot_Zmax_Zinf_Criterion ( Int_t  Ztot,
Int_t  Zmax,
Int_t  Zinf,
KVString  chain_name = "" 
)

Determine toutes les partitions pour :

  • une taille totale de la partition donnée (Ztot)
  • une taille donnée du plus gros fragment de la partition (Zmax)
  • une taille minimale pour les fragments de la partition (Zinf)
  • le nom du fichier ou la TChain recapitulant tous les arbres crees va etre enregistree (par defaut, si chain_name=="", le nom de fichier est formate en fonction des arguments

Definition at line 473 of file KVPartitionGenerator.cpp.

◆ SetPathForFile()

void KVPartitionGenerator::SetPathForFile ( KVString  path)

Defini le chemin ou les arbres seront ecris prevoir des zones pouvant recevoir de gros volumes de données si les calculs de partitions se fait a partir de grosse taille initiale

Definition at line 84 of file KVPartitionGenerator.cpp.

◆ TreatePartition()

void KVPartitionGenerator::TreatePartition ( )
virtual

Rempli l arbre avec la partition courante Incremente les compteurs sur le nombre de particules creees

Definition at line 586 of file KVPartitionGenerator.cpp.

◆ WriteTreeAndCloseFile()

void KVPartitionGenerator::WriteTreeAndCloseFile ( )
virtual

Test le fichier courant (pointeur gFile) Si tout va bien Ecriture de l arbre dans le fichier (tout deux definis dans PreparTree) et ajout du nom de fichier dans une liste permettant de generer la TChain en fin de processus

Definition at line 607 of file KVPartitionGenerator.cpp.