KaliVeda
Toolkit for HIC analysis
KVIntegerList Class Reference

Detailed Description

Handle a list of positive integers (partition)

Created by KVClassFactory on Mon Mar 29 14:58:00 2010 Author: bonnet

Values are sorted into decreasing order.

Two examples of filling a list:

Example 1

Fill() can be used to fill the list from an array of values and update relevant quantities: ~~~~{.cpp} KVIntegerList ilist; int tab[] = {1,3,6,4,9,7,3,59,8,160}; ilist->Fill(tab,10); ilist->Print();

Info in <KVIntegerList::Print>: 160 59 9 8 7 6 4 3(2) 1 : population 1 ~~~~{.cpp}

Example 2

Les methodes de type Add(), remplit successivement la liste, avant d'utiliser les grandeurs reliées
l'utilisateur doit appeler la méthode CheckForUpdate(), pour que la mise a jour du nom soit faite
par contre le nombre d'elements est mis a jour automatiquement

KVIntegerList* ilist = new KVIntegerList();
ilist->Add(23,6);
ilist->Add(12);
Int_t tab[3]={1,3,6};
ilist->Add(tab,3);
ilist->CheckForUpdate();
ilist->Print();
Info in <KVIntegerList::Print>: 23(6) 12 6 3 1 : population 1
ilist->Remove(23,3);
ilist->Print();
Info in <KVIntegerList::Print>: 23(6) 12 6 3 1 : population 1 &nbsp &nbsp !!! pour le nom RIEN A CHANGER
ilist->GetNbre();
(const Int_t)7 &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp le nombre, lui est mis à jour
ilist->CheckForUpdate();
ilist->Print();
Info in <KVIntegerList::Print>: 23(3) 12 6 3 1 : population 1 &nbsp &nbsp OK : les modifs ont été prises en compte
ilist->GetNbre()
(const Int_t)7
END_HTML

Les methodes de type Remove(), retirent des valeurs de la liste, là encore l'utilisateur doit appeler la méthode CheckForUpdate(), pour que la mise a jour soit faite Les grandeurs disponibles sont:

  • le nombre d'entiers, ie la multiplicité GetNbre()
  • le nom de la partition definie comme suit : ent1(occ) ent2 ent3(occ3), où entre parenthèses sont notées les occurences aupérieures à 1 d'une valeur
  • la population GetPopulation(), permet de gérer un ensemble de partitions (KVPartitionManager)

Definition at line 69 of file KVIntegerList.h.

#include <KVIntegerList.h>

Inheritance diagram for KVIntegerList:

Public Types

enum  { kHastobeComputed = BIT(14) }
 

Public Member Functions

 KVIntegerList ()
 Default constructor. More...
 
virtual ~KVIntegerList ()
 Destructor. More...
 
void Add (Double_t *tab, Int_t mult)
 Ajout d'un tableau de "mult" valeurs, version Double_t (Conversion Double_t -> Int_t (arrondi, TMath::Nint())) More...
 
void Add (Double_t val)
 Ajout de la valeur val version Double_t (Conversion Double_t -> Int_t (arrondi, TMath::Nint())) More...
 
void Add (Double_t val, Int_t freq)
 Ajout de "freq" fois la valeur val. More...
 
void Add (Int_t *tab, Int_t mult)
 Ajout d'un tableau d'entiers de "mult" valeurs. More...
 
void Add (Int_t val)
 Ajout de la valeur val (Int_t) More...
 
void Add (Int_t val, Int_t freq)
 Ajout de "freq" fois la valeur val. More...
 
void Add (TArrayI *tab)
 void Fill(Double_t* tab,Int_t mult); More...
 
void AddPopulation (Int_t pop)
 Incrémente la population de "pop" fois. More...
 
void CheckForUpdate ()
 
void Clear (Option_t *option="")
 Classe dérivée de TNamed, Reinitialisation de l'object. More...
 
Int_t Compare (const TObject *obj) const
 
Bool_t Contains (Int_t val) const
 
void Copy (TObject &named) const
 Classe dérivée de TNamed, fait une copie vers l'objet obj. More...
 
Int_t * CreateTableOfValues ()
 
TArrayI * CreateTArrayI ()
 
TNamed * CreateTNamed ()
 KVPartition* CreateKVPartition(Int_t mom_max=5);. More...
 
void Fill (Int_t *tab, Int_t mult)
 void Fill(TArrayI* tab); More...
 
Int_t GetFrequency (Int_t val) const
 
Ssiz_t GetLengthName () const
 
Int_t GetNbre () const
 
Int_t GetPopulation () const
 
