ROOT logo
#include "AliParamList.h"
#include <TString.h>
#include <AliLog.h>

ClassImp(AliParamList)

//_____________________________________________________________________
AliParamList::AliParamList(Int_t n, const Double_t *parVal)
: fID(0)
  , fNPar(0)
  , fNames(0)
  , fParams(0)
{
  // def. c-tor
  //
  if (n>0) {
    SetNParams(n);
    if (parVal) SetParameters(parVal);
  }
}

//_____________________________________________________________________
AliParamList::AliParamList(const AliParamList& src)
  : TNamed(src)
  , fID(src.fID)
  , fNPar(src.fNPar)
  , fNames(0)
  , fParams(0)
{
  // copy c-tor
  if (fNPar>0) {
    fParams = new Double_t[fNPar];
    for (int i=fNPar;i--;) {
      fNames[i] = src.fNames[i];
      fParams[i] = src.fParams[i];
    }
  }
}

//_____________________________________________________________________
AliParamList& AliParamList::operator=(const AliParamList& src)
{
  // copy op.
  if (this != &src) {
    this->~AliParamList();
    new(this) AliParamList(src);
  }
  return *this;
  //
}

//_____________________________________________________________________
AliParamList::~AliParamList()
{
  // d-tor
  delete[] fNames;
  delete[] fParams;
}

//_____________________________________________________________________
void AliParamList::SetNParams(Int_t n)
{
  // init params structure
  if (fNPar) AliFatal(Form("N params was already set to %d",fNPar));
  fNPar = n;
  fParams = new Double_t[fNPar];
  fNames = new TString[fNPar];
  for (int i=fNPar;i--;) fParams[i] = 0.;
  //
}

//_____________________________________________________________________
void AliParamList::SetParName(Int_t i,const char* nm)
{
  // assign param name
  if (i<0||i>=fNPar) AliFatal(Form("Param %d accessed while the range is %d : %d",i,0,fNPar));
  fNames[i] = nm;
}

//_____________________________________________________________________
void AliParamList::SetParameter(Int_t i, Double_t v, const char* nm)
{
  // assign param value and optionally name
  if (i<0||i>=fNPar) AliFatal(Form("Param %d accessed while the range is %d : %d",i,0,fNPar));
  fParams[i] = v;
  fNames[i] = nm;
}

//_____________________________________________________________________
void AliParamList::Print(Option_t *) const
{
  // print itself
  printf("ParamList#%d/%d %s %s\n",fID,GetUniqueID(),GetName(),GetTitle());
  for (int i=0;i<fNPar;i++) printf("#%2d\t%20s\t%e\n",i,GetParName(i),GetParameter(i));
}

//_____________________________________________________________________
const Char_t* AliParamList::GetParName(Int_t i) const 
{
  // get par name
  return (fNames[i].IsNull()) ? Form("par%d",i) : fNames[i].Data();;
}
 AliParamList.cxx:1
 AliParamList.cxx:2
 AliParamList.cxx:3
 AliParamList.cxx:4
 AliParamList.cxx:5
 AliParamList.cxx:6
 AliParamList.cxx:7
 AliParamList.cxx:8
 AliParamList.cxx:9
 AliParamList.cxx:10
 AliParamList.cxx:11
 AliParamList.cxx:12
 AliParamList.cxx:13
 AliParamList.cxx:14
 AliParamList.cxx:15
 AliParamList.cxx:16
 AliParamList.cxx:17
 AliParamList.cxx:18
 AliParamList.cxx:19
 AliParamList.cxx:20
 AliParamList.cxx:21
 AliParamList.cxx:22
 AliParamList.cxx:23
 AliParamList.cxx:24
 AliParamList.cxx:25
 AliParamList.cxx:26
 AliParamList.cxx:27
 AliParamList.cxx:28
 AliParamList.cxx:29
 AliParamList.cxx:30
 AliParamList.cxx:31
 AliParamList.cxx:32
 AliParamList.cxx:33
 AliParamList.cxx:34
 AliParamList.cxx:35
 AliParamList.cxx:36
 AliParamList.cxx:37
 AliParamList.cxx:38
 AliParamList.cxx:39
 AliParamList.cxx:40
 AliParamList.cxx:41
 AliParamList.cxx:42
 AliParamList.cxx:43
 AliParamList.cxx:44
 AliParamList.cxx:45
 AliParamList.cxx:46
 AliParamList.cxx:47
 AliParamList.cxx:48
 AliParamList.cxx:49
 AliParamList.cxx:50
 AliParamList.cxx:51
 AliParamList.cxx:52
 AliParamList.cxx:53
 AliParamList.cxx:54
 AliParamList.cxx:55
 AliParamList.cxx:56
 AliParamList.cxx:57
 AliParamList.cxx:58
 AliParamList.cxx:59
 AliParamList.cxx:60
 AliParamList.cxx:61
 AliParamList.cxx:62
 AliParamList.cxx:63
 AliParamList.cxx:64
 AliParamList.cxx:65
 AliParamList.cxx:66
 AliParamList.cxx:67
 AliParamList.cxx:68
 AliParamList.cxx:69
 AliParamList.cxx:70
 AliParamList.cxx:71
 AliParamList.cxx:72
 AliParamList.cxx:73
 AliParamList.cxx:74
 AliParamList.cxx:75
 AliParamList.cxx:76
 AliParamList.cxx:77
 AliParamList.cxx:78
 AliParamList.cxx:79
 AliParamList.cxx:80
 AliParamList.cxx:81
 AliParamList.cxx:82
 AliParamList.cxx:83
 AliParamList.cxx:84
 AliParamList.cxx:85
 AliParamList.cxx:86
 AliParamList.cxx:87
 AliParamList.cxx:88
 AliParamList.cxx:89
 AliParamList.cxx:90
 AliParamList.cxx:91
 AliParamList.cxx:92
 AliParamList.cxx:93
 AliParamList.cxx:94
 AliParamList.cxx:95
 AliParamList.cxx:96
 AliParamList.cxx:97
 AliParamList.cxx:98
 AliParamList.cxx:99
 AliParamList.cxx:100
 AliParamList.cxx:101
 AliParamList.cxx:102