--- quicklook/tracker/flight/macros/FTrkCalibQLook_EXPERT.cxx 2006/10/02 13:05:39 1.15 +++ quicklook/tracker/flight/macros/FTrkCalibQLook_EXPERT.cxx 2008/01/02 15:57:10 1.31 @@ -2,7 +2,7 @@ * FTrkCalibQLookExpert.cxx * * autor: D.Fedele - * version v1r13 + * version v1r28 * Parameters: * file - the data file to analyze * step - select =1 in order to analyze one event at time @@ -77,7 +77,7 @@ Int_t nevents=0; Int_t minevent = 0; Int_t maxevent = 0; - ULong64_t FOBT[2]; + ULong_t FOBT[2]; FOBT[0]=0; FOBT[1]=0; @@ -188,7 +188,7 @@ Int_t hcevent=hotr->GetEntries(); Int_t tcevent=totr->GetEntries(); - ULong64_t HOBT[hcevent], TOBT[tcevent]; + ULong_t HOBT[hcevent], TOBT[tcevent]; for (Int_t i = 0; i < hcevent; i++){ hotr->GetEntry(i); ph = eh4->GetPscuHeader(); @@ -273,8 +273,9 @@ // // other variables definitions + Int_t risposta=0; - stringstream fromfile; + stringstream fromfile,isfile; fromfile<<"FTrkCalibQLook_EXPERT File: "<SetFillColor(10); - tzz->DrawLatex(.01,0.98,fromfile.str().c_str()); - tzz->DrawLatex(.90,0.98,"PEDESTAL"); + tzz->DrawLatex(.01,.98,fromfile.str().c_str()); + tzz->DrawLatex(.90,.98,"PEDESTAL"); + + isfile<<"Boxes so colored point out chips broken before the launch and never resumed"; + tzz->SetTextColor(6); + tzz->SetTextSize(0.018); + // tzz->DrawLatex(.5,.96,isfile.str().c_str()); + isfile.str(""); + + isfile<<"Boxes so colored point out anomalous chips (not necessarily broken)"; + tzz->SetTextColor(107); + // tzz->DrawLatex(.05,.96,isfile.str().c_str()); + isfile.str(""); + TCanvas *c2 = new TCanvas("c2","FTrkCalibQLook_EXPERT_sig",canvasx,canvasy); c2->SetFillColor(10); - tzz->DrawLatex(.01,0.98,fromfile.str().c_str()); - tzz->DrawLatex(.90,0.98,"SIGMA"); + tzz->SetTextColor(1); + tzz->DrawLatex(.01,.98,fromfile.str().c_str()); + tzz->DrawLatex(.90,.98,"SIGMA"); + + isfile<<"Chips with white line at least once showed anomalous behaviour"; + tzz->SetTextColor(17); + tzz->SetTextSize(0.018); + tzz->DrawLatex(.01,.96,isfile.str().c_str()); + isfile.str(""); + + isfile<<"Boxes so colored point out anomalous chips (not necessarily broken)"; + tzz->SetTextColor(107); + // tzz->DrawLatex(.05,.96,isfile.str().c_str()); + isfile.str(""); TCanvas *sig=new TCanvas("sig","FTrkCalibQLook_EXPERT_histosig",canvasx,canvasy); sig->SetFillColor(10); - tzz->DrawLatex(.01,0.98,fromfile.str().c_str()); - tzz->DrawLatex(.85,0.97,"Histograms of the sigmas"); + tzz->SetTextColor(1); + tzz->DrawLatex(.01,.98,fromfile.str().c_str()); + tzz->DrawLatex(.85,.97,"Histograms of the sigmas"); @@ -418,7 +444,9 @@ for(Int_t n = 0; n<12; n++){ if(ctrk.ncalev[n]==0 && ctrk.calfl[n]==0)calok = 1;//GOOD - + if(ctrk.dspnum[n]==0) + continue; + nn=ctrk.dspnum[n]-1; /*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.* * @@ -491,26 +519,29 @@ /******************************************************/ /* fill histos */ for(Int_t j = 0; j < 3072; j++){ - histosig[nn]->Fill((Float_t)j,ctrk.dspsig[nn][j]); - histoped[nn]->Fill((Float_t)j,ctrk.dspped[nn][j]); - if(j<1024) histosiglad[nn][0]->Fill(ctrk.dspsig[nn][j]); - if(j>=1024 && j<2048) histosiglad[nn][1]->Fill(ctrk.dspsig[nn][j]); - if(j>=2048 && j<3072) histosiglad[nn][2]->Fill(ctrk.dspsig[nn][j]); + histosig[nn]->Fill(j,ctrk.dspsig[n][j]); + histoped[nn]->Fill(j,ctrk.dspped[n][j]); + if(j<1024) histosiglad[nn][0]->Fill(ctrk.dspsig[n][j]); + if(j>=1024 && j<2048) histosiglad[nn][1]->Fill(ctrk.dspsig[n][j]); + if(j>=2048 && j<3072) histosiglad[nn][2]->Fill(ctrk.dspsig[n][j]); }; - histoasig[nn]->Fill(1,ctrk.sig1[nn]); - histoasig[nn]->Fill(1025,ctrk.sig2[nn]); - histoasig[nn]->Fill(2049,ctrk.sig3[nn]); + histoasig[nn]->Fill(1,ctrk.sig1[n]); + histoasig[nn]->Fill(1025,ctrk.sig2[n]); + histoasig[nn]->Fill(2049,ctrk.sig3[n]); histoaped[nn]->Fill(1,ctrk.ped1[nn]); - histoaped[nn]->Fill(1025,ctrk.ped2[nn]); - histoaped[nn]->Fill(2049,ctrk.ped3[nn]); + histoaped[nn]->Fill(1025,ctrk.ped2[n]); + histoaped[nn]->Fill(2049,ctrk.ped3[n]); /******************************************************/ - - TLine li; + + TLine li,liva1; li.SetLineColor(38); - li.SetLineStyle(3); + li.SetLineStyle(4); li.SetLineWidth(2); - - Float_t maxhist=0; + liva1.SetLineColor(42); + liva1.SetLineStyle(3); + liva1.SetLineWidth(1); + + Float_t maxhist=0,va1x=0,minhist=0.; TBox b; /* plot PEDESTAL */ c1->cd(); @@ -529,72 +560,91 @@ if((nn+1)%2==0) histoped[nn]->GetYaxis()->SetRangeUser(700,1700); histoaped[nn]->SetLineColor(5); histoaped[nn]->SetLineWidth(1); - if(ctrk.good0[0]==1 && ctrk.good0[1]==1){ - histoped[nn]->Draw("b"); - if(nn==1){ - maxhist=histoped[nn]->GetMaximum(); - b.SetFillColor(6); - b.SetFillStyle(3945); - b.DrawBox(2944.,700.,3060.,maxhist); - - b.SetFillColor(107); - b.SetFillStyle(3954); - b.DrawBox(2816.,700.,2944.,maxhist); - b.DrawBox(2048.,700.,2176.,maxhist); - } - else if(nn==4){ - maxhist=histoped[nn]->GetMaximum(); - b.SetFillColor(107); - b.SetFillStyle(3954); - b.DrawBox(384.,2200.,512.,maxhist); - } - else if(nn==6){ - maxhist=histoped[nn]->GetMaximum(); - b.SetFillColor(6); - b.SetFillStyle(3945); - b.DrawBox(2560.,2200.,2816.,maxhist); - b.DrawBox(1024.,2200.,1535.,maxhist); - - b.SetFillColor(107); - b.SetFillStyle(3954); - b.DrawBox(512.,2200.,768.,maxhist); - b.DrawBox(1536.,2200.,1792.,maxhist); - } - else if(nn==7){ - maxhist=histoped[nn]->GetMaximum(); - b.SetFillColor(107); - b.SetFillStyle(3954); - b.DrawBox(512.,700.,768.,maxhist); - } - else if(nn==9){ - maxhist=histoped[nn]->GetMaximum(); - b.SetFillColor(107); - b.SetFillStyle(3954); - b.DrawBox(256.,700.,384.,maxhist); - } - else if(nn==11){ - maxhist=histoped[nn]->GetMaximum(); - b.SetFillColor(6); - b.SetFillStyle(3945); - b.DrawBox(768.,700.,1024.,maxhist); - - b.SetFillColor(107); - b.SetFillStyle(3954); - b.DrawBox(0.,700.,512.,maxhist); - b.DrawBox(1920.,700.,2048.,maxhist); - b.DrawBox(2176.,700.,2304.,maxhist); - } - } - else histoped[nn]->Draw("axis"); + // if(ctrk.good0[0]==1 && ctrk.good0[1]==1){ + histoped[nn]->Draw("b"); + maxhist=histoped[nn]->GetMaximum(); + if(nn%2==0) minhist=2200; + else minhist=700; + b.SetFillColor(19); + b.SetFillStyle(3954); + if(nn==0){ + b.DrawBox(0.,minhist,2047.,maxhist); + } + else if(nn==1){ + b.DrawBox(128.,minhist,256.,maxhist); + b.DrawBox(384.,minhist,512.,maxhist); + b.DrawBox(896.,minhist,1024.,maxhist); + b.DrawBox(2048.,minhist,2432.,maxhist); + b.DrawBox(2816.,minhist,2944.,maxhist); + b.DrawBox(2944.,minhist,3070.,maxhist); + } + else if(nn==3){ + b.DrawBox(0.,minhist,256.,maxhist); + b.DrawBox(2816.,minhist,3070.,maxhist); + } + else if(nn==4){ + b.DrawBox(256.,minhist,512.,maxhist); + b.DrawBox(1792.,minhist,1920.,maxhist); + b.DrawBox(2816.,minhist,3070.,maxhist); + } + else if(nn==5){ + b.DrawBox(0.,minhist,256.,maxhist); + b.DrawBox(896.,minhist,1024.,maxhist); + b.DrawBox(1664.,minhist,1792.,maxhist); + } + else if(nn==6){ + b.DrawBox(512.,minhist,768.,maxhist); + b.DrawBox(1024.,minhist,1280.,maxhist); + b.DrawBox(1280.,minhist,1792.,maxhist); + b.DrawBox(2560.,minhist,2816.,maxhist); + } + else if(nn==7){ + b.DrawBox(0.,minhist,1535.,maxhist); + b.DrawBox(2024.,minhist,2280.,maxhist); + } + else if(nn==8){ + b.DrawBox(512.,minhist,768.,maxhist); + } + else if(nn==9){ + b.DrawBox(0.,minhist,128.,maxhist); + b.DrawBox(256.,minhist,384.,maxhist); + b.DrawBox(512.,minhist,640.,maxhist); + b.DrawBox(896.,minhist,1152.,maxhist); + b.DrawBox(1280.,minhist,1535.,maxhist); + b.DrawBox(1664.,minhist,1920.,maxhist); + b.DrawBox(2048.,minhist,2304.,maxhist); + } + else if(nn==10){ + b.DrawBox(0.,minhist,512.,maxhist); + b.DrawBox(1024.,minhist,3070.,maxhist); + } + else if(nn==11){ + b.DrawBox(0.,minhist,512.,maxhist); + b.DrawBox(768.,minhist,1024.,maxhist); + b.DrawBox(1536.,minhist,1664.,maxhist); + b.DrawBox(1920.,minhist,2560.,maxhist); + b.DrawBox(2816.,minhist,3070.,maxhist); + } + // } + // else histoped[nn]->Draw("axis"); histoaped[nn]->Draw("same"); if((nn+1)%2==1) { - li.DrawLine(1024.5,2200,1024.5,3200); - li.DrawLine(2048.5,2200,2048.5,3200); + for(int va=1; va<24; va++){ + va1x=128*va; + liva1.DrawLine(va1x,2200.,va1x,3200.); + } + li.DrawLine(1024.5,2200.,1024.5,3200.); + li.DrawLine(2048.5,2200.,2048.5,3200.); } if((nn+1)%2==0) { + for(int va=1; va<24; va++){ + va1x=128*va; + liva1.DrawLine(va1x,700.,va1x,1700.); + } li.DrawLine(1024.5,700,1024.5,1700); li.DrawLine(2048.5,700,2048.5,1700); } + c1->Update();//draw pads in canvas @@ -617,66 +667,80 @@ histosig[nn]->GetYaxis()->CenterTitle(); histoasig[nn]->SetLineColor(5); histoasig[nn]->SetLineWidth(1); - if(ctrk.good0[0]==1 && ctrk.good0[1]==1){ - histosig[nn]->Draw("b"); - if(nn==1){ - maxhist=histosig[nn]->GetMaximum(); - b.SetFillColor(6); - b.SetFillStyle(3945); - b.DrawBox(2944.,0.,3060.,maxhist); - - b.SetFillColor(107); - b.SetFillStyle(3954); - b.DrawBox(2816.,0.,2944.,maxhist); - b.DrawBox(2048.,0.,2176.,maxhist); - } - else if(nn==4){ - maxhist=histosig[nn]->GetMaximum(); - b.SetFillColor(107); - b.SetFillStyle(3954); - b.DrawBox(384.,0.,512.,maxhist); - } - else if(nn==6){ - maxhist=histosig[nn]->GetMaximum(); - b.SetFillColor(6); - b.SetFillStyle(3945); - b.DrawBox(2560.,0.,2816.,maxhist); - b.DrawBox(1024.,0.,1535.,maxhist); - - b.SetFillColor(107); - b.SetFillStyle(3954); - b.DrawBox(512.,0.,768.,maxhist); - b.DrawBox(1536.,0.,1792.,maxhist); - } - else if(nn==7){ - maxhist=histosig[nn]->GetMaximum(); - b.SetFillColor(107); - b.SetFillStyle(3954); - b.DrawBox(512.,0.,768.,maxhist); - } - else if(nn==9){ - maxhist=histosig[nn]->GetMaximum(); - b.SetFillColor(107); - b.SetFillStyle(3954); - b.DrawBox(256.,0.,384.,maxhist); - } - else if(nn==11){ - maxhist=histosig[nn]->GetMaximum(); - b.SetFillColor(6); - b.SetFillStyle(3945); - b.DrawBox(768.,0.,1024.,maxhist); - - b.SetFillColor(107); - b.SetFillStyle(3954); - b.DrawBox(0.,0.,512.,maxhist); - b.DrawBox(1920.,0.,2048.,maxhist); - b.DrawBox(2176.,0.,2304.,maxhist); - } - } - else histosig[nn]->Draw("axis"); + // if(ctrk.good0[0]==1 && ctrk.good0[1]==1){ + histosig[nn]->Draw("b"); + maxhist=histosig[nn]->GetMaximum(); + minhist=0.; + b.SetFillColor(19); + b.SetFillStyle(3945); + if(nn==0){ + b.DrawBox(0.,minhist,2047.,maxhist); + } + else if(nn==1){ + b.DrawBox(128.,minhist,256.,maxhist); + b.DrawBox(384.,minhist,512.,maxhist); + b.DrawBox(896.,minhist,1024.,maxhist); + b.DrawBox(2048.,minhist,2432.,maxhist); + b.DrawBox(2816.,minhist,2944.,maxhist); + b.DrawBox(2944.,minhist,3070.,maxhist); + } + else if(nn==3){ + b.DrawBox(0.,minhist,256.,maxhist); + b.DrawBox(2816.,minhist,3070.,maxhist); + } + else if(nn==4){ + b.DrawBox(256.,minhist,512.,maxhist); + b.DrawBox(1792.,minhist,1920.,maxhist); + b.DrawBox(2816.,minhist,3070.,maxhist); + } + else if(nn==5){ + b.DrawBox(0.,minhist,256.,maxhist); + b.DrawBox(896.,minhist,1024.,maxhist); + b.DrawBox(1664.,minhist,1792.,maxhist); + } + else if(nn==6){ + b.DrawBox(512.,minhist,768.,maxhist); + b.DrawBox(1024.,minhist,1280.,maxhist); + b.DrawBox(1280.,minhist,1792.,maxhist); + b.DrawBox(2560.,minhist,2816.,maxhist); + } + else if(nn==7){ + b.DrawBox(0.,minhist,1535.,maxhist); + b.DrawBox(2024.,minhist,2280.,maxhist); + } + else if(nn==8){ + b.DrawBox(512.,minhist,768.,maxhist); + } + else if(nn==9){ + b.DrawBox(0.,minhist,128.,maxhist); + b.DrawBox(256.,minhist,384.,maxhist); + b.DrawBox(512.,minhist,640.,maxhist); + b.DrawBox(896.,minhist,1152.,maxhist); + b.DrawBox(1280.,minhist,1535.,maxhist); + b.DrawBox(1664.,minhist,1920.,maxhist); + b.DrawBox(2048.,minhist,2304.,maxhist); + } + else if(nn==10){ + b.DrawBox(0.,minhist,512.,maxhist); + b.DrawBox(1024.,minhist,3070.,maxhist); + } + else if(nn==11){ + b.DrawBox(0.,minhist,512.,maxhist); + b.DrawBox(768.,minhist,1024.,maxhist); + b.DrawBox(1536.,minhist,1664.,maxhist); + b.DrawBox(1920.,minhist,2560.,maxhist); + b.DrawBox(2816.,minhist,3070.,maxhist); + } + // } + // else histosig[nn]->Draw("axis"); histoasig[nn]->Draw("same"); + for(int va=1; va<24; va++){ + va1x=128*va; + liva1.DrawLine(va1x,0.,va1x,max); + } li.DrawLine(1024.5,0,1024.5,max); li.DrawLine(2048.5,0,2048.5,max); + c2->Update();//draw pads in canvas for(int ii=0;ii<3;ii++){ sig->cd(); @@ -691,8 +755,8 @@ histosiglad[nn][ii]->GetXaxis()->SetTitle("SIG (ADC channels)"); histosiglad[nn][ii]->GetXaxis()->CenterTitle(); histosiglad[nn][ii]->Draw(""); - } - + } + };//end loop on views c1->Update();//draw pads in canvas c2->Update();//draw pads in canvas