/[PAMELA software]/quicklook/QLflightTmtc_Header/HeaderScan.cpp
ViewVC logotype

Diff of /quicklook/QLflightTmtc_Header/HeaderScan.cpp

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

revision 1.2 by pam-rm2, Thu Jun 22 12:16:18 2006 UTC revision 1.5 by pam-rm2, Wed Jul 12 09:08:19 2006 UTC
# Line 1  Line 1 
1  /**  /**
2  * Header Scan  * Header_Scan
3  * Author  Nagni  * Author  Nagni
4  * version 1.0  * version 1.0
5  *  *
# Line 85  void HeaderScan(TString base, TString ou Line 85  void HeaderScan(TString base, TString ou
85    
86    //------------------- Variables initilization -------------------------//    //------------------- Variables initilization -------------------------//
87    Long64_t nevents=0;    Long64_t nevents=0;
88    ULong_t lastime, firstime,obt;    ULong_t lastime, firstime;// offset, lastoffset, firstoffset;
89    double obmin=0.;    double obmin=0.;
90    double obmax=0.;    double obmax=0.;
   Float_t maxoffset, minoffset;  
91    stringstream oss, oss1, oss2, oss3, noentries;    stringstream oss, oss1, oss2, oss3, noentries;
92    //------- load root file --------------    //------- load root file --------------
93    TFile *file = new TFile(base.Data());    TFile *file = new TFile(base.Data());
# Line 145  void HeaderScan(TString base, TString ou Line 144  void HeaderScan(TString base, TString ou
144    }    }
145    
146    //-------------- to know the max and min OBT ----------------------------//    //-------------- to know the max and min OBT ----------------------------//
147    for (Int_t i = 0; i < nevents; i++){     headBr->GetEntry(0);
148       ph = eh->GetPscuHeader();
149       firstime = ph->GetOrbitalTime();
150    
151       for (Int_t i = 0; i < nevents; i++){
152      headBr->GetEntry(i);      headBr->GetEntry(i);
153      ph = eh->GetPscuHeader();      ph = eh->GetPscuHeader();
154      obt = ph->GetOrbitalTime();      if((ph->GetOrbitalTime()) <= firstime) firstime=ph->GetOrbitalTime();
155      if(obt <= firstime) firstime=obt;      if((ph->GetOrbitalTime()) >= lastime) lastime=ph->GetOrbitalTime();
     if(obt >= lastime) lastime=obt;  
156      }      }
157    //*************************** Histograms ************************************************************//    
158    //------------------------ First histogram -----------------------------------//    //------------------------ First histogram -----------------------------------//
159    obmin=firstime;  
160    obmax=lastime;       obmin=firstime;
161       obmax=lastime;  
162      
163    oss1.str("");    oss1.str("");
164    oss1 <<"File name= "<< filename.Data() <<". Start time= " << obmin << ", end time= "<< obmax <<" ms"<<". Physics Packet per minute";    oss1 <<"File name= "<< filename.Data() <<". Start time= " << obmin << ", end time= "<< obmax <<" ms"<<". Physics Packet per minute";
165    Int_t  nbin   = (lastime-firstime)/60000;    Int_t  nbin   = (lastime-firstime)/60000;
166    TH1F *h1 = new TH1F ("histo1", oss1.str().c_str(), nbin, obmin, obmax);    TH1F *h1 = new TH1F ("histo1", oss1.str().c_str(), nbin, obmin, obmax);
167      
168    //------------------------ Second histogram -----------------------------------//    //------------- Graph PscuCounter vs FileOffset ---------------------------------
169      const Int_t size = 10000;
170      Int_t ev=0;
171      Double_t PscuCounter[size], FileOffset[size], tempo[size], PcktLenght[size];
172      Int_t m=0;
173      Int_t pag= (nevents/10000)+1;
174    
175      TMultiGraph *mg1 = new TMultiGraph();
176      oss1.str("");
177      oss1 << filename.Data() <<": PscuCounter vs FileOffset.";
178      mg1->SetTitle(oss1.str().c_str());
179    
180      TMultiGraph *mg2 = new TMultiGraph();
181      oss1.str("");
182      oss1 << filename.Data() <<": OBT vs FileOffset.";
183      mg2->SetTitle(oss1.str().c_str());
184    
185      TMultiGraph *mg3 = new TMultiGraph();
186    oss2.str("");    oss2.str("");
187    oss2 << " Lenght of Physic packets;";    oss2 << filename.Data() <<": Lenght of Physic packets";
188    Int_t nint = (lastime-firstime);    mg3->SetTitle(oss2.str().c_str());
   TH1F *PcktLenght = new TH1F ("histo2", oss2.str().c_str(), nint, obmin, obmax);  
