]> git.uio.no Git - u/mrichter/AliRoot.git/blame - STEER/AliGRPDCS.cxx
Added new materials
[u/mrichter/AliRoot.git] / STEER / AliGRPDCS.cxx
CommitLineData
3dedb44a 1/**************************************************************************
2 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
3 * *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
6 * *
7 * Permission to use, copy, modify and distribute this software and its *
8 * documentation strictly for non-commercial purposes is hereby granted *
9 * without fee, provided that the above copyright notice appears in all *
10 * copies and that both the copyright notice and this permission notice *
11 * appear in the supporting documentation. The authors make no claims *
12 * about the suitability of this software for any purpose. It is *
13 * provided "as is" without express or implied warranty. *
14 **************************************************************************/
15
9edefa04 16/* $Id$ */
17
3dedb44a 18//-----------------------------------------------------------------
19// AliGRPDCS class
20// This class deals with the DCS related info of the GRP
21// Origin: Panos Christakoglou, UOA-CERN, Panos.Christakoglou@cern.ch
e7a6790f 22// Modified: Ernesto.Lopez.Torres@cern.ch CEADEN-CERN
3dedb44a 23//-----------------------------------------------------------------
d18640d0 24#include "Riostream.h"
25#include "TError.h"
3dedb44a 26
27#include "AliGRPDCS.h"
3dedb44a 28#include "AliDCSValue.h"
e97cc90e 29#include "AliLog.h"
3dedb44a 30
3dedb44a 31class TObjString;
32
9edefa04 33#include <TObjArray.h>
3dedb44a 34
35ClassImp(AliGRPDCS)
36
37//_______________________________________________________________
38AliGRPDCS::AliGRPDCS():
e7a6790f 39 TObject(), fStartTime(0), fStopTime(0), fDCSArray(new TObjArray())
40{
3dedb44a 41 // default constructor
42
43}
44
45//_______________________________________________________________
1f9bf847 46AliGRPDCS::AliGRPDCS(TObjArray *dcsArray, UInt_t fStart, UInt_t fStop):
47 TObject(), fStartTime(fStart), fStopTime(fStop), fDCSArray(new TObjArray()) {
3dedb44a 48 // constructor
3dedb44a 49 fDCSArray = dcsArray;
50}
51
52//___________________________________________________________________________
53AliGRPDCS::AliGRPDCS(const AliGRPDCS& grpDcs):
d18640d0 54 TObject(grpDcs),
958ecabf 55 fStartTime(grpDcs.fStartTime), fStopTime(grpDcs.fStopTime),
e7a6790f 56 fDCSArray(grpDcs.fDCSArray)
57{
3dedb44a 58 //copy constructor
59
958ecabf 60 //if (grpDcs.fDCSArray) fDCSArray = new TObjArray();
3dedb44a 61}
62
63//_______________________________________________________________
e7a6790f 64const char* AliGRPDCS::ProcessDCS(Int_t iType)
65{
e97cc90e 66 // process the dcs dps
d18640d0 67 if(!fDCSArray->GetEntries()) {
68 Error("AliGRPDCS::ProcessDCS","No entries in array!!!");
69 return 0;
70 }
71
e7a6790f 72 // 1:Bool - 2:Char - 3:Int - 4:UInt - 5:Float
e97cc90e 73 TString fDCSDataPointValue;
74 switch (iType) {
e7a6790f 75 case 1: {
76 fDCSDataPointValue += ProcessBoolean();
77 break;
78 }
79 case 2: {
80 fDCSDataPointValue += ProcessChar();
81 break;
82 }
83 case 3: {
84 fDCSDataPointValue += ProcessInt();
85 break;
86 }
87 case 4: {
88 fDCSDataPointValue += ProcessUInt();
89 break;
90 }
91 case 5: {
92 fDCSDataPointValue += ProcessFloat();
93 break;
94 }
95// case 6: {
96// fDCSDataPointValue += ProcessString();
97// break;
98// }
99 default: {
100 Error("AliGRPDCS::ProcessDCS", "Unknown type!!!" );
101 break;
102 }
e97cc90e 103 }//switch
104
958ecabf 105 //cout<<fDCSDataPointValue.Data()<<endl;
e97cc90e 106 return fDCSDataPointValue.Data();
107}
108
109//_______________________________________________________________
e7a6790f 110const char* AliGRPDCS::ProcessBoolean()
111{
112 Bool_t fDCSBool = kTRUE;
113
114 AliDCSValue *v = 0x0;
115
116 for(Int_t iCount = 0; iCount < fDCSArray->GetEntries(); iCount++) {
117 v = (AliDCSValue *)fDCSArray->At(iCount);
118 if ((v->GetTimeStamp() >= fStartTime) && (v->GetTimeStamp() <= fStopTime))
119 AliError(Form("DCS values for the parameter changed within the queried interval"));
120 if (v->GetTimeStamp() > fStopTime) continue;
121 fDCSBool = v->GetBool();
122 }
123
124 TString fDCSDataPointValue = (fDCSBool)? "1" : "0";
125
126 return fDCSDataPointValue.Data();
127}
128
129//_______________________________________________________________
130const char* AliGRPDCS::ProcessInt()
131{
e97cc90e 132 Float_t fFDCSArraySum = 0.0, fFDCSArrayMean = 0.0;
1f9bf847 133 Int_t iCounts = 0;
e97cc90e 134 for(Int_t i = 0; i < fDCSArray->GetEntries(); i++) {
135 AliDCSValue *v = (AliDCSValue *)fDCSArray->At(i);
1f9bf847 136 if((v->GetTimeStamp() >= fStartTime) &&(v->GetTimeStamp() <= fStopTime)) {
137 fFDCSArraySum += v->GetInt();
138 iCounts += 1;
139 }
e97cc90e 140 }
1f9bf847 141 if(iCounts != 0) fFDCSArrayMean = fFDCSArraySum/iCounts;
142 else fFDCSArrayMean = -10.;
143
e97cc90e 144 TString fDCSDataPointValue; fDCSDataPointValue += fFDCSArrayMean;
145
146 return fDCSDataPointValue.Data();
147}
148
149//_______________________________________________________________
e7a6790f 150const char* AliGRPDCS::ProcessUInt()
151{
e97cc90e 152 Float_t fFDCSArraySum = 0.0, fFDCSArrayMean = 0.0;
1f9bf847 153 Int_t iCounts = 0;
e97cc90e 154 for(Int_t i = 0; i < fDCSArray->GetEntries(); i++) {
155 AliDCSValue *v = (AliDCSValue *)fDCSArray->At(i);
1f9bf847 156 if((v->GetTimeStamp() >= fStartTime) &&(v->GetTimeStamp() <= fStopTime)) {
157 fFDCSArraySum += v->GetUInt();
158 iCounts += 1;
159 }
e97cc90e 160 }
1f9bf847 161 if(iCounts != 0) fFDCSArrayMean = fFDCSArraySum/iCounts;
162 else fFDCSArrayMean = -10.;
163
e97cc90e 164 TString fDCSDataPointValue; fDCSDataPointValue += fFDCSArrayMean;
165
166 return fDCSDataPointValue.Data();
167}
168
169//_______________________________________________________________
e7a6790f 170const char* AliGRPDCS::ProcessFloat()
171{
3dedb44a 172 Float_t fFDCSArraySum = 0.0, fFDCSArrayMean = 0.0;
1f9bf847 173 Int_t iCounts = 0;
958ecabf 174 //printf("Entries: %d\n",fDCSArray->GetEntries());
175 //printf("Start: %d - Stop: %d\n",fStartTime,fStopTime);
3dedb44a 176 for(Int_t i = 0; i < fDCSArray->GetEntries(); i++) {
177 AliDCSValue *v = (AliDCSValue *)fDCSArray->At(i);
1f9bf847 178 if((v->GetTimeStamp() >= fStartTime) &&(v->GetTimeStamp() <= fStopTime)) {
179 fFDCSArraySum += v->GetFloat();
180 iCounts += 1;
181 }
3dedb44a 182 }
1f9bf847 183 if(iCounts != 0) fFDCSArrayMean = fFDCSArraySum/iCounts;
184 else fFDCSArrayMean = -10.;
185
3dedb44a 186 TString fDCSDataPointValue; fDCSDataPointValue += fFDCSArrayMean;
187
188 return fDCSDataPointValue.Data();
189}
190
e97cc90e 191//_______________________________________________________________
e7a6790f 192const char* AliGRPDCS::ProcessChar()
193{
194 TString fDCSString;
1f9bf847 195
196 AliDCSValue *v = 0x0;
d18640d0 197
958ecabf 198 //printf("Entries: %d\n",fDCSArray->GetEntries());
199 //printf("Start: %d - Stop: %d\n",fStartTime,fStopTime);
200
201 for(Int_t iCount = 0; iCount < fDCSArray->GetEntries(); iCount++) {
1f9bf847 202 v = (AliDCSValue *)fDCSArray->At(iCount);
958ecabf 203 if ((v->GetTimeStamp() >= fStartTime) && (v->GetTimeStamp() <= fStopTime))
204 AliError(Form("DCS values for the parameter changed within the queried interval"));
205 if (v->GetTimeStamp() > fStopTime) continue;
e7a6790f 206 fDCSString = v->GetChar();
e97cc90e 207 }
958ecabf 208
e97cc90e 209 TString fDCSDataPointValue = fDCSString;
e7a6790f 210
e97cc90e 211 return fDCSDataPointValue.Data();
212}
213
e7a6790f 214/*
e97cc90e 215//_______________________________________________________________
e7a6790f 216const char* AliGRPDCS::ProcessString()
217{
218 TString fDCSString;
1f9bf847 219
220 AliDCSValue *v = 0x0;
958ecabf 221
e7a6790f 222 //printf("Entries: %d\n",fDCSArray->GetEntries());
223 //printf("Start: %d - Stop: %d\n",fStartTime,fStopTime);
224
958ecabf 225 for(Int_t iCount = 0; iCount < fDCSArray->GetEntries(); iCount++) {
e7a6790f 226 v = (TObjString *)fDCSArray->At(iCount);
958ecabf 227 if ((v->GetTimeStamp() >= fStartTime) && (v->GetTimeStamp() <= fStopTime))
228 AliError(Form("DCS values for the parameter changed within the queried interval"));
229 if (v->GetTimeStamp() > fStopTime) continue;
e7a6790f 230 fDCSString = v->GetChar(); // FIXME should be something like v->GetString()
e97cc90e 231 }
e7a6790f 232
233 TString fDCSDataPointValue = fDCSString;
234 //cout<<"Returned String: "<<fDCSDataPointValue.Data()<<endl;
e97cc90e 235
236 return fDCSDataPointValue.Data();
237}
e7a6790f 238*/