/[PAMELA software]/quicklook/QLflightS4_ND/S4_Calibration_QL.cpp
ViewVC logotype

Diff of /quicklook/QLflightS4_ND/S4_Calibration_QL.cpp

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

revision 1.3 by pam-rm2, Tue Aug 22 09:06:35 2006 UTC revision 1.4 by pam-rm2, Tue Sep 5 13:06:41 2006 UTC
# Line 57  void S4_Calibration_QL(TString base, TSt Line 57  void S4_Calibration_QL(TString base, TSt
57    
58    //--------------- Variables initialization -----------------------------------//    //--------------- Variables initialization -----------------------------------//
59    const Int_t channels = 4096;    const Int_t channels = 4096;
60    Double_t calib_1;    Double_t calib_1_MEAN;
61    Double_t calib_2;    Double_t calib_2_MEAN;
62    Double_t calib_4;    Double_t calib_4_MEAN;
63    Double_t calib_1_RMS;    Double_t calib_1_RMS;
64    Double_t calib_2_RMS;    Double_t calib_2_RMS;
65    Double_t calib_4_RMS;    Double_t calib_4_RMS;
66      Double_t calib_1=0, calib_2=0, calib_4=0;
67    Double_t obt;    Double_t obt;
68    TString status;    TString status;
69    Int_t IPM1status, IPM2status;    Int_t IPM1status, IPM2status;
70      ULong_t lastime, firstime, obt1;
71      double obmin=0.;
72      double obmax=0.;
73      double limitdown=0;
74      double limitup=0;
75    
76    
77    //------------------------- Open data file -------------------------------------//    //------------------------- Open data file -------------------------------------//
78    TFile  *file  =new TFile(base.Data()) ;    TFile  *file  =new TFile(base.Data()) ;
79    TString filename = ((TObjString*)base.Tokenize('/')->Last())->GetString();    TString filename = ((TObjString*)base.Tokenize('/')->Last())->GetString();
# Line 133  void S4_Calibration_QL(TString base, TSt Line 141  void S4_Calibration_QL(TString base, TSt
141    }    }
142    
143    //---------------Look for configuration hot or cold -----------------------//    //---------------Look for configuration hot or cold -----------------------//
144    Int_t recordstot=0;    if(neventstmtc!=0){
145    for (Int_t i = 0; i < neventstmtc; i++){      Int_t recordstot=0;
146      tmtcBr->GetEntry(i);        for (Int_t i = 0; i < neventstmtc; i++){
147      Long64_t tmpSizetmtc = tme->Records->GetEntries();          tmtcBr->GetEntry(i);  
148      recordstot=recordstot+tmpSizetmtc;        Long64_t tmpSizetmtc = tme->Records->GetEntries();  
149    }          recordstot=recordstot+tmpSizetmtc;
150    const Int_t lungmax=16*recordstot;      }  
151    Double_t xrecordobtcc[lungmax], yccdiagacq[lungmax], xrecordobtcc_1[lungmax], yccdiagacq_1[lungmax];      const Int_t lungmax=16*recordstot;
152    recordstot=0;      Double_t xrecordobtcc[lungmax], yccdiagacq[lungmax], xrecordobtcc_1[lungmax], yccdiagacq_1[lungmax];
153    for (Int_t i = 0; i < neventstmtc; i++){      recordstot=0;
154      tmtcBr->GetEntry(i);        for (Int_t i = 0; i < neventstmtc; i++){
155      Long64_t tmpSizetmtc = tme->Records->GetEntries();          tmtcBr->GetEntry(i);  
156      Int_t size_b = tmpSizetmtc;        Long64_t tmpSizetmtc = tme->Records->GetEntries();  
157      for (Int_t j = 0; j < size_b; j++){        Int_t size_b = tmpSizetmtc;
158        tmr = (pamela::TmtcRecord*)tme->Records->At(j);        for (Int_t j = 0; j < size_b; j++){
159        for (Int_t k =0; k <16; k++){          tmr = (pamela::TmtcRecord*)tme->Records->At(j);
160          yccdiagacq[16*recordstot+16*j+k]   = (((tmr->TM_DIAG_AND_BILEVEL_ACQ)>>(15-k))&0x0001);                  for (Int_t k =0; k <16; k++){
161          xrecordobtcc[16*recordstot+16*j+k] = tmr->TM_RECORD_OBT;            yccdiagacq[16*recordstot+16*j+k]   = (((tmr->TM_DIAG_AND_BILEVEL_ACQ)>>(15-k))&0x0001);      
162              xrecordobtcc[16*recordstot+16*j+k] = tmr->TM_RECORD_OBT;
163            }
164        }        }
165          recordstot=recordstot+tmpSizetmtc;
166      }      }
167      recordstot=recordstot+tmpSizetmtc;      Int_t riftime = recordstot/2;
168    }      //CC (0=IPM1=hot; 1=IPM2=cold for S4 calibration)
169    Int_t riftime = recordstot/2;      for (Int_t k =0; k<16; k++){
170    //CC (0=IPM1=hot; 1=IPM2=cold for S4 calibration)        for (Int_t i = 0; i < recordstot; i++){
171    for (Int_t k =0; k<16; k++){          yccdiagacq_1[i]= yccdiagacq[16*i+k];
172      for (Int_t i = 0; i < recordstot; i++){          xrecordobtcc_1[i]= xrecordobtcc[16*i+k];
173        yccdiagacq_1[i]= yccdiagacq[16*i+k];        }
174        xrecordobtcc_1[i]= xrecordobtcc[16*i+k];        if (k==0) IPM1status=(Int_t)yccdiagacq_1[riftime];
175          if (k==1) IPM2status=(Int_t)yccdiagacq_1[riftime];
176      }      }
177      if (k==0) IPM1status=(Int_t)yccdiagacq_1[riftime];      if (IPM1status==0 && IPM2status==1){
178      if (k==1) IPM2status=(Int_t)yccdiagacq_1[riftime];        status="CONFIGURATION: HOT";
179    }      }
180    if (IPM1status==0 && IPM2status==1){      if (IPM1status==1 && IPM2status==0){
181      status="CONFIGURATION: HOT";        status="CONFIGURATION: COLD";
182    }      }
183    if (IPM1status==1 && IPM2status==0){    }else{
184      status="CONFIGURATION: COLD";      status=" No info about kind of calibration (hot or cold)";
185    }    }
186    
187    //------------- Create and fill histograms -------------------------------------------//    //----------- search max and min OBT -----------------------------------------------------//
   
   TH1F *calibS4_1 =new TH1F("calibS4_1", "calibS4_1", channels, 0, channels);  
   TH1F *calibS4_2 =new TH1F("calibS4_2", "calibS4_2", channels, 0, channels);  
   TH1F *calibS4_4 =new TH1F("calibS4_4", "calibS4_4", channels, 0, channels);    
   ULong_t lastime, firstime, obt1;  
   double obmin=0.;  
   double obmax=0.;  
   double limitdown=0;  
   double limitup=0;  
   const Int_t size = nevents;  
   cout<<"size "<<size <<"\n";  
   
