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

#include <stdio.h>
#include <stdlib.h>
#include <TROOT.h>
#include <Riostream.h>
#include <TClassTable.h>
#include <TStyle.h>
#include <TMath.h>
#include <TFile.h>
#include <TCanvas.h>
#include <TH1.h>
#include <TH2.h>
#include <TProfile.h>
#include <TLine.h>
#include <TGrid.h>
#include <TBits.h>
#include <TChain.h>
#include <TNtuple.h>
#include <TTree.h>
#include <TBranch.h>
#include <TFileMerger.h>
#include <TGridResult.h>
#include <TSystem.h>

#endif

void PlotZDCQAtrain(TString option="local",
		    Int_t nRun=0,
		    TString period="LHC11h",
		    TString recoPass="pass1_HLT",
		    TString qaTrain="QA",
		    TString fileName="QAresults.root"){

  gStyle->SetOptStat(111);
  //  gStyle->SetOptTitle(0);
  
  TFile *f;
  TString path;
  Int_t year=2011;
  if(period.Contains("LHC10")) year=2010;
  else if(period.Contains("LHC11")) year=2011;

  if(option.Contains("local")){
    char fnamerun[20];
    sprintf(fnamerun,"QAresults%d.root",nRun);
    f = new TFile(fnamerun);
    printf("Opened file %s\n",f->GetName());
  }
  else{
    TGrid::Connect("alien:");
    char filenameAlien[250];
    sprintf(filenameAlien,"alien:///alice/data/%d/%s/%09d/ESDs/%s/%s",year,period.Data(),nRun,recoPass.Data(),fileName.Data());    
    f = TFile::Open(filenameAlien);
    printf("Opened file %s\n",f->GetName());
  }

  TDirectoryFile* df=(TDirectoryFile*)f->Get("ZDC_Performance");
  if(!df){
    printf("ZDC_Performance MISSING -> Exit\n");
    return;
  }
  TList* l=(TList*)df->Get("QAZDCHists");
  if(!df){
    printf("QAZDCHists TList MISSING -> Exit\n");
    return;
  }

  TH2F *fDebunch       = (TH2F*)l->FindObject("fDebunch");
  TH1F *fhTDCZNSum     = (TH1F*)l->FindObject("fhTDCZNSum");	 
  TH1F *fhTDCZNDiff    = (TH1F*)l->FindObject("fhTDCZNDiff");	 
  TH1F *fhZNCSpectrum  = (TH1F*)l->FindObject("fhZNCSpectrum");  
  TH1F *fhZNASpectrum  = (TH1F*)l->FindObject("fhZNASpectrum");  
  TH1F *fhZPCSpectrum  = (TH1F*)l->FindObject("fhZPCSpectrum");  
  TH1F *fhZPASpectrum  = (TH1F*)l->FindObject("fhZPASpectrum");  
  TH1F *fhZEM1Spectrum = (TH1F*)l->FindObject("fhZEM1Spectrum"); 
  TH1F *fhZEM2Spectrum = (TH1F*)l->FindObject("fhZEM2Spectrum"); 
  TH1F *fhZNCpmc   = (TH1F*)l->FindObject("fhZNCpmc");   
  TH1F *fhZNApmc   = (TH1F*)l->FindObject("fhZNApmc");   
  TH1F *fhZPCpmc   = (TH1F*)l->FindObject("fhZPCpmc");   
  TH1F *fhZPApmc   = (TH1F*)l->FindObject("fhZPApmc");  
  TH2F *fhZNCCentroid  = (TH2F*)l->FindObject("fhZNCCentroid");  
  TH2F *fhZNACentroid  = (TH2F*)l->FindObject("fhZNACentroid");   
  TH1F *fhZNCemd   = (TH1F*)l->FindObject("fhZNCemd");   
  TH1F *fhZNAemd   = (TH1F*)l->FindObject("fhZNAemd");   
  TH1F *fhPMCZNCemd    = (TH1F*)l->FindObject("fhPMCZNCemd");	 
  TH1F *fhPMCZNAemd    = (TH1F*)l->FindObject("fhPMCZNAemd");	 
 
  /*TH1D *hxZNC = fhZNCCentroid->ProjectionX("hxZNC");
  TH1D *hyZNC = fhZNCCentroid->ProjectionY("hyZNC");
  TH1D *hxZNA = fhZNACentroid->ProjectionX("hxZNA");
  TH1D *hyZNA = fhZNACentroid->ProjectionY("hyZNA");*/


  gStyle->SetPalette(1);
  
  char nam[25];
  sprintf(nam,"QAhistos%d.root",nRun);
  TFile *fileout = TFile::Open(nam,"RECREATE");
        fDebunch->Write();
  	fhTDCZNSum->Write();    
	fhTDCZNDiff ->Write();   
	fhZNCSpectrum->Write();  
	fhZNASpectrum ->Write(); 
	fhZPCSpectrum ->Write(); 
	fhZPASpectrum ->Write(); 
	fhZEM1Spectrum->Write(); 
	fhZEM2Spectrum ->Write();
	fhZNCpmc->Write();
	fhZNApmc->Write();
	fhZPCpmc->Write();
	fhZPApmc->Write();
	fhZNCCentroid->Write();  
	fhZNACentroid->Write();  
	fhZNCemd->Write();
	fhZNAemd->Write();
	fhPMCZNCemd->Write();    
	fhPMCZNAemd->Write();
	fhZNCCentroid->Write();
  
  fileout->Close();
}

 PlotZDCQAtrain.C:1
 PlotZDCQAtrain.C:2
 PlotZDCQAtrain.C:3
 PlotZDCQAtrain.C:4
 PlotZDCQAtrain.C:5
 PlotZDCQAtrain.C:6
 PlotZDCQAtrain.C:7
 PlotZDCQAtrain.C:8
 PlotZDCQAtrain.C:9
 PlotZDCQAtrain.C:10
 PlotZDCQAtrain.C:11
 PlotZDCQAtrain.C:12
 PlotZDCQAtrain.C:13
 PlotZDCQAtrain.C:14
 PlotZDCQAtrain.C:15
 PlotZDCQAtrain.C:16
 PlotZDCQAtrain.C:17
 PlotZDCQAtrain.C:18
 PlotZDCQAtrain.C:19
 PlotZDCQAtrain.C:20
 PlotZDCQAtrain.C:21
 PlotZDCQAtrain.C:22
 PlotZDCQAtrain.C:23
 PlotZDCQAtrain.C:24
 PlotZDCQAtrain.C:25
 PlotZDCQAtrain.C:26
 PlotZDCQAtrain.C:27
 PlotZDCQAtrain.C:28
 PlotZDCQAtrain.C:29
 PlotZDCQAtrain.C:30
 PlotZDCQAtrain.C:31
 PlotZDCQAtrain.C:32
 PlotZDCQAtrain.C:33
 PlotZDCQAtrain.C:34
 PlotZDCQAtrain.C:35
 PlotZDCQAtrain.C:36
 PlotZDCQAtrain.C:37
 PlotZDCQAtrain.C:38
 PlotZDCQAtrain.C:39
 PlotZDCQAtrain.C:40
 PlotZDCQAtrain.C:41
 PlotZDCQAtrain.C:42
 PlotZDCQAtrain.C:43
 PlotZDCQAtrain.C:44
 PlotZDCQAtrain.C:45
 PlotZDCQAtrain.C:46
 PlotZDCQAtrain.C:47
 PlotZDCQAtrain.C:48
 PlotZDCQAtrain.C:49
 PlotZDCQAtrain.C:50
 PlotZDCQAtrain.C:51
 PlotZDCQAtrain.C:52
 PlotZDCQAtrain.C:53
 PlotZDCQAtrain.C:54
 PlotZDCQAtrain.C:55
 PlotZDCQAtrain.C:56
 PlotZDCQAtrain.C:57
 PlotZDCQAtrain.C:58
 PlotZDCQAtrain.C:59
 PlotZDCQAtrain.C:60
 PlotZDCQAtrain.C:61
 PlotZDCQAtrain.C:62
 PlotZDCQAtrain.C:63
 PlotZDCQAtrain.C:64
 PlotZDCQAtrain.C:65
 PlotZDCQAtrain.C:66
 PlotZDCQAtrain.C:67
 PlotZDCQAtrain.C:68
 PlotZDCQAtrain.C:69
 PlotZDCQAtrain.C:70
 PlotZDCQAtrain.C:71
 PlotZDCQAtrain.C:72
 PlotZDCQAtrain.C:73
 PlotZDCQAtrain.C:74
 PlotZDCQAtrain.C:75
 PlotZDCQAtrain.C:76
 PlotZDCQAtrain.C:77
 PlotZDCQAtrain.C:78
 PlotZDCQAtrain.C:79
 PlotZDCQAtrain.C:80
 PlotZDCQAtrain.C:81
 PlotZDCQAtrain.C:82
 PlotZDCQAtrain.C:83
 PlotZDCQAtrain.C:84
 PlotZDCQAtrain.C:85
 PlotZDCQAtrain.C:86
 PlotZDCQAtrain.C:87
 PlotZDCQAtrain.C:88
 PlotZDCQAtrain.C:89
 PlotZDCQAtrain.C:90
 PlotZDCQAtrain.C:91
 PlotZDCQAtrain.C:92
 PlotZDCQAtrain.C:93
 PlotZDCQAtrain.C:94
 PlotZDCQAtrain.C:95
 PlotZDCQAtrain.C:96
 PlotZDCQAtrain.C:97
 PlotZDCQAtrain.C:98
 PlotZDCQAtrain.C:99
 PlotZDCQAtrain.C:100
 PlotZDCQAtrain.C:101
 PlotZDCQAtrain.C:102
 PlotZDCQAtrain.C:103
 PlotZDCQAtrain.C:104
 PlotZDCQAtrain.C:105
 PlotZDCQAtrain.C:106
 PlotZDCQAtrain.C:107
 PlotZDCQAtrain.C:108
 PlotZDCQAtrain.C:109
 PlotZDCQAtrain.C:110
 PlotZDCQAtrain.C:111
 PlotZDCQAtrain.C:112
 PlotZDCQAtrain.C:113
 PlotZDCQAtrain.C:114
 PlotZDCQAtrain.C:115
 PlotZDCQAtrain.C:116
 PlotZDCQAtrain.C:117
 PlotZDCQAtrain.C:118
 PlotZDCQAtrain.C:119
 PlotZDCQAtrain.C:120
 PlotZDCQAtrain.C:121
 PlotZDCQAtrain.C:122
 PlotZDCQAtrain.C:123
 PlotZDCQAtrain.C:124