/[PAMELA software]/quicklook/tracker/flight/macros/FTrkCalibQLook_EXPERT.cxx
ViewVC logotype

Diff of /quicklook/tracker/flight/macros/FTrkCalibQLook_EXPERT.cxx

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.15 by pam-fi, Mon Oct 2 13:05:39 2006 UTC revision 1.32 by pam-fi, Wed Jan 2 16:07:50 2008 UTC
# Line 2  Line 2 
2   * FTrkCalibQLookExpert.cxx   * FTrkCalibQLookExpert.cxx
3   *   *
4   * autor: D.Fedele   * autor: D.Fedele
5   * version v1r13   * version v1r28
6   * Parameters:   * Parameters:
7   *      file - the data file to analyze   *      file - the data file to analyze
8   *      step - select =1 in order to analyze one event at time   *      step - select =1 in order to analyze one event at time
# Line 77  void FTrkCalibQLook_EXPERT(TString file, Line 77  void FTrkCalibQLook_EXPERT(TString file,
77    Int_t nevents=0;    Int_t nevents=0;
78    Int_t minevent = 0;    Int_t minevent = 0;
79    Int_t maxevent = 0;    Int_t maxevent = 0;
80    ULong64_t FOBT[2];    ULong_t FOBT[2];
81        
82    FOBT[0]=0;    FOBT[0]=0;
83    FOBT[1]=0;    FOBT[1]=0;
# Line 188  void FTrkCalibQLook_EXPERT(TString file, Line 188  void FTrkCalibQLook_EXPERT(TString file,
188            
189    Int_t hcevent=hotr->GetEntries();    Int_t hcevent=hotr->GetEntries();
190    Int_t tcevent=totr->GetEntries();    Int_t tcevent=totr->GetEntries();
191    ULong64_t HOBT[hcevent], TOBT[tcevent];    ULong_t HOBT[hcevent], TOBT[tcevent];
192    for (Int_t i = 0; i < hcevent; i++){    for (Int_t i = 0; i < hcevent; i++){
193      hotr->GetEntry(i);      hotr->GetEntry(i);
194      ph = eh4->GetPscuHeader();      ph = eh4->GetPscuHeader();
# Line 273  void FTrkCalibQLook_EXPERT(TString file, Line 273  void FTrkCalibQLook_EXPERT(TString file,
273    
274      //      //
275      // other variables definitions      // other variables definitions
276    
277      Int_t risposta=0;      Int_t risposta=0;
278      stringstream fromfile;      stringstream fromfile,isfile;
279    
280      fromfile<<"FTrkCalibQLook_EXPERT      File: "<<ffile<<"        -- CalibHeader OBT= "<<HOBT[(cod->Get(pctp->CalibHeader))-1]<<" -- Calib pkt OBT= "<<FOBT[0]<<" -- CalibTrailer OBT= "<<TOBT[(cod->Get(pctp->CalibTrailer))]<<" --";      fromfile<<"FTrkCalibQLook_EXPERT      File: "<<ffile<<"        -- CalibHeader OBT= "<<HOBT[(cod->Get(pctp->CalibHeader))-1]<<" -- Calib pkt OBT= "<<FOBT[0]<<" -- CalibTrailer OBT= "<<TOBT[(cod->Get(pctp->CalibTrailer))]<<" --";
281            
# Line 304  void FTrkCalibQLook_EXPERT(TString file, Line 305  void FTrkCalibQLook_EXPERT(TString file,
305      Int_t canvasy=900;      Int_t canvasy=900;
306      TCanvas *c1 = new TCanvas("c1","FTrkCalibQLook_EXPERT_ped",canvasx,canvasy);      TCanvas *c1 = new TCanvas("c1","FTrkCalibQLook_EXPERT_ped",canvasx,canvasy);
307      c1->SetFillColor(10);      c1->SetFillColor(10);
308      tzz->DrawLatex(.01,0.98,fromfile.str().c_str());      tzz->DrawLatex(.01,.98,fromfile.str().c_str());
309      tzz->DrawLatex(.90,0.98,"PEDESTAL");      tzz->DrawLatex(.90,.98,"PEDESTAL");
310        
311        isfile<<"Chips with white line at least once showed anomalous behaviour";
312        tzz->SetTextColor(17);
313        tzz->SetTextSize(0.018);
314        tzz->DrawLatex(.01,.96,isfile.str().c_str());
315        isfile.str("");
316    
317        isfile<<"Boxes so colored point out anomalous chips (not necessarily broken)";
318        tzz->SetTextColor(107);
319        //    tzz->DrawLatex(.05,.96,isfile.str().c_str());
320        isfile.str("");
321    
322      TCanvas *c2 = new TCanvas("c2","FTrkCalibQLook_EXPERT_sig",canvasx,canvasy);      TCanvas *c2 = new TCanvas("c2","FTrkCalibQLook_EXPERT_sig",canvasx,canvasy);
323      c2->SetFillColor(10);      c2->SetFillColor(10);
324      tzz->DrawLatex(.01,0.98,fromfile.str().c_str());      tzz->SetTextColor(1);
325      tzz->DrawLatex(.90,0.98,"SIGMA");      tzz->DrawLatex(.01,.98,fromfile.str().c_str());
326        tzz->DrawLatex(.90,.98,"SIGMA");
327        
328        isfile<<"Chips with white line at least once showed anomalous behaviour";
329        tzz->SetTextColor(17);
330        tzz->SetTextSize(0.018);
331        tzz->DrawLatex(.01,.96,isfile.str().c_str());
332        isfile.str("");
333    
334        isfile<<"Boxes so colored point out anomalous chips (not necessarily broken)";
335        tzz->SetTextColor(107);
336        //    tzz->DrawLatex(.05,.96,isfile.str().c_str());
337        isfile.str("");
338    
339        
340      TCanvas *sig=new TCanvas("sig","FTrkCalibQLook_EXPERT_histosig",canvasx,canvasy);      TCanvas *sig=new TCanvas("sig","FTrkCalibQLook_EXPERT_histosig",canvasx,canvasy);
341      sig->SetFillColor(10);      sig->SetFillColor(10);
342      tzz->DrawLatex(.01,0.98,fromfile.str().c_str());      tzz->SetTextColor(1);
343      tzz->DrawLatex(.85,0.97,"Histograms of the sigmas");      tzz->DrawLatex(.01,.98,fromfile.str().c_str());
344        tzz->DrawLatex(.85,.97,"Histograms of the sigmas");
345            
346    
347    
# Line 418  void FTrkCalibQLook_EXPERT(TString file, Line 444  void FTrkCalibQLook_EXPERT(TString file,
444      for(Int_t n = 0; n<12; n++){      for(Int_t n = 0; n<12; n++){
445        if(ctrk.ncalev[n]==0 && ctrk.calfl[n]==0)calok = 1;//GOOD        if(ctrk.ncalev[n]==0 && ctrk.calfl[n]==0)calok = 1;//GOOD
446            
447                if(ctrk.dspnum[n]==0)
448            continue;
449    
450        nn=ctrk.dspnum[n]-1;        nn=ctrk.dspnum[n]-1;
451        /*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*        /*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*
452         *         *
# Line 491  void FTrkCalibQLook_EXPERT(TString file, Line 519  void FTrkCalibQLook_EXPERT(TString file,
519        /******************************************************/        /******************************************************/
520        /* fill histos */        /* fill histos */
521        for(Int_t j = 0; j < 3072; j++){        for(Int_t j = 0; j < 3072; j++){
522          histosig[nn]->Fill((Float_t)j,ctrk.dspsig[nn][j]);          histosig[nn]->Fill(j,ctrk.dspsig[n][j]);
523          histoped[nn]->Fill((Float_t)j,ctrk.dspped[nn][j]);          histoped[nn]->Fill(j,ctrk.dspped[n][j]);
524          if(j<1024) histosiglad[nn][0]->Fill(ctrk.dspsig[nn][j]);          if(j<1024) histosiglad[nn][0]->Fill(ctrk.dspsig[n][j]);
525          if(j>=1024 && j<2048) histosiglad[nn][1]->Fill(ctrk.dspsig[nn][j]);          if(j>=1024 && j<2048) histosiglad[nn][1]->Fill(ctrk.dspsig[n][j]);
526          if(j>=2048 && j<3072) histosiglad[nn][2]->Fill(ctrk.dspsig[nn][j]);          if(j>=2048 && j<3072) histosiglad[nn][2]->Fill(ctrk.dspsig[n][j]);
527        };        };
528        histoasig[nn]->Fill(1,ctrk.sig1[nn]);        histoasig[nn]->Fill(1,ctrk.sig1[n]);
529        histoasig[nn]->Fill(1025,ctrk.sig2[nn]);        histoasig[nn]->Fill(1025,ctrk.sig2[n]);
530        histoasig[nn]->Fill(2049,ctrk.sig3[nn]);        histoasig[nn]->Fill(2049,ctrk.sig3[n]);
531        histoaped[nn]->Fill(1,ctrk.ped1[nn]);        histoaped[nn]->Fill(1,ctrk.ped1[nn]);
532        histoaped[nn]->Fill(1025,ctrk.ped2[nn]);        histoaped[nn]->Fill(1025,ctrk.ped2[n]);
533        histoaped[nn]->Fill(2049,ctrk.ped3[nn]);        histoaped[nn]->Fill(2049,ctrk.ped3[n]);
534        /******************************************************/        /******************************************************/
535                    
536        TLine li;        TLine li,liva1;
537        li.SetLineColor(38);        li.SetLineColor(38);
538        li.SetLineStyle(3);        li.SetLineStyle(4);
539        li.SetLineWidth(2);        li.SetLineWidth(2);
540                liva1.SetLineColor(42);
541        Float_t maxhist=0;        liva1.SetLineStyle(3);
542          liva1.SetLineWidth(1);
543    
544          Float_t maxhist=0,va1x=0,minhist=0.;
545        TBox b;        TBox b;
546        /* plot PEDESTAL */        /* plot PEDESTAL */
547        c1->cd();        c1->cd();
# Line 529  void FTrkCalibQLook_EXPERT(TString file, Line 560  void FTrkCalibQLook_EXPERT(TString file,
560        if((nn+1)%2==0)  histoped[nn]->GetYaxis()->SetRangeUser(700,1700);        if((nn+1)%2==0)  histoped[nn]->GetYaxis()->SetRangeUser(700,1700);
561        histoaped[nn]->SetLineColor(5);        histoaped[nn]->SetLineColor(5);
562        histoaped[nn]->SetLineWidth(1);        histoaped[nn]->SetLineWidth(1);
563        if(ctrk.good0[0]==1 && ctrk.good0[1]==1){        //       if(ctrk.good0[0]==1 && ctrk.good0[1]==1){
564          histoped[nn]->Draw("b");        histoped[nn]->Draw("b");
565          if(nn==1){        maxhist=histoped[nn]->GetMaximum();
566            maxhist=histoped[nn]->GetMaximum();        if(nn%2==0) minhist=2200;
567            b.SetFillColor(6);        else minhist=700;
568            b.SetFillStyle(3945);        b.SetFillColor(19);
569            b.DrawBox(2944.,700.,3060.,maxhist);        b.SetFillStyle(3954);
570          if(nn==0){
571            b.SetFillColor(107);          b.DrawBox(0.,minhist,2047.,maxhist);
572            b.SetFillStyle(3954);        }
573            b.DrawBox(2816.,700.,2944.,maxhist);        else if(nn==1){
574            b.DrawBox(2048.,700.,2176.,maxhist);          b.DrawBox(128.,minhist,256.,maxhist);
575          }          b.DrawBox(384.,minhist,512.,maxhist);
576          else if(nn==4){          b.DrawBox(896.,minhist,1024.,maxhist);
577            maxhist=histoped[nn]->GetMaximum();          b.DrawBox(2048.,minhist,2432.,maxhist);
578            b.SetFillColor(107);          b.DrawBox(2816.,minhist,2944.,maxhist);
579            b.SetFillStyle(3954);          b.DrawBox(2944.,minhist,3070.,maxhist);
580            b.DrawBox(384.,2200.,512.,maxhist);        }
581          }        else if(nn==3){
582          else if(nn==6){          b.DrawBox(0.,minhist,256.,maxhist);
583            maxhist=histoped[nn]->GetMaximum();          b.DrawBox(2816.,minhist,3070.,maxhist);
584            b.SetFillColor(6);        }
585            b.SetFillStyle(3945);        else if(nn==4){
586            b.DrawBox(2560.,2200.,2816.,maxhist);          b.DrawBox(256.,minhist,512.,maxhist);
587            b.DrawBox(1024.,2200.,1535.,maxhist);          b.DrawBox(1792.,minhist,1920.,maxhist);
588                      b.DrawBox(2816.,minhist,3070.,maxhist);
589            b.SetFillColor(107);        }
590            b.SetFillStyle(3954);        else if(nn==5){
591            b.DrawBox(512.,2200.,768.,maxhist);          b.DrawBox(0.,minhist,256.,maxhist);
592            b.DrawBox(1536.,2200.,1792.,maxhist);          b.DrawBox(896.,minhist,1024.,maxhist);
593          }          b.DrawBox(1664.,minhist,1792.,maxhist);      
594          else if(nn==7){        }
595            maxhist=histoped[nn]->GetMaximum();        else if(nn==6){
596            b.SetFillColor(107);          b.DrawBox(512.,minhist,768.,maxhist);
597            b.SetFillStyle(3954);          b.DrawBox(1024.,minhist,1280.,maxhist);
598            b.DrawBox(512.,700.,768.,maxhist);          b.DrawBox(1280.,minhist,1792.,maxhist);
599          }          b.DrawBox(2560.,minhist,2816.,maxhist);
600          else if(nn==9){        }
601            maxhist=histoped[nn]->GetMaximum();        else if(nn==7){
602            b.SetFillColor(107);          b.DrawBox(0.,minhist,1535.,maxhist);
603            b.SetFillStyle(3954);          b.DrawBox(2024.,minhist,2280.,maxhist);
604            b.DrawBox(256.,700.,384.,maxhist);        }
605          }        else if(nn==8){
606          else if(nn==11){          b.DrawBox(512.,minhist,768.,maxhist);
607            maxhist=histoped[nn]->GetMaximum();        }
608            b.SetFillColor(6);        else if(nn==9){
609            b.SetFillStyle(3945);          b.DrawBox(0.,minhist,128.,maxhist);
610            b.DrawBox(768.,700.,1024.,maxhist);          b.DrawBox(256.,minhist,384.,maxhist);
611                      b.DrawBox(512.,minhist,640.,maxhist);
612            b.SetFillColor(107);          b.DrawBox(896.,minhist,1152.,maxhist);
613            b.SetFillStyle(3954);          b.DrawBox(1280.,minhist,1535.,maxhist);
614            b.DrawBox(0.,700.,512.,maxhist);          b.DrawBox(1664.,minhist,1920.,maxhist);
615            b.DrawBox(1920.,700.,2048.,maxhist);          b.DrawBox(2048.,minhist,2304.,maxhist);
616            b.DrawBox(2176.,700.,2304.,maxhist);        }
617          }        else if(nn==10){
618        }          b.DrawBox(0.,minhist,512.,maxhist);
619        else histoped[nn]->Draw("axis");          b.DrawBox(1024.,minhist,3070.,maxhist);
620          }
621          else if(nn==11){
622            b.DrawBox(0.,minhist,512.,maxhist);
623            b.DrawBox(768.,minhist,1024.,maxhist);
624            b.DrawBox(1536.,minhist,1664.,maxhist);
625            b.DrawBox(1920.,minhist,2560.,maxhist);
626            b.DrawBox(2816.,minhist,3070.,maxhist);
627          }                                                    
628          //     }
629          //       else histoped[nn]->Draw("axis");
630        histoaped[nn]->Draw("same");        histoaped[nn]->Draw("same");
631        if((nn+1)%2==1) {        if((nn+1)%2==1) {
632          li.DrawLine(1024.5,2200,1024.5,3200);          for(int va=1; va<24; va++){
633          li.DrawLine(2048.5,2200,2048.5,3200);            va1x=128*va;
634              liva1.DrawLine(va1x,2200.,va1x,3200.);
635            }
636            li.DrawLine(1024.5,2200.,1024.5,3200.);
637            li.DrawLine(2048.5,2200.,2048.5,3200.);
638        }        }
639        if((nn+1)%2==0) {        if((nn+1)%2==0) {
640            for(int va=1; va<24; va++){
641              va1x=128*va;
642              liva1.DrawLine(va1x,700.,va1x,1700.);
643            }
644          li.DrawLine(1024.5,700,1024.5,1700);          li.DrawLine(1024.5,700,1024.5,1700);
645          li.DrawLine(2048.5,700,2048.5,1700);          li.DrawLine(2048.5,700,2048.5,1700);
646        }        }
647          c1->Update();//draw pads in canvas
648                
649    
650                
# Line 617  void FTrkCalibQLook_EXPERT(TString file, Line 667  void FTrkCalibQLook_EXPERT(TString file,
667        histosig[nn]->GetYaxis()->CenterTitle();        histosig[nn]->GetYaxis()->CenterTitle();
668        histoasig[nn]->SetLineColor(5);        histoasig[nn]->SetLineColor(5);
669        histoasig[nn]->SetLineWidth(1);        histoasig[nn]->SetLineWidth(1);
670        if(ctrk.good0[0]==1 && ctrk.good0[1]==1){        //      if(ctrk.good0[0]==1 && ctrk.good0[1]==1){
671          histosig[nn]->Draw("b");        histosig[nn]->Draw("b");
672          if(nn==1){        maxhist=histosig[nn]->GetMaximum();
673            maxhist=histosig[nn]->GetMaximum();        minhist=0.;
674            b.SetFillColor(6);        b.SetFillColor(19);
675            b.SetFillStyle(3945);        b.SetFillStyle(3945);
676            b.DrawBox(2944.,0.,3060.,maxhist);        if(nn==0){
677            b.DrawBox(0.,minhist,2047.,maxhist);
678            b.SetFillColor(107);        }
679            b.SetFillStyle(3954);        else if(nn==1){
680            b.DrawBox(2816.,0.,2944.,maxhist);          b.DrawBox(128.,minhist,256.,maxhist);
681            b.DrawBox(2048.,0.,2176.,maxhist);          b.DrawBox(384.,minhist,512.,maxhist);
682          }          b.DrawBox(896.,minhist,1024.,maxhist);
683          else if(nn==4){          b.DrawBox(2048.,minhist,2432.,maxhist);
684            maxhist=histosig[nn]->GetMaximum();          b.DrawBox(2816.,minhist,2944.,maxhist);
685            b.SetFillColor(107);          b.DrawBox(2944.,minhist,3070.,maxhist);
686            b.SetFillStyle(3954);        }
687            b.DrawBox(384.,0.,512.,maxhist);        else if(nn==3){
688          }          b.DrawBox(0.,minhist,256.,maxhist);
689          else if(nn==6){          b.DrawBox(2816.,minhist,3070.,maxhist);
690            maxhist=histosig[nn]->GetMaximum();        }
691            b.SetFillColor(6);        else if(nn==4){
692            b.SetFillStyle(3945);          b.DrawBox(256.,minhist,512.,maxhist);
693            b.DrawBox(2560.,0.,2816.,maxhist);          b.DrawBox(1792.,minhist,1920.,maxhist);
694            b.DrawBox(1024.,0.,1535.,maxhist);          b.DrawBox(2816.,minhist,3070.,maxhist);
695                    }
696            b.SetFillColor(107);        else if(nn==5){
697            b.SetFillStyle(3954);          b.DrawBox(0.,minhist,256.,maxhist);
698            b.DrawBox(512.,0.,768.,maxhist);          b.DrawBox(896.,minhist,1024.,maxhist);
699            b.DrawBox(1536.,0.,1792.,maxhist);          b.DrawBox(1664.,minhist,1792.,maxhist);      
700          }        }
701          else if(nn==7){        else if(nn==6){
702            maxhist=histosig[nn]->GetMaximum();          b.DrawBox(512.,minhist,768.,maxhist);
703            b.SetFillColor(107);          b.DrawBox(1024.,minhist,1280.,maxhist);
704            b.SetFillStyle(3954);          b.DrawBox(1280.,minhist,1792.,maxhist);
705            b.DrawBox(512.,0.,768.,maxhist);          b.DrawBox(2560.,minhist,2816.,maxhist);
706          }        }
707          else if(nn==9){        else if(nn==7){
708            maxhist=histosig[nn]->GetMaximum();          b.DrawBox(0.,minhist,1535.,maxhist);
709            b.SetFillColor(107);          b.DrawBox(2024.,minhist,2280.,maxhist);
710            b.SetFillStyle(3954);        }
711            b.DrawBox(256.,0.,384.,maxhist);        else if(nn==8){
712          }          b.DrawBox(512.,minhist,768.,maxhist);
713          else if(nn==11){        }
714            maxhist=histosig[nn]->GetMaximum();        else if(nn==9){
715            b.SetFillColor(6);          b.DrawBox(0.,minhist,128.,maxhist);
716            b.SetFillStyle(3945);          b.DrawBox(256.,minhist,384.,maxhist);
717            b.DrawBox(768.,0.,1024.,maxhist);          b.DrawBox(512.,minhist,640.,maxhist);
718                      b.DrawBox(896.,minhist,1152.,maxhist);
719            b.SetFillColor(107);          b.DrawBox(1280.,minhist,1535.,maxhist);
720            b.SetFillStyle(3954);          b.DrawBox(1664.,minhist,1920.,maxhist);
721            b.DrawBox(0.,0.,512.,maxhist);          b.DrawBox(2048.,minhist,2304.,maxhist);
722            b.DrawBox(1920.,0.,2048.,maxhist);        }
723            b.DrawBox(2176.,0.,2304.,maxhist);        else if(nn==10){
724          }          b.DrawBox(0.,minhist,512.,maxhist);
725        }          b.DrawBox(1024.,minhist,3070.,maxhist);
726        else histosig[nn]->Draw("axis");        }
727          else if(nn==11){
728            b.DrawBox(0.,minhist,512.,maxhist);
729            b.DrawBox(768.,minhist,1024.,maxhist);
730            b.DrawBox(1536.,minhist,1664.,maxhist);
731            b.DrawBox(1920.,minhist,2560.,maxhist);
732            b.DrawBox(2816.,minhist,3070.,maxhist);
733          }                        
734          //       }
735          //       else histosig[nn]->Draw("axis");
736        histoasig[nn]->Draw("same");        histoasig[nn]->Draw("same");
737          for(int va=1; va<24; va++){
738            va1x=128*va;
739            liva1.DrawLine(va1x,0.,va1x,max);
740          }
741        li.DrawLine(1024.5,0,1024.5,max);        li.DrawLine(1024.5,0,1024.5,max);
742        li.DrawLine(2048.5,0,2048.5,max);        li.DrawLine(2048.5,0,2048.5,max);
743          c2->Update();//draw pads in canvas
744                
745        for(int ii=0;ii<3;ii++){        for(int ii=0;ii<3;ii++){
746          sig->cd();          sig->cd();
# Line 691  void FTrkCalibQLook_EXPERT(TString file, Line 755  void FTrkCalibQLook_EXPERT(TString file,
755          histosiglad[nn][ii]->GetXaxis()->SetTitle("SIG (ADC channels)");          histosiglad[nn][ii]->GetXaxis()->SetTitle("SIG (ADC channels)");
756          histosiglad[nn][ii]->GetXaxis()->CenterTitle();          histosiglad[nn][ii]->GetXaxis()->CenterTitle();
757          histosiglad[nn][ii]->Draw("");            histosiglad[nn][ii]->Draw("");  
758        }        }
759              
760      };//end loop on views      };//end loop on views
761      c1->Update();//draw pads in canvas      c1->Update();//draw pads in canvas
762      c2->Update();//draw pads in canvas      c2->Update();//draw pads in canvas

Legend:
Removed from v.1.15  
changed lines
  Added in v.1.32

  ViewVC Help
Powered by ViewVC 1.1.23