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