/[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.1 by pam-fi, Wed May 10 10:06:54 2006 UTC revision 1.6 by pam-fi, Thu Jun 29 11:11:59 2006 UTC
# Line 1  Line 1 
1  /**  /**
2   * FTrkCalibQLookExpert.cpp   * FTrkCalibQLookExpert.cxx
3   *   *
4   * autor: D.Fedele   * autor: D.Fedele
5   * version 2.0   * version v1r04
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 18  Line 18 
18  #include <TPaveText.h>  #include <TPaveText.h>
19  #include <TLatex.h>  #include <TLatex.h>
20  #include <TCanvas.h>  #include <TCanvas.h>
21    #include <TFile.h>
22  #include <TTree.h>  #include <TTree.h>
23  #include <TGraph.h>  #include <TGraph.h>
24  #include <TStyle.h>  #include <TStyle.h>
# Line 29  Line 30 
30  #include <CalibTrk2Event.h>  #include <CalibTrk2Event.h>
31  //  //
32    
33    typedef struct caltrk_def{
 void stringcopy(TString& s1, const TString& s2, Int_t from=0, Int_t to=0){      
     if ( to == 0 ){  
         Int_t t2length = s2.Length();  
         s1 = "";  
         to = t2length;  
     };  
     for (Int_t i = from; i<to; i++){  
         s1.Append(s2[i],1);  
     };  
 };  
   
  typedef struct caltrk_def{  
34    Int_t good0[2];    Int_t good0[2];
35    Int_t daqmode[12];    Int_t daqmode[12];
36    Int_t dspnum[12];    Int_t dspnum[12];
# Line 70  void FTrkCalibQLook_EXPERT(TString file, Line 59  void FTrkCalibQLook_EXPERT(TString file,
59    //    //
60    //   obtain information about the data file and select the output dir    //   obtain information about the data file and select the output dir
61    const string filepath=file.Data();    const string filepath=file.Data();
62    Int_t dwpos = filepath.rfind("DW_");    Int_t dwpos = file.Last('/');
63    Int_t dwpos1 = filepath.find(".root");    Int_t dwpos1 = file.Last('.');
64    TString fpath=(filepath.c_str());    TString base,ffile ;
65    TString base,ffile;    ffile=file(dwpos+1,dwpos1-(dwpos+1));
66    stringcopy(base,fpath,0,dwpos);    if(dwpos>0) base=file(0,dwpos);
   stringcopy(ffile,fpath,dwpos,dwpos1);  
67    
68    TString out;    TString out;
69    if(outdir.Length()==0){    if(outdir.Length()==0){
# Line 83  void FTrkCalibQLook_EXPERT(TString file, Line 71  void FTrkCalibQLook_EXPERT(TString file,
71    }else{    }else{
72      out = outdir;      out = outdir;
73    }    }
74      if(out.Last('/')+1<out.Length()) out+="/";
75    
76    //    //
77    // inizialise the variables and open the file    // inizialise the variables and open the file
# Line 306  void FTrkCalibQLook_EXPERT(TString file, Line 295  void FTrkCalibQLook_EXPERT(TString file,
295      TH1F *histoasig[12];           //histos of sigma      TH1F *histoasig[12];           //histos of sigma
296      TH1F *histoaped[12];          //histos of pedestals      TH1F *histoaped[12];          //histos of pedestals
297            
298      Double_t posy = 0.95;    // up y-coord - top pads      Float_t posy = 0.95;    // up y-coord - top pads
299      Double_t hpad = 0.15;   // pad height      Float_t hpad = 0.15;   // pad height
300      Double_t posx1=0;          // left  x-coord - pad column      Float_t posx1=0;          // left  x-coord - pad column
301      Double_t posx2=0;          // right x-coord - pad olumn      Float_t posx2=0;          // right x-coord - pad olumn
302      Double_t posx0=0;          //       x-coord - column division      Float_t posx0=0;          //       x-coord - column division
303      Double_t wrel = 0.6;     // relative x size of first sub-column      Float_t wrel = 0.6;     // relative x size of first sub-column
304      Double_t marg = 0.004;   // margin among pads      Float_t marg = 0.004;   // margin among pads
305      stringstream title;      stringstream title;
306      stringstream hid;      stringstream hid;
307    
# Line 335  void FTrkCalibQLook_EXPERT(TString file, Line 324  void FTrkCalibQLook_EXPERT(TString file,
324        /* -----------> HISTOGRAMS          */        /* -----------> HISTOGRAMS          */
325        /* calibration parameters */        /* calibration parameters */
326        title<<"DSP "<<n+1;        title<<"DSP "<<n+1;
327        hid<<"h"<<n;        hid<<"h"<<n<<"i"<<i;
328        histosig[n] = new TH1F(hid.str().c_str(),title.str().c_str(),3072,0.5,3072.5);        histosig[n] = new TH1F(hid.str().c_str(),title.str().c_str(),3072,0.5,3072.5);
329        hid.str("");        hid.str("");
330        hid<<"hh"<<n;        hid<<"hh"<<n<<"i"<<i;
331        histoped[n] = new TH1F(hid.str().c_str(),title.str().c_str(),3072,0.5,3072.5);        histoped[n] = new TH1F(hid.str().c_str(),title.str().c_str(),3072,0.5,3072.5);
332        hid.str("");        hid.str("");
333        hid<<"hhh"<<n;        hid<<"hhh"<<n<<"i"<<i;
334        title.str("");        title.str("");
335        hid.str("");        hid.str("");
336        /* AVERAGE calibration parameters */            /* AVERAGE calibration parameters */    
337        hid<<"ah"<<n;        hid<<"ah"<<n<<"i"<<i;
338        histoasig[n] = new TH1F(hid.str().c_str(),title.str().c_str(),3,0.5,3072.5);        histoasig[n] = new TH1F(hid.str().c_str(),title.str().c_str(),3,0.5,3072.5);
339        hid.str("");        hid.str("");
340        hid<<"ahh"<<n;        hid<<"ahh"<<n<<"i"<<i;
341        histoaped[n] = new TH1F(hid.str().c_str(),title.str().c_str(),3,0.5,3072.5);        histoaped[n] = new TH1F(hid.str().c_str(),title.str().c_str(),3,0.5,3072.5);
342        hid.str("");        hid.str("");
343      };                     //end loop on views      };                     //end loop on views
# Line 453  void FTrkCalibQLook_EXPERT(TString file, Line 442  void FTrkCalibQLook_EXPERT(TString file,
442        li.SetLineStyle(3);        li.SetLineStyle(3);
443        li.SetLineWidth(2);        li.SetLineWidth(2);
444                
445                Float_t maxhist=0;
446          TBox b;
447          b.SetFillColor(6);
448          b.SetFillStyle(3945);
449        /* plot PEDESTAL */        /* plot PEDESTAL */
450        c1->cd();        c1->cd();
451        trkpadtext[nn]->Draw();        trkpadtext[nn]->Draw();
# Line 466  void FTrkCalibQLook_EXPERT(TString file, Line 458  void FTrkCalibQLook_EXPERT(TString file,
458        histoped[nn]->SetLineWidth(1);        histoped[nn]->SetLineWidth(1);
459        histoped[nn]->GetYaxis()->SetTitle("PED (ADC channels)");        histoped[nn]->GetYaxis()->SetTitle("PED (ADC channels)");
460        histoped[nn]->GetYaxis()->CenterTitle();        histoped[nn]->GetYaxis()->CenterTitle();
461        if((nn+1)%2==1)  histoped[nn]->GetYaxis()->SetRangeUser(2500,3200);        if((nn+1)%2==1)  histoped[nn]->GetYaxis()->SetRangeUser(2200,3200);
462        if((nn+1)%2==0)  histoped[nn]->GetYaxis()->SetRangeUser(1000,1700);        if((nn+1)%2==0)  histoped[nn]->GetYaxis()->SetRangeUser(700,1700);
463        histoaped[nn]->SetLineColor(5);        histoaped[nn]->SetLineColor(5);
464        histoaped[nn]->SetLineWidth(1);        histoaped[nn]->SetLineWidth(1);
465        if(ctrk.good0[0]==1 && ctrk.good0[1]==1) histoped[nn]->Draw("b");        if(ctrk.good0[0]==1 && ctrk.good0[1]==1){
466            histoped[nn]->Draw("b");
467            if(nn==1){
468              maxhist=histoped[nn]->GetMaximum();
469              b.DrawBox(2816.,700.,3060.,maxhist);
470            }
471            else if(nn==6){
472              maxhist=histoped[nn]->GetMaximum();
473              b.DrawBox(2560.,2200.,2816.,maxhist);
474              b.DrawBox(512.,2200.,768.,maxhist);
475              b.DrawBox(1024.,2200.,1792.,maxhist);
476            }
477            else if(nn==11){
478              maxhist=histoped[nn]->GetMaximum();
479              b.DrawBox(768.,700.,1024.,maxhist);
480            }
481          }
482        else histoped[nn]->Draw("axis");        else histoped[nn]->Draw("axis");
483        histoaped[nn]->Draw("same");        histoaped[nn]->Draw("same");
484        if((nn+1)%2==1) {        if((nn+1)%2==1) {
485          li.DrawLine(1024.5,2500,1024.5,3200);          li.DrawLine(1024.5,2200,1024.5,3200);
486          li.DrawLine(2048.5,2500,2048.5,3200);          li.DrawLine(2048.5,2200,2048.5,3200);
487        }        }
488        if((nn+1)%2==0) {        if((nn+1)%2==0) {
489          li.DrawLine(1024.5,1000,1024.5,1700);          li.DrawLine(1024.5,700,1024.5,1700);
490          li.DrawLine(2048.5,1000,2048.5,1700);          li.DrawLine(2048.5,700,2048.5,1700);
491        }        }
492                
493    
494                
495        /* plot SIGMA */        /* plot SIGMA */
496        Double_t max=500.;        Float_t max=500.;
497        c2->cd();        c2->cd();
498        trkpadtext[nn]->Draw();        trkpadtext[nn]->Draw();
499        trkpad2[nn]->SetLogy();        trkpad2[nn]->SetLogy();
# Line 501  void FTrkCalibQLook_EXPERT(TString file, Line 510  void FTrkCalibQLook_EXPERT(TString file,
510        histosig[nn]->GetYaxis()->CenterTitle();        histosig[nn]->GetYaxis()->CenterTitle();
511        histoasig[nn]->SetLineColor(5);        histoasig[nn]->SetLineColor(5);
512        histoasig[nn]->SetLineWidth(1);        histoasig[nn]->SetLineWidth(1);
513        if(ctrk.good0[0]==1 && ctrk.good0[1]==1) histosig[nn]->Draw("b");        if(ctrk.good0[0]==1 && ctrk.good0[1]==1){
514            histosig[nn]->Draw("b");
515            if(nn==1){
516              maxhist=histosig[nn]->GetMaximum();
517              b.DrawBox(2816.,0.,3060.,maxhist);
518            }
519            else if(nn==6){
520              maxhist=histosig[nn]->GetMaximum();
521              b.DrawBox(2560.,0.,2816.,maxhist);
522              b.DrawBox(512.,0.,768.,maxhist);
523              b.DrawBox(1024.,0.,1792.,maxhist);
524            }
525            else if(nn==11){
526              maxhist=histosig[nn]->GetMaximum();
527              b.DrawBox(768.,0.,1024.,maxhist);
528            }
529          }
530        else histosig[nn]->Draw("axis");        else histosig[nn]->Draw("axis");
531        histoasig[nn]->Draw("same");        histoasig[nn]->Draw("same");
532        li.DrawLine(1024.5,0,1024.5,max);        li.DrawLine(1024.5,0,1024.5,max);
533        li.DrawLine(2048.5,0,2048.5,max);        li.DrawLine(2048.5,0,2048.5,max);
534                  
535    
536    
537      };//end loop on views      };//end loop on views
538            
539      c1->Update();//draw pads in canvas      c1->Update();//draw pads in canvas

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.6

  ViewVC Help
Powered by ViewVC 1.1.23