////////////////////////////////////////////////////////
//  Value container implementation file
//
//  Just a small container class for user-defined values  
//
////////////////////////////////////////////////////////


#include "PValues.h"
#include <iostream>
#include <string.h>

using namespace std;

PValues::PValues() {
    pointer = 0;
}

PValues::PValues(const PValues &p) : TObject() {
    pointer = p.pointer;

    for (int i=0; i<pointer; i++) {
	array_id[i]  = p.array_id[i];
	array_val[i] = p.array_val[i];
    }
}

bool PValues::SetValue(int id, double val) {

    for (int i=0; i<pointer; i++) {
	if (array_id[i] == id) {
	    array_val[i] = val;
	    return kTRUE;
	}
    }
    if (pointer == MAX_VALUES) {
	return kFALSE;
    }

    array_val[pointer] = val;
    array_id[pointer]  = id;

    pointer++;

    return kTRUE;
}

bool PValues::GetValue(int id, double *val) {
    for (int i=0; i<pointer; i++) {
	if (array_id[i] == id) {
	    *val = array_val[i];
	    return kTRUE;
	}
    }
    return kFALSE;
}

int  PValues::StringToValueID(char *st) {
    if (!strcmp(st, "t"))  return T_MATRIX;
    if (!strcmp(st, "u"))  return U_MATRIX;
    if (!strcmp(st, "tu")) return TU_MATRIX;
    return -1;
}

void PValues::Print(const Option_t *) const {
    for (int i=0; i<pointer; i++) {
	cout << "Value #"<< array_id[i] <<" is: " << array_val[i] << endl;
    }
}

 
ClassImp(PValues)
 PValues.cc:1
 PValues.cc:2
 PValues.cc:3
 PValues.cc:4
 PValues.cc:5
 PValues.cc:6
 PValues.cc:7
 PValues.cc:8
 PValues.cc:9
 PValues.cc:10
 PValues.cc:11
 PValues.cc:12
 PValues.cc:13
 PValues.cc:14
 PValues.cc:15
 PValues.cc:16
 PValues.cc:17
 PValues.cc:18
 PValues.cc:19
 PValues.cc:20
 PValues.cc:21
 PValues.cc:22
 PValues.cc:23
 PValues.cc:24
 PValues.cc:25
 PValues.cc:26
 PValues.cc:27
 PValues.cc:28
 PValues.cc:29
 PValues.cc:30
 PValues.cc:31
 PValues.cc:32
 PValues.cc:33
 PValues.cc:34
 PValues.cc:35
 PValues.cc:36
 PValues.cc:37
 PValues.cc:38
 PValues.cc:39
 PValues.cc:40
 PValues.cc:41
 PValues.cc:42
 PValues.cc:43
 PValues.cc:44
 PValues.cc:45
 PValues.cc:46
 PValues.cc:47
 PValues.cc:48
 PValues.cc:49
 PValues.cc:50
 PValues.cc:51
 PValues.cc:52
 PValues.cc:53
 PValues.cc:54
 PValues.cc:55
 PValues.cc:56
 PValues.cc:57
 PValues.cc:58
 PValues.cc:59
 PValues.cc:60
 PValues.cc:61
 PValues.cc:62
 PValues.cc:63
 PValues.cc:64
 PValues.cc:65
 PValues.cc:66
 PValues.cc:67
 PValues.cc:68
 PValues.cc:69
 PValues.cc:70
 PValues.cc:71
 PValues.cc:72