ROOT logo
const Int_t numberOfCentralityBins = 8;
TString centralityArray[numberOfCentralityBins] = {"0-10","10-20","20-30","30-40","40-50","50-60","60-70","70-80"};

void drawBalanceFunctionPsiSummarySummary(const char* lhcPeriod = "LHC11h",
					      Int_t gTrainID = 290,			      
					      Double_t psiMin = -0.5, 
					  Double_t psiMax = 3.5,
					  TString eventClass = "Centrality"){
  TFile        *fPar[3];
  TGraphErrors *gPar[3][18];

  Int_t iCentrality[3] = {1,2,3};
  Double_t fCentralityMin[3] = {0.,20.,40.};
  Double_t fCentralityMax[3] = {10.,30.,50.};
  

  for(Int_t iCent = 0 ; iCent < 3; iCent++){

    // open file
    if(eventClass == "Centrality"){
      fPar[iCent] = TFile::Open(Form("PbPb/%s/Train%d/figs/balanceFunctionFit_Cent%.1fTo%.1f_FitParameters.root",lhcPeriod,gTrainID,fCentralityMin[iCent],fCentralityMax[iCent]),"READ");
    }
    else if(eventClass == "Multiplicity"){
      fPar[iCent] = TFile::Open(Form("PbPb/%s/Train%d/figs/balanceFunctionFit_Mult%.1fTo%.1f_FitParameters.root",lhcPeriod,gTrainID,fCentralityMin[iCent],fCentralityMax[iCent]),"RED");
    }
    else{
      fPar[iCent] = TFile::Open(Form("PbPb/%s/Train%d/figs/balanceFunctionFit_Cent%d_FitParameters.root",lhcPeriod,gTrainID,iCentrality[iCent]),"READ");
    }  
  
    if(!fPar[iCent]){
      cerr<<"FILE "<<Form("PbPb/%s/Train%d/figs/correlationFunctionFit_Cent%d_FitParameters.root",lhcPeriod,gTrainID,iCentrality[iCent])<<" not found!"<<endl;
      return;
    } 
    
    // open graph
    for(Int_t iPar = 0 ; iPar < 18; iPar++){
      gPar[iCent][iPar] = (TGraphErrors*)fPar[iCent]->Get(Form("gPar%d",iPar));
      if(!gPar[iCent][iPar]){
	cerr<<"Graph for parameter "<<iPar<<" in centrality "<< iCent << " not found!"<<endl;
	fPar[iCent]->ls();
	return;
      } 
    }
  }
  

  TCanvas *cSummary[18]; 
  for(Int_t iPar = 0 ; iPar < 18; iPar++){
    
    cSummary[iPar]  = new TCanvas(Form("cSummary%d",iPar),Form("Summary %d",iPar));
    
    // compare centralities
    cSummary[iPar]->cd();
    gPar[0][iPar]->SetMarkerColor(1);
    gPar[0][iPar]->SetLineColor(1);
    gPar[0][iPar]->Draw("AP");
    gPar[1][iPar]->SetMarkerColor(2);
    gPar[1][iPar]->SetLineColor(2);
    gPar[1][iPar]->Draw("P");
    gPar[2][iPar]->SetMarkerColor(4);
    gPar[2][iPar]->SetLineColor(4);
    gPar[2][iPar]->Draw("P");
    
    
    TLegend *legend2 = new TLegend(0.2,0.6,0.85,0.88,"","brNDC");
    setupLegend(legend2,0.065);
    for(Int_t iCent = 0 ; iCent < 3; iCent++){
      legend2->AddEntry(gPar[iCent][iPar],Form("%s \%",centralityArray[iCentrality[iCent]-1].Data()),"lp");
    }
    legend2->Draw();

    cSummary[iPar]->SaveAs(Form("PbPb/%s/Train%d/figs/balanceFunctionFit_FitParameter%d_Summary.eps",lhcPeriod,gTrainID,iPar));
  }
  
  
}
  

