| 2 |
* FTrkQLook_EXPERT.cxx |
* FTrkQLook_EXPERT.cxx |
| 3 |
* |
* |
| 4 |
* autor: D.Fedele |
* autor: D.Fedele |
| 5 |
* version v1r08 |
* version v1r12 |
| 6 |
* Parameters: |
* Parameters: |
| 7 |
* file - the data file to analyze |
* file - the data file to analyze |
| 8 |
* fromevent - first event to analyze |
* fromevent - first event to analyze |
| 136 |
} else if (toevent > nevent) { |
} else if (toevent > nevent) { |
| 137 |
maxevent = nevent; |
maxevent = nevent; |
| 138 |
} else { |
} else { |
| 139 |
maxevent = toevent+1; |
maxevent = nevent; |
| 140 |
} |
} |
| 141 |
nevent=maxevent-minevent ; |
nevent=maxevent-minevent ; |
| 142 |
} |
} |
| 145 |
// information about the RunHeader |
// information about the RunHeader |
| 146 |
ULong64_t HOBT[neventH]; |
ULong64_t HOBT[neventH]; |
| 147 |
Int_t trk_cal_us[neventH]; |
Int_t trk_cal_us[neventH]; |
| 148 |
|
Int_t countnboot=1; |
| 149 |
for (Int_t vi=0; vi<neventH;vi++){ |
for (Int_t vi=0; vi<neventH;vi++){ |
| 150 |
HOBT[vi]=0; |
HOBT[vi]=0; |
| 151 |
trk_cal_us[vi]=0; |
trk_cal_us[vi]=0; |
| 155 |
pH = eH->GetPscuHeader(); |
pH = eH->GetPscuHeader(); |
| 156 |
HOBT[ev]= pH->GetOrbitalTime(); |
HOBT[ev]= pH->GetOrbitalTime(); |
| 157 |
trk_cal_us[ev]=reh->TRK_CALIB_USED; |
trk_cal_us[ev]=reh->TRK_CALIB_USED; |
| 158 |
|
if((HOBT[ev]<HOBT[ev-1]) && ev>0) |
| 159 |
|
countnboot+=1; |
| 160 |
} |
} |
| 161 |
|
countnboot+=(Int_t)(2*nevent/MAXSTORAGE); |
| 162 |
|
// printf("\ncountnboot=%d\n",countnboot); |
| 163 |
|
|
| 164 |
|
|
| 165 |
// |
// |
| 166 |
// other variables definitions |
// other variables definitions |
| 180 |
Int_t tempt[tsize][5]; |
Int_t tempt[tsize][5]; |
| 181 |
ULong64_t xt[tsize]; |
ULong64_t xt[tsize]; |
| 182 |
|
|
| 183 |
Int_t countnboot=1; |
Int_t cntpgtemp=1,cntpgdat=0,cntpgmag=0; |
|
Int_t cntpgtemp=0,cntpgdat=0,cntpgmag=0; |
|
| 184 |
// |
// |
| 185 |
// information about the temperatures |
// information about the temperatures |
| 186 |
for (Int_t ev=0; ev<tnevent; ev++){ |
for (Int_t ev=0; ev<tnevent; ev++){ |
| 190 |
record = (pamela::TsbTRecord*)event->Records->At(j); |
record = (pamela::TsbTRecord*)event->Records->At(j); |
| 191 |
xt[siztmp]=record->RECORD_OBT; |
xt[siztmp]=record->RECORD_OBT; |
| 192 |
if((xt[siztmp]<xt[siztmp-1]) && siztmp>0) |
if((xt[siztmp]<xt[siztmp-1]) && siztmp>0) |
| 193 |
countnboot+=1; |
cntpgtemp+=1; |
| 194 |
|
|
| 195 |
for (Int_t z = 0; z < 5; z++){ |
for (Int_t z = 0; z < 5; z++){ |
| 196 |
tempt[siztmp][z] = record->TEMPERATURES[z+1]; |
tempt[siztmp][z] = record->TEMPERATURES[z+1]; |
| 198 |
siztmp++; |
siztmp++; |
| 199 |
} |
} |
| 200 |
} |
} |
| 201 |
cntpgtemp=countnboot; |
|
|
countnboot+=2+(Int_t)nevent/MAXSTORAGE; |
|
|
// printf("\ncountnboot=%d\n",countnboot); |
|
|
|
|
| 202 |
// |
// |
| 203 |
// information about the entries for the magnetic field |
// information about the entries for the magnetic field |
| 204 |
if(bnevent>0) cntpgmag=1; |
if(bnevent>0) cntpgmag=1; |
| 263 |
alarm1 << "================================================="<< endl<<endl; |
alarm1 << "================================================="<< endl<<endl; |
| 264 |
|
|
| 265 |
alarm1 << "Alarm variables (range 0-1)"<<endl; |
alarm1 << "Alarm variables (range 0-1)"<<endl; |
| 266 |
alarm1 << " ALARM[1]= 0x"<< hex << (Int_t)al->ALARM[1]<<endl; |
alarm1 << " ALARM[1]= 0x"<< hex << (Int_t)al->ALARM[0]<<endl; |
| 267 |
alarm1 << " ALARM[2]= 0x"<< (Int_t)al->ALARM[2]<<endl; |
alarm1 << " ALARM[2]= 0x"<< (Int_t)al->ALARM[1]<<endl; |
| 268 |
alarm1 << " CmdDuringTrig= 0x"<< (Int_t)al->CmdDuringTrig<<endl; |
alarm1 << " CmdDuringTrig= 0x"<< (Int_t)al->CmdDuringTrig<<endl; |
| 269 |
alarm1 << " FinalCheck= 0x"<< (Int_t)al->FinalCheck<<endl; |
alarm1 << " FinalCheck= 0x"<< (Int_t)al->FinalCheck<<endl; |
| 270 |
alarm1 << " FlashData= 0x"<< (Int_t)al->FlashData<<endl; |
alarm1 << " FlashData= 0x"<< (Int_t)al->FlashData<<endl; |
| 436 |
Double_t xt_tmpw[tsize], tempt_tmpw[tsize]; |
Double_t xt_tmpw[tsize], tempt_tmpw[tsize]; |
| 437 |
for (Int_t ev=countTEMP; ev<tsize; ev++){ |
for (Int_t ev=countTEMP; ev<tsize; ev++){ |
| 438 |
|
|
| 439 |
if(ev==tsize-1 && i==4) countTEMP=tsize-1; |
if(ev==tsize-1 && i==4 && ii==cntpgtemp-1) countTEMP=tsize-1; |
| 440 |
if(xt[ev]<xt[ev-1] && ev>countTEMP){ |
if(xt[ev]<xt[ev-1] && ev>countTEMP){ |
| 441 |
if(i==4) countTEMP=ev; |
if(i==4) countTEMP=ev; |
| 442 |
break; |
break; |
| 463 |
pad6[i]->cd(); |
pad6[i]->cd(); |
| 464 |
temp[i][ii]= new TGraph(v,xt_tmp,tempt_tmp); |
temp[i][ii]= new TGraph(v,xt_tmp,tempt_tmp); |
| 465 |
temp[i][ii]->SetTitle(tit.str().c_str()); |
temp[i][ii]->SetTitle(tit.str().c_str()); |
| 466 |
|
if(v==1) temp[i][ii]->GetXaxis()->SetNdivisions(502,kTRUE); |
| 467 |
temp[i][ii]->GetXaxis()->SetLabelSize(0.04); |
temp[i][ii]->GetXaxis()->SetLabelSize(0.04); |
| 468 |
temp[i][ii]->GetXaxis()->SetTitleSize(0.04); |
temp[i][ii]->GetXaxis()->SetTitleSize(0.04); |
| 469 |
temp[i][ii]->GetXaxis()->SetTitle("OBT (ms)"); |
temp[i][ii]->GetXaxis()->SetTitle("OBT (ms)"); |
| 490 |
|
|
| 491 |
|
|
| 492 |
} |
} |
| 493 |
if(countTEMP==tsize-1){ |
if(countTEMP==tsize-1 && ii==cntpgtemp-1){ |
| 494 |
break; |
break; |
| 495 |
} |
} |
| 496 |
} |
} |
| 555 |
Double_t xb_tmp[bsize], magt_tmp[bsize]; |
Double_t xb_tmp[bsize], magt_tmp[bsize]; |
| 556 |
for (Int_t ev=countMAG; ev<bsize; ev++){ |
for (Int_t ev=countMAG; ev<bsize; ev++){ |
| 557 |
|
|
| 558 |
if(ev==bsize-1 && i==4) countMAG=bsize-1; |
if(ev==bsize-1 && i==4 && ii==cntpgmag-1) countMAG=bsize-1; |
| 559 |
if(xb[ev]<xb[ev-1] && ev>countMAG){ |
if(xb[ev]<xb[ev-1] && ev>countMAG){ |
| 560 |
if(i==4) countMAG=ev; |
if(i==4) countMAG=ev; |
| 561 |
break; |
break; |
| 579 |
mag[i][ii]->GetXaxis()->CenterTitle(); |
mag[i][ii]->GetXaxis()->CenterTitle(); |
| 580 |
mag[i][ii]->GetXaxis()->SetTitleOffset(0.85); |
mag[i][ii]->GetXaxis()->SetTitleOffset(0.85); |
| 581 |
if(i!=4) mag[i][ii]->GetYaxis()->SetRangeUser(2047,2058); |
if(i!=4) mag[i][ii]->GetYaxis()->SetRangeUser(2047,2058); |
| 582 |
else mag[i][ii]->GetYaxis()->SetRangeUser(2061,2066); |
else mag[i][ii]->GetYaxis()->SetRangeUser(2060,2067); |
| 583 |
mag[i][ii]->GetYaxis()->SetTitleOffset(1.2); |
mag[i][ii]->GetYaxis()->SetTitleOffset(1.2); |
| 584 |
mag[i][ii]->GetYaxis()->SetLabelOffset(0.001); |
mag[i][ii]->GetYaxis()->SetLabelOffset(0.001); |
| 585 |
mag[i][ii]->GetYaxis()->SetLabelSize(0.03); |
mag[i][ii]->GetYaxis()->SetLabelSize(0.03); |
| 607 |
|
|
| 608 |
case 1: |
case 1: |
| 609 |
li.DrawLine(min,2055.,max,2055.); |
li.DrawLine(min,2055.,max,2055.); |
| 610 |
li.DrawLine(min,2051.,max,2051.); |
li.DrawLine(min,2050.,max,2050.); |
| 611 |
t1->DrawLatex(xlat,2055.3,ma.str().c_str()); |
t1->DrawLatex(xlat,2055.3,ma.str().c_str()); |
| 612 |
t1->DrawLatex(xlat,2050.7,mi.str().c_str()); |
t1->DrawLatex(xlat,2049.7,mi.str().c_str()); |
| 613 |
break; |
break; |
| 614 |
|
|
| 615 |
case 2: |
case 2: |
| 616 |
li.DrawLine(min,2056.,max,2056.); |
li.DrawLine(min,2056.,max,2056.); |
| 617 |
li.DrawLine(min,2052.,max,2052.); |
li.DrawLine(min,2051.,max,2051.); |
| 618 |
t1->DrawLatex(xlat,2056.3,ma.str().c_str()); |
t1->DrawLatex(xlat,2056.3,ma.str().c_str()); |
| 619 |
t1->DrawLatex(xlat,2051.7,mi.str().c_str()); |
t1->DrawLatex(xlat,2050.7,mi.str().c_str()); |
| 620 |
break; |
break; |
| 621 |
|
|
| 622 |
case 3: |
case 3: |
| 623 |
li.DrawLine(min,2057.,max,2057.); |
li.DrawLine(min,2057.,max,2057.); |
| 624 |
li.DrawLine(min,2053.,max,2053.); |
li.DrawLine(min,2052.,max,2052.); |
| 625 |
t1->DrawLatex(xlat,2057.3,ma.str().c_str()); |
t1->DrawLatex(xlat,2057.3,ma.str().c_str()); |
| 626 |
t1->DrawLatex(xlat,2052.7,mi.str().c_str()); |
t1->DrawLatex(xlat,2051.7,mi.str().c_str()); |
| 627 |
break; |
break; |
| 628 |
|
|
| 629 |
case 4: |
case 4: |
| 630 |
li.DrawLine(min,2065.,max,2065.); |
li.DrawLine(min,2066.,max,2066.); |
| 631 |
li.DrawLine(min,2062.,max,2062.); |
li.DrawLine(min,2061.,max,2061.); |
| 632 |
t1->DrawLatex(xlat,2065.15,ma.str().c_str()); |
t1->DrawLatex(xlat,2066.15,ma.str().c_str()); |
| 633 |
t1->DrawLatex(xlat,2061.85,mi.str().c_str()); |
t1->DrawLatex(xlat,2060.85,mi.str().c_str()); |
| 634 |
break; |
break; |
| 635 |
|
|
| 636 |
} |
} |
| 637 |
BfieldCanv[ii]->Update(); |
BfieldCanv[ii]->Update(); |
| 638 |
tit.str(""); |
tit.str(""); |
| 639 |
} |
} |
| 640 |
if(countMAG==bsize-1){ |
if(countMAG==bsize-1 && ii==cntpgmag-1){ |
| 641 |
break; |
break; |
| 642 |
} |
} |
| 643 |
} |
} |
| 871 |
CompTimeCanv[ii]->Update(); |
CompTimeCanv[ii]->Update(); |
| 872 |
} |
} |
| 873 |
|
|
| 874 |
|
|
| 875 |
EventNumCanv[ii]->cd(); |
EventNumCanv[ii]->cd(); |
| 876 |
pt = new TPad("pt"," ",0.02,0.01,1.,0.98,18,0,0); |
pt = new TPad("pt"," ",0.02,0.01,1.,0.98,18,0,0); |
| 877 |
pt->SetFillColor(10); |
pt->SetFillColor(10); |
| 894 |
eventnumb[ii]->SetMarkerStyle(21); |
eventnumb[ii]->SetMarkerStyle(21); |
| 895 |
eventnumb[ii]->SetMarkerColor(kBlue); |
eventnumb[ii]->SetMarkerColor(kBlue); |
| 896 |
eventnumb[ii]->SetMarkerSize(0.2); |
eventnumb[ii]->SetMarkerSize(0.2); |
| 897 |
|
oss1.str(""); |
| 898 |
|
oss1<<"number of events in this graph: "<<maxev-minev; |
| 899 |
|
t->SetTextColor(kBlue); |
| 900 |
|
t->SetTextSize(0.02); |
| 901 |
|
double xtex=0,ytex=0; |
| 902 |
|
xtex=x[maxev-minev-1]-(x[maxev-minev-1]-x[0])/3; |
| 903 |
|
ytex=1000.+eventnumb[ii]->GetYaxis()->GetXmax(); |
| 904 |
|
t->DrawLatex(xtex,ytex,oss1.str().c_str()); |
| 905 |
|
oss1.str(""); |
| 906 |
eventnumb[ii]->Draw("ap"); |
eventnumb[ii]->Draw("ap"); |
| 907 |
EventNumCanv[ii]->Update(); |
EventNumCanv[ii]->Update(); |
| 908 |
|
|
| 914 |
|
|
| 915 |
} |
} |
| 916 |
|
|
|
|
|
| 917 |
alarm.close(); |
alarm.close(); |
| 918 |
|
|
| 919 |
//**************************************************************************************** |
//**************************************************************************************** |
| 1058 |
b.DrawBox(2816.,0.,2944.,maxhist); |
b.DrawBox(2816.,0.,2944.,maxhist); |
| 1059 |
b.DrawBox(2048.,0.,2176.,maxhist); |
b.DrawBox(2048.,0.,2176.,maxhist); |
| 1060 |
} |
} |
| 1061 |
|
else if(i==4){ |
| 1062 |
|
maxhist=illuminazione[i]->GetMaximum(); |
| 1063 |
|
b.SetFillColor(107); |
| 1064 |
|
b.SetFillStyle(3954); |
| 1065 |
|
b.DrawBox(384.,0.,512.,maxhist); |
| 1066 |
|
} |
| 1067 |
else if(i==6){ |
else if(i==6){ |
| 1068 |
maxhist= illuminazione[i]->GetMaximum(); |
maxhist= illuminazione[i]->GetMaximum(); |
| 1069 |
b.SetFillColor(6); |
b.SetFillColor(6); |
| 1070 |
b.SetFillStyle(3945); |
b.SetFillStyle(3945); |
| 1071 |
b.DrawBox(2560.,0.,2816.,maxhist); |
b.DrawBox(2560.,0.,2816.,maxhist); |
| 1072 |
b.DrawBox(1024.,0.,1792.,maxhist); |
b.DrawBox(1024.,0.,1535.,maxhist); |
| 1073 |
|
|
| 1074 |
b.SetFillColor(107); |
b.SetFillColor(107); |
| 1075 |
b.SetFillStyle(3954); |
b.SetFillStyle(3954); |
| 1076 |
b.DrawBox(512.,0.,768.,maxhist); |
b.DrawBox(512.,0.,768.,maxhist); |
| 1077 |
|
b.DrawBox(1536.,0.,1792.,maxhist); |
| 1078 |
} |
} |
| 1079 |
else if(i==7){ |
else if(i==7){ |
| 1080 |
maxhist= illuminazione[i]->GetMaximum(); |
maxhist= illuminazione[i]->GetMaximum(); |
| 1092 |
b.SetFillStyle(3954); |
b.SetFillStyle(3954); |
| 1093 |
b.DrawBox(0.,0.,512.,maxhist); |
b.DrawBox(0.,0.,512.,maxhist); |
| 1094 |
b.DrawBox(1920.,0.,2048.,maxhist); |
b.DrawBox(1920.,0.,2048.,maxhist); |
| 1095 |
|
b.DrawBox(2176.,0.,2304.,maxhist); |
| 1096 |
} |
} |
| 1097 |
IlluminaCanv->Update(); |
IlluminaCanv->Update(); |
| 1098 |
} |
} |
| 1108 |
else if(cntpgtemp<=cntpgdat) totpg=cntpgdat; |
else if(cntpgtemp<=cntpgdat) totpg=cntpgdat; |
| 1109 |
|
|
| 1110 |
for(Int_t fl=0;fl<totpg;fl++){ |
for(Int_t fl=0;fl<totpg;fl++){ |
| 1111 |
|
|
| 1112 |
if(!strcmp(outfile.Data(),"ps")||!strcmp(outfile.Data(),"pdf")){ |
if(!strcmp(outfile.Data(),"ps")||!strcmp(outfile.Data(),"pdf")){ |
| 1113 |
out1.str(""); |
out1.str(""); |
| 1114 |
out2.str(""); |
out2.str(""); |