ROOT logo
////////////////////////////////////////////////////////////////////////////////////
// Author: Henrik Tydesjo                                                         //
//                                                                                //
// Class for storing conditions data from Pixel Trigger (PIT) algorithms.         //
// This holds a sub set of the conditions data needed.                            //
// It is used by AliITSTriggerConditions, which holds all the information.        //
// AliITSTriggerConditions contains a TObjArray of this type.                     //
//                                                                                //
////////////////////////////////////////////////////////////////////////////////////

#include "AliITSTriggerAlgorithmConditions.h"
#include <TObjString.h>

ClassImp(AliITSTriggerAlgorithmConditions)

//__________________________________________________________________________
AliITSTriggerAlgorithmConditions::AliITSTriggerAlgorithmConditions():
TObject(),
fId(0),
fLabel(TString("label")),
fDescription(TString("descr")),
fNumParam(0),
fParamNames(TObjArray(3)),
fParamValues(TArrayI(3))
{
  // default constructor
  fParamNames.SetOwner(kTRUE);
}
//__________________________________________________________________________
AliITSTriggerAlgorithmConditions::AliITSTriggerAlgorithmConditions(UShort_t id, const Char_t* label, const Char_t* descr):
TObject(),
fId(id),
fLabel(label),
fDescription(descr),
fNumParam(0),
fParamNames(TObjArray(3)),
fParamValues(TArrayI(3))
{
  // optional constructor
  fParamNames.SetOwner(kTRUE);
}
//__________________________________________________________________________
AliITSTriggerAlgorithmConditions::AliITSTriggerAlgorithmConditions(const AliITSTriggerAlgorithmConditions& cond):
TObject(),
fId(cond.fId),
fLabel(cond.fLabel),
fDescription(cond.fDescription),
fNumParam(cond.fNumParam),
fParamNames(cond.fParamNames),
fParamValues(cond.fParamValues)
{
  // default constructor
  fParamNames.SetOwner(kTRUE);
}
//__________________________________________________________________________
AliITSTriggerAlgorithmConditions::~AliITSTriggerAlgorithmConditions() 
{
  // destructor
  ClearParams();
}
//__________________________________________________________________________
AliITSTriggerAlgorithmConditions& AliITSTriggerAlgorithmConditions::operator=(const AliITSTriggerAlgorithmConditions& cond) {
  // assignment operator
  if (this!=&cond) {
    fId = cond.fId;
    fLabel = cond.fLabel;
    fDescription = cond.fDescription;
    fNumParam = cond.fNumParam;
    fParamNames = cond.fParamNames;
    fParamValues = cond.fParamValues;
  }
  return *this;
}
//__________________________________________________________________________
void AliITSTriggerAlgorithmConditions::ClearParams() {
  // clears parameter list
  fParamNames.Clear();
  fNumParam=0;
}
//__________________________________________________________________________
void AliITSTriggerAlgorithmConditions::AddParam(const Char_t* name, Int_t value) {
  // adds a new parameter with name 'name' and value 'value'
  // if the name is already present in the list, the parameter value will be over-written
  UShort_t findIndex=fNumParam;
  for (UInt_t i=0; i<fNumParam; i++) {
    if (((TObjString*)fParamNames.At(i))->GetString().CompareTo(name, TString::kIgnoreCase) == 0) {
      findIndex = i;
      break;
    }
  }
  if (findIndex<fNumParam) {
    fParamValues[findIndex]=value;
  }
  else {
    fParamNames.AddAtAndExpand(new TObjString(name),fNumParam);
    Int_t valSize = fParamValues.GetSize();
    if (valSize<=fNumParam) fParamValues.Set(valSize*2);
    fParamValues[fNumParam]=value;
    fNumParam++;
  }
}
//__________________________________________________________________________
const Char_t* AliITSTriggerAlgorithmConditions::GetParamNameI(UShort_t index) const {
  // returns parameter name for parameter at position index
  if (index>=fNumParam) {
    Error("AliITSTriggerAlgorithmConditions::GetParamNameI", "index %d out of range", index);
    return "dummy";
  }
  return ((TObjString*)fParamNames.At(index))->GetString().Data();
}
//__________________________________________________________________________
Int_t AliITSTriggerAlgorithmConditions::GetParamValueI(UShort_t index) const {
  // returns paramter value at position index
  if (index>=fNumParam) {
    Error("AliITSTriggerAlgorithmConditions::GetParamValueI", "index %d out of range", index);
    return -1;
  }
  return fParamValues.At(index);
}
//__________________________________________________________________________
Int_t AliITSTriggerAlgorithmConditions::GetParamValueN(const Char_t* name) const {
  // returns parameter value for parameter with name 'name'
  UShort_t findIndex=fNumParam;
  for (UInt_t i=0; i<fNumParam; i++) {
    if (((TObjString*)fParamNames.At(i))->GetString().CompareTo(name, TString::kIgnoreCase) == 0) {
      findIndex = i;
      break;
    }
  }
  if (findIndex==fNumParam) {
    Error("AliITSTriggerAlgorithmConditions::GetParamValueN", "name %s not found", name);
    return -1;
  }
  return fParamValues.At(findIndex);
}
 AliITSTriggerAlgorithmConditions.cxx:1
 AliITSTriggerAlgorithmConditions.cxx:2
 AliITSTriggerAlgorithmConditions.cxx:3
 AliITSTriggerAlgorithmConditions.cxx:4
 AliITSTriggerAlgorithmConditions.cxx:5
 AliITSTriggerAlgorithmConditions.cxx:6
 AliITSTriggerAlgorithmConditions.cxx:7
 AliITSTriggerAlgorithmConditions.cxx:8
 AliITSTriggerAlgorithmConditions.cxx:9
 AliITSTriggerAlgorithmConditions.cxx:10
 AliITSTriggerAlgorithmConditions.cxx:11
 AliITSTriggerAlgorithmConditions.cxx:12
 AliITSTriggerAlgorithmConditions.cxx:13
 AliITSTriggerAlgorithmConditions.cxx:14
 AliITSTriggerAlgorithmConditions.cxx:15
 AliITSTriggerAlgorithmConditions.cxx:16
 AliITSTriggerAlgorithmConditions.cxx:17
 AliITSTriggerAlgorithmConditions.cxx:18
 AliITSTriggerAlgorithmConditions.cxx:19
 AliITSTriggerAlgorithmConditions.cxx:20
 AliITSTriggerAlgorithmConditions.cxx:21
 AliITSTriggerAlgorithmConditions.cxx:22
 AliITSTriggerAlgorithmConditions.cxx:23
 AliITSTriggerAlgorithmConditions.cxx:24
 AliITSTriggerAlgorithmConditions.cxx:25
 AliITSTriggerAlgorithmConditions.cxx:26
 AliITSTriggerAlgorithmConditions.cxx:27
 AliITSTriggerAlgorithmConditions.cxx:28
 AliITSTriggerAlgorithmConditions.cxx:29
 AliITSTriggerAlgorithmConditions.cxx:30
 AliITSTriggerAlgorithmConditions.cxx:31
 AliITSTriggerAlgorithmConditions.cxx:32
 AliITSTriggerAlgorithmConditions.cxx:33
 AliITSTriggerAlgorithmConditions.cxx:34
 AliITSTriggerAlgorithmConditions.cxx:35
 AliITSTriggerAlgorithmConditions.cxx:36
 AliITSTriggerAlgorithmConditions.cxx:37
 AliITSTriggerAlgorithmConditions.cxx:38
 AliITSTriggerAlgorithmConditions.cxx:39
 AliITSTriggerAlgorithmConditions.cxx:40
 AliITSTriggerAlgorithmConditions.cxx:41
 AliITSTriggerAlgorithmConditions.cxx:42
 AliITSTriggerAlgorithmConditions.cxx:43
 AliITSTriggerAlgorithmConditions.cxx:44
 AliITSTriggerAlgorithmConditions.cxx:45
 AliITSTriggerAlgorithmConditions.cxx:46
 AliITSTriggerAlgorithmConditions.cxx:47
 AliITSTriggerAlgorithmConditions.cxx:48
 AliITSTriggerAlgorithmConditions.cxx:49
 AliITSTriggerAlgorithmConditions.cxx:50
 AliITSTriggerAlgorithmConditions.cxx:51
 AliITSTriggerAlgorithmConditions.cxx:52
 AliITSTriggerAlgorithmConditions.cxx:53
 AliITSTriggerAlgorithmConditions.cxx:54
 AliITSTriggerAlgorithmConditions.cxx:55
 AliITSTriggerAlgorithmConditions.cxx:56
 AliITSTriggerAlgorithmConditions.cxx:57
 AliITSTriggerAlgorithmConditions.cxx:58
 AliITSTriggerAlgorithmConditions.cxx:59
 AliITSTriggerAlgorithmConditions.cxx:60
 AliITSTriggerAlgorithmConditions.cxx:61
 AliITSTriggerAlgorithmConditions.cxx:62
 AliITSTriggerAlgorithmConditions.cxx:63
 AliITSTriggerAlgorithmConditions.cxx:64
 AliITSTriggerAlgorithmConditions.cxx:65
 AliITSTriggerAlgorithmConditions.cxx:66
 AliITSTriggerAlgorithmConditions.cxx:67
 AliITSTriggerAlgorithmConditions.cxx:68
 AliITSTriggerAlgorithmConditions.cxx:69
 AliITSTriggerAlgorithmConditions.cxx:70
 AliITSTriggerAlgorithmConditions.cxx:71
 AliITSTriggerAlgorithmConditions.cxx:72
 AliITSTriggerAlgorithmConditions.cxx:73
 AliITSTriggerAlgorithmConditions.cxx:74
 AliITSTriggerAlgorithmConditions.cxx:75
 AliITSTriggerAlgorithmConditions.cxx:76
 AliITSTriggerAlgorithmConditions.cxx:77
 AliITSTriggerAlgorithmConditions.cxx:78
 AliITSTriggerAlgorithmConditions.cxx:79
 AliITSTriggerAlgorithmConditions.cxx:80
 AliITSTriggerAlgorithmConditions.cxx:81
 AliITSTriggerAlgorithmConditions.cxx:82
 AliITSTriggerAlgorithmConditions.cxx:83
 AliITSTriggerAlgorithmConditions.cxx:84
 AliITSTriggerAlgorithmConditions.cxx:85
 AliITSTriggerAlgorithmConditions.cxx:86
 AliITSTriggerAlgorithmConditions.cxx:87
 AliITSTriggerAlgorithmConditions.cxx:88
 AliITSTriggerAlgorithmConditions.cxx:89
 AliITSTriggerAlgorithmConditions.cxx:90
 AliITSTriggerAlgorithmConditions.cxx:91
 AliITSTriggerAlgorithmConditions.cxx:92
 AliITSTriggerAlgorithmConditions.cxx:93
 AliITSTriggerAlgorithmConditions.cxx:94
 AliITSTriggerAlgorithmConditions.cxx:95
 AliITSTriggerAlgorithmConditions.cxx:96
 AliITSTriggerAlgorithmConditions.cxx:97
 AliITSTriggerAlgorithmConditions.cxx:98
 AliITSTriggerAlgorithmConditions.cxx:99
 AliITSTriggerAlgorithmConditions.cxx:100
 AliITSTriggerAlgorithmConditions.cxx:101
 AliITSTriggerAlgorithmConditions.cxx:102
 AliITSTriggerAlgorithmConditions.cxx:103
 AliITSTriggerAlgorithmConditions.cxx:104
 AliITSTriggerAlgorithmConditions.cxx:105
 AliITSTriggerAlgorithmConditions.cxx:106
 AliITSTriggerAlgorithmConditions.cxx:107
 AliITSTriggerAlgorithmConditions.cxx:108
 AliITSTriggerAlgorithmConditions.cxx:109
 AliITSTriggerAlgorithmConditions.cxx:110
 AliITSTriggerAlgorithmConditions.cxx:111
 AliITSTriggerAlgorithmConditions.cxx:112
 AliITSTriggerAlgorithmConditions.cxx:113
 AliITSTriggerAlgorithmConditions.cxx:114
 AliITSTriggerAlgorithmConditions.cxx:115
 AliITSTriggerAlgorithmConditions.cxx:116
 AliITSTriggerAlgorithmConditions.cxx:117
 AliITSTriggerAlgorithmConditions.cxx:118
 AliITSTriggerAlgorithmConditions.cxx:119
 AliITSTriggerAlgorithmConditions.cxx:120
 AliITSTriggerAlgorithmConditions.cxx:121
 AliITSTriggerAlgorithmConditions.cxx:122
 AliITSTriggerAlgorithmConditions.cxx:123
 AliITSTriggerAlgorithmConditions.cxx:124
 AliITSTriggerAlgorithmConditions.cxx:125
 AliITSTriggerAlgorithmConditions.cxx:126
 AliITSTriggerAlgorithmConditions.cxx:127
 AliITSTriggerAlgorithmConditions.cxx:128
 AliITSTriggerAlgorithmConditions.cxx:129
 AliITSTriggerAlgorithmConditions.cxx:130
 AliITSTriggerAlgorithmConditions.cxx:131
 AliITSTriggerAlgorithmConditions.cxx:132
 AliITSTriggerAlgorithmConditions.cxx:133
 AliITSTriggerAlgorithmConditions.cxx:134
 AliITSTriggerAlgorithmConditions.cxx:135