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

Diff of /quicklook/tracker/flight/macros/FTrkCalibQLook_BASIC.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, Fri Aug 11 10:24:09 2006 UTC
# Line 2  Line 2 
2   * FTrkCalibQLook_BASIC.cxx   * FTrkCalibQLook_BASIC.cxx
3   *   *
4   * autor: D.Fedele   * autor: D.Fedele
5   * version 2.0   * version v1r08
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
# Line 15  Line 15 
15  #include <TLatex.h>  #include <TLatex.h>
16  #include <TCanvas.h>  #include <TCanvas.h>
17  #include <TGraph.h>  #include <TGraph.h>
18    #include <TFile.h>
19  #include <TTree.h>  #include <TTree.h>
20  #include <TStyle.h>  #include <TStyle.h>
21  #include <TString.h>  #include <TString.h>
# Line 25  Line 26 
26  #include <CalibTrk2Event.h>  #include <CalibTrk2Event.h>
27  //  //
28    
29  void stringcopy(TString& s1, const TString& s2, Int_t from=0, Int_t to=0){      typedef struct caltrk_def{
     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{  
30    Int_t good0[2];    Int_t good0[2];
31    Int_t daqmode[12];    Int_t daqmode[12];
32    Int_t dspnum[12];    Int_t dspnum[12];
# Line 64  void FTrkCalibQLook_BASIC(TString file,I Line 54  void FTrkCalibQLook_BASIC(TString file,I
54  {  {
55    //    //
56    //   obtain information about the data file and select the output dir    //   obtain information about the data file and select the output dir
57    const string filepath=file.Data();    Int_t dwpos = file.Last('/');
58    Int_t dwpos = filepath.rfind("DW_");    Int_t dwpos1 = file.Last('.');
59    Int_t dwpos1 = filepath.find(".root");    TString base,ffile ;
60    TString fpath=(filepath.c_str());    ffile=file(dwpos+1,dwpos1-(dwpos+1));
61    TString base,ffile;    if(dwpos>0) base=file(0,dwpos);
   stringcopy(base,fpath,0,dwpos);  
   stringcopy(ffile,fpath,dwpos,dwpos1);  
62    
63    TString out;    TString out;
64    if(outdir.Length()==0){    if(outdir.Length()==0){
# Line 78  void FTrkCalibQLook_BASIC(TString file,I Line 66  void FTrkCalibQLook_BASIC(TString file,I
66    }else{    }else{
67      out = outdir;      out = outdir;
68    };    };
69        if(out.Last('/')+1<out.Length()) out+="/";
70    
71    //    //
72    // inizialise the variables and open the file    // inizialise the variables and open the file
73    struct caltrk_def ctrk;    struct caltrk_def ctrk;
# Line 212  void FTrkCalibQLook_BASIC(TString file,I Line 201  void FTrkCalibQLook_BASIC(TString file,I
201    // inizialize the limits for simga and pedestall    // inizialize the limits for simga and pedestall
202    for(Int_t i=0;i<12;i++){    for(Int_t i=0;i<12;i++){
203      for(Int_t ii=0;ii<12;ii++){      for(Int_t ii=0;ii<12;ii++){
204        siglimsup[i][ii]=20.;        siglimsup[i][ii]=30.;
205        sigliminf[i][ii]=0.;        sigliminf[i][ii]=1.5;
206        pedlimsup[i][ii]=3500.;        if(!(i%2)){
207        pedliminf[i][ii]=50.;          pedlimsup[i][ii]=3700.;
208            pedliminf[i][ii]=1700.;
209          }
210          else{
211            pedlimsup[i][ii]=2200.;
212            pedliminf[i][ii]=200.;
213          }
214      }      }
215    }    }
216        
# Line 236  void FTrkCalibQLook_BASIC(TString file,I Line 231  void FTrkCalibQLook_BASIC(TString file,I
231        if(trk2->cal_flag[m]!=0) alarm+=1;        if(trk2->cal_flag[m]!=0) alarm+=1;
232      }        }  
233    }    }
234    const Int_t cnum=alarm/30 + 10;    const Int_t cnum=alarm/30 + 100;
235    Int_t flcanvas=1;    Int_t flcanvas=1;
236    Float_t spacep=1.5,space[cnum];    Float_t spacep=1.5,space[cnum];
237    TCanvas *c[cnum];    TCanvas *c[cnum];
     
238    //    //
239    //  create output canvas      //  create output canvas  
240    for(Int_t i=0;i<cnum;i++){    for(Int_t i=0;i<cnum;i++){
# Line 251  void FTrkCalibQLook_BASIC(TString file,I Line 245  void FTrkCalibQLook_BASIC(TString file,I
245      rep<<"FTrkCalibQLook_BASIC_pag"<<i+1;      rep<<"FTrkCalibQLook_BASIC_pag"<<i+1;
246      c[i]=new TCanvas(tit.str().c_str(),rep.str().c_str(),canvasx,canvasy);      c[i]=new TCanvas(tit.str().c_str(),rep.str().c_str(),canvasx,canvasy);
247      c[i]->Range(0,0,100,100);      c[i]->Range(0,0,100,100);
248        c[i]->SetFillColor(10);
249      tzz->DrawLatex(1,98.5,fromfile.str().c_str());      tzz->DrawLatex(1,98.5,fromfile.str().c_str());
250      rep.str("");      rep.str("");
251      rep<<"CALIBRATION REPORT pag"<<i+1;      rep<<"CALIBRATION REPORT pag"<<i+1;
# Line 427  void FTrkCalibQLook_BASIC(TString file,I Line 422  void FTrkCalibQLook_BASIC(TString file,I
422            if(pedav[nn][ii]>pedlimsup[nn][ii] || pedav[nn][ii]<pedliminf[nn][ii]) flpedav[nn][ii]=1;              if(pedav[nn][ii]>pedlimsup[nn][ii] || pedav[nn][ii]<pedliminf[nn][ii]) flpedav[nn][ii]=1;  
423            if(sigav[nn][ii]>siglimsup[nn][ii] || sigav[nn][ii]<sigliminf[nn][ii]) flsigav[nn][ii]=1;            if(sigav[nn][ii]>siglimsup[nn][ii] || sigav[nn][ii]<sigliminf[nn][ii]) flsigav[nn][ii]=1;
424    
425            if(flpedav[nn][ii]==1){            if((nn==1 && ii==11)||(nn==6 && ii==2)||(nn==6 && ii==4)||(nn==6 && ii==5)||(nn==6 && ii==6)||(nn==6 && ii==10)||(nn==11 && ii==3))
426              ok=1;              continue;
427              if(space[wc]<=3){            else{
428                wc+=1;              if(flpedav[nn][ii]==1){
429                flcanvas+=1;                ok=1;
430                  if(space[wc]<=3){
431                    wc+=1;
432                    flcanvas+=1;
433                  }
434                  c[wc]->cd();
435                  tzz->SetTextFont(40);
436                  tzz->SetTextSize(0.02);
437                  tzz->SetTextAlign(13);
438                  tzz->SetTextColor(50);
439                  rep<<"********************************************************************************************************************************";
440                  tzz->DrawLatex(2,space[wc],rep.str().c_str());
441                  rep.str("");
442                  space[wc]-=spacep;
443                  rep<<"WARNING >>> CALIBRATION pkt "<<i+1<<" -->CalibTrk"<<(nn+1)%2+1<<" at OBT: "<<OBT[(nn+1)%2]<<"-->DSP "<<nn+1<<" -VA1 "<<2*ii+1<<"-"<<2*ii+2<<" --> <PED>= "<<pedav[nn][ii];
444                  tzz->DrawLatex(2,space[wc],rep.str().c_str());
445                  rep.str("");
446                  space[wc]-=spacep;
447              }              }
448              c[wc]->cd();                
449              tzz->SetTextFont(40);              if(flsigav[nn][ii]==1){
450              tzz->SetTextSize(0.02);                ok=1;
451              tzz->SetTextAlign(13);                if(space[wc]<=3){
452              tzz->SetTextColor(50);                  wc+=1;
453              rep<<"********************************************************************************************************************************";                  flcanvas+=1;
454              tzz->DrawLatex(2,space[wc],rep.str().c_str());                }
455              rep.str("");                c[wc]->cd();
456              space[wc]-=spacep;                tzz->SetTextFont(40);
457              rep<<"WARNING >>> CALIBRATION pkt "<<i+1<<" -->CalibTrk"<<(nn+1)%2+1<<" at OBT: "<<OBT[(nn+1)%2]<<"-->DSP "<<nn+1<<" -VA1 "<<2*ii+1<<"-"<<2*ii+2<<" --> <PED>= "<<pedav[nn][ii];                tzz->SetTextSize(0.02);
458              tzz->DrawLatex(2,space[wc],rep.str().c_str());                tzz->SetTextAlign(13);
459              rep.str("");                tzz->SetTextColor(50);
460              space[wc]-=spacep;                rep<<"********************************************************************************************************************************";
461            }                tzz->DrawLatex(2,space[wc],rep.str().c_str());
462                  rep.str("");
463            if(flsigav[nn][ii]==1){                space[wc]-=spacep;
464              ok=1;                rep<<"WARNING >>> CALIBRATION pkt "<<i+1<<" -->CalibTrk"<<(nn+1)%2+1<<" at OBT: "<<OBT[(nn+1)%2]<<"-->DSP "<<nn+1<<" -VA1 "<<2*ii+1<<"-"<<2*ii+2<<" --> <SIG>= "<<sigav[nn][ii];
465              if(space[wc]<=3){                tzz->DrawLatex(2,space[wc],rep.str().c_str());
466                wc+=1;                rep.str("");
467                flcanvas+=1;                space[wc]-=spacep;
468              }              }
             c[wc]->cd();  
             tzz->SetTextFont(40);  
             tzz->SetTextSize(0.02);  
             tzz->SetTextAlign(13);  
             tzz->SetTextColor(50);  
             rep<<"********************************************************************************************************************************";  
             tzz->DrawLatex(2,space[wc],rep.str().c_str());  
             rep.str("");  
             space[wc]-=spacep;  
             rep<<"WARNING >>> CALIBRATION pkt "<<i+1<<" -->CalibTrk"<<(nn+1)%2+1<<" at OBT: "<<OBT[(nn+1)%2]<<"-->DSP "<<nn+1<<" -VA1 "<<2*ii+1<<"-"<<2*ii+2<<" --> <SIG>= "<<sigav[nn][ii];  
             tzz->DrawLatex(2,space[wc],rep.str().c_str());  
             rep.str("");  
             space[wc]-=spacep;  
469            }            }
470          }          }
471        }        }
472      }      }
473            if(ok==0 && ctrk.good0[0]==1 && ctrk.good0[1]==1){
     if(ok==0 && ctrk.good0[0]==1 && ctrk.good0[1]==1){    
474        if(space[wc]<=10){        if(space[wc]<=10){
475          wc+=1;          wc+=1;
476          flcanvas+=1;          flcanvas+=1;

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

  ViewVC Help
Powered by ViewVC 1.1.23