void drawBalanceFunctionPsiSummary(const char* lhcPeriod = "LHC11h",
				   Int_t gTrainID = 290,			      
				   Int_t gCentrality = 9,
				   Double_t psiMin = 0, 
				   Double_t psiMax = 10,
				   TString eventClass = "Centrality") {
  // Macro that draws the fit results for the 
  // correlation functions from the balance function analysis
  // Author: m.weber@cern.ch

  gROOT->LoadMacro("~/SetPlotStyle.C");
  SetPlotStyle();
  gStyle->SetPalette(1,0);

  //Load the PWG2ebye library
  gSystem->Load("libANALYSIS.so");
  gSystem->Load("libANALYSISalice.so");
  gSystem->Load("libEventMixing.so");
  gSystem->Load("libCORRFW.so");
  gSystem->Load("libPWGTools.so");
  gSystem->Load("libPWGCFebye.so");

  // pt bins
  // this could also be retrieved directly from AliBalancePsi
  //const Int_t kNPtBins = 16;
  //Double_t ptBins[kNPtBins+1] = {0.2,0.6,1.0,1.5,2.0,2.5,3.0,3.5,4.0,5.0,6.0,7.0,8.0,10.,12.,15.,20.};
  const Int_t kNPtBins = 5;
  Double_t ptBins[kNPtBins+1] = {0.2,1.0,2.0,3.0,4.0,8.0};
  //const Int_t kNPtBins = 4;
  //Double_t ptBins[kNPtBins+1] = {1.0,2.0,3.0,4.0,8.0};
  //const Int_t kNPtBins = 1;
  //Double_t ptBins[kNPtBins+1] = {0.2,2.0};

  Double_t pt[kNPtBins*kNPtBins];
  Double_t ptE[kNPtBins*kNPtBins];
  for(Int_t i = 0; i < kNPtBins; i++){
    for(Int_t j = 0; j < kNPtBins; j++){
      pt[i*kNPtBins+j] = 10*i + (ptBins[j]+ptBins[j+1])/2.;
      ptE[i*kNPtBins+j] = 0.2;
    }
  }


  // Canvases
  TCanvas *cQA[kNPtBins][kNPtBins];
  for(Int_t i = 0; i < kNPtBins; i++){
    for(Int_t j = 0; j <= i; j++){
      cQA[i][j] = new TCanvas(Form("cQA%d%d",i,j),Form("Fitting QA for bin %d %d",i,j),1200,900);
      cQA[i][j]->Divide(3,3);
    }
  }


  // Loop over pt bins
  Double_t ptTriggerMin = 0.0;
  Double_t ptTriggerMax = 0.;
  Double_t ptAssociatedMin = 0.0;
  Double_t ptAssociatedMax = 0.0;
  TString inFileName = "";
  
  //Fit Parameters
  Double_t p[18][kNPtBins*kNPtBins];
  Double_t pE[18][kNPtBins*kNPtBins];

  for(Int_t iPar = 0; iPar < 18; iPar++){
    for(Int_t i = 0; i < kNPtBins; i++){
      for(Int_t j = 0; j < kNPtBins; j++){
	p[iPar][i*kNPtBins+j] = -1.;
	pE[iPar][i*kNPtBins+j] = 0.;
      }
    }
  }

  TFile *inFile  = NULL; 
  TH2D *hTMPData = NULL;
  TH2D *hTMPRes  = NULL;
  TH2D *hTMPFit  = NULL;
  TF2 *fFit  = NULL;

  
  for(Int_t i = 0; i < kNPtBins; i++){
    for(Int_t j = 0; j <= i; j++){

      cout<<" PROCESSING PT BIN "<<i<<" "<<j<<endl;

      ptTriggerMin = ptBins[i];
      ptTriggerMax = ptBins[i+1];
      ptAssociatedMin = ptBins[j];
      ptAssociatedMax = ptBins[j+1];


      //Latex
      TString centralityLatex = "Centrality: ";
      centralityLatex += centralityArray[gCentrality-1]; 
      centralityLatex += "%";
      
      TString psiLatex;
      if((psiMin == -0.5)&&(psiMax == 0.5))
	psiLatex = " -7.5^{o} < #varphi - #Psi_{2} < 7.5^{o}"; 
      else if((psiMin == 0.5)&&(psiMax == 1.5))
	psiLatex = " 37.5^{o} < #varphi - #Psi_{2} < 52.5^{o}"; 
      else if((psiMin == 1.5)&&(psiMax == 2.5))
	psiLatex = " 82.5^{o} < #varphi - #Psi_{2} < 97.5^{o}"; 
      else 
	psiLatex = " 0^{o} < #varphi - #Psi_{2} < 180^{o}"; 
      
      TString pttLatex = Form("%.1f",ptTriggerMin);
      pttLatex += " < p_{T,trig} < "; pttLatex += Form("%.1f",ptTriggerMax);
      pttLatex += " GeV/c";
      
      TString ptaLatex = Form("%.1f",ptAssociatedMin);
      ptaLatex += " < p_{T,assoc} < "; ptaLatex += Form("%.1f",ptAssociatedMax);
      ptaLatex += " GeV/c";
      
      TLatex *latexInfo1 = new TLatex();
      latexInfo1->SetNDC();
      latexInfo1->SetTextSize(0.045);
      latexInfo1->SetTextColor(1);
      
      // Open input file
      inFileName = Form("PbPb/%s/Train%d/Fits/balanceFunctionFit2D",lhcPeriod,gTrainID);
      if(eventClass == "Centrality"){
	inFileName += Form(".Centrality%.1fTo%.1f",psiMin,psiMax);
	inFileName += ".PsiAll.PttFrom";
      }
      else if(eventClass == "Multiplicity"){
	inFileName += Form(".Multiplicity%.0fTo%.0f",psiMin,psiMax);
	inFileName += ".PsiAll.PttFrom";
      }
      else{ // "EventPlane" (default)
	inFileName += ".Centrality";  
	inFileName += gCentrality; inFileName += ".Psi";
	if((psiMin == -0.5)&&(psiMax == 0.5)) inFileName += "InPlane.Ptt";
	else if((psiMin == 0.5)&&(psiMax == 1.5)) inFileName += "Intermediate.Ptt";
	else if((psiMin == 1.5)&&(psiMax == 2.5)) inFileName += "OutOfPlane.Ptt";
	else if((psiMin == 2.5)&&(psiMax == 3.5)) inFileName += "Rest.PttFrom";
	else inFileName += "All.PttFrom";
      }
      inFileName += Form("%.1f",ptTriggerMin); inFileName += "To"; 
      inFileName += Form("%.1f",ptTriggerMax); inFileName += "PtaFrom";
      inFileName += Form("%.1f",ptAssociatedMin); inFileName += "To"; 
      inFileName += Form("%.1f",ptAssociatedMax); 
      inFileName += "_2pMethod.root";
      inFile = TFile::Open(inFileName.Data(),"read");
      inFile->ls();
      hTMPData = (TH2D*)inFile->Get(Form("gHistBalanceFunctionSubtracted"));
      hTMPRes  = (TH2D*)inFile->Get("gHistResidual");
      hTMPFit  = (TH2D*)inFile->Get(Form("gHistBalanceFunctionSubtractedFit"));

      cQA[i][j]->cd(1);
      hTMPData->DrawCopy("surf1fb");
      latexInfo1->DrawLatex(0.2,0.95,"Data");

      latexInfo1->DrawLatex(0.44,0.88,centralityLatex.Data());
      //latexInfo1->DrawLatex(0.44,0.82,psiLatex.Data());
      latexInfo1->DrawLatex(0.44,0.82,pttLatex.Data());
      latexInfo1->DrawLatex(0.44,0.76,ptaLatex.Data());

      cQA[i][j]->cd(2);
      hTMPFit->DrawCopy("surf1fb");
      latexInfo1->DrawLatex(0.2,0.95,"Fit");

      cQA[i][j]->cd(3);
      hTMPRes->DrawCopy("surf1fb");
      latexInfo1->DrawLatex(0.2,0.95,"Residual");

      cQA[i][j]->cd(4);
      hTMPData->ProjectionX()->DrawCopy("");
      latexInfo1->DrawLatex(0.2,0.95,"Data");

      cQA[i][j]->cd(5);
      hTMPFit->ProjectionX()->DrawCopy("");
      latexInfo1->DrawLatex(0.2,0.95,"Fit");

      cQA[i][j]->cd(6);
      hTMPRes->ProjectionX()->DrawCopy("");
      latexInfo1->DrawLatex(0.2,0.95,"Residual");

      cQA[i][j]->cd(7);
      hTMPData->ProjectionY()->DrawCopy("");
      latexInfo1->DrawLatex(0.2,0.95,"Data");

      cQA[i][j]->cd(8);
      hTMPFit->ProjectionY()->DrawCopy("");
      latexInfo1->DrawLatex(0.2,0.95,"Fit");

      cQA[i][j]->cd(9);
      hTMPRes->ProjectionY()->DrawCopy("");
      latexInfo1->DrawLatex(0.2,0.95,"Residual");


      cQA[i][j]->SaveAs(Form(Form("PbPb/%s/Train%d/figs/balanceFunctionFit_PttFrom%.1fTo%.1fPtaFrom%.1fTo%.1f.eps",lhcPeriod,gTrainID,ptTriggerMin,ptTriggerMax,ptAssociatedMin,ptAssociatedMax)));
      cQA[i][j]->SaveAs(Form(Form("PbPb/%s/Train%d/figs/balanceFunctionFit_PttFrom%.1fTo%.1fPtaFrom%.1fTo%.1f.pdf",lhcPeriod,gTrainID,ptTriggerMin,ptTriggerMax,ptAssociatedMin,ptAssociatedMax)));

      // fit parameters
      fFit = (TF2*)inFile->Get("gFitFunction");
      for(Int_t iPar = 0; iPar < 18; iPar++){
	p[iPar][i*kNPtBins+j] = fFit->GetParameter(iPar);
	pE[iPar][i*kNPtBins+j] = fFit->GetParError(iPar);
	cout<<iPar<<") Parameter "<<fFit->GetParName(iPar)<<" : "<<p[iPar][i*kNPtBins+j]<<" +- "<<pE[iPar][i*kNPtBins+j]<<endl;
      }

      inFile->Close();
    }
  }

  TGraphErrors *gPar[18];
  for(Int_t iPar = 0; iPar < 18; iPar++){
    gPar[iPar]  = new TGraphErrors(kNPtBins*kNPtBins,pt,p[iPar],ptE,pE[iPar]);
    gPar[iPar]->SetName(Form("gPar%d",iPar));
    gPar[iPar]->SetTitle(fFit->GetParName(iPar));
    gPar[iPar]->GetXaxis()->SetTitle("p_{T}");
    gPar[iPar]->GetYaxis()->SetTitle(fFit->GetParName(iPar));
    gPar[iPar]->SetMinimum(0.01);
    gPar[iPar]->SetMaximum(2);
    gPar[iPar]->SetMarkerStyle(20);
    gPar[iPar]->SetMarkerColor(2);
    gPar[iPar]->SetLineColor(2);
  }

  TLatex *latexInfo2 = new TLatex();
  latexInfo2->SetNDC();
  latexInfo2->SetTextSize(0.045);
  latexInfo2->SetTextColor(1);

  TCanvas *cPar = new TCanvas("cPar","parameters",1200,900);
  cPar->Divide(3,3);

  cPar->cd(1);
  gPar[1]->Draw("AP");

  cPar->cd(2);
  gPar[2]->Draw("AP");

  cPar->cd(3);
  gPar[3]->Draw("AP");

  cPar->cd(4);
  gPar[8]->Draw("AP");

  cPar->cd(5);
  gPar[9]->Draw("AP");

  cPar->cd(6);
  gPar[17]->Draw("AP");

  cPar->cd(7);
  gPar[12]->Draw("AP");

  cPar->cd(8);
  gPar[14]->Draw("AP");

  cPar->cd(9);
  gPar[15]->Draw("AP");

  cPar->SaveAs(Form("PbPb/%s/Train%d/figs/balanceFunctionFit_Cent%d_FitParameters.eps",lhcPeriod,gTrainID,gCentrality));
  cPar->SaveAs(Form("PbPb/%s/Train%d/figs/balanceFunctionFit_Cent%d_FitParameters.pdf",lhcPeriod,gTrainID,gCentrality));

  TFile *fOut = NULL;
  if(eventClass == "Centrality"){
    fOut = TFile::Open(Form("PbPb/%s/Train%d/figs/balanceFunctionFit_Cent%.1fTo%.1f_FitParameters.root",lhcPeriod,gTrainID,psiMin,psiMax),"RECREATE");
  }
  else if(eventClass == "Multiplicity"){
    fOut = TFile::Open(Form("PbPb/%s/Train%d/figs/balanceFunctionFit_Mult%.1fTo%.1f_FitParameters.root",lhcPeriod,gTrainID,psiMin,psiMax),"RECREATE");
  }
  else{
    fOut = TFile::Open(Form("PbPb/%s/Train%d/figs/balanceFunctionFit_Cent%d_FitParameters.root",lhcPeriod,gTrainID,gCentrality),"RECREATE")
  }  

  for(Int_t iPar = 0; iPar < 18; iPar++){
    gPar[iPar]->Write();
  }

  // delete canvases
  for(Int_t i = 0; i < kNPtBins; i++){
    for(Int_t j = 0; j <= i; j++){
      //delete cQA[i][j];
    }
  }

}


 drawBalanceFunctionPsiSummary.C:1
 drawBalanceFunctionPsiSummary.C:2
 drawBalanceFunctionPsiSummary.C:3
 drawBalanceFunctionPsiSummary.C:4
 drawBalanceFunctionPsiSummary.C:5
 drawBalanceFunctionPsiSummary.C:6
 drawBalanceFunctionPsiSummary.C:7
 drawBalanceFunctionPsiSummary.C:8
 drawBalanceFunctionPsiSummary.C:9
 drawBalanceFunctionPsiSummary.C:10
 drawBalanceFunctionPsiSummary.C:11
 drawBalanceFunctionPsiSummary.C:12
 drawBalanceFunctionPsiSummary.C:13
 drawBalanceFunctionPsiSummary.C:14
 drawBalanceFunctionPsiSummary.C:15
 drawBalanceFunctionPsiSummary.C:16
 drawBalanceFunctionPsiSummary.C:17
 drawBalanceFunctionPsiSummary.C:18
 drawBalanceFunctionPsiSummary.C:19
 drawBalanceFunctionPsiSummary.C:20
 drawBalanceFunctionPsiSummary.C:21
 drawBalanceFunctionPsiSummary.C:22
 drawBalanceFunctionPsiSummary.C:23
 drawBalanceFunctionPsiSummary.C:24
 drawBalanceFunctionPsiSummary.C:25
 drawBalanceFunctionPsiSummary.C:26
 drawBalanceFunctionPsiSummary.C:27
 drawBalanceFunctionPsiSummary.C:28
 drawBalanceFunctionPsiSummary.C:29
 drawBalanceFunctionPsiSummary.C:30
 drawBalanceFunctionPsiSummary.C:31
 drawBalanceFunctionPsiSummary.C:32
 drawBalanceFunctionPsiSummary.C:33
 drawBalanceFunctionPsiSummary.C:34
 drawBalanceFunctionPsiSummary.C:35
 drawBalanceFunctionPsiSummary.C:36
 drawBalanceFunctionPsiSummary.C:37
 drawBalanceFunctionPsiSummary.C:38
 drawBalanceFunctionPsiSummary.C:39
 drawBalanceFunctionPsiSummary.C:40
 drawBalanceFunctionPsiSummary.C:41
 drawBalanceFunctionPsiSummary.C:42
 drawBalanceFunctionPsiSummary.C:43
 drawBalanceFunctionPsiSummary.C:44
 drawBalanceFunctionPsiSummary.C:45
 drawBalanceFunctionPsiSummary.C:46
 drawBalanceFunctionPsiSummary.C:47
 drawBalanceFunctionPsiSummary.C:48
 drawBalanceFunctionPsiSummary.C:49
 drawBalanceFunctionPsiSummary.C:50
 drawBalanceFunctionPsiSummary.C:51
 drawBalanceFunctionPsiSummary.C:52
 drawBalanceFunctionPsiSummary.C:53
 drawBalanceFunctionPsiSummary.C:54
 drawBalanceFunctionPsiSummary.C:55
 drawBalanceFunctionPsiSummary.C:56
 drawBalanceFunctionPsiSummary.C:57
 drawBalanceFunctionPsiSummary.C:58
 drawBalanceFunctionPsiSummary.C:59
 drawBalanceFunctionPsiSummary.C:60
 drawBalanceFunctionPsiSummary.C:61
 drawBalanceFunctionPsiSummary.C:62
 drawBalanceFunctionPsiSummary.C:63
 drawBalanceFunctionPsiSummary.C:64
 drawBalanceFunctionPsiSummary.C:65
 drawBalanceFunctionPsiSummary.C:66
 drawBalanceFunctionPsiSummary.C:67
 drawBalanceFunctionPsiSummary.C:68
 drawBalanceFunctionPsiSummary.C:69
 drawBalanceFunctionPsiSummary.C:70
 drawBalanceFunctionPsiSummary.C:71
 drawBalanceFunctionPsiSummary.C:72
 drawBalanceFunctionPsiSummary.C:73
 drawBalanceFunctionPsiSummary.C:74
 drawBalanceFunctionPsiSummary.C:75
 drawBalanceFunctionPsiSummary.C:76
 drawBalanceFunctionPsiSummary.C:77
 drawBalanceFunctionPsiSummary.C:78
 drawBalanceFunctionPsiSummary.C:79
 drawBalanceFunctionPsiSummary.C:80
 drawBalanceFunctionPsiSummary.C:81
 drawBalanceFunctionPsiSummary.C:82
 drawBalanceFunctionPsiSummary.C:83
 drawBalanceFunctionPsiSummary.C:84
 drawBalanceFunctionPsiSummary.C:85
 drawBalanceFunctionPsiSummary.C:86
 drawBalanceFunctionPsiSummary.C:87
 drawBalanceFunctionPsiSummary.C:88
 drawBalanceFunctionPsiSummary.C:89
 drawBalanceFunctionPsiSummary.C:90
 drawBalanceFunctionPsiSummary.C:91
 drawBalanceFunctionPsiSummary.C:92
 drawBalanceFunctionPsiSummary.C:93
 drawBalanceFunctionPsiSummary.C:94
 drawBalanceFunctionPsiSummary.C:95
 drawBalanceFunctionPsiSummary.C:96
 drawBalanceFunctionPsiSummary.C:97
 drawBalanceFunctionPsiSummary.C:98
 drawBalanceFunctionPsiSummary.C:99
 drawBalanceFunctionPsiSummary.C:100
 drawBalanceFunctionPsiSummary.C:101
 drawBalanceFunctionPsiSummary.C:102
 drawBalanceFunctionPsiSummary.C:103
 drawBalanceFunctionPsiSummary.C:104
 drawBalanceFunctionPsiSummary.C:105
 drawBalanceFunctionPsiSummary.C:106
 drawBalanceFunctionPsiSummary.C:107
 drawBalanceFunctionPsiSummary.C:108
 drawBalanceFunctionPsiSummary.C:109
 drawBalanceFunctionPsiSummary.C:110
 drawBalanceFunctionPsiSummary.C:111
 drawBalanceFunctionPsiSummary.C:112
 drawBalanceFunctionPsiSummary.C:113
 drawBalanceFunctionPsiSummary.C:114
 drawBalanceFunctionPsiSummary.C:115
 drawBalanceFunctionPsiSummary.C:116
 drawBalanceFunctionPsiSummary.C:117
 drawBalanceFunctionPsiSummary.C:118
 drawBalanceFunctionPsiSummary.C:119
 drawBalanceFunctionPsiSummary.C:120
 drawBalanceFunctionPsiSummary.C:121
 drawBalanceFunctionPsiSummary.C:122
 drawBalanceFunctionPsiSummary.C:123
 drawBalanceFunctionPsiSummary.C:124
 drawBalanceFunctionPsiSummary.C:125
 drawBalanceFunctionPsiSummary.C:126
 drawBalanceFunctionPsiSummary.C:127
 drawBalanceFunctionPsiSummary.C:128
 drawBalanceFunctionPsiSummary.C:129
 drawBalanceFunctionPsiSummary.C:130
 drawBalanceFunctionPsiSummary.C:131
 drawBalanceFunctionPsiSummary.C:132
 drawBalanceFunctionPsiSummary.C:133
 drawBalanceFunctionPsiSummary.C:134
 drawBalanceFunctionPsiSummary.C:135
 drawBalanceFunctionPsiSummary.C:136
 drawBalanceFunctionPsiSummary.C:137
 drawBalanceFunctionPsiSummary.C:138
 drawBalanceFunctionPsiSummary.C:139
 drawBalanceFunctionPsiSummary.C:140
 drawBalanceFunctionPsiSummary.C:141
 drawBalanceFunctionPsiSummary.C:142
 drawBalanceFunctionPsiSummary.C:143
 drawBalanceFunctionPsiSummary.C:144
 drawBalanceFunctionPsiSummary.C:145
 drawBalanceFunctionPsiSummary.C:146
 drawBalanceFunctionPsiSummary.C:147
 drawBalanceFunctionPsiSummary.C:148
 drawBalanceFunctionPsiSummary.C:149
 drawBalanceFunctionPsiSummary.C:150
 drawBalanceFunctionPsiSummary.C:151
 drawBalanceFunctionPsiSummary.C:152
 drawBalanceFunctionPsiSummary.C:153
 drawBalanceFunctionPsiSummary.C:154
 drawBalanceFunctionPsiSummary.C:155
 drawBalanceFunctionPsiSummary.C:156
 drawBalanceFunctionPsiSummary.C:157
 drawBalanceFunctionPsiSummary.C:158
 drawBalanceFunctionPsiSummary.C:159
 drawBalanceFunctionPsiSummary.C:160
 drawBalanceFunctionPsiSummary.C:161
 drawBalanceFunctionPsiSummary.C:162
 drawBalanceFunctionPsiSummary.C:163
 drawBalanceFunctionPsiSummary.C:164
 drawBalanceFunctionPsiSummary.C:165
 drawBalanceFunctionPsiSummary.C:166
 drawBalanceFunctionPsiSummary.C:167
 drawBalanceFunctionPsiSummary.C:168
 drawBalanceFunctionPsiSummary.C:169
 drawBalanceFunctionPsiSummary.C:170
 drawBalanceFunctionPsiSummary.C:171
 drawBalanceFunctionPsiSummary.C:172
 drawBalanceFunctionPsiSummary.C:173
 drawBalanceFunctionPsiSummary.C:174
 drawBalanceFunctionPsiSummary.C:175
 drawBalanceFunctionPsiSummary.C:176
 drawBalanceFunctionPsiSummary.C:177
 drawBalanceFunctionPsiSummary.C:178
 drawBalanceFunctionPsiSummary.C:179
 drawBalanceFunctionPsiSummary.C:180
 drawBalanceFunctionPsiSummary.C:181
 drawBalanceFunctionPsiSummary.C:182
 drawBalanceFunctionPsiSummary.C:183
 drawBalanceFunctionPsiSummary.C:184
 drawBalanceFunctionPsiSummary.C:185
 drawBalanceFunctionPsiSummary.C:186
 drawBalanceFunctionPsiSummary.C:187
 drawBalanceFunctionPsiSummary.C:188
 drawBalanceFunctionPsiSummary.C:189
 drawBalanceFunctionPsiSummary.C:190
 drawBalanceFunctionPsiSummary.C:191
 drawBalanceFunctionPsiSummary.C:192
 drawBalanceFunctionPsiSummary.C:193
 drawBalanceFunctionPsiSummary.C:194
 drawBalanceFunctionPsiSummary.C:195
 drawBalanceFunctionPsiSummary.C:196
 drawBalanceFunctionPsiSummary.C:197
 drawBalanceFunctionPsiSummary.C:198
 drawBalanceFunctionPsiSummary.C:199
 drawBalanceFunctionPsiSummary.C:200
 drawBalanceFunctionPsiSummary.C:201
 drawBalanceFunctionPsiSummary.C:202
 drawBalanceFunctionPsiSummary.C:203
 drawBalanceFunctionPsiSummary.C:204
 drawBalanceFunctionPsiSummary.C:205
 drawBalanceFunctionPsiSummary.C:206
 drawBalanceFunctionPsiSummary.C:207
 drawBalanceFunctionPsiSummary.C:208
 drawBalanceFunctionPsiSummary.C:209
 drawBalanceFunctionPsiSummary.C:210
 drawBalanceFunctionPsiSummary.C:211
 drawBalanceFunctionPsiSummary.C:212
 drawBalanceFunctionPsiSummary.C:213
 drawBalanceFunctionPsiSummary.C:214
 drawBalanceFunctionPsiSummary.C:215
 drawBalanceFunctionPsiSummary.C:216
 drawBalanceFunctionPsiSummary.C:217
 drawBalanceFunctionPsiSummary.C:218
 drawBalanceFunctionPsiSummary.C:219
 drawBalanceFunctionPsiSummary.C:220
 drawBalanceFunctionPsiSummary.C:221
 drawBalanceFunctionPsiSummary.C:222
 drawBalanceFunctionPsiSummary.C:223
 drawBalanceFunctionPsiSummary.C:224
 drawBalanceFunctionPsiSummary.C:225
 drawBalanceFunctionPsiSummary.C:226
 drawBalanceFunctionPsiSummary.C:227
 drawBalanceFunctionPsiSummary.C:228
 drawBalanceFunctionPsiSummary.C:229
 drawBalanceFunctionPsiSummary.C:230
 drawBalanceFunctionPsiSummary.C:231
 drawBalanceFunctionPsiSummary.C:232
 drawBalanceFunctionPsiSummary.C:233
 drawBalanceFunctionPsiSummary.C:234
 drawBalanceFunctionPsiSummary.C:235
 drawBalanceFunctionPsiSummary.C:236
 drawBalanceFunctionPsiSummary.C:237
 drawBalanceFunctionPsiSummary.C:238
 drawBalanceFunctionPsiSummary.C:239
 drawBalanceFunctionPsiSummary.C:240
 drawBalanceFunctionPsiSummary.C:241
 drawBalanceFunctionPsiSummary.C:242
 drawBalanceFunctionPsiSummary.C:243
 drawBalanceFunctionPsiSummary.C:244
 drawBalanceFunctionPsiSummary.C:245
 drawBalanceFunctionPsiSummary.C:246
 drawBalanceFunctionPsiSummary.C:247
 drawBalanceFunctionPsiSummary.C:248
 drawBalanceFunctionPsiSummary.C:249
 drawBalanceFunctionPsiSummary.C:250
 drawBalanceFunctionPsiSummary.C:251
 drawBalanceFunctionPsiSummary.C:252
 drawBalanceFunctionPsiSummary.C:253
 drawBalanceFunctionPsiSummary.C:254
 drawBalanceFunctionPsiSummary.C:255
 drawBalanceFunctionPsiSummary.C:256
 drawBalanceFunctionPsiSummary.C:257
 drawBalanceFunctionPsiSummary.C:258
 drawBalanceFunctionPsiSummary.C:259
 drawBalanceFunctionPsiSummary.C:260
 drawBalanceFunctionPsiSummary.C:261
 drawBalanceFunctionPsiSummary.C:262
 drawBalanceFunctionPsiSummary.C:263
 drawBalanceFunctionPsiSummary.C:264
 drawBalanceFunctionPsiSummary.C:265
 drawBalanceFunctionPsiSummary.C:266
 drawBalanceFunctionPsiSummary.C:267
 drawBalanceFunctionPsiSummary.C:268
 drawBalanceFunctionPsiSummary.C:269
 drawBalanceFunctionPsiSummary.C:270
 drawBalanceFunctionPsiSummary.C:271
 drawBalanceFunctionPsiSummary.C:272
 drawBalanceFunctionPsiSummary.C:273
 drawBalanceFunctionPsiSummary.C:274
 drawBalanceFunctionPsiSummary.C:275
 drawBalanceFunctionPsiSummary.C:276
 drawBalanceFunctionPsiSummary.C:277
 drawBalanceFunctionPsiSummary.C:278
 drawBalanceFunctionPsiSummary.C:279
 drawBalanceFunctionPsiSummary.C:280
 drawBalanceFunctionPsiSummary.C:281
 drawBalanceFunctionPsiSummary.C:282
 drawBalanceFunctionPsiSummary.C:283
 drawBalanceFunctionPsiSummary.C:284
 drawBalanceFunctionPsiSummary.C:285
 drawBalanceFunctionPsiSummary.C:286
 drawBalanceFunctionPsiSummary.C:287
 drawBalanceFunctionPsiSummary.C:288
 drawBalanceFunctionPsiSummary.C:289
 drawBalanceFunctionPsiSummary.C:290
 drawBalanceFunctionPsiSummary.C:291
 drawBalanceFunctionPsiSummary.C:292
 drawBalanceFunctionPsiSummary.C:293
 drawBalanceFunctionPsiSummary.C:294
 drawBalanceFunctionPsiSummary.C:295
 drawBalanceFunctionPsiSummary.C:296
 drawBalanceFunctionPsiSummary.C:297
 drawBalanceFunctionPsiSummary.C:298
 drawBalanceFunctionPsiSummary.C:299
 drawBalanceFunctionPsiSummary.C:300
 drawBalanceFunctionPsiSummary.C:301
 drawBalanceFunctionPsiSummary.C:302
 drawBalanceFunctionPsiSummary.C:303
 drawBalanceFunctionPsiSummary.C:304
 drawBalanceFunctionPsiSummary.C:305
 drawBalanceFunctionPsiSummary.C:306
 drawBalanceFunctionPsiSummary.C:307
 drawBalanceFunctionPsiSummary.C:308
 drawBalanceFunctionPsiSummary.C:309
 drawBalanceFunctionPsiSummary.C:310
 drawBalanceFunctionPsiSummary.C:311
 drawBalanceFunctionPsiSummary.C:312
 drawBalanceFunctionPsiSummary.C:313
 drawBalanceFunctionPsiSummary.C:314
 drawBalanceFunctionPsiSummary.C:315
 drawBalanceFunctionPsiSummary.C:316
 drawBalanceFunctionPsiSummary.C:317
 drawBalanceFunctionPsiSummary.C:318
 drawBalanceFunctionPsiSummary.C:319
 drawBalanceFunctionPsiSummary.C:320
 drawBalanceFunctionPsiSummary.C:321
 drawBalanceFunctionPsiSummary.C:322
 drawBalanceFunctionPsiSummary.C:323
 drawBalanceFunctionPsiSummary.C:324
 drawBalanceFunctionPsiSummary.C:325
 drawBalanceFunctionPsiSummary.C:326
 drawBalanceFunctionPsiSummary.C:327
 drawBalanceFunctionPsiSummary.C:328
 drawBalanceFunctionPsiSummary.C:329
 drawBalanceFunctionPsiSummary.C:330
 drawBalanceFunctionPsiSummary.C:331
 drawBalanceFunctionPsiSummary.C:332
 drawBalanceFunctionPsiSummary.C:333
 drawBalanceFunctionPsiSummary.C:334
 drawBalanceFunctionPsiSummary.C:335
 drawBalanceFunctionPsiSummary.C:336
 drawBalanceFunctionPsiSummary.C:337
 drawBalanceFunctionPsiSummary.C:338
 drawBalanceFunctionPsiSummary.C:339
 drawBalanceFunctionPsiSummary.C:340
 drawBalanceFunctionPsiSummary.C:341
 drawBalanceFunctionPsiSummary.C:342
 drawBalanceFunctionPsiSummary.C:343
 drawBalanceFunctionPsiSummary.C:344
 drawBalanceFunctionPsiSummary.C:345
 drawBalanceFunctionPsiSummary.C:346
 drawBalanceFunctionPsiSummary.C:347
 drawBalanceFunctionPsiSummary.C:348
 drawBalanceFunctionPsiSummary.C:349
 drawBalanceFunctionPsiSummary.C:350
 drawBalanceFunctionPsiSummary.C:351
 drawBalanceFunctionPsiSummary.C:352
 drawBalanceFunctionPsiSummary.C:353
 drawBalanceFunctionPsiSummary.C:354
 drawBalanceFunctionPsiSummary.C:355
 drawBalanceFunctionPsiSummary.C:356
 drawBalanceFunctionPsiSummary.C:357
 drawBalanceFunctionPsiSummary.C:358
 drawBalanceFunctionPsiSummary.C:359
 drawBalanceFunctionPsiSummary.C:360
 drawBalanceFunctionPsiSummary.C:361
 drawBalanceFunctionPsiSummary.C:362