189    
190   //------------------------ Third histogram -----------------------------------//    TMultiGraph *mg4 = new TMultiGraph();
191    oss3.str("");    oss3.str("");
192    oss3 << " Physics Counter";    oss3 << filename.Data() <<": Physics Counter";
193    TH1F *PcktCounter = new TH1F ("histo3", oss3.str().c_str(), nint, obmin, obmax);    mg4->SetTitle(oss3.str().c_str());
194    
195    //**************************************************************************************************//    TCanvas *finalCanv1 = new TCanvas("Header_1", base, 1280, 1024);
196    //------- fill histograms ---------//    finalCanv1->Divide(1,3);
197      finalCanv1->SetFillColor(10);
198    
199    for (Int_t i = 0; i < nevents; i++){    TCanvas *finalCanv2 = new TCanvas("Header_2", base, 1280, 1024);
200      headBr->GetEntry(i);    finalCanv2->Divide(1,2);
201      finalCanv2->SetFillColor(10);
202    
203     /////ciclo sulle pagine////////////////////
204      for (Int_t interval=0; interval<pag; interval++){
205    
206       for (Int_t l = 0; l < size; l++){     //ciclo su un sottogruppo
207        headBr->GetEntry(ev+l);
208      ph = eh->GetPscuHeader();        ph = eh->GetPscuHeader();  
209        PscuCounter[l]= ph->GetCounter(); // = PcktCounter[l]
210        FileOffset[l]=ph->GetFileOffset();
211        tempo[l]=ph->GetOrbitalTime();
212        PcktLenght[l]=ph->GetPacketLenght();
213      h1->Fill(ph->GetOrbitalTime());        h1->Fill(ph->GetOrbitalTime());  
214      PcktLenght->Fill(ph->GetOrbitalTime(),ph->GetPacketLenght());        m=l;
215      PcktCounter->Fill(ph->GetOrbitalTime(),ph->GetCounter());     }  
   }  
216    
217    //****************************** Canvases *******************************//     TGraph *graph1= new TGraph(m, tempo, PcktLenght);
218    //TGaxis::SetMaxDigits(4);     graph1->SetMarkerColor(2);
219    //------------------- First Canvas --------------------------------//     graph1->SetMarkerSize(.5);
220    TCanvas *finalCanv1 = new TCanvas("Header_1", base, 1280, 1024);     graph1->SetMarkerStyle(21);
221    finalCanv1->Divide(1,3);     mg3->Add(graph1);
222    finalCanv1->SetFillColor(10);  
223       TGraph *graph2= new TGraph(m, tempo, PscuCounter);
224       graph2->SetMarkerColor(4);
225       graph2->SetMarkerSize(.5);
226       graph2->SetMarkerStyle(21);
227       mg4->Add(graph2);
228    
229       TGraph *graph3= new TGraph(m, FileOffset, PscuCounter);
230       graph3->SetMarkerColor(3);
231       graph3->SetMarkerSize(.5);
232       graph3->SetMarkerStyle(21);
233       mg1->Add(graph3);
234    
235       TGraph *graph4= new TGraph(m, FileOffset, tempo);
236       graph4->SetMarkerColor(kBlue);
237       graph4->SetMarkerSize(.5);
238       graph4->SetMarkerStyle(21);
239       mg2->Add(graph4);
240    
241       ev=ev+10000;
242      }
243      //------------ First Canvas ---------------------//
244    
245    finalCanv1->cd(1);    finalCanv1->cd(1);
246    h1->SetStats(kFALSE);    h1->SetStats(kFALSE);
# Line 202  void HeaderScan(TString base, TString ou Line 254  void HeaderScan(TString base, TString ou
254    h1->Draw();    h1->Draw();
255        
256    finalCanv1->cd(2);    finalCanv1->cd(2);
257    PcktLenght->SetStats(kFALSE);    mg3->Draw("AP");
258    PcktLenght->GetXaxis()->SetTitle("OBT    (ms)");    mg3->GetXaxis()->SetTitle("OBT    (ms)");
259    PcktLenght->GetXaxis()->CenterTitle();    mg3->GetXaxis()->CenterTitle();
260    PcktLenght->GetXaxis()->SetLabelSize(0.04);    mg3->GetXaxis()->SetLabelSize(0.04);
261    PcktLenght->GetYaxis()->SetTitle("Lenght  (byte)");    mg3->GetYaxis()->SetTitle("Lenght  (byte)");
262    PcktLenght->GetYaxis()->CenterTitle();    mg3->GetYaxis()->CenterTitle();
263    PcktLenght->GetYaxis()->SetLabelSize(0.04);    mg3->GetYaxis()->SetLabelSize(0.04);
264    PcktLenght->GetYaxis()->SetTitleSize(0.06);    mg3->GetYaxis()->SetTitleSize(0.06);
265    PcktLenght->GetYaxis()->SetTitleOffset(0.8);    mg3->GetYaxis()->SetTitleOffset(0.8);
266    PcktLenght->SetMarkerColor(2);  
   PcktLenght->SetMarkerSize(.5);  
   PcktLenght->SetMarkerStyle(21);  
   PcktLenght->Draw("9p");  
