5#include "KVNumberList.h"
33 while (!lname.
End()) {
35 SetValue(tamp.
Data(), kval_tot++);
40 for (
Int_t mm = 0; mm <= kordre_mom_max; mm += 1) {
41 smoment.
Form(
"SUM%d", mm);
42 SetValue(smoment.
Data(), kval_tot++);
46 values =
new Double_t[knbre_val_max];
166 printf(
"KVValues::Print_NVL\n%s : %d values computed\n",
GetName(),
kval_tot);
200 fm->SetParameter(nn,
values[nn]);
215 Warning(
"DefineAdditionalValue",
"le nom de variable %s est deja utilise",
name.Data());
224 Warning(
"DefineAdditionalValue",
"la KVNumberList est vide #%s#", nl->
GetList());
234 Error(
"DefineAdditionalValue",
"La traduction de l'expression %s a echouee", expr.
Data());
246 if (fm->GetExpFormula().IsNull()) {
247 Warning(
"AddFormula",
"%s considere comme nulle", expr.
Data());
271 const char* expression =
clone.Data();
273 Int_t nouvert = 0, nferme = 0;
274 Int_t posouvert = 0, posferme = 0;
278 for (
Int_t ii = 0; ii <= nsize; ii += 1) {
279 if (expression[ii] == O[0]) {
283 else if (expression[ii] ==
F[0]) {
308 s1.Form(
"[%s]", st.
Data());
310 s2.
Form(
"[%d]", idx);
317 if (nouvert != nferme || nvar != nouvert) {
318 Error(
"TransformExpr",
"nombre [ : %d - nombre de ] : %d - nombre de variables %d", nouvert, nferme, nvar);
436 Warning(
"GetValueExpression",
"Cette methode n'est implementee que pour les valeurs additionelles idx > %d",
kval_base);
449 else if (opt ==
"add")
return kval_add;
TObject * clone(const char *newname) const override
Extended TList class which owns its objects by default.
Int_t GetIntValue(const Char_t *name) const
void SetValue(const Char_t *name, value_type value)
const Char_t * GetNameAt(Int_t idx) const
Int_t GetNpar() const
return the number of stored parameters
Bool_t HasParameter(const Char_t *name) const
Strings used to represent a set of ranges of values.
const Char_t * GetList() const
void Add(Int_t)
Add value 'n' to the list.
virtual TObject * At(Int_t idx) const
virtual void Add(TObject *obj)
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
Handle Operation on variable.
Int_t kval_tot
nbre total de valeurs definies kval_tot = kval_base+kval_add (=KVNameValueList::GetNpar())
void Clear(Option_t *option="")
Int_t GetNValues(KVString opt="base") const
Bool_t Add(KVValues *val)
KVNumberList * TransformExpression(KVString &expr)
Int_t kdeb
separation entre les valeurs MIN et MAX et les valeurs moments SUMd, par defaut kdeb=2
KVList * kpar_add
liste contenant les liste de parametres (stockees en KVNumberList)
void FillVar(Double_t val)
void LinkParameters(KVNumberList *nl)
void DefineAdditionalValue(KVString name, KVString expr)
Double_t GetValue(Int_t idx) const
KVValues()
default constructor
Int_t GetValuePosition(const Char_t *name) const
Int_t kordre_mom_max
ordre maximum pour le calcul des moments (argument du constructeur)
TString GetValueExpression(const Char_t *name) const
Bool_t AddFormula(KVString name, KVString expr)
KVList * kform_add
liste contenant les formules des variables additionnelle (stockees en TFormula)
Int_t GetNumberOfFilling() const
virtual ~KVValues()
destructeur
Int_t kval_base
nbre de valeurs de base definies par le constructeur, kval_base = kdeb+kordre_mom_max+1
void init_val_add()
protected method
Int_t kTimesFillVarIsCalled
nombre de fois ou la methode FillVar est appelee
void Print(Option_t *option="") const
Info("Print","%s : %d values computed",GetName(),kval_tot);.
void init_val()
protected method
Int_t GetOrdreMax() const
Int_t kval_add
nbre de valeurs additionelles definies via la methode DefineAdditionalValue
void ComputeAdditionalValues(Int_t min=-1, Int_t max=-1)
Int_t knbre_val_max
nombre maximum de valeurs pouvant etre calculees (argument du constructeur)
Double_t * values
[knbre_val_max] tableau ou sont stockees les valeurs
const char * GetName() const override
virtual void SetName(const char *name)
virtual void Warning(const char *method, const char *msgfmt,...) const
virtual void Error(const char *method, const char *msgfmt,...) const
const char * Data() const
void Form(const char *fmt,...)
TString & ReplaceAll(const char *s1, const char *s2)
double min(double x, double y)
double max(double x, double y)
Double_t Power(Double_t x, Double_t y)