]> git.uio.no Git - u/mrichter/AliRoot.git/blame - T0/AliT0DataDCS.cxx
minor bugfix in argument scanning
[u/mrichter/AliRoot.git] / T0 / AliT0DataDCS.cxx
CommitLineData
dc7ca31d 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
16ClassImp(AliT0DataDCS)
17
18//---------------------------------------------------------------
19AliT0DataDCS::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//---------------------------------------------------------------
32AliT0DataDCS::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//---------------------------------------------------------------
50AliT0DataDCS::~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//---------------------------------------------------------------
91366e58 58Bool_t AliT0DataDCS::ProcessData(TMap& aliasMap)
59{
60/* ** TM 23.11.2007 for testing preprocessor **
dc7ca31d 61 if(!(fHv[0])) Init();
62
63 TObjArray *aliasArr;
64 AliDCSValue* aValue;
91366e58 65 for(int j=0; j<kNAliases; j++)
66 {
dc7ca31d 67 aliasArr = (TObjArray*) aliasMap.GetValue(fAliasNames[j].Data());
91366e58 68 if(!aliasArr)
69 {
dc7ca31d 70 AliError(Form("Alias %s not found!", fAliasNames[j].Data()));
71 continue;
72 }
73 Introduce(j, aliasArr);
74
91366e58 75 if(aliasArr->GetEntries()<2)
76 {
dc7ca31d 77 AliError(Form("Alias %s has just %d entries!",
78 fAliasNames[j].Data(),aliasArr->GetEntries()));
79 continue;
80 }
81
91366e58 82// TM, 6.10.2007
dc7ca31d 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;
91366e58 89 while ((aValue = (AliDCSValue*) iterarray.Next()))
90 {
dc7ca31d 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;
91366e58 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
dc7ca31d 146 }
147
91366e58 148** ** */
149
150/* TM, 6.10.2007
151
dc7ca31d 152 // calculate mean and rms of the first two histos
91366e58 153 for(int i=0;i<kNHistos;i++)
154 {
dc7ca31d 155 fMean[i] = fHv[i]->GetMean();
156 fWidth[i] = fHv[i]->GetRMS();
157 }
158
159 // pol1 fit of the first graph
91366e58 160 if(fGraphs.GetEntries() > 0)
161 {
dc7ca31d 162 ((TGraph*) fGraphs.UncheckedAt(0))->Fit("pol1");
163 fFunc = ((TGraph*) fGraphs.UncheckedAt(0))->GetFunction("pol1");
164 }
91366e58 165*/
dc7ca31d 166
167 fIsProcessed=kTRUE;
dc7ca31d 168}
169
170//---------------------------------------------------------------
91366e58 171void AliT0DataDCS::Init()
172{
dc7ca31d 173
174 TH1::AddDirectory(kFALSE);
175
176 fGraphs.SetOwner(1);
177
91366e58 178 for(int i=0;i<kNAliases;i++)
179 {
dc7ca31d 180 fAliasNames[i] = "DCSAlias";
181 fAliasNames[i] += i;
182 }
183
91366e58 184/* TM, 6.10.2007
185 for(int i=0;i<kNHistos;i++)
186 {
dc7ca31d 187 fHv[i] = new TH1F(fAliasNames[i].Data(),fAliasNames[i].Data(), 20, kHvMin, kHvMax);
188 fHv[i]->GetXaxis()->SetTitle("Hv");
189 }
91366e58 190*/
dc7ca31d 191}
192
193//---------------------------------------------------------------
194void 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//---------------------------------------------------------------
91366e58 203/* TM, 6.10.2007
dc7ca31d 204void 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
91366e58 217*/
218
dc7ca31d 219//---------------------------------------------------------------
91366e58 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");
dc7ca31d 247
91366e58 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 }
dc7ca31d 258 }
91366e58 259*/