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 CheckPedestalHistos(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/2012/Reference/ZDC/%d_pedestalReference.root",nRun);

  int const kNChannels = 24;
  //
 TFile *file = TFile::Open(histoFName);
  file->cd();
  TH1F::AddDirectory(0);
  //
  TH1F *hPedhg[kNChannels], *hPedOutOfTimehg[kNChannels];
  TH2F *hPedCorrhg[kNChannels];
  TH1F *hPedlg[kNChannels], *hPedOutOfTimelg[kNChannels];
  TH2F *hPedCorrlg[kNChannels];
  //
  char namhist1hg[50], namhist2hg[50], namhist3hg[50];
  char namhist1lg[50], namhist2lg[50], namhist3lg[50];
  for(Int_t j=0; j<kNChannels; j++){
     if(j<=4){ // ZNC
       sprintf(namhist1hg,"PedZNChg_%d",j);
       sprintf(namhist2hg,"PedZNChgOutOfTime_%d",j);
       sprintf(namhist3hg,"PedCorrZNChg_%d",j);
       //
       sprintf(namhist1lg,"PedZNClg_%d",j);
       sprintf(namhist2lg,"PedZNClgOutOfTime_%d",j);
       sprintf(namhist3lg,"PedCorrZNClg_%d",j);
     }
     else if(j>=5 && j<=9){ // ZPC
       sprintf(namhist1hg,"PedZPChg_%d",j-5);
       sprintf(namhist2hg,"PedZPChgOutOfTime_%d",j-5);
       sprintf(namhist3hg,"PedCorrZPChg_%d",j-5);
       //
       sprintf(namhist1lg,"PedZPClg_%d",j-5);
       sprintf(namhist2lg,"PedZPClgOutOfTime_%d",j-5);
       sprintf(namhist3lg,"PedCorrZPClg_%d",j-5);       
     }
     else if(j==10 || j==11){ // ZEM
       sprintf(namhist1hg,"PedZEMhg_%d",j-9);
       sprintf(namhist2hg,"PedZEMhgOutOfTime_%d",j-9);
       sprintf(namhist3hg,"PedCorrZEMhg_%d",j-9);
       //
       sprintf(namhist1lg,"PedZEMlg_%d",j-9);
       sprintf(namhist2lg,"PedZEMlgOutOfTime_%d",j-9);
       sprintf(namhist3lg,"PedCorrZEMlg_%d",j-9);
     }
     else if(j>=12 && j<=16){ // ZNA
       sprintf(namhist1hg,"PedZNAhg_%d",j-12);
       sprintf(namhist2hg,"PedZNAhgOutOfTime_%d",j-12);
       sprintf(namhist3hg,"PedCorrZNAhg_%d",j-12);
       //
       sprintf(namhist1lg,"PedZNAlg_%d",j-12);
       sprintf(namhist2lg,"PedZNAlgOutOfTime_%d",j-12);
       sprintf(namhist3lg,"PedCorrZNAlg_%d",j-12);
     }
     else if(j>=17 && j<=21){ // ZPA
       sprintf(namhist1hg,"PedZPAhg_%d",j-17);
       sprintf(namhist2hg,"PedZPAhgOutOfTime_%d",j-17);
       sprintf(namhist3hg,"PedCorrZPAhg_%d",j-17);
       //
       sprintf(namhist1lg,"PedZPAlg_%d",j-17);
       sprintf(namhist2lg,"PedZPAlgOutOfTime_%d",j-17);
       sprintf(namhist3lg,"PedCorrZPAlg_%d",j-17);
     }
     else if(j==22 || j==23){ //Reference PMs
       sprintf(namhist1hg,"PedRefhg_%d",j-22);
       sprintf(namhist2hg,"PedRefhgOutOfTime_%d",j-22);
       sprintf(namhist3hg,"PedCorrRefhg_%d",j-22);
       //
       sprintf(namhist1lg,"PedReflg_%d",j-22);
       sprintf(namhist2lg,"PedReflgOutOfTime_%d",j-22);
       sprintf(namhist3lg,"PedCorrReflg_%d",j-22);
     }
     // --- High gain chain histos
     hPedhg[j] = (TH1F*) file->Get(namhist1hg);
     hPedOutOfTimehg[j] = (TH1F*) file->Get(namhist2hg);
     hPedCorrhg[j] =  (TH2F*) file->Get(namhist3hg);
     // --- Low gain chain histos
     hPedlg[j] = (TH1F*) file->Get(namhist1lg);
     hPedOutOfTimelg[j] =(TH1F*) file->Get(namhist2lg);
     hPedCorrlg[j] = (TH2F*) file->Get(namhist3lg);
  }

 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 *c6 = new TCanvas("c6","Side C correlations",0,200,1000,800);
  c6->Divide(5,4);
  for(Int_t t=0; t<10; t++){
    c6->cd(t+1);
    hPedCorrhg[t]->Draw();
    c6->cd(t+11);
    hPedCorrlg[t]->Draw();
  }
  c6->Print("CorrSideC.gif");
  //
  TCanvas *c7 = new TCanvas("c7","Side A correlations",300,200,1000,800);
  c7->Divide(5,4);
  for(Int_t t=0; t<10; t++){
    c7->cd(t+1);
    hPedCorrhg[t+12]->Draw();
    c7->cd(t+11);
    hPedCorrlg[t+12]->Draw();
  }
  c7->Print("CorrSideA.gif");
  //
  TCanvas *c8 = new TCanvas("c8","ZEM correlations",400,200,400,400);
  c8->Divide(2,2);
  for(Int_t t=0; t<2; t++){
    c8->cd(t+1);
    hPedCorrhg[t+10]->Draw();
    c8->cd(t+3);
    hPedCorrlg[t+10]->Draw();
  }
  c8->Print("CorrZEM.gif");
  //***********************************************************
  TCanvas *c1 = new TCanvas("c1","ZNC pedestals",0,0,1000,400);
  c1->Divide(5,2);
  for(Int_t y=0; y<5; y++){
    c1->cd(y+1);
    hPedhg[y]->Draw();
    c1->cd(y+6);
    hPedlg[y]->Draw();
  }
  c1->Print("ZNCPed.gif");
  //
  TCanvas *c2 = new TCanvas("c2","ZPC pedestals",300,0,1000,400);
  c2->Divide(5,2);
  for(Int_t y=0; y<5; y++){
    c2->cd(y+1);
    hPedhg[y+5]->Draw();
    c2->cd(y+6);
    hPedlg[y+5]->Draw();
  }
  c2->Print("ZPCPed.gif");
  //
  TCanvas *c3 = new TCanvas("c3","ZEM pedestals",400,0,400,400);
  c3->Divide(2,2);
  for(Int_t y=0; y<2; y++){
    c3->cd(y+1);
    hPedhg[y+10]->Draw();
    c3->cd(y+3);
    hPedlg[y+10]->Draw();
  }
  c3->Print("ZEMPed.gif");
  //
  TCanvas *c4 = new TCanvas("c4","ZNA pedestals",0,400,1000,400);
  c4->Divide(5,2);
  for(Int_t y=0; y<5; y++){
    c4->cd(y+1);
    hPedhg[y+12]->Draw();
    c4->cd(y+6);
    hPedlg[y+12]->Draw();
  }
  c4->Print("ZNAPed.gif");
  //
  TCanvas *c5 = new TCanvas("c5","ZPA pedestals",300,400,1000,400);
  c5->Divide(5,2);
  for(Int_t y=0; y<5; y++){
    c5->cd(y+1);
    hPedhg[y+17]->Draw();
    c5->cd(y+6);
    hPedlg[y+17]->Draw();
  }
  c5->Print("ZPAPed.gif");
 }
}
 CheckPedestalHistos.C:1
 CheckPedestalHistos.C:2
 CheckPedestalHistos.C:3
 CheckPedestalHistos.C:4
 CheckPedestalHistos.C:5
 CheckPedestalHistos.C:6
 CheckPedestalHistos.C:7
 CheckPedestalHistos.C:8
 CheckPedestalHistos.C:9
 CheckPedestalHistos.C:10
 CheckPedestalHistos.C:11
 CheckPedestalHistos.C:12
 CheckPedestalHistos.C:13
 CheckPedestalHistos.C:14
 CheckPedestalHistos.C:15
 CheckPedestalHistos.C:16
 CheckPedestalHistos.C:17
 CheckPedestalHistos.C:18
 CheckPedestalHistos.C:19
 CheckPedestalHistos.C:20
 CheckPedestalHistos.C:21
 CheckPedestalHistos.C:22
 CheckPedestalHistos.C:23
 CheckPedestalHistos.C:24
 CheckPedestalHistos.C:25
 CheckPedestalHistos.C:26
 CheckPedestalHistos.C:27
 CheckPedestalHistos.C:28
 CheckPedestalHistos.C:29
 CheckPedestalHistos.C:30
 CheckPedestalHistos.C:31
 CheckPedestalHistos.C:32
 CheckPedestalHistos.C:33
 CheckPedestalHistos.C:34
 CheckPedestalHistos.C:35
 CheckPedestalHistos.C:36
 CheckPedestalHistos.C:37
 CheckPedestalHistos.C:38
 CheckPedestalHistos.C:39
 CheckPedestalHistos.C:40
 CheckPedestalHistos.C:41
 CheckPedestalHistos.C:42
 CheckPedestalHistos.C:43
 CheckPedestalHistos.C:44
 CheckPedestalHistos.C:45
 CheckPedestalHistos.C:46
 CheckPedestalHistos.C:47
 CheckPedestalHistos.C:48
 CheckPedestalHistos.C:49
 CheckPedestalHistos.C:50
 CheckPedestalHistos.C:51
 CheckPedestalHistos.C:52
 CheckPedestalHistos.C:53
 CheckPedestalHistos.C:54
 CheckPedestalHistos.C:55
 CheckPedestalHistos.C:56
 CheckPedestalHistos.C:57
 CheckPedestalHistos.C:58
 CheckPedestalHistos.C:59
 CheckPedestalHistos.C:60
 CheckPedestalHistos.C:61
 CheckPedestalHistos.C:62
 CheckPedestalHistos.C:63
 CheckPedestalHistos.C:64
 CheckPedestalHistos.C:65
 CheckPedestalHistos.C:66
 CheckPedestalHistos.C:67
 CheckPedestalHistos.C:68
 CheckPedestalHistos.C:69
 CheckPedestalHistos.C:70
 CheckPedestalHistos.C:71
 CheckPedestalHistos.C:72
 CheckPedestalHistos.C:73
 CheckPedestalHistos.C:74
 CheckPedestalHistos.C:75
 CheckPedestalHistos.C:76
 CheckPedestalHistos.C:77
 CheckPedestalHistos.C:78
 CheckPedestalHistos.C:79
 CheckPedestalHistos.C:80
 CheckPedestalHistos.C:81
 CheckPedestalHistos.C:82
 CheckPedestalHistos.C:83
 CheckPedestalHistos.C:84
 CheckPedestalHistos.C:85
 CheckPedestalHistos.C:86
 CheckPedestalHistos.C:87
 CheckPedestalHistos.C:88
 CheckPedestalHistos.C:89
 CheckPedestalHistos.C:90
 CheckPedestalHistos.C:91
 CheckPedestalHistos.C:92
 CheckPedestalHistos.C:93
 CheckPedestalHistos.C:94
 CheckPedestalHistos.C:95
 CheckPedestalHistos.C:96
 CheckPedestalHistos.C:97
 CheckPedestalHistos.C:98
 CheckPedestalHistos.C:99
 CheckPedestalHistos.C:100
 CheckPedestalHistos.C:101
 CheckPedestalHistos.C:102
 CheckPedestalHistos.C:103
 CheckPedestalHistos.C:104
 CheckPedestalHistos.C:105
 CheckPedestalHistos.C:106
 CheckPedestalHistos.C:107
 CheckPedestalHistos.C:108
 CheckPedestalHistos.C:109
 CheckPedestalHistos.C:110
 CheckPedestalHistos.C:111
 CheckPedestalHistos.C:112
 CheckPedestalHistos.C:113
 CheckPedestalHistos.C:114
 CheckPedestalHistos.C:115
 CheckPedestalHistos.C:116
 CheckPedestalHistos.C:117
 CheckPedestalHistos.C:118
 CheckPedestalHistos.C:119
 CheckPedestalHistos.C:120
 CheckPedestalHistos.C:121
 CheckPedestalHistos.C:122
 CheckPedestalHistos.C:123
 CheckPedestalHistos.C:124
 CheckPedestalHistos.C:125
 CheckPedestalHistos.C:126
 CheckPedestalHistos.C:127
 CheckPedestalHistos.C:128
 CheckPedestalHistos.C:129
 CheckPedestalHistos.C:130
 CheckPedestalHistos.C:131
 CheckPedestalHistos.C:132
 CheckPedestalHistos.C:133
 CheckPedestalHistos.C:134
 CheckPedestalHistos.C:135
 CheckPedestalHistos.C:136
 CheckPedestalHistos.C:137
 CheckPedestalHistos.C:138
 CheckPedestalHistos.C:139
 CheckPedestalHistos.C:140
 CheckPedestalHistos.C:141
 CheckPedestalHistos.C:142
 CheckPedestalHistos.C:143
 CheckPedestalHistos.C:144
 CheckPedestalHistos.C:145
 CheckPedestalHistos.C:146
 CheckPedestalHistos.C:147
 CheckPedestalHistos.C:148
 CheckPedestalHistos.C:149
 CheckPedestalHistos.C:150
 CheckPedestalHistos.C:151
 CheckPedestalHistos.C:152
 CheckPedestalHistos.C:153
 CheckPedestalHistos.C:154
 CheckPedestalHistos.C:155
 CheckPedestalHistos.C:156
 CheckPedestalHistos.C:157
 CheckPedestalHistos.C:158
 CheckPedestalHistos.C:159
 CheckPedestalHistos.C:160
 CheckPedestalHistos.C:161
 CheckPedestalHistos.C:162
 CheckPedestalHistos.C:163
 CheckPedestalHistos.C:164
 CheckPedestalHistos.C:165
 CheckPedestalHistos.C:166
 CheckPedestalHistos.C:167
 CheckPedestalHistos.C:168
 CheckPedestalHistos.C:169
 CheckPedestalHistos.C:170
 CheckPedestalHistos.C:171
 CheckPedestalHistos.C:172
 CheckPedestalHistos.C:173
 CheckPedestalHistos.C:174
 CheckPedestalHistos.C:175
 CheckPedestalHistos.C:176
 CheckPedestalHistos.C:177
 CheckPedestalHistos.C:178
 CheckPedestalHistos.C:179
 CheckPedestalHistos.C:180
 CheckPedestalHistos.C:181
 CheckPedestalHistos.C:182
 CheckPedestalHistos.C:183
 CheckPedestalHistos.C:184
 CheckPedestalHistos.C:185
 CheckPedestalHistos.C:186
 CheckPedestalHistos.C:187
 CheckPedestalHistos.C:188
 CheckPedestalHistos.C:189
 CheckPedestalHistos.C:190
 CheckPedestalHistos.C:191
 CheckPedestalHistos.C:192
 CheckPedestalHistos.C:193
 CheckPedestalHistos.C:194
 CheckPedestalHistos.C:195
 CheckPedestalHistos.C:196
 CheckPedestalHistos.C:197
 CheckPedestalHistos.C:198
 CheckPedestalHistos.C:199
 CheckPedestalHistos.C:200
 CheckPedestalHistos.C:201
 CheckPedestalHistos.C:202
 CheckPedestalHistos.C:203
 CheckPedestalHistos.C:204
 CheckPedestalHistos.C:205
 CheckPedestalHistos.C:206