| 2 | 
  * FTrkQLook_EXPERT.cxx | 
  * FTrkQLook_EXPERT.cxx | 
| 3 | 
  * | 
  * | 
| 4 | 
  * autor: D.Fedele | 
  * autor: D.Fedele | 
| 5 | 
  * version v1r14 | 
  * version v1r23 | 
| 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 | 
| 366 | 
    | 
    | 
| 367 | 
   TLatex *t=new TLatex(); | 
   TLatex *t=new TLatex(); | 
| 368 | 
   TLatex *t1=new TLatex(); | 
   TLatex *t1=new TLatex(); | 
 | 
  | 
  | 
| 369 | 
    | 
    | 
| 370 | 
  | 
   TLine li,liva1; | 
| 371 | 
  | 
  | 
| 372 | 
   Int_t minev=minevent,maxev=maxevent,countTEMP=0,countMAG=0; | 
   Int_t minev=minevent,maxev=maxevent,countTEMP=0,countMAG=0; | 
| 373 | 
   ULong_t countALARMx=0,countALARMy=0; | 
   ULong_t countALARMx=0,countALARMy=0,countFC[12],countFL1[12],countFL2[12],countFL3[12],countFL4[12],countFL5[12],countFL6[12]; | 
| 374 | 
  | 
  | 
| 375 | 
  | 
   for(int i=0; i<12; i++){ | 
| 376 | 
  | 
     countFC[i]=0; | 
| 377 | 
  | 
     countFL1[i]=0; | 
| 378 | 
  | 
     countFL2[i]=0; | 
| 379 | 
  | 
     countFL3[i]=0; | 
| 380 | 
  | 
     countFL4[i]=0; | 
| 381 | 
  | 
     countFL5[i]=0; | 
| 382 | 
  | 
     countFL6[i]=0; | 
| 383 | 
  | 
   } | 
| 384 | 
  | 
  | 
| 385 | 
   // | 
   // | 
| 386 | 
   // Fill temperature graphs | 
   // Fill temperature graphs | 
| 477 | 
       pad6[i]->cd(); | 
       pad6[i]->cd(); | 
| 478 | 
       temp[i][ii]= new TGraph(v,xt_tmp,tempt_tmp); | 
       temp[i][ii]= new TGraph(v,xt_tmp,tempt_tmp); | 
| 479 | 
       temp[i][ii]->SetTitle(tit.str().c_str()); | 
       temp[i][ii]->SetTitle(tit.str().c_str()); | 
| 480 | 
       if(v==1) temp[i][ii]->GetXaxis()->SetNdivisions(502,kTRUE); | 
       if(v==1) temp[i][ii]->GetXaxis()->SetNdivisions(-501); | 
| 481 | 
       temp[i][ii]->GetXaxis()->SetLabelSize(0.04); | 
       temp[i][ii]->GetXaxis()->SetLabelSize(0.04); | 
| 482 | 
       temp[i][ii]->GetXaxis()->SetTitleSize(0.04); | 
       temp[i][ii]->GetXaxis()->SetTitleSize(0.04); | 
| 483 | 
       temp[i][ii]->GetXaxis()->SetTitle("OBT (ms)"); | 
       temp[i][ii]->GetXaxis()->SetTitle("OBT (ms)"); | 
| 534 | 
     t1->DrawLatex(70.,98.7,isfile.str().c_str()); | 
     t1->DrawLatex(70.,98.7,isfile.str().c_str()); | 
| 535 | 
     isfile.str(""); | 
     isfile.str(""); | 
| 536 | 
    | 
    | 
 | 
     TLine li; | 
  | 
| 537 | 
     li.SetLineStyle(1); | 
     li.SetLineStyle(1); | 
| 538 | 
     li.SetLineWidth(1); | 
     li.SetLineWidth(1); | 
| 539 | 
     li.SetLineColor(190); | 
     li.SetLineColor(190); | 
| 585 | 
       pad7[i]->cd(); | 
       pad7[i]->cd(); | 
| 586 | 
       mag[i][ii]= new TGraph(v,xb_tmp,magt_tmp); | 
       mag[i][ii]= new TGraph(v,xb_tmp,magt_tmp); | 
