]> git.uio.no Git - u/mrichter/AliRoot.git/blame - STEER/AliGRPDCS.cxx
i) Modifying the GetInputChain function - removing the AliXMLCollection::OverlapColle...
[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//-----------------------------------------------------------------
23
24#include "AliGRPDCS.h"
3dedb44a 25#include "AliDCSValue.h"
e97cc90e 26#include "AliLog.h"
3dedb44a 27
3dedb44a 28class TObjString;
29
9edefa04 30#include <TObjArray.h>
3dedb44a 31
32ClassImp(AliGRPDCS)
33
34//_______________________________________________________________
35AliGRPDCS::AliGRPDCS():
36 TObject(), fDCSArray(new TObjArray()) {
37 // default constructor
38
39}
40
41//_______________________________________________________________
42AliGRPDCS::AliGRPDCS(TObjArray *dcsArray):
e97cc90e 43 TObject(), fDCSArray(new TObjArray()) {
3dedb44a 44 // constructor
3dedb44a 45 fDCSArray = dcsArray;
46}
47
48//___________________________________________________________________________
49AliGRPDCS::AliGRPDCS(const AliGRPDCS& grpDcs):
50 TObject(grpDcs) {
51 //copy constructor
52
53 if (grpDcs.fDCSArray) fDCSArray = new TObjArray();
54}
55
56//_______________________________________________________________
e97cc90e 57const char* AliGRPDCS::ProcessDCS(Int_t iType) {
58 // process the dcs dps
59 //0:Int - 1:UInt - 2:Float - 3:String - 4:Bool
60 TString fDCSDataPointValue;
61 switch (iType) {
62 case 0: {
63 fDCSDataPointValue += ProcessInt();
64 break;
65 }
66 case 1: {
67 fDCSDataPointValue += ProcessUInt();
68 break;
69 }
70 case 2: {
71 fDCSDataPointValue += ProcessFloat();
72 break;
73 }
74 case 3: {
75 fDCSDataPointValue += ProcessString();
76 break;
77 }
78 case 4: {
79 fDCSDataPointValue += ProcessBoolean();
80 break;
81 }
82 default: break;
83 }//switch
84
85 return fDCSDataPointValue.Data();
86}
87
88//_______________________________________________________________
89const char* AliGRPDCS::ProcessInt() {
90 Float_t fFDCSArraySum = 0.0, fFDCSArrayMean = 0.0;
91 for(Int_t i = 0; i < fDCSArray->GetEntries(); i++) {
92 AliDCSValue *v = (AliDCSValue *)fDCSArray->At(i);
93 fFDCSArraySum += v->GetInt();
94 }
95 fFDCSArrayMean = fFDCSArraySum/fDCSArray->GetEntries();
96 TString fDCSDataPointValue; fDCSDataPointValue += fFDCSArrayMean;
97
98 return fDCSDataPointValue.Data();
99}
100
101//_______________________________________________________________
102const char* AliGRPDCS::ProcessUInt() {
103 Float_t fFDCSArraySum = 0.0, fFDCSArrayMean = 0.0;
104 for(Int_t i = 0; i < fDCSArray->GetEntries(); i++) {
105 AliDCSValue *v = (AliDCSValue *)fDCSArray->At(i);
106 fFDCSArraySum += v->GetUInt();
107 }
108 fFDCSArrayMean = fFDCSArraySum/fDCSArray->GetEntries();
109 TString fDCSDataPointValue; fDCSDataPointValue += fFDCSArrayMean;
110
111 return fDCSDataPointValue.Data();
112}
113
114//_______________________________________________________________
115const char* AliGRPDCS::ProcessFloat() {
3dedb44a 116 Float_t fFDCSArraySum = 0.0, fFDCSArrayMean = 0.0;
117 for(Int_t i = 0; i < fDCSArray->GetEntries(); i++) {
118 AliDCSValue *v = (AliDCSValue *)fDCSArray->At(i);
3dedb44a 119 fFDCSArraySum += v->GetFloat();
120 }
121 fFDCSArrayMean = fFDCSArraySum/fDCSArray->GetEntries();
122 TString fDCSDataPointValue; fDCSDataPointValue += fFDCSArrayMean;
123
124 return fDCSDataPointValue.Data();
125}
126
e97cc90e 127//_______________________________________________________________
128const char* AliGRPDCS::ProcessString() {
129 TString fDCSString, fDCSTemp;
130 AliDCSValue *v = (AliDCSValue *)fDCSArray->At(0);
131 fDCSTemp = v->GetChar();
132 for(Int_t i = 0; i < fDCSArray->GetEntries(); i++) {
133 AliDCSValue *v1 = (AliDCSValue *)fDCSArray->At(i);
134 fDCSString = v1->GetChar();
135 if(fDCSTemp != fDCSString) AliFatal("DCS data point value changed within the run!!!");
136 }
137 TString fDCSDataPointValue = fDCSString;
138
139 return fDCSDataPointValue.Data();
140}
141
142//_______________________________________________________________
143const char* AliGRPDCS::ProcessBoolean() {
144 Bool_t fDCSBool = kTRUE, fDCSTemp = kTRUE;
145 AliDCSValue *v = (AliDCSValue *)fDCSArray->At(0);
146 fDCSTemp = v->GetBool();
147 for(Int_t i = 0; i < fDCSArray->GetEntries(); i++) {
148 AliDCSValue *v1 = (AliDCSValue *)fDCSArray->At(i);
149 fDCSBool = v1->GetBool();
150 if(fDCSTemp != fDCSBool) AliFatal("DCS data point value changed within the run!!!");
151 }
152 TString fDCSDataPointValue = fDCSBool;
153
154 return fDCSDataPointValue.Data();
155}