void Print (Option_t *option="") const
 Classe dérivée de TNamed, Imprime la liste formattée et la population associée. More...
 
Bool_t Remove (Int_t val)
 
Bool_t Remove (Int_t val, Int_t freq)
 
Bool_t RemoveAll (Int_t val)
 
void ResetPopulation ()
 Remet à 1 la population (comme dans le ctor) More...
 
void SetPopulation (Int_t pop)
 Initialise la population à "pop". More...
 

Private Member Functions

virtual void add_values (Int_t val, Int_t freq)
 
virtual void DeducePartitionFromName ()
 protected method, utilisee par le Streamer More...
 
virtual void DeducePartitionFromTNamed ()
 
virtual void DeducePopulationFromTitle ()
 protected method, utilisee par le Streamer More...
 
void init ()
 
virtual Bool_t remove_values (Int_t val, Int_t freq)
 
virtual void ResetRegle ()
 protected method, Mise a zero de l'ensemble des valeurs More...
 
virtual void SetPartition (const Char_t *par)
 
Bool_t ToBeUpdated ()
 protected method, test si les grandeurs associées à la liste doivent etre mises a jour More...
 
virtual void Update ()
 

Private Attributes

Ssiz_t fLength
 Longueur du nom de la liste/partition usilisée dans Compare. More...
 
Int_t fLimiteRegle
 taille max de fRegle More...
 
Int_t fMult
 Nombre d'éléments dans la liste. More...
 
Int_t fPop
 population de la liste/partition consideree, permet le comptage de partitions identiques dansun lot de donée More...
 
TArrayI * fRegle
 tableau d'entiers où sont stockée l'occurence des valeurs More...
 

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
Enumerator
kHastobeComputed 

Definition at line 95 of file KVIntegerList.h.

Constructor & Destructor Documentation

◆ KVIntegerList()

KVIntegerList::KVIntegerList ( )

Default constructor.

Definition at line 35 of file KVIntegerList.cpp.

◆ ~KVIntegerList()

KVIntegerList::~KVIntegerList ( )
virtual

Destructor.

Definition at line 46 of file KVIntegerList.cpp.

Member Function Documentation

◆ Add() [1/7]

void KVIntegerList::Add ( Double_t *  tab,
Int_t  mult 
)

Ajout d'un tableau de "mult" valeurs, version Double_t (Conversion Double_t -> Int_t (arrondi, TMath::Nint()))

Definition at line 341 of file KVIntegerList.cpp.

◆ Add() [2/7]

void KVIntegerList::Add ( Double_t  val)

Ajout de la valeur val version Double_t (Conversion Double_t -> Int_t (arrondi, TMath::Nint()))

Definition at line 364 of file KVIntegerList.cpp.

◆ Add() [3/7]

void KVIntegerList::Add ( Double_t  val,
Int_t  freq 
)

Ajout de "freq" fois la valeur val.

Definition at line 375 of file KVIntegerList.cpp.

◆ Add() [4/7]

void KVIntegerList::Add ( Int_t *  tab,
Int_t  mult 
)

Ajout d'un tableau d'entiers de "mult" valeurs.

Definition at line 316 of file KVIntegerList.cpp.

◆ Add() [5/7]

void KVIntegerList::Add ( Int_t  val)

Ajout de la valeur val (Int_t)

Definition at line 353 of file KVIntegerList.cpp.

◆ Add() [6/7]

void KVIntegerList::Add ( Int_t  val,
Int_t  freq 
)

Ajout de "freq" fois la valeur val.

Definition at line 304 of file KVIntegerList.cpp.

◆ Add() [7/7]

void KVIntegerList::Add ( TArrayI *  tab)

void Fill(Double_t* tab,Int_t mult);

Ajout de valeurs via un TArrayI.

Definition at line 328 of file KVIntegerList.cpp.

◆ add_values()

void KVIntegerList::add_values ( Int_t  val,
Int_t  freq 
)
privatevirtual

protected method, Ajout de "freq" fois la valeur val Verification de la taille du tableau (fLimiteRegle) et extension si besoin

Routine appelée par toutes les autres routines Add(...), c'est celle-ci qui doit etre derivée dans les classes filles Le bit kHastobeComputed es mis à 1 pour indiquer la nécéssité de mettre a jour la partition voir KVIntegerList::CheckForUpdate()

Cette methode incremente la multiplicité fMult

Reimplemented in KVPartition.

Definition at line 276 of file KVIntegerList.cpp.

◆ AddPopulation()

void KVIntegerList::AddPopulation ( Int_t  pop)

Incrémente la population de "pop" fois.

Definition at line 510 of file KVIntegerList.cpp.

