ROOT logo
/**************************************************************************
 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 *                                                                        *
 * Author: The ALICE Off-line Project.                                    *
 * Contributors are mentioned in the code where appropriate.              *
 *                                                                        *
 * Permission to use, copy, modify and distribute this software and its   *
 * documentation strictly for non-commercial purposes is hereby granted   *
 * without fee, provided that the above copyright notice appears in all   *
 * copies and that both the copyright notice and this permission notice   *
 * appear in the supporting documentation. The authors make no claims     *
 * about the suitability of this software for any purpose. It is          *
 * provided "as is" without express or implied warranty.                  *
 **************************************************************************/

////////////////////////////////////////////////////////////////////////////////
//                                                                            //
// This class represents the value(s) of a the LHC DPs at a given timestamp   //
// The variuos measurement that occurred at the same timestamp are associated //
// to the same timestamp.                                                     //  
//                                                                            //
////////////////////////////////////////////////////////////////////////////////


#include "AliDCSArray.h"
#include "AliLog.h"

//#include "TTimeStamp.h"
#include <TObjArray.h>
#include <TObjString.h>
#include <TString.h>
#include <TMath.h>

ClassImp(AliDCSArray)
	
AliDCSArray::AliDCSArray() :
		TObject(),
		fType(kInvalid),
		fnentries(0),
		fBool(0x0),
		fChar(0x0),
		fInt(0x0),
		fUInt(0x0),
		fFloat(0x0),
		fStringArray(0x0),
		fTimeStamp(-1.),
		fDouble(0x0)
{
	//
	// default constructor
	//
}

//--------------------------------------------------------------------------
AliDCSArray::AliDCSArray(Int_t nentries, Bool_t* value, Double_t timeStamp) : 
	TObject(),
	fType(kBool),
	fnentries(nentries),
	fBool(new Bool_t[fnentries]),
	fChar(0x0),
	fInt(0x0),
	fUInt(0x0),
	fFloat(0x0),
	fStringArray(0x0),
	fTimeStamp(timeStamp),
	fDouble(0x0)
{
	//
	// constructor for Bool
	//
	
	for (Int_t i = 0; i<fnentries; i++){
		fBool[i] = value[i];
	}
}

//--------------------------------------------------------------------------
AliDCSArray::AliDCSArray(Int_t nentries, Char_t* value, Double_t timeStamp) :
	TObject(),
	fType(kChar),
	fnentries(nentries),
	fBool(0x0),
	fChar(new Char_t[fnentries]),
	fInt(0x0),
	fUInt(0x0),
	fFloat(0x0),
	fStringArray(0x0),
	fTimeStamp(timeStamp),
	fDouble(0x0)
{
	//
	// constructor for Char
	//
	for (Int_t i = 0; i<fnentries; i++){
		fChar[i] = value[i];
	}
}

//-------------------------------------------------------------------------
AliDCSArray::AliDCSArray(Int_t nentries, Int_t* value, Double_t timeStamp) :
	TObject(),
	fType(kInt),
	fnentries(nentries),
	fBool(0x0),
	fChar(0x0),
	fInt(new Int_t[fnentries]),
	fUInt(0x0),
	fFloat(0x0),
	fStringArray(0x0),
	fTimeStamp(timeStamp),
	fDouble(0x0)
{
	//
	// constructor for Int
	//
	for (Int_t i = 0; i<fnentries; i++){
		fInt[i] = value[i];
	}
}

//-------------------------------------------------------------------------
AliDCSArray::AliDCSArray(Int_t nentries, UInt_t* value, Double_t timeStamp) :
	TObject(),
	fType(kUInt),
	fnentries(nentries),
	fBool(0x0),
	fChar(0x0),
	fInt(0x0),
	fUInt(new UInt_t[fnentries]),
	fFloat(0x0),
	fStringArray(0x0),
	fTimeStamp(timeStamp),
	fDouble(0x0)
{
	//
	// constructor for UInt
	//

	for (Int_t i = 0; i<fnentries; i++){
		fUInt[i] = value[i];
	}
}

