]> git.uio.no Git - u/mrichter/AliRoot.git/blob - T0/AliT0DataDCS.cxx
4a26c2aa35ffa73e81593a6fa1779c585ff00e4e
[u/mrichter/AliRoot.git] / T0 / AliT0DataDCS.cxx
1 #include "AliT0DataDCS.h"
2
3 #include "AliCDBMetaData.h"
4 #include "AliDCSValue.h"
5 #include "AliLog.h"
6
7 #include <TTimeStamp.h>
8 #include <TObjString.h>
9 #include <TH2F.h>
10 #include <TProfile.h>
11 #include <TGraph.h>
12 #include <TDatime.h>
13 #include <TStyle.h>
14 #include <TCanvas.h>
15
16 ClassImp(AliT0DataDCS)
17
18 //---------------------------------------------------------------
19 AliT0DataDCS::AliT0DataDCS():
20         TObject(),
21         fRun(0),
22         fStartTime(0),
23         fEndTime(0),
24         fGraphs("TGraph",kNGraphs),
25         fIsProcessed(kFALSE)
26 {
27         for(int i=0;i<kNHistos;i++) fHv[i]=0x0;
28         fFunc = 0;
29 }
30
31 //---------------------------------------------------------------
32 AliT0DataDCS::AliT0DataDCS(Int_t nRun, UInt_t startTime, UInt_t endTime):
33         TObject(),
34         fRun(nRun),
35         fStartTime(startTime),
36         fEndTime(endTime),
37         fGraphs("TGraph",kNGraphs),
38         fIsProcessed(kFALSE)
39 {
40         AliInfo(Form("\n\tRun %d \n\tStartTime %s \n\tEndTime %s", nRun,
41         TTimeStamp(startTime).AsString(),
42         TTimeStamp(endTime).AsString()));
43
44         fFunc = 0;
45         Init();
46
47 }
48
49 //---------------------------------------------------------------
50 AliT0DataDCS::~AliT0DataDCS() {
51
52         for(int i=0;i<kNHistos;i++) {delete fHv[i]; fHv[i]=0;}
53         fGraphs.Clear("C");
54         fFunc=0;
55 }
56
57 //---------------------------------------------------------------
58 Bool_t AliT0DataDCS::ProcessData(TMap& aliasMap)
59 {
60 /* ** TM 23.11.2007 for testing preprocessor **
61         if(!(fHv[0])) Init();
62
63         TObjArray *aliasArr;
64         AliDCSValue* aValue;
65         for(int j=0; j<kNAliases; j++)
66         {
67                 aliasArr = (TObjArray*) aliasMap.GetValue(fAliasNames[j].Data());
68                 if(!aliasArr)
69                 {
70                         AliError(Form("Alias %s not found!", fAliasNames[j].Data()));
71                         continue;
72                 }
73                 Introduce(j, aliasArr);
74
75                 if(aliasArr->GetEntries()<2)
76                 {
77                         AliError(Form("Alias %s has just %d entries!",
78                                         fAliasNames[j].Data(),aliasArr->GetEntries()));
79                         continue;
80                 }
81
82 // TM, 6.10.2007
83                 TIter iterarray(aliasArr);
84
85                 Double_t *time = new Double_t[aliasArr->GetEntries()];
86                 Double_t *val = new Double_t[aliasArr->GetEntries()];
87
88                 UInt_t ne=0;
89                 while ((aValue = (AliDCSValue*) iterarray.Next())) 
90                 {
91                 val[ne] = aValue->GetFloat();
92                 time[ne] = (Double_t) (aValue->GetTimeStamp());
93                 // fill histos (alias 0-2)
94                 if(j < 3) fHv[j]->Fill(val[ne]);
95                 ne++;
96                 }
97                 // fill graphs (alias 3-5)
98                 if(j >= 3) CreateGraph(j, aliasArr->GetEntries(), time, val);
99                 delete[] val;
100                 delete[] time;
101
102 // TM, 21.11.2007
103           TObjArray *aliasArr;
104        // AliDCSValue *aValue;
105 //TM, 19.11.2007        Float_t t00_a_hv_imon[12]={0,0,0,0,0,0,0,0,0,0,0,0};
106 //TM, 19.11.2007        Float_t t00_a_hv_vmon[12]={0,0,0,0,0,0,0,0,0,0,0,0};
107 //TM, 19.11.2007        Float_t t00_a_lv_imon[2]={0,0};
108 //TM, 19.11.2007        Float_t t00_a_lv_vmon[2]={0,0};
109 //TM, 19.11.2007        Float_t t00_c_hv_imon[12]={0,0,0,0,0,0,0,0,0,0,0,0};
110 //TM, 19.11.2007        Float_t t00_c_hv_vmon[12]={0,0,0,0,0,0,0,0,0,0,0,0};
111 //TM, 19.11.2007        Float_t t00_c_lv_imon[2]={0,0};
112 //TM, 19.11.2007        Float_t t00_c_lv_vmon[2]={0,0};
113 //TM, 19.11.2007        Float_t t00_a_cfd_thre[12]={0,0,0,0,0,0,0,0,0,0,0,0};
114 //TM, 19.11.2007        Float_t t00_a_cfd_walk[12]={0,0,0,0,0,0,0,0,0,0,0,0};
115 //TM, 19.11.2007        Float_t t00_c_cfd_thre[12]={0,0,0,0,0,0,0,0,0,0,0,0};
116 //TM, 19.11.2007        Float_t t00_c_cfd_walk[12]={0,0,0,0,0,0,0,0,0,0,0,0};
117         Float_t t00_ac_scaler[32]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
118 //TM, 19.11.2007        Float_t t00_ac_trm[20]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
119 //TM, 19.11.2007        Float_t t00_ac_drm= 0;
120
121         for(int j=0; j<32; j++)
122         {
123                 TString aliasName =Form("t00_ac_scaler_%d",j);
124 //TM, 19.11.2007                TString aliasName =Form("t00_a_hv_imon_%d",j);
125 //TM, 19.11.2007                TString aliasName1 =Form("t00_a_hv_vmon_%d",j);
126 //TM, 19.11.2007                TString aliasName2 =Form("t00_c_hv_imon_%d",j);
127 //TM, 19.11.2007                TString aliasName3 =Form("t00_c_hv_vmon_%d",j);
128 //TM, 19.11.2007                TString aliasName4 =Form("t00_a_cfd_thre_%d",j);
129 //TM, 19.11.2007                  TString aliasName5 =Form("t00_a_cfd_walk_%d",j);
130 //TM, 19.11.2007                  TString aliasName6 =Form("t00_c_cfd_thre_%d",j);
131 //TM, 19.11.2007                  TString aliasName7 =Form("t00_c_cfd_walk_%d",j);
132
133                 printf("aliasname: %s\n",aliasName.Data());
134                 aliasArr = dynamic_cast<TObjArray*> (dcsAliasMap->GetValue(aliasName.Data()));
135                 if(!aliasArr){
136                         AliError(Form("Alias %s not found!", aliasName.Data()));
137                         continue;
138         }
139                 AliDCSValue *aValue=dynamic_cast<AliDCSValue*> (aliasArr->At(0));
140                // printf("I'm here! %f %x\n", aValue->GetFloat(), aValue->GetTimeStamp());
141                // TM, 6.10.2007 hv[j]= aValue->GetFloat()*100;
142                //Float_t timestamp= (Float_t) (aValue->GetTimeStamp());
143                 // printf("hello! hv = %f timestamp = %f\n" ,hv[j], timestamp);
144
145
146         }
147
148 ** ** */
149
150 /* TM, 6.10.2007
151
152         // calculate mean and rms of the first two histos
153         for(int i=0;i<kNHistos;i++)
154         {
155                 fMean[i] = fHv[i]->GetMean();
156                 fWidth[i] = fHv[i]->GetRMS();
157         }
158
159         // pol1 fit of the first graph
160         if(fGraphs.GetEntries() > 0)
161         {
162                 ((TGraph*) fGraphs.UncheckedAt(0))->Fit("pol1");
163                 fFunc = ((TGraph*) fGraphs.UncheckedAt(0))->GetFunction("pol1");
164         }
165 */
166
167         fIsProcessed=kTRUE;
168 }
169
170 //---------------------------------------------------------------
171 void AliT0DataDCS::Init()
172 {
173
174         TH1::AddDirectory(kFALSE);
175
176         fGraphs.SetOwner(1);
177
178         for(int i=0;i<kNAliases;i++)
179         {
180                 fAliasNames[i] = "DCSAlias";
181                 fAliasNames[i] += i;
182         }
183
184 /* TM, 6.10.2007
185         for(int i=0;i<kNHistos;i++)
186         {
187                 fHv[i] = new TH1F(fAliasNames[i].Data(),fAliasNames[i].Data(), 20, kHvMin, kHvMax);
188                 fHv[i]->GetXaxis()->SetTitle("Hv");
189         }
190 */
191 }
192
193 //---------------------------------------------------------------
194 void AliT0DataDCS::Introduce(UInt_t numAlias, const TObjArray* aliasArr){
195
196         int entries=aliasArr->GetEntries();
197         AliInfo(Form("************ Alias: %s **********",fAliasNames[numAlias].Data()));
198         AliInfo(Form("          %d DP values collected",entries));
199
200 }
201
202 //---------------------------------------------------------------
203 /* TM, 6.10.2007
204 void AliT0DataDCS::CreateGraph(int i, int dim, const Double_t *x, const Double_t *y)
205 {
206
207         TGraph *gr = new(fGraphs[fGraphs.GetEntriesFast()]) TGraph(dim, x, y);
208
209         gr->GetXaxis()->SetTimeDisplay(1);
210         gr->SetTitle(fAliasNames[i].Data());
211
212         AliInfo(Form("Array entries: %d",fGraphs.GetEntriesFast()));
213
214
215 }
216
217 */
218
219 //---------------------------------------------------------------
220 /* TM, 6.10.2007 
221
222   void AliT0DataDCS::Draw(const Option_t* )
223   {
224    // Draw all histos and graphs
225
226     if(!fIsProcessed) return;
227
228     TCanvas *ch;
229     TString canvasHistoName="Histos";
230     ch=new TCanvas(canvasHistoName,canvasHistoName,20,20,600,600);
231     ch->Divide(2,2);
232     ch->cd(1);
233     fHv[0]->Draw();
234     ch->cd(2);
235     fHv[1]->Draw();
236     ch->cd(3);
237     fHv[2]->Draw();
238
239     if(fGraphs.GetEntries() == 0) return;
240
241     TCanvas *cg;
242     TString canvasGraphName="Graphs";
243     cg=new TCanvas(canvasGraphName,canvasGraphName,40,40,600,600);
244     cg->Divide(2,2);
245     cg->cd(1);
246     ((TGraph*) fGraphs.UncheckedAt(0))->Draw("alp");
247   
248     cg->cd(2);
249     ((TGraph*) fGraphs.UncheckedAt(1))->Draw("alp");
250     cg->cd(3);
251     ((TGraph*) fGraphs.UncheckedAt(2))->Draw("alp");
252
253     if(fFunc)
254     {
255       cg->cd(4);
256       fFunc->Draw("l");
257     }
258   }
259 */