]> git.uio.no Git - u/mrichter/AliRoot.git/blame - STEER/AliGRPDCS.cxx
Possibility to run the reconstruction over a DATE event located in memory. Needed...
[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
22//-----------------------------------------------------------------
d18640d0 23#include "Riostream.h"
24#include "TError.h"
3dedb44a 25
26#include "AliGRPDCS.h"
3dedb44a 27#include "AliDCSValue.h"
e97cc90e 28#include "AliLog.h"
3dedb44a 29
3dedb44a 30class TObjString;
31
9edefa04 32#include <TObjArray.h>
3dedb44a 33
34ClassImp(AliGRPDCS)
35
36//_______________________________________________________________
37AliGRPDCS::AliGRPDCS():
1f9bf847 38 TObject(), fStartTime(0), fStopTime(0), fDCSArray(new TObjArray()) {
3dedb44a 39 // default constructor
40
41}
42
43//_______________________________________________________________
1f9bf847 44AliGRPDCS::AliGRPDCS(TObjArray *dcsArray, UInt_t fStart, UInt_t fStop):
45 TObject(), fStartTime(fStart), fStopTime(fStop), fDCSArray(new TObjArray()) {
3dedb44a 46 // constructor
3dedb44a 47 fDCSArray = dcsArray;
48}
49
50//___________________________________________________________________________
51AliGRPDCS::AliGRPDCS(const AliGRPDCS& grpDcs):
d18640d0 52 TObject(grpDcs),
958ecabf 53 fStartTime(grpDcs.fStartTime), fStopTime(grpDcs.fStopTime),
54 fDCSArray(grpDcs.fDCSArray) {
3dedb44a 55 //copy constructor
56
958ecabf 57 //if (grpDcs.fDCSArray) fDCSArray = new TObjArray();
3dedb44a 58}
59
60//_______________________________________________________________
e97cc90e 61const char* AliGRPDCS::ProcessDCS(Int_t iType) {
62 // process the dcs dps
d18640d0 63 if(!fDCSArray->GetEntries()) {
64 Error("AliGRPDCS::ProcessDCS","No entries in array!!!");
65 return 0;
66 }
67
e97cc90e 68 //0:Int - 1:UInt - 2:Float - 3:String - 4:Bool
69 TString fDCSDataPointValue;
70 switch (iType) {
71 case 0: {
72 fDCSDataPointValue += ProcessInt();
73 break;
74 }
75 case 1: {
76 fDCSDataPointValue += ProcessUInt();
77 break;
78 }
79 case 2: {
80 fDCSDataPointValue += ProcessFloat();
81 break;
82 }
83 case 3: {
84 fDCSDataPointValue += ProcessString();
85 break;
86 }
87 case 4: {
88 fDCSDataPointValue += ProcessBoolean();
89 break;
90 }
91 default: break;
92 }//switch
93
958ecabf 94 //cout<<fDCSDataPointValue.Data()<<endl;
e97cc90e 95 return fDCSDataPointValue.Data();
96}
97
98//_______________________________________________________________
99const char* AliGRPDCS::ProcessInt() {
100 Float_t fFDCSArraySum = 0.0, fFDCSArrayMean = 0.0;
1f9bf847 101 Int_t iCounts = 0;
e97cc90e 102 for(Int_t i = 0; i < fDCSArray->GetEntries(); i++) {
103 AliDCSValue *v = (AliDCSValue *)fDCSArray->At(i);
1f9bf847 104 if((v->GetTimeStamp() >= fStartTime) &&(v->GetTimeStamp() <= fStopTime)) {
105 fFDCSArraySum += v->GetInt();
106 iCounts += 1;
107 }
e97cc90e 108 }
1f9bf847 109 if(iCounts != 0) fFDCSArrayMean = fFDCSArraySum/iCounts;
110 else fFDCSArrayMean = -10.;
111
e97cc90e 112 TString fDCSDataPointValue; fDCSDataPointValue += fFDCSArrayMean;
113
114 return fDCSDataPointValue.Data();
115}
116
117//_______________________________________________________________
118const char* AliGRPDCS::ProcessUInt() {
119 Float_t fFDCSArraySum = 0.0, fFDCSArrayMean = 0.0;
1f9bf847 120 Int_t iCounts = 0;
e97cc90e 121 for(Int_t i = 0; i < fDCSArray->GetEntries(); i++) {
122 AliDCSValue *v = (AliDCSValue *)fDCSArray->At(i);
1f9bf847 123 if((v->GetTimeStamp() >= fStartTime) &&(v->GetTimeStamp() <= fStopTime)) {
124 fFDCSArraySum += v->GetUInt();
125 iCounts += 1;
126 }
e97cc90e 127 }
1f9bf847 128 if(iCounts != 0) fFDCSArrayMean = fFDCSArraySum/iCounts;
129 else fFDCSArrayMean = -10.;
130
e97cc90e 131 TString fDCSDataPointValue; fDCSDataPointValue += fFDCSArrayMean;
132
133 return fDCSDataPointValue.Data();
134}
135
136//_______________________________________________________________
137const char* AliGRPDCS::ProcessFloat() {
3dedb44a 138 Float_t fFDCSArraySum = 0.0, fFDCSArrayMean = 0.0;
1f9bf847 139 Int_t iCounts = 0;
958ecabf 140 //printf("Entries: %d\n",fDCSArray->GetEntries());
141 //printf("Start: %d - Stop: %d\n",fStartTime,fStopTime);
3dedb44a 142 for(Int_t i = 0; i < fDCSArray->GetEntries(); i++) {
143 AliDCSValue *v = (AliDCSValue *)fDCSArray->At(i);
1f9bf847 144 if((v->GetTimeStamp() >= fStartTime) &&(v->GetTimeStamp() <= fStopTime)) {
145 fFDCSArraySum += v->GetFloat();
146 iCounts += 1;
147 }
3dedb44a 148 }
1f9bf847 149 if(iCounts != 0) fFDCSArrayMean = fFDCSArraySum/iCounts;
150 else fFDCSArrayMean = -10.;
151
3dedb44a 152 TString fDCSDataPointValue; fDCSDataPointValue += fFDCSArrayMean;
153
154 return fDCSDataPointValue.Data();
155}
156
e97cc90e 157//_______________________________________________________________
158const char* AliGRPDCS::ProcessString() {
159 TString fDCSString, fDCSTemp;
1f9bf847 160
161 AliDCSValue *v = 0x0;
d18640d0 162
958ecabf 163 //printf("Entries: %d\n",fDCSArray->GetEntries());
164 //printf("Start: %d - Stop: %d\n",fStartTime,fStopTime);
165
166 for(Int_t iCount = 0; iCount < fDCSArray->GetEntries(); iCount++) {
1f9bf847 167 v = (AliDCSValue *)fDCSArray->At(iCount);
958ecabf 168 if ((v->GetTimeStamp() >= fStartTime) && (v->GetTimeStamp() <= fStopTime))
169 AliError(Form("DCS values for the parameter changed within the queried interval"));
170 if (v->GetTimeStamp() > fStopTime) continue;
171 fDCSString = v->GetChar();
e97cc90e 172 }
958ecabf 173
e97cc90e 174 TString fDCSDataPointValue = fDCSString;
958ecabf 175 //cout<<"Returned String: "<<fDCSDataPointValue.Data()<<endl;
e97cc90e 176
177 return fDCSDataPointValue.Data();
178}
179
180//_______________________________________________________________
181const char* AliGRPDCS::ProcessBoolean() {
958ecabf 182 Bool_t fDCSBool = kTRUE;
1f9bf847 183
184 AliDCSValue *v = 0x0;
958ecabf 185
186 for(Int_t iCount = 0; iCount < fDCSArray->GetEntries(); iCount++) {
1f9bf847 187 v = (AliDCSValue *)fDCSArray->At(iCount);
958ecabf 188 if ((v->GetTimeStamp() >= fStartTime) && (v->GetTimeStamp() <= fStopTime))
189 AliError(Form("DCS values for the parameter changed within the queried interval"));
190 if (v->GetTimeStamp() > fStopTime) continue;
191 fDCSBool = v->GetBool();
e97cc90e 192 }
958ecabf 193
e97cc90e 194 TString fDCSDataPointValue = fDCSBool;
195
196 return fDCSDataPointValue.Data();
197}