ROOT logo
///////////////////////////////////////////
//
// Macro to plot comparison of different
// distributions (spectra, correlations)
// produced in QA trains but different data
// Based on the plots provided by DrawAnaCaloTrackQA.C
//
// To execute: root -q -b -l DrawProductionComparison.C'("Pi0IM_GammaTrackCorr_EMCAL_default","AnalysisResults.root")'
// The input files must be placed in different directoried,
// each one defined in the string array "prod"
//     TString prod[] = {"AOD142","AOD115","ESD"};
// that has to be modified inside the macro.
// The number of productions has to be specified
//     const Int_t nProd = 3;
// There is no limitation to the amount of productions
//
// Author: Gustavo.Conesa.Balbastre@cern.ch
//
//

// Some global variables
const Int_t nProd = 3;
TString prod[] = {"AOD142","AOD115","ESD"};

TList *list[nProd];
TFile *file[nProd];
TString histoTag = "";
Int_t color[]={kBlack,kRed,kBlue,kOrange+1,kYellow+1,kGreen+2,kCyan+1,kViolet,kMagenta+2,kGray};

Float_t nEvents[nProd] = 0;

//_______________________________________________________________________
void DrawProductionComparison(TString listName = "Pi0IM_GammaTrackCorr_EMCAL_default",
                              TString fileName = "AnalysisResults.root")
{

  printf("Open <%s>; Get List : <%s>\n",fileName.Data(),listName.Data());
  
  histoTag = listName;
  
  //Access the file and list of histograms, global variables
  GetFileAndList(fileName, listName);
  
  gStyle->SetOptTitle(1);
  gStyle->SetOptStat(0);
  gStyle->SetOptFit(000000);
  gStyle->SetPadRightMargin(0.15);
  //gStyle->SetPadTopMargin(0.02);
  //gStyle->SetPadLeftMargin(0.15);
  gStyle->SetTitleFontSize(0.06);
  
  // Declare the different histograms, arrays input is production
  TH1F* hRaw [nProd];
  TH1F* hCorr[nProd];
  TH1F* hTM  [nProd];
  TH1F* hShSh[nProd];
  
  TH1F* hRatRaw [nProd-1];
  TH1F* hRatCorr[nProd-1];
  TH1F* hRatTM  [nProd-1];
  TH1F* hRatShSh[nProd-1];

  TH1F* hCen   [nProd];
  TH1F* hRatCen[nProd-1];
  
  TH1F* hVertex[3][nProd];
  TH1F* hRatVertex[3][nProd-1];

  TH2F* h2TrackMatchResEtaNeg[nProd];
  TH2F* h2TrackMatchResEtaPos[nProd];
  TH2F* h2TrackMatchResPhiNeg[nProd];
  TH2F* h2TrackMatchResPhiPos[nProd];
  
  TH1F* hTrackMatchResEtaNeg[nProd];
  TH1F* hTrackMatchResEtaPos[nProd];
  TH1F* hTrackMatchResPhiNeg[nProd];
  TH1F* hTrackMatchResPhiPos[nProd];
  
  TH1F* hRatTrackMatchResEtaNeg[nProd-1];
  TH1F* hRatTrackMatchResEtaPos[nProd-1];
  TH1F* hRatTrackMatchResPhiNeg[nProd-1];
  TH1F* hRatTrackMatchResPhiPos[nProd-1];

  TH1F * hTrackPt[nProd] ;
  TH1F * hTrackPtSPD[nProd] ;
  TH1F * hTrackPtNoSPD[nProd] ;
  TH1F * hRatTrackPt[nProd-1] ;
  TH1F * hRatTrackPtSPD[nProd-1] ;
  TH1F * hRatTrackPtNoSPD[nProd-1] ;
  
  TH2F * hTrackEtaPhi[nProd] ;
  TH2F * hTrackEtaPhiSPD[nProd] ;
  TH2F * hTrackEtaPhiNoSPD[nProd] ;
  TH1F * hTrackPhi[nProd] ;
  TH1F * hTrackPhiSPD[nProd] ;
  TH1F * hTrackPhiNoSPD[nProd] ;
  TH1F * hRatTrackPhi[nProd-1] ;
  TH1F * hRatTrackPhiSPD[nProd-1] ;
  TH1F * hRatTrackPhiNoSPD[nProd-1] ;
  
  TH2F* h2XE[nProd];
  TH2F* h2XEUE[nProd];
  TH1F* hXE[nProd];
  TH1F* hXEUE[nProd];
  TH1F* hRatXE[nProd-1];
  TH1F* hRatXEUE[nProd-1];

  
  // Fill the histograms array for each of the productions, do the comparison ratios
  for(Int_t iprod = 0; iprod <  nProd; iprod++)
  {
    // Calorimeter Clusters
    {
      hRaw [iprod] = (TH1F*) GetHisto("AnaPhoton_hCut_0_Open"    ,iprod);
      hCorr[iprod] = (TH1F*) GetHisto("AnaPhoton_hCut_4_NCells"  ,iprod);
      hTM  [iprod] = (TH1F*) GetHisto("AnaPhoton_hCut_7_Matching",iprod);
      hShSh[iprod] = (TH1F*) GetHisto("AnaPhoton_hCut_9_PID"     ,iprod);

      hRaw [iprod]->Sumw2();
      hCorr[iprod]->Sumw2();
      hTM  [iprod]->Sumw2();
      hShSh[iprod]->Sumw2();
      
      hRaw [iprod]->Scale(1./nEvents[iprod]);
      hCorr[iprod]->Scale(1./nEvents[iprod]);
      hTM  [iprod]->Scale(1./nEvents[iprod]);
      hShSh[iprod]->Scale(1./nEvents[iprod]);
      
      hRaw[iprod]->SetMarkerColor(color[iprod]);
      hRaw[iprod]->SetMarkerStyle(24);
      
      hCorr[iprod]->SetTitle("Cluster spectra with/out cuts");
      hCorr[iprod]->SetYTitle("1/N_{events} dN/dp_{T}");
      hCorr[iprod]->SetTitleOffset(1.5,"Y");
      hCorr[iprod]->SetMarkerColor(color[iprod]);
      hCorr[iprod]->SetMarkerStyle(20);
      hCorr[iprod]->SetAxisRange(0.,30.,"X");
      //hCorr[iprod]->SetMaximum(1.1);
      //hCorr[iprod]->SetMinimum(0);
      
      hTM  [iprod]->SetMarkerColor(color[iprod]);
      hTM  [iprod]->SetMarkerStyle(21);
      
      hShSh[iprod]->SetMarkerColor(color[iprod]);
      hShSh[iprod]->SetMarkerStyle(22);
      
      hRaw [iprod]->SetTitleOffset(1.5,"Y");
      hTM  [iprod]->SetTitleOffset(1.5,"Y");
      hShSh[iprod]->SetTitleOffset(1.5,"Y");
      hCorr[iprod]->SetTitleOffset(1.5,"Y");
      
      if(iprod > 0)
      {
        hRatRaw [iprod-1] = (TH1F*)hRaw [iprod]->Clone(Form("hRatRaw%s" ,prod[iprod].Data()));
        hRatCorr[iprod-1] = (TH1F*)hCorr[iprod]->Clone(Form("hRatCorr%s",prod[iprod].Data()));
        hRatTM  [iprod-1] = (TH1F*)hTM  [iprod]->Clone(Form("hRatTM%s"  ,prod[iprod].Data()));
        hRatShSh[iprod-1] = (TH1F*)hShSh[iprod]->Clone(Form("hRatShSh%s",prod[iprod].Data()));
        
        hRatRaw [iprod-1]->Divide(hRatRaw [iprod-1],hRaw [0],1.000,1,"B");
        hRatCorr[iprod-1]->Divide(hRatCorr[iprod-1],hCorr[0],0.975,1,"B");
        hRatTM  [iprod-1]->Divide(hRatTM  [iprod-1],hTM  [0],0.950,1,"B");
        hRatShSh[iprod-1]->Divide(hRatShSh[iprod-1],hShSh[0],0.925,1,"B");
      }
    }
    
    // Cluster-Track Matching Residuals
    {
      h2TrackMatchResEtaNeg[iprod] = (TH2F*) GetHisto("QA_hTrackMatchedDEta"   ,iprod);
      h2TrackMatchResEtaPos[iprod] = (TH2F*) GetHisto("QA_hTrackMatchedDEtaPos",iprod);
      h2TrackMatchResPhiNeg[iprod] = (TH2F*) GetHisto("QA_hTrackMatchedDPhi"   ,iprod);
      h2TrackMatchResPhiPos[iprod] = (TH2F*) GetHisto("QA_hTrackMatchedDPhiPos",iprod);
      
      h2TrackMatchResEtaNeg[iprod]->Add(h2TrackMatchResEtaPos[iprod],-1);
      h2TrackMatchResPhiNeg[iprod]->Add(h2TrackMatchResPhiPos[iprod],-1);
      
      Float_t binMin = hCorr[iprod]->FindBin(0.5);
      Float_t binMax = hCorr[iprod]->FindBin(2);
      hTrackMatchResEtaNeg[iprod] = (TH1F*) h2TrackMatchResEtaNeg[iprod]->ProjectionY(Form("TMProjEtaNeg%s",prod[iprod].Data()),binMin, binMax);
      hTrackMatchResEtaPos[iprod] = (TH1F*) h2TrackMatchResEtaPos[iprod]->ProjectionY(Form("TMProjEtaPos%s",prod[iprod].Data()),binMin, binMax);
      hTrackMatchResPhiNeg[iprod] = (TH1F*) h2TrackMatchResPhiNeg[iprod]->ProjectionY(Form("TMProjPhiNeg%s",prod[iprod].Data()),binMin, binMax);
      hTrackMatchResPhiPos[iprod] = (TH1F*) h2TrackMatchResPhiPos[iprod]->ProjectionY(Form("TMProjPhiPos%s",prod[iprod].Data()),binMin, binMax);
      
      hTrackMatchResEtaNeg[iprod]->SetXTitle("#Delta #eta");
      hTrackMatchResEtaNeg[iprod]->SetYTitle("entries / N events");
      hTrackMatchResEtaNeg[iprod]->SetTitle("Track-cluster #eta residuals, 0.5 < E < 2 GeV");
      hTrackMatchResEtaNeg[iprod]->SetAxisRange(-0.05,0.05,"X");
      hTrackMatchResEtaNeg[iprod]->Sumw2();
      hTrackMatchResEtaNeg[iprod]->SetMarkerStyle(24);
      hTrackMatchResEtaNeg[iprod]->SetMarkerColor(color[iprod]);
      
      hTrackMatchResEtaPos[iprod]->Sumw2();
      hTrackMatchResEtaPos[iprod]->SetAxisRange(-0.05,0.05,"X");
      hTrackMatchResEtaPos[iprod]->SetMarkerStyle(25);
      hTrackMatchResEtaPos[iprod]->SetMarkerColor(color[iprod]);
      
      hTrackMatchResPhiNeg[iprod]->SetXTitle("#Delta #phi");
      hTrackMatchResPhiNeg[iprod]->SetTitle("Track-cluster #phi residuals, 0.5 < E < 2 GeV");
      hTrackMatchResPhiNeg[iprod]->SetYTitle("entries / N events");
      hTrackMatchResPhiNeg[iprod]->SetAxisRange(-0.05,0.05,"X");
      hTrackMatchResPhiNeg[iprod]->Sumw2();
      hTrackMatchResPhiNeg[iprod]->SetMarkerStyle(24);
      hTrackMatchResPhiNeg[iprod]->SetMarkerColor(color[iprod]);
      
      hTrackMatchResPhiPos[iprod]->Sumw2();
      hTrackMatchResPhiPos[iprod]->SetAxisRange(-0.05,0.05,"X");
      hTrackMatchResPhiPos[iprod]->SetMarkerStyle(25);
      hTrackMatchResPhiPos[iprod]->SetMarkerColor(color[iprod]);
      
      hTrackMatchResEtaNeg[iprod]->Scale(1./nEvents[iprod]);
      hTrackMatchResEtaPos[iprod]->Scale(1./nEvents[iprod]);
      hTrackMatchResPhiNeg[iprod]->Scale(1./nEvents[iprod]);
      hTrackMatchResPhiPos[iprod]->Scale(1./nEvents[iprod]);

      hTrackMatchResEtaNeg[iprod]->SetTitleOffset(1.5,"Y");
      hTrackMatchResEtaPos[iprod]->SetTitleOffset(1.5,"Y");
      hTrackMatchResPhiNeg[iprod]->SetTitleOffset(1.5,"Y");
      hTrackMatchResPhiPos[iprod]->SetTitleOffset(1.5,"Y");
      
      if(iprod > 0)
      {
        hRatTrackMatchResPhiPos[iprod-1] = (TH1F*)hTrackMatchResPhiPos[iprod]->Clone(Form("hRatPhiPos%s",prod[iprod].Data()));
        hRatTrackMatchResPhiNeg[iprod-1] = (TH1F*)hTrackMatchResPhiNeg[iprod]->Clone(Form("hRatPhiNeg%s",prod[iprod].Data()));
        hRatTrackMatchResEtaPos[iprod-1] = (TH1F*)hTrackMatchResEtaPos[iprod]->Clone(Form("hRatEtaPos%s",prod[iprod].Data()));
        hRatTrackMatchResEtaNeg[iprod-1] = (TH1F*)hTrackMatchResEtaNeg[iprod]->Clone(Form("hRatEtaNeg%s",prod[iprod].Data()));
        
        hRatTrackMatchResPhiPos[iprod-1]->Divide(hRatTrackMatchResPhiPos[iprod-1],hTrackMatchResPhiPos[0],1.000,1,"B");
        hRatTrackMatchResPhiNeg[iprod-1]->Divide(hRatTrackMatchResPhiNeg[iprod-1],hTrackMatchResPhiNeg[0],1.000,1,"B");
        hRatTrackMatchResEtaPos[iprod-1]->Divide(hRatTrackMatchResEtaPos[iprod-1],hTrackMatchResEtaPos[0],1.000,1,"B");
        hRatTrackMatchResEtaNeg[iprod-1]->Divide(hRatTrackMatchResEtaNeg[iprod-1],hTrackMatchResEtaNeg[0],1.000,1,"B");
      }
    }
    
    // Hybrid Tracks
    {
      hTrackPt         [iprod] = (TH1F*) GetHisto("AnaHadrons_hPt"                  ,iprod);
      hTrackPtSPD      [iprod] = (TH1F*) GetHisto("AnaHadrons_hPtSPDRefit"          ,iprod);
      hTrackPtNoSPD    [iprod] = (TH1F*) GetHisto("AnaHadrons_hPtNoSPDRefit"        ,iprod);
      hTrackEtaPhiSPD  [iprod] = (TH2F*) GetHisto("AnaHadrons_hEtaPhiSPDRefitPt02"  ,iprod);
      hTrackEtaPhiNoSPD[iprod] = (TH2F*) GetHisto("AnaHadrons_hEtaPhiNoSPDRefitPt02",iprod);
      hTrackEtaPhi     [iprod] = (TH2F*) GetHisto("AnaHadrons_hEtaPhiPositive"      ,iprod);
      hTrackEtaPhi     [iprod]->Add((TH2F*) GetHisto("AnaHadrons_hEtaPhiNegative"   ,iprod));
      
      hTrackPhiSPD     [iprod] = (TH1F*)hTrackEtaPhiSPD  [iprod]->ProjectionY(Form("hTrackPhiSPD%s"  ,prod[iprod].Data()),0,1000);
      hTrackPhiNoSPD   [iprod] = (TH1F*)hTrackEtaPhiNoSPD[iprod]->ProjectionY(Form("hTrackPhiNoSPD%s",prod[iprod].Data()),0,1000);
      hTrackPhi        [iprod] = (TH1F*)hTrackEtaPhi     [iprod]->ProjectionY(Form("hTrackPhi%s"     ,prod[iprod].Data()),0,1000);
      
      hTrackPt     [iprod]->Sumw2();
      hTrackPtSPD  [iprod]->Sumw2();
      hTrackPtNoSPD[iprod]->Sumw2();
      
      hTrackPt     [iprod]->Scale(1./nEvents[iprod]);
      hTrackPtSPD  [iprod]->Scale(1./nEvents[iprod]);
      hTrackPtNoSPD[iprod]->Scale(1./nEvents[iprod]);
      
      hTrackPhi     [iprod]->Sumw2();
      hTrackPhiSPD  [iprod]->Sumw2();
      hTrackPhiNoSPD[iprod]->Sumw2();

      hTrackPhi     [iprod]->Scale(1./nEvents[iprod]);
      hTrackPhiSPD  [iprod]->Scale(1./nEvents[iprod]);
      hTrackPhiNoSPD[iprod]->Scale(1./nEvents[iprod]);
      
      hTrackPt[iprod]->SetTitle("Track spectra with/out SPD");
      hTrackPt[iprod]->SetYTitle("1/N_{events} dN/dp_{T}");
      hTrackPt[iprod]->SetTitleOffset(1.5,"Y");
      hTrackPt[iprod]->SetMarkerColor(color[iprod]);
      hTrackPt[iprod]->SetMarkerStyle(20);
      hTrackPt[iprod]->SetAxisRange(0.,30.,"X");
      //hTrackPt[iprod]->SetMaximum(1.1);
      //hTrackPt[iprod]->SetMinimum(0);
      
      hTrackPtSPD[iprod]->SetMarkerColor(color[iprod]);
      hTrackPtSPD[iprod]->SetMarkerStyle(26);
      
      hTrackPtNoSPD[iprod]->SetMarkerColor(color[iprod]);
      hTrackPtNoSPD[iprod]->SetMarkerStyle(25);
      
      hTrackPhi[iprod]->SetTitle("Track #phi with/out SPD");
      hTrackPhi[iprod]->SetYTitle("1/N_{events} dN/d#phi");
      hTrackPhi[iprod]->SetTitleOffset(1.5,"Y");
      hTrackPhi[iprod]->SetMarkerColor(color[iprod]);
      hTrackPhi[iprod]->SetMarkerStyle(20);
      hTrackPhi[iprod]->SetAxisRange(0.,30.,"X");
      //hTrackPhi[iprod]->SetMaximum(1.1);
      //hTrackPhi[iprod]->SetMinimum(0);
      
      hTrackPhiSPD[iprod]->SetMarkerColor(color[iprod]);
      hTrackPhiSPD[iprod]->SetMarkerStyle(26);
      
      hTrackPhiNoSPD[iprod]->SetMarkerColor(color[iprod]);
      hTrackPhiNoSPD[iprod]->SetMarkerStyle(25);
      
      if(iprod > 0)
      {
        hRatTrackPhi     [iprod-1] = (TH1F*)hTrackPhi     [iprod]->Clone(Form("hRatTrackPhi%s"     ,prod[iprod].Data()));
        hRatTrackPhiNoSPD[iprod-1] = (TH1F*)hTrackPhiNoSPD[iprod]->Clone(Form("hRatTrackPhiNoSPD%s",prod[iprod].Data()));
        hRatTrackPhiSPD  [iprod-1] = (TH1F*)hTrackPhiSPD  [iprod]->Clone(Form("hRatTrackPhiSPD%s"  ,prod[iprod].Data()));
        
        hRatTrackPhi     [iprod-1]->Divide(hRatTrackPhi     [iprod-1],hTrackPhi     [0],1.000,1,"B");
        hRatTrackPhiSPD  [iprod-1]->Divide(hRatTrackPhiSPD  [iprod-1],hTrackPhiSPD  [0],1.000,1,"B");
        hRatTrackPhiNoSPD[iprod-1]->Divide(hRatTrackPhiNoSPD[iprod-1],hTrackPhiNoSPD[0],1.000,1,"B");
        
        hRatTrackPt     [iprod-1] = (TH1F*)hTrackPt     [iprod]->Clone(Form("hRatTrackPt%s"     ,prod[iprod].Data()));
        hRatTrackPtNoSPD[iprod-1] = (TH1F*)hTrackPtNoSPD[iprod]->Clone(Form("hRatTrackPtNoSPD%s",prod[iprod].Data()));
        hRatTrackPtSPD  [iprod-1] = (TH1F*)hTrackPtSPD  [iprod]->Clone(Form("hRatTrackPtSPD%s"  ,prod[iprod].Data()));
        
        hRatTrackPt     [iprod-1]->Divide(hRatTrackPt     [iprod-1],hTrackPt     [0],1.000,1,"B");
        hRatTrackPtSPD  [iprod-1]->Divide(hRatTrackPtSPD  [iprod-1],hTrackPtSPD  [0],1.000,1,"B");
        hRatTrackPtNoSPD[iprod-1]->Divide(hRatTrackPtNoSPD[iprod-1],hTrackPtNoSPD[0],1.000,1,"B");
      }
    }
  
    // photon-track correlation
    {
      h2XE   [iprod]= (TH2F*) GetHisto("AnaPhotonHadronCorr_hXECharged",iprod);
      h2XEUE [iprod]= (TH2F*) GetHisto("AnaPhotonHadronCorr_hXEUeCharged",iprod);
      
      Float_t minClusterE = 8;
      TH1F * hTrigger = (TH1F*) GetHisto("AnaPhotonHadronCorr_hPtTrigger",iprod);
      Int_t minClusterEBin = hTrigger->FindBin(minClusterE);
      Float_t nTrig = hTrigger->Integral(minClusterE,100000);
      
      hXE  [iprod] = (TH1F*)h2XE  [iprod]->ProjectionY(Form("hXE%s"  ,prod[iprod].Data()),minClusterEBin,1000);
      hXEUE[iprod] = (TH1F*)h2XEUE[iprod]->ProjectionY(Form("hXEUE%s",prod[iprod].Data()),minClusterEBin,1000);
      
      hXE  [iprod]->Sumw2();
      hXEUE[iprod]->Sumw2();
      
      hXE  [iprod]->Scale(1./nTrig);
      hXEUE[iprod]->Scale(1./nTrig);
      
      hXE[iprod]->SetTitle(Form("#gamma-hadron x_{E}, p_{T,Trig}>%2.1f GeV/c",minClusterE));
      hXE[iprod]->SetYTitle("1/N_{trigger} dN/dx_{E}");
      hXE[iprod]->SetTitleOffset(1.5,"Y");
      hXE[iprod]->SetMarkerColor(color[iprod]);
      hXE[iprod]->SetMarkerStyle(20);
      hXE[iprod]->SetAxisRange(0.,1.,"X");
      //hXE[iprod]->SetMaximum(1.1);
      //hXE[iprod]->SetMinimum(0);
      
      hXEUE[iprod]->SetMarkerColor(color[iprod]);
      hXEUE[iprod]->SetMarkerStyle(25);
      
      if(iprod > 0)
      {
        hRatXE  [iprod-1] = (TH1F*)hXE  [iprod]->Clone(Form("hRatXE%s"  ,prod[iprod].Data()));
        hRatXEUE[iprod-1] = (TH1F*)hXEUE[iprod]->Clone(Form("hRatXEUE%s",prod[iprod].Data()));
        
        hRatXE  [iprod-1]->Divide(hRatXE  [iprod-1],hXE  [0],1.000,1,"B");
        hRatXEUE[iprod-1]->Divide(hRatXEUE[iprod-1],hXEUE[0],1.000,1,"B");
      }
    }

    //Centrality
    {
      hCen[iprod] = (TH1F*) GetHisto("hCentrality",iprod);
      
      hCen[iprod]->Sumw2();
      
      hCen[iprod]->Scale(1./nEvents[iprod]);
      
      hCen[iprod]->SetTitle("Centrality");
      hCen[iprod]->SetYTitle("1/N_{events} dN/d centrality");
      hCen[iprod]->SetTitleOffset(1.5,"Y");
      hCen[iprod]->SetMarkerColor(color[iprod]);
      hCen[iprod]->SetMarkerStyle(20);
      //hCen[iprod]->SetAxisRange(0.,30.,"X");
      //hCen[iprod]->SetMaximum(1.1);
      //hCen[iprod]->SetMinimum(0);
      
      if(iprod > 0)
      {
        hRatCen[iprod-1] = (TH1F*)hCen[iprod]->Clone(Form("hRatCen%s" ,prod[iprod].Data()));
        
        hRatCen[iprod-1]->Divide(hRatCen[iprod-1],hCen [0],1.000,1,"B");
       }
    }

    //Vertex
    {
      hVertex[0][iprod] = (TH1F*) GetHisto("hZVertex",iprod);
      hVertex[1][iprod] = (TH1F*) GetHisto("hYVertex",iprod);
      hVertex[2][iprod] = (TH1F*) GetHisto("hXVertex",iprod);
      
      for(Int_t ivertex = 0; ivertex < 3; ivertex++)
      {
        //hVertex[ivertex][iprod]->Sumw2();
        
        hVertex[ivertex][iprod]->Scale(1./nEvents[iprod]);
        
        //hVertex[ivertex][iprod]->SetTitle("Centrality");
        hVertex[ivertex][iprod]->SetYTitle("1/N_{events} dN/ d vertex");
        hVertex[ivertex][iprod]->SetTitleOffset(1.5,"Y");
        hVertex[ivertex][iprod]->SetMarkerColor(color[iprod]);
        hVertex[ivertex][iprod]->SetLineColor(color[iprod]);
        hVertex[ivertex][iprod]->SetMarkerStyle(20);
        hVertex[ivertex][iprod]->SetAxisRange(-15,15.,"X");
        //hVertex[ivertex][iprod]->SetMaximum(1.1);
        //hVertex[ivertex][iprod]->SetMinimum(0);
        
        if(iprod > 0)
        {
          hRatVertex[ivertex][iprod-1] = (TH1F*)hVertex[ivertex][iprod]->Clone(Form("hRatVertex%s_%d" ,prod[iprod].Data(),ivertex));
          
          hRatVertex[ivertex][iprod-1]->Divide(hRatVertex[ivertex][iprod-1],hVertex[ivertex][0],1.000,1,"B");
        }
      }
    }

  }
  
  /////////////////
  // Make the plots
  /////////////////
  
  //Legend for productions
  TLegend lprod(0.3,0.475,0.84,0.675);
  lprod.SetTextSize(0.04);
  lprod.SetBorderSize(0);
  lprod.SetFillColor(0);
  
  //Calimeter Cluster
  {
    TCanvas * ccalo = new TCanvas(Form("Cluster_%s",histoTag.Data()),"",1000,500);
    ccalo->Divide(2,1);
    
    ccalo->cd(1);
    gPad->SetLogy();
    
    hCorr[0]->Draw();
    for(Int_t iprod = 0; iprod <  nProd; iprod++)
    {
      hRaw [iprod]->Draw("same");
      hCorr[iprod]->Draw("same");
      hTM  [iprod]->Draw("same");
      hShSh[iprod]->Draw("same");
      
      lprod.AddEntry(hRaw[iprod],prod[iprod],"P");
    }
    
    lprod.Draw();
    
    TLegend lcl(0.35,0.7,0.84,0.89);
    lcl.SetTextSize(0.04);
    lcl.SetBorderSize(0);
    lcl.SetFillColor(0);
    lcl.AddEntry(hRaw [0],"Raw","P");
    lcl.AddEntry(hCorr[0],"No Exotics + non lin.","P");
    lcl.AddEntry(hTM  [0],  "+ Track matching","P");
    lcl.AddEntry(hShSh[0],"+ #lambda^{2}_{0} < 0.4","P");
    lcl.Draw();
    
    ccalo->cd(2);
    //gPad->SetLogy();
    
    hRatCorr[0]->SetTitle("Cluster spectra ratio");
    hRatCorr[0]->SetYTitle(Form("data X / %s",prod[0].Data()));
    hRatCorr[0]->SetMinimum(0.850);
    hRatCorr[0]->SetMaximum(1.025);
    hRatCorr[0]->Draw("");
    
    for(Int_t iprod = 0; iprod <  nProd-1; iprod++)
    {
      hRatRaw [iprod]->Draw("same");
      hRatCorr[iprod]->Draw("same");
      hRatTM  [iprod]->Draw("same");
      hRatShSh[iprod]->Draw("same");
    }
    
    TLine l1(0,1,30,1);
    TLine l2(0,0.975,30,0.975);
    TLine l3(0,0.95,30,0.95);
    TLine l4(0,0.925,30,0.925);
    
    l1.Draw("same");
    l2.Draw("same");
    l3.Draw("same");
    l4.Draw("same");
    
    ccalo->Print(Form("%s_ClusterSpectraComp.eps",histoTag.Data()));
  }
  
  //Cluster-Track Matching Residual
  {
    TLine l0(0,hTrackMatchResEtaNeg[0]->GetMinimum(),0,hTrackMatchResEtaNeg[0]->GetMaximum()*1.2);
    
    TLegend lres(0.6,0.75,0.84,0.89);
    lres.SetTextSize(0.04);
    //lres.SetBorderSize(0);
    lres.SetFillColor(0);
    lres.AddEntry(hTrackMatchResEtaNeg[0],"Negative","P");
    lres.AddEntry(hTrackMatchResEtaPos[0],"Positive","P");
    lres.Draw();
    
    TCanvas * ccalo2 = new TCanvas(Form("MatchingResiduals_%s",histoTag.Data()),"",500,500);
    ccalo2->Divide(2,2);
    
    ccalo2->cd(1);
    //gPad->SetLogy();
    
    hTrackMatchResEtaPos[0]->Draw("");
    for(Int_t iprod = 0; iprod < nProd; iprod++)
    {
      hTrackMatchResEtaNeg[iprod]->Draw("same");
      hTrackMatchResEtaPos[iprod]->Draw("same");
    }
    
    l0.Draw("same");
    lres.Draw();
    lprod.Draw();
    ccalo2->cd(2);
    
    hTrackMatchResPhiPos[0]->Draw("");
    for(Int_t iprod = 0; iprod < nProd; iprod++)
    {
      hTrackMatchResPhiNeg[iprod]->Draw("same");
      hTrackMatchResPhiPos[iprod]->Draw("same");
    }
    
    l0.Draw("same");
    
    ccalo2->cd(3);
    //gPad->SetLogy();
    
    hRatTrackMatchResEtaPos[0]->SetMaximum(1.25);
    hRatTrackMatchResEtaPos[0]->SetMinimum(0.98);
    hRatTrackMatchResEtaPos[0]->Draw("");
    hRatTrackMatchResEtaPos[0]->SetYTitle(Form("data X / %s",prod[0].Data()));
    for(Int_t iprod = 0; iprod < nProd-1; iprod++)
    {
      hRatTrackMatchResEtaNeg[iprod]->Draw("same");
      hRatTrackMatchResEtaPos[iprod]->Draw("same");
    }
    
    //l0.Draw("same");
    
    ccalo2->cd(4);
    
    hRatTrackMatchResPhiPos[0]->SetMaximum(1.05);
    hRatTrackMatchResPhiPos[0]->SetMinimum(0.98);
    hRatTrackMatchResPhiPos[0]->Draw("");
    hRatTrackMatchResPhiPos[0]->SetYTitle(Form("data X / %s",prod[0].Data()));
    for(Int_t iprod = 0; iprod < nProd-1; iprod++)
    {
      hRatTrackMatchResPhiNeg[iprod]->Draw("same");
      hRatTrackMatchResPhiPos[iprod]->Draw("same");
    }
    
    ccalo2->Print(Form("%s_MatchingResidualsComp.eps",histoTag.Data()));
  }
  
  // Hybrid tracks
  {
    TLegend ltrack(0.6,0.75,0.84,0.89);
    ltrack.SetTextSize(0.04);
    //ltrack.SetBorderSize(0);
    ltrack.SetFillColor(0);
    ltrack.AddEntry(hTrackPt     [0],"All","P");
    ltrack.AddEntry(hTrackPtSPD  [0],"SPD","P");
    ltrack.AddEntry(hTrackPtNoSPD[0],"No SPD","P");
    
    TCanvas * ctrack = new TCanvas(Form("TrackHisto_%s",histoTag.Data()),"",1500,1500);
    ctrack->Divide(2,2);
    ctrack->cd(1);
    gPad->SetLogy();
    hTrackPt[0]->Draw("");
    for(Int_t iprod = 0; iprod < nProd; iprod++)
    {
      hTrackPt     [iprod]->Draw("same");
      hTrackPtSPD  [iprod]->Draw("same");
      hTrackPtNoSPD[iprod]->Draw("same");
    }
    
    ltrack.Draw();
    lprod.Draw();
    
    ctrack->cd(2);
    
    hRatTrackPt[0]->SetMaximum(1.05);
    hRatTrackPt[0]->SetMinimum(0.95);
    hRatTrackPt[0]->Draw("");
    hRatTrackPt[0]->SetYTitle(Form("data X / %s",prod[0].Data()));
    for(Int_t iprod = 0; iprod < nProd-1; iprod++)
    {
      hRatTrackPt     [iprod]->Draw("same");
      hRatTrackPtSPD  [iprod]->Draw("same");
      hRatTrackPtNoSPD[iprod]->Draw("same");
    }
    
    ctrack->cd(3);
    hTrackPhi[0]->SetMaximum(3.);
    hTrackPhi[0]->SetMinimum(0.);
    hTrackPhi[0]->Draw("");
    for(Int_t iprod = 0; iprod < nProd; iprod++)
    {
      hTrackPhi     [iprod]->Draw("same");
      hTrackPhiSPD  [iprod]->Draw("same");
      hTrackPhiNoSPD[iprod]->Draw("same");
    }
    
    ctrack->cd(4);
    //gPad->SetLogy();
    
    hRatTrackPhi[0]->SetMaximum(1.05);
    hRatTrackPhi[0]->SetMinimum(0.95);
    hRatTrackPhi[0]->Draw("");
    hRatTrackPhi[0]->SetYTitle(Form("data X / %s",prod[0].Data()));
    for(Int_t iprod = 0; iprod < nProd-1; iprod++)
    {
      hRatTrackPhi     [iprod]->Draw("same");
      hRatTrackPhiSPD  [iprod]->Draw("same");
      hRatTrackPhiNoSPD[iprod]->Draw("same");
    }
    
    ctrack->Print(Form("%s_TrackComp.eps",histoTag.Data()));
  }
  
  // XE
  {
    TLegend lxe(0.6,0.75,0.84,0.89);
    lxe.SetTextSize(0.04);
    //lxe.SetBorderSize(0);
    lxe.SetFillColor(0);
    lxe.AddEntry(hXE  [0],"Signal+bkg","P");
    lxe.AddEntry(hXEUE[0],"Und. Event","P");
    
    TCanvas * cxe = new TCanvas(Form("XEHisto_%s",histoTag.Data()),"",1000,500);
    cxe->Divide(2,1);
    cxe->cd(1);
    gPad->SetLogy();
    hXE[0]->Draw("");
    for(Int_t iprod = 0; iprod < nProd; iprod++)
    {
      hXE  [iprod]->Draw("same");
      hXEUE[iprod]->Draw("same");
    }
    
    lxe.Draw();
    lprod.Draw();
    
    cxe->cd(2);
    
    hRatXE[0]->SetMaximum(1.05);
    hRatXE[0]->SetMinimum(0.95);
    hRatXE[0]->Draw("");
    hRatXE[0]->SetYTitle(Form("data X / %s",prod[0].Data()));
    for(Int_t iprod = 0; iprod < nProd-1; iprod++)
    {
      hRatXE  [iprod]->Draw("same");
      hRatXEUE[iprod]->Draw("same");
    }
    
    cxe->Print(Form("%s_XEComp.eps",histoTag.Data()));
  }
  
  // Centrality
  {
    TCanvas * ccen = new TCanvas(Form("Centrality_%s",histoTag.Data()),"",1000,500);
    ccen->Divide(2,1);
    
    ccen->cd(1);
    //gPad->SetLogy();
    
    hCen[0]->Draw();
    for(Int_t iprod = 0; iprod <  nProd; iprod++)
    {
      hCen[iprod]->Draw("same");
    }
    
    lprod.Draw();
    
    ccen->cd(2);
    //gPad->SetLogy();
    
    hRatCen[0]->SetTitle("Centrality");
    hRatCen[0]->SetYTitle(Form("data X / %s",prod[0].Data()));
    hRatCen[0]->SetMinimum(0.95);
    hRatCen[0]->SetMaximum(1.05);
    hRatCen[0]->Draw("");
    
    for(Int_t iprod = 0; iprod <  nProd-1; iprod++)
    {
      hRatCen [iprod]->Draw("same");
    }
    
    TLine l1(0,1,100,1);
    
    l1.Draw("same");

    ccen->Print(Form("%s_CentralityComp.eps",histoTag.Data()));
  }

  // Vertex
  {
    TCanvas * cvertex = new TCanvas(Form("Vertex_%s",histoTag.Data()),"",3*500,2*500);
    cvertex->Divide(3,2);
    Int_t npannel = 1;
    for(Int_t ivertex = 0; ivertex < 3; ivertex++)
    {
      cvertex->cd(npannel);
      //gPad->SetLogy();
      
      hVertex[ivertex][0]->Draw();
      for(Int_t iprod = 0; iprod <  nProd; iprod++)
      {
        hVertex[ivertex][iprod]->Draw("same");
      }
      
      lprod.Draw();
      
      cvertex->cd(npannel+3);
      //gPad->SetLogy();
      
      //hRatVertex[ivertex][0]->SetTitle("");
      hRatVertex[ivertex][0]->SetYTitle(Form("data X / %s",prod[0].Data()));
//      hRatVertex[ivertex][0]->SetMinimum(0.95);
//      hRatVertex[ivertex][0]->SetMaximum(1.05);
      hRatVertex[ivertex][0]->Draw("");
      
      for(Int_t iprod = 0; iprod <  nProd-1; iprod++)
      {
        hRatVertex[ivertex][iprod]->Draw("same");
      }

      npannel++;
    }
    cvertex->Print(Form("%s_VertexComp.eps",histoTag.Data()));
  }

  
}