| 587 | 
       mag[i][ii]->SetTitle(tit.str().c_str()); | 
       mag[i][ii]->SetTitle(tit.str().c_str()); | 
| 588 | 
       mag[i][ii]->GetXaxis()->SetNdivisions(502,kTRUE); | 
       if(v==1) mag[i][ii]->GetXaxis()->SetNdivisions(-501); | 
| 589 | 
       mag[i][ii]->GetXaxis()->SetLabelSize(0.04); | 
       mag[i][ii]->GetXaxis()->SetLabelSize(0.04); | 
| 590 | 
       mag[i][ii]->GetXaxis()->SetTitleSize(0.04); | 
       mag[i][ii]->GetXaxis()->SetTitleSize(0.04); | 
| 591 | 
       mag[i][ii]->GetXaxis()->SetTitle("OBT (ms)"); | 
       mag[i][ii]->GetXaxis()->SetTitle("OBT (ms)"); | 
| 592 | 
       mag[i][ii]->GetXaxis()->CenterTitle(); | 
       mag[i][ii]->GetXaxis()->CenterTitle(); | 
| 593 | 
       mag[i][ii]->GetXaxis()->SetTitleOffset(0.85); | 
       mag[i][ii]->GetXaxis()->SetTitleOffset(0.85); | 
| 594 | 
       if(i!=4) mag[i][ii]->GetYaxis()->SetRangeUser(2047,2058); | 
       if(i!=4) mag[i][ii]->GetYaxis()->SetRangeUser(2047,2058); | 
| 595 | 
       else mag[i][ii]->GetYaxis()->SetRangeUser(2060,2067); | 
       else mag[i][ii]->GetYaxis()->SetRangeUser(2059,2067); | 
| 596 | 
       mag[i][ii]->GetYaxis()->SetTitleOffset(1.2); | 
       mag[i][ii]->GetYaxis()->SetTitleOffset(1.2); | 
| 597 | 
       mag[i][ii]->GetYaxis()->SetLabelOffset(0.001); | 
       mag[i][ii]->GetYaxis()->SetLabelOffset(0.001); | 
| 598 | 
       mag[i][ii]->GetYaxis()->SetLabelSize(0.03); | 
       mag[i][ii]->GetYaxis()->SetLabelSize(0.03); | 
| 804 | 
             } | 
             } | 
| 805 | 
  | 
  | 
| 806 | 
             WARNING[i]=0; | 
             WARNING[i]=0; | 
