28 #include "TObjArray.h"
36 const Char_t* context)
40 Int_t size = 6*4*6*220;
73 Int_t notconnectedsum = 0;
74 Int_t nooffsetsum = 0;
75 Int_t dropefficsum = 0;
78 for(Int_t s = 0; s < 6; s ++){
79 for(Int_t m = 0; m < 4; m ++){
85 for(Int_t l = 0; l < 6; l ++){
86 for(Int_t c = 0; c < 220; c ++){
89 if(stat == 1) working ++;
90 if(stat == -1) notconnected ++;
91 if(stat == -3) nooffset ++;
92 if(stat == -5) dropeffic ++;
93 if(stat == -7) dead ++;
96 workingsum = workingsum + working;
97 notconnectedsum= notconnectedsum + notconnected;
98 nooffsetsum = nooffsetsum + nooffset;
99 dropefficsum = dropefficsum + dropeffic;
100 deadsum = deadsum + dead;
101 printf(
"s %i m %i \n" ,s,m);
102 printf(
" working: %i \n",working);
103 printf(
" not connected: %i \n",notconnected);
104 printf(
" no calibration: %i \n",nooffset);
105 printf(
"drop in efficiency: %i \n",dropeffic);
106 printf(
" dead: %i \n",dead);
111 printf(
" working: %i \n",workingsum);
112 printf(
" not connected: %i \n",notconnectedsum);
113 printf(
" no calibration: %i \n",nooffsetsum);
114 printf(
"drop in efficiency: %i \n",dropefficsum);
115 printf(
" dead: %i \n",deadsum);
126 Int_t workingsum = 0;
127 Int_t notconnectedsum = 0;
128 Int_t nooffsetsum = 0;
129 Int_t dropefficsum = 0;
132 for(Int_t s = 0; s < 6; s ++){
133 for(Int_t m = 0; m < 4; m ++){
139 for(Int_t l = 0; l < 6; l ++){
140 for(Int_t c = 0; c< 220; c ++){
143 if(stat == 1) working ++;
144 if(stat == -1) notconnected ++;
145 if(stat == -3) nooffset ++;
146 if(stat == -5) dropeffic ++;
147 if(stat == -7) dead ++;
150 workingsum = workingsum + working;
151 notconnectedsum= notconnectedsum + notconnected;
152 nooffsetsum = nooffsetsum + nooffset;
153 dropefficsum = dropefficsum + dropeffic;
154 deadsum = deadsum + dead;
159 printf(
" working: %i \n",workingsum);
160 printf(
" not connected: %i \n",notconnectedsum);
161 printf(
" no calibration: %i \n",nooffsetsum);
162 printf(
"drop in efficiency: %i \n",dropefficsum);
163 printf(
" dead: %i \n",deadsum);
173 Int_t workingsum = 0;
174 Int_t notconnectedsum = 0;
175 Int_t nooffsetsum = 0;
178 for(Int_t s = 0; s < 6; s ++){
179 for(Int_t m = 0; m < 4; m ++){
184 for(Int_t l = 0; l < 6; l ++){
185 for(Int_t c = 0; c < 220; c ++){
188 if(stat == 1) working ++;
189 if(stat == -1) notconnected ++;
190 if(stat == -3) nooffset ++;
191 if(stat == -7) dead ++;
194 workingsum = workingsum + working;
195 notconnectedsum = notconnectedsum + notconnected;
196 nooffsetsum = nooffsetsum + nooffset;
197 deadsum = deadsum + dead;
205 Int_t notconnected = 0;
211 for(Int_t l = 0; l < 6; l ++){
212 for(Int_t c = 0; c <220; c ++){
215 if(stat == 1) working ++;
216 if(stat == -1) notconnected ++;
217 if(stat == -3) nooffset ++;
218 if(stat == -7) dead ++;
229 for(Int_t s = 0; s < 6; s ++){
230 for(Int_t m = 0; m < 4; m ++){
231 for(Int_t l = 0; l < 6; l ++){
232 for(Int_t c = 0; c < 220; c ++){
233 Int_t ind =
index(s,m,l,c);
235 "s %i m %i l %i c %3i mb %2i tdc %2i status %i efficiency %5.4f offset %5.4f",
257 if (!l)
return kFALSE;
259 if(!( l->
fill(
"mb" ,&
mb )))
return kFALSE;
260 if(!( l->
fill(
"tdc" ,&
tdc)))
return kFALSE;
263 if(!( l->
fill(
"offset" ,&
offset )))
return kFALSE;
270 gStyle->SetOptStat(0);
272 sprintf(name,
"%s",
"Mb_vs_Tdc");
273 TCanvas* result =
new TCanvas(name,name,1000,800);
276 TH2F* hmb_vs_tdc[6][4];
278 for(Int_t sec = 0; sec < 6; sec ++){
279 for(Int_t mod = 0; mod < 4; mod ++){
280 sprintf(name,
"%s%i%s%i",
"hStatusMb_vs_Tdc_sec",sec,
"_mod",mod);
281 hmb_vs_tdc[sec][mod] =
new TH2F(name,name,96,0,96,16,0,16);
282 hmb_vs_tdc[sec][mod]->SetXTitle(
"tdc channel");
283 hmb_vs_tdc[sec][mod]->SetYTitle(
"Mbo");
284 for(Int_t bx = 0; bx < 96; bx ++){
285 for(Int_t by = 0; by < 16; by ++){
286 hmb_vs_tdc[sec][mod]->SetBinContent(bx+1,by+1,-10);
289 for(Int_t l = 0; l < 6; l ++){
290 for(Int_t c = 0; c < 220; c ++){
291 Int_t ind =
index(sec,mod,l,c);
295 hmb_vs_tdc[sec][mod]->SetBinContent(t+1,mbo+1,st);
298 hmb_vs_tdc[sec][mod]->SetMinimum(-4);
299 result->cd(mod*6+sec+1);
300 hmb_vs_tdc[sec][mod]->DrawCopy(
"Colz");
307 gStyle->SetOptStat(0);
309 sprintf(name,
"%s",
"Mb_vs_Tdc");
310 TCanvas* result =
new TCanvas(name,name,1000,800);
313 TH2F* hmb_vs_tdc[6][4];
316 for(Int_t sec = 0; sec < 6; sec ++){
317 for(Int_t mod = 0; mod < 4; mod ++){
318 sprintf(name,
"%s%i%s%i",
"hEfficiencyMb_vs_Tdc_sec",sec,
"_mod",mod);
319 hmb_vs_tdc[sec][mod] =
new TH2F(name,name,96,0,96,16,0,16);
320 hmb_vs_tdc[sec][mod]->SetXTitle(
"tdc channel");
321 hmb_vs_tdc[sec][mod]->SetYTitle(
"Mbo");
323 for(Int_t bx = 0; bx < 96; bx ++){
324 for(Int_t by = 0; by < 16; by ++){
325 hmb_vs_tdc[sec][mod]->SetBinContent(bx+1,by+1,-10);
329 for(Int_t l = 0; l < 6; l ++){
330 for(Int_t c = 0; c < 220; c ++){
331 Int_t ind =
index(sec,mod,l,c);
335 hmb_vs_tdc[sec][mod]->SetBinContent(t+1,mbo+1,eff);
338 result->cd(mod*6+sec+1);
339 hmb_vs_tdc[sec][mod]->DrawCopy(
"Colz");
347 gStyle->SetOptStat(0);
349 sprintf(name,
"%s",
"Mb_vs_Tdc");
350 TCanvas* result =
new TCanvas(name,name,1000,800);
353 TH2F* hmb_vs_tdc[6][4];
356 for(Int_t sec = 0; sec < 6; sec ++){
357 for(Int_t mod = 0; mod < 4; mod ++){
358 sprintf(name,
"%s%i%s%i",
"hOffsetMb_vs_Tdc_sec",sec,
"_mod",mod);
359 hmb_vs_tdc[sec][mod] =
new TH2F(name,name,96,0,96,16,0,16);
360 hmb_vs_tdc[sec][mod]->SetXTitle(
"tdc channel");
361 hmb_vs_tdc[sec][mod]->SetYTitle(
"Mbo");
363 for(Int_t bx = 0; bx < 96; bx ++){
364 for(Int_t by = 0; by < 16; by ++){
365 hmb_vs_tdc[sec][mod]->SetBinContent(bx+1,by+1,-10);
369 for(Int_t l = 0; l < 6; l ++){
370 for(Int_t c = 0; c < 220; c ++){
371 Int_t ind =
index(sec,mod,l,c);
375 hmb_vs_tdc[sec][mod]->SetBinContent(t+1,mbo+1,off);
378 result->cd(mod*6+sec+1);
379 hmb_vs_tdc[sec][mod]->DrawCopy(
"Colz");
386 gStyle->SetOptStat(0);
388 sprintf(name,
"status_s%i_m%i",sec,mod);
389 TCanvas* result =
new TCanvas(name,name,1000,800);
394 for(Int_t l = 0; l < 6; l ++){
395 sprintf(name,
"%s%i%s%i%s%i",
"hmdcstatus_sec",sec,
"_mod",mod,
"_layer",l);
396 hmdcstatus[l] =
new TH1F(name,name,220,0,220);
397 hmdcstatus[l]->SetXTitle(
"wire number");
398 hmdcstatus[l]->SetYTitle(
"status");
399 hmdcstatus[l]->SetFillColor(8);
400 for(Int_t c = 0; c < 220; c ++){
401 Int_t ind =
index(sec,mod,l,c);
403 hmdcstatus[l]->SetBinContent(c+1,st);
406 hmdcstatus[l]->DrawCopy();
412 gStyle->SetOptStat(0);
414 sprintf(name,
"efficiency_s%i_m%i",sec,mod);
415 TCanvas* result =
new TCanvas(name,name,1000,800);
418 TH1F* hmdcefficiency[6];
420 for(Int_t l = 0; l < 6; l ++){
421 sprintf(name,
"%s%i%s%i%s%i",
"hmdcefficiency_sec",sec,
"_mod",mod,
"_layer",l);
422 hmdcefficiency[l] =
new TH1F(name,name,220,0,220);
423 hmdcefficiency[l]->SetXTitle(
"wire number");
424 hmdcefficiency[l]->SetYTitle(
"efficiency");
425 for(Int_t c = 0; c < 220; c ++){
426 Int_t ind =
index(sec,mod,l,c);
428 hmdcefficiency[l]->SetBinContent(c+1,eff);
431 hmdcefficiency[l]->DrawCopy();
437 gStyle->SetOptStat(0);
439 sprintf(name,
"offset_s%i_m%i",sec,mod);
440 TCanvas* result =
new TCanvas(name,name,1000,800);
445 for(Int_t l = 0; l < 6; l ++){
446 sprintf(name,
"%s%i%s%i%s%i",
"hmdcoffset_sec",sec,
"_mod",mod,
"_layer",l);
447 hmdcoffset[l] =
new TH1F(name,name,220,0,220);
448 hmdcoffset[l]->SetXTitle(
"wire number");
449 hmdcoffset[l]->SetYTitle(
"offset [ns]");
450 for(Int_t c = 0; c < 220; c ++){
451 Int_t ind =
index(sec,mod,l,c);
453 hmdcoffset[l]->SetBinContent(c+1,off);
456 hmdcoffset[l]->DrawCopy();
TCanvas * plotEfficiency(Int_t, Int_t)
void putParams(HParamList *)
TCanvas * plotEfficiencyMbVsTdc()
Int_t index(Int_t s, Int_t m, Int_t l, Int_t c)
void info(Char_t level, Int_t det, const Char_t *className, const Char_t *text)
void resetInputVersions()
TCanvas * plotOffsetMbVsTdc()
Bool_t getParams(HParamList *)
Bool_t changed
static flag
#define INFO_msg(level, det, text)
Bool_t status
versions of container in the 2 possible inputs
TCanvas * plotStatus(Int_t, Int_t)
ClassImp(HMdcWireStat) HMdcWireStat
#define SEPERATOR_msg(sep, num)
Bool_t fill(const Text_t *, Text_t *, const Int_t)
TCanvas * plotOffset(Int_t, Int_t)
TCanvas * plotStatusMbVsTdc()
HMessageMgr * getMsg(void)