KaliVeda
Toolkit for HIC analysis
Loading...
Searching...
No Matches
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.
 
virtual ~KVPartitionGenerator ()
 Destructor.
 
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 ()
 

Private Member Functions

void AfterBreak ()
 
void BeforeBreak ()
 
Int_t GetDeltaTime ()
 
void init ()
 
void MakePartitions (Int_t Ztot, Int_t Mtot, Int_t Zinf)
 
void PreparTree ()
 
void Process ()
 
void SetConditions (Int_t Ztot, Int_t Mtot, Int_t Zinf)
 
void Start ()
 
void Stop ()
 

Private Attributes

KVString cname
 
KVUniqueNameListflist
 
Int_tkcurrent
 
Int_t kmt
 
KVString kwriting_path
 Chemin ou les arbres seront ecrits.
 
Int_t kzinf
 
Int_t kzt
 
Int_t mshift
 
Int_t mtot
 
Double_t npar
 Compteurs de nombre de partitions crees.
 
Double_t npar_zt_mt
 
Int_ttabz
 [ndim]
 
Int_t tellapsed
 
KVString tname
 
Bool_t to_be_checked
 
TTreetree
 
Int_t tstart
 To give an estimation of time consuming.
 
Int_t tstop
 
Int_t zshift
 
Int_t ztot
 

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

◆ AfterBreak()

void KVPartitionGenerator::AfterBreak ( )
private

protected method Permet de creer une TChain recapitulant tout les arbres crees et suvegardes lors de la determination de toutes les partitions par une des methodes BreakUsing_[Critere]_Criterion() stop du chrono

Definition at line 368 of file KVPartitionGenerator.cpp.

◆ BeforeBreak()

void KVPartitionGenerator::BeforeBreak ( )
private

protected method Creation de la liste pour creation de la TChain stop du chrono

Definition at line 346 of file KVPartitionGenerator.cpp.

◆ 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.

◆ GetDeltaTime()

Int_t KVPartitionGenerator::GetDeltaTime ( )
private

protected method Retoune le temps ecoules (en seconde) entre un appel Start() et un appel Stop()

Definition at line 667 of file KVPartitionGenerator.cpp.

◆ init()

void KVPartitionGenerator::init ( )
private

protected method Initisalisation des variables

Definition at line 35 of file KVPartitionGenerator.cpp.

◆ MakePartitions()

void KVPartitionGenerator::MakePartitions ( Int_t  Ztot,
Int_t  Mtot,
Int_t  Zinf 
)
private

protected method Cree un fichier avec nom formate : From_[ClassName]_Zt[Ztot]_Mt[Mtot]_Zm[Zinf].root

Defini l'arbre ou seront enregistrees les partitions

Determine toute les partitions pour un couple donné de parametres : (Ztot, Mtot, Zinf) avec :

  • Ztot -> taille totale de la partition
  • Mtot -> multiplicité de partition

- Zinf -> taille minimale pour les fragments de la partition

Enregistre l arbre et ferme le fichier

Routine centrale de la classe appelée par toutes les methodes de type Break_Using...Criterion()

Definition at line 114 of file KVPartitionGenerator.cpp.

◆ PreparTree()

void KVPartitionGenerator::PreparTree ( )
private

protected method Creation du fichier formate suivant les parametres passes via la methode SetConditions Creation de l'arbre

Definition at line 179 of file KVPartitionGenerator.cpp.

◆ Process()

void KVPartitionGenerator::Process ( void  )
private

protected method Determine toute les partitions pour un couple donné de parametres : (Ztot, Mtot, Zinf) avec :

  • Ztot -> taille totale de la partition
  • Mtot -> multiplicité de partition
  • Zinf -> taille minimale pour les fragments de la partition

Definition at line 217 of file KVPartitionGenerator.cpp.

◆ SetConditions()

void KVPartitionGenerator::SetConditions ( Int_t  Ztot,
Int_t  Mtot,
Int_t  Zinf 
)
private

protected method Repercute les parametres passes via la methode SetConditions Prepare les tableaux necessaires

Definition at line 152 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.

◆ Start()

void KVPartitionGenerator::Start ( )
private

protected method Signal start

Definition at line 635 of file KVPartitionGenerator.cpp.

◆ Stop()

void KVPartitionGenerator::Stop ( )
private

protected method Signal stop

Definition at line 650 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.

Member Data Documentation

◆ cname

KVString KVPartitionGenerator::cname
private

Definition at line 76 of file KVPartitionGenerator.h.

◆ flist

KVUniqueNameList* KVPartitionGenerator::flist
private

Definition at line 96 of file KVPartitionGenerator.h.

◆ kcurrent

Int_t* KVPartitionGenerator::kcurrent
private

Definition at line 93 of file KVPartitionGenerator.h.

◆ kmt

Int_t KVPartitionGenerator::kmt
private

Definition at line 92 of file KVPartitionGenerator.h.

◆ kwriting_path

KVString KVPartitionGenerator::kwriting_path
private

Chemin ou les arbres seront ecrits.

Definition at line 76 of file KVPartitionGenerator.h.

◆ kzinf

Int_t KVPartitionGenerator::kzinf
private

Definition at line 92 of file KVPartitionGenerator.h.

◆ kzt

Int_t KVPartitionGenerator::kzt
private

Definition at line 92 of file KVPartitionGenerator.h.

◆ mshift

Int_t KVPartitionGenerator::mshift
private

Variables additionnelles utilisees par les methodes BreakUsing_Zf_Zmax_Zinf_Criterion et BreakUsing_Mtot_Zmax_Zinf_Criterion, pour l enregistrement des partitions dans tabz

Definition at line 84 of file KVPartitionGenerator.h.

◆ mtot

Int_t KVPartitionGenerator::mtot
private

Variables pemettant le remplissage des partitions dans un arbre

Definition at line 89 of file KVPartitionGenerator.h.

◆ npar

Double_t KVPartitionGenerator::npar
private

Compteurs de nombre de partitions crees.

Definition at line 74 of file KVPartitionGenerator.h.

◆ npar_zt_mt

Double_t KVPartitionGenerator::npar_zt_mt
private

Definition at line 74 of file KVPartitionGenerator.h.

◆ tabz

Int_t* KVPartitionGenerator::tabz
private

[ndim]

Definition at line 90 of file KVPartitionGenerator.h.

◆ tellapsed

Int_t KVPartitionGenerator::tellapsed
private

Definition at line 99 of file KVPartitionGenerator.h.

◆ tname

KVString KVPartitionGenerator::tname
private

Definition at line 76 of file KVPartitionGenerator.h.

◆ to_be_checked

Bool_t KVPartitionGenerator::to_be_checked
private

Definition at line 78 of file KVPartitionGenerator.h.

◆ tree

TTree* KVPartitionGenerator::tree
private

Definition at line 95 of file KVPartitionGenerator.h.

◆ tstart

Int_t KVPartitionGenerator::tstart
private

To give an estimation of time consuming.

Definition at line 99 of file KVPartitionGenerator.h.

◆ tstop

Int_t KVPartitionGenerator::tstop
private

Definition at line 99 of file KVPartitionGenerator.h.

◆ zshift

Int_t KVPartitionGenerator::zshift
private

Definition at line 85 of file KVPartitionGenerator.h.

◆ ztot

Int_t KVPartitionGenerator::ztot
private

Definition at line 89 of file KVPartitionGenerator.h.