| 807 | 
             if(te->fc[i]!=0 || te->fl1[i]!=0 || te->fl2[i]!=0 || te->fl3[i]!=0 || te->fl4[i]!=0 || te->fl5[i]!=0 || te->fl6[i]!=0){ | 
             if(te->fc[i]!=0){  | 
| 808 | 
               ALARM = 1;      //general alarm | 
               if(countFC[dsp]==0){ | 
| 809 | 
               WARNING[i] = 1; // DSP warning | 
                 ALARM = 1;      //general alarm | 
| 810 | 
  | 
                 WARNING[i] = 1; // DSP warning | 
| 811 | 
  | 
               } | 
| 812 | 
  | 
               countFC[dsp]+=1; | 
| 813 | 
  | 
             }; | 
| 814 | 
  | 
  | 
| 815 | 
  | 
             if(te->fl1[i]!=0){  | 
| 816 | 
  | 
               if(countFL1[dsp]==0){ | 
| 817 | 
  | 
                 ALARM = 1;      //general alarm | 
| 818 | 
  | 
                 WARNING[i] = 1; // DSP warning | 
| 819 | 
  | 
               } | 
| 820 | 
  | 
               countFL1[dsp]+=1; | 
| 821 | 
  | 
             }; | 
| 822 | 
  | 
  | 
| 823 | 
  | 
             if(te->fl2[i]!=0){  | 
| 824 | 
  | 
               if(countFL2[dsp]==0){ | 
| 825 | 
  | 
                 ALARM = 1;      //general alarm | 
| 826 | 
  | 
                 WARNING[i] = 1; // DSP warning | 
| 827 | 
  | 
               } | 
| 828 | 
  | 
               countFL2[dsp]+=1; | 
| 829 | 
  | 
             }; | 
| 830 | 
  | 
  | 
| 831 | 
  | 
             if(te->fl3[i]!=0){  | 
| 832 | 
  | 
               if(countFL3[dsp]==0){ | 
| 833 | 
  | 
                 ALARM = 1;      //general alarm | 
| 834 | 
  | 
                 WARNING[i] = 1; // DSP warning | 
| 835 | 
  | 
               } | 
| 836 | 
  | 
               countFL3[dsp]+=1; | 
| 837 | 
  | 
             }; | 
| 838 | 
  | 
  | 
| 839 | 
  | 
             if(te->fl4[i]!=0){  | 
| 840 | 
  | 
               if(countFL4[dsp]==0){ | 
| 841 | 
  | 
                 ALARM = 1;      //general alarm | 
| 842 | 
  | 
                 WARNING[i] = 1; // DSP warning | 
| 843 | 
  | 
               } | 
| 844 | 
  | 
               countFL4[dsp]+=1; | 
| 845 | 
  | 
             }; | 
| 846 | 
  | 
  | 
| 847 | 
  | 
             if(te->fl5[i]!=0){  | 
| 848 | 
  | 
               if(countFL5[dsp]==0){ | 
| 849 | 
  | 
                 ALARM = 1;      //general alarm | 
| 850 | 
  | 
                 WARNING[i] = 1; // DSP warning | 
| 851 | 
  | 
               } | 
| 852 | 
  | 
               countFL5[dsp]+=1; | 
| 853 | 
  | 
             }; | 
| 854 | 
  | 
  | 
| 855 | 
  | 
             if(te->fl6[i]!=0){  | 
| 856 | 
  | 
               if(countFL6[dsp]==0){ | 
| 857 | 
  | 
                 ALARM = 1;      //general alarm | 
| 858 | 
  | 
                 WARNING[i] = 1; // DSP warning | 
| 859 | 
  | 
               } | 
| 860 | 
  | 
               countFL6[dsp]+=1; | 
| 861 | 
             }; | 
             }; | 
| 862 | 
  | 
  | 
| 863 | 
             if(dsp%2==0 && te->alarm[i]!=0){ // hardware alarm | 
             if(dsp%2==0 && te->alarm[i]!=0){ // hardware alarm | 
| 939 | 
         if(countALARMx%6!=0) alarm << endl<<endl<< "***** "<<countALARMx/6+1 <<" events with hardware alarm in X-view *****"<<endl; | 
         if(countALARMx%6!=0) alarm << endl<<endl<< "***** "<<countALARMx/6+1 <<" events with hardware alarm in X-view *****"<<endl; | 
| 940 | 
         else alarm << endl<<endl<< "***** "<<countALARMx/6 <<" events with hardware alarm in X-view *****"<<endl; | 
         else alarm << endl<<endl<< "***** "<<countALARMx/6 <<" events with hardware alarm in X-view *****"<<endl; | 
| 941 | 
       } | 
       } | 
| 942 | 
  | 
       for(int p=0; p<12; p++){ | 
| 943 | 
  | 
         if(countFC[p]!=0) alarm << endl<<endl<< "***** "<<countFC[p] <<" events with fc!=0 in DSP "<<p+1<<" *****"<<endl; | 
| 944 | 
  | 
         if(countFL1[p]!=0) alarm << endl<<endl<< "***** "<<countFL1[p] <<" events with fl1!=0 in DSP "<<p+1<<" *****"<<endl; | 
| 945 | 
  | 
         if(countFL2[p]!=0) alarm << endl<<endl<< "***** "<<countFL2[p] <<" events with fl2!=0 in DSP "<<p+1<<" *****"<<endl; | 
| 946 | 
  | 
         if(countFL3[p]!=0) alarm << endl<<endl<< "***** "<<countFL3[p] <<" events with fl3!=0 in DSP "<<p+1<<" *****"<<endl; | 
| 947 | 
  | 
         if(countFL4[p]!=0) alarm << endl<<endl<< "***** "<<countFL4[p] <<" events with fl4!=0 in DSP "<<p+1<<" *****"<<endl; | 
| 948 | 
  | 
         if(countFL5[p]!=0) alarm << endl<<endl<< "***** "<<countFL5[p] <<" events with fl5!=0 in DSP "<<p+1<<" *****"<<endl; | 
| 949 | 
  | 
         if(countFL6[p]!=0) alarm << endl<<endl<< "***** "<<countFL6[p] <<" events with fl6!=0 in DSP "<<p+1<<" *****"<<endl; | 
| 950 | 
  | 
       } | 
