1 /**************************************************************************
2 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
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 **************************************************************************/
17 $Log: AliT0DataDCS.cxx,v $
19 Fetching data points from DCS, calculating mean and storing data to Reference DB
22 Preliminary test version (T.Malkiewicz)
25 #include "AliT0DataDCS.h"
27 #include "AliCDBMetaData.h"
28 #include "AliDCSValue.h"
31 #include <TTimeStamp.h>
32 #include <TObjString.h>
41 // declaring DCS aliases for T0
42 // fetching T0 data points from DCS,
43 // calculating mean values for the entire run
44 // and storing the result to Reference DB
46 ClassImp(AliT0DataDCS)
48 //---------------------------------------------------------------
49 AliT0DataDCS::AliT0DataDCS():
54 fStartTimeDCSQuery(0),
59 for(Int_t i=0;i<kScalers;i++)
64 for(Int_t i=0;i<kHV;i++)
71 for(Int_t i=0;i<kLV;i++)
78 for(Int_t i=0;i<kTRM;i++)
82 for(Int_t i=0;i<kDRM;i++)
88 //---------------------------------------------------------------
89 AliT0DataDCS::AliT0DataDCS(Int_t nRun, UInt_t startTime, UInt_t endTime, UInt_t startTimeDCSQuery, UInt_t endTimeDCSQuery):
92 fStartTime(startTime),
94 fStartTimeDCSQuery(startTimeDCSQuery),
95 fEndTimeDCSQuery(endTimeDCSQuery),
99 for(Int_t i=0;i<kScalers;i++)
102 fScalerSecMean[i]=0.;
104 for(Int_t i=0;i<kHV;i++)
111 for(Int_t i=0;i<kLV;i++)
118 for(Int_t i=0;i<kTRM;i++)
122 for(Int_t i=0;i<kDRM;i++)
127 AliInfo(Form("\n\tRun %d \n\tStartTime %s \n\tEndTime %s \n\tStartTime DCS Query %s \n\tEndTime DCS Query %s", nRun,
128 TTimeStamp(startTime).AsString(),
129 TTimeStamp(endTime).AsString(),
130 TTimeStamp(startTimeDCSQuery).AsString(),
131 TTimeStamp(endTimeDCSQuery).AsString()));
136 //---------------------------------------------------------------
138 AliT0DataDCS::AliT0DataDCS(const AliT0DataDCS & data):
143 fStartTimeDCSQuery(0),
152 fStartTime=data.fStartTime;
153 fEndTime=data.fEndTime;
154 fStartTimeDCSQuery=data.fStartTimeDCSQuery;
155 fEndTimeDCSQuery=data.fEndTimeDCSQuery;
156 fIsProcessed=data.fIsProcessed;
159 for(int i=0;i<kNAliases;i++)
161 fAliasNames[i]=data.fAliasNames[i];
164 for(Int_t i=0;i<kScalers;i++)
166 fScalerMean[i]=data.fScalerMean[i];
167 fScalerSecMean[i]=data.fScalerSecMean[i];
169 for(Int_t i=0;i<kHV;i++)
171 fHViA[i]=data.fHViA[i];
172 fHVvA[i]=data.fHVvA[i];
173 fHViC[i]=data.fHViC[i];
174 fHVvC[i]=data.fHVvC[i];
176 for(Int_t i=0;i<kLV;i++)
178 fLViA[i]=data.fLViA[i];
179 fLVvA[i]=data.fLVvA[i];
180 fLViC[i]=data.fLViC[i];
181 fLVvC[i]=data.fLVvC[i];
183 for(Int_t i=0;i<kTRM;i++)
185 fTRM[i]=data.fTRM[i];
187 for(Int_t i=0;i<kDRM;i++)
189 fDRM[i]=data.fDRM[i];
192 //---------------------------------------------------------------
194 AliT0DataDCS& AliT0DataDCS:: operator=(const AliT0DataDCS & data) {
196 // assignment operator
198 this->fRun=data.fRun;
199 this->fStartTime=data.fStartTime;
200 this->fEndTime=data.fEndTime;
201 this->fStartTimeDCSQuery=data.fStartTimeDCSQuery;
202 this->fEndTimeDCSQuery=data.fEndTimeDCSQuery;
204 for(int i=0;i<kNAliases;i++)
206 this->fAliasNames[i]=data.fAliasNames[i];
212 //---------------------------------------------------------------
213 AliT0DataDCS::~AliT0DataDCS()
216 delete fScalerSecMean;
219 //---------------------------------------------------------------
220 Bool_t AliT0DataDCS::ProcessData(TMap& aliasMap)
222 Int_t t0_scaler[kScalers];
223 Int_t t0_scaler_sec[kScalers];
224 Int_t aliasEntr[kNAliases];
225 Float_t t0_a_hv_imon[kHV];
226 Float_t t0_a_hv_vmon[kHV];
227 Float_t t0_a_lv_imon[kLV];
228 Float_t t0_a_lv_vmon[kLV];
229 Float_t t0_c_hv_imon[kHV];
230 Float_t t0_c_hv_vmon[kHV];
231 Float_t t0_c_lv_imon[kLV];
232 Float_t t0_c_lv_vmon[kLV];
233 Float_t t0_a_cfd_thre[kCFD];
234 Float_t t0_a_cfd_walk[kCFD];
235 Float_t t0_c_cfd_thre[kCFD];
236 Float_t t0_c_cfd_walk[kCFD];
237 Float_t t0_ac_trm[kTRM];
238 Float_t t0_ac_drm[kDRM];
242 for(Int_t k=0; k<kScalers; k++)
248 for(Int_t k=0; k<kHV; k++)
255 for(Int_t k=0; k<kHV; k++)
262 for(Int_t k=0; k<kCFD; k++)
269 for(Int_t k=0; k<kTRM; k++)
273 for(Int_t k=0; k<kDRM; k++)
278 // here starts the main loop
279 for(Int_t j=0; j<kNAliases; j++)
282 for (Int_t k=0;k<32;k++)
288 aliasArr = (TObjArray*) aliasMap.GetValue(fAliasNames[j].Data());
291 AliError(Form("Alias %s not found!", fAliasNames[j].Data()));
294 Introduce(j, aliasArr);
295 if(aliasArr->GetEntries()<2)
297 AliError(Form("Alias %s has just %d entries!",
298 fAliasNames[j].Data(),aliasArr->GetEntries()));
303 aliasEntr[j] = aliasArr->GetEntries();
304 for(Int_t l=0; l<aliasEntr[j]; l++)
306 AliDCSValue *aValue=dynamic_cast<AliDCSValue*> (aliasArr->At(l));
307 t0_scaler[j]+= aValue->GetUInt();
309 fScalerMean[j] = t0_scaler[j] / aliasEntr[j];
311 else if (j < 2*kScalers)
313 aliasEntr[j] = aliasArr->GetEntries();
314 for(Int_t l=0; l<aliasEntr[j]; l++)
316 AliDCSValue *aValue=dynamic_cast<AliDCSValue*> (aliasArr->At(l));
317 t0_scaler_sec[j]+= aValue->GetUInt();
319 fScalerSecMean[j] = t0_scaler_sec[j] / aliasEntr[j];
321 else if (j < 2*kScalers+kHV)
323 aliasEntr[j] = aliasArr->GetEntries();
324 for(Int_t l=0; l<aliasEntr[j]; l++)
326 AliDCSValue *aValue=dynamic_cast<AliDCSValue*> (aliasArr->At(l));
327 t0_a_hv_imon[j]+= aValue->GetFloat();
329 fHViA[j] = t0_a_hv_imon[j] / aliasEntr[j];
331 else if (j < 2*kScalers+2*kHV)
333 aliasEntr[j] = aliasArr->GetEntries();
334 for(Int_t l=0; l<aliasEntr[j]; l++)
336 AliDCSValue *aValue=dynamic_cast<AliDCSValue*> (aliasArr->At(l));
337 t0_a_hv_vmon[j]+= aValue->GetFloat();
339 fHVvA[j] = t0_a_hv_vmon[j] / aliasEntr[j];
341 else if (j < 2*kScalers+2*kHV+kLV)
343 aliasEntr[j] = aliasArr->GetEntries();
344 for(Int_t l=0; l<aliasEntr[j]; l++)
346 AliDCSValue *aValue=dynamic_cast<AliDCSValue*> (aliasArr->At(l));
347 t0_a_lv_imon[j]+= aValue->GetFloat();
349 fLViA[j] = t0_a_lv_imon[j] / aliasEntr[j];
351 else if (j < 2*kScalers+2*kHV+2*kLV)
353 aliasEntr[j] = aliasArr->GetEntries();
354 for(Int_t l=0; l<aliasEntr[j]; l++)
356 AliDCSValue *aValue=dynamic_cast<AliDCSValue*> (aliasArr->At(l));
357 t0_a_lv_vmon[j]+= aValue->GetFloat();
359 fLVvA[j] = t0_a_lv_vmon[j] / aliasEntr[j];
361 else if (j < 2*kScalers+3*kHV+2*kLV)
363 aliasEntr[j] = aliasArr->GetEntries();
364 for(Int_t l=0; l<aliasEntr[j]; l++)
366 AliDCSValue *aValue=dynamic_cast<AliDCSValue*> (aliasArr->At(l));
367 t0_c_hv_imon[j]+= aValue->GetFloat();
369 fHViC[j] = t0_c_hv_imon[j] / aliasEntr[j];
371 else if (j < 2*kScalers+4*kHV+2*kLV)
373 aliasEntr[j] = aliasArr->GetEntries();
374 for(Int_t l=0; l<aliasEntr[j]; l++)
376 AliDCSValue *aValue=dynamic_cast<AliDCSValue*> (aliasArr->At(l));
377 t0_c_hv_vmon[j]+= aValue->GetFloat();
379 fHVvC[j] = t0_c_hv_vmon[j] / aliasEntr[j];
381 else if (j < 2*kScalers+4*kHV+3*kLV)
383 aliasEntr[j] = aliasArr->GetEntries();
384 for(Int_t l=0; l<aliasEntr[j]; l++)
386 AliDCSValue *aValue=dynamic_cast<AliDCSValue*> (aliasArr->At(l));
387 t0_c_lv_imon[j]+= aValue->GetFloat();
389 fLViC[j] = t0_c_lv_imon[j] / aliasEntr[j];
391 else if (j < 2*kScalers+4*kHV+4*kLV)
393 aliasEntr[j] = aliasArr->GetEntries();
394 for(Int_t l=0; l<aliasEntr[j]; l++)
396 AliDCSValue *aValue=dynamic_cast<AliDCSValue*> (aliasArr->At(l));
397 t0_c_lv_vmon[j]+= aValue->GetFloat();
399 fLVvC[j] = t0_c_lv_vmon[j] / aliasEntr[j];
401 else if (j < 2*kScalers+4*kHV+4*kLV+kCFD)
403 aliasEntr[j] = aliasArr->GetEntries();
404 for(Int_t l=0; l<aliasEntr[j]; l++)
406 AliDCSValue *aValue=dynamic_cast<AliDCSValue*> (aliasArr->At(l));
407 t0_a_cfd_thre[j]+= aValue->GetFloat();
409 fCFDtA[j] = t0_a_cfd_thre[j] / aliasEntr[j];
411 else if (j < 2*kScalers+4*kHV+4*kLV+2*kCFD)
413 aliasEntr[j] = aliasArr->GetEntries();
414 for(Int_t l=0; l<aliasEntr[j]; l++)
416 AliDCSValue *aValue=dynamic_cast<AliDCSValue*> (aliasArr->At(l));
417 t0_a_cfd_walk[j]+= aValue->GetFloat();
419 fCFDwA[j] = t0_a_cfd_walk[j] / aliasEntr[j];
421 else if (j < 2*kScalers+4*kHV+4*kLV+3*kCFD)
423 aliasEntr[j] = aliasArr->GetEntries();
424 for(Int_t l=0; l<aliasEntr[j]; l++)
426 AliDCSValue *aValue=dynamic_cast<AliDCSValue*> (aliasArr->At(l));
427 t0_c_cfd_thre[j]+= aValue->GetFloat();
429 fCFDtC[j] = t0_c_cfd_thre[j] / aliasEntr[j];
431 else if (j < 2*kScalers+4*kHV+4*kLV+4*kCFD)
433 aliasEntr[j] = aliasArr->GetEntries();
434 for(Int_t l=0; l<aliasEntr[j]; l++)
436 AliDCSValue *aValue=dynamic_cast<AliDCSValue*> (aliasArr->At(l));
437 t0_c_cfd_walk[j]+= aValue->GetFloat();
439 fCFDwC[j] = t0_c_cfd_walk[j] / aliasEntr[j];
441 else if (j < 2*kScalers+4*kHV+4*kLV+4*kCFD+kTRM)
443 aliasEntr[j] = aliasArr->GetEntries();
444 for(Int_t l=0; l<aliasEntr[j]; l++)
446 AliDCSValue *aValue=dynamic_cast<AliDCSValue*> (aliasArr->At(l));
447 t0_ac_trm[j]+= aValue->GetFloat();
449 fTRM[j] = t0_ac_trm[j] / aliasEntr[j];
451 else if (j < 2*kScalers+4*kHV+4*kLV+4*kCFD+kTRM+kDRM)
453 aliasEntr[j] = aliasArr->GetEntries();
454 for(Int_t l=0; l<aliasEntr[j]; l++)
456 AliDCSValue *aValue=dynamic_cast<AliDCSValue*> (aliasArr->At(l));
457 t0_ac_drm[j]+= aValue->GetFloat();
459 fDRM[j] = t0_ac_drm[j] / aliasEntr[j];
463 aliasEntr[j] = aliasArr->GetEntries();
464 for(Int_t l=0; l<aliasEntr[j]; l++)
466 AliDCSValue *aValue=dynamic_cast<AliDCSValue*> (aliasArr->At(l));
467 t0_atten += aValue->GetInt();
469 fTRM[j] = t0_atten / aliasEntr[j];
478 //---------------------------------------------------------------
479 void AliT0DataDCS::Init()
482 for(int i=0;i<kNAliases;i++)
486 fAliasNames[i] = "t00_ac_scaler_";
487 sindex.Form("%02d",i);
488 fAliasNames[i] += sindex;
490 else if (i < 2*kScalers)
492 fAliasNames[i] = "t00_ac_scaler_sec_";
493 sindex.Form("%02d",i);
494 fAliasNames[i] += sindex;
496 else if (i < 2*kScalers+kHV)
498 fAliasNames[i] = "t00_a_hv_imon_";
499 sindex.Form("%02d",i);
500 fAliasNames[i] += sindex;
502 else if (i < 2*kScalers+2*kHV)
504 fAliasNames[i] = "t00_a_hv_vmon_";
505 sindex.Form("%02d",i);
506 fAliasNames[i] += sindex;
508 else if (i < 2*kScalers+2*kHV+kLV)
510 fAliasNames[i] = "t00_a_lv_imon_";
511 sindex.Form("%02d",i);
512 fAliasNames[i] += sindex;
514 else if (i < 2*kScalers+2*kHV+2*kLV)
516 fAliasNames[i] = "t00_a_lv_vmon_";
517 sindex.Form("%02d",i);
518 fAliasNames[i] += sindex;
520 else if (i < 2*kScalers+3*kHV+2*kLV)
522 fAliasNames[i] = "t00_c_hv_imon_";
523 sindex.Form("%02d",i);
524 fAliasNames[i] += sindex;
526 else if (i < 2*kScalers+4*kHV+2*kLV)
528 fAliasNames[i] = "t00_c_hv_vmon_";
529 sindex.Form("%02d",i);
530 fAliasNames[i] += sindex;
532 else if (i < 2*kScalers+4*kHV+3*kLV)
534 fAliasNames[i] = "t00_c_lv_imon_";
535 sindex.Form("%02d",i);
536 fAliasNames[i] += sindex;
538 else if (i < 2*kScalers+4*kHV+4*kLV)
540 fAliasNames[i] = "t00_c_lv_vmon_";
541 sindex.Form("%02d",i);
542 fAliasNames[i] += sindex;
544 else if (i < 2*kScalers+4*kHV+4*kLV+kCFD)
546 fAliasNames[i] = "t00_a_cfd_thre_";
547 sindex.Form("%02d",i);
548 fAliasNames[i] += sindex;
550 else if (i < 2*kScalers+4*kHV+4*kLV+2*kCFD)
552 fAliasNames[i] = "t00_a_cfd_walk_";
553 sindex.Form("%02d",i);
554 fAliasNames[i] += sindex;
556 else if (i < 2*kScalers+4*kHV+4*kLV+3*kCFD)
558 fAliasNames[i] = "t00_c_cfd_thre_";
559 sindex.Form("%02d",i);
560 fAliasNames[i] += sindex;
562 else if (i < 2*kScalers+4*kHV+4*kLV+4*kCFD)
564 fAliasNames[i] = "t00_c_cfd_walk_";
565 sindex.Form("%02d",i);
566 fAliasNames[i] += sindex;
568 else if (i < 2*kScalers+4*kHV+4*kLV+4*kCFD+kTRM)
570 fAliasNames[i] = "t00_ac_trm_";
571 sindex.Form("%02d",i);
572 fAliasNames[i] += sindex;
574 else if (i < 2*kScalers+4*kHV+4*kLV+4*kCFD+kTRM+kDRM)
576 fAliasNames[i] = "t00_ac_drm_";
577 sindex.Form("%02d",i);
578 fAliasNames[i] += sindex;
582 fAliasNames[i] = "t00_atten";
589 //---------------------------------------------------------------
590 void AliT0DataDCS::Introduce(UInt_t numAlias, const TObjArray* aliasArr)const
593 int entries=aliasArr->GetEntries();
594 AliInfo(Form("************ Alias: %s **********",fAliasNames[numAlias].Data()));
595 AliInfo(Form(" %d DP values collected",entries));