2 |
* FTrkScanQlook_EXPERT.cxx |
* FTrkScanQlook_EXPERT.cxx |
3 |
* |
* |
4 |
* autor: D.Fedele |
* autor: D.Fedele |
5 |
* version v2r04 |
* version v2r08 |
6 |
* Parameters: |
* Parameters: |
7 |
* file - the path to the root file to analyze |
* file - the path to the root file to analyze |
8 |
* outdir - total path of output file |
* outdir - total path of output file |
202 |
printf(" Number of Header Entries: %d\n",neventH); |
printf(" Number of Header Entries: %d\n",neventH); |
203 |
printf(" Number of Calibration: %d\n",cevents); |
printf(" Number of Calibration: %d\n",cevents); |
204 |
|
|
205 |
Long64_t obt=0,hobt[neventH]; |
ULong_t obt=0,hobt[neventH]; |
206 |
Int_t eve,cin=0,cins=0,br=0; |
Int_t eve,cin=0,cins=0,br=0,olrun[neventH]; |
207 |
TString cal=""; |
TString cal=""; |
208 |
|
|
209 |
eve=3; |
eve=3; |
211 |
otr->GetEntry(i); |
otr->GetEntry(i); |
212 |
pH = eH->GetPscuHeader(); |
pH = eH->GetPscuHeader(); |
213 |
hobt[i]= pH->GetOrbitalTime(); |
hobt[i]= pH->GetOrbitalTime(); |
214 |
|
olrun[i]=reh->TRK_CALIB_USED; |
215 |
if(reh->TRK_CALIB_USED!=104 && br==0){ |
if(reh->TRK_CALIB_USED!=104 && br==0){ |
216 |
obt = pH->GetOrbitalTime(); |
obt = pH->GetOrbitalTime(); |
217 |
cal="Event with online calibration"; |
cal="Event with online calibration"; |
243 |
|
|
244 |
TPad *trkpad[12]; //pad for histos |
TPad *trkpad[12]; //pad for histos |
245 |
|
|
246 |
stringstream fromfile,title,hid,message; |
stringstream fromfile,isfile,title,hid,message; |
247 |
TString figsa="",figsav="",figsava=""; |
TString figsa="",figsav="",figsava=""; |
248 |
Int_t canvasx=1200; |
Int_t canvasx=1200; |
249 |
Int_t canvasy=900; |
Int_t canvasy=900; |
269 |
for(Int_t i=0;i<nevents;i++){ |
for(Int_t i=0;i<nevents;i++){ |
270 |
tr->GetEntry(i); |
tr->GetEntry(i); |
271 |
ph = eh->GetPscuHeader(); |
ph = eh->GetPscuHeader(); |
|
if(reh->TRK_CALIB_USED==104) continue; |
|
272 |
cod = eh->GetCounter(); |
cod = eh->GetCounter(); |
273 |
|
if(olrun[cod->Get(pctp->RunHeader)-1]==104) continue; |
274 |
if(value%10!=0){ |
if(value%10!=0){ |
275 |
if(i==0) cin=cod->Get(pctp->CalibTrk1)+((value%10)-1); |
if(i==0) cin=cod->Get(pctp->CalibTrk1)+((value%10)-1); |
276 |
if(cod->Get(pctp->CalibTrk1)==cin+1){ |
if(cod->Get(pctp->CalibTrk1)==cin+1){ |
284 |
eve=i+3; |
eve=i+3; |
285 |
cin=100; |
cin=100; |
286 |
} |
} |
287 |
else if(event>=0 && ph->GetOrbitalTime()>obt && obt>0){ |
else if(event>=0 && (ULong_t)ph->GetOrbitalTime()>obt && obt>0){ |
288 |
eve=i+3; |
eve=i+3; |
289 |
obt=-1; |
obt=0; |
290 |
} |
} |
291 |
} |
} |
292 |
if(i==0) cins=cod->Get(pctp->CalibTrk1); |
if(i==0) cins=cod->Get(pctp->CalibTrk1); |
293 |
if(cod->Get(pctp->CalibTrk1)==cins+1){ |
if(cod->Get(pctp->CalibTrk1)>cins){ |
294 |
psum=1; |
psum=1; |
295 |
cins=cod->Get(pctp->CalibTrk1); |
cins=cod->Get(pctp->CalibTrk1); |
296 |
} |
} |
441 |
if(psum==totsum+1){ |
if(psum==totsum+1){ |
442 |
if(value%10==0 && value>0) values << (short int)(-cins) << endl << endl; |
if(value%10==0 && value>0) values << (short int)(-cins) << endl << endl; |
443 |
psum=0; |
psum=0; |
444 |
for(Int_t vi = 0; vi < 12; vi++){ |
for(Int_t vi = 0; vi < 12; vi++){ |
445 |
TLine li,liva1; |
if(p[vi]>0){ |
446 |
li.SetLineColor(38); |
|
447 |
li.SetLineStyle(4); |
TLine li,liva1; |
448 |
li.SetLineWidth(2); |
li.SetLineColor(38); |
449 |
liva1.SetLineColor(42); |
li.SetLineStyle(4); |
450 |
liva1.SetLineStyle(3); |
li.SetLineWidth(2); |
451 |
liva1.SetLineWidth(1); |
liva1.SetLineColor(42); |
452 |
|
liva1.SetLineStyle(3); |
453 |
|
liva1.SetLineWidth(1); |
454 |
|
|
455 |
Float_t va1x=0; |
Float_t va1x=0; |
456 |
csum[cins-1]->cd(); |
csum[cins-1]->cd(); |
457 |
trkpad[vi]->Draw(); |
trkpad[vi]->Draw(); |
458 |
trkpad[vi]->cd(); |
trkpad[vi]->cd(); |
459 |
trkpad[vi]->SetFillColor(10); |
trkpad[vi]->SetFillColor(10); |
460 |
|
|
461 |
stringstream tit,hid; |
stringstream tit,hid; |
462 |
tit.str(""); |
tit.str(""); |
463 |
hid.str(""); |
hid.str(""); |
464 |
tit<<"DSP "<<vi+1; |
tit<<"DSP "<<vi+1; |
465 |
sum[vi][cins-1][0]->SetTitle(tit.str().c_str()); |
sum[vi][cins-1][0]->SetTitle(tit.str().c_str()); |
466 |
sum[vi][cins-1][0]->GetXaxis()->SetTitle("channel id"); |
sum[vi][cins-1][0]->GetXaxis()->SetTitle("channel id"); |
467 |
sum[vi][cins-1][0]->GetXaxis()->CenterTitle(); |
sum[vi][cins-1][0]->GetXaxis()->CenterTitle(); |
468 |
sum[vi][cins-1][0]->GetXaxis()->SetRangeUser(0,3073); |
sum[vi][cins-1][0]->GetXaxis()->SetRangeUser(0,3073); |
469 |
sum[vi][cins-1][0]->GetXaxis()->SetTitleSize(0.06); |
sum[vi][cins-1][0]->GetXaxis()->SetTitleSize(0.06); |
470 |
sum[vi][cins-1][0]->GetXaxis()->SetTitleOffset(0.8); |
sum[vi][cins-1][0]->GetXaxis()->SetTitleOffset(0.8); |
471 |
sum[vi][cins-1][0]->GetYaxis()->SetTitle("ADC value"); |
sum[vi][cins-1][0]->GetYaxis()->SetTitle("ADC value"); |
472 |
sum[vi][cins-1][0]->GetYaxis()->SetTitleSize(0.09); |
sum[vi][cins-1][0]->GetYaxis()->SetTitleSize(0.09); |
473 |
sum[vi][cins-1][0]->GetYaxis()->SetTitleOffset(0.4); |
sum[vi][cins-1][0]->GetYaxis()->SetTitleOffset(0.4); |
474 |
sum[vi][cins-1][0]->GetYaxis()->CenterTitle(); |
sum[vi][cins-1][0]->GetYaxis()->CenterTitle(); |
475 |
sum[vi][cins-1][0]->GetYaxis()->SetRangeUser(0,4500); |
sum[vi][cins-1][0]->GetYaxis()->SetRangeUser(0,4500); |
476 |
sum[vi][cins-1][0]->SetMarkerStyle(20); |
sum[vi][cins-1][0]->SetMarkerStyle(20); |
477 |
sum[vi][cins-1][0]->SetMarkerSize(0.1); |
sum[vi][cins-1][0]->SetMarkerSize(0.1); |
478 |
sum[vi][cins-1][0]->SetMarkerColor(4); |
sum[vi][cins-1][0]->SetMarkerColor(4); |
479 |
sum[vi][cins-1][0]->Draw("ap"); |
sum[vi][cins-1][0]->Draw("ap"); |
480 |
hid<<p[vi]<<" events"; |
hid<<p[vi]<<" events"; |
481 |
t->SetTextSize(0.11); |
t->SetTextSize(0.11); |
482 |
t->DrawLatex(2400,4250,hid.str().c_str()); |
t->DrawLatex(2400,4250,hid.str().c_str()); |
483 |
for(int pi=1; pi<p[vi];pi++){ |
for(int pi=1; pi<p[vi];pi++){ |
484 |
sum[vi][cins-1][pi]->SetMarkerStyle(21); |
sum[vi][cins-1][pi]->SetMarkerStyle(21); |
485 |
sum[vi][cins-1][pi]->SetMarkerSize(0.1); |
sum[vi][cins-1][pi]->SetMarkerSize(0.1); |
486 |
sum[vi][cins-1][pi]->SetMarkerColor(4); |
sum[vi][cins-1][pi]->SetMarkerColor(4); |
487 |
sum[vi][cins-1][pi]->Draw("p"); |
sum[vi][cins-1][pi]->Draw("p"); |
488 |
} |
} |
489 |
for(int va=1; va<24; va++){ |
for(int va=1; va<24; va++){ |
490 |
va1x=128*va; |
va1x=128*va; |
491 |
liva1.DrawLine(va1x,0.,va1x,4500.); |
liva1.DrawLine(va1x,0.,va1x,4500.); |
492 |
|
} |
493 |
|
li.DrawLine(1024.5,0.,1024.5,4500.); |
494 |
|
li.DrawLine(2048.5,0.,2048.5,4500.); |
495 |
|
csum[cins-1]->Update(); |
496 |
|
hid.str(""); |
497 |
} |
} |
|
li.DrawLine(1024.5,0.,1024.5,4500.); |
|
|
li.DrawLine(2048.5,0.,2048.5,4500.); |
|
|
csum[cins-1]->Update(); |
|
|
hid.str(""); |
|
498 |
} |
} |
499 |
if(strcmp(outfile.Data(),"ps") && strcmp(outfile.Data(),"pdf")){ |
if(strcmp(outfile.Data(),"ps") && strcmp(outfile.Data(),"pdf")){ |
500 |
figsa+="."+outfile; |
figsa+="."+outfile; |
501 |
csum[cins-1]->Print(figsa.Data()); |
csum[cins-1]->Print(figsa.Data()); |
502 |
} |
} |
503 |
} |
if(cod->Get(pctp->CalibTrk1)==cevents) break; |
504 |
|
} |
505 |
} |
} |
506 |
} |
} |
507 |
|
|
568 |
t->SetTextSize(0.02); |
t->SetTextSize(0.02); |
569 |
t->DrawLatex(0.02,0.98,fromfile.str().c_str()); |
t->DrawLatex(0.02,0.98,fromfile.str().c_str()); |
570 |
t->DrawLatex(0.60,0.98,cal.Data()); |
t->DrawLatex(0.60,0.98,cal.Data()); |
571 |
|
|
572 |
|
isfile<<"Chips with white line at least once showed anomalous behaviour"; |
573 |
|
t->SetTextColor(1); |
574 |
|
t->SetTextSize(0.018); |
575 |
|
t->DrawLatex(.05,.96,isfile.str().c_str()); |
576 |
|
isfile.str(""); |
577 |
|
|
578 |
|
isfile<<"Boxes so colored point out anomalous chips (not necessarily broken)"; |
579 |
|
t->SetTextColor(107); |
580 |
|
// t->DrawLatex(.5,.96,isfile.str().c_str()); |
581 |
|
isfile.str(""); |
582 |
|
t->SetTextColor(1); |
583 |
|
|
584 |
if(va1!=0){ |
if(va1!=0){ |
585 |
figsava=out+ffile+"_FTrkScanQLook_EXPERT_ev"; |
figsava=out+ffile+"_FTrkScanQLook_EXPERT_ev"; |
848 |
liva1.SetLineStyle(3); |
liva1.SetLineStyle(3); |
849 |
liva1.SetLineWidth(1); |
liva1.SetLineWidth(1); |
850 |
|
|
851 |
Float_t va1x=0; |
Float_t va1x=0,maxhist=4500.,minhist=-500.; |
852 |
|
|
853 |
if(va1!=0){ |
if(va1!=0){ |
854 |
cva[e]->cd(); |
cva[e]->cd(); |
893 |
if(icomp[nn]==1) histocomp[nn][e]->Draw("9bsame]["); |
if(icomp[nn]==1) histocomp[nn][e]->Draw("9bsame]["); |
894 |
if(imax[nn]==1) histomax[nn][e]->Draw("same]["); |
if(imax[nn]==1) histomax[nn][e]->Draw("same]["); |
895 |
histocomp[nn][e]->Draw("axis same"); |
histocomp[nn][e]->Draw("axis same"); |
896 |
|
|
897 |
|
b.SetFillColor(19); |
898 |
|
b.SetFillStyle(3945); |
899 |
if(nn==0){ |
if(nn==0){ |
900 |
b.SetFillColor(107); |
b.DrawBox(0.,minhist,2047.,maxhist); |
|
b.SetFillStyle(3945); |
|
|
b.DrawBox(256.,-500.,384.,4500); |
|
|
b.DrawBox(768.,-500.,2047.,4500.); |
|
901 |
} |
} |
902 |
else if(nn==1){ |
else if(nn==1){ |
903 |
b.SetFillColor(6); |
b.DrawBox(128.,minhist,256.,maxhist); |
904 |
b.SetFillStyle(3945); |
b.DrawBox(384.,minhist,512.,maxhist); |
905 |
b.DrawBox(2944.,-500.,3060.,4500.); |
b.DrawBox(896.,minhist,1024.,maxhist); |
906 |
|
b.DrawBox(2048.,minhist,2432.,maxhist); |
907 |
b.SetFillColor(107); |
b.DrawBox(2816.,minhist,2944.,maxhist); |
908 |
b.SetFillStyle(3954); |
b.DrawBox(2944.,minhist,3070.,maxhist); |
|
b.DrawBox(384.,-500.,512.,4500.); |
|
|
b.DrawBox(2048.,-500.,2432.,4500.); |
|
|
b.DrawBox(2816.,-500.,2944.,4500.); |
|
909 |
} |
} |
910 |
else if(nn==3){ |
else if(nn==3){ |
911 |
b.SetFillColor(107); |
b.DrawBox(0.,minhist,256.,maxhist); |
912 |
b.SetFillStyle(3954); |
b.DrawBox(2816.,minhist,3070.,maxhist); |
|
b.DrawBox(2816.,-500.,3070.,4500.); |
|
913 |
} |
} |
914 |
else if(nn==4){ |
else if(nn==4){ |
915 |
b.SetFillColor(107); |
b.DrawBox(256.,minhist,512.,maxhist); |
916 |
b.SetFillStyle(3954); |
b.DrawBox(1792.,minhist,1920.,maxhist); |
917 |
b.DrawBox(256.,-500.,512.,4500.); |
b.DrawBox(2816.,minhist,3070.,maxhist); |
918 |
b.DrawBox(2816.,-500.,3070.,4500.); |
} |
919 |
|
else if(nn==5){ |
920 |
|
b.DrawBox(0.,minhist,256.,maxhist); |
921 |
|
b.DrawBox(896.,minhist,1024.,maxhist); |
922 |
|
b.DrawBox(1664.,minhist,1792.,maxhist); |
923 |
} |
} |
924 |
else if(nn==6){ |
else if(nn==6){ |
925 |
b.SetFillColor(6); |
b.DrawBox(512.,minhist,768.,maxhist); |
926 |
b.SetFillStyle(3945); |
b.DrawBox(1024.,minhist,1280.,maxhist); |
927 |
b.DrawBox(1024.,-500.,1280.,4500.); |
b.DrawBox(1280.,minhist,1792.,maxhist); |
928 |
|
b.DrawBox(2560.,minhist,2816.,maxhist); |
|
b.SetFillColor(107); |
|
|
b.SetFillStyle(3954); |
|
|
b.DrawBox(512.,-500.,768.,4500.); |
|
|
b.DrawBox(1280.,-500.,1792.,4500.); |
|
|
b.DrawBox(2560.,-500.,2816.,4500.); |
|
929 |
} |
} |
930 |
else if(nn==7){ |
else if(nn==7){ |
931 |
b.SetFillColor(107); |
b.DrawBox(0.,minhist,1535.,maxhist); |
932 |
b.SetFillStyle(3954); |
b.DrawBox(2024.,minhist,2280.,maxhist); |
|
b.DrawBox(512.,-500.,768.,4500.); |
|
|
b.DrawBox(896.,-500.,1535.,4500.); |
|
933 |
} |
} |
934 |
else if(nn==8){ |
else if(nn==8){ |
935 |
b.SetFillColor(107); |
b.DrawBox(512.,minhist,768.,maxhist); |
|
b.SetFillStyle(3954); |
|
|
b.DrawBox(512.,-500.,768.,4500.); |
|
936 |
} |
} |
937 |
else if(nn==9){ |
else if(nn==9){ |
938 |
b.SetFillColor(107); |
b.DrawBox(0.,minhist,128.,maxhist); |
939 |
b.SetFillStyle(3954); |
b.DrawBox(256.,minhist,384.,maxhist); |
940 |
b.DrawBox(256.,-500.,384.,4500.); |
b.DrawBox(512.,minhist,640.,maxhist); |
941 |
b.DrawBox(1280.,-500.,1535.,4500.); |
b.DrawBox(896.,minhist,1152.,maxhist); |
942 |
b.DrawBox(1792.,-500.,1920.,4500.); |
b.DrawBox(1280.,minhist,1535.,maxhist); |
943 |
|
b.DrawBox(1664.,minhist,1920.,maxhist); |
944 |
|
b.DrawBox(2048.,minhist,2304.,maxhist); |
945 |
} |
} |
946 |
else if(nn==10){ |
else if(nn==10){ |
947 |
b.SetFillColor(107); |
b.DrawBox(0.,minhist,512.,maxhist); |
948 |
b.SetFillStyle(3954); |
b.DrawBox(1024.,minhist,3070.,maxhist); |
|
b.DrawBox(1024.,-500.,1152.,4500.); |
|
|
b.DrawBox(2048.,-500.,3070.,4500.); |
|
949 |
} |
} |
950 |
else if(nn==11){ |
else if(nn==11){ |
951 |
b.SetFillColor(6); |
b.DrawBox(0.,minhist,512.,maxhist); |
952 |
b.SetFillStyle(3945); |
b.DrawBox(768.,minhist,1024.,maxhist); |
953 |
b.DrawBox(768.,-500.,1024.,4500.); |
b.DrawBox(1536.,minhist,1664.,maxhist); |
954 |
|
b.DrawBox(1920.,minhist,2560.,maxhist); |
955 |
b.SetFillColor(107); |
b.DrawBox(2816.,minhist,3070.,maxhist); |
956 |
b.SetFillStyle(3954); |
} |
|
b.DrawBox(0.,-500.,512.,4500.); |
|
|
b.DrawBox(1920.,-500.,2560.,4500.); |
|
|
} |
|
957 |
for(int va=1; va<24; va++){ |
for(int va=1; va<24; va++){ |
958 |
va1x=128*va; |
va1x=128*va; |
959 |
liva1.DrawLine(va1x,-500.,va1x,4500.); |
liva1.DrawLine(va1x,minhist,va1x,maxhist); |
960 |
} |
} |
961 |
li.DrawLine(1024.5,-500.,1024.5,4500.); |
li.DrawLine(1024.5,minhist,1024.5,maxhist); |
962 |
li.DrawLine(2048.5,-500.,2048.5,4500.); |
li.DrawLine(2048.5,minhist,2048.5,maxhist); |
963 |
c1[e]->Update(); |
c1[e]->Update(); |
964 |
} |
} |
965 |
|
|