| 951 | 
     } | 
     } | 
| 952 | 
  | 
  | 
| 953 | 
     // | 
     // | 
| 970 | 
       comprtime[i][ii]->GetXaxis()->CenterTitle(); | 
       comprtime[i][ii]->GetXaxis()->CenterTitle(); | 
| 971 | 
       comprtime[i][ii]->GetYaxis()->SetTitle("compressiontime (ms)"); | 
       comprtime[i][ii]->GetYaxis()->SetTitle("compressiontime (ms)"); | 
| 972 | 
       comprtime[i][ii]->GetYaxis()->CenterTitle(); | 
       comprtime[i][ii]->GetYaxis()->CenterTitle(); | 
| 973 | 
  | 
       if(maxev-minev==1) comprtime[i][ii]->GetXaxis()->SetNdivisions(-501); | 
| 974 | 
       // comprtime[i][ii]->GetYaxis()->SetRangeUser(0,3); | 
       // comprtime[i][ii]->GetYaxis()->SetRangeUser(0,3); | 
| 975 | 
       comprtime[i][ii]->Draw("ap");  | 
       comprtime[i][ii]->Draw("ap");  | 
| 976 | 
       oss1.str("");  | 
       oss1.str("");  | 
| 996 | 
     eventnumb[ii]->GetYaxis()->SetTitleSize(0.03); | 
     eventnumb[ii]->GetYaxis()->SetTitleSize(0.03); | 
| 997 | 
     eventnumb[ii]->GetYaxis()->SetTitle("DSP event-number"); | 
     eventnumb[ii]->GetYaxis()->SetTitle("DSP event-number"); | 
| 998 | 
     eventnumb[ii]->GetYaxis()->CenterTitle(); | 
     eventnumb[ii]->GetYaxis()->CenterTitle(); | 
| 999 | 
  | 
     if(maxev-minev==1) eventnumb[ii]->GetXaxis()->SetNdivisions(-501); | 
| 1000 | 
     eventnumb[ii]->GetYaxis()->SetTitleOffset(2.); | 
     eventnumb[ii]->GetYaxis()->SetTitleOffset(2.); | 
| 1001 | 
     eventnumb[ii]->SetMarkerStyle(21); | 
     eventnumb[ii]->SetMarkerStyle(21); | 
| 1002 | 
     eventnumb[ii]->SetMarkerColor(kBlue); | 
     eventnumb[ii]->SetMarkerColor(kBlue); | 
| 1114 | 
          | 
          | 
| 1115 | 
     TBox b; | 
     TBox b; | 
| 1116 | 
  | 
  | 
| 1117 | 
     Float_t maxhist=0; | 
     Float_t maxhist=0,va1x=0; | 
| 1118 | 
     LandauCanv1->cd(); | 
     LandauCanv1->cd(); | 
| 1119 | 
     pad1[i]->SetFillColor(10); | 
     pad1[i]->SetFillColor(10); | 
| 1120 | 
     pad1[i]->SetFrameFillColor(10); | 
     pad1[i]->SetFrameFillColor(10); | 
| 1145 | 
     landau3[i]->Draw(""); | 
     landau3[i]->Draw(""); | 
| 1146 | 
     LandauCanv3->Update(); | 
     LandauCanv3->Update(); | 
| 1147 | 
  | 
  | 
| 1148 | 
  | 
  | 
| 1149 | 
  | 
     li.SetLineColor(38); | 
| 1150 | 
  | 
     li.SetLineStyle(4); | 
| 1151 | 
  | 
     li.SetLineWidth(2); | 
| 1152 | 
  | 
     liva1.SetLineColor(42); | 
| 1153 | 
  | 
     liva1.SetLineStyle(3); | 
| 1154 | 
  | 
     liva1.SetLineWidth(1); | 
| 1155 | 
  | 
  | 
| 1156 | 
     IlluminaCanv->cd(); | 
     IlluminaCanv->cd(); | 
| 1157 | 
     pad2[i]->SetFillColor(10); | 
     pad2[i]->SetFillColor(10); | 
