/[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.6 by pam-fi, Thu Jun 29 11:11:59 2006 UTC revision 1.31 by pam-fi, Wed Jan 2 15:57:10 2008 UTC
# Line 2  Line 2 
2   * FTrkCalibQLookExpert.cxx   * FTrkCalibQLookExpert.cxx
3   *   *
4   * autor: D.Fedele   * autor: D.Fedele
5   * version v1r04   * 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 58  void FTrkCalibQLook_EXPERT(TString file, Line 58  void FTrkCalibQLook_EXPERT(TString file,
58  {    {  
59    //    //
60    //   obtain information about the data file and select the output dir    //   obtain information about the data file and select the output dir
   const string filepath=file.Data();  
61    Int_t dwpos = file.Last('/');    Int_t dwpos = file.Last('/');
62    Int_t dwpos1 = file.Last('.');    Int_t dwpos1 = file.Last('.');
63    TString base,ffile ;    TString base,ffile ;
# Line 78  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], HOBT=0, TOBT=0;    ULong_t FOBT[2];
81        
82    FOBT[0]=0;    FOBT[0]=0;
83    FOBT[1]=0;    FOBT[1]=0;
# Line 122  void FTrkCalibQLook_EXPERT(TString file, Line 121  void FTrkCalibQLook_EXPERT(TString file,
121    pamela::EventHeader *eh1=0,*eh2=0,*eh4=0,*eh3=0;    pamela::EventHeader *eh1=0,*eh2=0,*eh4=0,*eh3=0;
122    pamela::PscuHeader *ph=0;    pamela::PscuHeader *ph=0;
123    pamela::CalibTrk1Event *trk1 = 0;    pamela::CalibTrk1Event *trk1 = 0;
124    pamela::CalibTrk2Event *trk2 = 0;        pamela::CalibTrk2Event *trk2 = 0;
125      pamela::EventCounter *cod=0;  
126      
127      pamela::PacketType *pctp=0;  
128        
129    hotr = (TTree*)calibFile->Get("CalibHeader");    hotr = (TTree*)calibFile->Get("CalibHeader");
130    hotr->SetBranchAddress("Header", &eh4);    hotr->SetBranchAddress("Header", &eh4);
# Line 174  void FTrkCalibQLook_EXPERT(TString file, Line 176  void FTrkCalibQLook_EXPERT(TString file,
176      } else if (toevent > nevents) {              } else if (toevent > nevents) {        
177        maxevent = nevents;        maxevent = nevents;
178      } else {            } else {      
179        maxevent = fromevent;        maxevent = nevents;
180      };      };
181    };    };
182            
# Line 184  void FTrkCalibQLook_EXPERT(TString file, Line 186  void FTrkCalibQLook_EXPERT(TString file,
186    //    //
187    //**********************************************************************    //**********************************************************************
188            
189      Int_t hcevent=hotr->GetEntries();
190      Int_t tcevent=totr->GetEntries();
191      ULong_t HOBT[hcevent], TOBT[tcevent];
192      for (Int_t i = 0; i < hcevent; i++){
193        hotr->GetEntry(i);
194        ph = eh4->GetPscuHeader();
195        HOBT[i]= ph->GetOrbitalTime();
196      }
197      for (Int_t i = 0; i < tcevent; i++){
198        totr->GetEntry(i);
199        ph = eh3->GetPscuHeader();
200        TOBT[i]= ph->GetOrbitalTime();
201      }
202        
203    printf("\n Scan of calibration packets from %i to %i ... \n\n",minevent+1,maxevent);    printf("\n Scan of calibration packets from %i to %i ... \n\n",minevent+1,maxevent);
204    for (Int_t i = minevent; i < maxevent; i++){        for (Int_t i = minevent; i < maxevent; i++){    
205            
206      otr1->GetEntry(i);      otr1->GetEntry(i);
207      otr2->GetEntry(i);      otr2->GetEntry(i);
208      totr->GetEntry(i);      
     hotr->GetEntry(i);  
     ph = eh4->GetPscuHeader();  
     HOBT= ph->GetOrbitalTime();  
     ph = eh3->GetPscuHeader();  
     TOBT= ph->GetOrbitalTime();  
         
209      ctrk.good0[0]=trk1->good0;      ctrk.good0[0]=trk1->good0;
210      ctrk.good0[1]=trk2->good0;      ctrk.good0[1]=trk2->good0;
211      for (Int_t m = 0; m < 6; m++){      for (Int_t m = 0; m < 6; m++){
212        ph = eh1->GetPscuHeader();        ph = eh1->GetPscuHeader();
213          cod = eh1->GetCounter();
214        FOBT[0]= ph->GetOrbitalTime();        FOBT[0]= ph->GetOrbitalTime();
215        ctrk.daqmode[trk1->DSPnumber[m]-1]=trk1->DAQmode[m];        if(trk1->DSPnumber[m]>0){
216        ctrk.dspnum[trk1->DSPnumber[m]-1]=trk1->DSPnumber[m];          if(trk1->DSPnumber[m]<13){
217        ctrk.calibnum[trk1->DSPnumber[m]-1]=trk1->calibnumber[m];            ctrk.daqmode[trk1->DSPnumber[m]-1]=trk1->DAQmode[m];
218        ctrk.ncalev[trk1->DSPnumber[m]-1]=trk1->ncalib_event[m];            ctrk.dspnum[trk1->DSPnumber[m]-1]=trk1->DSPnumber[m];
219        ctrk.ped1[trk1->DSPnumber[m]-1]=trk1->ped_l1[m];            ctrk.calibnum[trk1->DSPnumber[m]-1]=trk1->calibnumber[m];
220        ctrk.ped2[trk1->DSPnumber[m]-1]=trk1->ped_l2[m];            ctrk.ncalev[trk1->DSPnumber[m]-1]=trk1->ncalib_event[m];
221        ctrk.ped3[trk1->DSPnumber[m]-1]=trk1->ped_l3[m];            ctrk.ped1[trk1->DSPnumber[m]-1]=trk1->ped_l1[m];
222        ctrk.sig1[trk1->DSPnumber[m]-1]=trk1->sig_l1[m];            ctrk.ped2[trk1->DSPnumber[m]-1]=trk1->ped_l2[m];
223        ctrk.sig2[trk1->DSPnumber[m]-1]=trk1->sig_l2[m];            ctrk.ped3[trk1->DSPnumber[m]-1]=trk1->ped_l3[m];
224        ctrk.sig3[trk1->DSPnumber[m]-1]=trk1->sig_l3[m];            ctrk.sig1[trk1->DSPnumber[m]-1]=trk1->sig_l1[m];
225        ctrk.nbad1[trk1->DSPnumber[m]-1]=trk1->nbad_l1[m];            ctrk.sig2[trk1->DSPnumber[m]-1]=trk1->sig_l2[m];
226        ctrk.nbad2[trk1->DSPnumber[m]-1]=trk1->nbad_l2[m];            ctrk.sig3[trk1->DSPnumber[m]-1]=trk1->sig_l3[m];
227        ctrk.nbad3[trk1->DSPnumber[m]-1]=trk1->nbad_l3[m];            ctrk.nbad1[trk1->DSPnumber[m]-1]=trk1->nbad_l1[m];
228        ctrk.calfl[trk1->DSPnumber[m]-1]=trk1->cal_flag[m];            ctrk.nbad2[trk1->DSPnumber[m]-1]=trk1->nbad_l2[m];
229        ctrk.crc_c[trk1->DSPnumber[m]-1][0]=trk1->crc_cal[m][0];            ctrk.nbad3[trk1->DSPnumber[m]-1]=trk1->nbad_l3[m];
230        ctrk.crc_c[trk1->DSPnumber[m]-1][1]=trk1->crc_cal[m][1];            ctrk.calfl[trk1->DSPnumber[m]-1]=trk1->cal_flag[m];
231        ctrk.crc_c[trk1->DSPnumber[m]-1][2]=trk1->crc_cal[m][2];            ctrk.crc_c[trk1->DSPnumber[m]-1][0]=trk1->crc_cal[m][0];
232        ctrk.crc_hc[trk1->DSPnumber[m]-1]=trk1->crc_hcal[m];            ctrk.crc_c[trk1->DSPnumber[m]-1][1]=trk1->crc_cal[m][1];
233        for (Int_t j = 0; j < 3072; j++){            ctrk.crc_c[trk1->DSPnumber[m]-1][2]=trk1->crc_cal[m][2];
234          ctrk.dspped[trk1->DSPnumber[m]-1][j]=trk1->DSPped_par[m][j];            ctrk.crc_hc[trk1->DSPnumber[m]-1]=trk1->crc_hcal[m];
235          ctrk.dspsig[trk1->DSPnumber[m]-1][j]=trk1->DSPsig_par[m][j];            for (Int_t j = 0; j < 3072; j++){
236          ctrk.dspbad[trk1->DSPnumber[m]-1][j]=trk1->DSPbad_par[m][j];              ctrk.dspped[trk1->DSPnumber[m]-1][j]=trk1->DSPped_par[m][j];
237        };              ctrk.dspsig[trk1->DSPnumber[m]-1][j]=trk1->DSPsig_par[m][j];
238                ctrk.dspbad[trk1->DSPnumber[m]-1][j]=trk1->DSPbad_par[m][j];
239              };
240            }
241          }
242        ph = eh2->GetPscuHeader();        ph = eh2->GetPscuHeader();
243        FOBT[1]= ph->GetOrbitalTime();        FOBT[1]= ph->GetOrbitalTime();
244        ctrk.daqmode[trk2->DSPnumber[m]-1]=trk2->DAQmode[m];        if(trk2->DSPnumber[m]>0){
245        ctrk.dspnum[trk2->DSPnumber[m]-1]=trk2->DSPnumber[m];          if(trk2->DSPnumber[m]<13){
246        ctrk.calibnum[trk2->DSPnumber[m]-1]=trk2->calibnumber[m];            ctrk.daqmode[trk2->DSPnumber[m]-1]=trk2->DAQmode[m];
247        ctrk.ncalev[trk2->DSPnumber[m]-1]=trk2->ncalib_event[m];            ctrk.dspnum[trk2->DSPnumber[m]-1]=trk2->DSPnumber[m];
248        ctrk.ped1[trk2->DSPnumber[m]-1]=trk2->ped_l1[m];            ctrk.calibnum[trk2->DSPnumber[m]-1]=trk2->calibnumber[m];
249        ctrk.ped2[trk2->DSPnumber[m]-1]=trk2->ped_l2[m];            ctrk.ncalev[trk2->DSPnumber[m]-1]=trk2->ncalib_event[m];
250        ctrk.ped3[trk2->DSPnumber[m]-1]=trk2->ped_l3[m];            ctrk.ped1[trk2->DSPnumber[m]-1]=trk2->ped_l1[m];
251        ctrk.sig1[trk2->DSPnumber[m]-1]=trk2->sig_l1[m];            ctrk.ped2[trk2->DSPnumber[m]-1]=trk2->ped_l2[m];
252        ctrk.sig2[trk2->DSPnumber[m]-1]=trk2->sig_l2[m];            ctrk.ped3[trk2->DSPnumber[m]-1]=trk2->ped_l3[m];
253        ctrk.sig3[trk2->DSPnumber[m]-1]=trk2->sig_l3[m];            ctrk.sig1[trk2->DSPnumber[m]-1]=trk2->sig_l1[m];
254        ctrk.nbad1[trk2->DSPnumber[m]-1]=trk2->nbad_l1[m];            ctrk.sig2[trk2->DSPnumber[m]-1]=trk2->sig_l2[m];
255        ctrk.nbad2[trk2->DSPnumber[m]-1]=trk2->nbad_l2[m];            ctrk.sig3[trk2->DSPnumber[m]-1]=trk2->sig_l3[m];
256        ctrk.nbad3[trk2->DSPnumber[m]-1]=trk2->nbad_l3[m];            ctrk.nbad1[trk2->DSPnumber[m]-1]=trk2->nbad_l1[m];
257        ctrk.calfl[trk2->DSPnumber[m]-1]=trk2->cal_flag[m];            ctrk.nbad2[trk2->DSPnumber[m]-1]=trk2->nbad_l2[m];
258        ctrk.crc_c[trk1->DSPnumber[m]-1][0]=trk2->crc_cal[m][0];            ctrk.nbad3[trk2->DSPnumber[m]-1]=trk2->nbad_l3[m];
259        ctrk.crc_c[trk1->DSPnumber[m]-1][1]=trk2->crc_cal[m][1];            ctrk.calfl[trk2->DSPnumber[m]-1]=trk2->cal_flag[m];
260        ctrk.crc_c[trk1->DSPnumber[m]-1][2]=trk2->crc_cal[m][2];            ctrk.crc_c[trk1->DSPnumber[m]-1][0]=trk2->crc_cal[m][0];
261        ctrk.crc_hc[trk1->DSPnumber[m]-1]=trk2->crc_hcal[m];            ctrk.crc_c[trk1->DSPnumber[m]-1][1]=trk2->crc_cal[m][1];
262        for (Int_t j = 0; j < 3072; j++){            ctrk.crc_c[trk1->DSPnumber[m]-1][2]=trk2->crc_cal[m][2];
263          ctrk.dspped[trk2->DSPnumber[m]-1][j]=trk2->DSPped_par[m][j];            ctrk.crc_hc[trk1->DSPnumber[m]-1]=trk2->crc_hcal[m];
264          ctrk.dspsig[trk2->DSPnumber[m]-1][j]=trk2->DSPsig_par[m][j];            for (Int_t j = 0; j < 3072; j++){
265          ctrk.dspbad[trk2->DSPnumber[m]-1][j]=trk2->DSPbad_par[m][j];              ctrk.dspped[trk2->DSPnumber[m]-1][j]=trk2->DSPped_par[m][j];
266        };              ctrk.dspsig[trk2->DSPnumber[m]-1][j]=trk2->DSPsig_par[m][j];
267      };              ctrk.dspbad[trk2->DSPnumber[m]-1][j]=trk2->DSPbad_par[m][j];
268              }
269            }
270          }
271        }
272                                
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<<" -- Calib pkt OBT= "<<FOBT[0]<<" -- CalibTrailer OBT= "<<TOBT<<" --";      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            
282      gStyle->SetLabelSize(0.08,"x");      gStyle->SetLabelSize(0.07,"x");
283      gStyle->SetLabelSize(0.08,"y");      gStyle->SetLabelSize(0.07,"y");
284      gStyle->SetTitleFillColor(10);      gStyle->SetTitleFillColor(10);
285      gStyle->SetTitleFontSize(0.1);      gStyle->SetTitleFontSize(0.08);
286      gStyle->SetTitleOffset(0.8,"y");      gStyle->SetTitleOffset(0.8,"y");
287      gStyle->SetTitleOffset(1.,"x");      gStyle->SetTitleOffset(0.9,"x");
288      gStyle->SetTitleSize(0.06,"y");      gStyle->SetTitleSize(0.06,"y");
289      gStyle->SetTitleSize(0.06,"x");      gStyle->SetTitleSize(0.06,"x");
290      gStyle->SetOptStat(0);      gStyle->SetOptStat(101110);  
291        gStyle->SetStatX(0.9);  
292        gStyle->SetStatW(0.4);    
293        gStyle->SetStatColor(10);
294        gStyle->SetStatFontSize(0.1);
295            
296      //      //
297      //  draw display area      //  draw display area
298    
299      TLatex *tzz=new TLatex();      TLatex *tzz=new TLatex();
300      tzz->SetTextFont(32);      tzz->SetTextFont(32);
301      tzz->SetTextColor(1);      tzz->SetTextColor(1);
# Line 280  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<<"Boxes so colored point out chips broken before the launch and never resumed";
312        tzz->SetTextColor(6);
313        tzz->SetTextSize(0.018);
314        //    tzz->DrawLatex(.5,.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);
341        sig->SetFillColor(10);
342        tzz->SetTextColor(1);
343        tzz->DrawLatex(.01,.98,fromfile.str().c_str());
344        tzz->DrawLatex(.85,.97,"Histograms of the sigmas");
345        
346    
347    
348      //  draw pads      //  draw pads
349      TPad *trkpad1[12],*trkpad2[12];        //pad for histos      TPad *trkpad1[12],*trkpad2[12],*trkpad3[36];        //pad for histos
350      TPaveText *trkpadtext[12]; //pad for header      TPaveText *trkpadtext[12]; //pad for header
351      TH1F *histosig[12];           //histos of sigma      TH1F *histosig[12];           //histos of sigma
352      TH1F *histoped[12];          //histos of pedestals        TH1F *histoped[12];          //histos of pedestals  
353      TH1F *histoasig[12];           //histos of sigma      TH1F *histoasig[12];           //histos of sigma
354      TH1F *histoaped[12];          //histos of pedestals      TH1F *histoaped[12];          //histos of pedestals
355    
356        TH1F *histosiglad[12][3];           //histos of sigma
357        stringstream title;
358        stringstream hid;
359            
360      Float_t posy = 0.95;    // up y-coord - top pads      Float_t posy = 0.95;    // up y-coord - top pads
361      Float_t hpad = 0.15;   // pad height      Float_t hpad = 0.15;   // pad height
# Line 302  void FTrkCalibQLook_EXPERT(TString file, Line 364  void FTrkCalibQLook_EXPERT(TString file,
364      Float_t posx0=0;          //       x-coord - column division      Float_t posx0=0;          //       x-coord - column division
365      Float_t wrel = 0.6;     // relative x size of first sub-column      Float_t wrel = 0.6;     // relative x size of first sub-column
366      Float_t marg = 0.004;   // margin among pads      Float_t marg = 0.004;   // margin among pads
     stringstream title;  
     stringstream hid;  
367    
368        
369      for(Int_t n = 0; n<12; n++){      for(Int_t n = 0; n<12; n++){
370        if ( (n+1)%2 ) {        if ( (n+1)%2 ) {
371          if(n>1)posy = posy-(marg*2+hpad);          if(n>1)posy = posy-(marg*2+hpad);
372          posx1 = marg;          posx1 = marg;
373          posx2 = 0.5 - marg;          posx2 = 0.5 - marg;
374          posx0 = 0.5*wrel;          posx0 = 0.5*wrel;
375    
376        } else {        } else {
377          posx1 = posx1 + 0.5;          posx1 = posx1 + 0.5;
378          posx2 = posx2 + 0.5;          posx2 = posx2 + 0.5;
379          posx0 = posx0 + 0.5;          posx0 = posx0 + 0.5;
380    
381        };        };
382        /* -----------> pad for histograms  */        /* -----------> pad for histograms  */
383        trkpad1[n] = new TPad("pad1"," ",posx1,posy-hpad,posx0-marg,posy,18,0,0);        trkpad1[n] = new TPad("pad1"," ",posx1,posy-hpad,posx0-marg,posy,18,0,0);
# Line 331  void FTrkCalibQLook_EXPERT(TString file, Line 394  void FTrkCalibQLook_EXPERT(TString file,
394        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);
395        hid.str("");        hid.str("");
396        hid<<"hhh"<<n<<"i"<<i;        hid<<"hhh"<<n<<"i"<<i;
       title.str("");  
397        hid.str("");        hid.str("");
398        /* AVERAGE calibration parameters */            /* AVERAGE calibration parameters */    
399        hid<<"ah"<<n<<"i"<<i;        hid<<"ah"<<n<<"i"<<i;
# Line 340  void FTrkCalibQLook_EXPERT(TString file, Line 402  void FTrkCalibQLook_EXPERT(TString file,
402        hid<<"ahh"<<n<<"i"<<i;        hid<<"ahh"<<n<<"i"<<i;
403        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);
404        hid.str("");        hid.str("");
405          for(int ii=0;ii<3;ii++){
406            title.str("");
407            title<<"DSP "<<n+1<<" / Lad "<<ii+1;
408            hid<<"hhhh"<<n<<"i"<<i<<"ii"<<ii;
409            histosiglad[n][ii] = new TH1F(hid.str().c_str(),title.str().c_str(),32,-0.5,30.5);
410            hid.str("");
411          }
412          title.str("");
413      };                     //end loop on views      };                     //end loop on views
414        
415        Float_t tposy = 0.95;    // up y-coord - top pads
416        Float_t thpad = 0.;   // pad height
417        Float_t tposx1=0;          // left  x-coord - pad column
418        Float_t tposx0=0;          //       x-coord - column division
419        Float_t twrel = 0.;     // relative x size of first sub-column
420        Float_t tmarg = 0.002;   // margin among pads
421        thpad = (tposy-tmarg*11)/6;
422        twrel = (1-tmarg*12)/6;
423    
424        for(Int_t n = 0; n<36; n++){
425          if ( (n+1)%6==1 ) {
426            if(n>1) tposy = tposy-(tmarg*2+thpad);
427            tposx1 = tmarg;
428            tposx0 = tposx1 + twrel;
429          } else {
430            tposx1 = tposx0 + 2*tmarg;
431            tposx0 = tposx1 + twrel;
432          }
433          trkpad3[n]= new TPad("pad3"," ",tposx1,tposy-thpad,tposx0,tposy,18,0,0);
434        }
435        
436      
437      stringstream message;      stringstream message;
438      
439      //--------------------------------      //--------------------------------
440      //CHECK CALIBRATION procedure      //CHECK CALIBRATION procedure
441      //--------------------------------      //--------------------------------
# Line 352  void FTrkCalibQLook_EXPERT(TString file, Line 443  void FTrkCalibQLook_EXPERT(TString file,
443      Int_t calok = 0;//BAD        Int_t calok = 0;//BAD  
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 426  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[n][j]);
525            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[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;
       b.SetFillColor(6);  
       b.SetFillStyle(3945);  
546        /* plot PEDESTAL */        /* plot PEDESTAL */
547        c1->cd();        c1->cd();
548        trkpadtext[nn]->Draw();        trkpadtext[nn]->Draw();
# Line 453  void FTrkCalibQLook_EXPERT(TString file, Line 550  void FTrkCalibQLook_EXPERT(TString file,
550        trkpad1[nn]->cd();        trkpad1[nn]->cd();
551        trkpad1[nn]->SetFillColor(10);        trkpad1[nn]->SetFillColor(10);
552        trkpad1[nn]->SetFrameFillColor(10);        trkpad1[nn]->SetFrameFillColor(10);
553          histoped[nn]->SetStats(kFALSE);
554        histoped[nn]->SetLineColor(1);        histoped[nn]->SetLineColor(1);
555        histoped[nn]->SetFillColor(12);        histoped[nn]->SetFillColor(12);
556        histoped[nn]->SetLineWidth(1);        histoped[nn]->SetLineWidth(1);
# Line 462  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.DrawBox(2816.,700.,3060.,maxhist);        else minhist=700;
568          }        b.SetFillColor(19);
569          else if(nn==6){        b.SetFillStyle(3954);
570            maxhist=histoped[nn]->GetMaximum();        if(nn==0){
571            b.DrawBox(2560.,2200.,2816.,maxhist);          b.DrawBox(0.,minhist,2047.,maxhist);
           b.DrawBox(512.,2200.,768.,maxhist);  
           b.DrawBox(1024.,2200.,1792.,maxhist);  
         }  
         else if(nn==11){  
           maxhist=histoped[nn]->GetMaximum();  
           b.DrawBox(768.,700.,1024.,maxhist);  
         }  
572        }        }
573        else histoped[nn]->Draw("axis");        else if(nn==1){
574            b.DrawBox(128.,minhist,256.,maxhist);
575            b.DrawBox(384.,minhist,512.,maxhist);
576            b.DrawBox(896.,minhist,1024.,maxhist);
577            b.DrawBox(2048.,minhist,2432.,maxhist);
578            b.DrawBox(2816.,minhist,2944.,maxhist);
579            b.DrawBox(2944.,minhist,3070.,maxhist);
580          }
581          else if(nn==3){
582            b.DrawBox(0.,minhist,256.,maxhist);
583            b.DrawBox(2816.,minhist,3070.,maxhist);
584          }
585          else if(nn==4){
586            b.DrawBox(256.,minhist,512.,maxhist);
587            b.DrawBox(1792.,minhist,1920.,maxhist);
588            b.DrawBox(2816.,minhist,3070.,maxhist);
589          }
590          else if(nn==5){
591            b.DrawBox(0.,minhist,256.,maxhist);
592            b.DrawBox(896.,minhist,1024.,maxhist);
593            b.DrawBox(1664.,minhist,1792.,maxhist);      
594          }
595          else if(nn==6){
596            b.DrawBox(512.,minhist,768.,maxhist);
597            b.DrawBox(1024.,minhist,1280.,maxhist);
598            b.DrawBox(1280.,minhist,1792.,maxhist);
599            b.DrawBox(2560.,minhist,2816.,maxhist);
600          }
601          else if(nn==7){
602            b.DrawBox(0.,minhist,1535.,maxhist);
603            b.DrawBox(2024.,minhist,2280.,maxhist);
604          }
605          else if(nn==8){
606            b.DrawBox(512.,minhist,768.,maxhist);
607          }
608          else if(nn==9){
609            b.DrawBox(0.,minhist,128.,maxhist);
610            b.DrawBox(256.,minhist,384.,maxhist);
611            b.DrawBox(512.,minhist,640.,maxhist);
612            b.DrawBox(896.,minhist,1152.,maxhist);
613            b.DrawBox(1280.,minhist,1535.,maxhist);
614            b.DrawBox(1664.,minhist,1920.,maxhist);
615            b.DrawBox(2048.,minhist,2304.,maxhist);
616          }
617          else if(nn==10){
618            b.DrawBox(0.,minhist,512.,maxhist);
619            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 501  void FTrkCalibQLook_EXPERT(TString file, Line 657  void FTrkCalibQLook_EXPERT(TString file,
657        trkpad2[nn]->cd();        trkpad2[nn]->cd();
658        trkpad2[nn]->SetFillColor(10);        trkpad2[nn]->SetFillColor(10);
659        trkpad2[nn]->SetFrameFillColor(10);        trkpad2[nn]->SetFrameFillColor(10);
660          histosig[nn]->SetStats(kFALSE);
661        histosig[nn]->SetLineColor(1);        histosig[nn]->SetLineColor(1);
662        histosig[nn]->SetFillColor(12);        histosig[nn]->SetFillColor(12);
663        histosig[nn]->SetLineWidth(1);        histosig[nn]->SetLineWidth(1);
# Line 510  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.DrawBox(2816.,0.,3060.,maxhist);        b.SetFillColor(19);
675          }        b.SetFillStyle(3945);
676          else if(nn==6){        if(nn==0){
677            maxhist=histosig[nn]->GetMaximum();          b.DrawBox(0.,minhist,2047.,maxhist);
678            b.DrawBox(2560.,0.,2816.,maxhist);        }
679            b.DrawBox(512.,0.,768.,maxhist);        else if(nn==1){
680            b.DrawBox(1024.,0.,1792.,maxhist);          b.DrawBox(128.,minhist,256.,maxhist);
681          }          b.DrawBox(384.,minhist,512.,maxhist);
682          else if(nn==11){          b.DrawBox(896.,minhist,1024.,maxhist);
683            maxhist=histosig[nn]->GetMaximum();          b.DrawBox(2048.,minhist,2432.,maxhist);
684            b.DrawBox(768.,0.,1024.,maxhist);          b.DrawBox(2816.,minhist,2944.,maxhist);
685          }          b.DrawBox(2944.,minhist,3070.,maxhist);
686          }
687          else if(nn==3){
688            b.DrawBox(0.,minhist,256.,maxhist);
689            b.DrawBox(2816.,minhist,3070.,maxhist);
690          }
691          else if(nn==4){
692            b.DrawBox(256.,minhist,512.,maxhist);
693            b.DrawBox(1792.,minhist,1920.,maxhist);
694            b.DrawBox(2816.,minhist,3070.,maxhist);
695          }
696          else if(nn==5){
697            b.DrawBox(0.,minhist,256.,maxhist);
698            b.DrawBox(896.,minhist,1024.,maxhist);
699            b.DrawBox(1664.,minhist,1792.,maxhist);      
700          }
701          else if(nn==6){
702            b.DrawBox(512.,minhist,768.,maxhist);
703            b.DrawBox(1024.,minhist,1280.,maxhist);
704            b.DrawBox(1280.,minhist,1792.,maxhist);
705            b.DrawBox(2560.,minhist,2816.,maxhist);
706          }
707          else if(nn==7){
708            b.DrawBox(0.,minhist,1535.,maxhist);
709            b.DrawBox(2024.,minhist,2280.,maxhist);
710          }
711          else if(nn==8){
712            b.DrawBox(512.,minhist,768.,maxhist);
713          }
714          else if(nn==9){
715            b.DrawBox(0.,minhist,128.,maxhist);
716            b.DrawBox(256.,minhist,384.,maxhist);
717            b.DrawBox(512.,minhist,640.,maxhist);
718            b.DrawBox(896.,minhist,1152.,maxhist);
719            b.DrawBox(1280.,minhist,1535.,maxhist);
720            b.DrawBox(1664.,minhist,1920.,maxhist);
721            b.DrawBox(2048.,minhist,2304.,maxhist);
722          }
723          else if(nn==10){
724            b.DrawBox(0.,minhist,512.,maxhist);
725            b.DrawBox(1024.,minhist,3070.,maxhist);
726        }        }
727        else histosig[nn]->Draw("axis");        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++){
746            sig->cd();
747            trkpad3[nn*3+ii]->Draw();
748            trkpad3[nn*3+ii]->cd();
749            trkpad3[nn*3+ii]->SetFillColor(10);
750            trkpad3[nn*3+ii]->SetFrameFillColor(10);
751            trkpad3[nn*3+ii]->SetLogy();
752            histosiglad[nn][ii]->SetLineColor(1);
753            histosiglad[nn][ii]->SetFillColor(1);
754            histosiglad[nn][ii]->SetLineWidth(1);
755            histosiglad[nn][ii]->GetXaxis()->SetTitle("SIG (ADC channels)");
756            histosiglad[nn][ii]->GetXaxis()->CenterTitle();
757            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
763        sig->Update();//draw pads in canvas
764      stringstream nom1;      
765      stringstream nom2;      stringstream nom1,nom2,nom3;
766          
767      if(!strcmp(outfile.Data(),"ps")||!strcmp(outfile.Data(),"pdf")){      if(!strcmp(outfile.Data(),"ps")||!strcmp(outfile.Data(),"pdf")){
768        nom1.str("");        nom1.str("");
769        nom2.str("");        nom2.str("");
770          nom3.str("");
771        nom1<<out<<ffile<<"_FTrkCalibQLook_EXPERT-pkt"<<i+1<<".ps(";        nom1<<out<<ffile<<"_FTrkCalibQLook_EXPERT-pkt"<<i+1<<".ps(";
772        nom2<<out<<ffile<<"_FTrkCalibQLook_EXPERT-pkt"<<i+1<<".ps)";        nom2<<out<<ffile<<"_FTrkCalibQLook_EXPERT-pkt"<<i+1<<".ps";
773          nom3<<out<<ffile<<"_FTrkCalibQLook_EXPERT-pkt"<<i+1<<".ps)";
774        c1->Print(nom1.str().c_str(),"Landscape");        c1->Print(nom1.str().c_str(),"Landscape");
775        c2->Print(nom2.str().c_str(),"Landscape");        c2->Print(nom2.str().c_str(),"Landscape");
776          sig->Print(nom3.str().c_str(),"Landscape");
777          
778        if(!strcmp(outfile.Data(),"pdf")){        if(!strcmp(outfile.Data(),"pdf")){
779          stringstream com;          stringstream com;
780          com<<"ps2pdf13 "<<out<<ffile<<"_FTrkCalibQLook_EXPERT-pkt"<<i+1<<".ps "<<out<<ffile<<"_FTrkCalibQlook_EXPERT-pkt"<<i+1<<".pdf";          com<<"ps2pdf13 "<<out<<ffile<<"_FTrkCalibQLook_EXPERT-pkt"<<i+1<<".ps "<<out<<ffile<<"_FTrkCalibQlook_EXPERT-pkt"<<i+1<<".pdf";
# Line 564  void FTrkCalibQLook_EXPERT(TString file, Line 790  void FTrkCalibQLook_EXPERT(TString file,
790      else{      else{
791        nom1.str("");        nom1.str("");
792        nom2.str("");        nom2.str("");
793          nom3.str("");
794        nom1<<out<<ffile<<"_FTrkCalibQLook_EXPERT-ped-pkt"<<i+1<<"."<<outfile.Data();        nom1<<out<<ffile<<"_FTrkCalibQLook_EXPERT-ped-pkt"<<i+1<<"."<<outfile.Data();
795        nom2<<out<<ffile<<"_FTrkCalibQLook_EXPERT-sig-pkt"<<i+1<<"."<<outfile.Data();        nom2<<out<<ffile<<"_FTrkCalibQLook_EXPERT-sig-pkt"<<i+1<<"."<<outfile.Data();
796          nom3<<out<<ffile<<"_FTrkCalibQLook_EXPERT-histosig-pkt"<<i+1<<"."<<outfile.Data();
797        c1->Print(nom1.str().c_str());        c1->Print(nom1.str().c_str());
798        c2->Print(nom2.str().c_str());        c2->Print(nom2.str().c_str());
799          sig->Print(nom3.str().c_str());
800      }      }
801              
802      if(step==1 && i!=maxevent-1 ){        if(step==1 && i!=maxevent-1 ){  
803        printf("\n Press 1<enter> to continue, 2<enter> to quit.\n");        printf("\n Press 1<enter> to continue, 2<enter> to quit.\n");
804        cin>>risposta;        cin>>risposta;

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

  ViewVC Help
Powered by ViewVC 1.1.23