267    
268    finalCanv1->cd(3);    finalCanv1->cd(3);
269    PcktCounter->SetStats(kFALSE);    mg4->Draw("AP");
270    PcktCounter->GetXaxis()->SetTitle("OBT    (ms)");    mg4->GetXaxis()->SetTitle("OBT    (ms)");
271    PcktCounter->GetXaxis()->SetTitleSize(0.05);    mg4->GetXaxis()->SetTitleSize(0.05);
272    PcktCounter->GetXaxis()->CenterTitle();    mg4->GetXaxis()->CenterTitle();
273    PcktCounter->GetXaxis()->SetLabelSize(0.04);    mg4->GetXaxis()->SetLabelSize(0.04);
274    PcktCounter->GetYaxis()->SetTitle("Counter");    mg4->GetYaxis()->SetTitle("Counter");
275    PcktCounter->GetYaxis()->SetTitleSize(0.05);    mg4->GetYaxis()->SetTitleSize(0.05);
276    PcktCounter->GetYaxis()->CenterTitle();    mg4->GetYaxis()->CenterTitle();
277    PcktCounter->GetYaxis()->SetLabelSize(0.04);    mg4->GetYaxis()->SetLabelSize(0.04);
278    PcktCounter->GetYaxis()->SetTitleSize(0.06);    mg4->GetYaxis()->SetTitleSize(0.06);
279    PcktCounter->GetYaxis()->SetTitleOffset(0.8);    mg4->GetYaxis()->SetTitleOffset(0.8);
   PcktCounter->SetMarkerColor(4);  
   PcktCounter->SetMarkerSize(.5);  
   PcktCounter->SetMarkerStyle(21);  
   PcktCounter->Draw("9p");  