| 1158 | 
     pad2[i]->SetFrameFillColor(10); | 
     pad2[i]->SetFrameFillColor(10); | 
| 1162 | 
     illuminazione[i]->GetXaxis()->SetTitle("strip with max signal"); | 
     illuminazione[i]->GetXaxis()->SetTitle("strip with max signal"); | 
| 1163 | 
     illuminazione[i]->GetXaxis()->CenterTitle(); | 
     illuminazione[i]->GetXaxis()->CenterTitle(); | 
| 1164 | 
     illuminazione[i]->Draw(""); | 
     illuminazione[i]->Draw(""); | 
| 1165 | 
     if(i==1){ | 
     maxhist= illuminazione[i]->GetMaximum(); | 
| 1166 | 
       maxhist= illuminazione[i]->GetMaximum(); | 
     if(i==0){ | 
| 1167 | 
  | 
       b.SetFillColor(107); | 
| 1168 | 
  | 
       b.SetFillStyle(3954); | 
| 1169 | 
  | 
       b.DrawBox(256.,0.,384.,maxhist); | 
| 1170 | 
  | 
       b.DrawBox(768.,0.,2047.,maxhist); | 
| 1171 | 
  | 
     } | 
| 1172 | 
  | 
     else if(i==1){ | 
| 1173 | 
       b.SetFillColor(6); | 
       b.SetFillColor(6); | 
| 1174 | 
       b.SetFillStyle(3945); | 
       b.SetFillStyle(3945); | 
| 1175 | 
       b.DrawBox(2944.,0.,3060.,maxhist); | 
       b.DrawBox(2944.,0.,3070.,maxhist); | 
| 1176 | 
  | 
  | 
| 1177 | 
       b.SetFillColor(107); | 
       b.SetFillColor(107); | 
| 1178 | 
       b.SetFillStyle(3954); | 
       b.SetFillStyle(3954); | 
| 1179 | 
  | 
       b.DrawBox(384.,0.,512.,maxhist); | 
| 1180 | 
  | 
       b.DrawBox(2048.,0.,2432.,maxhist); | 
| 1181 | 
       b.DrawBox(2816.,0.,2944.,maxhist); | 
       b.DrawBox(2816.,0.,2944.,maxhist); | 
| 1182 | 
       b.DrawBox(2048.,0.,2176.,maxhist); | 
     } | 
| 1183 | 
  | 
     else if(i==3){ | 
| 1184 | 
  | 
       b.SetFillColor(107); | 
| 1185 | 
  | 
       b.SetFillStyle(3954); | 
| 1186 | 
  | 
       b.DrawBox(2816.,0.,3070.,maxhist); | 
| 1187 | 
     } | 
     } | 
| 1188 | 
     else if(i==4){ | 
     else if(i==4){ | 
 | 
       maxhist=illuminazione[i]->GetMaximum(); | 
  | 
| 1189 | 
       b.SetFillColor(107); | 
       b.SetFillColor(107); | 
| 1190 | 
       b.SetFillStyle(3954); | 
       b.SetFillStyle(3954); | 
| 1191 | 
       b.DrawBox(384.,0.,512.,maxhist); | 
       b.DrawBox(256.,0.,512.,maxhist); | 
| 1192 | 
  | 
       b.DrawBox(2816.,0.,3070.,maxhist); | 
| 1193 | 
     } | 
     } | 
| 1194 | 
     else if(i==6){ | 
     else if(i==6){ | 
 | 
       maxhist= illuminazione[i]->GetMaximum(); | 
  | 
| 1195 | 
       b.SetFillColor(6); | 
       b.SetFillColor(6); | 
| 1196 | 
       b.SetFillStyle(3945); | 
       b.SetFillStyle(3945); | 
| 1197 | 
       b.DrawBox(2560.,0.,2816.,maxhist); | 
       b.DrawBox(1024.,0.,1280.,maxhist); | 
 | 
       b.DrawBox(1024.,0.,1535.,maxhist); | 
  | 
| 1198 | 
  | 
  | 
| 1199 | 
       b.SetFillColor(107); | 
       b.SetFillColor(107); | 
| 1200 | 
       b.SetFillStyle(3954); | 
       b.SetFillStyle(3954); | 
| 1201 | 
       b.DrawBox(512.,0.,768.,maxhist); | 
       b.DrawBox(512.,0.,768.,maxhist); | 
| 1202 | 
       b.DrawBox(1536.,0.,1792.,maxhist); | 
       b.DrawBox(1280.,0.,1792.,maxhist);  | 
| 1203 | 
     } | 
       b.DrawBox(2560.,0.,2816.,maxhist); | 
| 1204 | 
  | 
    } | 