188    headBr->GetEntry(0);    headBr->GetEntry(0);
189    ph = eh->GetPscuHeader();    ph = eh->GetPscuHeader();
190    firstime = ph->GetOrbitalTime();    firstime = ph->GetOrbitalTime();
# Line 206  void S4_Calibration_QL(TString base, TSt Line 206  void S4_Calibration_QL(TString base, TSt
206      for(Int_t kk = 0; kk<nevents; kk++){      for(Int_t kk = 0; kk<nevents; kk++){
207        headBr->GetEntry(kk);        headBr->GetEntry(kk);
208        ph = eh->GetPscuHeader();        ph = eh->GetPscuHeader();
209        cout<<"OrbitalTime()"<<ph->GetOrbitalTime()<<"\n";        //cout<<"OrbitalTime()"<<ph->GetOrbitalTime()<<"\n";
210        if(obmin >= ph->GetOrbitalTime())obmin=ph->GetOrbitalTime();        if(obmin >= ph->GetOrbitalTime())obmin=ph->GetOrbitalTime();
211        if(obmax <= ph->GetOrbitalTime())obmax=ph->GetOrbitalTime();        if(obmax <= ph->GetOrbitalTime())obmax=ph->GetOrbitalTime();
212      }      }
213      limitdown=obmin;      limitdown=obmin;
214      limitup=obmax;      limitup=obmax;
215    }    }
216      //------------- Create and fill histograms -------------------------------------------//
217      stringstream oss1;
218      oss1.str("");
219      oss1 << "S4 Calibration: "<< filename.Data();
220      TH1F *calibS4_1 =new TH1F("S4-1", oss1.str().c_str(), channels, 0, channels);
221      TH1F *calibS4_2 =new TH1F("S4-2", oss1.str().c_str(), channels, 0, channels);
222      TH1F *calibS4_4 =new TH1F("S4-3", oss1.str().c_str(), channels, 0, channels);  
223    
224    stringstream oss;    stringstream oss;
225    oss.str("");    oss.str("");
226    oss << "S4_Calibration_QL: "<< filename.Data();    oss << "S4_Calibration_QL: "<< filename.Data();
227      const Int_t size = nevents;
228      //cout<<"size "<<size <<"\n";
229    TH1F *cal1 =new TH1F("calibS4_1", oss.str().c_str(), size, obmin-1000000, obmax+ 1000000);    TH1F *cal1 =new TH1F("calibS4_1", oss.str().c_str(), size, obmin-1000000, obmax+ 1000000);
230    TH1F *cal2 =new TH1F("calibS4_2", oss.str().c_str(), size, obmin-1000000, obmax+ 1000000);    TH1F *cal2 =new TH1F("calibS4_2", oss.str().c_str(), size, obmin-1000000, obmax+ 1000000);
231    TH1F *cal4 =new TH1F("calibS4_4", oss.str().c_str(), size, obmin-1000000, obmax+ 1000000);      TH1F *cal4 =new TH1F("calibS4_4", oss.str().c_str(), size, obmin-1000000, obmax+ 1000000);  
# Line 231  void S4_Calibration_QL(TString base, TSt Line 241  void S4_Calibration_QL(TString base, TSt
241          switch (j) {          switch (j) {
242          case 0 :{          case 0 :{
243            calibS4_1->Fill(s4Record->S4_DATA);            calibS4_1->Fill(s4Record->S4_DATA);
244              calib_1 = calib_1+s4Record->S4_DATA;
245            break;            break;
246          }          }
247          case 1 :{          case 1 :{
248            calibS4_2->Fill(s4Record->S4_DATA);            calibS4_2->Fill(s4Record->S4_DATA);
249              calib_2 = calib_2+s4Record->S4_DATA;
250            break;            break;
251          }          }
252          case 3 :{          case 3 :{
253            calibS4_4->Fill(s4Record->S4_DATA);            calibS4_4->Fill(s4Record->S4_DATA);
254              calib_4 = calib_4+s4Record->S4_DATA;
255            break;            break;
256          }          }
257          }          }
# Line 246  void S4_Calibration_QL(TString base, TSt Line 259  void S4_Calibration_QL(TString base, TSt
259      }      }
260    
261      //obt=ph->GetOrbitalTime();      //obt=ph->GetOrbitalTime();
262      calib_1=calibS4_1->GetMean(1);      calib_1_MEAN=calib_1/128;
263      //calib_1_RMS=calibS4_1->GetRMS(1);      //calib_1_RMS=calibS4_1->GetRMS(1);
264      calib_2=calibS4_2->GetMean(1);      calib_2_MEAN=calib_2/128;
265      //calib_2_RMS=calibS4_2->GetRMS(1);      //calib_2_RMS=calibS4_2->GetRMS(1);
266      calib_4=calibS4_4->GetMean(1);      calib_4_MEAN=calib_4/128;
267      //calib_4_RMS=calibS4_4->GetRMS(1);      //calib_4_RMS=calibS4_4->GetRMS(1);
268      cal1->Fill(ph->GetOrbitalTime(),calib_1);      cal1->Fill(ph->GetOrbitalTime(),calib_1_MEAN);
269      cal2->Fill(ph->GetOrbitalTime(),calib_2);      cal2->Fill(ph->GetOrbitalTime(),calib_2_MEAN);
270      cal4->Fill(ph->GetOrbitalTime(),calib_4);      cal4->Fill(ph->GetOrbitalTime(),calib_4_MEAN);
271      cout<<"k"<<k<<"\n";      calib_1=calib_2=calib_4=0;
     //cout<<calib_1_RMS<<"\n";  
     //cout<<calib_2_RMS<<"\n";  
     //cout<<calib_4_RMS<<"\n";  
     //cout<<k<<"     "<<obt<<"  \n  "<<calib_1<<"    "<<calib_2<<"     "<<calib_4<<"\n";  
