4 #include "KVIntegerList.h"
8 #include "TObjString.h"
24 fRegle =
new TArrayI(100);
25 fLimiteRegle = fRegle->fN - 1;
63 for (Int_t ii = 0; ii <
fRegle->fN; ii += 1)
105 Info(
"Print",
"%s : population %d", GetName(),
GetPopulation());
125 if (tamp.Contains(
"(")) {
126 if (!tamp.Contains(
")")) {
127 Warning(
"SetPartition",
"%s ->pb de coherence dans les parentheses", tamp.Data());
131 toks = tamp.Tokenize(
"(");
132 val = ((TObjString*)toks->At(0))->GetString().Atoi();
133 freq = ((TObjString*)toks->At(1))->GetString().Atoi();
185 Int_t contenu =
fRegle->At(ii);
188 stamp.Form(
"%d", ii);
191 stamp.Form(
"(%d)", contenu);
197 if (snom !=
"") snom.Remove(snom.Length() - 1);
198 SetName(snom.Data());
319 for (Int_t ii = 0; ii < mult; ii += 1)
331 Int_t mult = tab->GetSize();
332 for (Int_t ii = 0; ii < mult; ii += 1)
344 for (Int_t ii = 0; ii < mult; ii += 1)
367 Add(TMath::Nint(val), 1);
379 Add(TMath::Nint(val), freq);
415 Int_t freq_rel = TMath::Min(
fRegle->At(val), freq);
416 fRegle->AddAt(TMath::Max(
fRegle->At(val) - freq, 0), val);
565 TNamed* nm =
new TNamed(GetName(), Form(
"%d",
GetPopulation()));
581 TArrayI* tab =
new TArrayI(
GetNbre());
584 Int_t contenu =
fRegle->At(ii);
585 for (Int_t cc = 0; cc < contenu; cc += 1)
586 tab->AddAt(ii, mm++);
605 Int_t* tab =
new Int_t[
GetNbre()];
608 Int_t contenu =
fRegle->At(ii);
609 for (Int_t cc = 0; cc < contenu; cc += 1)
632 const char* s1 = this->GetName();
633 const char* s2 = obj->GetName();
640 while (s1[ii] == s2[ii]) {
641 if (ii == len1)
return 0;
658 return (val <= fLimiteRegle ? fRegle->At(val) : -1);
699 void KVIntegerList::Streamer(TBuffer& R__b)
706 if (R__b.IsReading()) {
707 R__b.ReadClassBuffer(TNamed::Class(),
this);
712 R__b.WriteClassBuffer(TNamed::Class(),
this);
Handle a list of positive integers (partition)
Int_t fMult
Nombre d'éléments dans la liste.
Int_t * CreateTableOfValues()
void Add(TArrayI *tab)
void Fill(Double_t* tab,Int_t mult);
virtual Bool_t remove_values(Int_t val, Int_t freq)
Ssiz_t fLength
Longueur du nom de la liste/partition usilisée dans Compare.
virtual void DeducePartitionFromName()
protected method, utilisee par le Streamer
void Clear(Option_t *option="")
Classe dérivée de TNamed, Reinitialisation de l'object.
virtual void SetPartition(const Char_t *par)
Int_t Compare(const TObject *obj) const
Int_t fLimiteRegle
taille max de fRegle
void ResetPopulation()
Remet à 1 la population (comme dans le ctor)
void Print(Option_t *option="") const
Classe dérivée de TNamed, Imprime la liste formattée et la population associée.
virtual void add_values(Int_t val, Int_t freq)
virtual void DeducePartitionFromTNamed()
void Copy(TObject &named) const
Classe dérivée de TNamed, fait une copie vers l'objet obj.
Ssiz_t GetLengthName() const
void AddPopulation(Int_t pop)
Incrémente la population de "pop" fois.
Int_t GetFrequency(Int_t val) const
Int_t fPop
population de la liste/partition consideree, permet le comptage de partitions identiques dansun lot d...
Bool_t Contains(Int_t val) const
TNamed * CreateTNamed()
KVPartition* CreateKVPartition(Int_t mom_max=5);.
TArrayI * fRegle
tableau d'entiers où sont stockée l'occurence des valeurs
void Fill(Int_t *tab, Int_t mult)
void Fill(TArrayI* tab);
virtual void DeducePopulationFromTitle()
protected method, utilisee par le Streamer
void SetPopulation(Int_t pop)
Initialise la population à "pop".
Int_t GetPopulation() const
Bool_t Remove(Int_t val, Int_t freq)
TArrayI * CreateTArrayI()
Bool_t RemoveAll(Int_t val)
virtual ~KVIntegerList()
Destructor.
virtual void ResetRegle()
protected method, Mise a zero de l'ensemble des valeurs
Bool_t ToBeUpdated()
protected method, test si les grandeurs associées à la liste doivent etre mises a jour
KVIntegerList()
Default constructor.
Extension of ROOT TString class which allows backwards compatibility with ROOT v3....
void Begin(TString delim) const
KVString Next(Bool_t strip_whitespace=kFALSE) const