ROOT logo
TH1I *GetNEvents(const Char_t *testfile,const Char_t *plus="");
void CorrectFromTheWidth(TH1D *h1);
TList *GetResults(const Char_t *testfile,const Char_t *plus="");
TObject* GetSpectrum(AliCFContainer *c, Int_t step);
TObject* GetEfficiency(AliCFContainer *c, Int_t step = 9);
TObject* GetEfficiency(AliCFContainer *c, Int_t step, Int_t step0);
AliCFContainer *GetContainerCentralitySource(AliCFContainer *container,Int_t bincentrality,Int_t source);
AliCFContainer *GetContainerSourceAsFunctionOfCentrality(AliCFContainer *container,Int_t source);

void DrawEfficiencyCentralitySource(Int_t bincentrality,Int_t source,const char *testfile = "/lustre/alice/train/V005.PbPb/2010-11-29_2209.4266/mergedPeriods/data/PbPb/LHC10h.pass1/HFEtask_PbPb.root");


void DrawEfficiencyCentralitySource(Int_t bincentrality,Int_t source,const char *testfile) {
  
  //
  // source: 0 (charm), 1 (beauty), 2 (gamma), 3 (others)
  // centrality:  from 0 to 100 with 0-5, 5-10, 10-15...
  //
  //

  gStyle->SetPalette(1);
  gStyle->SetOptStat(1111);
  gStyle->SetPadBorderMode(0);
  gStyle->SetCanvasColor(10);
  gStyle->SetPadLeftMargin(0.13);
  gStyle->SetPadRightMargin(0.13);

  ///////////////////////////////////
  // Take the stuff
  //////////////////////////////////


  TList *results = GetResults(testfile,"");
  if(!results){
    printf("No output objects: Calculation will terminate here\n");
    return;
  }

  AliHFEcontainer *containerhfe = (AliHFEcontainer *) results->FindObject("trackContainer");
  if(!containerhfe) {
    printf("No hfe container \n");
    return;
  }

  // 0: pt, 1: eta, 2: phi, 3: charge, 4: source, 5: centrality
  AliCFContainer *sumcontaineresdd = containerhfe->MakeMergedCFContainer("sumesd","sumesd","MCTrackCont:recTrackContReco");
  AliCFContainer *sumcontainermcc = containerhfe->MakeMergedCFContainer("summc","summc","MCTrackCont:recTrackContMC");

  if(!sumcontaineresdd) {
    printf("No container sum esd\n");
    return;
  }

  if(!sumcontainermcc) {
    printf("No container sum mc\n");
    return;
  }

  // 0: pt, 1: eta, 2: phi for a given centrality and source
  //AliCFContainer *sumcontaineresd = GetContainerSourceCentrality(sumcontaineresdd,bincentrality,source);
  //AliCFContainer *sumcontainermc = GetContainerSourceCentrality(sumcontainermcc,bincentrality,source);

  // 0: pt, 1: eta, 2: phi, 3: centrality for a given centrality and source
  AliCFContainer *sumcontaineresd = GetContainerSourceAsFunctionOfCentrality(sumcontaineresdd,source);
  AliCFContainer *sumcontainermc = GetContainerSourceAsFunctionOfCentrality(sumcontainermcc,source);

 

  Int_t nSteps = sumcontaineresd->GetNStep();
  printf("In total %d steps\n",nSteps);

  AliCFDataGrid *dataGrida = (AliCFDataGrid *) GetSpectrum(sumcontaineresdd,nSteps-1);
 
  TH1D *spectrumcentrality = (TH1D *) dataGrida->Project(5);
  TH1D *spectrumpt = (TH1D *) dataGrida->Project(0);
  TH2D *spectrumptc = (TH2D *) dataGrida->Project(5,0);

  TAxis *xaxis = spectrumptc->GetXaxis();
  Int_t bin0 = xaxis->FindBin(0.0);
  Int_t bin5_s = xaxis->FindBin(4.99);
  Int_t bin30 = xaxis->FindBin(30.0);
  Int_t bin40_s = xaxis->FindBin(39.9);
  Int_t bin70 = xaxis->FindBin(70.0);
  Int_t bin80_s = xaxis->FindBin(79.9);

  printf("Bin 0 %d\n",bin0);
  printf("Bin 5 %d\n",bin5_s);
  printf("Bin 30 %d\n",bin30);
  printf("Bin 40 %d\n",bin40_s);
  printf("Bin 70 %d\n",bin70);
  printf("Bin 80 %d\n",bin80_s);
  
  TH1D *spectrumcentrality_0_5 = spectrumptc->ProjectionY("centrality_0_5",bin0,bin5_s);
  TH1D *spectrumcentrality_30_40 = spectrumptc->ProjectionY("centrality_30_40",bin30,bin40_s);
  TH1D *spectrumcentrality_70_80 = spectrumptc->ProjectionY("centrality_70_80",bin70,bin80_s);

  Int_t numberOfEvents = (Int_t) containerhfe->GetNumberOfEvents();
  
  printf("Number of events for a %d after Event cut\n",numberOfEvents);

  ////////////////////////////////
  // Input after ITS&TPC refit
  ///////////////////////////////
  TCanvas * canvascpt = new TCanvas("RawSpectrumCentrality","RawSpectrumCentrality",1000,700);
  canvascpt->Divide(2,1);
  canvascpt->cd(1);
  spectrumpt->SetTitle("");
  spectrumpt->SetStats(0);
  spectrumpt->SetLineColor(kBlue);
  spectrumpt->SetMarkerColor(kBlue);
  spectrumpt->SetMarkerStyle(25);
  //
  spectrumcentrality_0_5->SetTitle("");
  spectrumcentrality_0_5->SetStats(0);
  spectrumcentrality_0_5->SetLineColor(kRed);
  spectrumcentrality_0_5->SetMarkerColor(kRed);
  spectrumcentrality_0_5->SetMarkerStyle(26);
  //
  spectrumcentrality_30_40->SetTitle("");
  spectrumcentrality_30_40->SetStats(0);
  spectrumcentrality_30_40->SetLineColor(kMagenta);
  spectrumcentrality_30_40->SetMarkerColor(kBlack);
  spectrumcentrality_30_40->SetMarkerStyle(27);
  //
  spectrumcentrality_70_80->SetTitle("");
  spectrumcentrality_70_80->SetStats(0);
  spectrumcentrality_70_80->SetLineColor(kBlue);
  spectrumcentrality_70_80->SetMarkerColor(kBlue);
  spectrumcentrality_70_80->SetMarkerStyle(28);
  //
  spectrumpt->Draw();
  spectrumcentrality_0_5->Draw("same");
  spectrumcentrality_30_40->Draw("same");
  spectrumcentrality_70_80->Draw("same");
  TLegend *leg_different_centralities = new TLegend(0.4,0.6,0.89,0.89);
  leg_different_centralities->AddEntry(spectrumpt,"Minimum-bias","p");
  leg_different_centralities->AddEntry(spectrumcentrality_0_5,"0_5","p");
  leg_different_centralities->AddEntry(spectrumcentrality_30_40,"30_40","p");
  leg_different_centralities->AddEntry(spectrumcentrality_70_80,"70_80","p");
  leg_different_centralities->Draw("same");

  canvascpt->cd(2);
  spectrumptc->Draw("colz");
  
  /////////////////////////////////////
  // Take efficiencies
  /////////////////////////////////////
  
  AliCFEffGrid  *efficiencystepkineITSTPC  = (AliCFEffGrid*)  GetEfficiency(sumcontaineresd,AliHFEcuts::kNcutStepsMCTrack+AliHFEcuts::kStepRecKineITSTPC,AliHFEcuts::kNcutStepsMCTrack+AliHFEcuts::kStepRecNoCut);
  AliCFEffGrid  *efficiencystepPrim        = (AliCFEffGrid*)  GetEfficiency(sumcontaineresd,AliHFEcuts::kNcutStepsMCTrack+AliHFEcuts::kStepRecPrim,AliHFEcuts::kNcutStepsMCTrack+AliHFEcuts::kStepRecKineITSTPC);
  AliCFEffGrid  *efficiencystepHFEcutsITS  = (AliCFEffGrid*)  GetEfficiency(sumcontaineresd,AliHFEcuts::kNcutStepsMCTrack+AliHFEcuts::kStepHFEcutsITS,AliHFEcuts::kNcutStepsMCTrack+AliHFEcuts::kStepRecPrim);
  AliCFEffGrid  *efficiencystepHFEcutsTRD  = (AliCFEffGrid*)  GetEfficiency(sumcontaineresd,AliHFEcuts::kNcutStepsMCTrack+AliHFEcuts::kStepHFEcutsTRD,AliHFEcuts::kNcutStepsMCTrack+AliHFEcuts::kStepHFEcutsITS);
  AliCFEffGrid  *efficiencystepPIDTOF      = (AliCFEffGrid*)  GetEfficiency(sumcontaineresd,AliHFEcuts::kNcutStepsMCTrack+AliHFEcuts::kStepHFEcutsTRD+1,AliHFEcuts::kNcutStepsMCTrack+AliHFEcuts::kStepHFEcutsTRD);
  AliCFEffGrid  *efficiencystepPIDTPC      = (AliCFEffGrid*)  GetEfficiency(sumcontaineresd,AliHFEcuts::kNcutStepsMCTrack+AliHFEcuts::kStepHFEcutsTRD+2,AliHFEcuts::kNcutStepsMCTrack+AliHFEcuts::kStepHFEcutsTRD+1);

  AliCFEffGrid  *efficiencystepPIDall      = (AliCFEffGrid*)  GetEfficiency(sumcontaineresd,AliHFEcuts::kNcutStepsMCTrack+AliHFEcuts::kStepHFEcutsTRD+2,AliHFEcuts::kNcutStepsMCTrack+AliHFEcuts::kStepHFEcutsTRD);

  AliCFEffGrid  *efficiencystepall      = (AliCFEffGrid*)  GetEfficiency(sumcontaineresd,AliHFEcuts::kNcutStepsMCTrack+AliHFEcuts::kStepHFEcutsTRD+2,AliHFEcuts::kNcutStepsMCTrack+AliHFEcuts::kStepRecNoCut);

  //

  AliCFEffGrid  *efficiencystepMCkineITSTPC  = (AliCFEffGrid*)  GetEfficiency(sumcontainermc,AliHFEcuts::kNcutStepsMCTrack+AliHFEcuts::kStepRecKineITSTPC,AliHFEcuts::kNcutStepsMCTrack+AliHFEcuts::kStepRecNoCut);
  AliCFEffGrid  *efficiencystepMCPrim        = (AliCFEffGrid*)  GetEfficiency(sumcontainermc,AliHFEcuts::kNcutStepsMCTrack+AliHFEcuts::kStepRecPrim,AliHFEcuts::kNcutStepsMCTrack+AliHFEcuts::kStepRecKineITSTPC);
  AliCFEffGrid  *efficiencystepMCHFEcutsITS  = (AliCFEffGrid*)  GetEfficiency(sumcontainermc,AliHFEcuts::kNcutStepsMCTrack+AliHFEcuts::kStepHFEcutsITS,AliHFEcuts::kNcutStepsMCTrack+AliHFEcuts::kStepRecPrim);
  AliCFEffGrid  *efficiencystepMCHFEcutsTRD  = (AliCFEffGrid*)  GetEfficiency(sumcontainermc,AliHFEcuts::kNcutStepsMCTrack+AliHFEcuts::kStepHFEcutsTRD,AliHFEcuts::kNcutStepsMCTrack+AliHFEcuts::kStepHFEcutsITS);
  AliCFEffGrid  *efficiencystepMCPIDTOF      = (AliCFEffGrid*)  GetEfficiency(sumcontainermc,AliHFEcuts::kNcutStepsMCTrack+AliHFEcuts::kStepHFEcutsTRD+1,AliHFEcuts::kNcutStepsMCTrack+AliHFEcuts::kStepHFEcutsTRD);
  AliCFEffGrid  *efficiencystepMCPIDTPC      = (AliCFEffGrid*)  GetEfficiency(sumcontainermc,AliHFEcuts::kNcutStepsMCTrack+AliHFEcuts::kStepHFEcutsTRD+2,AliHFEcuts::kNcutStepsMCTrack+AliHFEcuts::kStepHFEcutsTRD+1);

  AliCFEffGrid  *efficiencystepMCPIDall      = (AliCFEffGrid*)  GetEfficiency(sumcontainermc,AliHFEcuts::kNcutStepsMCTrack+AliHFEcuts::kStepHFEcutsTRD+2,AliHFEcuts::kNcutStepsMCTrack+AliHFEcuts::kStepHFEcutsTRD);

  AliCFEffGrid  *efficiencystepMCall      = (AliCFEffGrid*)  GetEfficiency(sumcontainermc,AliHFEcuts::kNcutStepsMCTrack+AliHFEcuts::kStepHFEcutsTRD+2,0);

  
  ///////////////////////////////////////
  // Plot 1D
  ///////////////////////////////////////

  /////////////////////
  // Different cuts
  /////////////////////
  TCanvas * canvascomparison = new TCanvas("ITSTPCrefitStepESD","ITSTPCrefitStepESD",1000,700);
  canvascomparison->Divide(2,2);
 
  canvascomparison->cd(1);
  TH2D* h_effsteponlykineITSTPC1Donly = (TH2D *) efficiencystepkineITSTPC->Project(0,3);
  h_effsteponlykineITSTPC1Donly->SetTitle("");
  h_effsteponlykineITSTPC1Donly->SetStats(0);
  h_effsteponlykineITSTPC1Donly->SetLineColor(kBlue);
  h_effsteponlykineITSTPC1Donly->SetMarkerColor(kBlue);
  h_effsteponlykineITSTPC1Donly->SetMarkerStyle(25);
  h_effsteponlykineITSTPC1Donly->Draw("colz");
   
  canvascomparison->cd(2);
  TH2D* h_effsteponlyPrim1Donly =( TH2D *) efficiencystepPrim->Project(0,3);
  h_effsteponlyPrim1Donly->SetTitle("");
  h_effsteponlyPrim1Donly->SetStats(0);
  h_effsteponlyPrim1Donly->SetLineColor(kBlue);
  h_effsteponlyPrim1Donly->SetMarkerColor(kBlue);
  h_effsteponlyPrim1Donly->SetMarkerStyle(25);
  h_effsteponlyPrim1Donly->Draw("colz");

  
  canvascomparison->cd(3);
  TH2D* h_effsteponlyHFEcutsITS1Donly = (TH2D *) efficiencystepHFEcutsITS->Project(0,3);
  h_effsteponlyHFEcutsITS1Donly->SetTitle("");
  h_effsteponlyHFEcutsITS1Donly->SetStats(0);
  h_effsteponlyHFEcutsITS1Donly->SetLineColor(kBlue);
  h_effsteponlyHFEcutsITS1Donly->SetMarkerColor(kBlue);
  h_effsteponlyHFEcutsITS1Donly->SetMarkerStyle(25);
  h_effsteponlyHFEcutsITS1Donly->Draw("colz");
 
  
  canvascomparison->cd(4);
  TH2D* h_effsteponlyPID1Donly = (TH2D *) efficiencystepHFEcutsTRD->Project(0,3);
  h_effsteponlyPID1Donly->SetTitle("");
  h_effsteponlyPID1Donly->SetStats(0);
  h_effsteponlyPID1Donly->SetLineColor(kBlue);
  h_effsteponlyPID1Donly->SetMarkerColor(kBlue);
  h_effsteponlyPID1Donly->SetMarkerStyle(25);
  h_effsteponlyPID1Donly->Draw("colz");
 

  /////////////////////
  // Different cuts
  /////////////////////
  TCanvas * canvascomparisonbis = new TCanvas("ITSTPCrefitStepMC","ITSTPCrefitStepMC",1000,700);
  canvascomparisonbis->Divide(2,2);
 
  canvascomparisonbis->cd(1);
  TH2D* h_effstepMCkineITSTPC1Donly =  (TH2D *)efficiencystepMCkineITSTPC->Project(0,3);
  h_effstepMCkineITSTPC1Donly->SetTitle("");
  h_effstepMCkineITSTPC1Donly->SetStats(0);
  h_effstepMCkineITSTPC1Donly->SetLineColor(kBlue);
  h_effstepMCkineITSTPC1Donly->SetMarkerColor(kBlue);
  h_effstepMCkineITSTPC1Donly->SetMarkerStyle(25);
  h_effstepMCkineITSTPC1Donly->Draw("colz");
  

  canvascomparisonbis->cd(2);
  TH2D* h_effstepMCPrim1Donly = (TH2D *) efficiencystepMCPrim->Project(0,3);
  h_effstepMCPrim1Donly->SetTitle("");
  h_effstepMCPrim1Donly->SetStats(0);
  h_effstepMCPrim1Donly->SetLineColor(kBlue);
  h_effstepMCPrim1Donly->SetMarkerColor(kBlue);
  h_effstepMCPrim1Donly->SetMarkerStyle(25);
  h_effstepMCPrim1Donly->Draw("colz");
  
  canvascomparisonbis->cd(3);
  TH2D* h_effstepMCHFEcutsITS1Donly = (TH2D *) efficiencystepMCHFEcutsITS->Project(0,3);
  h_effstepMCHFEcutsITS1Donly->SetTitle("");
  h_effstepMCHFEcutsITS1Donly->SetStats(0);
  h_effstepMCHFEcutsITS1Donly->SetLineColor(kBlue);
  h_effstepMCHFEcutsITS1Donly->SetMarkerColor(kBlue);
  h_effstepMCHFEcutsITS1Donly->SetMarkerStyle(25);
  h_effstepMCHFEcutsITS1Donly->Draw("colz");
  
  canvascomparisonbis->cd(4);
  TH2D* h_effstepMCPID1Donly = (TH2D *) efficiencystepMCHFEcutsTRD->Project(0,3);
  h_effstepMCPID1Donly->SetTitle("");
  h_effstepMCPID1Donly->SetStats(0);
  h_effstepMCPID1Donly->SetLineColor(kBlue);
  h_effstepMCPID1Donly->SetMarkerColor(kBlue);
  h_effstepMCPID1Donly->SetMarkerStyle(25);
  h_effstepMCPID1Donly->Draw("colz");
  

  ///////////
  // PID
  ///////////
  TCanvas * canvasc1Don = new TCanvas("PIDstepESD","PIDstepESD",1000,700);
  canvasc1Don->Divide(3,1);
  
  canvasc1Don->cd(1);
  TH2D* h_effstepPID1Donly = (TH2D *) efficiencystepPIDTOF->Project(0,3);
  h_effstepPID1Donly->SetTitle("");
  h_effstepPID1Donly->SetStats(0);
  h_effstepPID1Donly->SetLineColor(kBlue);
  h_effstepPID1Donly->SetMarkerColor(kBlue);
  h_effstepPID1Donly->SetMarkerStyle(25);
  gPad->SetLogz();
  h_effstepPID1Donly->Draw("colz");
  
  canvasc1Don->cd(2);
  TH2D* h_effstepPID1Donlyy = (TH2D *) efficiencystepPIDTPC->Project(0,3);
  h_effstepPID1Donlyy->SetTitle("");
  h_effstepPID1Donlyy->SetStats(0);
  h_effstepPID1Donlyy->SetLineColor(kBlue);
  h_effstepPID1Donlyy->SetMarkerColor(kBlue);
  h_effstepPID1Donlyy->SetMarkerStyle(25);
  gPad->SetLogz();
  h_effstepPID1Donlyy->Draw("colz");
  
  canvasc1Don->cd(3);
  TH2D* h_effstepPID1Donlyyy = (TH2D *) efficiencystepPIDall->Project(0,3);
  h_effstepPID1Donlyyy->SetTitle("");
  h_effstepPID1Donlyyy->SetStats(0);
  h_effstepPID1Donlyyy->SetLineColor(kBlue);
  h_effstepPID1Donlyyy->SetMarkerColor(kBlue);
  h_effstepPID1Donlyyy->SetMarkerStyle(25);
  gPad->SetLogz();
  h_effstepPID1Donlyyy->Draw("colz");
  
  //

  TCanvas * canvasc1DonMC = new TCanvas("PIDstepMC","PIDstepMC",1000,700);
  canvasc1DonMC->Divide(3,1);
  
  canvasc1DonMC->cd(1);
  TH2D* h_effstepPID1DMConly = (TH2D *) efficiencystepMCPIDTOF->Project(0,3);
  h_effstepPID1DMConly->SetTitle("");
  h_effstepPID1DMConly->SetStats(0);
 
  h_effstepPID1DMConly->SetLineColor(kBlue);
 
  h_effstepPID1DMConly->SetMarkerColor(kBlue);
 
  h_effstepPID1DMConly->SetMarkerStyle(25);
  gPad->SetLogz(); 
  h_effstepPID1DMConly->Draw("colz");
 

  canvasc1DonMC->cd(2);
  TH2D* h_effstepPID1DMConlyy = (TH2D *) efficiencystepMCPIDTPC->Project(0,3);
  h_effstepPID1DMConlyy->SetTitle("");
  h_effstepPID1DMConlyy->SetStats(0);
  h_effstepPID1DMConlyy->SetLineColor(kBlue);
  h_effstepPID1DMConlyy->SetMarkerColor(kBlue);
  h_effstepPID1DMConlyy->SetMarkerStyle(25);
  gPad->SetLogz();
  h_effstepPID1DMConlyy->Draw("colz");
 

  canvasc1DonMC->cd(3);
  TH2D* h_effstepPID1DMConlyyy = (TH2D *) efficiencystepMCPIDall->Project(0,3);
  h_effstepPID1DMConlyyy->SetTitle("");
  h_effstepPID1DMConlyyy->SetStats(0);
  h_effstepPID1DMConlyyy->SetLineColor(kBlue);
  h_effstepPID1DMConlyyy->SetMarkerColor(kBlue);
  h_effstepPID1DMConlyyy->SetMarkerStyle(25);
  gPad->SetLogz();
  h_effstepPID1DMConlyyy->Draw("colz");


  //////////
  // all
  //////////

  TCanvas * canvasall = new TCanvas("AllMC","AllMC",1000,700);
  //canvasall->Divide(2,1);

  canvasall->cd(1);
  TH2D* h_effstepPID1Dall = (TH2D *) efficiencystepMCall->Project(0,3);
  h_effstepPID1Dall->SetTitle("");
  h_effstepPID1Dall->SetStats(0);
  h_effstepPID1Dall->SetLineColor(kBlue);
  h_effstepPID1Dall->SetMarkerColor(kBlue);
  h_effstepPID1Dall->SetMarkerStyle(25);
  gPad->SetLogz();
  h_effstepPID1Dall->Draw("colz");

  
 


}

