--- quicklook/tracker/flight/macros/FTrkCalibQLook_EXPERT.cxx 2006/08/11 10:24:09 1.9 +++ quicklook/tracker/flight/macros/FTrkCalibQLook_EXPERT.cxx 2006/11/20 11:33:24 1.19 @@ -2,7 +2,7 @@ * FTrkCalibQLookExpert.cxx * * autor: D.Fedele - * version v1r08 + * version v1r17 * Parameters: * file - the data file to analyze * step - select =1 in order to analyze one event at time @@ -176,7 +176,7 @@ } else if (toevent > nevents) { maxevent = nevents; } else { - maxevent = fromevent; + maxevent = nevents; }; }; @@ -187,12 +187,15 @@ //********************************************************************** Int_t hcevent=hotr->GetEntries(); - ULong64_t HOBT[hcevent], TOBT[hcevent]; + Int_t tcevent=totr->GetEntries(); + ULong64_t HOBT[hcevent], TOBT[tcevent]; for (Int_t i = 0; i < hcevent; i++){ - totr->GetEntry(i); hotr->GetEntry(i); ph = eh4->GetPscuHeader(); HOBT[i]= ph->GetOrbitalTime(); + } + for (Int_t i = 0; i < tcevent; i++){ + totr->GetEntry(i); ph = eh3->GetPscuHeader(); TOBT[i]= ph->GetOrbitalTime(); } @@ -209,53 +212,61 @@ ph = eh1->GetPscuHeader(); cod = eh1->GetCounter(); FOBT[0]= ph->GetOrbitalTime(); - ctrk.daqmode[trk1->DSPnumber[m]-1]=trk1->DAQmode[m]; - ctrk.dspnum[trk1->DSPnumber[m]-1]=trk1->DSPnumber[m]; - ctrk.calibnum[trk1->DSPnumber[m]-1]=trk1->calibnumber[m]; - ctrk.ncalev[trk1->DSPnumber[m]-1]=trk1->ncalib_event[m]; - ctrk.ped1[trk1->DSPnumber[m]-1]=trk1->ped_l1[m]; - ctrk.ped2[trk1->DSPnumber[m]-1]=trk1->ped_l2[m]; - ctrk.ped3[trk1->DSPnumber[m]-1]=trk1->ped_l3[m]; - ctrk.sig1[trk1->DSPnumber[m]-1]=trk1->sig_l1[m]; - ctrk.sig2[trk1->DSPnumber[m]-1]=trk1->sig_l2[m]; - ctrk.sig3[trk1->DSPnumber[m]-1]=trk1->sig_l3[m]; - ctrk.nbad1[trk1->DSPnumber[m]-1]=trk1->nbad_l1[m]; - ctrk.nbad2[trk1->DSPnumber[m]-1]=trk1->nbad_l2[m]; - ctrk.nbad3[trk1->DSPnumber[m]-1]=trk1->nbad_l3[m]; - ctrk.calfl[trk1->DSPnumber[m]-1]=trk1->cal_flag[m]; - ctrk.crc_c[trk1->DSPnumber[m]-1][0]=trk1->crc_cal[m][0]; - ctrk.crc_c[trk1->DSPnumber[m]-1][1]=trk1->crc_cal[m][1]; - ctrk.crc_c[trk1->DSPnumber[m]-1][2]=trk1->crc_cal[m][2]; - ctrk.crc_hc[trk1->DSPnumber[m]-1]=trk1->crc_hcal[m]; - for (Int_t j = 0; j < 3072; j++){ - ctrk.dspped[trk1->DSPnumber[m]-1][j]=trk1->DSPped_par[m][j]; - ctrk.dspsig[trk1->DSPnumber[m]-1][j]=trk1->DSPsig_par[m][j]; - ctrk.dspbad[trk1->DSPnumber[m]-1][j]=trk1->DSPbad_par[m][j]; - }; + if(trk1->DSPnumber[m]>0){ + if(trk1->DSPnumber[m]<13){ + ctrk.daqmode[trk1->DSPnumber[m]-1]=trk1->DAQmode[m]; + ctrk.dspnum[trk1->DSPnumber[m]-1]=trk1->DSPnumber[m]; + ctrk.calibnum[trk1->DSPnumber[m]-1]=trk1->calibnumber[m]; + ctrk.ncalev[trk1->DSPnumber[m]-1]=trk1->ncalib_event[m]; + ctrk.ped1[trk1->DSPnumber[m]-1]=trk1->ped_l1[m]; + ctrk.ped2[trk1->DSPnumber[m]-1]=trk1->ped_l2[m]; + ctrk.ped3[trk1->DSPnumber[m]-1]=trk1->ped_l3[m]; + ctrk.sig1[trk1->DSPnumber[m]-1]=trk1->sig_l1[m]; + ctrk.sig2[trk1->DSPnumber[m]-1]=trk1->sig_l2[m]; + ctrk.sig3[trk1->DSPnumber[m]-1]=trk1->sig_l3[m]; + ctrk.nbad1[trk1->DSPnumber[m]-1]=trk1->nbad_l1[m]; + ctrk.nbad2[trk1->DSPnumber[m]-1]=trk1->nbad_l2[m]; + ctrk.nbad3[trk1->DSPnumber[m]-1]=trk1->nbad_l3[m]; + ctrk.calfl[trk1->DSPnumber[m]-1]=trk1->cal_flag[m]; + ctrk.crc_c[trk1->DSPnumber[m]-1][0]=trk1->crc_cal[m][0]; + ctrk.crc_c[trk1->DSPnumber[m]-1][1]=trk1->crc_cal[m][1]; + ctrk.crc_c[trk1->DSPnumber[m]-1][2]=trk1->crc_cal[m][2]; + ctrk.crc_hc[trk1->DSPnumber[m]-1]=trk1->crc_hcal[m]; + for (Int_t j = 0; j < 3072; j++){ + ctrk.dspped[trk1->DSPnumber[m]-1][j]=trk1->DSPped_par[m][j]; + ctrk.dspsig[trk1->DSPnumber[m]-1][j]=trk1->DSPsig_par[m][j]; + ctrk.dspbad[trk1->DSPnumber[m]-1][j]=trk1->DSPbad_par[m][j]; + }; + } + } ph = eh2->GetPscuHeader(); FOBT[1]= ph->GetOrbitalTime(); - ctrk.daqmode[trk2->DSPnumber[m]-1]=trk2->DAQmode[m]; - ctrk.dspnum[trk2->DSPnumber[m]-1]=trk2->DSPnumber[m]; - ctrk.calibnum[trk2->DSPnumber[m]-1]=trk2->calibnumber[m]; - ctrk.ncalev[trk2->DSPnumber[m]-1]=trk2->ncalib_event[m]; - ctrk.ped1[trk2->DSPnumber[m]-1]=trk2->ped_l1[m]; - ctrk.ped2[trk2->DSPnumber[m]-1]=trk2->ped_l2[m]; - ctrk.ped3[trk2->DSPnumber[m]-1]=trk2->ped_l3[m]; - ctrk.sig1[trk2->DSPnumber[m]-1]=trk2->sig_l1[m]; - ctrk.sig2[trk2->DSPnumber[m]-1]=trk2->sig_l2[m]; - ctrk.sig3[trk2->DSPnumber[m]-1]=trk2->sig_l3[m]; - ctrk.nbad1[trk2->DSPnumber[m]-1]=trk2->nbad_l1[m]; - ctrk.nbad2[trk2->DSPnumber[m]-1]=trk2->nbad_l2[m]; - ctrk.nbad3[trk2->DSPnumber[m]-1]=trk2->nbad_l3[m]; - ctrk.calfl[trk2->DSPnumber[m]-1]=trk2->cal_flag[m]; - ctrk.crc_c[trk1->DSPnumber[m]-1][0]=trk2->crc_cal[m][0]; - ctrk.crc_c[trk1->DSPnumber[m]-1][1]=trk2->crc_cal[m][1]; - ctrk.crc_c[trk1->DSPnumber[m]-1][2]=trk2->crc_cal[m][2]; - ctrk.crc_hc[trk1->DSPnumber[m]-1]=trk2->crc_hcal[m]; - for (Int_t j = 0; j < 3072; j++){ - ctrk.dspped[trk2->DSPnumber[m]-1][j]=trk2->DSPped_par[m][j]; - ctrk.dspsig[trk2->DSPnumber[m]-1][j]=trk2->DSPsig_par[m][j]; - ctrk.dspbad[trk2->DSPnumber[m]-1][j]=trk2->DSPbad_par[m][j]; + if(trk2->DSPnumber[m]>0){ + if(trk2->DSPnumber[m]<13){ + ctrk.daqmode[trk2->DSPnumber[m]-1]=trk2->DAQmode[m]; + ctrk.dspnum[trk2->DSPnumber[m]-1]=trk2->DSPnumber[m]; + ctrk.calibnum[trk2->DSPnumber[m]-1]=trk2->calibnumber[m]; + ctrk.ncalev[trk2->DSPnumber[m]-1]=trk2->ncalib_event[m]; + ctrk.ped1[trk2->DSPnumber[m]-1]=trk2->ped_l1[m]; + ctrk.ped2[trk2->DSPnumber[m]-1]=trk2->ped_l2[m]; + ctrk.ped3[trk2->DSPnumber[m]-1]=trk2->ped_l3[m]; + ctrk.sig1[trk2->DSPnumber[m]-1]=trk2->sig_l1[m]; + ctrk.sig2[trk2->DSPnumber[m]-1]=trk2->sig_l2[m]; + ctrk.sig3[trk2->DSPnumber[m]-1]=trk2->sig_l3[m]; + ctrk.nbad1[trk2->DSPnumber[m]-1]=trk2->nbad_l1[m]; + ctrk.nbad2[trk2->DSPnumber[m]-1]=trk2->nbad_l2[m]; + ctrk.nbad3[trk2->DSPnumber[m]-1]=trk2->nbad_l3[m]; + ctrk.calfl[trk2->DSPnumber[m]-1]=trk2->cal_flag[m]; + ctrk.crc_c[trk1->DSPnumber[m]-1][0]=trk2->crc_cal[m][0]; + ctrk.crc_c[trk1->DSPnumber[m]-1][1]=trk2->crc_cal[m][1]; + ctrk.crc_c[trk1->DSPnumber[m]-1][2]=trk2->crc_cal[m][2]; + ctrk.crc_hc[trk1->DSPnumber[m]-1]=trk2->crc_hcal[m]; + for (Int_t j = 0; j < 3072; j++){ + ctrk.dspped[trk2->DSPnumber[m]-1][j]=trk2->DSPped_par[m][j]; + ctrk.dspsig[trk2->DSPnumber[m]-1][j]=trk2->DSPsig_par[m][j]; + ctrk.dspbad[trk2->DSPnumber[m]-1][j]=trk2->DSPbad_par[m][j]; + } + } } } @@ -265,7 +276,7 @@ Int_t risposta=0; stringstream fromfile; - fromfile<<"FTrkCalibQLook_EXPERT File: "<SetLabelSize(0.07,"x"); gStyle->SetLabelSize(0.07,"y"); @@ -407,7 +418,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; /*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.* * @@ -480,18 +493,18 @@ /******************************************************/ /* 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; @@ -518,9 +531,15 @@ 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){ +// if(ctrk.good0[0]==1 && ctrk.good0[1]==1){ histoped[nn]->Draw("b"); - if(nn==1){ + if(nn==0){ + maxhist=histoped[nn]->GetMaximum(); + b.SetFillColor(107); + b.SetFillStyle(3945); + b.DrawBox(768.,2200.,2047.,maxhist); + } + else if(nn==1){ maxhist=histoped[nn]->GetMaximum(); b.SetFillColor(6); b.SetFillStyle(3945); @@ -531,16 +550,23 @@ 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.,1792.,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(); @@ -548,6 +574,18 @@ b.SetFillStyle(3954); b.DrawBox(512.,700.,768.,maxhist); } + else if(nn==8){ + maxhist=histoped[nn]->GetMaximum(); + b.SetFillColor(107); + b.SetFillStyle(3954); + b.DrawBox(512.,2200.,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); @@ -557,10 +595,10 @@ b.SetFillColor(107); b.SetFillStyle(3954); b.DrawBox(0.,700.,512.,maxhist); - b.DrawBox(1920.,700.,2048.,maxhist); + b.DrawBox(1920.,700.,2560.,maxhist); } - } - else histoped[nn]->Draw("axis"); + // } +// else histoped[nn]->Draw("axis"); histoaped[nn]->Draw("same"); if((nn+1)%2==1) { li.DrawLine(1024.5,2200,1024.5,3200); @@ -570,6 +608,7 @@ li.DrawLine(1024.5,700,1024.5,1700); li.DrawLine(2048.5,700,2048.5,1700); } + c1->Update();//draw pads in canvas @@ -592,9 +631,15 @@ histosig[nn]->GetYaxis()->CenterTitle(); histoasig[nn]->SetLineColor(5); histoasig[nn]->SetLineWidth(1); - if(ctrk.good0[0]==1 && ctrk.good0[1]==1){ +// if(ctrk.good0[0]==1 && ctrk.good0[1]==1){ histosig[nn]->Draw("b"); - if(nn==1){ + if(nn==0){ + maxhist=histosig[nn]->GetMaximum(); + b.SetFillColor(107); + b.SetFillStyle(3945); + b.DrawBox(768.,0.,2047.,maxhist); + } + else if(nn==1){ maxhist=histosig[nn]->GetMaximum(); b.SetFillColor(6); b.SetFillStyle(3945); @@ -605,16 +650,23 @@ 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.,1792.,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(); @@ -622,6 +674,18 @@ b.SetFillStyle(3954); b.DrawBox(512.,0.,768.,maxhist); } + else if(nn==8){ + 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); @@ -631,10 +695,10 @@ b.SetFillColor(107); b.SetFillStyle(3954); b.DrawBox(0.,0.,512.,maxhist); - b.DrawBox(1920.,0.,2048.,maxhist); + b.DrawBox(1920.,0.,2560.,maxhist); } - } - else histosig[nn]->Draw("axis"); +// } +// else histosig[nn]->Draw("axis"); histoasig[nn]->Draw("same"); li.DrawLine(1024.5,0,1024.5,max); li.DrawLine(2048.5,0,2048.5,max); @@ -652,8 +716,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