//-------------------------------------------------------------------------
AliDCSArray::AliDCSArray(Int_t nentries, Float_t* value, Double_t timeStamp) :
	TObject(),
	fType(kFloat),
	fnentries(nentries),
	fBool(0x0),
	fChar(0x0),
	fInt(0x0),
	fUInt(0x0),
	fFloat(new Float_t[fnentries]),
	fStringArray(0x0),
	fTimeStamp(timeStamp),
	fDouble(0x0)
{
	//
	// constructor for Float
	//

	for (Int_t i = 0; i<fnentries; i++){
		fFloat[i] = value[i];
	}
}
//-------------------------------------------------------------------------
AliDCSArray::AliDCSArray(Int_t nentries, Double_t* value, Double_t timeStamp) :
	TObject(),
	fType(kDouble),
	fnentries(nentries),
	fBool(0x0),
	fChar(0x0),
	fInt(0x0),
	fUInt(0x0),
	fFloat(0x0),
	fStringArray(0x0),
	fTimeStamp(timeStamp),
	fDouble(new Double_t[fnentries])
{
	//
	// constructor for Double
	//

	for (Int_t i = 0; i<fnentries; i++){
		fDouble[i] = value[i];
	}
}

//------------------------------------------------------------------------
AliDCSArray::AliDCSArray(Int_t nentries, TObjArray* value, Double_t timeStamp) :
	TObject(),
	fType(kString),
	fnentries(nentries),
	fBool(0x0),
	fChar(0x0),
	fInt(0x0),
	fUInt(0x0),
	fFloat(0x0),
	fStringArray(new TObjArray()),
	fTimeStamp(timeStamp),
	fDouble(0x0)
{
	//
	// constructor for String
	//

	fStringArray->SetOwner(1);
	for (Int_t i = 0; i<fnentries; i++){
		TObjString* strobj = new TObjString();
		strobj->SetString(((TObjString*)value->At(i))->String());
		fStringArray->Add(strobj);
	}
}

//-----------------------------------------------------------------------
AliDCSArray::~AliDCSArray()
{
	//
	// destructor
	//

	if (fBool){
		delete [] fBool;
		fBool = 0x0;
	}
	if (fChar){
		delete [] fChar;
		fChar = 0x0;
	}
	if (fUInt){
		delete [] fUInt;
		fUInt = 0x0;
	}
	if (fInt){
		delete [] fInt;
		fInt = 0x0;
	}
	if (fFloat){
		delete [] fFloat;
		fFloat = 0x0;
	}
	if (fStringArray!=0x0){
		delete fStringArray;
		fStringArray = 0x0;
	}
	if (fDouble){
		delete [] fDouble;
		fDouble = 0x0;
	}
}