◆ CheckForUpdate()

void KVIntegerList::CheckForUpdate ( )

Methode permettant de mettre à jour la liste, elle est a appeler si l'utilisateur a appelé précédemment une méthode Add ou Remove

Definition at line 163 of file KVIntegerList.cpp.

◆ Clear()

void KVIntegerList::Clear ( Option_t *  option = "")

Classe dérivée de TNamed, Reinitialisation de l'object.

Definition at line 73 of file KVIntegerList.cpp.

◆ Compare()

Int_t KVIntegerList::Compare ( const TObject *  obj) const

Classe dérivée de TNamed Compare deux objets de type KVIntegerList, le premier test concerne la longueur du nom (KVIntegerList::GetLengthName()) Si elle est identique, on test caractere par caractere, les deux noms TNamed::GetName() Retourne 0 si les noms des deux KVIntegerList sont exactement les memes, -1 sinon;

Definition at line 625 of file KVIntegerList.cpp.

◆ Contains()

Bool_t KVIntegerList::Contains ( Int_t  val) const

Retourne kTRUE si la valeur "val" est dans la liste, kFALSE sinon dans la liste retourne -1

Definition at line 668 of file KVIntegerList.cpp.

◆ Copy()

void KVIntegerList::Copy ( TObject &  named) const

Classe dérivée de TNamed, fait une copie vers l'objet obj.

Definition at line 88 of file KVIntegerList.cpp.

◆ CreateTableOfValues()

Int_t * KVIntegerList::CreateTableOfValues ( )

Cree un objet tableau d'entier de dimension fMult ( KVIntegerList::GetNbre() ) et rempli par ordre decroissant toutes les valeurs de la partition L'objet cree doit etre effacé après utilisation par l'utilisateur

Definition at line 599 of file KVIntegerList.cpp.

◆ CreateTArrayI()

TArrayI * KVIntegerList::CreateTArrayI ( )

Cree un objet TArrayI de dimension fMult ( KVIntegerList::GetNbre() ) et rempli par ordre decroissant toutes les valeurs de la partition L'objet cree doit etre effacé après utilisation par l'utilisateur

Definition at line 576 of file KVIntegerList.cpp.

◆ CreateTNamed()

TNamed * KVIntegerList::CreateTNamed ( )

KVPartition* CreateKVPartition(Int_t mom_max=5);.

Cree un objet TNamed le nom de la partition est le champ TNamed::fName et la population de la partition dans le champ TNamed::fTitle voir TNamed L'objet cree doit etre effacé après utilisation par l'utilisateur

Definition at line 559 of file KVIntegerList.cpp.

◆ DeducePartitionFromName()

void KVIntegerList::DeducePartitionFromName ( )
privatevirtual

protected method, utilisee par le Streamer

Definition at line 750 of file KVIntegerList.cpp.

◆ DeducePartitionFromTNamed()

void KVIntegerList::DeducePartitionFromTNamed ( )
privatevirtual

protected method, Methode utilisee par le Streamer Récupère les champs de TNamed:fName et TNamed:fTitle et met à jour

Definition at line 723 of file KVIntegerList.cpp.

◆ DeducePopulationFromTitle()

void KVIntegerList::DeducePopulationFromTitle ( )
privatevirtual

protected method, utilisee par le Streamer

Definition at line 737 of file KVIntegerList.cpp.

◆ Fill()

void KVIntegerList::Fill ( Int_t *  tab,
Int_t  mult 
)

void Fill(TArrayI* tab);

La liste est re initialisée via KVIntegerList::Clear() remplie, puis mise à jour KVIntegerList::Update()

Definition at line 222 of file KVIntegerList.cpp.

◆ GetFrequency()

Int_t KVIntegerList::GetFrequency ( Int_t  val) const

Retourne l'occurence de la valeur "val", si elle n'est pas présente dans la liste retourne -1

Definition at line 654 of file KVIntegerList.cpp.

◆ GetLengthName()

Ssiz_t KVIntegerList::GetLengthName ( ) const

Retourne la longueur du nom de la partition formatée GetName() utilisée dans la methode Compare

Definition at line 682 of file KVIntegerList.cpp.

◆ GetNbre()

Int_t KVIntegerList::GetNbre ( ) const

Definition at line 531 of file KVIntegerList.cpp.

◆ GetPopulation()

Int_t KVIntegerList::GetPopulation ( ) const

Definition at line 500 of file KVIntegerList.cpp.

◆ init()

void KVIntegerList::init ( void  )
private

Initialisation La population est mise à 1

Definition at line 19 of file KVIntegerList.cpp.

◆ Print()

void KVIntegerList::Print ( Option_t *  option = "") const