// ====================================================================
TList *GetResults(const Char_t *testfile,const Char_t *plus){
  //
  // read output
  //
  TFile *f = TFile::Open(testfile);
  if(!f || f->IsZombie()){
    printf("File not readable\n");
    return 0x0;
  }
  TString name(plus);
  name += "HFE_Results"; 
  printf("Name of TList %s\n",(const char*)name); 
  TList *l = dynamic_cast<TList *>(f->Get((const char*)name));
  if(!l){
    printf("Output container not found\n");
    f->Close(); delete f;
    return 0x0;
  } 
  TList *returnlist = dynamic_cast<TList *>(l->Clone());
  f->Close(); delete f;
  return returnlist;
}
//_________________________________________________________________________
TObject* GetSpectrum(AliCFContainer *c, Int_t step) {
  AliCFDataGrid* data = new AliCFDataGrid("data","",*c,step);
  //data->SetMeasured(step);
  return data;
}
//__________________________________________________________________________
TObject* GetEfficiency(AliCFContainer *c, Int_t step) {
  TString name("eff");
  name += step;
  AliCFEffGrid* eff = new AliCFEffGrid((const char*)name,"",*c);
  eff->CalculateEfficiency(step,0);
  return eff;
}
//_________________________________________________________________________
TObject* GetEfficiency(AliCFContainer *c, Int_t step, Int_t step0) {
  TString name("eff");
  name += step;
  name+= step0;
  AliCFEffGrid* eff = new AliCFEffGrid((const char*)name,"",*c);
  eff->CalculateEfficiency(step,step0);
  return eff;
}
//_______________________________________________________________________
TH1I *GetNEvents(const Char_t *testfile,const Char_t *plus){
  //
  // read output
  //
  TFile *f = TFile::Open(testfile);
  if(!f || f->IsZombie()){
    printf("File not readable\n");
    return 0x0;
  }
  TString name("nEvents");
  name += plus; 
  printf("Name of nEvents %s\n",(const char*)name); 
  TH1I *l = dynamic_cast<TH1I *>(f->Get((const char*)name));
  if(!l){
    printf("nEvents not found\n");
    f->Close(); delete f;
    return 0x0;
  } 
  TH1I *returnlist = dynamic_cast<TH1I *>(l->Clone());
  if(!returnlist) return 0x0;
  returnlist->SetDirectory(0);
  f->Close(); delete f;
  return returnlist;
}
//________________________________________________________________________
void CorrectFromTheWidth(TH1D *h1) {
  //
  // Correct from the width of the bins --> dN/dp_{T} (GeV/c)^{-1}
  //

  TAxis *axis = h1->GetXaxis();
  Int_t nbinX = h1->GetNbinsX();

  for(Int_t i = 1; i <= nbinX; i++) {

    Double_t width = axis->GetBinWidth(i);
    Double_t content = h1->GetBinContent(i);
    Double_t error = h1->GetBinError(i); 
    h1->SetBinContent(i,content/width); 
    h1->SetBinError(i,error/width);
  }

}
//____________________________________________________________________________
AliCFContainer *GetContainerCentralitySource(AliCFContainer *container,Int_t bincentrality,Int_t source) {

  Int_t *vars = new Int_t[3];
  vars[0] = 0;
  vars[1] = 1;
  vars[2] = 2;
     
  Int_t nbBinPt = container->GetNBins(0);
  Int_t nbBinEta = container->GetNBins(1);
  Int_t nbBinPhi = container->GetNBins(2);
  Int_t nbBinCharge = container->GetNBins(3);
  Int_t nbBinSource = container->GetNBins(4);
  Int_t nbBinCentrality = container->GetNBins(5);
  Double_t *arrayPt = new Double_t[nbBinPt + 1];
  Double_t *arrayEta = new Double_t[nbBinEta + 1];
  Double_t *arrayPhi = new Double_t[nbBinPhi + 1];
  Double_t *arrayCharge = new Double_t[nbBinCharge + 1];
  Double_t *arraySource = new Double_t[nbBinSource + 1];
  Double_t *arrayCentrality = new Double_t[nbBinCentrality + 1];
  container->GetBinLimits(0,arrayPt);
  container->GetBinLimits(1,arrayEta);
  container->GetBinLimits(2,arrayPhi);
  container->GetBinLimits(3,arrayCharge);
  container->GetBinLimits(4,arraySource);
  container->GetBinLimits(4,arrayCentrality);

  Int_t sourcebin = source;
  Int_t centralitybin = bincentrality;
 

  Double_t *varMin = new Double_t[6];
  Double_t *varMax = new Double_t[6];
  varMin[0] = arrayPt[0];
  varMin[1] = arrayEta[0];
  varMin[2] = arrayPhi[0];
  varMin[3] = arrayCharge[0];
  if(source == -1) sourcebin = 0;
  if(bincentrality == -1) centralitybin = 0;
  varMin[4] = arraySource[sourcebin];
  varMin[5] = arraySource[centralitybin];
  varMax[0] = arrayPt[nbBinPt];
  varMax[1] = arrayEta[nbBinEta];
  varMax[2] = arrayPhi[nbBinPhi];
  varMax[3] = arrayCharge[nbBinCharge];
  if(source == -1) sourcebin = nbBinSource;
  if(bincentrality == -1) centralitybin = nbBinCentrality;
  varMax[4] = arraySource[sourcebin];
  varMax[5] = arraySource[centralitybin];

  //printf("Nb of bin charge %d\n",nbBinCharge);
  //for(Int_t nb = 0; nb <= nbBinCharge; nb++) {
  //  printf("charge %f for %d\n",arrayCharge[nb],nb);
  //}

  AliCFContainer *k = container->MakeSlice(3,vars,varMin,varMax);
  k->SetName("Other");

  return k;

}
//____________________________________________________________________________
AliCFContainer *GetContainerSourceAsFunctionOfCentrality(AliCFContainer *container,Int_t source) {

  Int_t *vars = new Int_t[4];
  vars[0] = 0;
  vars[1] = 1;
  vars[2] = 2;
  vars[3] = 5;
     
  Int_t nbBinPt = container->GetNBins(0);
  Int_t nbBinEta = container->GetNBins(1);
  Int_t nbBinPhi = container->GetNBins(2);
  Int_t nbBinCharge = container->GetNBins(3);
  Int_t nbBinSource = container->GetNBins(4);
  Int_t nbBinCentrality = container->GetNBins(5);
  Double_t *arrayPt = new Double_t[nbBinPt + 1];
  Double_t *arrayEta = new Double_t[nbBinEta + 1];
  Double_t *arrayPhi = new Double_t[nbBinPhi + 1];
  Double_t *arrayCharge = new Double_t[nbBinCharge + 1];
  Double_t *arraySource = new Double_t[nbBinSource + 1];
  Double_t *arrayCentrality = new Double_t[nbBinCentrality + 1];
  container->GetBinLimits(0,arrayPt);
  container->GetBinLimits(1,arrayEta);
  container->GetBinLimits(2,arrayPhi);
  container->GetBinLimits(3,arrayCharge);
  container->GetBinLimits(4,arraySource);
  container->GetBinLimits(5,arrayCentrality);

  Int_t sourcebin = source;
 

  Double_t *varMin = new Double_t[6];
  Double_t *varMax = new Double_t[6];
  varMin[0] = arrayPt[0];
  varMin[1] = arrayEta[0];
  varMin[2] = arrayPhi[0];
  varMin[3] = arrayCharge[0];
  if(source == -1) sourcebin = 0;
  varMin[4] = arraySource[sourcebin];
  varMin[5] = arrayCentrality[0];
  varMax[0] = arrayPt[nbBinPt];
  varMax[1] = arrayEta[nbBinEta];
  varMax[2] = arrayPhi[nbBinPhi];
  varMax[3] = arrayCharge[nbBinCharge];
  if(source == -1) sourcebin = nbBinSource;
  varMax[4] = arraySource[sourcebin];
  varMax[5] = arrayCentrality[nbBinCentrality];

  //printf("Nb of bin charge %d\n",nbBinCharge);
  //for(Int_t nb = 0; nb <= nbBinCharge; nb++) {
  //  printf("charge %f for %d\n",arrayCharge[nb],nb);
  //}

  AliCFContainer *k = container->MakeSlice(4,vars,varMin,varMax);
  k->SetName("OtherAsFunctionOfCentrality");

  return k;

}
 DrawEfficiencyCentralitySource.C:1
 DrawEfficiencyCentralitySource.C:2
 DrawEfficiencyCentralitySource.C:3
 DrawEfficiencyCentralitySource.C:4
 DrawEfficiencyCentralitySource.C:5
 DrawEfficiencyCentralitySource.C:6
 DrawEfficiencyCentralitySource.C:7
 DrawEfficiencyCentralitySource.C:8
 DrawEfficiencyCentralitySource.C:9
 DrawEfficiencyCentralitySource.C:10
 DrawEfficiencyCentralitySource.C:11
 DrawEfficiencyCentralitySource.C:12
 DrawEfficiencyCentralitySource.C:13
 DrawEfficiencyCentralitySource.C:14
 DrawEfficiencyCentralitySource.C:15
 DrawEfficiencyCentralitySource.C:16
 DrawEfficiencyCentralitySource.C:17
 DrawEfficiencyCentralitySource.C:18
 DrawEfficiencyCentralitySource.C:19
 DrawEfficiencyCentralitySource.C:20
 DrawEfficiencyCentralitySource.C:21
 DrawEfficiencyCentralitySource.C:22
 DrawEfficiencyCentralitySource.C:23
 DrawEfficiencyCentralitySource.C:24
 DrawEfficiencyCentralitySource.C:25
 DrawEfficiencyCentralitySource.C:26
 DrawEfficiencyCentralitySource.C:27
 DrawEfficiencyCentralitySource.C:28
 DrawEfficiencyCentralitySource.C:29
 DrawEfficiencyCentralitySource.C:30
 DrawEfficiencyCentralitySource.C:31
 DrawEfficiencyCentralitySource.C:32
 DrawEfficiencyCentralitySource.C:33
 DrawEfficiencyCentralitySource.C:34
 DrawEfficiencyCentralitySource.C:35
 DrawEfficiencyCentralitySource.C:36
 DrawEfficiencyCentralitySource.C:37
 DrawEfficiencyCentralitySource.C:38
 DrawEfficiencyCentralitySource.C:39
 DrawEfficiencyCentralitySource.C:40
 DrawEfficiencyCentralitySource.C:41
 DrawEfficiencyCentralitySource.C:42
 DrawEfficiencyCentralitySource.C:43
 DrawEfficiencyCentralitySource.C:44
 DrawEfficiencyCentralitySource.C:45
 DrawEfficiencyCentralitySource.C:46
 DrawEfficiencyCentralitySource.C:47
 DrawEfficiencyCentralitySource.C:48
 DrawEfficiencyCentralitySource.C:49
 DrawEfficiencyCentralitySource.C:50
 DrawEfficiencyCentralitySource.C:51
 DrawEfficiencyCentralitySource.C:52
 DrawEfficiencyCentralitySource.C:53
 DrawEfficiencyCentralitySource.C:54
 DrawEfficiencyCentralitySource.C:55
 DrawEfficiencyCentralitySource.C:56
 DrawEfficiencyCentralitySource.C:57
 DrawEfficiencyCentralitySource.C:58
 DrawEfficiencyCentralitySource.C:59
 DrawEfficiencyCentralitySource.C:60
 DrawEfficiencyCentralitySource.C:61
 DrawEfficiencyCentralitySource.C:62
 DrawEfficiencyCentralitySource.C:63
 DrawEfficiencyCentralitySource.C:64
 DrawEfficiencyCentralitySource.C:65
 DrawEfficiencyCentralitySource.C:66
 DrawEfficiencyCentralitySource.C:67
 DrawEfficiencyCentralitySource.C:68
 DrawEfficiencyCentralitySource.C:69
 DrawEfficiencyCentralitySource.C:70
 DrawEfficiencyCentralitySource.C:71
 DrawEfficiencyCentralitySource.C:72
 DrawEfficiencyCentralitySource.C:73
 DrawEfficiencyCentralitySource.C:74
 DrawEfficiencyCentralitySource.C:75
 DrawEfficiencyCentralitySource.C:76
 DrawEfficiencyCentralitySource.C:77
 DrawEfficiencyCentralitySource.C:78
 DrawEfficiencyCentralitySource.C:79
 DrawEfficiencyCentralitySource.C:80
 DrawEfficiencyCentralitySource.C:81
 DrawEfficiencyCentralitySource.C:82
 DrawEfficiencyCentralitySource.C:83
 DrawEfficiencyCentralitySource.C:84
 DrawEfficiencyCentralitySource.C:85
 DrawEfficiencyCentralitySource.C:86
 DrawEfficiencyCentralitySource.C:87
 DrawEfficiencyCentralitySource.C:88
 DrawEfficiencyCentralitySource.C:89
 DrawEfficiencyCentralitySource.C:90
 DrawEfficiencyCentralitySource.C:91
 DrawEfficiencyCentralitySource.C:92
 DrawEfficiencyCentralitySource.C:93
 DrawEfficiencyCentralitySource.C:94
 DrawEfficiencyCentralitySource.C:95
 DrawEfficiencyCentralitySource.C:96
 DrawEfficiencyCentralitySource.C:97
 DrawEfficiencyCentralitySource.C:98
 DrawEfficiencyCentralitySource.C:99
 DrawEfficiencyCentralitySource.C:100
 DrawEfficiencyCentralitySource.C:101
 DrawEfficiencyCentralitySource.C:102
 DrawEfficiencyCentralitySource.C:103
 DrawEfficiencyCentralitySource.C:104
 DrawEfficiencyCentralitySource.C:105
 DrawEfficiencyCentralitySource.C:106
 DrawEfficiencyCentralitySource.C:107
 DrawEfficiencyCentralitySource.C:108
 DrawEfficiencyCentralitySource.C:109
 DrawEfficiencyCentralitySource.C:110
 DrawEfficiencyCentralitySource.C:111
 DrawEfficiencyCentralitySource.C:112
 DrawEfficiencyCentralitySource.C:113
 DrawEfficiencyCentralitySource.C:114
 DrawEfficiencyCentralitySource.C:115
 DrawEfficiencyCentralitySource.C:116
 DrawEfficiencyCentralitySource.C:117
 DrawEfficiencyCentralitySource.C:118
 DrawEfficiencyCentralitySource.C:119
 DrawEfficiencyCentralitySource.C:120
 DrawEfficiencyCentralitySource.C:121
 DrawEfficiencyCentralitySource.C:122
 DrawEfficiencyCentralitySource.C:123
 DrawEfficiencyCentralitySource.C:124
 DrawEfficiencyCentralitySource.C:125
 DrawEfficiencyCentralitySource.C:126
 DrawEfficiencyCentralitySource.C:127
 DrawEfficiencyCentralitySource.C:128
 DrawEfficiencyCentralitySource.C:129
 DrawEfficiencyCentralitySource.C:130
 DrawEfficiencyCentralitySource.C:131
 DrawEfficiencyCentralitySource.C:132
 DrawEfficiencyCentralitySource.C:133
 DrawEfficiencyCentralitySource.C:134
 DrawEfficiencyCentralitySource.C:135
 DrawEfficiencyCentralitySource.C:136
 DrawEfficiencyCentralitySource.C:137
 DrawEfficiencyCentralitySource.C:138
 DrawEfficiencyCentralitySource.C:139
 DrawEfficiencyCentralitySource.C:140
 DrawEfficiencyCentralitySource.C:141
 DrawEfficiencyCentralitySource.C:142
 DrawEfficiencyCentralitySource.C:143
 DrawEfficiencyCentralitySource.C:144
 DrawEfficiencyCentralitySource.C:145
 DrawEfficiencyCentralitySource.C:146
 DrawEfficiencyCentralitySource.C:147
 DrawEfficiencyCentralitySource.C:148
 DrawEfficiencyCentralitySource.C:149
 DrawEfficiencyCentralitySource.C:150
 DrawEfficiencyCentralitySource.C:151
 DrawEfficiencyCentralitySource.C:152
 DrawEfficiencyCentralitySource.C:153
 DrawEfficiencyCentralitySource.C:154
 DrawEfficiencyCentralitySource.C:155
 DrawEfficiencyCentralitySource.C:156
 DrawEfficiencyCentralitySource.C:157
 DrawEfficiencyCentralitySource.C:158
 DrawEfficiencyCentralitySource.C:159
 DrawEfficiencyCentralitySource.C:160
 DrawEfficiencyCentralitySource.C:161
 DrawEfficiencyCentralitySource.C:162
 DrawEfficiencyCentralitySource.C:163
 DrawEfficiencyCentralitySource.C:164
 DrawEfficiencyCentralitySource.C:165
 DrawEfficiencyCentralitySource.C:166
 DrawEfficiencyCentralitySource.C:167
 DrawEfficiencyCentralitySource.C:168
 DrawEfficiencyCentralitySource.C:169
 DrawEfficiencyCentralitySource.C:170
 DrawEfficiencyCentralitySource.C:171
 DrawEfficiencyCentralitySource.C:172
 DrawEfficiencyCentralitySource.C:173
 DrawEfficiencyCentralitySource.C:174
 DrawEfficiencyCentralitySource.C:175
 DrawEfficiencyCentralitySource.C:176
 DrawEfficiencyCentralitySource.C:177
 DrawEfficiencyCentralitySource.C:178
 DrawEfficiencyCentralitySource.C:179
 DrawEfficiencyCentralitySource.C:180
 DrawEfficiencyCentralitySource.C:181
 DrawEfficiencyCentralitySource.C:182
 DrawEfficiencyCentralitySource.C:183
 DrawEfficiencyCentralitySource.C:184
 DrawEfficiencyCentralitySource.C:185
 DrawEfficiencyCentralitySource.C:186
 DrawEfficiencyCentralitySource.C:187
 DrawEfficiencyCentralitySource.C:188
 DrawEfficiencyCentralitySource.C:189
 DrawEfficiencyCentralitySource.C:190
 DrawEfficiencyCentralitySource.C:191
 DrawEfficiencyCentralitySource.C:192
 DrawEfficiencyCentralitySource.C:193
 DrawEfficiencyCentralitySource.C:194
 DrawEfficiencyCentralitySource.C:195
 DrawEfficiencyCentralitySource.C:196
 DrawEfficiencyCentralitySource.C:197
 DrawEfficiencyCentralitySource.C:198
 DrawEfficiencyCentralitySource.C:199
 DrawEfficiencyCentralitySource.C:200
 DrawEfficiencyCentralitySource.C:201
 DrawEfficiencyCentralitySource.C:202
 DrawEfficiencyCentralitySource.C:203
 DrawEfficiencyCentralitySource.C:204
 DrawEfficiencyCentralitySource.C:205
 DrawEfficiencyCentralitySource.C:206
 DrawEfficiencyCentralitySource.C:207
 DrawEfficiencyCentralitySource.C:208
 DrawEfficiencyCentralitySource.C:209
 DrawEfficiencyCentralitySource.C:210
 DrawEfficiencyCentralitySource.C:211
 DrawEfficiencyCentralitySource.C:212
 DrawEfficiencyCentralitySource.C:213
 DrawEfficiencyCentralitySource.C:214
 DrawEfficiencyCentralitySource.C:215
 DrawEfficiencyCentralitySource.C:216
 DrawEfficiencyCentralitySource.C:217
 DrawEfficiencyCentralitySource.C:218
 DrawEfficiencyCentralitySource.C:219
 DrawEfficiencyCentralitySource.C:220
 DrawEfficiencyCentralitySource.C:221
 DrawEfficiencyCentralitySource.C:222
 DrawEfficiencyCentralitySource.C:223
 DrawEfficiencyCentralitySource.C:224
 DrawEfficiencyCentralitySource.C:225
 DrawEfficiencyCentralitySource.C:226
 DrawEfficiencyCentralitySource.C:227
 DrawEfficiencyCentralitySource.C:228
 DrawEfficiencyCentralitySource.C:229
 DrawEfficiencyCentralitySource.C:230
 DrawEfficiencyCentralitySource.C:231
 DrawEfficiencyCentralitySource.C:232
 DrawEfficiencyCentralitySource.C:233
 DrawEfficiencyCentralitySource.C:234
 DrawEfficiencyCentralitySource.C:235
 DrawEfficiencyCentralitySource.C:236
 DrawEfficiencyCentralitySource.C:237
 DrawEfficiencyCentralitySource.C:238
 DrawEfficiencyCentralitySource.C:239
 DrawEfficiencyCentralitySource.C:240
 DrawEfficiencyCentralitySource.C:241
 DrawEfficiencyCentralitySource.C:242
 DrawEfficiencyCentralitySource.C:243
 DrawEfficiencyCentralitySource.C:244
 DrawEfficiencyCentralitySource.C:245
 DrawEfficiencyCentralitySource.C:246
 DrawEfficiencyCentralitySource.C:247
 DrawEfficiencyCentralitySource.C:248
 DrawEfficiencyCentralitySource.C:249
 DrawEfficiencyCentralitySource.C:250
 DrawEfficiencyCentralitySource.C:251
 DrawEfficiencyCentralitySource.C:252
 DrawEfficiencyCentralitySource.C:253
 DrawEfficiencyCentralitySource.C:254
 DrawEfficiencyCentralitySource.C:255
 DrawEfficiencyCentralitySource.C:256
 DrawEfficiencyCentralitySource.C:257
 DrawEfficiencyCentralitySource.C:258
 DrawEfficiencyCentralitySource.C:259
 DrawEfficiencyCentralitySource.C:260
 DrawEfficiencyCentralitySource.C:261
 DrawEfficiencyCentralitySource.C:262
 DrawEfficiencyCentralitySource.C:263
 DrawEfficiencyCentralitySource.C:264
 DrawEfficiencyCentralitySource.C:265
 DrawEfficiencyCentralitySource.C:266
 DrawEfficiencyCentralitySource.C:267
 DrawEfficiencyCentralitySource.C:268
 DrawEfficiencyCentralitySource.C:269
 DrawEfficiencyCentralitySource.C:270
 DrawEfficiencyCentralitySource.C:271
 DrawEfficiencyCentralitySource.C:272
 DrawEfficiencyCentralitySource.C:273
 DrawEfficiencyCentralitySource.C:274
 DrawEfficiencyCentralitySource.C:275
 DrawEfficiencyCentralitySource.C:276
 DrawEfficiencyCentralitySource.C:277
 DrawEfficiencyCentralitySource.C:278
 DrawEfficiencyCentralitySource.C:279
 DrawEfficiencyCentralitySource.C:280
 DrawEfficiencyCentralitySource.C:281
 DrawEfficiencyCentralitySource.C:282
 DrawEfficiencyCentralitySource.C:283
 DrawEfficiencyCentralitySource.C:284
 DrawEfficiencyCentralitySource.C:285
 DrawEfficiencyCentralitySource.C:286
 DrawEfficiencyCentralitySource.C:287
 DrawEfficiencyCentralitySource.C:288
 DrawEfficiencyCentralitySource.C:289
 DrawEfficiencyCentralitySource.C:290
 DrawEfficiencyCentralitySource.C:291
 DrawEfficiencyCentralitySource.C:292
 DrawEfficiencyCentralitySource.C:293
 DrawEfficiencyCentralitySource.C:294
 DrawEfficiencyCentralitySource.C:295
 DrawEfficiencyCentralitySource.C:296
 DrawEfficiencyCentralitySource.C:297
 DrawEfficiencyCentralitySource.C:298
 DrawEfficiencyCentralitySource.C:299
 DrawEfficiencyCentralitySource.C:300
 DrawEfficiencyCentralitySource.C:301
 DrawEfficiencyCentralitySource.C:302
 DrawEfficiencyCentralitySource.C:303
 DrawEfficiencyCentralitySource.C:304
 DrawEfficiencyCentralitySource.C:305
 DrawEfficiencyCentralitySource.C:306
 DrawEfficiencyCentralitySource.C:307
 DrawEfficiencyCentralitySource.C:308
 DrawEfficiencyCentralitySource.C:309
 DrawEfficiencyCentralitySource.C:310
 DrawEfficiencyCentralitySource.C:311
 DrawEfficiencyCentralitySource.C:312
 DrawEfficiencyCentralitySource.C:313
 DrawEfficiencyCentralitySource.C:314
 DrawEfficiencyCentralitySource.C:315
 DrawEfficiencyCentralitySource.C:316
 DrawEfficiencyCentralitySource.C:317
 DrawEfficiencyCentralitySource.C:318
 DrawEfficiencyCentralitySource.C:319
 DrawEfficiencyCentralitySource.C:320
 DrawEfficiencyCentralitySource.C:321
 DrawEfficiencyCentralitySource.C:322
 DrawEfficiencyCentralitySource.C:323
 DrawEfficiencyCentralitySource.C:324
 DrawEfficiencyCentralitySource.C:325
 DrawEfficiencyCentralitySource.C:326
 DrawEfficiencyCentralitySource.C:327
 DrawEfficiencyCentralitySource.C:328
 DrawEfficiencyCentralitySource.C:329
 DrawEfficiencyCentralitySource.C:330
 DrawEfficiencyCentralitySource.C:331
 DrawEfficiencyCentralitySource.C:332
 DrawEfficiencyCentralitySource.C:333
 DrawEfficiencyCentralitySource.C:334
 DrawEfficiencyCentralitySource.C:335
 DrawEfficiencyCentralitySource.C:336
 DrawEfficiencyCentralitySource.C:337
 DrawEfficiencyCentralitySource.C:338
 DrawEfficiencyCentralitySource.C:339
 DrawEfficiencyCentralitySource.C:340
 DrawEfficiencyCentralitySource.C:341
 DrawEfficiencyCentralitySource.C:342
 DrawEfficiencyCentralitySource.C:343
 DrawEfficiencyCentralitySource.C:344
 DrawEfficiencyCentralitySource.C:345
 DrawEfficiencyCentralitySource.C:346
 DrawEfficiencyCentralitySource.C:347
 DrawEfficiencyCentralitySource.C:348
 DrawEfficiencyCentralitySource.C:349
 DrawEfficiencyCentralitySource.C:350
 DrawEfficiencyCentralitySource.C:351
 DrawEfficiencyCentralitySource.C:352
 DrawEfficiencyCentralitySource.C:353
 DrawEfficiencyCentralitySource.C:354
 DrawEfficiencyCentralitySource.C:355
 DrawEfficiencyCentralitySource.C:356
 DrawEfficiencyCentralitySource.C:357
 DrawEfficiencyCentralitySource.C:358
 DrawEfficiencyCentralitySource.C:359
 DrawEfficiencyCentralitySource.C:360
 DrawEfficiencyCentralitySource.C:361
 DrawEfficiencyCentralitySource.C:362
 DrawEfficiencyCentralitySource.C:363
 DrawEfficiencyCentralitySource.C:364
 DrawEfficiencyCentralitySource.C:365
 DrawEfficiencyCentralitySource.C:366
 DrawEfficiencyCentralitySource.C:367
 DrawEfficiencyCentralitySource.C:368
 DrawEfficiencyCentralitySource.C:369
 DrawEfficiencyCentralitySource.C:370
 DrawEfficiencyCentralitySource.C:371
 DrawEfficiencyCentralitySource.C:372
 DrawEfficiencyCentralitySource.C:373
 DrawEfficiencyCentralitySource.C:374
 DrawEfficiencyCentralitySource.C:375
 DrawEfficiencyCentralitySource.C:376
 DrawEfficiencyCentralitySource.C:377
 DrawEfficiencyCentralitySource.C:378
 DrawEfficiencyCentralitySource.C:379
 DrawEfficiencyCentralitySource.C:380
 DrawEfficiencyCentralitySource.C:381
 DrawEfficiencyCentralitySource.C:382
 DrawEfficiencyCentralitySource.C:383
 DrawEfficiencyCentralitySource.C:384
 DrawEfficiencyCentralitySource.C:385
 DrawEfficiencyCentralitySource.C:386
 DrawEfficiencyCentralitySource.C:387
 DrawEfficiencyCentralitySource.C:388
 DrawEfficiencyCentralitySource.C:389
 DrawEfficiencyCentralitySource.C:390
 DrawEfficiencyCentralitySource.C:391
 DrawEfficiencyCentralitySource.C:392
 DrawEfficiencyCentralitySource.C:393
 DrawEfficiencyCentralitySource.C:394
 DrawEfficiencyCentralitySource.C:395
 DrawEfficiencyCentralitySource.C:396
 DrawEfficiencyCentralitySource.C:397
 DrawEfficiencyCentralitySource.C:398
 DrawEfficiencyCentralitySource.C:399
 DrawEfficiencyCentralitySource.C:400
 DrawEfficiencyCentralitySource.C:401
 DrawEfficiencyCentralitySource.C:402
 DrawEfficiencyCentralitySource.C:403
 DrawEfficiencyCentralitySource.C:404
 DrawEfficiencyCentralitySource.C:405
 DrawEfficiencyCentralitySource.C:406
 DrawEfficiencyCentralitySource.C:407
 DrawEfficiencyCentralitySource.C:408
 DrawEfficiencyCentralitySource.C:409
 DrawEfficiencyCentralitySource.C:410
 DrawEfficiencyCentralitySource.C:411
 DrawEfficiencyCentralitySource.C:412
 DrawEfficiencyCentralitySource.C:413
 DrawEfficiencyCentralitySource.C:414
 DrawEfficiencyCentralitySource.C:415
 DrawEfficiencyCentralitySource.C:416
 DrawEfficiencyCentralitySource.C:417
 DrawEfficiencyCentralitySource.C:418
 DrawEfficiencyCentralitySource.C:419
 DrawEfficiencyCentralitySource.C:420
 DrawEfficiencyCentralitySource.C:421
 DrawEfficiencyCentralitySource.C:422
 DrawEfficiencyCentralitySource.C:423
 DrawEfficiencyCentralitySource.C:424
 DrawEfficiencyCentralitySource.C:425
 DrawEfficiencyCentralitySource.C:426
 DrawEfficiencyCentralitySource.C:427
 DrawEfficiencyCentralitySource.C:428
 DrawEfficiencyCentralitySource.C:429
 DrawEfficiencyCentralitySource.C:430
 DrawEfficiencyCentralitySource.C:431
 DrawEfficiencyCentralitySource.C:432
 DrawEfficiencyCentralitySource.C:433
 DrawEfficiencyCentralitySource.C:434
 DrawEfficiencyCentralitySource.C:435
 DrawEfficiencyCentralitySource.C:436
 DrawEfficiencyCentralitySource.C:437
 DrawEfficiencyCentralitySource.C:438
 DrawEfficiencyCentralitySource.C:439
 DrawEfficiencyCentralitySource.C:440
 DrawEfficiencyCentralitySource.C:441
 DrawEfficiencyCentralitySource.C:442
 DrawEfficiencyCentralitySource.C:443
 DrawEfficiencyCentralitySource.C:444
 DrawEfficiencyCentralitySource.C:445
 DrawEfficiencyCentralitySource.C:446
 DrawEfficiencyCentralitySource.C:447
 DrawEfficiencyCentralitySource.C:448
 DrawEfficiencyCentralitySource.C:449
 DrawEfficiencyCentralitySource.C:450
 DrawEfficiencyCentralitySource.C:451
 DrawEfficiencyCentralitySource.C:452
 DrawEfficiencyCentralitySource.C:453
 DrawEfficiencyCentralitySource.C:454
 DrawEfficiencyCentralitySource.C:455
 DrawEfficiencyCentralitySource.C:456
 DrawEfficiencyCentralitySource.C:457
 DrawEfficiencyCentralitySource.C:458
 DrawEfficiencyCentralitySource.C:459
 DrawEfficiencyCentralitySource.C:460
 DrawEfficiencyCentralitySource.C:461
 DrawEfficiencyCentralitySource.C:462
 DrawEfficiencyCentralitySource.C:463
 DrawEfficiencyCentralitySource.C:464
 DrawEfficiencyCentralitySource.C:465
 DrawEfficiencyCentralitySource.C:466
 DrawEfficiencyCentralitySource.C:467
 DrawEfficiencyCentralitySource.C:468
 DrawEfficiencyCentralitySource.C:469
 DrawEfficiencyCentralitySource.C:470
 DrawEfficiencyCentralitySource.C:471
 DrawEfficiencyCentralitySource.C:472
 DrawEfficiencyCentralitySource.C:473
 DrawEfficiencyCentralitySource.C:474
 DrawEfficiencyCentralitySource.C:475
 DrawEfficiencyCentralitySource.C:476
 DrawEfficiencyCentralitySource.C:477
 DrawEfficiencyCentralitySource.C:478
 DrawEfficiencyCentralitySource.C:479
 DrawEfficiencyCentralitySource.C:480
 DrawEfficiencyCentralitySource.C:481
 DrawEfficiencyCentralitySource.C:482
 DrawEfficiencyCentralitySource.C:483
 DrawEfficiencyCentralitySource.C:484
 DrawEfficiencyCentralitySource.C:485
 DrawEfficiencyCentralitySource.C:486
 DrawEfficiencyCentralitySource.C:487
 DrawEfficiencyCentralitySource.C:488
 DrawEfficiencyCentralitySource.C:489
 DrawEfficiencyCentralitySource.C:490
 DrawEfficiencyCentralitySource.C:491
 DrawEfficiencyCentralitySource.C:492
 DrawEfficiencyCentralitySource.C:493
 DrawEfficiencyCentralitySource.C:494
 DrawEfficiencyCentralitySource.C:495
 DrawEfficiencyCentralitySource.C:496
 DrawEfficiencyCentralitySource.C:497
 DrawEfficiencyCentralitySource.C:498
 DrawEfficiencyCentralitySource.C:499
 DrawEfficiencyCentralitySource.C:500
 DrawEfficiencyCentralitySource.C:501
 DrawEfficiencyCentralitySource.C:502
 DrawEfficiencyCentralitySource.C:503
 DrawEfficiencyCentralitySource.C:504
 DrawEfficiencyCentralitySource.C:505
 DrawEfficiencyCentralitySource.C:506
 DrawEfficiencyCentralitySource.C:507
 DrawEfficiencyCentralitySource.C:508
 DrawEfficiencyCentralitySource.C:509
 DrawEfficiencyCentralitySource.C:510
 DrawEfficiencyCentralitySource.C:511
 DrawEfficiencyCentralitySource.C:512
 DrawEfficiencyCentralitySource.C:513
 DrawEfficiencyCentralitySource.C:514
 DrawEfficiencyCentralitySource.C:515
 DrawEfficiencyCentralitySource.C:516
 DrawEfficiencyCentralitySource.C:517
 DrawEfficiencyCentralitySource.C:518
 DrawEfficiencyCentralitySource.C:519
 DrawEfficiencyCentralitySource.C:520
 DrawEfficiencyCentralitySource.C:521
 DrawEfficiencyCentralitySource.C:522
 DrawEfficiencyCentralitySource.C:523
 DrawEfficiencyCentralitySource.C:524
 DrawEfficiencyCentralitySource.C:525
 DrawEfficiencyCentralitySource.C:526
 DrawEfficiencyCentralitySource.C:527
 DrawEfficiencyCentralitySource.C:528
 DrawEfficiencyCentralitySource.C:529
 DrawEfficiencyCentralitySource.C:530
 DrawEfficiencyCentralitySource.C:531
 DrawEfficiencyCentralitySource.C:532
 DrawEfficiencyCentralitySource.C:533
 DrawEfficiencyCentralitySource.C:534
 DrawEfficiencyCentralitySource.C:535
 DrawEfficiencyCentralitySource.C:536
 DrawEfficiencyCentralitySource.C:537
 DrawEfficiencyCentralitySource.C:538
 DrawEfficiencyCentralitySource.C:539
 DrawEfficiencyCentralitySource.C:540
 DrawEfficiencyCentralitySource.C:541
 DrawEfficiencyCentralitySource.C:542
 DrawEfficiencyCentralitySource.C:543
 DrawEfficiencyCentralitySource.C:544
 DrawEfficiencyCentralitySource.C:545
 DrawEfficiencyCentralitySource.C:546
 DrawEfficiencyCentralitySource.C:547
 DrawEfficiencyCentralitySource.C:548
 DrawEfficiencyCentralitySource.C:549
 DrawEfficiencyCentralitySource.C:550
 DrawEfficiencyCentralitySource.C:551
 DrawEfficiencyCentralitySource.C:552
 DrawEfficiencyCentralitySource.C:553
 DrawEfficiencyCentralitySource.C:554
 DrawEfficiencyCentralitySource.C:555
 DrawEfficiencyCentralitySource.C:556
 DrawEfficiencyCentralitySource.C:557
 DrawEfficiencyCentralitySource.C:558
 DrawEfficiencyCentralitySource.C:559
 DrawEfficiencyCentralitySource.C:560
 DrawEfficiencyCentralitySource.C:561
 DrawEfficiencyCentralitySource.C:562
 DrawEfficiencyCentralitySource.C:563
 DrawEfficiencyCentralitySource.C:564
 DrawEfficiencyCentralitySource.C:565
 DrawEfficiencyCentralitySource.C:566
 DrawEfficiencyCentralitySource.C:567
 DrawEfficiencyCentralitySource.C:568
 DrawEfficiencyCentralitySource.C:569
 DrawEfficiencyCentralitySource.C:570
 DrawEfficiencyCentralitySource.C:571
 DrawEfficiencyCentralitySource.C:572
 DrawEfficiencyCentralitySource.C:573
 DrawEfficiencyCentralitySource.C:574
 DrawEfficiencyCentralitySource.C:575
 DrawEfficiencyCentralitySource.C:576
 DrawEfficiencyCentralitySource.C:577