//-----------------------------------------------------------------------
void AliDCSArray::Init()
{
	//
	// init helper, that initializes everything to 0
	//
	
	fType = kInvalid;
	
	fnentries = 0;
	fBool = 0x0;
	fChar = 0x0;
	fInt = 0x0;
	fUInt = 0x0;
	fFloat = 0x0;
	fDouble = 0x0;
	fStringArray = 0x0;
	
	fTimeStamp = -1.;
}

 AliDCSArray.cxx:1
 AliDCSArray.cxx:2
 AliDCSArray.cxx:3
 AliDCSArray.cxx:4
 AliDCSArray.cxx:5
 AliDCSArray.cxx:6
 AliDCSArray.cxx:7
 AliDCSArray.cxx:8
 AliDCSArray.cxx:9
 AliDCSArray.cxx:10
 AliDCSArray.cxx:11
 AliDCSArray.cxx:12
 AliDCSArray.cxx:13
 AliDCSArray.cxx:14
 AliDCSArray.cxx:15
 AliDCSArray.cxx:16
 AliDCSArray.cxx:17
 AliDCSArray.cxx:18
 AliDCSArray.cxx:19
 AliDCSArray.cxx:20
 AliDCSArray.cxx:21
 AliDCSArray.cxx:22
 AliDCSArray.cxx:23
 AliDCSArray.cxx:24
 AliDCSArray.cxx:25
 AliDCSArray.cxx:26
 AliDCSArray.cxx:27
 AliDCSArray.cxx:28
 AliDCSArray.cxx:29
 AliDCSArray.cxx:30
 AliDCSArray.cxx:31
 AliDCSArray.cxx:32
 AliDCSArray.cxx:33
 AliDCSArray.cxx:34
 AliDCSArray.cxx:35
 AliDCSArray.cxx:36
 AliDCSArray.cxx:37
 AliDCSArray.cxx:38
 AliDCSArray.cxx:39
 AliDCSArray.cxx:40
 AliDCSArray.cxx:41
 AliDCSArray.cxx:42
 AliDCSArray.cxx:43
 AliDCSArray.cxx:44
 AliDCSArray.cxx:45
 AliDCSArray.cxx:46
 AliDCSArray.cxx:47
 AliDCSArray.cxx:48
 AliDCSArray.cxx:49
 AliDCSArray.cxx:50
 AliDCSArray.cxx:51
 AliDCSArray.cxx:52
 AliDCSArray.cxx:53
 AliDCSArray.cxx:54
 AliDCSArray.cxx:55
 AliDCSArray.cxx:56
 AliDCSArray.cxx:57
 AliDCSArray.cxx:58
 AliDCSArray.cxx:59
 AliDCSArray.cxx:60
 AliDCSArray.cxx:61
 AliDCSArray.cxx:62
 AliDCSArray.cxx:63
 AliDCSArray.cxx:64
 AliDCSArray.cxx:65
 AliDCSArray.cxx:66
 AliDCSArray.cxx:67
 AliDCSArray.cxx:68
 AliDCSArray.cxx:69
 AliDCSArray.cxx:70
 AliDCSArray.cxx:71
 AliDCSArray.cxx:72
 AliDCSArray.cxx:73
 AliDCSArray.cxx:74
 AliDCSArray.cxx:75
 AliDCSArray.cxx:76
 AliDCSArray.cxx:77
 AliDCSArray.cxx:78
 AliDCSArray.cxx:79
 AliDCSArray.cxx:80
 AliDCSArray.cxx:81
 AliDCSArray.cxx:82
 AliDCSArray.cxx:83
 AliDCSArray.cxx:84
 AliDCSArray.cxx:85
 AliDCSArray.cxx:86
 AliDCSArray.cxx:87
 AliDCSArray.cxx:88
 AliDCSArray.cxx:89
 AliDCSArray.cxx:90
 AliDCSArray.cxx:91
 AliDCSArray.cxx:92
 AliDCSArray.cxx:93
 AliDCSArray.cxx:94
 AliDCSArray.cxx:95
 AliDCSArray.cxx:96
 AliDCSArray.cxx:97
 AliDCSArray.cxx:98
 AliDCSArray.cxx:99
 AliDCSArray.cxx:100
 AliDCSArray.cxx:101
 AliDCSArray.cxx:102
 AliDCSArray.cxx:103
 AliDCSArray.cxx:104
 AliDCSArray.cxx:105
 AliDCSArray.cxx:106
 AliDCSArray.cxx:107
 AliDCSArray.cxx:108
 AliDCSArray.cxx:109
 AliDCSArray.cxx:110
 AliDCSArray.cxx:111
 AliDCSArray.cxx:112
 AliDCSArray.cxx:113
 AliDCSArray.cxx:114
 AliDCSArray.cxx:115
 AliDCSArray.cxx:116
 AliDCSArray.cxx:117
 AliDCSArray.cxx:118
 AliDCSArray.cxx:119
 AliDCSArray.cxx:120
 AliDCSArray.cxx:121
 AliDCSArray.cxx:122
 AliDCSArray.cxx:123
 AliDCSArray.cxx:124
 AliDCSArray.cxx:125
 AliDCSArray.cxx:126
 AliDCSArray.cxx:127
 AliDCSArray.cxx:128
 AliDCSArray.cxx:129
 AliDCSArray.cxx:130
 AliDCSArray.cxx:131
 AliDCSArray.cxx:132
 AliDCSArray.cxx:133
 AliDCSArray.cxx:134
 AliDCSArray.cxx:135
 AliDCSArray.cxx:136
 AliDCSArray.cxx:137
 AliDCSArray.cxx:138
 AliDCSArray.cxx:139
 AliDCSArray.cxx:140
 AliDCSArray.cxx:141
 AliDCSArray.cxx:142
 AliDCSArray.cxx:143
 AliDCSArray.cxx:144
 AliDCSArray.cxx:145
 AliDCSArray.cxx:146
 AliDCSArray.cxx:147
 AliDCSArray.cxx:148
 AliDCSArray.cxx:149
 AliDCSArray.cxx:150
 AliDCSArray.cxx:151
 AliDCSArray.cxx:152
 AliDCSArray.cxx:153
 AliDCSArray.cxx:154
 AliDCSArray.cxx:155
 AliDCSArray.cxx:156
 AliDCSArray.cxx:157
 AliDCSArray.cxx:158
 AliDCSArray.cxx:159
 AliDCSArray.cxx:160
 AliDCSArray.cxx:161
 AliDCSArray.cxx:162
 AliDCSArray.cxx:163
 AliDCSArray.cxx:164
 AliDCSArray.cxx:165
 AliDCSArray.cxx:166
 AliDCSArray.cxx:167
 AliDCSArray.cxx:168
 AliDCSArray.cxx:169
 AliDCSArray.cxx:170
 AliDCSArray.cxx:171
 AliDCSArray.cxx:172
 AliDCSArray.cxx:173
 AliDCSArray.cxx:174
 AliDCSArray.cxx:175
 AliDCSArray.cxx:176
 AliDCSArray.cxx:177
 AliDCSArray.cxx:178
 AliDCSArray.cxx:179
 AliDCSArray.cxx:180
 AliDCSArray.cxx:181
 AliDCSArray.cxx:182
 AliDCSArray.cxx:183
 AliDCSArray.cxx:184
 AliDCSArray.cxx:185
 AliDCSArray.cxx:186
 AliDCSArray.cxx:187
 AliDCSArray.cxx:188
 AliDCSArray.cxx:189
 AliDCSArray.cxx:190
 AliDCSArray.cxx:191
 AliDCSArray.cxx:192
 AliDCSArray.cxx:193
 AliDCSArray.cxx:194
 AliDCSArray.cxx:195
 AliDCSArray.cxx:196
 AliDCSArray.cxx:197
 AliDCSArray.cxx:198
 AliDCSArray.cxx:199
 AliDCSArray.cxx:200
 AliDCSArray.cxx:201
 AliDCSArray.cxx:202
 AliDCSArray.cxx:203
 AliDCSArray.cxx:204
 AliDCSArray.cxx:205
 AliDCSArray.cxx:206
 AliDCSArray.cxx:207
 AliDCSArray.cxx:208
 AliDCSArray.cxx:209
 AliDCSArray.cxx:210
 AliDCSArray.cxx:211
 AliDCSArray.cxx:212
 AliDCSArray.cxx:213
 AliDCSArray.cxx:214
 AliDCSArray.cxx:215
 AliDCSArray.cxx:216
 AliDCSArray.cxx:217
 AliDCSArray.cxx:218
 AliDCSArray.cxx:219
 AliDCSArray.cxx:220
 AliDCSArray.cxx:221
 AliDCSArray.cxx:222
 AliDCSArray.cxx:223
 AliDCSArray.cxx:224
 AliDCSArray.cxx:225
 AliDCSArray.cxx:226
 AliDCSArray.cxx:227
 AliDCSArray.cxx:228
 AliDCSArray.cxx:229
 AliDCSArray.cxx:230
 AliDCSArray.cxx:231
 AliDCSArray.cxx:232
 AliDCSArray.cxx:233
 AliDCSArray.cxx:234
 AliDCSArray.cxx:235
 AliDCSArray.cxx:236
 AliDCSArray.cxx:237
 AliDCSArray.cxx:238
 AliDCSArray.cxx:239
 AliDCSArray.cxx:240
 AliDCSArray.cxx:241
 AliDCSArray.cxx:242
 AliDCSArray.cxx:243
 AliDCSArray.cxx:244
 AliDCSArray.cxx:245
 AliDCSArray.cxx:246
 AliDCSArray.cxx:247
 AliDCSArray.cxx:248
 AliDCSArray.cxx:249
 AliDCSArray.cxx:250
 AliDCSArray.cxx:251
 AliDCSArray.cxx:252
 AliDCSArray.cxx:253
 AliDCSArray.cxx:254
 AliDCSArray.cxx:255
 AliDCSArray.cxx:256
 AliDCSArray.cxx:257
 AliDCSArray.cxx:258
 AliDCSArray.cxx:259
 AliDCSArray.cxx:260
 AliDCSArray.cxx:261
 AliDCSArray.cxx:262
 AliDCSArray.cxx:263
 AliDCSArray.cxx:264
 AliDCSArray.cxx:265
 AliDCSArray.cxx:266
 AliDCSArray.cxx:267
 AliDCSArray.cxx:268
 AliDCSArray.cxx:269
 AliDCSArray.cxx:270
 AliDCSArray.cxx:271
 AliDCSArray.cxx:272