//_____________________________________________________
void GetFileAndList(TString fileName, TString listName)
{

  for(Int_t iprod = 0; iprod < nProd; iprod++)
  {
    file[iprod]  = new TFile(Form("%s/%s",prod[iprod].Data(),fileName.Data()),"read");
    if(file[iprod]->Get("hNEvents"))
    {
      nEvents[iprod] = ((TH1F*)file[iprod]->Get("hNEvents"))->GetEntries();
      printf("%s: nEvents %e\n",prod[iprod].Data(),nEvents[iprod]);
    }

    TDirectory * dir = (TDirectory*) file[iprod]->Get(listName);
    if(dir)
    {
      list[iprod] = (TList*) dir->Get(listName);
      nEvents[iprod] = ((TH1F*)list[iprod]->FindObject("hNEvents"))->GetEntries();
      printf("%s: nEvents %e\n",prod[iprod],nEvents[iprod]);
    }
    else list[iprod] = 0;
  }
  
}

//___________________________________
TObject * GetHisto(TString histoName, Int_t iprod)
{
  // Check if the list is available, if not get the histo directly from file
  
  if(list[iprod]) return list[iprod]->FindObject(histoName);
  else            return file[iprod]->Get       (histoName);
}
 DrawProductionComparison.C:1
 DrawProductionComparison.C:2
 DrawProductionComparison.C:3
 DrawProductionComparison.C:4
 DrawProductionComparison.C:5
 DrawProductionComparison.C:6
 DrawProductionComparison.C:7
 DrawProductionComparison.C:8
 DrawProductionComparison.C:9
 DrawProductionComparison.C:10
 DrawProductionComparison.C:11
 DrawProductionComparison.C:12
 DrawProductionComparison.C:13
 DrawProductionComparison.C:14
 DrawProductionComparison.C:15
 DrawProductionComparison.C:16
 DrawProductionComparison.C:17
 DrawProductionComparison.C:18
 DrawProductionComparison.C:19
 DrawProductionComparison.C:20
 DrawProductionComparison.C:21
 DrawProductionComparison.C:22
 DrawProductionComparison.C:23
 DrawProductionComparison.C:24
 DrawProductionComparison.C:25
 DrawProductionComparison.C:26
 DrawProductionComparison.C:27
 DrawProductionComparison.C:28
 DrawProductionComparison.C:29
 DrawProductionComparison.C:30
 DrawProductionComparison.C:31
 DrawProductionComparison.C:32
 DrawProductionComparison.C:33
 DrawProductionComparison.C:34
 DrawProductionComparison.C:35
 DrawProductionComparison.C:36
 DrawProductionComparison.C:37
 DrawProductionComparison.C:38
 DrawProductionComparison.C:39
 DrawProductionComparison.C:40
 DrawProductionComparison.C:41
 DrawProductionComparison.C:42
 DrawProductionComparison.C:43
 DrawProductionComparison.C:44
 DrawProductionComparison.C:45
 DrawProductionComparison.C:46
 DrawProductionComparison.C:47
 DrawProductionComparison.C:48
 DrawProductionComparison.C:49
 DrawProductionComparison.C:50
 DrawProductionComparison.C:51
 DrawProductionComparison.C:52
 DrawProductionComparison.C:53
 DrawProductionComparison.C:54
 DrawProductionComparison.C:55
 DrawProductionComparison.C:56
 DrawProductionComparison.C:57
 DrawProductionComparison.C:58
 DrawProductionComparison.C:59
 DrawProductionComparison.C:60
 DrawProductionComparison.C:61
 DrawProductionComparison.C:62
 DrawProductionComparison.C:63
 DrawProductionComparison.C:64
 DrawProductionComparison.C:65
 DrawProductionComparison.C:66
 DrawProductionComparison.C:67
 DrawProductionComparison.C:68
 DrawProductionComparison.C:69
 DrawProductionComparison.C:70
 DrawProductionComparison.C:71
 DrawProductionComparison.C:72
 DrawProductionComparison.C:73
 DrawProductionComparison.C:74
 DrawProductionComparison.C:75
 DrawProductionComparison.C:76
 DrawProductionComparison.C:77
 DrawProductionComparison.C:78
 DrawProductionComparison.C:79
 DrawProductionComparison.C:80
 DrawProductionComparison.C:81
 DrawProductionComparison.C:82
 DrawProductionComparison.C:83
 DrawProductionComparison.C:84
 DrawProductionComparison.C:85
 DrawProductionComparison.C:86
 DrawProductionComparison.C:87
 DrawProductionComparison.C:88
 DrawProductionComparison.C:89
 DrawProductionComparison.C:90
 DrawProductionComparison.C:91
 DrawProductionComparison.C:92
 DrawProductionComparison.C:93
 DrawProductionComparison.C:94
 DrawProductionComparison.C:95
 DrawProductionComparison.C:96
 DrawProductionComparison.C:97
 DrawProductionComparison.C:98
 DrawProductionComparison.C:99
 DrawProductionComparison.C:100
 DrawProductionComparison.C:101
 DrawProductionComparison.C:102
 DrawProductionComparison.C:103
 DrawProductionComparison.C:104
 DrawProductionComparison.C:105
 DrawProductionComparison.C:106
 DrawProductionComparison.C:107
 DrawProductionComparison.C:108
 DrawProductionComparison.C:109
 DrawProductionComparison.C:110
 DrawProductionComparison.C:111
 DrawProductionComparison.C:112
 DrawProductionComparison.C:113
 DrawProductionComparison.C:114
 DrawProductionComparison.C:115
 DrawProductionComparison.C:116
 DrawProductionComparison.C:117
 DrawProductionComparison.C:118
 DrawProductionComparison.C:119
 DrawProductionComparison.C:120
 DrawProductionComparison.C:121
 DrawProductionComparison.C:122
 DrawProductionComparison.C:123
 DrawProductionComparison.C:124
 DrawProductionComparison.C:125
 DrawProductionComparison.C:126
 DrawProductionComparison.C:127
 DrawProductionComparison.C:128
 DrawProductionComparison.C:129
 DrawProductionComparison.C:130
 DrawProductionComparison.C:131
 DrawProductionComparison.C:132
 DrawProductionComparison.C:133
 DrawProductionComparison.C:134
 DrawProductionComparison.C:135
 DrawProductionComparison.C:136
 DrawProductionComparison.C:137
 DrawProductionComparison.C:138
 DrawProductionComparison.C:139
 DrawProductionComparison.C:140
 DrawProductionComparison.C:141
 DrawProductionComparison.C:142
 DrawProductionComparison.C:143
 DrawProductionComparison.C:144
 DrawProductionComparison.C:145
 DrawProductionComparison.C:146
 DrawProductionComparison.C:147
 DrawProductionComparison.C:148
 DrawProductionComparison.C:149
 DrawProductionComparison.C:150
 DrawProductionComparison.C:151
 DrawProductionComparison.C:152
 DrawProductionComparison.C:153
 DrawProductionComparison.C:154
 DrawProductionComparison.C:155
 DrawProductionComparison.C:156
 DrawProductionComparison.C:157
 DrawProductionComparison.C:158
 DrawProductionComparison.C:159
 DrawProductionComparison.C:160
 DrawProductionComparison.C:161
 DrawProductionComparison.C:162
 DrawProductionComparison.C:163
 DrawProductionComparison.C:164
 DrawProductionComparison.C:165
 DrawProductionComparison.C:166
 DrawProductionComparison.C:167
 DrawProductionComparison.C:168
 DrawProductionComparison.C:169
 DrawProductionComparison.C:170
 DrawProductionComparison.C:171
 DrawProductionComparison.C:172
 DrawProductionComparison.C:173
 DrawProductionComparison.C:174
 DrawProductionComparison.C:175
 DrawProductionComparison.C:176
 DrawProductionComparison.C:177
 DrawProductionComparison.C:178
 DrawProductionComparison.C:179
 DrawProductionComparison.C:180
 DrawProductionComparison.C:181
 DrawProductionComparison.C:182
 DrawProductionComparison.C:183
 DrawProductionComparison.C:184
 DrawProductionComparison.C:185
 DrawProductionComparison.C:186
 DrawProductionComparison.C:187
 DrawProductionComparison.C:188
 DrawProductionComparison.C:189
 DrawProductionComparison.C:190
 DrawProductionComparison.C:191
 DrawProductionComparison.C:192
 DrawProductionComparison.C:193
 DrawProductionComparison.C:194
 DrawProductionComparison.C:195
 DrawProductionComparison.C:196
 DrawProductionComparison.C:197
 DrawProductionComparison.C:198
 DrawProductionComparison.C:199
 DrawProductionComparison.C:200
 DrawProductionComparison.C:201
 DrawProductionComparison.C:202
 DrawProductionComparison.C:203
 DrawProductionComparison.C:204
 DrawProductionComparison.C:205
 DrawProductionComparison.C:206
 DrawProductionComparison.C:207
 DrawProductionComparison.C:208
 DrawProductionComparison.C:209
 DrawProductionComparison.C:210
 DrawProductionComparison.C:211
 DrawProductionComparison.C:212
 DrawProductionComparison.C:213
 DrawProductionComparison.C:214
 DrawProductionComparison.C:215
 DrawProductionComparison.C:216
 DrawProductionComparison.C:217
 DrawProductionComparison.C:218
 DrawProductionComparison.C:219
 DrawProductionComparison.C:220
 DrawProductionComparison.C:221
 DrawProductionComparison.C:222
 DrawProductionComparison.C:223
 DrawProductionComparison.C:224
 DrawProductionComparison.C:225
 DrawProductionComparison.C:226
 DrawProductionComparison.C:227
 DrawProductionComparison.C:228
 DrawProductionComparison.C:229
 DrawProductionComparison.C:230
 DrawProductionComparison.C:231
 DrawProductionComparison.C:232
 DrawProductionComparison.C:233
 DrawProductionComparison.C:234
 DrawProductionComparison.C:235
 DrawProductionComparison.C:236
 DrawProductionComparison.C:237
 DrawProductionComparison.C:238
 DrawProductionComparison.C:239
 DrawProductionComparison.C:240
 DrawProductionComparison.C:241
 DrawProductionComparison.C:242
 DrawProductionComparison.C:243
 DrawProductionComparison.C:244
 DrawProductionComparison.C:245
 DrawProductionComparison.C:246
 DrawProductionComparison.C:247
 DrawProductionComparison.C:248
 DrawProductionComparison.C:249
 DrawProductionComparison.C:250
 DrawProductionComparison.C:251
 DrawProductionComparison.C:252
 DrawProductionComparison.C:253
 DrawProductionComparison.C:254
 DrawProductionComparison.C:255
 DrawProductionComparison.C:256
 DrawProductionComparison.C:257
 DrawProductionComparison.C:258
 DrawProductionComparison.C:259
 DrawProductionComparison.C:260
 DrawProductionComparison.C:261
 DrawProductionComparison.C:262
 DrawProductionComparison.C:263
 DrawProductionComparison.C:264
 DrawProductionComparison.C:265
 DrawProductionComparison.C:266
 DrawProductionComparison.C:267
 DrawProductionComparison.C:268
 DrawProductionComparison.C:269
 DrawProductionComparison.C:270
 DrawProductionComparison.C:271
 DrawProductionComparison.C:272
 DrawProductionComparison.C:273
 DrawProductionComparison.C:274
 DrawProductionComparison.C:275
 DrawProductionComparison.C:276
 DrawProductionComparison.C:277
 DrawProductionComparison.C:278
 DrawProductionComparison.C:279
 DrawProductionComparison.C:280
 DrawProductionComparison.C:281
 DrawProductionComparison.C:282
 DrawProductionComparison.C:283
 DrawProductionComparison.C:284
 DrawProductionComparison.C:285
 DrawProductionComparison.C:286
 DrawProductionComparison.C:287
 DrawProductionComparison.C:288
 DrawProductionComparison.C:289
 DrawProductionComparison.C:290
 DrawProductionComparison.C:291
 DrawProductionComparison.C:292
 DrawProductionComparison.C:293
 DrawProductionComparison.C:294
 DrawProductionComparison.C:295
 DrawProductionComparison.C:296
 DrawProductionComparison.C:297
 DrawProductionComparison.C:298
 DrawProductionComparison.C:299
 DrawProductionComparison.C:300
 DrawProductionComparison.C:301
 DrawProductionComparison.C:302
 DrawProductionComparison.C:303
 DrawProductionComparison.C:304
 DrawProductionComparison.C:305
 DrawProductionComparison.C:306
 DrawProductionComparison.C:307
 DrawProductionComparison.C:308
 DrawProductionComparison.C:309
 DrawProductionComparison.C:310
 DrawProductionComparison.C:311
 DrawProductionComparison.C:312
 DrawProductionComparison.C:313
 DrawProductionComparison.C:314
 DrawProductionComparison.C:315
 DrawProductionComparison.C:316
 DrawProductionComparison.C:317
 DrawProductionComparison.C:318
 DrawProductionComparison.C:319
 DrawProductionComparison.C:320
 DrawProductionComparison.C:321
 DrawProductionComparison.C:322
 DrawProductionComparison.C:323
 DrawProductionComparison.C:324
 DrawProductionComparison.C:325
 DrawProductionComparison.C:326
 DrawProductionComparison.C:327
 DrawProductionComparison.C:328
 DrawProductionComparison.C:329
 DrawProductionComparison.C:330
 DrawProductionComparison.C:331
 DrawProductionComparison.C:332
 DrawProductionComparison.C:333
 DrawProductionComparison.C:334
 DrawProductionComparison.C:335
 DrawProductionComparison.C:336
 DrawProductionComparison.C:337
 DrawProductionComparison.C:338
 DrawProductionComparison.C:339
 DrawProductionComparison.C:340
 DrawProductionComparison.C:341
 DrawProductionComparison.C:342
 DrawProductionComparison.C:343
 DrawProductionComparison.C:344
 DrawProductionComparison.C:345
 DrawProductionComparison.C:346
 DrawProductionComparison.C:347
 DrawProductionComparison.C:348
 DrawProductionComparison.C:349
 DrawProductionComparison.C:350
 DrawProductionComparison.C:351
 DrawProductionComparison.C:352
 DrawProductionComparison.C:353
 DrawProductionComparison.C:354
 DrawProductionComparison.C:355
 DrawProductionComparison.C:356
 DrawProductionComparison.C:357
 DrawProductionComparison.C:358
 DrawProductionComparison.C:359
 DrawProductionComparison.C:360
 DrawProductionComparison.C:361
 DrawProductionComparison.C:362
 DrawProductionComparison.C:363
 DrawProductionComparison.C:364
 DrawProductionComparison.C:365
 DrawProductionComparison.C:366
 DrawProductionComparison.C:367
 DrawProductionComparison.C:368
 DrawProductionComparison.C:369
 DrawProductionComparison.C:370
 DrawProductionComparison.C:371
 DrawProductionComparison.C:372
 DrawProductionComparison.C:373
 DrawProductionComparison.C:374
 DrawProductionComparison.C:375
 DrawProductionComparison.C:376
 DrawProductionComparison.C:377
 DrawProductionComparison.C:378
 DrawProductionComparison.C:379
 DrawProductionComparison.C:380
 DrawProductionComparison.C:381
 DrawProductionComparison.C:382
 DrawProductionComparison.C:383
 DrawProductionComparison.C:384
 DrawProductionComparison.C:385
 DrawProductionComparison.C:386
 DrawProductionComparison.C:387
 DrawProductionComparison.C:388
 DrawProductionComparison.C:389
 DrawProductionComparison.C:390
 DrawProductionComparison.C:391
 DrawProductionComparison.C:392
 DrawProductionComparison.C:393
 DrawProductionComparison.C:394
 DrawProductionComparison.C:395
 DrawProductionComparison.C:396
 DrawProductionComparison.C:397
 DrawProductionComparison.C:398
 DrawProductionComparison.C:399
 DrawProductionComparison.C:400
 DrawProductionComparison.C:401
 DrawProductionComparison.C:402
 DrawProductionComparison.C:403
 DrawProductionComparison.C:404
 DrawProductionComparison.C:405
 DrawProductionComparison.C:406
 DrawProductionComparison.C:407
 DrawProductionComparison.C:408
 DrawProductionComparison.C:409
 DrawProductionComparison.C:410
 DrawProductionComparison.C:411
 DrawProductionComparison.C:412
 DrawProductionComparison.C:413
 DrawProductionComparison.C:414
 DrawProductionComparison.C:415
 DrawProductionComparison.C:416
 DrawProductionComparison.C:417
 DrawProductionComparison.C:418
 DrawProductionComparison.C:419
 DrawProductionComparison.C:420
 DrawProductionComparison.C:421
 DrawProductionComparison.C:422
 DrawProductionComparison.C:423
 DrawProductionComparison.C:424
 DrawProductionComparison.C:425
 DrawProductionComparison.C:426
 DrawProductionComparison.C:427
 DrawProductionComparison.C:428
 DrawProductionComparison.C:429
 DrawProductionComparison.C:430
 DrawProductionComparison.C:431
 DrawProductionComparison.C:432
 DrawProductionComparison.C:433
 DrawProductionComparison.C:434
 DrawProductionComparison.C:435
 DrawProductionComparison.C:436
 DrawProductionComparison.C:437
 DrawProductionComparison.C:438
 DrawProductionComparison.C:439
 DrawProductionComparison.C:440
 DrawProductionComparison.C:441
 DrawProductionComparison.C:442
 DrawProductionComparison.C:443
 DrawProductionComparison.C:444
 DrawProductionComparison.C:445
 DrawProductionComparison.C:446
 DrawProductionComparison.C:447
 DrawProductionComparison.C:448
 DrawProductionComparison.C:449
 DrawProductionComparison.C:450
 DrawProductionComparison.C:451
 DrawProductionComparison.C:452
 DrawProductionComparison.C:453
 DrawProductionComparison.C:454
 DrawProductionComparison.C:455
 DrawProductionComparison.C:456
 DrawProductionComparison.C:457
 DrawProductionComparison.C:458
 DrawProductionComparison.C:459
 DrawProductionComparison.C:460
 DrawProductionComparison.C:461
 DrawProductionComparison.C:462
 DrawProductionComparison.C:463
 DrawProductionComparison.C:464
 DrawProductionComparison.C:465
 DrawProductionComparison.C:466
 DrawProductionComparison.C:467
 DrawProductionComparison.C:468
 DrawProductionComparison.C:469
 DrawProductionComparison.C:470
 DrawProductionComparison.C:471
 DrawProductionComparison.C:472
 DrawProductionComparison.C:473
 DrawProductionComparison.C:474
 DrawProductionComparison.C:475
 DrawProductionComparison.C:476
 DrawProductionComparison.C:477
 DrawProductionComparison.C:478
 DrawProductionComparison.C:479
 DrawProductionComparison.C:480
 DrawProductionComparison.C:481
 DrawProductionComparison.C:482
 DrawProductionComparison.C:483
 DrawProductionComparison.C:484
 DrawProductionComparison.C:485
 DrawProductionComparison.C:486
 DrawProductionComparison.C:487
 DrawProductionComparison.C:488
 DrawProductionComparison.C:489
 DrawProductionComparison.C:490
 DrawProductionComparison.C:491
 DrawProductionComparison.C:492
 DrawProductionComparison.C:493
 DrawProductionComparison.C:494
 DrawProductionComparison.C:495
 DrawProductionComparison.C:496
 DrawProductionComparison.C:497
 DrawProductionComparison.C:498
 DrawProductionComparison.C:499
 DrawProductionComparison.C:500
 DrawProductionComparison.C:501
 DrawProductionComparison.C:502
 DrawProductionComparison.C:503
 DrawProductionComparison.C:504
 DrawProductionComparison.C:505
 DrawProductionComparison.C:506
 DrawProductionComparison.C:507
 DrawProductionComparison.C:508
 DrawProductionComparison.C:509
 DrawProductionComparison.C:510
 DrawProductionComparison.C:511
 DrawProductionComparison.C:512
 DrawProductionComparison.C:513
 DrawProductionComparison.C:514
 DrawProductionComparison.C:515
 DrawProductionComparison.C:516
 DrawProductionComparison.C:517
 DrawProductionComparison.C:518
 DrawProductionComparison.C:519
 DrawProductionComparison.C:520
 DrawProductionComparison.C:521
 DrawProductionComparison.C:522
 DrawProductionComparison.C:523
 DrawProductionComparison.C:524
 DrawProductionComparison.C:525
 DrawProductionComparison.C:526
 DrawProductionComparison.C:527
 DrawProductionComparison.C:528
 DrawProductionComparison.C:529
 DrawProductionComparison.C:530
 DrawProductionComparison.C:531
 DrawProductionComparison.C:532
 DrawProductionComparison.C:533
 DrawProductionComparison.C:534
 DrawProductionComparison.C:535
 DrawProductionComparison.C:536
 DrawProductionComparison.C:537
 DrawProductionComparison.C:538
 DrawProductionComparison.C:539
 DrawProductionComparison.C:540
 DrawProductionComparison.C:541
 DrawProductionComparison.C:542
 DrawProductionComparison.C:543
 DrawProductionComparison.C:544
 DrawProductionComparison.C:545
 DrawProductionComparison.C:546
 DrawProductionComparison.C:547
 DrawProductionComparison.C:548
 DrawProductionComparison.C:549
 DrawProductionComparison.C:550
 DrawProductionComparison.C:551
 DrawProductionComparison.C:552
 DrawProductionComparison.C:553
 DrawProductionComparison.C:554
 DrawProductionComparison.C:555
 DrawProductionComparison.C:556
 DrawProductionComparison.C:557
 DrawProductionComparison.C:558
 DrawProductionComparison.C:559
 DrawProductionComparison.C:560
 DrawProductionComparison.C:561
 DrawProductionComparison.C:562
 DrawProductionComparison.C:563
 DrawProductionComparison.C:564
 DrawProductionComparison.C:565
 DrawProductionComparison.C:566
 DrawProductionComparison.C:567
 DrawProductionComparison.C:568
 DrawProductionComparison.C:569
 DrawProductionComparison.C:570
 DrawProductionComparison.C:571
 DrawProductionComparison.C:572
 DrawProductionComparison.C:573
 DrawProductionComparison.C:574
 DrawProductionComparison.C:575
 DrawProductionComparison.C:576
 DrawProductionComparison.C:577
 DrawProductionComparison.C:578
 DrawProductionComparison.C:579
 DrawProductionComparison.C:580
 DrawProductionComparison.C:581
 DrawProductionComparison.C:582
 DrawProductionComparison.C:583
 DrawProductionComparison.C:584
 DrawProductionComparison.C:585
 DrawProductionComparison.C:586
 DrawProductionComparison.C:587
 DrawProductionComparison.C:588
 DrawProductionComparison.C:589
 DrawProductionComparison.C:590
 DrawProductionComparison.C:591
 DrawProductionComparison.C:592
 DrawProductionComparison.C:593
 DrawProductionComparison.C:594
 DrawProductionComparison.C:595
 DrawProductionComparison.C:596
 DrawProductionComparison.C:597
 DrawProductionComparison.C:598
 DrawProductionComparison.C:599
 DrawProductionComparison.C:600
 DrawProductionComparison.C:601
 DrawProductionComparison.C:602
 DrawProductionComparison.C:603
 DrawProductionComparison.C:604
 DrawProductionComparison.C:605
 DrawProductionComparison.C:606
 DrawProductionComparison.C:607
 DrawProductionComparison.C:608
 DrawProductionComparison.C:609
 DrawProductionComparison.C:610
 DrawProductionComparison.C:611
 DrawProductionComparison.C:612
 DrawProductionComparison.C:613
 DrawProductionComparison.C:614
 DrawProductionComparison.C:615
 DrawProductionComparison.C:616
 DrawProductionComparison.C:617
 DrawProductionComparison.C:618
 DrawProductionComparison.C:619
 DrawProductionComparison.C:620
 DrawProductionComparison.C:621
 DrawProductionComparison.C:622
 DrawProductionComparison.C:623
 DrawProductionComparison.C:624
 DrawProductionComparison.C:625
 DrawProductionComparison.C:626
 DrawProductionComparison.C:627
 DrawProductionComparison.C:628
 DrawProductionComparison.C:629
 DrawProductionComparison.C:630
 DrawProductionComparison.C:631
 DrawProductionComparison.C:632
 DrawProductionComparison.C:633
 DrawProductionComparison.C:634
 DrawProductionComparison.C:635
 DrawProductionComparison.C:636
 DrawProductionComparison.C:637
 DrawProductionComparison.C:638
 DrawProductionComparison.C:639
 DrawProductionComparison.C:640
 DrawProductionComparison.C:641
 DrawProductionComparison.C:642
 DrawProductionComparison.C:643
 DrawProductionComparison.C:644
 DrawProductionComparison.C:645
 DrawProductionComparison.C:646
 DrawProductionComparison.C:647
 DrawProductionComparison.C:648
 DrawProductionComparison.C:649
 DrawProductionComparison.C:650
 DrawProductionComparison.C:651
 DrawProductionComparison.C:652
 DrawProductionComparison.C:653
 DrawProductionComparison.C:654
 DrawProductionComparison.C:655
 DrawProductionComparison.C:656
 DrawProductionComparison.C:657
 DrawProductionComparison.C:658
 DrawProductionComparison.C:659
 DrawProductionComparison.C:660
 DrawProductionComparison.C:661
 DrawProductionComparison.C:662
 DrawProductionComparison.C:663
 DrawProductionComparison.C:664
 DrawProductionComparison.C:665
 DrawProductionComparison.C:666
 DrawProductionComparison.C:667
 DrawProductionComparison.C:668
 DrawProductionComparison.C:669
 DrawProductionComparison.C:670
 DrawProductionComparison.C:671
 DrawProductionComparison.C:672
 DrawProductionComparison.C:673
 DrawProductionComparison.C:674
 DrawProductionComparison.C:675
 DrawProductionComparison.C:676
 DrawProductionComparison.C:677
 DrawProductionComparison.C:678
 DrawProductionComparison.C:679
 DrawProductionComparison.C:680
 DrawProductionComparison.C:681
 DrawProductionComparison.C:682
 DrawProductionComparison.C:683
 DrawProductionComparison.C:684
 DrawProductionComparison.C:685
 DrawProductionComparison.C:686
 DrawProductionComparison.C:687
 DrawProductionComparison.C:688
 DrawProductionComparison.C:689
 DrawProductionComparison.C:690
 DrawProductionComparison.C:691
 DrawProductionComparison.C:692
 DrawProductionComparison.C:693
 DrawProductionComparison.C:694
 DrawProductionComparison.C:695
 DrawProductionComparison.C:696
 DrawProductionComparison.C:697
 DrawProductionComparison.C:698
 DrawProductionComparison.C:699
 DrawProductionComparison.C:700
 DrawProductionComparison.C:701
 DrawProductionComparison.C:702
 DrawProductionComparison.C:703
 DrawProductionComparison.C:704
 DrawProductionComparison.C:705
 DrawProductionComparison.C:706
 DrawProductionComparison.C:707
 DrawProductionComparison.C:708
 DrawProductionComparison.C:709
 DrawProductionComparison.C:710
 DrawProductionComparison.C:711
 DrawProductionComparison.C:712
 DrawProductionComparison.C:713
 DrawProductionComparison.C:714
 DrawProductionComparison.C:715
 DrawProductionComparison.C:716
 DrawProductionComparison.C:717
 DrawProductionComparison.C:718
 DrawProductionComparison.C:719
 DrawProductionComparison.C:720
 DrawProductionComparison.C:721
 DrawProductionComparison.C:722
 DrawProductionComparison.C:723
 DrawProductionComparison.C:724
 DrawProductionComparison.C:725
 DrawProductionComparison.C:726
 DrawProductionComparison.C:727
 DrawProductionComparison.C:728
 DrawProductionComparison.C:729
 DrawProductionComparison.C:730
 DrawProductionComparison.C:731
 DrawProductionComparison.C:732
 DrawProductionComparison.C:733
 DrawProductionComparison.C:734
 DrawProductionComparison.C:735
 DrawProductionComparison.C:736
 DrawProductionComparison.C:737
 DrawProductionComparison.C:738
 DrawProductionComparison.C:739
 DrawProductionComparison.C:740
 DrawProductionComparison.C:741
 DrawProductionComparison.C:742
 DrawProductionComparison.C:743
 DrawProductionComparison.C:744
 DrawProductionComparison.C:745
 DrawProductionComparison.C:746
 DrawProductionComparison.C:747
 DrawProductionComparison.C:748
 DrawProductionComparison.C:749
 DrawProductionComparison.C:750
 DrawProductionComparison.C:751
 DrawProductionComparison.C:752
 DrawProductionComparison.C:753
 DrawProductionComparison.C:754
 DrawProductionComparison.C:755
 DrawProductionComparison.C:756
 DrawProductionComparison.C:757
 DrawProductionComparison.C:758
 DrawProductionComparison.C:759
 DrawProductionComparison.C:760
 DrawProductionComparison.C:761
 DrawProductionComparison.C:762
 DrawProductionComparison.C:763
 DrawProductionComparison.C:764
 DrawProductionComparison.C:765
 DrawProductionComparison.C:766