/[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.3 by pam-fi, Thu Jun 1 17:38:54 2006 UTC revision 1.8 by pam-fi, Thu Jul 13 10:13:37 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 v1r06
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 69  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
61    const string filepath=file.Data();    Int_t dwpos = file.Last('/');
62    Int_t dwpos = filepath.rfind("/");    Int_t dwpos1 = file.Last('.');
63    Int_t dwpos1 = filepath.rfind(".root");    TString base,ffile ;
64    TString fpath=(filepath.c_str());    ffile=file(dwpos+1,dwpos1-(dwpos+1));
65    TString base,ffile;    if(dwpos>0) base=file(0,dwpos);
   stringcopy(base,fpath,0,dwpos);  
   stringcopy(ffile,fpath,dwpos+1,dwpos1);  
   if(dwpos>0) base+="/";  
66    
67    TString out;    TString out;
68    if(outdir.Length()==0){    if(outdir.Length()==0){
# Line 84  void FTrkCalibQLook_EXPERT(TString file, Line 70  void FTrkCalibQLook_EXPERT(TString file,
70    }else{    }else{
71      out = outdir;      out = outdir;
72    }    }
73      if(out.Last('/')+1<out.Length()) out+="/";
74    
75    //    //
76    // inizialise the variables and open the file    // inizialise the variables and open the 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;    ULong64_t FOBT[2];
81        
82    FOBT[0]=0;    FOBT[0]=0;
83    FOBT[1]=0;    FOBT[1]=0;
# Line 134  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 196  void FTrkCalibQLook_EXPERT(TString file, Line 186  void FTrkCalibQLook_EXPERT(TString file,
186    //    //
187    //**********************************************************************    //**********************************************************************
188            
189      Int_t hcevent=hotr->GetEntries();
190      printf("\n%d\n",hcevent);
191      ULong64_t HOBT[hcevent], TOBT[hcevent];
192      for (Int_t i = 0; i < hcevent; i++){
193        totr->GetEntry(i);
194        hotr->GetEntry(i);
195        ph = eh4->GetPscuHeader();
196        HOBT[i]= ph->GetOrbitalTime();
197        ph = eh3->GetPscuHeader();
198        TOBT[i]= ph->GetOrbitalTime();
199      }
200        
201    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);
202    for (Int_t i = minevent; i < maxevent; i++){        for (Int_t i = minevent; i < maxevent; i++){    
203            
204      otr1->GetEntry(i);      otr1->GetEntry(i);
205      otr2->GetEntry(i);      otr2->GetEntry(i);
206      totr->GetEntry(i);      
     hotr->GetEntry(i);  
     ph = eh4->GetPscuHeader();  
     HOBT= ph->GetOrbitalTime();  
     ph = eh3->GetPscuHeader();  
     TOBT= ph->GetOrbitalTime();  
         
207      ctrk.good0[0]=trk1->good0;      ctrk.good0[0]=trk1->good0;
208      ctrk.good0[1]=trk2->good0;      ctrk.good0[1]=trk2->good0;
209      for (Int_t m = 0; m < 6; m++){      for (Int_t m = 0; m < 6; m++){
210        ph = eh1->GetPscuHeader();        ph = eh1->GetPscuHeader();
211          cod = eh1->GetCounter();
212        FOBT[0]= ph->GetOrbitalTime();        FOBT[0]= ph->GetOrbitalTime();
213        ctrk.daqmode[trk1->DSPnumber[m]-1]=trk1->DAQmode[m];        ctrk.daqmode[trk1->DSPnumber[m]-1]=trk1->DAQmode[m];
214        ctrk.dspnum[trk1->DSPnumber[m]-1]=trk1->DSPnumber[m];        ctrk.dspnum[trk1->DSPnumber[m]-1]=trk1->DSPnumber[m];
# Line 260  void FTrkCalibQLook_EXPERT(TString file, Line 257  void FTrkCalibQLook_EXPERT(TString file,
257          ctrk.dspped[trk2->DSPnumber[m]-1][j]=trk2->DSPped_par[m][j];          ctrk.dspped[trk2->DSPnumber[m]-1][j]=trk2->DSPped_par[m][j];
258          ctrk.dspsig[trk2->DSPnumber[m]-1][j]=trk2->DSPsig_par[m][j];          ctrk.dspsig[trk2->DSPnumber[m]-1][j]=trk2->DSPsig_par[m][j];
259          ctrk.dspbad[trk2->DSPnumber[m]-1][j]=trk2->DSPbad_par[m][j];          ctrk.dspbad[trk2->DSPnumber[m]-1][j]=trk2->DSPbad_par[m][j];
260        };        }
261      };      }
262                                
263    
264      //      //
# Line 269  void FTrkCalibQLook_EXPERT(TString file, Line 266  void FTrkCalibQLook_EXPERT(TString file,
266      Int_t risposta=0;      Int_t risposta=0;
267      stringstream fromfile;      stringstream fromfile;
268    
269      fromfile<<"FTrkCalibQLook_EXPERT      File: "<<ffile<<"        -- CalibHeader OBT= "<<HOBT<<" -- Calib pkt OBT= "<<FOBT[0]<<" -- CalibTrailer OBT= "<<TOBT<<" --";      printf("\n\t%d\n",cod->Get(pctp->CalibHeader));
270        fromfile<<"FTrkCalibQLook_EXPERT      File: "<<ffile<<"        -- CalibHeader OBT= "<<HOBT[(cod->Get(pctp->CalibHeader))-1]<<" -- Calib pkt OBT= "<<FOBT[0]<<" -- CalibTrailer OBT= "<<TOBT[(cod->Get(pctp->CalibHeader))-1]<<" --";
271            
272      gStyle->SetLabelSize(0.08,"x");      gStyle->SetLabelSize(0.08,"x");
273      gStyle->SetLabelSize(0.08,"y");      gStyle->SetLabelSize(0.08,"y");
# Line 336  void FTrkCalibQLook_EXPERT(TString file, Line 334  void FTrkCalibQLook_EXPERT(TString file,
334        /* -----------> HISTOGRAMS          */        /* -----------> HISTOGRAMS          */
335        /* calibration parameters */        /* calibration parameters */
336        title<<"DSP "<<n+1;        title<<"DSP "<<n+1;
337        hid<<"h"<<n;        hid<<"h"<<n<<"i"<<i;
338        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);
339        hid.str("");        hid.str("");
340        hid<<"hh"<<n;        hid<<"hh"<<n<<"i"<<i;
341        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);
342        hid.str("");        hid.str("");
343        hid<<"hhh"<<n;        hid<<"hhh"<<n<<"i"<<i;
344        title.str("");        title.str("");
345        hid.str("");        hid.str("");
346        /* AVERAGE calibration parameters */            /* AVERAGE calibration parameters */    
347        hid<<"ah"<<n;        hid<<"ah"<<n<<"i"<<i;
348        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);
349        hid.str("");        hid.str("");
350        hid<<"ahh"<<n;        hid<<"ahh"<<n<<"i"<<i;
351        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);
352        hid.str("");        hid.str("");
353      };                     //end loop on views      };                     //end loop on views

Legend:
Removed from v.1.3  
changed lines
  Added in v.1.8

  ViewVC Help
Powered by ViewVC 1.1.23