]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TOF/AliTOFDataDCS.cxx
7a6f06e68d805206f96cd3cf2563323b5581c9c6
[u/mrichter/AliRoot.git] / TOF / AliTOFDataDCS.cxx
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
16 /*
17 $Log$
18 Revision 1.7  2007/05/02 14:09:39  arcelli
19 Retrieval of Env. Temperature removed (will get it from the GRP)
20
21 Revision 1.6  2007/04/04 17:19:19  arcelli
22 Moved some printout to debug level
23
24 Revision 1.5  2007/02/20 15:57:00  decaro
25 Raw data update: to read the TOF raw data defined in UNPACKED mode
26
27 Revision 1.4  2007/02/19 15:41:55  decaro
28 Coding convention: few corrections
29
30 Revision 1.3  2007/01/24 11:19:58  arcelli
31 Modify ProcessData to return a logical (CZ)
32
33 Revision 1.2  2006/12/18 18:17:38  arcelli
34 Updated Aliases for DCS TOF datapoints (C.Zampolli)
35
36 Revision 1.1  2006/10/26 09:10:52  arcelli
37 Class for handling the TOF DCS data in the Shuttle (C.Zampolli)
38
39 */  
40
41 #include "AliTOFDataDCS.h"
42
43 #include "AliDCSValue.h"
44 #include "AliLog.h"
45
46 //#include "TString.h"
47 #include "AliTOFFormatDCS.h"
48 #include "TF1.h"
49 #include "TCanvas.h"
50 #include "TH1F.h"
51 #include "TTimeStamp.h"
52 #include "TMap.h"
53
54 class TH2;
55 class AliCDBMetaData;
56 class TDatime;
57
58 // AliTOFDataDCS class
59 // main aim to introduce the aliases for the TOF DCS
60 // data points to be then
61 // stored in the OCDB, and to process them. 
62 // Process() method called by TOFPrepr
63
64 ClassImp(AliTOFDataDCS)
65
66 //---------------------------------------------------------------
67 AliTOFDataDCS::AliTOFDataDCS():
68         TObject(),
69         fRun(0),
70         fStartTime(0),
71         fEndTime(0),
72         fIsProcessed(kFALSE)
73 {
74
75   // main constructor 
76
77   for(int i=0;i<kNHV;i++) {
78     fHVvp[i]=0x0;
79     fHVvn[i]=0x0;
80     fHVip[i]=0x0;
81     fHVin[i]=0x0;
82   }
83   
84   for(int i=0;i<kNLV;i++) {
85     fLVv[i]=0x0;
86     fLVi[i]=0x0;
87   }
88   
89   for(int i=0;i<kNLV33;i++) {
90     fLVv33[i]=0x0;
91     fLVi33[i]=0x0;
92   }
93   
94   for(int i=0;i<kNLV50;i++) {
95     fLVv50[i]=0x0;
96     fLVi50[i]=0x0;
97   }
98   
99   for(int i=0;i<kNLV48;i++) {
100     fLVv48[i]=0x0;
101     fLVi48[i]=0x0;
102   }
103   
104   for(int i=0;i<kNFEEthr;i++) {
105     fFEEthr[i]=0x0;
106   }
107   
108   for(int i=0;i<kNFEEtfeac;i++) {
109     fFEEtfeac[i]=0x0;
110   }
111   
112   for(int i=0;i<kNFEEttrm;i++) {
113     fFEEttrm[i]=0x0;
114   }
115   
116   
117 }
118
119 //---------------------------------------------------------------
120 AliTOFDataDCS::AliTOFDataDCS(Int_t nRun, UInt_t startTime, UInt_t endTime):
121         TObject(),
122         fRun(nRun),
123         fStartTime(startTime),
124         fEndTime(endTime),
125         fIsProcessed(kFALSE)
126 {
127
128   // constructor with arguments
129
130         AliInfo(Form("\n\tRun %d \n\tStartTime %s \n\tEndTime %s", nRun,
131         TTimeStamp(startTime).AsString(),
132         TTimeStamp(endTime).AsString()));
133
134         Init();
135
136 }
137
138 //---------------------------------------------------------------
139
140 AliTOFDataDCS::AliTOFDataDCS(const AliTOFDataDCS & data):
141   TObject(), 
142   fRun(0),
143   fStartTime(0),
144   fEndTime(0),
145   fIsProcessed(kFALSE)
146
147 {
148
149 // copy constructor
150
151   fRun=data.fRun;
152   fStartTime=data.fStartTime;
153   fEndTime=data.fEndTime;
154   fIsProcessed=data.fIsProcessed;
155
156   for(int i=0;i<kNAliases;i++) {
157     fAliasNames[i]=data.fAliasNames[i];
158   }
159  
160   for(int i=0;i<kNHV;i++) {
161     fHVvp[i]=data.fHVvp[i];
162     fHVvn[i]=data.fHVvn[i];
163     fHVip[i]=data.fHVip[i];
164     fHVin[i]=data.fHVin[i];
165   }
166   
167   for(int i=0;i<kNLV;i++) {
168     fLVv[i]=data.fLVv[i];
169     fLVi[i]=data.fLVi[i];
170   }
171
172   for(int i=0;i<kNLV33;i++) {
173     fLVv33[i]=data.fLVv33[i];
174     fLVi33[i]=data.fLVi33[i];
175   }
176
177   for(int i=0;i<kNLV50;i++) {
178     fLVv50[i]=data.fLVv50[i];
179     fLVi50[i]=data.fLVi50[i];
180   }
181
182   for(int i=0;i<kNLV48;i++) {
183     fLVv48[i]=data.fLVv48[i];
184     fLVi48[i]=data.fLVi48[i];
185   }
186
187   for(int i=0;i<kNFEEthr;i++) {
188     fFEEthr[i]=data.fFEEthr[i];
189   }
190
191   for(int i=0;i<kNFEEtfeac;i++) {
192     fFEEtfeac[i]=data.fFEEtfeac[i];
193   }
194
195   for(int i=0;i<kNFEEttrm;i++) {
196     fFEEttrm[i]=data.fFEEttrm[i];
197   }
198     
199 }
200 //---------------------------------------------------------------
201
202 AliTOFDataDCS& AliTOFDataDCS:: operator=(const AliTOFDataDCS & data) { 
203
204 // assignment operator
205
206   this->fRun=data.GetRun();
207   this->fStartTime=data.GetStartTime();
208   this->fEndTime=data.GetEndTime();
209
210   for(int i=0;i<kNAliases;i++) {
211     this->fAliasNames[i]=data.GetAliasName(i);
212   }
213
214   for(int i=0;i<kNHV;i++) {
215     this->fHVvp[i]=data.GetHVvp(i);
216     this->fHVvn[i]=data.GetHVvn(i);
217     this->fHVip[i]=data.GetHVip(i);
218     this->fHVin[i]=data.GetHVin(i);
219   }
220
221   for(int i=0;i<kNLV;i++) {
222     this->fLVv[i]=data.GetLVv(i);
223     this->fLVi[i]=data.GetLVi(i);
224   }
225
226   for(int i=0;i<kNLV33;i++) {
227     this->fLVv33[i]=data.GetLVv33(i);
228     this->fLVi33[i]=data.GetLVi33(i);
229   }
230
231   for(int i=0;i<kNLV50;i++) {
232     this->fLVv50[i]=data.GetLVv50(i);
233     this->fLVi50[i]=data.GetLVi50(i);
234   }
235
236   for(int i=0;i<kNLV48;i++) {
237     this->fLVv48[i]=data.GetLVv48(i);
238     this->fLVi48[i]=data.GetLVi48(i);
239   }
240
241   for(int i=0;i<kNFEEthr;i++) {
242     this->fFEEthr[i]=data.GetFEEthr(i);
243   }
244
245   for(int i=0;i<kNFEEtfeac;i++) {
246     this->fFEEtfeac[i]=data.GetFEEtfeac(i);
247   }
248
249   for(int i=0;i<kNFEEttrm;i++) {
250     this->fFEEttrm[i]=data.GetFEEttrm(i);
251   }
252
253   this->fIsProcessed=data.fIsProcessed;
254
255   return *this;
256 }
257 //---------------------------------------------------------------
258 AliTOFDataDCS::~AliTOFDataDCS() {
259
260   // destructor
261
262   for(int i=0;i<kNHV;i++) {
263     delete fHVvp[i];
264     fHVvp[i]=0;
265     delete fHVvn[i];
266     fHVvn[i]=0;
267     delete fHVip[i];
268     fHVip[i]=0;
269     delete fHVin[i];
270     fHVin[i]=0;
271   }
272   
273   for(int i=0;i<kNLV;i++) {
274     delete fLVv[i];
275     fLVv[i]=0;
276     delete fLVi[i];
277     fLVi[i]=0;
278   }
279   
280   for(int i=0;i<kNLV33;i++) {
281     delete fLVv33[i];
282     fLVv33[i]=0;
283     delete fLVi33[i];
284     fLVi33[i]=0;
285   }
286   
287   for(int i=0;i<kNLV50;i++) {
288     delete fLVv50[i];
289     fLVv50[i]=0;
290     delete fLVi50[i];
291     fLVi50[i]=0;
292   }
293   
294   for(int i=0;i<kNLV48;i++) {
295     delete fLVv48[i];
296     fLVv48[i]=0;
297     delete fLVi48[i];
298     fLVi48[i]=0;
299   }
300   
301   for(int i=0;i<kNFEEthr;i++) {
302     delete fFEEthr[i];
303     fFEEthr[i]=0;
304   }
305   
306   for(int i=0;i<kNFEEtfeac;i++) {
307     delete fFEEtfeac[i];
308     fFEEtfeac[i]=0;
309   }
310   
311   for(int i=0;i<kNFEEttrm;i++) {
312     delete fFEEttrm[i];
313     fFEEttrm[i]=0;
314   }
315 }
316
317 //---------------------------------------------------------------
318 Bool_t AliTOFDataDCS::ProcessData(TMap& aliasMap){
319
320   // method to process the data
321
322   if(!(fAliasNames[0])) Init();
323
324   Float_t timeMin = (Float_t)fStartTime;
325   Float_t timeMax = (Float_t)fEndTime;
326   Float_t val=0;
327   Float_t val1=0;
328   Float_t time=0; 
329   Float_t delta[2];
330   Float_t timedelta[2];
331
332   TObjArray *aliasArr;
333   AliDCSValue* aValue;
334   AliDCSValue* aValue1;
335
336   // starting loop on aliases
337   for(int j=0; j<kNAliases; j++){
338     for (Int_t k=0;k<2;k++) {
339       delta[k]=0;
340       timedelta[k]=0;
341     }
342     //AliInfo(Form("j = %i, with alias = %s",j,fAliasNames[j].Data()));
343     aliasArr = (TObjArray*) aliasMap.GetValue(fAliasNames[j].Data());
344     if(!aliasArr){
345       AliError(Form("Alias %s not found!", fAliasNames[j].Data()));
346       return kFALSE;
347     }
348
349     Introduce(j, aliasArr);
350     
351     if(aliasArr->GetEntries()<3){
352       AliError(Form("Alias %s has just %d entries!",
353                     fAliasNames[j].Data(),aliasArr->GetEntries()));
354       continue;
355     }
356     
357     TIter iterarray(aliasArr);
358     
359     Int_t nentries = aliasArr->GetEntries();
360     Int_t deltaTimeStamp = (Int_t) nentries/3;
361     Int_t deltaTimeStamp1 = (Int_t) nentries/2;
362
363     // filling aliases with 10 floats+1 Usign
364     Int_t index = 0;
365     for (Int_t k=0;k<3;k++){
366       index = deltaTimeStamp*k;
367       if (k==0) {
368         index=0;
369       }
370       else if (k==1) {
371         index=deltaTimeStamp1;
372       } 
373       else if (k==2) {
374         index=nentries-1; 
375       }
376       aValue = (AliDCSValue*) aliasArr->At(index);
377       val = aValue->GetFloat();
378       time = (Float_t) (aValue->GetTimeStamp());
379       if (j<kNHV){
380         fHVvp[j]->SetFloat(k,val);
381         fHVvp[j]->SetTimeStampFloat(k,time);
382       }
383       else if (j<kNHV*2){
384         fHVvn[j-kNHV]->SetFloat(k,val);
385         fHVvn[j-kNHV]->SetTimeStampFloat(k,time);
386       }
387       else if (j<kNHV*3){
388         fHVip[j-2*kNHV]->SetFloat(k,val);
389         fHVip[j-2*kNHV]->SetTimeStampFloat(k,time);
390       }
391       else if (j<kNHV*4){
392         fHVin[j-3*kNHV]->SetFloat(k,val);
393         fHVin[j-3*kNHV]->SetTimeStampFloat(k,time);
394       }
395       else if (j<kNHV*4+kNLV){
396         fLVv[j-4*kNHV]->SetFloat(k,val);
397         fLVv[j-4*kNHV]->SetTimeStampFloat(k,time);
398       }
399       else if (j<kNHV*4+kNLV*2){
400         fLVi[j-4*kNHV-kNLV]->SetFloat(k,val);
401         fLVi[j-4*kNHV-kNLV]->SetTimeStampFloat(k,time);
402       }
403       else if (j<kNHV*4+kNLV*2+kNLV33){
404         fLVv33[j-4*kNHV-2*kNLV]->SetFloat(k,val);
405         fLVv33[j-4*kNHV-2*kNLV]->SetTimeStampFloat(k,time);
406       }
407       else if (j<kNHV*4+kNLV*2+kNLV33*2){
408         fLVi33[j-4*kNHV-2*kNLV-kNLV33]->SetFloat(k,val);
409         fLVi33[j-4*kNHV-2*kNLV-kNLV33]->SetTimeStampFloat(k,time);
410       }
411       else if (j<kNHV*4+kNLV*2+kNLV33*2+kNLV50){
412         fLVv50[j-4*kNHV-2*kNLV-2*kNLV33]->SetFloat(k,val);
413         fLVv50[j-4*kNHV-2*kNLV-2*kNLV33]->SetTimeStampFloat(k,time);
414       }
415       else if (j<kNHV*4+kNLV*2+kNLV33*2+kNLV50*2){
416         fLVi50[j-4*kNHV-2*kNLV-2*kNLV33-kNLV50]->SetFloat(k,val);
417         fLVi50[j-4*kNHV-2*kNLV-2*kNLV33-kNLV50]->SetTimeStampFloat(k,time);
418       }
419       else if (j<kNHV*4+kNLV*2+kNLV33*2+kNLV50*2+kNLV48){
420         fLVv48[j-4*kNHV-2*kNLV-2*kNLV33-2*kNLV50]->SetFloat(k,val);
421         fLVv48[j-4*kNHV-2*kNLV-2*kNLV33-2*kNLV50]->SetTimeStampFloat(k,time);
422       }
423       else if (j<kNHV*4+kNLV*2+kNLV33*2+kNLV50*2+kNLV48*2){
424         fLVi48[j-4*kNHV-2*kNLV-2*kNLV33-2*kNLV50-kNLV48]->SetFloat(k,val);
425         fLVi48[j-4*kNHV-2*kNLV-2*kNLV33-2*kNLV50-kNLV48]->SetTimeStampFloat(k,time);
426       }
427       else if (j<kNHV*4+kNLV*2+kNLV33*2+kNLV50*2+kNLV48*2+kNFEEthr){
428         fFEEthr[j-4*kNHV-2*kNLV-2*kNLV33-2*kNLV50-2*kNLV48]->SetFloat(k,val);
429         fFEEthr[j-4*kNHV-2*kNLV-2*kNLV33-2*kNLV50-2*kNLV48]->SetTimeStampFloat(k,time);
430       }
431       else if (j<kNHV*4+kNLV*2+kNLV33*2+kNLV50*2+kNLV48*2+kNFEEthr+kNFEEtfeac){
432         fFEEtfeac[j-4*kNHV-2*kNLV-2*kNLV33-2*kNLV50-2*kNLV48-kNFEEthr]->SetFloat(k,val);
433         fFEEtfeac[j-4*kNHV-2*kNLV-2*kNLV33-2*kNLV50-2*kNLV48-kNFEEthr]->SetTimeStampFloat(k,time);
434       }
435       else {
436         fFEEttrm[j-4*kNHV-2*kNLV-2*kNLV33-2*kNLV50-2*kNLV48-kNFEEthr-kNFEEtfeac]->SetFloat(k,val);
437         fFEEttrm[j-4*kNHV-2*kNLV-2*kNLV33-2*kNLV50-2*kNLV48-kNFEEthr-kNFEEtfeac]->SetTimeStampFloat(k,time);
438       }
439     }
440   
441     //computing the most significant variations
442
443     Int_t deltamin = (Int_t)(60/(timeMax-timeMin)*nentries);
444     Int_t klast = nentries-deltamin;
445       
446     for (Int_t k=0;k<klast;k++){
447       aValue = (AliDCSValue*) aliasArr->At(k);
448       aValue1 = (AliDCSValue*) aliasArr->At(k+deltamin);
449       val = aValue->GetFloat();
450       val1 = aValue1->GetFloat();
451       if (delta[0]<=TMath::Abs(val1-val)) {
452         delta[0]=TMath::Abs(val1-val);
453         timedelta[0] = (Float_t)k;
454       }
455       if (delta[1]<=delta[0]) {
456         Float_t temp = delta[1];
457         Float_t timetemp = timedelta[1];
458         delta[1]=delta[0];
459         delta[0]=temp;
460         timedelta[1]=timedelta[0];
461         timedelta[0]=timetemp;
462       }
463     }
464     
465     for (Int_t kk=0;kk<2;kk++){
466       if (j<kNHV){
467         fHVvp[j]->SetDelta(kk,delta[kk]);
468         fHVvp[j]->SetTimeStampDelta(kk,(Float_t)timedelta[kk]);
469       }
470       else if (j<kNHV*2){
471         fHVvn[j-kNHV]->SetDelta(kk,delta[kk]);
472         fHVvn[j-kNHV]->SetTimeStampDelta(kk,(Float_t)timedelta[kk]);
473       }
474       else if (j<kNHV*3){
475         fHVip[j-2*kNHV]->SetDelta(kk,delta[kk]);
476         fHVip[j-2*kNHV]->SetTimeStampDelta(kk,(Float_t)timedelta[kk]);
477       }
478       else if (j<kNHV*4){
479         fHVin[j-3*kNHV]->SetDelta(kk,delta[kk]);
480         fHVin[j-3*kNHV]->SetTimeStampDelta(kk,(Float_t)timedelta[kk]);
481       }
482       else if (j<kNHV*4+kNLV){
483         fLVv[j-4*kNHV]->SetDelta(kk,delta[kk]);
484         fLVv[j-4*kNHV]->SetTimeStampDelta(kk,(Float_t)timedelta[kk]);
485       }
486       else if (j<kNHV*4+kNLV*2){
487         fLVi[j-4*kNHV-kNLV]->SetDelta(kk,delta[kk]);
488         fLVi[j-4*kNHV-kNLV]->SetTimeStampDelta(kk,(Float_t)timedelta[kk]);
489       }
490       else if (j<kNHV*4+kNLV*2+kNLV33){
491         fLVv33[j-4*kNHV-2*kNLV]->SetDelta(kk,delta[kk]);
492         fLVv33[j-4*kNHV-2*kNLV]->SetTimeStampDelta(kk,(Float_t)timedelta[kk]);
493       }
494       else if (j<kNHV*4+kNLV*2+kNLV33*2){
495         fLVi33[j-4*kNHV-2*kNLV-kNLV33]->SetDelta(kk,delta[kk]);
496         fLVi33[j-4*kNHV-2*kNLV-kNLV33]->SetTimeStampDelta(kk,(Float_t)timedelta[kk]);
497       }
498       else if (j<kNHV*4+kNLV*2+kNLV33*2+kNLV50){
499         fLVv50[j-4*kNHV-2*kNLV-2*kNLV33]->SetDelta(kk,delta[kk]);
500         fLVv50[j-4*kNHV-2*kNLV-2*kNLV33]->SetTimeStampDelta(kk,(Float_t)timedelta[kk]);
501       }
502       else if (j<kNHV*4+kNLV*2+kNLV33*2+kNLV50*2){
503         fLVi50[j-4*kNHV-2*kNLV-2*kNLV33-kNLV50]->SetDelta(kk,delta[kk]);
504         fLVi50[j-4*kNHV-2*kNLV-2*kNLV33-kNLV50]->SetTimeStampDelta(kk,(Float_t)timedelta[kk]);
505       }
506       else if (j<kNHV*4+kNLV*2+kNLV33*2+kNLV50*2+kNLV48){
507         fLVv48[j-4*kNHV-2*kNLV-2*kNLV33-2*kNLV50]->SetDelta(kk,delta[kk]);
508         fLVv48[j-4*kNHV-2*kNLV-2*kNLV33-2*kNLV50]->SetTimeStampDelta(kk,(Float_t)timedelta[kk]);
509       }
510       else if (j<kNHV*4+kNLV*2+kNLV33*2+kNLV50*2+kNLV48*2){
511         fLVi48[j-4*kNHV-2*kNLV-2*kNLV33-2*kNLV50-kNLV48]->SetDelta(kk,delta[kk]);
512         fLVi48[j-4*kNHV-2*kNLV-2*kNLV33-2*kNLV50-kNLV48]->SetTimeStampDelta(kk,(Float_t)timedelta[kk]);
513       }
514       else if (j<kNHV*4+kNLV*2+kNLV33*2+kNLV50*2+kNLV48*2+kNFEEthr){
515         fFEEthr[j-4*kNHV-2*kNLV-2*kNLV33-2*kNLV50-2*kNLV48]->SetDelta(kk,delta[kk]);
516         fFEEthr[j-4*kNHV-2*kNLV-2*kNLV33-2*kNLV50-2*kNLV48]->SetTimeStampDelta(kk,(Float_t)timedelta[kk]);
517       }
518       else if (j<kNHV*4+kNLV*2+kNLV33*2+kNLV50*2+kNLV48*2+kNFEEthr+kNFEEtfeac){
519         fFEEtfeac[j-4*kNHV-2*kNLV-2*kNLV33-2*kNLV50-2*kNLV48-kNFEEthr]->SetDelta(kk,delta[kk]);
520         fFEEtfeac[j-4*kNHV-2*kNLV-2*kNLV33-2*kNLV50-2*kNLV48-kNFEEthr]->SetTimeStampDelta(kk,(Float_t)timedelta[kk]);
521       }
522       else if (j<kNHV*4+kNLV*2+kNLV33*2+kNLV50*2+kNLV48*2+kNFEEthr+kNFEEtfeac+kNFEEttrm){
523         fFEEttrm[j-4*kNHV-2*kNLV-2*kNLV33-2*kNLV50-2*kNLV48-kNFEEthr-kNFEEtfeac]->SetDelta(kk,delta[kk]);
524         fFEEttrm[j-4*kNHV-2*kNLV-2*kNLV33-2*kNLV50-2*kNLV48-kNFEEthr-kNFEEtfeac]->SetTimeStampDelta(kk,(Float_t)timedelta[kk]);
525       }
526     }
527   }
528   
529   fIsProcessed=kTRUE;
530
531   return kTRUE;
532 }
533
534 //---------------------------------------------------------------
535 void AliTOFDataDCS::Init(){
536
537   // initialization of aliases and DCS data
538
539   TString sindex;
540   for(int i=0;i<kNAliases;i++){
541     //HV, v
542     if (i<kNHV){
543         fAliasNames[i] = "tof_hv_vp_";
544         sindex.Form("%02i",i);
545         fAliasNames[i] += sindex;
546         fHVvp[i] = new AliTOFFormatDCS();
547     }
548     else if (i<kNHV*2){
549         fAliasNames[i] = "tof_hv_vn_";
550         sindex.Form("%02i",i-kNHV);
551         fAliasNames[i] += sindex;
552         fHVvn[i-kNHV] = new AliTOFFormatDCS();
553     }
554     //HV, i
555     else if (i<kNHV*3){
556         fAliasNames[i] = "tof_hv_ip_";
557         sindex.Form("%02i",i-2*kNHV);
558         fAliasNames[i] += sindex;
559         fHVip[i-2*kNHV] = new AliTOFFormatDCS();
560     }
561     else if (i<kNHV*4){
562         fAliasNames[i] = "tof_hv_in_";
563         sindex.Form("%02i",i-3*kNHV);
564         fAliasNames[i] += sindex;
565         fHVin[i-3*kNHV] = new AliTOFFormatDCS();
566     }
567     //LV, v
568     else if (i<(kNHV*4+kNLV)){
569         fAliasNames[i] = "tof_lv_vfea_";
570         sindex.Form("%03i",i-4*kNHV);
571         fAliasNames[i] += sindex;
572         fLVv[i-4*kNHV] = new AliTOFFormatDCS();
573     }
574     //LV, i
575     else if (i<(kNHV*4+kNLV*2)){
576         fAliasNames[i] = "tof_lv_ifea_";
577         sindex.Form("%03i",i-4*kNHV-kNLV);
578         fAliasNames[i] += sindex;
579         fLVi[i-4*kNHV-kNLV] = new AliTOFFormatDCS();
580     }
581     //LV 3.3, v
582     else if (i<(kNHV*4+kNLV*2+kNLV33)){
583         fAliasNames[i] = "tof_lv_v33_";
584         sindex.Form("%02i",i-4*kNHV-2*kNLV);
585         fAliasNames[i] += sindex;
586         fLVv33[i-4*kNHV-2*kNLV] = new AliTOFFormatDCS();
587     }
588     //LV 3.3, i
589     else if (i<(kNHV*4+kNLV*2+kNLV33*2)){
590         fAliasNames[i] = "tof_lv_i33_";
591         sindex.Form("%02i",i-4*kNHV-2*kNLV-kNLV33);
592         fAliasNames[i] += sindex;
593         fLVi33[i-4*kNHV-2*kNLV-kNLV33] = new AliTOFFormatDCS();
594     }
595     //LV 5.0, v
596     else if (i<(kNHV*4+kNLV*2+kNLV33*2+kNLV50)){
597         fAliasNames[i] = "tof_lv_v50_";
598         sindex.Form("%02i",i-4*kNHV-2*kNLV-2*kNLV33);
599         fAliasNames[i] += sindex;
600         fLVv50[i-4*kNHV-2*kNLV-2*kNLV33] = new AliTOFFormatDCS();
601     }
602     //LV 5.0, i
603     else if (i<(kNHV*4+kNLV*2+kNLV33*2+kNLV50*2)){
604         fAliasNames[i] = "tof_lv_i50_";
605         sindex.Form("%02i",i-4*kNHV-2*kNLV-2*kNLV33-kNLV50);
606         fAliasNames[i] += sindex;
607         fLVi50[i-4*kNHV-2*kNLV-2*kNLV33-kNLV50] = new AliTOFFormatDCS();
608     }
609     //LV 48, v
610     else if (i<(kNHV*4+kNLV*2+kNLV33*2+kNLV50*2+kNLV48)){
611         fAliasNames[i] = "tof_lv_v48_";
612         sindex.Form("%02i",i-4*kNHV-2*kNLV-2*kNLV33-2*kNLV50);
613         fAliasNames[i] += sindex;
614         fLVv48[i-4*kNHV-2*kNLV-2*kNLV33-2*kNLV50] = new AliTOFFormatDCS();
615     }
616     //LV 48, i
617     else if (i<(kNHV*4+kNLV*2+kNLV33*2+kNLV50*2+kNLV48*2)){
618         fAliasNames[i] = "tof_lv_i48_";
619         sindex.Form("%02i",i-4*kNHV-2*kNLV-2*kNLV33-2*kNLV50-kNLV48);
620         fAliasNames[i] += sindex;
621         fLVi48[i-4*kNHV-2*kNLV-2*kNLV33-2*kNLV50-kNLV48] = new AliTOFFormatDCS();
622     }
623     //FEE thresholds
624     else if (i<(kNHV*4+kNLV*2+kNLV33*2+kNLV50*2+kNLV48*2+kNFEEthr)){
625         fAliasNames[i] = "tof_fee_th_";
626         sindex.Form("%04i",i-4*kNHV-2*kNLV-2*kNLV33-2*kNLV50-2*kNLV48);
627         fAliasNames[i] += sindex;
628         fFEEthr[i-4*kNHV-2*kNLV-2*kNLV33-2*kNLV50-2*kNLV48] = new AliTOFFormatDCS();
629     }
630     //FEE FEAC temperatures
631     else if (i<(kNHV*4+kNLV*2+kNLV33*2+kNLV50*2+kNLV48*2+kNFEEthr+kNFEEtfeac)){
632         fAliasNames[i] = "tof_fee_tfeac_";
633         sindex.Form("%03i",i-4*kNHV-2*kNLV-2*kNLV33-2*kNLV50-2*kNLV48-kNFEEthr);
634         fAliasNames[i] += sindex;
635         fFEEtfeac[i-4*kNHV-2*kNLV-2*kNLV33-2*kNLV50-2*kNLV48-kNFEEthr] = new AliTOFFormatDCS();
636     }
637     //FEE trms temperatures
638     else if (i<(kNHV*4+kNLV*2+kNLV33*2+kNLV50*2+kNLV48*2+kNFEEthr+kNFEEtfeac+kNFEEttrm)){
639         fAliasNames[i] = "tof_fee_ttrm_";
640         sindex.Form("%04i",i-4*kNHV-2*kNLV-2*kNLV33-2*kNLV50-2*kNLV48-kNFEEthr-kNFEEtfeac);
641         fAliasNames[i] += sindex;
642         fFEEttrm[i-4*kNHV-2*kNLV-2*kNLV33-2*kNLV50-2*kNLV48-kNFEEthr-kNFEEtfeac] = new AliTOFFormatDCS();
643     }
644   }
645 }
646
647
648 //---------------------------------------------------------------
649 void AliTOFDataDCS::Introduce(UInt_t numAlias, const TObjArray* aliasArr)const
650 {
651
652   // method to introduce new aliases
653
654   int entries=0;
655   entries = aliasArr->GetEntries();
656   int nal=0;
657   nal=numAlias;
658   AliDebug(2,Form("************ Alias: %s **********",fAliasNames[numAlias].Data()));
659   AliDebug(2,Form("     %d DP values collected",entries));
660
661 }
662
663 //---------------------------------------------------------------
664 void AliTOFDataDCS::Draw(const Option_t* /*option*/) const
665 {
666 // Draw all histos and graphs
667
668   if(!fIsProcessed) return;
669
670   TCanvas *ch;
671   TString canvasHistoName="Histos";
672   ch=new TCanvas(canvasHistoName,canvasHistoName,20,20,600,600);
673   ch->cd();
674
675   // to be implemented
676
677 }
678