272    
273    }    }
274    
275    //----------------- Create and draw canvas -----------------------------------------//    //----------------- Create and draw canvas -----------------------------------------//
276    TCanvas *finalCanv = new TCanvas("S4Calib","Calibration_QL", 1280, 1024);    TCanvas *finalCanv = new TCanvas("S4Calib","Calibration_QL", 1280, 1024);
277    finalCanv->SetFillColor(10);    finalCanv->SetFillColor(10);
278      finalCanv->Divide(2,2);
279    
280    finalCanv->cd();    finalCanv->cd(1);
281    gPad->SetLogy();    gPad->SetLogy();
   
282    cal1->SetStats(kFALSE);    cal1->SetStats(kFALSE);
283    cal1->SetMarkerSize(.5);    cal1->SetMarkerSize(.5);
284    cal1->SetMarkerStyle(21);    cal1->SetMarkerStyle(21);
# Line 393  void S4_Calibration_QL(TString base, TSt Line 402  void S4_Calibration_QL(TString base, TSt
402      func6->Draw("same");      func6->Draw("same");
403    }    }
404    
405    TPad *pad = new TPad("pad","pad", .75, .93, .99, .99);    //TPad *pad = new TPad("pad","pad", .75, .93, .99, .99);
406      TPad *pad = new TPad("pad","pad", .58, .85, .92, .94);
407    pad->SetFillColor(10);    pad->SetFillColor(10);
408    pad->Draw();    pad->Draw();
409    pad->cd();    pad->cd();
410    TLatex *l = new TLatex();    TLatex *l = new TLatex();
411    l->SetTextAlign(12);    l->SetTextAlign(12);
412    l->SetTextSize(0.35);    l->SetTextSize(0.4);
413    l->SetTextColor(8);    l->SetTextColor(kRed);
414    l->DrawLatex(0.05, 0.65, status.Data());    l->DrawLatex(0.05, 0.65, status.Data());
415    
416    
417      finalCanv->cd(2);
418      gPad->SetLogy();
419      gStyle->SetOptStat("nemrou");
420      calibS4_1->SetLineColor(kBlack);
421      calibS4_1->SetFillColor(kRed);
422      calibS4_1->GetYaxis()->SetTitle("Number of events");
423      calibS4_1->GetYaxis()->SetTitleSize(0.03);
424      calibS4_1->GetYaxis()->SetTitleOffset(1);
425      calibS4_1->GetYaxis()->CenterTitle();
426      calibS4_1->GetYaxis()->SetLabelSize(0.02);
427      calibS4_1->GetXaxis()->CenterTitle();
428      calibS4_1->GetXaxis()->SetTitleSize(0.03);
429      calibS4_1->GetXaxis()->SetTitleOffset(1);
430      calibS4_1->GetXaxis()->SetLabelSize(0.02);
431      calibS4_1->GetXaxis()->SetTitle("ADC (ch)");
432      calibS4_1->SetAxisRange(0,200);
433      calibS4_1->Draw();
434    
435      finalCanv->cd(3);
436      gPad->SetLogy();
437      gStyle->SetOptStat("nemrou");
438      calibS4_2->SetLineColor(kBlack);
439      calibS4_2->SetFillColor(kRed);
440      calibS4_2->GetYaxis()->SetTitle("Number of events");
441      calibS4_2->GetYaxis()->SetTitleSize(0.03);
442      calibS4_2->GetYaxis()->SetTitleOffset(1);
443      calibS4_2->GetYaxis()->CenterTitle();
444      calibS4_2->GetYaxis()->SetLabelSize(0.02);
445      calibS4_2->GetXaxis()->CenterTitle();
446      calibS4_2->GetXaxis()->SetTitleSize(0.03);
447      calibS4_2->GetXaxis()->SetTitleOffset(1);
448      calibS4_2->GetXaxis()->SetLabelSize(0.02);
449      calibS4_2->GetXaxis()->SetTitle("ADC (ch)");
450      calibS4_2->SetAxisRange(50,250);
451      calibS4_2->Draw();
452    
453      finalCanv->cd(4);
454      gPad->SetLogy();
455      gStyle->SetOptStat("nemrou");
456      calibS4_4->SetLineColor(kBlack);
457      calibS4_4->SetFillColor(kRed);
458      calibS4_4->GetYaxis()->SetTitle("Number of events");
459      calibS4_4->GetYaxis()->SetTitleSize(0.03);
460      calibS4_4->GetYaxis()->SetTitleOffset(1);
461      calibS4_4->GetYaxis()->CenterTitle();
462      calibS4_4->GetYaxis()->SetLabelSize(0.02);
463      calibS4_4->GetXaxis()->CenterTitle();
464      calibS4_4->GetXaxis()->SetTitleSize(0.03);
465      calibS4_4->GetXaxis()->SetTitleOffset(1);
466      calibS4_4->GetXaxis()->SetLabelSize(0.02);
467      calibS4_4->GetXaxis()->SetTitle("ADC (ch)");
468      calibS4_4->SetAxisRange(500,2500);
469      calibS4_4->Draw();
470    
471    oss.str("");    oss.str("");
472    if (outDir == "./") {    if (outDir == "./") {
473      oss << filename.Data() << "_S4_Calibration_QL." << format.Data();      oss << filename.Data() << "_S4_Calibration_QL." << format.Data();
474    } else {    } else {
475      oss << outDir.Data() << filename.Data() << "_S4_Calibration_QL." << format.Data();      oss << outDir.Data() << filename.Data() << "_S4_Calibration_QL." << format.Data();
476    }    }
477    finalCanv->SaveAs(oss.str().c_str());    finalCanv->SaveAs(oss.str().c_str());
   
   
   
   
   
478  }  }
479    
480  int main(int argc, char* argv[]){  int main(int argc, char* argv[]){

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

  ViewVC Help
Powered by ViewVC 1.1.23