| 1205 | 
     else if(i==7){ | 
     else if(i==7){ | 
| 1206 | 
       maxhist= illuminazione[i]->GetMaximum(); | 
       b.SetFillColor(107); | 
| 1207 | 
  | 
       b.SetFillStyle(3954); | 
| 1208 | 
  | 
       b.DrawBox(512.,0.,768.,maxhist); | 
| 1209 | 
  | 
       b.DrawBox(896.,0.,1535.,maxhist); | 
| 1210 | 
  | 
     } | 
| 1211 | 
  | 
     else if(i==8){ | 
| 1212 | 
       b.SetFillColor(107); | 
       b.SetFillColor(107); | 
| 1213 | 
       b.SetFillStyle(3954); | 
       b.SetFillStyle(3954); | 
| 1214 | 
       b.DrawBox(512.,0.,768.,maxhist); | 
       b.DrawBox(512.,0.,768.,maxhist); | 
| 1215 | 
     } | 
     } | 
| 1216 | 
     else if(i==9){ | 
     else if(i==9){ | 
 | 
       maxhist=illuminazione[i]->GetMaximum(); | 
  | 
| 1217 | 
       b.SetFillColor(107); | 
       b.SetFillColor(107); | 
| 1218 | 
       b.SetFillStyle(3954); | 
       b.SetFillStyle(3954); | 
| 1219 | 
       b.DrawBox(256.,0.,384.,maxhist); | 
       b.DrawBox(256.,0.,384.,maxhist); | 
| 1220 | 
  | 
       b.DrawBox(1280.,0.,1535.,maxhist); | 
| 1221 | 
  | 
       b.DrawBox(1792.,0.,1920.,maxhist); | 
| 1222 | 
  | 
     } | 
| 1223 | 
  | 
     else if(i==10){ | 
| 1224 | 
  | 
       b.SetFillColor(107); | 
| 1225 | 
  | 
       b.SetFillStyle(3954); | 
| 1226 | 
  | 
       b.DrawBox(1024.,0.,1152.,maxhist); | 
| 1227 | 
  | 
       b.DrawBox(2048.,0.,3070.,maxhist); | 
| 1228 | 
     } | 
     } | 
| 1229 | 
     else if(i==11){ | 
     else if(i==11){ | 
 | 
       maxhist= illuminazione[i]->GetMaximum(); | 
  | 
| 1230 | 
       b.SetFillColor(6); | 
       b.SetFillColor(6); | 
| 1231 | 
       b.SetFillStyle(3945); | 
       b.SetFillStyle(3945); | 
| 1232 | 
       b.DrawBox(768.,0.,1024.,maxhist); | 
       b.DrawBox(768.,0.,1024.,maxhist); | 
| 1236 | 
       b.DrawBox(0.,0.,512.,maxhist); | 
       b.DrawBox(0.,0.,512.,maxhist); | 
| 1237 | 
       b.DrawBox(1920.,0.,2560.,maxhist); | 
       b.DrawBox(1920.,0.,2560.,maxhist); | 
| 1238 | 
     } | 
     } | 
| 1239 | 
  | 
     for(int va=1; va<24; va++){ | 
| 1240 | 
  | 
       va1x=128*va; | 
| 1241 | 
  | 
       liva1.DrawLine(va1x,0.,va1x,maxhist); | 
| 1242 | 
  | 
     } | 
| 1243 | 
  | 
     li.DrawLine(1024.5,0,1024.5,maxhist); | 
| 1244 | 
  | 
     li.DrawLine(2048.5,0,2048.5,maxhist); | 
| 1245 | 
     IlluminaCanv->Update(); | 
     IlluminaCanv->Update(); | 
| 1246 | 
   } | 
   } | 
| 1247 | 
  | 
  |