Classe dérivée de TNamed, Imprime la liste formattée et la population associée.

Definition at line 102 of file KVIntegerList.cpp.

◆ Remove() [1/2]

Bool_t KVIntegerList::Remove ( Int_t  val)

On retire 1 fois la valeur val la methode retourne kTRUE si cette valeur etait effectivement presente, kFALSE sinon Le bit kHastobeComputed es mis à 1 pour indiquer la nécéssité de mettre a jour la partition voir KVIntegerList::CheckForUpdate()

Definition at line 451 of file KVIntegerList.cpp.

◆ Remove() [2/2]

Bool_t KVIntegerList::Remove ( Int_t  val,
Int_t  freq 
)

On retire "freq" fois la valeur val la methode retourne kTRUE si cette valeur etait effectivement presente, kFALSE sinon Si freq > la frequence initiale ( KVIntegerList::GetFrequency(Int_t ) )de la valeur, on la retire complétement

Definition at line 432 of file KVIntegerList.cpp.

◆ remove_values()

Bool_t KVIntegerList::remove_values ( Int_t  val,
Int_t  freq 
)
privatevirtual

protected method, On retire "freq" fois la valeur val la methode retourne kTRUE si cette valeur etait effectivement presente, kFALSE sinon Si freq > la frequence initiale ( KVIntegerList::GetFrequency(Int_t ) )de la valeur, on la retire complétement Le bit kHastobeComputed es mis à 1 pour indiquer la nécéssité de mettre a jour la partition voir KVIntegerList::CheckForUpdate() Cette methode est appelée par les autres routines de type Remove...(...), c'est celle-ci qui doit etre derivée dans les classes filles

Cette methode décremente la multiplicité fMult

Reimplemented in KVPartition.

Definition at line 397 of file KVIntegerList.cpp.

◆ RemoveAll()

Bool_t KVIntegerList::RemoveAll ( Int_t  val)

Reture completement la valeur val la methode retourne kTRUE si cette valeur etait effectivement presente, kFALSE sinon

Le bit kHastobeComputed es mis à 1 pour indiquer la nécéssité de mettre a jour la partition voir KVIntegerList::CheckForUpdate()

Definition at line 473 of file KVIntegerList.cpp.

◆ ResetPopulation()

void KVIntegerList::ResetPopulation ( )

Remet à 1 la population (comme dans le ctor)

Definition at line 490 of file KVIntegerList.cpp.

◆ ResetRegle()

void KVIntegerList::ResetRegle ( )
privatevirtual

protected method, Mise a zero de l'ensemble des valeurs

Definition at line 60 of file KVIntegerList.cpp.

◆ SetPartition()

void KVIntegerList::SetPartition ( const Char_t *  par)
privatevirtual

protected method, utilisée par le Streamer qui utilise le champ fName de la classe TNamed voir également KVIntegerList::DeducePartitionFromTNamed

Definition at line 114 of file KVIntegerList.cpp.

◆ SetPopulation()

void KVIntegerList::SetPopulation ( Int_t  pop)

Initialise la population à "pop".

Definition at line 521 of file KVIntegerList.cpp.

◆ ToBeUpdated()

Bool_t KVIntegerList::ToBeUpdated ( )
private

protected method, test si les grandeurs associées à la liste doivent etre mises a jour

Definition at line 150 of file KVIntegerList.cpp.

◆ Update()

void KVIntegerList::Update ( )
privatevirtual

protected method, Mise a jour du nom de la partition (via SetName()), de sa longueur (fLength) Le bit kHastobeComputed es mis à 0 pour indiquer que la mise à jour a été faite

Reimplemented in KVPartition.

Definition at line 178 of file KVIntegerList.cpp.

Member Data Documentation

◆ fLength

Ssiz_t KVIntegerList::fLength
private

Longueur du nom de la liste/partition usilisée dans Compare.

Definition at line 77 of file KVIntegerList.h.

◆ fLimiteRegle

Int_t KVIntegerList::fLimiteRegle
private

taille max de fRegle

Definition at line 74 of file KVIntegerList.h.

◆ fMult

Int_t KVIntegerList::fMult
private

Nombre d'éléments dans la liste.

Definition at line 76 of file KVIntegerList.h.

◆ fPop

Int_t KVIntegerList::fPop
private

population de la liste/partition consideree, permet le comptage de partitions identiques dansun lot de donée

Definition at line 75 of file KVIntegerList.h.

◆ fRegle

TArrayI* KVIntegerList::fRegle
private

tableau d'entiers où sont stockée l'occurence des valeurs

Definition at line 73 of file KVIntegerList.h.