280    
281      finalCanv1->Update();
282      
283    oss.str("");    oss.str("");
284    oss << outDir.Data() << filename.Data();    oss << outDir.Data() << filename.Data();
285    oss  << "_HeaderScan_1." << format.Data();    oss  << "_HeaderScan_1." << format.Data();
286    finalCanv1->SaveAs(oss.str().c_str());    finalCanv1->SaveAs(oss.str().c_str());
287    //------------- Graph PscuCounter vs FileOffset ---------------------------------    
   const Int_t size = 100000;  
   Int_t ev=0;  
   Double_t PscuCounter[size], FileOffset[size];  
   Int_t m=0;  
   Int_t pag= (nevents/100000)+1;  
   
   TCanvas *finalCanv2 = new TCanvas("Header_2", base, 1280, 1024);  
   finalCanv2->SetFillColor(10);  
   
  /////ciclo sulle pagine////////////////////  
   for (Int_t interval=0; interval<pag; interval++){  
288    
    for (Int_t l = 0; l < size; l++){     //ciclo su un sottogruppo  
     headBr->GetEntry(ev+l);  
     ph = eh->GetPscuHeader();    
     PscuCounter[l]= ph->GetCounter();  
     FileOffset[l]=ph->GetFileOffset();  
     m=l;  
    }    
289    
290     oss1.str("");    //------------ Second Canvas ---------------------//
291     oss1 << filename.Data() <<": PscuCounter vs FileOffset. Canvas n."<< (interval+1);     finalCanv2->cd(1);
292     TGraph *graph= new TGraph(m, FileOffset, PscuCounter);     mg1->Draw("AP");
293       mg1->GetXaxis()->SetTitle("File Offset");
294       mg1->GetXaxis()->CenterTitle();
295       mg1->GetXaxis()->SetTitleSize(0.05);
296       mg1->GetXaxis()->SetLabelSize(0.04);
297       mg1->GetYaxis()->SetTitle("Counter");
298       mg1->GetYaxis()->CenterTitle();
299       mg1->GetYaxis()->SetTitleSize(0.05);
300       mg1->GetYaxis()->SetLabelSize(0.04);
301    
302       finalCanv2->cd(2);
303       mg2->Draw("AP");
304       mg2->GetXaxis()->SetTitle("File Offset");
305       mg2->GetXaxis()->CenterTitle();
306       mg2->GetXaxis()->SetTitleSize(0.05);
307       mg2->GetXaxis()->SetLabelSize(0.04);
308       mg2->GetYaxis()->SetTitle("OBT");
309       mg2->GetYaxis()->CenterTitle();
310       mg2->GetYaxis()->SetTitleSize(0.05);
311       mg2->GetYaxis()->SetLabelSize(0.04);
312    
313     finalCanv2->cd();     finalCanv2->Update();
    graph->SetTitle(oss1.str().c_str());  
    graph->GetXaxis()->SetTitle("File Offset");  
    graph->GetXaxis()->CenterTitle();  
    graph->GetXaxis()->SetTitleSize(0.04);  
    graph->GetXaxis()->SetLabelSize(0.02);  
    graph->GetYaxis()->SetTitle("Counter");  
    graph->GetYaxis()->CenterTitle();  
    graph->GetYaxis()->SetTitleSize(0.04);  
    graph->GetYaxis()->SetLabelSize(0.02);  
    graph->SetMarkerColor(3);  
    graph->SetMarkerSize(.5);  
    graph->SetMarkerStyle(21);  
    graph->Draw("AP");  
314    
315     oss1.str("");     oss1.str("");
316     oss1 << outDir.Data() << filename.Data();     oss1 << outDir.Data() << filename.Data();
317     oss1 << "_HeaderScan_2_"<<(interval+1)<<"." << format.Data();     oss1 << "_HeaderScan_2"<<"." << format.Data();
318    
319     finalCanv2->SaveAs(oss1.str().c_str());     finalCanv2->SaveAs(oss1.str().c_str());
320     finalCanv2->Clear();    
321       file->Close();
    ev=ev+100000;  
   }  
   
   file->Close();  
322        
323  }  }
324    

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.5

  ViewVC Help
Powered by ViewVC 1.1.23