ROOT logo
#if !defined(__CINT__) || defined(__MAKECINT__)

#include <TROOT.h>
#include <TStyle.h>
#include <Riostream.h>
#include <TStopwatch.h>
#include <TDatime.h>
#include <TClassTable.h>
#include <TH1.h>
#include <TH2.h>
#include <TF1.h>
#include <TProfile.h>
#include <TFunction.h>
#include <TCanvas.h>
#include <TGrid.h>
#include <TFile.h>

#endif

void CheckLaserHistos(Int_t nRun=0, Int_t optPlot = 1)
{
  if(nRun==0){
    printf("\n\n YOU MUST PROVIDE A RUN NUMBER!!! \n\n");
    return;
  }
  
  TGrid::Connect("alien:",0,0,"t");
  
  char histoFName[150];
  sprintf(histoFName,"alien:///alice/data/2010/Reference/ZDC/%d_laserReference.root",nRun);
  
  TFile *file = TFile::Open(histoFName);
  file->cd();
  TH1F::AddDirectory(0);
  //
  // --- Histos for reference PMTs (high gain chains)
  TH1F *hPMRefChg = new TH1F("hPMRefChg","hPMRefChg", 100,0.,1000.);
  TH1F *hPMRefAhg = new TH1F("hPMRefAhg","hPMRefAhg", 100,0.,1000.);
  TH1F *hPMRefClg = new TH1F("hPMRefClg","hPMRefClg", 100,0.,4000.);
  TH1F *hPMRefAlg = new TH1F("hPMRefAlg","hPMRefAlg", 100,0.,4000.);
  //
  hPMRefChg = (TH1F*) file->Get("hPMRefChg");
  hPMRefAhg = (TH1F*) file->Get("hPMRefAhg");
  hPMRefClg = (TH1F*) file->Get("hPMRefClg");
  hPMRefAlg = (TH1F*) file->Get("hPMRefAlg");
  // --- Histos for detector PMTs 
  TH1F *hZNChg[5], *hZPChg[5], *hZNAhg[5], *hZPAhg[5], *hZEMhg[2];
  TH1F *hZNClg[5], *hZPClg[5], *hZNAlg[5], *hZPAlg[5], *hZEMlg[2];
  char hnamZNChg[20], hnamZPChg[20], hnamZNAhg[20], hnamZPAhg[20];
  char hnamZNClg[20], hnamZPClg[20], hnamZNAlg[20], hnamZPAlg[20];
  char hnamZEMhg[20], hnamZEMlg[20];
  for(Int_t j=0; j<5; j++){
    sprintf(hnamZNChg,"ZNChg-tow%d",j);
    sprintf(hnamZPChg,"ZPChg-tow%d",j);
    sprintf(hnamZNAhg,"ZNAhg-tow%d",j);
    sprintf(hnamZPAhg,"ZPAhg-tow%d",j);
    //
    hZNChg[j] = new TH1F(hnamZNChg, hnamZNChg, 100, 0., 1000.);
    hZPChg[j] = new TH1F(hnamZPChg, hnamZPChg, 100, 0., 1000.);
    hZNAhg[j] = new TH1F(hnamZNAhg, hnamZNAhg, 100, 0., 1000.);
    hZPAhg[j] = new TH1F(hnamZPAhg, hnamZPAhg, 100, 0., 1000.);
    //
    sprintf(hnamZNClg,"ZNClg-tow%d",j);
    sprintf(hnamZPClg,"ZPClg-tow%d",j);
    sprintf(hnamZNAlg,"ZNAlg-tow%d",j);
    sprintf(hnamZPAlg,"ZPAlg-tow%d",j);
    //
    hZNClg[j] = new TH1F(hnamZNClg, hnamZNClg, 100, 0., 4000.);
    hZPClg[j] = new TH1F(hnamZPClg, hnamZPClg, 100, 0., 4000.);
    hZNAlg[j] = new TH1F(hnamZNAlg, hnamZNAlg, 100, 0., 4000.);
    hZPAlg[j] = new TH1F(hnamZPAlg, hnamZPAlg, 100, 0., 4000.);
    //
    if(j<2){
      sprintf(hnamZEMhg,"ZEM%dhg",j);
      sprintf(hnamZEMlg,"ZEM%dlg",j);
      //
      hZEMhg[j] = new TH1F(hnamZEMhg, hnamZEMhg, 100, 0., 1000.);      
      hZEMlg[j] = new TH1F(hnamZEMlg, hnamZEMlg, 100, 0., 4000.);      
    }
    //
    hZNChg[j] = (TH1F*) file->Get(hnamZNChg);
    hZPChg[j] = (TH1F*) file->Get(hnamZPChg);
    hZNAhg[j] = (TH1F*) file->Get(hnamZNAhg);
    hZPAhg[j] = (TH1F*) file->Get(hnamZPAhg);
    //
    hZNClg[j] = (TH1F*) file->Get(hnamZNClg);
    hZPClg[j] = (TH1F*) file->Get(hnamZPClg);
    hZNAlg[j] = (TH1F*) file->Get(hnamZNAlg);
    hZPAlg[j] = (TH1F*) file->Get(hnamZPAlg);
    
    
  }

 if(optPlot==1){
  // Plot the retrieved histos
  //***********************************************************
  // #### ROOT initialization
  gROOT->Reset();
  gStyle->SetCanvasColor(10);
  gStyle->SetFrameFillColor(10);
  gStyle->SetOptTitle(0);
  gStyle->SetOptStat(1111);
  gStyle->SetOptFit(111);
  gStyle->SetTitleTextColor(9);
  gStyle->SetStatTextColor(4);
  gStyle->SetLineColor(1);
  gStyle->SetPalette(1);
  //***********************************************************
  TCanvas *c1 = new TCanvas("c1","ZNC",0,0,1000,400);
  c1->Divide(5,2);
  for(Int_t y=0; y<5; y++){
    c1->cd(y+1);
    hZNChg[y]->Draw();
    c1->cd(y+6);
    hZNClg[y]->Draw();
  }
  c1->Print("ZNCLaser.ps");
  //
  TCanvas *c2 = new TCanvas("c2","ZPC",300,0,1000,400);
  c2->Divide(5,2);
  for(Int_t y=0; y<5; y++){
    c2->cd(y+1);
    hZPChg[y]->Draw();
    c2->cd(y+6);
    hZPClg[y]->Draw();
  }
  c2->Print("ZPCLaser.ps");
  //
  TCanvas *c3 = new TCanvas("c3","ZEM",400,0,400,400);
  c3->Divide(2,2);
  for(Int_t y=0; y<2; y++){
    c3->cd(y+1);
    hZEMhg[y]->Draw();
    c3->cd(y+3);
    hZEMlg[y]->Draw();
  }
  c3->Print("ZEMLaser.ps");
  //
  TCanvas *c4 = new TCanvas("c4","ZNA",0,400,1000,400);
  c4->Divide(5,2);
  for(Int_t y=0; y<5; y++){
    c4->cd(y+1);
    hZNAhg[y]->Draw();
    c4->cd(y+6);
    hZNAlg[y]->Draw();
  }
  c4->Print("ZNALaser.ps");
  //
  TCanvas *c5 = new TCanvas("c5","ZPA",300,400,1000,400);
  c5->Divide(5,2);
  for(Int_t y=0; y<5; y++){
    c5->cd(y+1);
    hZPAhg[y]->Draw();
    c5->cd(y+6);
    hZPAlg[y]->Draw();
  }
  c5->Print("ZPALaser.ps");
  //
  TCanvas *c6 = new TCanvas("c6","Ref",400,0,400,400);
  c6->Divide(2,2);
  c6->cd(1);
  hPMRefChg->Draw();
  c6->cd(2);
  hPMRefAhg->Draw();
  c6->cd(3);
  hPMRefClg->Draw();
  c6->cd(4);
  hPMRefAlg->Draw();
 //
  c6->Print("RefLaser.ps");
 }
}
 CheckLaserHistos.C:1
 CheckLaserHistos.C:2
 CheckLaserHistos.C:3
 CheckLaserHistos.C:4
 CheckLaserHistos.C:5
 CheckLaserHistos.C:6
 CheckLaserHistos.C:7
 CheckLaserHistos.C:8
 CheckLaserHistos.C:9
 CheckLaserHistos.C:10
 CheckLaserHistos.C:11
 CheckLaserHistos.C:12
 CheckLaserHistos.C:13
 CheckLaserHistos.C:14
 CheckLaserHistos.C:15
 CheckLaserHistos.C:16
 CheckLaserHistos.C:17
 CheckLaserHistos.C:18
 CheckLaserHistos.C:19
 CheckLaserHistos.C:20
 CheckLaserHistos.C:21
 CheckLaserHistos.C:22
 CheckLaserHistos.C:23
 CheckLaserHistos.C:24
 CheckLaserHistos.C:25
 CheckLaserHistos.C:26
 CheckLaserHistos.C:27
 CheckLaserHistos.C:28
 CheckLaserHistos.C:29
 CheckLaserHistos.C:30
 CheckLaserHistos.C:31
 CheckLaserHistos.C:32
 CheckLaserHistos.C:33
 CheckLaserHistos.C:34
 CheckLaserHistos.C:35
 CheckLaserHistos.C:36
 CheckLaserHistos.C:37
 CheckLaserHistos.C:38
 CheckLaserHistos.C:39
 CheckLaserHistos.C:40
 CheckLaserHistos.C:41
 CheckLaserHistos.C:42
 CheckLaserHistos.C:43
 CheckLaserHistos.C:44
 CheckLaserHistos.C:45
 CheckLaserHistos.C:46
 CheckLaserHistos.C:47
 CheckLaserHistos.C:48
 CheckLaserHistos.C:49
 CheckLaserHistos.C:50
 CheckLaserHistos.C:51
 CheckLaserHistos.C:52
 CheckLaserHistos.C:53
 CheckLaserHistos.C:54
 CheckLaserHistos.C:55
 CheckLaserHistos.C:56
 CheckLaserHistos.C:57
 CheckLaserHistos.C:58
 CheckLaserHistos.C:59
 CheckLaserHistos.C:60
 CheckLaserHistos.C:61
 CheckLaserHistos.C:62
 CheckLaserHistos.C:63
 CheckLaserHistos.C:64
 CheckLaserHistos.C:65
 CheckLaserHistos.C:66
 CheckLaserHistos.C:67
 CheckLaserHistos.C:68
 CheckLaserHistos.C:69
 CheckLaserHistos.C:70
 CheckLaserHistos.C:71
 CheckLaserHistos.C:72
 CheckLaserHistos.C:73
 CheckLaserHistos.C:74
 CheckLaserHistos.C:75
 CheckLaserHistos.C:76
 CheckLaserHistos.C:77
 CheckLaserHistos.C:78
 CheckLaserHistos.C:79
 CheckLaserHistos.C:80
 CheckLaserHistos.C:81
 CheckLaserHistos.C:82
 CheckLaserHistos.C:83
 CheckLaserHistos.C:84
 CheckLaserHistos.C:85
 CheckLaserHistos.C:86
 CheckLaserHistos.C:87
 CheckLaserHistos.C:88
 CheckLaserHistos.C:89
 CheckLaserHistos.C:90
 CheckLaserHistos.C:91
 CheckLaserHistos.C:92
 CheckLaserHistos.C:93
 CheckLaserHistos.C:94
 CheckLaserHistos.C:95
 CheckLaserHistos.C:96
 CheckLaserHistos.C:97
 CheckLaserHistos.C:98
 CheckLaserHistos.C:99
 CheckLaserHistos.C:100
 CheckLaserHistos.C:101
 CheckLaserHistos.C:102
 CheckLaserHistos.C:103
 CheckLaserHistos.C:104
 CheckLaserHistos.C:105
 CheckLaserHistos.C:106
 CheckLaserHistos.C:107
 CheckLaserHistos.C:108
 CheckLaserHistos.C:109
 CheckLaserHistos.C:110
 CheckLaserHistos.C:111
 CheckLaserHistos.C:112
 CheckLaserHistos.C:113
 CheckLaserHistos.C:114
 CheckLaserHistos.C:115
 CheckLaserHistos.C:116
 CheckLaserHistos.C:117
 CheckLaserHistos.C:118
 CheckLaserHistos.C:119
 CheckLaserHistos.C:120
 CheckLaserHistos.C:121
 CheckLaserHistos.C:122
 CheckLaserHistos.C:123
 CheckLaserHistos.C:124
 CheckLaserHistos.C:125
 CheckLaserHistos.C:126
 CheckLaserHistos.C:127
 CheckLaserHistos.C:128
 CheckLaserHistos.C:129
 CheckLaserHistos.C:130
 CheckLaserHistos.C:131
 CheckLaserHistos.C:132
 CheckLaserHistos.C:133
 CheckLaserHistos.C:134
 CheckLaserHistos.C:135
 CheckLaserHistos.C:136
 CheckLaserHistos.C:137
 CheckLaserHistos.C:138
 CheckLaserHistos.C:139
 CheckLaserHistos.C:140
 CheckLaserHistos.C:141
 CheckLaserHistos.C:142
 CheckLaserHistos.C:143
 CheckLaserHistos.C:144
 CheckLaserHistos.C:145
 CheckLaserHistos.C:146
 CheckLaserHistos.C:147
 CheckLaserHistos.C:148
 CheckLaserHistos.C:149
 CheckLaserHistos.C:150
 CheckLaserHistos.C:151
 CheckLaserHistos.C:152
 CheckLaserHistos.C:153
 CheckLaserHistos.C:154
 CheckLaserHistos.C:155
 CheckLaserHistos.C:156
 CheckLaserHistos.C:157
 CheckLaserHistos.C:158
 CheckLaserHistos.C:159
 CheckLaserHistos.C:160
 CheckLaserHistos.C:161
 CheckLaserHistos.C:162
 CheckLaserHistos.C:163
 CheckLaserHistos.C:164
 CheckLaserHistos.C:165
 CheckLaserHistos.C:166
 CheckLaserHistos.C:167
 CheckLaserHistos.C:168
 CheckLaserHistos.C:169
 CheckLaserHistos.C:170
 CheckLaserHistos.C:171
 CheckLaserHistos.C:172
 CheckLaserHistos.C:173