Line data Source code
1 : ///////////////////////////////////////////////////////////////////////////////
2 : // //
3 : // Class for ZDC DCS data //
4 : // //
5 : ///////////////////////////////////////////////////////////////////////////////
6 :
7 : #include "AliZDCDataDCS.h"
8 :
9 : #include "AliCDBMetaData.h"
10 : #include "AliDCSValue.h"
11 : #include "AliLog.h"
12 :
13 : #include <TCanvas.h>
14 : #include <TDatime.h>
15 : #include <TString.h>
16 : #include <TObjString.h>
17 : #include <TStyle.h>
18 : #include <TTimeStamp.h>
19 :
20 12 : ClassImp(AliZDCDataDCS)
21 :
22 : //---------------------------------------------------------------
23 0 : AliZDCDataDCS::AliZDCDataDCS():
24 0 : TObject(),
25 0 : fRun(0),
26 0 : fStartTime(0),
27 0 : fEndTime(0),
28 0 : fStartTimeDCSQuery(0),
29 0 : fEndTimeDCSQuery(0),
30 : // fTimeStamp(0x0),
31 : // fHVData(0x0),
32 0 : fIsProcessed(kFALSE)
33 0 : {
34 : // Default constructor
35 0 : for(Int_t i=0; i<kNAliases; i++) fAliasNames[i] = "";
36 0 : for(Int_t i=0; i<kNAlignDet; i++) fAlignData[i] = 0.;
37 0 : }
38 :
39 : //---------------------------------------------------------------
40 0 : AliZDCDataDCS::AliZDCDataDCS(Int_t nRun, UInt_t startTime, UInt_t endTime,
41 : UInt_t startTimeDCSQuery, UInt_t endTimeDCSQuery):
42 0 : TObject(),
43 0 : fRun(nRun),
44 0 : fStartTime(startTime),
45 0 : fEndTime(endTime),
46 0 : fStartTimeDCSQuery(startTimeDCSQuery),
47 0 : fEndTimeDCSQuery(endTimeDCSQuery),
48 : // fTimeStamp(0x0),
49 : // fHVData(0x0),
50 0 : fIsProcessed(kFALSE)
51 0 : {
52 : // Standard constructor
53 :
54 0 : AliDebug(2,Form("\n\tRun %d \n\tStartTime %s \n\tEndTime %s \n\tStartTime DCS Query %s \n\tEndTime DCS Query %s", nRun,
55 : TTimeStamp(startTime).AsString(),
56 : TTimeStamp(endTime).AsString(),
57 : TTimeStamp(startTimeDCSQuery).AsString(),
58 : TTimeStamp(endTimeDCSQuery).AsString()));
59 :
60 0 : for(Int_t i=0; i<kNAlignDet; i++) fAlignData[i] = 0.;
61 :
62 0 : Init();
63 :
64 0 : }
65 :
66 : //---------------------------------------------------------------
67 0 : AliZDCDataDCS::AliZDCDataDCS(const AliZDCDataDCS & data):
68 0 : TObject(data),
69 0 : fRun(data.fRun),
70 0 : fStartTime(data.fStartTime),
71 0 : fEndTime(data.fEndTime),
72 0 : fStartTimeDCSQuery(data.fStartTimeDCSQuery),
73 0 : fEndTimeDCSQuery(data.fEndTimeDCSQuery),
74 : // fTimeStamp(data.fTimeStamp),
75 : // fHVData(data.fHVData),
76 0 : fIsProcessed(data.fIsProcessed)
77 0 : {
78 :
79 : // copy constructor
80 :
81 0 : for(int i=0;i<kNAliases;i++) fAliasNames[i] = data.fAliasNames[i];
82 0 : for(int i=0;i<kNAlignDet;i++) fAlignData[i] = data.fAlignData[i];
83 :
84 0 : }
85 :
86 : //---------------------------------------------------------------
87 : AliZDCDataDCS& AliZDCDataDCS:: operator=(const AliZDCDataDCS & data) {
88 :
89 : // assignment operator
90 :
91 0 : if (this == &data)
92 0 : return *this;
93 :
94 0 : TObject::operator=(data);
95 0 : fRun = data.GetRun();
96 0 : fStartTime = data.GetStartTime();
97 0 : fEndTime = data.GetEndTime();
98 0 : fStartTimeDCSQuery = data.GetStartTimeDCSQuery();
99 0 : fEndTimeDCSQuery = data.GetEndTimeDCSQuery();
100 : // fTimeStamp = data.GetTimeStamp();
101 : // fHVData = data.GetHVData();
102 0 : fIsProcessed = data.fIsProcessed;
103 :
104 0 : for(int i=0;i<kNAliases;i++) fAliasNames[i] = data.GetAliasName(i);
105 0 : for(int i=0;i<kNAlignDet;i++) fAlignData[i] = data.GetAlignData(i);
106 :
107 0 : return *this;
108 0 : }
109 :
110 : //---------------------------------------------------------------
111 : AliZDCDataDCS::~AliZDCDataDCS()
112 0 : {
113 : // Destructor
114 0 : }
115 :
116 : //---------------------------------------------------------------
117 : Bool_t AliZDCDataDCS::ProcessData(TMap& aliasMap)
118 : {
119 : // Data processing
120 :
121 0 : if(!(fAliasNames[0])) Init();
122 :
123 0 : AliInfo(Form(" Start Time = %i",fStartTime));
124 0 : AliInfo(Form(" End Time = %i",fEndTime));
125 0 : AliInfo(Form(" Start Time DCS Query= %i",fStartTimeDCSQuery));
126 0 : AliInfo(Form(" End Time DCS Query= %i",fEndTimeDCSQuery));
127 :
128 0 : if (fEndTime==fStartTime){
129 0 : AliError(Form(" Run with null time length: start time = %i = end time = %i",fStartTime,fEndTime));
130 0 : return kFALSE;
131 : }
132 :
133 : TObjArray *aliasArr;
134 : AliDCSValue *aValue;
135 :
136 0 : for(int j=0; j<kNAliases; j++){
137 : //printf(" Processing alias %d aliasName %s \n", j, fAliasNames[j].Data());
138 :
139 0 : aliasArr = (TObjArray*) (aliasMap.GetValue(fAliasNames[j].Data()));
140 0 : if(!aliasArr){
141 0 : AliWarning(Form("Alias %s: data not found!", fAliasNames[j].Data()));
142 0 : continue;
143 : }
144 :
145 0 : Introduce(j, aliasArr);
146 :
147 0 : Int_t nentries = aliasArr->GetEntries();
148 : /* if(nentries<=2){
149 : AliWarning(Form("Alias %s has just %d entries!", fAliasNames[j].Data(), nentries));
150 : // continue;
151 : }
152 : */
153 0 : Float_t *time = new Float_t[nentries];
154 0 : Float_t *val = new Float_t[nentries];
155 :
156 0 : TIter iterarray(aliasArr);
157 :
158 : UInt_t ne=0;
159 : Float_t sum=0.;
160 : Int_t nMeasures=0;
161 0 : while((aValue = (AliDCSValue*) iterarray.Next())){
162 0 : val[ne] = aValue->GetFloat();
163 0 : time[ne] = (Float_t) (aValue->GetTimeStamp());
164 0 : if(j<4){
165 0 : sum += val[ne];
166 0 : nMeasures++;
167 0 : }
168 : else{
169 : //fHVData[ne] = val[ne];
170 : //fTimeStamp[ne] = time[ne];
171 : }
172 0 : ne++;
173 : }
174 : //
175 0 : if(j<4 && nMeasures!=0) fAlignData[j] = sum/nMeasures;
176 :
177 0 : delete[] val;
178 0 : delete[] time;
179 0 : }
180 :
181 0 : fIsProcessed=kTRUE;
182 : return kTRUE;
183 :
184 0 : }
185 :
186 : //---------------------------------------------------------------
187 : void AliZDCDataDCS::Init()
188 : {
189 : // Initialization
190 :
191 0 : fAliasNames[0] = "ZDC_ZNA_POS.actual.position";
192 0 : fAliasNames[1] = "ZDC_ZPA_POS.actual.position";
193 0 : fAliasNames[2] = "ZDC_ZNC_POS.actual.position";
194 0 : fAliasNames[3] = "ZDC_ZPC_POS.actual.position";
195 : //
196 0 : fAliasNames[4] = "ZDC_ZNA_HV0.actual.vMon";
197 0 : fAliasNames[5] = "ZDC_ZNA_HV1.actual.vMon";
198 0 : fAliasNames[6] = "ZDC_ZNA_HV2.actual.vMon";
199 0 : fAliasNames[7] = "ZDC_ZNA_HV3.actual.vMon";
200 0 : fAliasNames[8] = "ZDC_ZNA_HV4.actual.vMon";
201 : //
202 0 : fAliasNames[9] = "ZDC_ZPA_HV0.actual.vMon";
203 0 : fAliasNames[10] = "ZDC_ZPA_HV1.actual.vMon";
204 0 : fAliasNames[11] = "ZDC_ZPA_HV2.actual.vMon";
205 0 : fAliasNames[12] = "ZDC_ZPA_HV3.actual.vMon";
206 0 : fAliasNames[13] = "ZDC_ZPA_HV4.actual.vMon";
207 : //
208 0 : fAliasNames[14] = "ZDC_ZNC_HV0.actual.vMon";
209 0 : fAliasNames[15] = "ZDC_ZNC_HV1.actual.vMon";
210 0 : fAliasNames[16] = "ZDC_ZNC_HV2.actual.vMon";
211 0 : fAliasNames[17] = "ZDC_ZNC_HV3.actual.vMon";
212 0 : fAliasNames[18] = "ZDC_ZNC_HV4.actual.vMon";
213 : //
214 0 : fAliasNames[19] = "ZDC_ZPC_HV0.actual.vMon";
215 0 : fAliasNames[20] = "ZDC_ZPC_HV1.actual.vMon";
216 0 : fAliasNames[21] = "ZDC_ZPC_HV2.actual.vMon";
217 0 : fAliasNames[22] = "ZDC_ZPC_HV3.actual.vMon";
218 0 : fAliasNames[23] = "ZDC_ZPC_HV4.actual.vMon";
219 : //
220 0 : fAliasNames[24] = "ZDC_ZEM_HV0.actual.vMon";
221 0 : fAliasNames[25] = "ZDC_ZEM_HV1.actual.vMon";
222 : //
223 0 : fAliasNames[26] = "ZDC_REFA_HV.actual.vMon";
224 0 : fAliasNames[27] = "ZDC_REFC_HV.actual.vMon";
225 :
226 0 : }
227 :
228 : //---------------------------------------------------------------
229 : void AliZDCDataDCS::Introduce(UInt_t numAlias, const TObjArray* aliasArr)
230 : {
231 : // Getting array of DCS aliases
232 :
233 0 : int entries = aliasArr->GetEntries();
234 0 : printf("************ Alias: %s has %d DP values collected\n",
235 0 : fAliasNames[numAlias].Data(),entries);
236 :
237 0 : }
|