ROOT logo
void drawProtonQAResults(const char *analysisType = "Hybrid",
			 const char *pidMode = "Ratio") {
  //Macro to visualize the results of the proton QA task
  gStyle->SetPalette(1,0);
  gStyle->SetCanvasColor(41);
  gStyle->SetFrameFillColor(10);
  
  PrintHelpMenu();
  
  TString filename1 = "Protons.QA.";
  filename1 += analysisType; 
  filename1 += "."; filename1 += pidMode;
  filename1 += ".root";
  TString filename2 = "Protons.MC.QA.";
  filename2 += analysisType; 
  filename2 += "."; filename2 += pidMode;
  filename2 += ".root";
  TString filename3 = "Protons.Efficiency.";
  filename3 += analysisType; 
  filename3 += "."; filename3 += pidMode;
  filename3 += ".root";
  
  TFile *fQA = TFile::Open(filename1.Data());
  TList *listGlobalQA = (TList *)fQA->Get("globalQAList");
  drawCutStatistics(listGlobalQA,analysisType);
  fQA->Close();
 
  TFile *fMC = TFile::Open(filename2.Data());
  TList *listPDG = (TList *)fMC->Get("pdgCodeList");  
  TList *listMCProcesses = (TList *)fMC->Get("mcProcessList");  
  drawMCQA(listPDG,listMCProcesses);
  fMC->Close();
  
  TFile *fEfficiency = TFile::Open(filename3.Data());
  TList *listEfficiency = (TList *)fEfficiency->Get("efficiencyList");
  drawEfficiency(listEfficiency,analysisType);
  TList *listCutEfficiency = (TList *)fEfficiency->Get("cutEfficiencyList");
  DrawCutEfficiency(listCutEfficiency,analysisType);
  fEfficiency->Close();

  TFile *fVertex = TFile::Open("Vertex.QA.root");
  TList *listVertex = (TList *)fVertex->Get("vertexList");
  drawVertexQA(listVertex);
  fVertex->Close();
}

//________________________________________//
void PrintHelpMenu() {
  //Function that prints the different possibilities the user has 
  //with this macro (what to display, what is the input etc)
  Printf("==============================HELP MENU===========================");
  Printf("Function drawCutStatistics: Takes as an argument the list obtained from the Protons.QA.root file and the corresponding analysis type. Displays the following plots:");
  Printf("\t 1. Influence of the track cuts to the primary and secondary protons. For each bin we show the percentage of particles rejected by the corresponding cut. The first column shows the percentage of tracks excluded from the analysis.");
  Printf("\t 2. Influence of the track cuts to the primary and secondary antiprotons. For each bin we show the percentage of particles rejected by the corresponding cut. The first column shows the percentage of tracks excluded from the analysis.");
  Printf("\t 3. The ITS cluster map for primary and secondary (anti)protons.");
  Printf("\t 4. The (anti)proton purity and contamination as a function of eta or y.");
  Printf("\t 5. The (anti)proton purity and contamination as a function of Pt.");
  Printf("\t 6. The (anti)proton cut efficiency as a function of eta or y.");
  Printf("\t 7. The (anti)proton cut efficiency as a function of Pt.");
  Printf("\t 8. The composition of accepted secondary (anti)protons as a function of eta or y.");
  Printf("\t 9. The composition of accepted secondary (anti)protons as a function of Pt.");
  Printf("\t ***This function calls the DrawContamination function that creates an output root file with the name Contamination.root holding all the purity and contamination plots (eta or y and Pt dependence) and the DrawCutEfficiency function that creates an output root file with the name CutEfficiency.root with the y or eta and Pt dependence of the cut efficiency for protons and antiprotons.***");

  Printf("\nFunction drawMCQA: Takes as an argument the two lists obtained from the Protons.MC.QA.root file holding pure MC information. Displays the following plots:");
  Printf("\t 1. MC composition of secondary protons as a function of either eta or y.");
  Printf("\t 2. MC composition of secondary antiprotons as a function of either eta or y.");
  Printf("\t 3. MC composition of secondary protons as a function of Pt.");
  Printf("\t 4. MC composition of secondary antiprotons as a function of Pt");

  Printf("\nFunction drawEfficiency: Takes as an argument the list obtained from the Protons.Efficiency.root file along with the analysis type. Displays the following plots:");
  Printf("\t 1. Reconstruction efficiencies for primary and secondary (anti)protons as a function of either eta or y. The secondaries are categorized by the MC process as originating from a weak decay or from a hadronic interaction.");
  Printf("\t 2. Reconstruction efficiencies for primary and secondary (anti)protons as a function of Pt. The secondaries are categorized by the MC process as originating from a weak decay or from a hadronic interaction.");
  Printf("\t 3. Particle identifiction efficiencies for (anti)protons as a function of either eta or y and of Pt.");
  Printf("\t ***This function produces an output root file with the name Reconstruction-PID-Efficiency.root with all the efficiency and contamination plots.***");

  Printf("\nFunction drawVertexQA: Takes as an argument the list obtained from the Vertex.QA.root file holding pure vertex information. Displays the following plots:");
  Printf("\t 1. The vertex efficiencies for the TPC, SPD and track ones.");
  Printf("\t 2. The QA plots for the TPC vertex.");
  Printf("\t 3. The QA plots for the SPD vertex.");
  Printf("\t 4. The QA plots for the tracks vertex.");

  Printf("\nFunction drawKineQA: Takes as an argument the file Protons.QA.Histograms.root with all the histograms about kinematic or not variables");
  Printf("\t 1. The phi vs eta correlation plots for primary and secondary (anti)protons.");
  Printf("\t 2. The Nclusters TPC vs eta correlation plots for primary and secondary (anti)protons.");
  Printf("\t 3. The Nclusters TPC vs phi correlation plots for primary and secondary (anti)protons.");
  Printf("\t 4. The chi^2 per TPC cluster vs eta correlation plots for primary and secondary (anti)protons.");
  Printf("\t 5. The chi^2 per TPC cluster vs phi correlation plots for primary and secondary (anti)protons.");
  Printf("\t 6. The Npoints TPC (dE/dx) vs eta correlation plots for primary and secondary (anti)protons.");
  Printf("\t 7. The Npoints TPC (dE/dx) vs phi correlation plots for primary and secondary (anti)protons.");

 Printf("\nFunction drawEfficiencies: Takes as arguments the filename produced by the drawEfficiency (see before - usually the name is Reconstruction-PID-Efficiency.root) and three booleans indicating whether the points for primaries, secondaries from weak decays and secondaries from hadronic interactions will be shown.It displays:");
  Printf("\t 1. Reconstruction efficiencies for primary and secondary (anti)protons as a function of either eta or y. The secondaries are categorized by the MC process as originating from a weak decay or from a hadronic interaction.");
  Printf("\t 2. Reconstruction efficiencies for primary and secondary (anti)protons as a function of Pt. The secondaries are categorized by the MC process as originating from a weak decay or from a hadronic interaction.");
  Printf("\t 3. Particle identifiction efficiencies for (anti)protons as a function of either eta or y and of Pt.");

 Printf("\nFunction compareEfficiencies: Takes as arguments the filenames produced by the drawEfficiency (see before - usually the name is Reconstruction-PID-Efficiency.root) and three booleans indicating whether the points for primaries, secondaries from weak decays and secondaries from hadronic interactions will be shown. The two files correspond to two different tracking methods (e.g. TPC, Hybrid, Global). It displays:");
  Printf("\t 1. Reconstruction efficiencies for primary and secondary (anti)protons as a function of either eta or y. The secondaries are categorized by the MC process as originating from a weak decay or from a hadronic interaction.");
  Printf("\t 2. Reconstruction efficiencies for primary and secondary (anti)protons as a function of Pt. The secondaries are categorized by the MC process as originating from a weak decay or from a hadronic interaction.");

  Printf("\nFunction draw2DEfficiency: Takes as an argument the analysis and the PID mode along with the desired projection of the 3D plots. It draws the PID efficiency as a function of the different parameters.");
  Printf("\t yx: Efficiency vs pT vs eta");
  Printf("\t zx: Efficiency vs Npoints TPC for the dE/dx vs eta");
  Printf("\t zy: Efficiency vs Npoints TPC for the dE/dx vs pT");

  Printf("\nFunction drawCutParametersDistributions: Takes as an argument the third file created by the QA code (usually the name is Protons.QA.Histograms.<AnalysisMode>.root) and displays the distributions of accepted primaries (in blue) and secondaries (in orange) for the different cut parameters.");
  Printf("==================================================================\n\n\n");
}

//________________________________________//
void drawCutStatistics(TList *list,
		       const char* analysisType) {
  //Function to display the statistics from the cuts
  //The histogram shows the influence of each cut on the primary
  //and secondary (anti)protons
  const Int_t NQAHISTOSPERLIST = 27;

  Double_t gEntriesQA2DList[12] = {0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.};
  Double_t gEntriesQAPrimaryProtonsAcceptedList[NQAHISTOSPERLIST], gEntriesQAPrimaryProtonsRejectedList[NQAHISTOSPERLIST];
  Double_t gEntriesQASecondaryProtonsAcceptedList[NQAHISTOSPERLIST], gEntriesQASecondaryProtonsRejectedList[NQAHISTOSPERLIST];
  Double_t gEntriesQAPrimaryAntiProtonsAcceptedList[NQAHISTOSPERLIST], gEntriesQAPrimaryAntiProtonsRejectedList[NQAHISTOSPERLIST];
  Double_t gEntriesQASecondaryAntiProtonsAcceptedList[NQAHISTOSPERLIST], gEntriesQASecondaryAntiProtonsRejectedList[NQAHISTOSPERLIST];

  for(Int_t i = 0; i < NQAHISTOSPERLIST; i++) {
    gEntriesQAPrimaryProtonsAcceptedList[i] = 0.0;
    gEntriesQAPrimaryProtonsRejectedList[i] = 0.0;
    gEntriesQASecondaryProtonsAcceptedList[i] = 0.0;
    gEntriesQASecondaryProtonsRejectedList[i] = 0.0;
    gEntriesQAPrimaryAntiProtonsAcceptedList[i] = 0.0;
    gEntriesQAPrimaryAntiProtonsRejectedList[i] = 0.0;
    gEntriesQASecondaryAntiProtonsAcceptedList[i] = 0.0;
    gEntriesQASecondaryAntiProtonsRejectedList[i] = 0.0;
  }

  TList *fQA2DList = (TList *)list->At(0);
  GetQAEntries(fQA2DList,gEntriesQA2DList);
  TH3F *gHistYPtPDGProtonsPass = (TH3F *)fQA2DList->At(10);
  TH3F *gHistYPtPDGAntiProtonsPass = (TH3F *)fQA2DList->At(11);
 
  TList *fQAPrimaryProtonsAcceptedList = (TList *)list->At(1);
  GetQAEntries(fQAPrimaryProtonsAcceptedList,gEntriesQAPrimaryProtonsAcceptedList);

  TList *fQAPrimaryProtonsRejectedList = (TList *)list->At(2);
  GetQAEntries(fQAPrimaryProtonsRejectedList,gEntriesQAPrimaryProtonsRejectedList);

  TList *fQASecondaryProtonsAcceptedList = (TList *)list->At(3);
  GetQAEntries(fQASecondaryProtonsAcceptedList,gEntriesQASecondaryProtonsAcceptedList);

  TList *fQASecondaryProtonsRejectedList = (TList *)list->At(4);
  GetQAEntries(fQASecondaryProtonsRejectedList,gEntriesQASecondaryProtonsRejectedList);

  TList *fQAPrimaryAntiProtonsAcceptedList = (TList *)list->At(5);
  GetQAEntries(fQAPrimaryAntiProtonsAcceptedList,gEntriesQAPrimaryAntiProtonsAcceptedList);

  TList *fQAPrimaryAntiProtonsRejectedList = (TList *)list->At(6);
  GetQAEntries(fQAPrimaryAntiProtonsRejectedList,gEntriesQAPrimaryAntiProtonsRejectedList);

  TList *fQASecondaryAntiProtonsAcceptedList = (TList *)list->At(7);
  GetQAEntries(fQASecondaryAntiProtonsAcceptedList,gEntriesQASecondaryAntiProtonsAcceptedList);

  TList *fQASecondaryAntiProtonsRejectedList = (TList *)list->At(8);
  GetQAEntries(fQASecondaryAntiProtonsRejectedList,gEntriesQASecondaryAntiProtonsRejectedList);

  //_______________________________________________________//
  //Create the histograms
  const Int_t nx = 27;
  char *fCutName[nx] = {"Tracks","",
			"ITS Clusters",
			"#chi^{2}/N_{ITS-Clusters}",
			"TPC Clusters",
			"#chi^{2}/N_{TPC-Clusters}",
			"ExtCov11",
			"ExtCov22",
			"ExtCov33",
			"ExtCov44",
			"ExtCov55",
			"#sigma_{Vertex}",
			"#sigma_{Vertex-TPC}",
			"DCA_{xy}",
			"DCA_{xy}(TPC)",
			"DCA_{z}",
			"DCA_{z}(TPC)",
			"#chi^{2}(vertex)",
			"ITS refit",
			"TPC refit",
			"ESD pid",
			"TPC pid",
			"N_{points} (dE/dx)","",
			"N_{Secondaries}/N_{total}","",""};
  char *fCutITSName[6] = {"SPD_{1}","SPD_{2}",
			  "SDD_{1}","SDD_{2}",
			  "SSD_{1}","SSD_{2}"};

  //cut influence
  TH2F *hEmpty = new TH2F("hEmpty","",nx,0,nx,100,0,100); 
  hEmpty->SetStats(kFALSE); 
  hEmpty->SetMarkerStyle(kFullCircle);
  hEmpty->SetLineColor(2); hEmpty->SetMarkerColor(2);
  hEmpty->GetYaxis()->SetTitle("Influence of the cuts [%]");
  for(Int_t i = 1; i <= nx; i++) 
    hEmpty->GetXaxis()->SetBinLabel(i,fCutName[i-1]);
  hEmpty->GetXaxis()->SetLabelOffset(0.01); 
  hEmpty->GetXaxis()->SetLabelSize(0.045);

  //primary protons
  TH1F *hPrimaryProtons = new TH1F("hPrimaryProtons","",nx,0,nx); 
  hPrimaryProtons->SetStats(kFALSE); 
  hPrimaryProtons->SetMarkerStyle(kFullCircle);
  hPrimaryProtons->SetLineColor(4); hPrimaryProtons->SetLineWidth(2); 
  hPrimaryProtons->SetMarkerColor(4);
  hPrimaryProtons->GetYaxis()->SetTitle("Influence of the cuts [%]");
  for(Int_t i = 1; i <= nx; i++) {
    hPrimaryProtons->SetBinContent(i,-10.);
    hPrimaryProtons->GetXaxis()->SetBinLabel(i,fCutName[i-1]);
  }
  hPrimaryProtons->GetXaxis()->SetLabelOffset(0.01); 
  hPrimaryProtons->GetXaxis()->SetLabelSize(0.045);

  //secondary protons
  TH1F *hSecondaryProtons = new TH1F("hSecondaryProtons","",nx,0,nx); 
  hSecondaryProtons->SetStats(kFALSE); 
  hSecondaryProtons->SetMarkerStyle(22);
  hSecondaryProtons->SetMarkerSize(1.4);
  hSecondaryProtons->SetLineColor(2); hSecondaryProtons->SetLineWidth(2); 
  hSecondaryProtons->SetMarkerColor(2);
  hSecondaryProtons->GetYaxis()->SetTitle("Influence of the cuts [%]");
  for(Int_t i = 1; i <= nx; i++) {
    hSecondaryProtons->SetBinContent(i,-10.);
    hSecondaryProtons->GetXaxis()->SetBinLabel(i,fCutName[i-1]);
  }
  hSecondaryProtons->GetXaxis()->SetLabelOffset(0.01); 
  hSecondaryProtons->GetXaxis()->SetLabelSize(0.045);

  //primary antiprotons
  TH1F *hPrimaryAntiProtons = new TH1F("hPrimaryAntiProtons","",nx,0,nx); 
  hPrimaryAntiProtons->SetStats(kFALSE); 
  hPrimaryAntiProtons->SetMarkerStyle(kFullCircle);
  hPrimaryAntiProtons->SetLineColor(4); hPrimaryAntiProtons->SetLineWidth(2); 
  hPrimaryAntiProtons->SetMarkerColor(4);
  hPrimaryAntiProtons->GetYaxis()->SetTitle("Influence of the cuts [%]");
  for(Int_t i = 1; i <= nx; i++) {
    hPrimaryAntiProtons->SetBinContent(i,-10.);
    hPrimaryAntiProtons->GetXaxis()->SetBinLabel(i,fCutName[i-1]);
  }
  hPrimaryAntiProtons->GetXaxis()->SetLabelOffset(0.01); 
  hPrimaryAntiProtons->GetXaxis()->SetLabelSize(0.045);

  //secondary antiprotons
  TH1F *hSecondaryAntiProtons = new TH1F("hSecondaryAntiProtons","",nx,0,nx); 
  hSecondaryAntiProtons->SetStats(kFALSE); 
  hSecondaryAntiProtons->SetMarkerStyle(22);
  hSecondaryAntiProtons->SetMarkerSize(1.4);
  hSecondaryAntiProtons->SetLineColor(2); hSecondaryAntiProtons->SetLineWidth(2); 
  hSecondaryAntiProtons->SetMarkerColor(2);
  hSecondaryAntiProtons->GetYaxis()->SetTitle("Influence of the cuts [%]");
  for(Int_t i = 1; i <= nx; i++) {
    hSecondaryAntiProtons->SetBinContent(i,-10.);
    hSecondaryAntiProtons->GetXaxis()->SetBinLabel(i,fCutName[i-1]);
  }
  hSecondaryAntiProtons->GetXaxis()->SetLabelOffset(0.01); 
  hSecondaryAntiProtons->GetXaxis()->SetLabelSize(0.045);
  //_______________________________________________________//

  //1D for primary protons
  //cout<<"_____________________________________________________"<<endl;
  //cout<<"_______________PRIMARY PROTONS_______________________"<<endl;
  hPrimaryProtons->SetBinContent(1,GetPercentage(gEntriesQA2DList[0],gEntriesQA2DList[1]));

  for(Int_t i = 2; i < NQAHISTOSPERLIST-4; i++) 
    hPrimaryProtons->SetBinContent(i+1,GetPercentage(gEntriesQAPrimaryProtonsAcceptedList[i-2],
						     gEntriesQAPrimaryProtonsRejectedList[i-2]));
  
  //1D for secondary protons
  //cout<<"_____________________________________________________"<<endl;
  //cout<<"_______________SECONDARY PROTONS_____________________"<<endl;
  hSecondaryProtons->SetBinContent(1,GetPercentage(gEntriesQA2DList[2],gEntriesQA2DList[3]));
  
  for(Int_t i = 2; i < NQAHISTOSPERLIST-4; i++) 
    hSecondaryProtons->SetBinContent(i+1,GetPercentage(gEntriesQASecondaryProtonsAcceptedList[i-2],
						       gEntriesQASecondaryProtonsRejectedList[i-2]));
  hSecondaryProtons->SetBinContent(25,GetPercentage(gEntriesQA2DList[0],gEntriesQA2DList[2]));

  //1D for primary antiprotons
  //cout<<"_________________________________________________________"<<endl;
  //cout<<"_______________PRIMARY ANTIPROTONS_______________________"<<endl;
  hPrimaryAntiProtons->SetBinContent(1,GetPercentage(gEntriesQA2DList[4],gEntriesQA2DList[5]));
  
  for(Int_t i = 2; i < NQAHISTOSPERLIST-4; i++) 
    hPrimaryAntiProtons->SetBinContent(i+1,GetPercentage(gEntriesQAPrimaryAntiProtonsAcceptedList[i-2],
							 gEntriesQAPrimaryAntiProtonsRejectedList[i-2]));
  
  //1D for secondary antiprotons
  //cout<<"_________________________________________________________"<<endl;
  //cout<<"_______________SECONDARY ANTIPROTONS_____________________"<<endl;
  hSecondaryAntiProtons->SetBinContent(1,GetPercentage(gEntriesQA2DList[6],gEntriesQA2DList[7]));

  for(Int_t i = 2; i < NQAHISTOSPERLIST-4; i++) 
    hSecondaryAntiProtons->SetBinContent(i+1,GetPercentage(gEntriesQASecondaryAntiProtonsAcceptedList[i-2],
							   gEntriesQASecondaryAntiProtonsRejectedList[i-2]));
  hSecondaryAntiProtons->SetBinContent(25,GetPercentage(gEntriesQA2DList[4],gEntriesQA2DList[6]));

  TLatex *t1 = new TLatex();
  t1->SetTextSize(0.04);
  //_________________________________________________________//
  TCanvas *c1 = new TCanvas("c1","Cut Influence - Protons",0,0,700,400);
  c1->SetHighLightColor(10); c1->SetBottomMargin(0.15);
  c1->SetGridx(); c1->SetGridy();

  for(Int_t i = 1; i <= nx; i++) {
    hPrimaryProtons->SetBinError(i,1.0);
    hSecondaryProtons->SetBinError(i,1.0);
  }
  hEmpty->DrawCopy();
  hPrimaryProtons->DrawCopy("EHISTSAME");
  hSecondaryProtons->DrawCopy("EHISTSAME");
  DrawMarker(20.5, 90, 20, 1.2, 4);
  t1->DrawLatex(21,88,"Primary p");
  DrawMarker(20.5, 80, 22, 1.2, 2);
  t1->DrawLatex(21,78,"Secondary p");

  c1->SaveAs("CutInfluence-Protons.gif");

  //_________________________________________________________//
  TCanvas *c2 = new TCanvas("c2","Cut Influence - AntiProtons",50,50,700,400);
  c2->SetHighLightColor(10); c2->SetBottomMargin(0.15);
  c2->SetGridx(); c2->SetGridy();

  for(Int_t i = 1; i <= nx; i++) {
    hPrimaryAntiProtons->SetBinError(i,1.0);
    hSecondaryAntiProtons->SetBinError(i,1.0);
  }
  hEmpty->DrawCopy();
  hPrimaryAntiProtons->DrawCopy("EHISTSAME");
  hSecondaryAntiProtons->DrawCopy("EHISTSAME");
  DrawMarker(20.5, 90, 20, 1.2, 4);
  t1->DrawLatex(21,88,"Primary #bar{p}");
  DrawMarker(20.5, 80, 22, 1.2, 2);
  t1->DrawLatex(21,78,"Secondary #bar{p}");

  c2->SaveAs("CutInfluence-AntiProtons.gif");

  //_________________________________________________________//
  //ITS layers influence
  TH2F *hEmptyITS = new TH2F("hEmptyITS","",10,0,10,100,0,100); 
  hEmptyITS->SetStats(kFALSE); 
  hEmptyITS->SetMarkerStyle(kFullCircle);
  hEmptyITS->SetLineColor(2); hEmptyITS->SetMarkerColor(2);
  hEmptyITS->GetYaxis()->SetTitle("Influence of the ITS layers [%]");
  hEmptyITS->GetYaxis()->SetTitleOffset(1.3);
  for(Int_t i = 1; i <= 6; i++) 
    hEmptyITS->GetXaxis()->SetBinLabel(i,fCutITSName[i-1]);
  hEmptyITS->GetXaxis()->SetLabelOffset(0.01); 
  hEmptyITS->GetXaxis()->SetLabelSize(0.045);

  //_________________________________________________________//
  //primary protons
  TH1F *hPrimaryProtonsITS = new TH1F("hPrimaryProtonsITS","",7,0,7); 
  hPrimaryProtonsITS->SetStats(kFALSE); 
  hPrimaryProtonsITS->SetMarkerStyle(kFullCircle);
  hPrimaryProtonsITS->SetLineColor(4); hPrimaryProtonsITS->SetLineWidth(2); 
  hPrimaryProtonsITS->SetMarkerColor(4);
  hPrimaryProtonsITS->GetYaxis()->SetTitle("Influence of the cuts [%]");
  for(Int_t i = 1; i <= 6; i++) {
    hPrimaryProtonsITS->SetBinContent(i,-10.);
    hPrimaryProtonsITS->GetXaxis()->SetBinLabel(i,fCutITSName[i-1]);
  }
  hPrimaryProtonsITS->GetXaxis()->SetLabelOffset(0.01); 
  hPrimaryProtonsITS->GetXaxis()->SetLabelSize(0.045);

  //secondary protons
  TH1F *hSecondaryProtonsITS = new TH1F("hSecondaryProtonsITS","",7,0,7); 
  hSecondaryProtonsITS->SetStats(kFALSE); 
  hSecondaryProtonsITS->SetMarkerStyle(22);
  hSecondaryProtonsITS->SetMarkerSize(1.4);
  hSecondaryProtonsITS->SetLineColor(2); hSecondaryProtonsITS->SetLineWidth(2); 
  hSecondaryProtonsITS->SetMarkerColor(2);
  hSecondaryProtonsITS->GetYaxis()->SetTitle("Influence of the cuts [%]");
  for(Int_t i = 1; i <= 6; i++) {
    hSecondaryProtonsITS->SetBinContent(i,-10.);
    hSecondaryProtonsITS->GetXaxis()->SetBinLabel(i,fCutITSName[i-1]);
  }
  hSecondaryProtonsITS->GetXaxis()->SetLabelOffset(0.01); 
  hSecondaryProtonsITS->GetXaxis()->SetLabelSize(0.045);

  //primary antiprotons
  TH1F *hPrimaryAntiProtonsITS = new TH1F("hPrimaryAntiProtonsITS","",7,0,7); 
  hPrimaryAntiProtonsITS->SetStats(kFALSE); 
  hPrimaryAntiProtonsITS->SetMarkerStyle(kFullCircle);
  hPrimaryAntiProtonsITS->SetLineColor(4); hPrimaryAntiProtonsITS->SetLineWidth(2); 
  hPrimaryAntiProtonsITS->SetMarkerColor(4);
  hPrimaryAntiProtonsITS->GetYaxis()->SetTitle("Influence of the cuts [%]");
  for(Int_t i = 1; i <= 6; i++) {
    hPrimaryAntiProtonsITS->SetBinContent(i,-10.);
    hPrimaryAntiProtonsITS->GetXaxis()->SetBinLabel(i,fCutITSName[i-1]);
  }
  hPrimaryAntiProtonsITS->GetXaxis()->SetLabelOffset(0.01); 
  hPrimaryAntiProtonsITS->GetXaxis()->SetLabelSize(0.045);

  //secondary antiprotons
  TH1F *hSecondaryAntiProtonsITS = new TH1F("hSecondaryAntiProtonsITS","",7,0,7); 
  hSecondaryAntiProtonsITS->SetStats(kFALSE); 
  hSecondaryAntiProtonsITS->SetMarkerStyle(22);
  hSecondaryAntiProtonsITS->SetMarkerSize(1.4);
  hSecondaryAntiProtonsITS->SetLineColor(2); hSecondaryAntiProtonsITS->SetLineWidth(2); 
  hSecondaryAntiProtonsITS->SetMarkerColor(2);
  hSecondaryAntiProtonsITS->GetYaxis()->SetTitle("Influence of the cuts [%]");
  for(Int_t i = 1; i <= 6; i++) {
    hSecondaryAntiProtonsITS->SetBinContent(i,-10.);
    hSecondaryAntiProtonsITS->GetXaxis()->SetBinLabel(i,fCutITSName[i-1]);
  }
  hSecondaryAntiProtonsITS->GetXaxis()->SetLabelOffset(0.01); 
  hSecondaryAntiProtonsITS->GetXaxis()->SetLabelSize(0.045);

  //_______________________________________________________//
  TCanvas *c9 = new TCanvas("c9","ITS cluster map - (anti)protons",
			    100,100,700,400);
  c9->SetHighLightColor(10); c9->Divide(2,1);
  for(Int_t i = 1; i <= 6; i++) {
    hPrimaryProtonsITS->SetBinError(i,1.0);
    hSecondaryProtonsITS->SetBinError(i,1.0);
    hPrimaryAntiProtonsITS->SetBinError(i,1.0);
    hSecondaryAntiProtonsITS->SetBinError(i,1.0);
  }
  c9->cd(1)->SetBottomMargin(0.15);
  c9->cd(1)->SetLeftMargin(0.15);
  c9->cd(1)->SetGridx(); c9->cd(1)->SetGridy();
  hEmptyITS->SetTitle("Protons");
  hEmptyITS->DrawCopy();

  for(Int_t i = 1; i < 7; i++) {
    hPrimaryProtonsITS->SetBinContent(i,GetPercentage(gEntriesQAPrimaryProtonsAcceptedList[20+i],
						      gEntriesQAPrimaryProtonsRejectedList[20+i]));
    hSecondaryProtonsITS->SetBinContent(i,GetPercentage(gEntriesQASecondaryProtonsAcceptedList[20+i],
							gEntriesQASecondaryProtonsRejectedList[20+i]));
  }
  hPrimaryProtonsITS->DrawCopy("EHISTSAME");
  hSecondaryProtonsITS->DrawCopy("EHISTSAME");
  DrawMarker(6.5, 90, 20, 1.2, 4);
  t1->DrawLatex(7,88,"Primary p");
  DrawMarker(6.5, 80, 22, 1.2, 2);
  t1->DrawLatex(7,78,"Secondary p");

  c9->cd(2)->SetBottomMargin(0.15);
  c9->cd(2)->SetLeftMargin(0.15);
  c9->cd(2)->SetGridx(); c9->cd(2)->SetGridy();
  hEmptyITS->SetTitle("Antiprotons");
  hEmptyITS->DrawCopy();
  for(Int_t i = 1; i < 7; i++) {
    hPrimaryAntiProtonsITS->SetBinContent(i,GetPercentage(gEntriesQAPrimaryAntiProtonsAcceptedList[20+i],
							  gEntriesQAPrimaryAntiProtonsRejectedList[20+i]));
    hSecondaryAntiProtonsITS->SetBinContent(i,GetPercentage(gEntriesQASecondaryAntiProtonsAcceptedList[20+i],
							    gEntriesQASecondaryAntiProtonsRejectedList[20+i]));
  }
  hPrimaryAntiProtonsITS->DrawCopy("EHISTSAME");
  hSecondaryAntiProtonsITS->DrawCopy("EHISTSAME");
  DrawMarker(6.5, 90, 20, 1.2, 4);
  t1->DrawLatex(7,88,"Primary #bar{p}");
  DrawMarker(6.5, 80, 22, 1.2, 2);
  t1->DrawLatex(7,78,"Secondary #bar{p}");

  c9->SaveAs("CutInfluence-ITS.gif");
  
  //Efficiency - Contamination plots
  DrawContamination(fQA2DList,analysisType);
  DrawComposition(gHistYPtPDGProtonsPass,gHistYPtPDGAntiProtonsPass);
}

//________________________________________//
void DrawComposition(TH3F *gHistYPtPDGProtons,
		     TH3F *gHistYPtPDGAntiProtons) {
  //Function to display the composition of secondary (anti)protons
  //that survive the quality criteria
  Double_t nParticleCompositionProtonY[200], nParticleCompositionProtonPt[200];
  Double_t nParticleCompositionProtonYError[200], nParticleCompositionProtonPtError[200];
  Double_t nParticleCompositionAntiProtonY[200], nParticleCompositionAntiProtonPt[200];
  Double_t nParticleCompositionAntiProtonYError[200], nParticleCompositionAntiProtonPtError[200];
  Double_t gY[200], gPt[200];
  Double_t gYError[200], gPtError[200];
  for(Int_t iBins = 0; iBins < 200; iBins++) {
    nParticleCompositionProtonY[iBins] = 0;
    nParticleCompositionProtonPt[iBins] = 0;
    nParticleCompositionProtonYError[iBins] = 0;
    nParticleCompositionProtonPtError[iBins] = 0;
    nParticleCompositionAntiProtonY[iBins] = 0;
    nParticleCompositionAntiProtonPt[iBins] = 0;
    nParticleCompositionAntiProtonYError[iBins] = 0;
    nParticleCompositionAntiProtonPtError[iBins] = 0;
    gY[iBins] = 0;
    gPt[iBins] = 0;
    gYError[iBins] = 0;
    gPtError[iBins] = 0;
  }
  
  TGraphErrors *gParticleProtonY[14];
  TGraphErrors *gParticleProtonPt[14];
  TGraphErrors *gParticleAntiProtonY[14];
  TGraphErrors *gParticleAntiProtonPt[14];
  for(Int_t iParticle = 0; iParticle < 14; iParticle++) {
    GetComposition(iParticle,
		   gHistYPtPDGProtons,
		   nParticleCompositionProtonY,nParticleCompositionProtonYError,gY, gYError,
		   nParticleCompositionProtonPt, nParticleCompositionProtonPtError, gPt, gPtError);
    gParticleProtonY[iParticle] = new TGraphErrors(gHistYPtPDGProtons->GetNbinsX(),
						  gY,nParticleCompositionProtonY,gYError,nParticleCompositionProtonYError);
    gParticleProtonY[iParticle]->SetMarkerStyle(iParticle+20);
    gParticleProtonY[iParticle]->SetMarkerSize(1.2);

    gParticleProtonPt[iParticle] = new TGraphErrors(gHistYPtPDGProtons->GetNbinsY(),
						   gPt,nParticleCompositionProtonPt,gPtError,nParticleCompositionProtonPtError);
    gParticleProtonPt[iParticle]->SetMarkerStyle(iParticle+20);
    gParticleProtonPt[iParticle]->SetMarkerSize(1.2);

    GetComposition(iParticle,
		   gHistYPtPDGAntiProtons,
		   nParticleCompositionAntiProtonY,nParticleCompositionAntiProtonYError,gY, gYError, 
		   nParticleCompositionAntiProtonPt, nParticleCompositionAntiProtonPtError, gPt, gPtError);
    gParticleAntiProtonY[iParticle] = new TGraphErrors(gHistYPtPDGAntiProtons->GetNbinsX(),
						      gY,nParticleCompositionAntiProtonY,gYError,nParticleCompositionAntiProtonYError);
    gParticleAntiProtonY[iParticle]->SetMarkerStyle(iParticle+20);
    gParticleAntiProtonY[iParticle]->SetMarkerSize(1.2);

    gParticleAntiProtonPt[iParticle] = new TGraphErrors(gHistYPtPDGAntiProtons->GetNbinsY(),
						       gPt,nParticleCompositionAntiProtonPt,gPtError,nParticleCompositionAntiProtonPtError);
    gParticleAntiProtonPt[iParticle]->SetMarkerStyle(iParticle+20);
    gParticleAntiProtonPt[iParticle]->SetMarkerSize(1.2);
  }

  //_________________________________________________________//
  char *fParticleName[14] = {"Primary","K_{L}","#pi","K_{S}","K",
			     "n","p","#Sigma^{-}","#Lambda","#Sigma^{+}",
			     "#Xi^{-}","#Xi^{0}","#Omega^{-}"};
  TLatex *t1 = new TLatex();
  t1->SetTextSize(0.04);

  TH2F *hEmptyY = new TH2F("hEmptyY","",100,-1.2,1.2,100,0,120); 
  hEmptyY->SetStats(kFALSE); 
  hEmptyY->GetYaxis()->SetTitle("Particle composition [%]");
  hEmptyY->GetXaxis()->SetTitle(gHistYPtPDGProtons->GetXaxis()->GetTitle());

  TCanvas *c12 = new TCanvas("c12",
			     "Composition of accepted secondaries vs y",
			     350,350,700,400);
  c12->Divide(2,1);
  c12->SetHighLightColor(10); c12->cd(1)->SetBottomMargin(0.15);
  c12->cd(1)->SetGridx(); c12->cd(1)->SetGridy();
  hEmptyY->SetTitle("Protons");
  hEmptyY->DrawCopy();
  for(Int_t iParticle = 0; iParticle < 10; iParticle++) {
    //if((iParticle == 0)||(iParticle == 2)||(iParticle == 5)||(iParticle == 6)||(iParticle == 8))
    if((iParticle == 2)||(iParticle == 6)||(iParticle == 8)) {
      gParticleProtonY[iParticle]->Draw("P");
      //if(iParticle < 5) {
      //DrawMarker(-1.1, 115-5*iParticle, 20+iParticle, 1.2, 1);
      //t1->DrawLatex(-1.0,113-5*iParticle,fParticleName[iParticle]);
    }
    /*else {
      DrawMarker(0.2, 115-5*(iParticle-5), 20+iParticle, 1.2, 1);
      t1->DrawLatex(0.3,113-5*(iParticle-5),fParticleName[iParticle]);
      }*/
  }
  DrawMarker(0.0, 115, 22, 1.2, 1);
  t1->DrawLatex(0.1,113,fParticleName[2]);
  DrawMarker(0.0, 105, 26, 1.2, 1);
  t1->DrawLatex(0.1,103,fParticleName[6]);
  DrawMarker(0.0, 95, 28, 1.2, 1);
  t1->DrawLatex(0.1,93,fParticleName[8]);

  c12->SetHighLightColor(10); c12->cd(2)->SetBottomMargin(0.15);
  c12->cd(2)->SetGridx(); c12->cd(2)->SetGridy();
  hEmptyY->SetTitle("Antiprotons");
  hEmptyY->DrawCopy();
  for(Int_t iParticle = 0; iParticle < 10; iParticle++) {
    if((iParticle == 6)||(iParticle == 8)||(iParticle == 9))
      gParticleAntiProtonY[iParticle]->Draw("P");
    /*if(iParticle < 5) {
      DrawMarker(-1.1, 115-5*iParticle, 20+iParticle, 1.2, 1);
      t1->DrawLatex(-1.0,113-5*iParticle,fParticleName[iParticle]);
    }
    else {
      DrawMarker(0.2, 115-5*(iParticle-5), 20+iParticle, 1.2, 1);
      t1->DrawLatex(0.3,113-5*(iParticle-5),fParticleName[iParticle]);
      }*/
  }
  DrawMarker(0.0, 115, 26, 1.2, 1);
  t1->DrawLatex(0.1,113,fParticleName[6]);
  DrawMarker(0.0, 105, 28, 1.2, 1);
  t1->DrawLatex(0.1,103,fParticleName[8]);
  DrawMarker(0.0, 95, 29, 1.2, 1);
  t1->DrawLatex(0.1,93,fParticleName[9]);
  c12->SaveAs("SurvivedSecondaries-Composition-Rapidity.gif");

  TH2F *hEmptyPt = new TH2F("hEmptyPt","",100,0.0,4.0,100,0,120); 
  hEmptyPt->SetStats(kFALSE); 
  hEmptyPt->GetYaxis()->SetTitle("Particle composition [%]");
  hEmptyPt->GetXaxis()->SetTitle("P_{T} [GeV/c]");

  TCanvas *c13 = new TCanvas("c13",
			     "Composition of accepted secondaries vs pT",
			     400,400,700,400);
  c13->Divide(2,1);
  c13->SetHighLightColor(10); c13->cd(1)->SetBottomMargin(0.15);
  c13->cd(1)->SetGridx(); c13->cd(1)->SetGridy();
  hEmptyPt->GetXaxis()->SetRangeUser(gParticleProtonPt[0]->GetXaxis()->GetXmin()-0.2,gParticleProtonPt[0]->GetXaxis()->GetXmax()+0.2);
  hEmptyPt->SetTitle("Protons");
  hEmptyPt->DrawCopy();
  for(Int_t iParticle = 0; iParticle < 10; iParticle++) {
    /*if(iParticle < 5) {
      DrawMarker(gParticleProtonPt[0]->GetXaxis()->GetXmin()+0.1, 
		 115-5*iParticle, 20+iParticle, 1.2, 1);
      t1->DrawLatex(gParticleProtonPt[0]->GetXaxis()->GetXmin()+0.2,
		    113-5*iParticle,fParticleName[iParticle]);
    }
    else {
      DrawMarker(gParticleProtonPt[0]->GetXaxis()->GetXmax()*0.5, 
		 115-5*(iParticle-5), 20+iParticle, 1.2, 1);
      t1->DrawLatex(gParticleProtonPt[0]->GetXaxis()->GetXmax()*0.5+0.1,
		    113-5*(iParticle-5),fParticleName[iParticle]);
		    }*/
    if((iParticle == 2)||(iParticle == 6)||(iParticle == 8))
      gParticleProtonPt[iParticle]->Draw("P");
  }
  DrawMarker(0.5, 115, 22, 1.2, 1);
  t1->DrawLatex(0.6,113,fParticleName[2]);
  DrawMarker(0.5, 105, 26, 1.2, 1);
  t1->DrawLatex(0.6,103,fParticleName[6]);
  DrawMarker(0.5, 95, 28, 1.2, 1);
  t1->DrawLatex(0.6,93,fParticleName[8]);

  c13->SetHighLightColor(10); c13->cd(2)->SetBottomMargin(0.15);
  c13->cd(2)->SetGridx(); c13->cd(2)->SetGridy();
  hEmptyPt->SetTitle("Antiprotons");
  hEmptyPt->DrawCopy();
  for(Int_t iParticle = 0; iParticle < 10; iParticle++) {
    /*if(iParticle < 5) {
      DrawMarker(gParticleProtonPt[0]->GetXaxis()->GetXmin()+0.1, 
		 115-5*iParticle, 20+iParticle, 1.2, 1);
      t1->DrawLatex(gParticleProtonPt[0]->GetXaxis()->GetXmin()+0.2,
		    113-5*iParticle,fParticleName[iParticle]);
    }
    else {
      DrawMarker(gParticleProtonPt[0]->GetXaxis()->GetXmax()*0.5, 
		 115-5*(iParticle-5), 20+iParticle, 1.2, 1);
      t1->DrawLatex(gParticleProtonPt[0]->GetXaxis()->GetXmax()*0.5+0.1,
		    113-5*(iParticle-5),fParticleName[iParticle]);
		    }*/
    if((iParticle == 6)||(iParticle == 8)||(iParticle == 9))
      gParticleAntiProtonPt[iParticle]->Draw("P");
  }
  DrawMarker(0.5, 115, 26, 1.2, 1);
  t1->DrawLatex(0.6,113,fParticleName[6]);
  DrawMarker(0.5, 105, 28, 1.2, 1);
  t1->DrawLatex(0.6,103,fParticleName[8]);
  DrawMarker(0.5, 95, 29, 1.2, 1);
  t1->DrawLatex(0.6,93,fParticleName[9]);
  c13->SaveAs("SurvivedSecondaries-Composition-Pt.gif");
}

//________________________________________________//
void DrawContamination(TList *inputList,
		       const char* analysisType) {
  //loops over the list entries and
  //draws the rapidity and pT dependence
  //of the percentage of primary and secondary
  //protons and antiprotons after the track cuts
  cout<<"Extracting the entries for the histograms in the list: "<<
    inputList->GetName()<<"..."<<endl;

  TLatex *t1 = new TLatex();
  t1->SetTextSize(0.04);

 TH2D *hPrimaryProtons = (TH2D *)inputList->At(0);
  hPrimaryProtons->SetStats(kFALSE); hPrimaryProtons->Sumw2();
  TH2D *hSecondaryProtons = (TH2D *)inputList->At(2);
  hSecondaryProtons->SetStats(kFALSE); hSecondaryProtons->Sumw2();
  TH2D *hTotalProtons = hSecondaryProtons->Clone();
  hTotalProtons->SetStats(kFALSE); hTotalProtons->Add(hPrimaryProtons);
  hTotalProtons->Sumw2();

  TH2D *hPrimaryAntiProtons = (TH2D *)inputList->At(4);
  hPrimaryAntiProtons->SetStats(kFALSE); hPrimaryAntiProtons->Sumw2();
  TH2D *hSecondaryAntiProtons = (TH2D *)inputList->At(6);
  hSecondaryAntiProtons->SetStats(kFALSE); hSecondaryAntiProtons->Sumw2();
  TH2D *hTotalAntiProtons = hSecondaryAntiProtons->Clone();
  hTotalAntiProtons->SetStats(kFALSE); 
  hTotalAntiProtons->Add(hPrimaryAntiProtons);
  hTotalAntiProtons->Sumw2();

  //=================================================================//
  //Purity - protons
  hPrimaryProtons->Divide(hTotalProtons);
  hPrimaryProtons->Scale(100.);
  TH1D *gHistEtaPurityProtons = hPrimaryProtons->ProjectionX("gHistEtaPurityProtons",1,hPrimaryProtons->GetNbinsY());
  RescaleEtaHistogram(gHistEtaPurityProtons,hPrimaryProtons);
  gHistEtaPurityProtons->SetStats(kFALSE);
  gHistEtaPurityProtons->SetMarkerStyle(20);
  TH1D *gHistPtPurityProtons = hPrimaryProtons->ProjectionY("gHistPtPurityProtons",1,hPrimaryProtons->GetNbinsX());
  RescalePtHistogram(gHistPtPurityProtons,hPrimaryProtons);
  gHistPtPurityProtons->SetStats(kFALSE);
  gHistPtPurityProtons->SetMarkerStyle(20);

  //Contamination - protons
  hSecondaryProtons->Divide(hTotalProtons);
  hSecondaryProtons->Scale(100.);
  TH1D *gHistEtaContaminationProtons = hSecondaryProtons->ProjectionX("gHistEtaContaminationProtons",1,hSecondaryProtons->GetNbinsY());
  RescaleEtaHistogram(gHistEtaContaminationProtons,hSecondaryProtons);
  gHistEtaContaminationProtons->SetStats(kFALSE);
  gHistEtaContaminationProtons->SetMarkerStyle(24);
  TH1D *gHistPtContaminationProtons = hSecondaryProtons->ProjectionY("gHistPtContaminationProtons",1,hSecondaryProtons->GetNbinsX());
  RescalePtHistogram(gHistPtContaminationProtons,hSecondaryProtons);
  gHistPtContaminationProtons->SetStats(kFALSE);
  gHistPtContaminationProtons->SetMarkerStyle(24);

    //=================================================================//
  //Purity - antiprotons
  hPrimaryAntiProtons->Divide(hTotalAntiProtons);
  hPrimaryAntiProtons->Scale(100.);
  TH1D *gHistEtaPurityAntiProtons = hPrimaryAntiProtons->ProjectionX("gHistEtaPurityAntiProtons",1,hPrimaryAntiProtons->GetNbinsY());
  RescaleEtaHistogram(gHistEtaPurityAntiProtons,hPrimaryAntiProtons);
  gHistEtaPurityAntiProtons->SetStats(kFALSE);
  gHistEtaPurityAntiProtons->SetMarkerStyle(20);
  TH1D *gHistPtPurityAntiProtons = hPrimaryAntiProtons->ProjectionY("gHistPtPurityAntiProtons",1,hPrimaryAntiProtons->GetNbinsX());
  RescalePtHistogram(gHistPtPurityAntiProtons,hPrimaryAntiProtons);
  gHistPtPurityAntiProtons->SetStats(kFALSE);
  gHistPtPurityAntiProtons->SetMarkerStyle(20);

  //Contamination - antiprotons
  hSecondaryAntiProtons->Divide(hTotalAntiProtons);
  hSecondaryAntiProtons->Scale(100.);
  TH1D *gHistEtaContaminationAntiProtons = hSecondaryAntiProtons->ProjectionX("gHistEtaContaminationAntiProtons",1,hSecondaryAntiProtons->GetNbinsY());
  RescaleEtaHistogram(gHistEtaContaminationAntiProtons,hSecondaryAntiProtons);
  gHistEtaContaminationAntiProtons->SetStats(kFALSE);
  gHistEtaContaminationAntiProtons->SetMarkerStyle(24);
  TH1D *gHistPtContaminationAntiProtons = hSecondaryAntiProtons->ProjectionY("gHistPtContaminationAntiProtons",1,hSecondaryAntiProtons->GetNbinsX());
  RescalePtHistogram(gHistPtContaminationAntiProtons,hSecondaryAntiProtons);
  gHistPtContaminationAntiProtons->SetStats(kFALSE);
  gHistPtContaminationAntiProtons->SetMarkerStyle(24);
  
  TH2F *hEmptyY = new TH2F("hEmptyCompositionY","",
			   100,-1.2,1.2,100,-10.0,130); 
  hEmptyY->SetStats(kFALSE); 
  hEmptyY->GetYaxis()->SetTitle("Particle composition [%]");
  hEmptyY->GetYaxis()->SetTitleOffset(1.3);
  hEmptyY->GetXaxis()->SetTitle(hPrimaryProtons->GetXaxis()->GetTitle());

  TCanvas *c7 = new TCanvas("c7","(Anti)Proton contamination vs y",
			    150,150,700,400);
  c7->SetHighLightColor(10); c7->Divide(2,1);

  c7->cd(1)->SetBottomMargin(0.15); 
  c7->cd(1)->SetLeftMargin(0.15); 
  c7->cd(1)->SetGridx(); c7->cd(1)->SetGridy();
  hEmptyY->SetTitle("Protons");
  hEmptyY->DrawCopy();
  gHistEtaPurityProtons->DrawCopy("ESAME");
  gHistEtaContaminationProtons->DrawCopy("ESAME");

  DrawMarker(0, 55, kFullCircle, 1.2, 1);
  t1->DrawLatex(0.1,53,"Primaries");
  DrawMarker(0, 45, kOpenCircle, 1.2, 1);
  t1->DrawLatex(0.1,43,"Secondaries");

  c7->cd(2)->SetBottomMargin(0.15); 
  c7->cd(2)->SetLeftMargin(0.15); 
  c7->cd(2)->SetGridx(); c7->cd(2)->SetGridy();
  hEmptyY->SetTitle("Antiprotons");
  hEmptyY->DrawCopy();
  gHistEtaPurityAntiProtons->DrawCopy("ESAME");
  gHistEtaContaminationAntiProtons->DrawCopy("ESAME");

  DrawMarker(0, 55, kFullCircle, 1.2, 1);
  t1->DrawLatex(0.1,53,"Primaries");
  DrawMarker(0, 45, kOpenCircle, 1.2, 1);
  t1->DrawLatex(0.1,41,"Secondaries");

  c7->SaveAs("Contamination-Protons-Rapidity.gif");
  
  TH2F *hEmptyPt = new TH2F("hEmptyCompositionPt","",
			   100,0.0,4.0,100,-10.0,130); 
  hEmptyPt->SetStats(kFALSE); 
  hEmptyPt->GetYaxis()->SetTitle("Particle composition [%]");
  hEmptyPt->GetYaxis()->SetTitleOffset(1.3);
  hEmptyPt->GetXaxis()->SetTitle("P_{T} [GeV/c]");

  TCanvas *c8 = new TCanvas("c8","(Anti)Proton comtamination vs pT",
			    200,200,700,400);
  c8->SetHighLightColor(10); c8->Divide(2,1);

  c8->cd(1)->SetBottomMargin(0.15); 
  c8->cd(1)->SetLeftMargin(0.15); 
  c8->cd(1)->SetGridx(); c8->cd(1)->SetGridy();
  hEmptyPt->SetTitle("Protons");
  hEmptyPt->GetXaxis()->SetRangeUser(gHistPtPurityProtons->GetXaxis()->GetXmin()-0.1,gHistPtPurityProtons->GetXaxis()->GetXmax()+0.1);
  hEmptyPt->DrawCopy();
  gHistPtPurityProtons->DrawCopy("ESAME");
  gHistPtContaminationProtons->DrawCopy("ESAME");

  DrawMarker(0.5, 55, kFullCircle, 1.2, 1);
  t1->DrawLatex(0.6,53,"Primaries");
  DrawMarker(0.5, 45, kOpenCircle, 1.2, 1);
  t1->DrawLatex(0.6,41,"Secondaries");

  c8->cd(2)->SetBottomMargin(0.15); 
  c8->cd(2)->SetLeftMargin(0.15); 
  c8->cd(2)->SetGridx(); c8->cd(2)->SetGridy();
  hEmptyPt->SetTitle("Antirotons");
  hEmptyPt->DrawCopy();
  gHistPtPurityAntiProtons->DrawCopy("ESAME");
  gHistPtContaminationAntiProtons->DrawCopy("ESAME");

  DrawMarker(2.0, 55, kFullCircle, 1.2, 1);
  t1->DrawLatex(2.1,53,"Primaries");
  DrawMarker(2.0, 45, kOpenCircle, 1.2, 1);
  t1->DrawLatex(2.1,43,"Secondaries");

  c8->SaveAs("Contamination-Protons-Pt.gif");

  TString outputFileName = "Contamination."; 
  outputFileName += analysisType; outputFileName += ".root";
  TFile *fout = TFile::Open(outputFileName.Data(),"recreate");
  gHistEtaPurityProtons->Write();
  gHistEtaContaminationProtons->Write();
  gHistEtaPurityAntiProtons->Write();
  gHistEtaContaminationAntiProtons->Write();
  gHistPtPurityProtons->Write();
  gHistPtContaminationProtons->Write();
  gHistPtPurityAntiProtons->Write();
  gHistPtContaminationAntiProtons->Write();
  fout->Close();
}

//________________________________________________//
void DrawCutEfficiency(TList *inputList,
		       const char* analysisType) {
  //loops over the list entries and
  //draws the rapidity and pT dependence
  //of the percentage of primary and secondary
  //protons and antiprotons after the track cuts
  cout<<"Extracting the entries for the histograms in the list: "<<
    inputList->GetName()<<"..."<<endl;

  TLatex *t1 = new TLatex();
  t1->SetTextSize(0.04);

  TH2D *hPrimaryESDProtons = (TH2D *)inputList->At(0);
  hPrimaryESDProtons->SetStats(kFALSE); hPrimaryESDProtons->Sumw2();
  TH2D *hPrimaryESDAntiProtons = (TH2D *)inputList->At(1);
  hPrimaryESDAntiProtons->SetStats(kFALSE); hPrimaryESDAntiProtons->Sumw2();
  TH2D *hPrimaryESDProtonsSurvived = (TH2D *)inputList->At(2);
  hPrimaryESDProtonsSurvived->SetStats(kFALSE); hPrimaryESDProtonsSurvived->Sumw2();
  hPrimaryESDProtonsSurvived->Divide(hPrimaryESDProtons);
  hPrimaryESDProtonsSurvived->Scale(100.);
  TH2D *hPrimaryESDAntiProtonsSurvived = (TH2D *)inputList->At(3);
  hPrimaryESDAntiProtonsSurvived->SetStats(kFALSE); hPrimaryESDAntiProtonsSurvived->Sumw2();
  hPrimaryESDAntiProtonsSurvived->Divide(hPrimaryESDAntiProtons);
  hPrimaryESDAntiProtonsSurvived->Scale(100.);

  //rapidity dependence
  //Protons
  TH1D *gHistEtaProtons = hPrimaryESDProtonsSurvived->ProjectionX("gHistEtaProtons",1,hPrimaryESDProtonsSurvived->GetNbinsY());
  //gHistEtaProtons->Scale(1./hPrimaryESDProtonsSurvived->GetNbinsY());
  RescaleEtaHistogram(gHistEtaProtons,hPrimaryESDProtonsSurvived);
  gHistEtaProtons->SetStats(kFALSE);
  gHistEtaProtons->SetMarkerStyle(20);
  
  //Antiprotons
  TH1D *gHistEtaAntiProtons = hPrimaryESDAntiProtonsSurvived->ProjectionX("gHistEtaAntiProtons",1,hPrimaryESDAntiProtonsSurvived->GetNbinsY());
  //gHistEtaAntiProtons->Scale(1./hPrimaryESDAntiProtonsSurvived->GetNbinsY());
  RescaleEtaHistogram(gHistEtaAntiProtons,hPrimaryESDAntiProtonsSurvived);
  gHistEtaAntiProtons->SetStats(kFALSE);
  gHistEtaAntiProtons->SetMarkerStyle(20);
  
  TH2F *hEmptyY = new TH2F("hEmptyEfficiencyY","",
			   100,-1.2,1.2,100,-10.0,130); 
  hEmptyY->SetStats(kFALSE); 
  hEmptyY->GetYaxis()->SetTitle("#epsilon [%]");
  hEmptyY->GetYaxis()->SetTitleOffset(1.3);
  hEmptyY->GetXaxis()->SetTitle(hPrimaryESDProtonsSurvived->GetXaxis()->GetTitle());

  TCanvas *c10 = new TCanvas("c10","(Anti)Proton cut efficiency vs y",
			    250,250,700,400);
  c10->SetHighLightColor(10); c10->Divide(2,1);

  c10->cd(1)->SetBottomMargin(0.15); 
  c10->cd(1)->SetLeftMargin(0.15); 
  c10->cd(1)->SetGridx(); c10->cd(1)->SetGridy();
  hEmptyY->SetTitle("Protons");
  hEmptyY->GetXaxis()->SetRangeUser(gHistEtaProtons->GetXaxis()->GetXmin()-0.2,gHistEtaProtons->GetXaxis()->GetXmax()+0.2);
  hEmptyY->DrawCopy();
  gHistEtaProtons->DrawCopy("ESAME");

  c10->cd(2)->SetBottomMargin(0.15); 
  c10->cd(2)->SetLeftMargin(0.15); 
  c10->cd(2)->SetGridx(); c10->cd(2)->SetGridy();
  hEmptyY->SetTitle("Antiprotons");
  hEmptyY->DrawCopy();
  gHistEtaAntiProtons->DrawCopy("ESAME");

  c10->SaveAs("CutEfficiency-Protons-Rapidity.gif");

  //pT dependence
  //Protons
  TH1D *gHistPtProtons = hPrimaryESDProtonsSurvived->ProjectionY("gHistPtProtons",1,hPrimaryESDProtonsSurvived->GetNbinsX());
  //gHistPtProtons->Scale(1./hPrimaryESDProtonsSurvived->GetNbinsX());
  RescalePtHistogram(gHistPtProtons,hPrimaryESDProtonsSurvived);  
  gHistPtProtons->SetStats(kFALSE);
  gHistPtProtons->SetMarkerStyle(20);
  //SetError(gPtPrimaryESDProtonsSurvived,gPtPrimaryESDProtons);

  //Antiprotons
  TH1D *gHistPtAntiProtons = hPrimaryESDAntiProtonsSurvived->ProjectionY("gHistPtAntiProtons",1,hPrimaryESDAntiProtonsSurvived->GetNbinsX());
  //gHistPtAntiProtons->Scale(1./hPrimaryESDAntiProtonsSurvived->GetNbinsX());
  RescalePtHistogram(gHistPtAntiProtons,hPrimaryESDAntiProtonsSurvived);
  gHistPtAntiProtons->SetStats(kFALSE);
  gHistPtAntiProtons->SetMarkerStyle(20);
  //SetError(gPtPrimaryESDAntiProtonsSurvived,gPtPrimaryESDAntiProtons);

  TH2F *hEmptyPt = new TH2F("hEmptyEfficiencyPt","",
			   100,0.0,4.0,100,-10.0,130); 
  hEmptyPt->SetStats(kFALSE); 
  hEmptyPt->GetYaxis()->SetTitle("#epsilon [%]");
  hEmptyPt->GetYaxis()->SetTitleOffset(1.3);
  hEmptyPt->GetXaxis()->SetTitle("P_{T} [GeV/c]");

  TCanvas *c11 = new TCanvas("c11","(Anti)Proton cut efficiency vs pT",
			     300,300,700,400);
  c11->SetHighLightColor(10); c11->Divide(2,1);

  c11->cd(1)->SetBottomMargin(0.15); 
  c11->cd(1)->SetLeftMargin(0.15); 
  c11->cd(1)->SetGridx(); c11->cd(1)->SetGridy();
  hEmptyPt->SetTitle("Protons");
  hEmptyPt->GetXaxis()->SetRangeUser(gHistPtProtons->GetXaxis()->GetXmin()-0.1,gHistPtProtons->GetXaxis()->GetXmax()+0.1);
  hEmptyPt->DrawCopy();
  gHistPtProtons->DrawCopy("ESAME");

  c11->cd(2)->SetBottomMargin(0.15); 
  c11->cd(2)->SetLeftMargin(0.15); 
  c11->cd(2)->SetGridx(); c11->cd(2)->SetGridy();
  hEmptyPt->SetTitle("Antirotons");
  hEmptyPt->DrawCopy();
  gHistPtAntiProtons->DrawCopy("ESAME");

  c11->SaveAs("CutEfficiency-Protons-Pt.gif");

  TString outputFileName = "CutEfficiency.";
  outputFileName += analysisType; outputFileName += ".root";
  TFile *fout = TFile::Open(outputFileName.Data(),"recreate");
  gHistEtaProtons->Write();
  gHistEtaAntiProtons->Write();
  gHistPtProtons->Write();
  gHistPtAntiProtons->Write();
  fout->Close();
}

//________________________________________________//
void GetQAEntries(TList *inputList, Double_t *entries) {
  //loops over the list entries
  //extracts the entries for each histogram
  //cout<<"Extracting the entries for the histograms in the list: "<<
  //inputList->GetName()<<"..."<<endl;

  for(Int_t i = 0; i < inputList->GetEntries(); i++) {
    TH1F *gHist = (TH1F *)inputList->At(i);
    entries[i] = gHist->GetEntries();
    cout<<"Position: "<<i+1<<" - Histogram: "<<gHist->GetName()<<
      " - Entries: "<<entries[i]<<endl;
    gHist = 0;
  }
}

//________________________________________________//
Double_t GetPercentage(Double_t nPassEntries,
		       Double_t nRejectEntries) {
  //returns the percentage of tracks that were rejected by a cut
  Int_t nTotalEntries = nPassEntries + nRejectEntries;

  if(nTotalEntries == 0)
    return -1;

  return 100.*nRejectEntries/nTotalEntries;
}

//________________________________________//
void drawMCQA(TList *listPDG, TList *listMCProcesses) {
  //Function to display the composition of secondary (anti)protons
  //The histogram shows the percentage of secondary (anti)protons
  //originating from each particle species.
  //The box summarizes the MC process that gave these secondary (anti)protons
  TDatabasePDG *db = TDatabasePDG::Instance();
  TParticlePDG *p = 0x0;
  
  TH3F *gHistYPtPDGProtons = (TH3F *)listPDG->At(0);
  TH3F *gHistYPtPDGAntiProtons = (TH3F *)listPDG->At(1);
  readProcesses(listMCProcesses);
  Double_t nParticleCompositionProtonY[200], nParticleCompositionProtonPt[200];
  Double_t nParticleCompositionProtonYError[200], nParticleCompositionProtonPtError[200];
  Double_t nParticleCompositionAntiProtonY[200], nParticleCompositionAntiProtonPt[200];
  Double_t nParticleCompositionAntiProtonYError[200], nParticleCompositionAntiProtonPtError[200];
  Double_t gY[200], gPt[200];
  Double_t gYError[200], gPtError[200];
  for(Int_t iBins = 0; iBins < 200; iBins++) {
    nParticleCompositionProtonY[iBins] = 0;
    nParticleCompositionProtonPt[iBins] = 0;
    nParticleCompositionProtonYError[iBins] = 0;
    nParticleCompositionProtonPtError[iBins] = 0;
    nParticleCompositionAntiProtonY[iBins] = 0;
    nParticleCompositionAntiProtonPt[iBins] = 0;
    nParticleCompositionAntiProtonYError[iBins] = 0;
    nParticleCompositionAntiProtonPtError[iBins] = 0;
    gY[iBins] = 0;
    gPt[iBins] = 0;
    gYError[iBins] = 0;
    gPtError[iBins] = 0;
  }
  
  TGraphErrors *gParticleProtonY[14];
  TGraphErrors *gParticleProtonPt[14];
  TGraphErrors *gParticleAntiProtonY[14];
  TGraphErrors *gParticleAntiProtonPt[14];
  for(Int_t iParticle = 0; iParticle < 14; iParticle++) {
    GetComposition(iParticle,
		   gHistYPtPDGProtons,
		   nParticleCompositionProtonY,
		   nParticleCompositionProtonYError, gY, gYError, 
		   nParticleCompositionProtonPt, 
		   nParticleCompositionProtonPtError, gPt, gPtError);
    gParticleProtonY[iParticle] = new TGraphErrors(gHistYPtPDGProtons->GetNbinsX(),
						   gY,nParticleCompositionProtonY,
						   gYError,nParticleCompositionProtonYError);
    gParticleProtonY[iParticle]->SetMarkerStyle(iParticle+20);
    gParticleProtonY[iParticle]->SetMarkerSize(1.2);

    gParticleProtonPt[iParticle] = new TGraphErrors(gHistYPtPDGProtons->GetNbinsY(),
						    gPt,nParticleCompositionProtonPt,
						    gPtError,nParticleCompositionProtonPtError);
    gParticleProtonPt[iParticle]->SetMarkerStyle(iParticle+20);
    gParticleProtonPt[iParticle]->SetMarkerSize(1.2);

    GetComposition(iParticle,
		   gHistYPtPDGAntiProtons,
		   nParticleCompositionAntiProtonY,
		   nParticleCompositionAntiProtonYError, gY, gYError, 
		   nParticleCompositionAntiProtonPt, 
		   nParticleCompositionAntiProtonPtError, gPt, gPtError);
    gParticleAntiProtonY[iParticle] = new TGraphErrors(gHistYPtPDGAntiProtons->GetNbinsX(),
						       gY,nParticleCompositionAntiProtonY,
						       gYError,nParticleCompositionAntiProtonYError);
    gParticleAntiProtonY[iParticle]->SetMarkerStyle(iParticle+20);
    gParticleAntiProtonY[iParticle]->SetMarkerSize(1.2);

    gParticleAntiProtonPt[iParticle] = new TGraphErrors(gHistYPtPDGAntiProtons->GetNbinsY(),
							gPt,nParticleCompositionAntiProtonPt,
							gPtError,nParticleCompositionAntiProtonPtError);
    gParticleAntiProtonPt[iParticle]->SetMarkerStyle(iParticle+20);
    gParticleAntiProtonPt[iParticle]->SetMarkerSize(1.2);
  }

  //_________________________________________________________//
  char *fParticleName[14] = {"Primary","K_{L}","#pi","K_{S}","K",
			     "n","p","#Sigma^{-}","#Lambda","#Sigma^{+}",
			     "#Xi^{-}","#Xi^{0}","#Omega^{-}"};
  TLatex *t1 = new TLatex();
  t1->SetTextSize(0.04);

  TH2F *hEmptyY = new TH2F("hEmptyY","",100,-1.2,1.2,100,0,120); 
  hEmptyY->SetStats(kFALSE); 
  hEmptyY->GetYaxis()->SetTitle("Particle composition [%]");
  hEmptyY->GetXaxis()->SetTitle(gHistYPtPDGProtons->GetXaxis()->GetTitle());

  TCanvas *c3 = new TCanvas("c3","MC secondary composition vs y - Protons",
			    450,450,700,400);
  c3->SetHighLightColor(10); c3->SetBottomMargin(0.15);
  c3->SetGridx(); c3->SetGridy();
  hEmptyY->GetXaxis()->SetRangeUser(gParticleProtonY[0]->GetXaxis()->GetXmin()-0.2,gParticleProtonY[0]->GetXaxis()->GetXmax()+0.2);
  hEmptyY->DrawCopy();
  for(Int_t iParticle = 0; iParticle < 10; iParticle++) {
    //if((iParticle == 0)||(iParticle == 2)||(iParticle == 5)||(iParticle == 6)||(iParticle == 8))
    if((iParticle == 0)||(iParticle == 2)||(iParticle == 6)||(iParticle == 8))
      gParticleProtonY[iParticle]->Draw("P");
    /*if(iParticle < 5) {
      DrawMarker(-1.1, 115-5*iParticle, 20+iParticle, 1.2, 1);
      t1->DrawLatex(-1.0,113-5*iParticle,fParticleName[iParticle]);
    }
    else {
      DrawMarker(0.2, 115-5*(iParticle-5), 20+iParticle, 1.2, 1);
      t1->DrawLatex(0.3,113-5*(iParticle-5),fParticleName[iParticle]);
      }*/
  }
  DrawMarker(0.0, 115, 20, 1.2, 1);
  t1->DrawLatex(0.1,113,fParticleName[0]);
  DrawMarker(0.0, 108, 22, 1.2, 1);
  t1->DrawLatex(0.1,106,fParticleName[2]);
  DrawMarker(0.0, 101, 26, 1.2, 1);
  t1->DrawLatex(0.1,99,fParticleName[6]);
  DrawMarker(0.0, 94, 28, 1.2, 1);
  t1->DrawLatex(0.1,92,fParticleName[8]);

  TCanvas *c5 = new TCanvas("c5","MC secondary composition vs y - antiProtons",
			    500,500,700,400);
  c5->SetHighLightColor(10); c5->SetBottomMargin(0.15);
  c5->SetGridx(); c5->SetGridy();
  hEmptyY->DrawCopy();
  for(Int_t iParticle = 0; iParticle < 10; iParticle++) {
    if((iParticle == 0)||(iParticle == 6)||(iParticle == 8))
      gParticleAntiProtonY[iParticle]->Draw("P");
    /*if(iParticle < 5) {
      DrawMarker(-1.1, 115-5*iParticle, 20+iParticle, 1.2, 1);
      t1->DrawLatex(-1.0,113-5*iParticle,fParticleName[iParticle]);
    }
    else {
      DrawMarker(0.2, 115-5*(iParticle-5), 20+iParticle, 1.2, 1);
      t1->DrawLatex(0.3,113-5*(iParticle-5),fParticleName[iParticle]);
      }*/
  }
  DrawMarker(0.0, 115, 20, 1.2, 1);
  t1->DrawLatex(0.1,113,fParticleName[0]);
  DrawMarker(0.0, 108, 26, 1.2, 1);
  t1->DrawLatex(0.1,106,fParticleName[6]);
  DrawMarker(0.0, 101, 28, 1.2, 1);
  t1->DrawLatex(0.1,99,fParticleName[8]);

  TH2F *hEmptyPt = new TH2F("hEmptyPt","",100,0.0,4.0,100,0,120); 
  hEmptyPt->SetStats(kFALSE); 
  hEmptyPt->GetYaxis()->SetTitle("Particle composition [%]");
  hEmptyPt->GetXaxis()->SetTitle("P_{T} [GeV/c]");

  TCanvas *c4 = new TCanvas("c4","MC secondary composition vs pT - Protons",
			    550,550,700,400);
  c4->SetHighLightColor(10); c4->SetBottomMargin(0.15);
  c4->SetGridx(); c4->SetGridy();
  hEmptyPt->GetXaxis()->SetRangeUser(gParticleProtonPt[0]->GetXaxis()->GetXmin()-0.2,gParticleProtonPt[0]->GetXaxis()->GetXmax()+0.2);
  hEmptyPt->DrawCopy();
  for(Int_t iParticle = 0; iParticle < 10; iParticle++) {
    /*if(iParticle < 5) {
      DrawMarker(0.2, 115-5*iParticle, 20+iParticle, 1.2, 1);
      t1->DrawLatex(0.3,113-5*iParticle,fParticleName[iParticle]);
    }
    else {
      DrawMarker(2.2, 115-5*(iParticle-5), 20+iParticle, 1.2, 1);
      t1->DrawLatex(2.3,113-5*(iParticle-5),fParticleName[iParticle]);
      }*/
    if((iParticle == 0)||(iParticle == 2)||(iParticle == 6)||(iParticle == 8))
      gParticleProtonPt[iParticle]->Draw("P");
  }
  DrawMarker(0.5, 115, 20, 1.2, 1);
  t1->DrawLatex(0.6,113,fParticleName[0]);
  DrawMarker(0.5, 108, 22, 1.2, 1);
  t1->DrawLatex(0.6,106,fParticleName[2]);
  DrawMarker(0.5, 101, 26, 1.2, 1);
  t1->DrawLatex(0.6,99,fParticleName[6]);
  DrawMarker(0.5, 94, 28, 1.2, 1);
  t1->DrawLatex(0.6,92,fParticleName[8]);

  TCanvas *c6 = new TCanvas("c6",
			    "MC secondary composition vs pT - AntiProtons",
			    600,600,700,400);
  c6->SetHighLightColor(10); c6->SetBottomMargin(0.15);
  c6->SetGridx(); c6->SetGridy();
  hEmptyPt->DrawCopy();
  for(Int_t iParticle = 0; iParticle < 10; iParticle++) {
    /*if(iParticle < 5) {
      DrawMarker(0.2, 115-5*iParticle, 20+iParticle, 1.2, 1);
      t1->DrawLatex(0.3,113-5*iParticle,fParticleName[iParticle]);
    }
    else {
      DrawMarker(2.2, 115-5*(iParticle-5), 20+iParticle, 1.2, 1);
      t1->DrawLatex(2.3,113-5*(iParticle-5),fParticleName[iParticle]);
      }*/
    if((iParticle == 0)||(iParticle == 6)||(iParticle == 8))
      gParticleAntiProtonPt[iParticle]->Draw("P");
  }
  DrawMarker(0.5, 115, 20, 1.2, 1);
  t1->DrawLatex(0.6,113,fParticleName[0]);
  DrawMarker(0.5, 108, 26, 1.2, 1);
  t1->DrawLatex(0.6,106,fParticleName[6]);
  DrawMarker(0.5, 101, 28, 1.2, 1);
  t1->DrawLatex(0.6,99,fParticleName[8]);
}

//________________________________________//
void GetComposition(Int_t iSpecies,
		    TH3F *gHist, 
		    Double_t *nParticleCompositionY,
		    Double_t *nParticleCompositionYError,
		    Double_t *gY, Double_t *gYError,
		    Double_t *nParticleCompositionPt,
		    Double_t *nParticleCompositionPtError,
		    Double_t *gPt, Double_t *gPtError) {
  //Returns the pT and y dependence of the MC composition
  Double_t ymin = gHist->GetXaxis()->GetXmin();
  Double_t ymax = gHist->GetXaxis()->GetXmax();
  Double_t nybins = gHist->GetNbinsX();
  Double_t ptmin = gHist->GetYaxis()->GetXmin();
  Double_t ptmax = gHist->GetYaxis()->GetXmax();
  Double_t nptbins = gHist->GetNbinsY();
  Double_t nTotalY[200], nTotalPt[200];
  for(Int_t iBins = 0; iBins < 200; iBins++) {
    nParticleCompositionY[iBins] = 0;
    nParticleCompositionPt[iBins] = 0;
    nParticleCompositionYError[iBins] = 0;
    nParticleCompositionPtError[iBins] = 0;
    nTotalY[iBins] = 0.0;
    nTotalPt[iBins] = 0.0;
  }

  //rapidity dependence
  //cout<<"Ymin: "<<ymin<<" - Ymax: "<<ymax<<" - Ybins: "<<nybins<<endl;
  for(Int_t iXbins = 1; iXbins <= gHist->GetNbinsX(); iXbins++) {
    for(Int_t iZbins = 1; iZbins <= gHist->GetNbinsZ(); iZbins++) {
      for(Int_t iYbins = 1; iYbins <= gHist->GetNbinsY(); iYbins++) {
	nTotalY[iXbins-1] += gHist->GetBinContent(iXbins,iYbins,iZbins);
      }
    }
  }

  for(Int_t iXbins = 1; iXbins <= gHist->GetNbinsX(); iXbins++) {
    for(Int_t iYbins = 1; iYbins <= gHist->GetNbinsY(); iYbins++) {
      if(nTotalY[iXbins-1] > 0)
	nParticleCompositionY[iXbins-1] += 100.*gHist->GetBinContent(iXbins,iYbins,iSpecies+1)/nTotalY[iXbins-1];
      //nCompositionY[iXbins-1] += gHist->GetBinContent(iXbins,iYbins,iSpecies+1);
      //if(nParticleCompositionY[iXbins-1] == 0) 
      //nParticleCompositionY[iXbins-1] = -10.0;
    }//pt loop
    if((nParticleCompositionY[iXbins-1] <= 100.)&&(nTotalY[iXbins-1] != 0))
      nParticleCompositionYError[iXbins-1] = TMath::Sqrt(nParticleCompositionY[iXbins-1]*(100. - nParticleCompositionY[iXbins-1])/nTotalY[iXbins-1]);
    gY[iXbins-1] = ymin + (iXbins-1)*(ymax - ymin)/nybins + 0.5*(ymax - ymin)/nybins;
    gYError[iXbins-1] = 0.5*(ymax - ymin)/nybins;
    //cout<<"y: "<<gY[iXbins-1]<<
    //" - test: "<<ymin + (iXbins-1)*(ymax - ymin)/nybins + 0.5*(ymax - ymin)/nybins<<
    //" - Number of protons: "<<nY[iXbins-1]<<
    //" - Total: "<<nTotalY[iXbins-1]<<
    //" - Percentage: "<<nParticleCompositionY[iXbins-1]<<endl;
  }//y loop

  //pt dependence
  //cout<<"Ptmin: "<<ptmin<<" - Ptmax: "<<ptmax<<" - Ptbins: "<<nptbins<<endl;
  for(Int_t iYbins = 1; iYbins <= gHist->GetNbinsY(); iYbins++) {
    for(Int_t iZbins = 1; iZbins <= gHist->GetNbinsZ(); iZbins++) {
      for(Int_t iXbins = 1; iXbins <= gHist->GetNbinsX(); iXbins++) {
	nTotalPt[iYbins-1] += gHist->GetBinContent(iXbins,iYbins,iZbins);
      }
    }
  }

  for(Int_t iYbins = 1; iYbins <= gHist->GetNbinsY(); iYbins++) {
    for(Int_t iXbins = 1; iXbins <= gHist->GetNbinsX(); iXbins++) {
      if(nTotalPt[iYbins-1] > 0)
	nParticleCompositionPt[iYbins-1] += 100.*gHist->GetBinContent(iXbins,iYbins,iSpecies+1)/nTotalPt[iYbins-1];
      //if(nParticleCompositionPt[iYbins-1] == 0) 
      //nParticleCompositionPt[iYbins-1] = -10.0;
    }//pt loop
    if((nParticleCompositionPt[iYbins-1] <= 100.)&&(nTotalPt[iYbins-1] != 0))
      nParticleCompositionPtError[iYbins-1] = TMath::Sqrt(nParticleCompositionPt[iYbins-1]*(100. - nParticleCompositionPt[iYbins-1])/nTotalPt[iYbins-1]);
    gPt[iYbins-1] = ptmin + (iYbins-1)*(ptmax - ptmin)/nptbins + 0.5*(ptmax - ptmin)/nptbins;
    gPtError[iYbins-1] = 0.5*(ptmax - ptmin)/nptbins;
    //cout<<"Pt: "<<gPt[iYbins-1]<<
    //" - test: "<<ptmin + (iYbins-1)*(ptmax - ptmin)/nptbins + 0.5*(ptmax - ptmin)/nptbins<<
    //" - Number of protons: "<<nY[iXbins-1]<<
    //" - Total: "<<nTotalPt[iYbins-1]<<
    //" - Percentage: "<<nParticleCompositionPt[iYbins-1]<<endl;
  }//pt loop
}

//________________________________________//
void readProcesses(TList *list) {
  char *fParticleProtonName[12] = {"K_{L}","#pi","K_{S}","K",
				   "n","p","#Sigma^{-}","#Lambda","#Sigma^{+}",
				   "#Xi^{-}","#Xi^{0}","#Omega^{-}"};
  char *fParticleAntiProtonName[8] = {"K_{L}","#pi","K_{S}","K",
				      "n","p","#Lambda","#Sigma^{+}"};
  Int_t iProtonCounter = 0, iAntiProtonCounter = 0;
  TH1F *gMCProcesses;
  for(Int_t iEntry = 0; iEntry < list->GetEntries(); iEntry++) {
    gMCProcesses = (TH1F *)list->At(iEntry);
    TString histName = gMCProcesses->GetName();
    if(histName.Contains("gHistProtons")) {
      cout<<"Protons coming from "<<fParticleProtonName[iProtonCounter]<<endl;

      iProtonCounter += 1;
    }
    if(histName.Contains("gHistAntiProtons")) {
      cout<<"Antiprotons coming from "<<fParticleAntiProtonName[iAntiProtonCounter]<<endl;

      iAntiProtonCounter += 1;
    }
    for(Int_t iBin = 1; iBin < gMCProcesses->GetNbinsX(); iBin++) {
      Double_t binContent = gMCProcesses->GetBinContent(iBin);
      if(binContent > 0) {
	Int_t processId = gMCProcesses->GetBinCenter(iBin);
	cout<<"\t Process ID: "<<processId<<" - "<<
	  gMCProcessName[processId]<<" - "<<
	  100.*binContent/gMCProcesses->GetEntries()<<"%"<<endl;
      }
    }
  }
}

//________________________________________________//
void SetError(TH1 *hEff, TH1 *hGen) {
  for(Int_t iBin = 1; iBin <= hEff->GetNbinsX(); iBin++) {
    Double_t error = 0.0;
    if((hEff->GetBinContent(iBin) <= 1  .)&&(hGen->GetBinContent(iBin) != 0))
      error = TMath::Sqrt(hEff->GetBinContent(iBin)*(1  . - hEff->GetBinContent(iBin))/hGen->GetBinContent(iBin));
    hEff->SetBinError(iBin,error);
  }
}

//________________________________________//
void drawVertexQA(TList *list) {
  //Function to display the vertex QA plots
  TH1I *gHistMCPrimaryMultiplicity = (TH1I *)list->At(0);
  //TPC
  TH1I *gHistMCPrimaryMultiplicityTPC = (TH1I *)list->At(1);
  TH2F *gHistTPCESDVx = (TH2F *)list->At(2);
  TH2F *gHistTPCESDVy = (TH2F *)list->At(3);
  TH2F *gHistTPCESDVz = (TH2F *)list->At(4);
  TH1F *gHistTPCDiffVx = (TH1F *)list->At(5);
  TH1F *gHistTPCDiffVy = (TH1F *)list->At(6);
  TH1F *gHistTPCDiffVz = (TH1F *)list->At(7);
  TH1F *gHistTPCResolutionVx = (TH1F *)list->At(8);
  TH1F *gHistTPCResolutionVy = (TH1F *)list->At(9);
  TH1F *gHistTPCResolutionVz = (TH1F *)list->At(10);
  //SPD
  TH1I *gHistMCPrimaryMultiplicitySPD = (TH1I *)list->At(11);
  TH2F *gHistSPDESDVx = (TH2F *)list->At(12);
  TH2F *gHistSPDESDVy = (TH2F *)list->At(13);
  TH2F *gHistSPDESDVz = (TH2F *)list->At(14);
  TH1F *gHistSPDDiffVx = (TH1F *)list->At(15);
  TH1F *gHistSPDDiffVy = (TH1F *)list->At(16);
  TH1F *gHistSPDDiffVz = (TH1F *)list->At(17);
  TH1F *gHistSPDResolutionVx = (TH1F *)list->At(18);
  TH1F *gHistSPDResolutionVy = (TH1F *)list->At(19);
  TH1F *gHistSPDResolutionVz = (TH1F *)list->At(20);
  //Tracks
  TH1I *gHistMCPrimaryMultiplicityTracks = (TH1I *)list->At(21);
  TH2F *gHistTracksESDVx = (TH2F *)list->At(22);
  TH2F *gHistTracksESDVy = (TH2F *)list->At(23);
  TH2F *gHistTracksESDVz = (TH2F *)list->At(24);
  TH1F *gHistTracksDiffVx = (TH1F *)list->At(25);
  TH1F *gHistTracksDiffVy = (TH1F *)list->At(26);
  TH1F *gHistTracksDiffVz = (TH1F *)list->At(27);
  TH1F *gHistTracksResolutionVx = (TH1F *)list->At(28);
  TH1F *gHistTracksResolutionVy = (TH1F *)list->At(29);
  TH1F *gHistTracksResolutionVz = (TH1F *)list->At(30);

  TCanvas *c17 = new TCanvas("c17",
			     "Vertex efficiency",
			     300,0,900,400);
  c17->SetHighLightColor(10); c17->Divide(3,1);
  c17->cd(1)->SetLeftMargin(0.15); c17->cd(1)->SetBottomMargin(0.15);  
  c17->cd(1)->SetRightMargin(0.2);
  c17->cd(1)->SetGridx(); c17->cd(1)->SetGridy();
  gHistMCPrimaryMultiplicityTPC->SetTitle("TPC vertex");
  gHistMCPrimaryMultiplicityTPC->Divide(gHistMCPrimaryMultiplicity);
  SetError(gHistMCPrimaryMultiplicityTPC,gHistMCPrimaryMultiplicity);
  gHistMCPrimaryMultiplicityTPC->SetMaximum(110.);
  gHistMCPrimaryMultiplicityTPC->Scale(100.);
  gHistMCPrimaryMultiplicityTPC->SetMarkerStyle(20);
  gHistMCPrimaryMultiplicityTPC->SetMarkerColor(1);
  gHistMCPrimaryMultiplicityTPC->GetYaxis()->SetTitle("#epsilon [%]");
  gHistMCPrimaryMultiplicityTPC->SetStats(kFALSE);
  gHistMCPrimaryMultiplicityTPC->Draw("E");
  c17->cd(2)->SetLeftMargin(0.15); c17->cd(2)->SetBottomMargin(0.15);  
  c17->cd(2)->SetRightMargin(0.2);
  c17->cd(2)->SetGridx(); c17->cd(2)->SetGridy();
  gHistMCPrimaryMultiplicitySPD->SetTitle("SPD vertex");
  gHistMCPrimaryMultiplicitySPD->Divide(gHistMCPrimaryMultiplicity);
  SetError(gHistMCPrimaryMultiplicitySPD,gHistMCPrimaryMultiplicity);
  gHistMCPrimaryMultiplicitySPD->SetMaximum(110.);
  gHistMCPrimaryMultiplicitySPD->Scale(100.);
  gHistMCPrimaryMultiplicitySPD->SetMarkerStyle(20);
  gHistMCPrimaryMultiplicitySPD->SetMarkerColor(1);
  gHistMCPrimaryMultiplicitySPD->GetYaxis()->SetTitle("#epsilon [%]");
  gHistMCPrimaryMultiplicitySPD->SetStats(kFALSE);
  gHistMCPrimaryMultiplicitySPD->Draw("E");
  c17->cd(3)->SetLeftMargin(0.15); c17->cd(3)->SetBottomMargin(0.15);  
  c17->cd(3)->SetRightMargin(0.2);
  c17->cd(3)->SetGridx(); c17->cd(3)->SetGridy();
  gHistMCPrimaryMultiplicityTracks->SetTitle("Vertex from tracks");
  gHistMCPrimaryMultiplicityTracks->Divide(gHistMCPrimaryMultiplicity);
  SetError(gHistMCPrimaryMultiplicityTracks,gHistMCPrimaryMultiplicity);
  gHistMCPrimaryMultiplicityTracks->SetMaximum(110.);
  gHistMCPrimaryMultiplicityTracks->Scale(100.);
  gHistMCPrimaryMultiplicityTracks->SetMarkerStyle(20);
  gHistMCPrimaryMultiplicityTracks->SetMarkerColor(1);
  gHistMCPrimaryMultiplicityTracks->GetYaxis()->SetTitle("#epsilon [%]");
  gHistMCPrimaryMultiplicityTracks->SetStats(kFALSE);
  gHistMCPrimaryMultiplicityTracks->Draw("E");
  c17->SaveAs("VertexEfficiency.gif");

  //TPC vertex
  TCanvas *c18 = new TCanvas("c18",
			     "TPC vertex",
			     350,50,700,700);
  c18->SetHighLightColor(10); c18->Divide(3,3);
  c18->cd(1)->SetLeftMargin(0.15); c18->cd(1)->SetBottomMargin(0.15);  
  c18->cd(1)->SetRightMargin(0.2); c18->cd(1)->SetLogy();
  gHistTPCESDVx->Draw("col");
  c18->cd(2)->SetLeftMargin(0.15); c18->cd(2)->SetBottomMargin(0.15);  
  c18->cd(2)->SetRightMargin(0.2); c18->cd(2)->SetLogy();
  gHistTPCESDVy->Draw("col");
  c18->cd(3)->SetLeftMargin(0.15); c18->cd(3)->SetBottomMargin(0.15);  
  c18->cd(3)->SetRightMargin(0.2); c18->cd(3)->SetLogy();
  gHistTPCESDVz->Draw("col");
  c18->cd(4)->SetLeftMargin(0.15); c18->cd(4)->SetBottomMargin(0.15);  
  c18->cd(4)->SetRightMargin(0.2); c18->cd(4)->SetLogy();
  gHistTPCDiffVx->Draw();
  c18->cd(5)->SetLeftMargin(0.15); c18->cd(5)->SetBottomMargin(0.15);  
  c18->cd(5)->SetRightMargin(0.2); c18->cd(5)->SetLogy();
  gHistTPCDiffVy->Draw();
  c18->cd(6)->SetLeftMargin(0.15); c18->cd(6)->SetBottomMargin(0.15);  
  c18->cd(6)->SetRightMargin(0.2); c18->cd(6)->SetLogy();
  gHistTPCDiffVz->Draw();
  c18->cd(7)->SetLeftMargin(0.15); c18->cd(7)->SetBottomMargin(0.15);  
  c18->cd(7)->SetRightMargin(0.2); c18->cd(7)->SetLogy();
  gHistTPCResolutionVx->Draw();
  c18->cd(8)->SetLeftMargin(0.15); c18->cd(8)->SetBottomMargin(0.15);  
  c18->cd(8)->SetRightMargin(0.2); c18->cd(8)->SetLogy();
  gHistTPCResolutionVy->Draw();
  c18->cd(9)->SetLeftMargin(0.15); c18->cd(9)->SetBottomMargin(0.15);  
  c18->cd(9)->SetRightMargin(0.2); c18->cd(9)->SetLogy();
  gHistTPCResolutionVz->Draw();
  c18->SaveAs("VertexTPC.gif");

  //SPD vertex
  TCanvas *c19 = new TCanvas("c19",
			     "SPD vertex",
			     400,100,700,700);
  c19->SetHighLightColor(10); c19->Divide(3,3);
  c19->cd(1)->SetLeftMargin(0.15); c19->cd(1)->SetBottomMargin(0.15);  
  c19->cd(1)->SetRightMargin(0.2); c19->cd(1)->SetLogy();
  gHistSPDESDVx->Draw("col");
  c19->cd(2)->SetLeftMargin(0.15); c19->cd(2)->SetBottomMargin(0.15);  
  c19->cd(2)->SetRightMargin(0.2); c19->cd(2)->SetLogy();
  gHistSPDESDVy->Draw("col");
  c19->cd(3)->SetLeftMargin(0.15); c19->cd(3)->SetBottomMargin(0.15);  
  c19->cd(3)->SetRightMargin(0.2); c19->cd(3)->SetLogy();
  gHistSPDESDVz->Draw("col");
  c19->cd(4)->SetLeftMargin(0.15); c19->cd(4)->SetBottomMargin(0.15);  
  c19->cd(4)->SetRightMargin(0.2); c19->cd(4)->SetLogy();
  gHistSPDDiffVx->Draw();
  c19->cd(5)->SetLeftMargin(0.15); c19->cd(5)->SetBottomMargin(0.15);  
  c19->cd(5)->SetRightMargin(0.2); c19->cd(5)->SetLogy();
  gHistSPDDiffVy->Draw();
  c19->cd(6)->SetLeftMargin(0.15); c19->cd(6)->SetBottomMargin(0.15);  
  c19->cd(6)->SetRightMargin(0.2); c19->cd(6)->SetLogy();
  gHistSPDDiffVz->Draw();
  c19->cd(7)->SetLeftMargin(0.15); c19->cd(7)->SetBottomMargin(0.15);  
  c19->cd(7)->SetRightMargin(0.2); c19->cd(7)->SetLogy();
  gHistSPDResolutionVx->Draw();
  c19->cd(8)->SetLeftMargin(0.15); c19->cd(8)->SetBottomMargin(0.15);  
  c19->cd(8)->SetRightMargin(0.2); c19->cd(8)->SetLogy();
  gHistSPDResolutionVy->Draw();
  c19->cd(9)->SetLeftMargin(0.15); c19->cd(9)->SetBottomMargin(0.15);  
  c19->cd(9)->SetRightMargin(0.2); c19->cd(9)->SetLogy();
  gHistSPDResolutionVz->Draw();
  c19->SaveAs("VertexSPD.gif");

  //Tracks vertex
  TCanvas *c20 = new TCanvas("c20",
			     "Tracks vertex",
			     450,150,700,700);
  c20->SetHighLightColor(10); c20->Divide(3,3);
  c20->cd(1)->SetLeftMargin(0.15); c20->cd(1)->SetBottomMargin(0.15);  
  c20->cd(1)->SetRightMargin(0.2); c20->cd(1)->SetLogy();
  gHistTracksESDVx->Draw("col");
  c20->cd(2)->SetLeftMargin(0.15); c20->cd(2)->SetBottomMargin(0.15);  
  c20->cd(2)->SetRightMargin(0.2); c20->cd(2)->SetLogy();
  gHistTracksESDVy->Draw("col");
  c20->cd(3)->SetLeftMargin(0.15); c20->cd(3)->SetBottomMargin(0.15);  
  c20->cd(3)->SetRightMargin(0.2); c20->cd(3)->SetLogy();
  gHistTracksESDVz->Draw("col");
  c20->cd(4)->SetLeftMargin(0.15); c20->cd(4)->SetBottomMargin(0.15);  
  c20->cd(4)->SetRightMargin(0.2); c20->cd(4)->SetLogy();
  gHistTracksDiffVx->Draw();
  c20->cd(5)->SetLeftMargin(0.15); c20->cd(5)->SetBottomMargin(0.15);  
  c20->cd(5)->SetRightMargin(0.2); c20->cd(5)->SetLogy();
  gHistTracksDiffVy->Draw();
  c20->cd(6)->SetLeftMargin(0.15); c20->cd(6)->SetBottomMargin(0.15);  
  c20->cd(6)->SetRightMargin(0.2); c20->cd(6)->SetLogy();
  gHistTracksDiffVz->Draw();
  c20->cd(7)->SetLeftMargin(0.15); c20->cd(7)->SetBottomMargin(0.15);  
  c20->cd(7)->SetRightMargin(0.2); c20->cd(7)->SetLogy();
  gHistTracksResolutionVx->Draw();
  c20->cd(8)->SetLeftMargin(0.15); c20->cd(8)->SetBottomMargin(0.15);  
  c20->cd(8)->SetRightMargin(0.2); c20->cd(8)->SetLogy();
  gHistTracksResolutionVy->Draw();
  c20->cd(9)->SetLeftMargin(0.15); c20->cd(9)->SetBottomMargin(0.15);  
  c20->cd(9)->SetRightMargin(0.2); c20->cd(9)->SetLogy();
  gHistTracksResolutionVz->Draw();
  c20->SaveAs("VertexTracks.gif");
}

//________________________________________//
void drawEfficiency(TList *list,
		    const char* analysisType) {
  //Function to display the reconstruction and PID efficiencies
  //for protons and antiprotons vs y and pT

  TH2F *hEmpty = new TH2F("hEmptyReconstructionEfficiency","",
			   1000,-1.2,210.,100,-10.0,130); 
  hEmpty->SetStats(kFALSE); 
  hEmpty->GetYaxis()->SetTitle("#epsilon [%]");
  hEmpty->GetYaxis()->SetTitleOffset(1.3);

  //Reconstruction efficiency
  TH2D *gHistPrimariesMCYPtProtons = (TH2D *)list->At(0);
  TH2D *gHistPrimariesMCYPtAntiProtons = (TH2D *)list->At(1);
  TH2D *gHistMCYPtProtonsFromWeak = (TH2D *)list->At(2);
  TH2D *gHistMCYPtAntiProtonsFromWeak = (TH2D *)list->At(3);
  TH2D *gHistMCYPtProtonsFromHadronic = (TH2D *)list->At(4);
  TH2D *gHistMCYPtAntiProtonsFromHadronic = (TH2D *)list->At(5);
  TH2D *gHistPrimariesESDYPtProtons = (TH2D *)list->At(6);
  TH2D *gHistPrimariesESDYPtAntiProtons = (TH2D *)list->At(7);
  TH2D *gHistESDYPtProtonsFromWeak = (TH2D *)list->At(8);
  TH2D *gHistESDYPtAntiProtonsFromWeak = (TH2D *)list->At(9);
  TH2D *gHistESDYPtProtonsFromHadronic = (TH2D *)list->At(10);
  TH2D *gHistESDYPtAntiProtonsFromHadronic = (TH2D *)list->At(11);

  //rapidity dependence
  TCanvas *c14 = new TCanvas("c14",
			     "(Anti)Proton reconstruction efficiency vs y",
			     650,650,700,400);
  c14->SetHighLightColor(10); c14->Divide(2,1);

  //Primary Protons
  TH1D *gYPrimariesESDProtons = (TH1D *)gHistPrimariesESDYPtProtons->ProjectionX("gYPrimariesESDProtons",0,gHistPrimariesESDYPtProtons->GetXaxis()->GetNbins(),"e");
  TH1D *gYPrimariesMCProtons = (TH1D *)gHistPrimariesMCYPtProtons->ProjectionX("gYPrimariesMCProtons",0,gHistPrimariesMCYPtProtons->GetXaxis()->GetNbins(),"e");
  gYPrimariesESDProtons->Divide(gYPrimariesMCProtons);
  SetError(gYPrimariesESDProtons,gYPrimariesMCProtons);
  gYPrimariesESDProtons->Scale(100.);
  gYPrimariesESDProtons->SetMarkerStyle(kFullCircle);

  //Primary AntiProtons
  TH1D *gYPrimariesESDAntiProtons = (TH1D *)gHistPrimariesESDYPtAntiProtons->ProjectionX("gYPrimariesESDAntiProtons",0,gHistPrimariesESDYPtAntiProtons->GetXaxis()->GetNbins(),"e");
  TH1D *gYPrimariesMCAntiProtons = (TH1D *)gHistPrimariesMCYPtAntiProtons->ProjectionX("gYPrimariesMCAntiProtons",0,gHistPrimariesMCYPtProtons->GetXaxis()->GetNbins(),"e");
  gYPrimariesESDAntiProtons->Divide(gYPrimariesMCAntiProtons);
  SetError(gYPrimariesESDAntiProtons,gYPrimariesMCAntiProtons);
  gYPrimariesESDAntiProtons->Scale(100.);
  gYPrimariesESDAntiProtons->SetMarkerStyle(kFullCircle);

  //Protons from weak decays
  TH1D *gYESDProtonsFromWeak = (TH1D *)gHistESDYPtProtonsFromWeak->ProjectionX("gYESDProtonsFromWeak",0,gHistESDYPtProtonsFromWeak->GetXaxis()->GetNbins(),"e");
  TH1D *gYMCProtonsFromWeak = (TH1D *)gHistMCYPtProtonsFromWeak->ProjectionX("gYMCProtonsFromWeak",0,gHistMCYPtProtonsFromWeak->GetXaxis()->GetNbins(),"e");
  gYESDProtonsFromWeak->Divide(gYMCProtonsFromWeak);
  SetError(gYESDProtonsFromWeak,gYMCProtonsFromWeak);
  gYESDProtonsFromWeak->Scale(100.);
  gYESDProtonsFromWeak->SetMarkerStyle(21);
  gYESDProtonsFromWeak->SetMarkerColor(2);

  //AntiProtons from weak decays
  TH1D *gYESDAntiProtonsFromWeak = (TH1D *)gHistESDYPtAntiProtonsFromWeak->ProjectionX("gYESDAntiProtonsFromWeak",0,gHistESDYPtAntiProtonsFromWeak->GetXaxis()->GetNbins(),"e");
  TH1D *gYMCAntiProtonsFromWeak = (TH1D *)gHistMCYPtAntiProtonsFromWeak->ProjectionX("gYMCAntiProtonsFromWeak",0,gHistMCYPtProtonsFromWeak->GetXaxis()->GetNbins(),"e");
  gYESDAntiProtonsFromWeak->Divide(gYMCAntiProtonsFromWeak);
  SetError(gYESDAntiProtonsFromWeak,gYMCAntiProtonsFromWeak);
  gYESDAntiProtonsFromWeak->Scale(100.);
  gYESDAntiProtonsFromWeak->SetMarkerStyle(21);
  gYESDAntiProtonsFromWeak->SetMarkerColor(2);

  //Protons from hadronic interactions
  TH1D *gYESDProtonsFromHadronic = (TH1D *)gHistESDYPtProtonsFromHadronic->ProjectionX("gYESDProtonsFromHadronic",0,gHistESDYPtProtonsFromHadronic->GetXaxis()->GetNbins(),"e");
  TH1D *gYMCProtonsFromHadronic = (TH1D *)gHistMCYPtProtonsFromHadronic->ProjectionX("gYMCProtonsFromHadronic",0,gHistMCYPtProtonsFromHadronic->GetXaxis()->GetNbins(),"e");
  gYESDProtonsFromHadronic->Divide(gYMCProtonsFromHadronic);
  SetError(gYESDProtonsFromHadronic,gYMCProtonsFromHadronic);
  gYESDProtonsFromHadronic->Scale(100.);
  gYESDProtonsFromHadronic->SetMarkerStyle(22);
  gYESDProtonsFromHadronic->SetMarkerColor(3);

  //AntiProtons from hadronic interactions
  TH1D *gYESDAntiProtonsFromHadronic = (TH1D *)gHistESDYPtAntiProtonsFromHadronic->ProjectionX("gYESDAntiProtonsFromHadronic",0,gHistESDYPtAntiProtonsFromHadronic->GetXaxis()->GetNbins(),"e");
  TH1D *gYMCAntiProtonsFromHadronic = (TH1D *)gHistMCYPtAntiProtonsFromHadronic->ProjectionX("gYMCAntiProtonsFromHadronic",0,gHistMCYPtProtonsFromHadronic->GetXaxis()->GetNbins(),"e");
  gYESDAntiProtonsFromHadronic->Divide(gYMCAntiProtonsFromHadronic);
  SetError(gYESDAntiProtonsFromHadronic,gYMCAntiProtonsFromHadronic);
  gYESDAntiProtonsFromHadronic->Scale(100.);
  gYESDAntiProtonsFromHadronic->SetMarkerStyle(22);
  gYESDAntiProtonsFromHadronic->SetMarkerColor(3);

  c14->cd(1)->SetBottomMargin(0.15); 
  c14->cd(1)->SetLeftMargin(0.15); 
  c14->cd(1)->SetGridx(); c14->cd(1)->SetGridy();
  hEmpty->GetXaxis()->SetRangeUser(gYPrimariesESDAntiProtons->GetXaxis()->GetXmin()-0.2,
				   gYPrimariesESDAntiProtons->GetXaxis()->GetXmax()+0.2);
  hEmpty->GetXaxis()->SetTitle(gYPrimariesESDAntiProtons->GetXaxis()->GetTitle());
  hEmpty->SetTitle("Protons");
  hEmpty->DrawCopy();
  gYPrimariesESDProtons->DrawCopy("ESAME");
  gYESDProtonsFromWeak->DrawCopy("ESAME");
  gYESDProtonsFromHadronic->DrawCopy("ESAME");

  c14->cd(2)->SetBottomMargin(0.15); 
  c14->cd(2)->SetLeftMargin(0.15); 
  c14->cd(2)->SetGridx(); c14->cd(2)->SetGridy();
  hEmpty->SetTitle("Antiprotons");
  hEmpty->DrawCopy();
  gYPrimariesESDAntiProtons->DrawCopy("ESAME");
  gYESDAntiProtonsFromWeak->DrawCopy("ESAME");
  gYESDAntiProtonsFromHadronic->DrawCopy("ESAME");
  c14->SaveAs("ReconstructionEfficiency-Protons-Rapidity.gif");

  //pT dependence
  TCanvas *c15 = new TCanvas("c15",
			     "(Anti)Proton reconstruction efficiency vs pT",
			     700,700,700,400);
  c15->SetHighLightColor(10); c15->Divide(2,1);

  //Primary Protons
  TH1D *gPtPrimariesESDProtons = (TH1D *)gHistPrimariesESDYPtProtons->ProjectionY("gPtPrimariesESDProtons",0,gHistPrimariesESDYPtProtons->GetYaxis()->GetNbins(),"e");
  TH1D *gPtPrimariesMCProtons = (TH1D *)gHistPrimariesMCYPtProtons->ProjectionY("gPtPrimariesMCProtons",0,gHistPrimariesMCYPtProtons->GetYaxis()->GetNbins(),"e");
  gPtPrimariesESDProtons->Divide(gPtPrimariesMCProtons);
  SetError(gPtPrimariesESDProtons,gPtPrimariesMCProtons);
  gPtPrimariesESDProtons->Scale(100.);
  gPtPrimariesESDProtons->SetMarkerStyle(kFullCircle);

  //Primary AntiProtons
  TH1D *gPtPrimariesESDAntiProtons = (TH1D *)gHistPrimariesESDYPtAntiProtons->ProjectionY("gPtPrimariesESDAntiProtons",0,gHistPrimariesESDYPtAntiProtons->GetYaxis()->GetNbins(),"e");
  TH1D *gPtPrimariesMCAntiProtons = (TH1D *)gHistPrimariesMCYPtAntiProtons->ProjectionY("gPtPrimariesMCAntiProtons",0,gHistPrimariesMCYPtProtons->GetYaxis()->GetNbins(),"e");
  gPtPrimariesESDAntiProtons->Divide(gPtPrimariesMCAntiProtons);
  SetError(gPtPrimariesESDAntiProtons,gPtPrimariesMCAntiProtons);
  gPtPrimariesESDAntiProtons->Scale(100.);
  gPtPrimariesESDAntiProtons->SetMarkerStyle(kFullCircle);

  //Protons from weak decays
  TH1D *gPtESDProtonsFromWeak = (TH1D *)gHistESDYPtProtonsFromWeak->ProjectionY("gPtESDProtonsFromWeak",0,gHistESDYPtProtonsFromWeak->GetYaxis()->GetNbins(),"e");
  TH1D *gPtMCProtonsFromWeak = (TH1D *)gHistMCYPtProtonsFromWeak->ProjectionY("gPtMCProtonsFromWeak",0,gHistMCYPtProtonsFromWeak->GetYaxis()->GetNbins(),"e");
  gPtESDProtonsFromWeak->Divide(gPtMCProtonsFromWeak);
  SetError(gPtESDProtonsFromWeak,gPtMCProtonsFromWeak);
  gPtESDProtonsFromWeak->Scale(100.);
  gPtESDProtonsFromWeak->SetMarkerStyle(21);
  gPtESDProtonsFromWeak->SetMarkerColor(2);

  //AntiProtons from weak decays
  TH1D *gPtESDAntiProtonsFromWeak = (TH1D *)gHistESDYPtAntiProtonsFromWeak->ProjectionY("gPtESDAntiProtonsFromWeak",0,gHistESDYPtAntiProtonsFromWeak->GetYaxis()->GetNbins(),"e");
  TH1D *gPtMCAntiProtonsFromWeak = (TH1D *)gHistMCYPtAntiProtonsFromWeak->ProjectionY("gPtMCAntiProtonsFromWeak",0,gHistMCYPtProtonsFromWeak->GetYaxis()->GetNbins(),"e");
  gPtESDAntiProtonsFromWeak->Divide(gPtMCAntiProtonsFromWeak);
  SetError(gPtESDAntiProtonsFromWeak,gPtMCAntiProtonsFromWeak);
  gPtESDAntiProtonsFromWeak->Scale(100.);
  gPtESDAntiProtonsFromWeak->SetMarkerStyle(21);
  gPtESDAntiProtonsFromWeak->SetMarkerColor(2);

  //Protons from hadronic interactions
  TH1D *gPtESDProtonsFromHadronic = (TH1D *)gHistESDYPtProtonsFromHadronic->ProjectionY("gPtESDProtonsFromHadronic",0,gHistESDYPtProtonsFromHadronic->GetYaxis()->GetNbins(),"e");
  TH1D *gPtMCProtonsFromHadronic = (TH1D *)gHistMCYPtProtonsFromHadronic->ProjectionY("gPtMCProtonsFromHadronic",0,gHistMCYPtProtonsFromHadronic->GetYaxis()->GetNbins(),"e");
  gPtESDProtonsFromHadronic->Divide(gPtMCProtonsFromHadronic);
  SetError(gPtESDProtonsFromHadronic,gPtMCProtonsFromHadronic);
  gPtESDProtonsFromHadronic->Scale(100.);
  gPtESDProtonsFromHadronic->SetMarkerStyle(22);
  gPtESDProtonsFromHadronic->SetMarkerColor(3);

  //AntiProtons from hadronic interactions
  TH1D *gPtESDAntiProtonsFromHadronic = (TH1D *)gHistESDYPtAntiProtonsFromHadronic->ProjectionY("gPtESDAntiProtonsFromHadronic",0,gHistESDYPtAntiProtonsFromHadronic->GetYaxis()->GetNbins(),"e");
  TH1D *gPtMCAntiProtonsFromHadronic = (TH1D *)gHistMCYPtAntiProtonsFromHadronic->ProjectionY("gPtMCAntiProtonsFromHadronic",0,gHistMCYPtProtonsFromHadronic->GetYaxis()->GetNbins(),"e");
  gPtESDAntiProtonsFromHadronic->Divide(gPtMCAntiProtonsFromHadronic);
  SetError(gPtESDAntiProtonsFromHadronic,gPtMCAntiProtonsFromHadronic);
  gPtESDAntiProtonsFromHadronic->Scale(100.);
  gPtESDAntiProtonsFromHadronic->SetMarkerStyle(22);
  gPtESDAntiProtonsFromHadronic->SetMarkerColor(3);


  c15->cd(1)->SetBottomMargin(0.15); 
  c15->cd(1)->SetLeftMargin(0.15); 
  c15->cd(1)->SetGridx(); c15->cd(1)->SetGridy();
  hEmpty->GetXaxis()->SetRangeUser(gPtPrimariesESDAntiProtons->GetXaxis()->GetXmin()-0.2,
				   gPtPrimariesESDAntiProtons->GetXaxis()->GetXmax()+0.2);
  hEmpty->GetXaxis()->SetTitle("P_{T} [GeV/c]");
  hEmpty->SetTitle("Protons");
  hEmpty->DrawCopy();
  gPtPrimariesESDProtons->DrawCopy("ESAME");
  gPtESDProtonsFromWeak->DrawCopy("ESAME");
  gPtESDProtonsFromHadronic->DrawCopy("ESAME");

  c15->cd(2)->SetBottomMargin(0.15); 
  c15->cd(2)->SetLeftMargin(0.15); 
  c15->cd(2)->SetGridx(); c15->cd(2)->SetGridy();
  hEmpty->SetTitle("Antiprotons");
  hEmpty->DrawCopy();
  gPtPrimariesESDAntiProtons->DrawCopy("ESAME");
  gPtESDAntiProtonsFromWeak->DrawCopy("ESAME");
  gPtESDAntiProtonsFromHadronic->DrawCopy("ESAME");
  c15->SaveAs("ReconstructionEfficiency-Protons-Pt.gif");

  //______________//
  //PID efficiency//
  //______________//
  TH3D *gHistESDInitYPtProtons = (TH3D *)list->At(12);
  TH3D *gHistESDIdYPtProtons = (TH3D *)list->At(13);
  TH3D *gHistESDRecIdYPtProtons = (TH3D *)list->At(14);
  TH3D *gHistESDContamYPtProtons = (TH3D *)list->At(15);

  TCanvas *c16 = new TCanvas("c16",
			     "(Anti)Proton PID efficiency vs y and pT",
			     750,750,700,400);
  c16->SetHighLightColor(10); c16->Divide(3,1);

  //rapidity dependence
  //protons pid efficiency
  //TH1D *gYESDIdProtons = (TH1D *)gHistESDIdYPtProtons->ProjectionX("gYESDIdProtons",0,gHistESDIdYPtProtons->GetXaxis()->GetNbins(),"e");
  //TH1D *gYESDInitProtons = (TH1D *)gHistESDInitYPtProtons->ProjectionX("gYESDInitProtons",0,gHistESDInitYPtProtons->GetXaxis()->GetNbins(),"e");
  TH1D *gYESDIdProtons = (TH1D *)gHistESDIdYPtProtons->Project3D("x");
  TH1D *gYESDInitProtons = (TH1D *)gHistESDInitYPtProtons->Project3D("x");
  gYESDIdProtons->Divide(gYESDInitProtons);
  SetError(gYESDIdProtons,gYESDInitProtons);
  gYESDIdProtons->Scale(100.);
  gYESDIdProtons->SetMarkerStyle(kFullCircle);

  //protons pid contamination
  //TH1D *gYESDContamProtons = (TH1D *)gHistESDContamYPtProtons->ProjectionX("gYESDContamProtons",0,gHistESDContamYPtProtons->GetXaxis()->GetNbins(),"e");
  //TH1D *gYESDRecIdProtons = (TH1D *)gHistESDRecIdYPtProtons->ProjectionX("gYESDRecIdProtons",0,gHistESDRecIdYPtProtons->GetXaxis()->GetNbins(),"e");
  TH1D *gYESDContamProtons = (TH1D *)gHistESDContamYPtProtons->Project3D("x");
  TH1D *gYESDRecIdProtons = (TH1D *)gHistESDRecIdYPtProtons->Project3D("x");
  gYESDContamProtons->Divide(gYESDRecIdProtons);
  SetError(gYESDContamProtons,gYESDRecIdProtons);
  gYESDContamProtons->Scale(100.);
  gYESDContamProtons->SetMarkerStyle(kOpenCircle);

  c16->cd(1)->SetBottomMargin(0.15); 
  c16->cd(1)->SetLeftMargin(0.15); 
  c16->cd(1)->SetGridx(); c16->cd(1)->SetGridy();
  hEmpty->GetXaxis()->SetRangeUser(gYESDIdProtons->GetXaxis()->GetXmin()-0.2,
				   gYESDIdProtons->GetXaxis()->GetXmax()+0.2);
  hEmpty->GetXaxis()->SetTitle(gYESDContamProtons->GetXaxis()->GetTitle());
  hEmpty->DrawCopy();
  gYESDIdProtons->DrawCopy("ESAME");
  gYESDContamProtons->DrawCopy("ESAME");

  //pT dependence
  //protons pid efficiency
  //TH1D *gPtESDIdProtons = (TH1D *)gHistESDIdYPtProtons->ProjectionY("gPtESDIdProtons",0,gHistESDIdYPtProtons->GetYaxis()->GetNbins(),"e");
  //TH1D *gPtESDInitProtons = (TH1D *)gHistESDInitYPtProtons->ProjectionY("gPtESDInitProtons",0,gHistESDInitYPtProtons->GetYaxis()->GetNbins(),"e");
  TH1D *gPtESDIdProtons = (TH1D *)gHistESDIdYPtProtons->Project3D("y");
  TH1D *gPtESDInitProtons = (TH1D *)gHistESDInitYPtProtons->Project3D("y");
  gPtESDIdProtons->Divide(gPtESDInitProtons);
  SetError(gPtESDIdProtons,gPtESDInitProtons);
  gPtESDIdProtons->Scale(100.);
  gPtESDIdProtons->SetMarkerStyle(kFullCircle);

  //protons pid contamination
  //TH1D *gPtESDContamProtons = (TH1D *)gHistESDContamYPtProtons->ProjectionY("gPtESDContamProtons",0,gHistESDContamYPtProtons->GetYaxis()->GetNbins(),"e");
  //TH1D *gPtESDRecIdProtons = (TH1D *)gHistESDRecIdYPtProtons->ProjectionY("gPtESDRecIdProtons",0,gHistESDRecIdYPtProtons->GetYaxis()->GetNbins(),"e");
  TH1D *gPtESDContamProtons = (TH1D *)gHistESDContamYPtProtons->Project3D("y");
  TH1D *gPtESDRecIdProtons = (TH1D *)gHistESDRecIdYPtProtons->Project3D("y");
  gPtESDContamProtons->Divide(gPtESDRecIdProtons);
  SetError(gPtESDContamProtons,gPtESDRecIdProtons);
  gPtESDContamProtons->Scale(100.);
  gPtESDContamProtons->SetMarkerStyle(kOpenCircle);

  c16->cd(2)->SetBottomMargin(0.15); 
  c16->cd(2)->SetLeftMargin(0.15); 
  c16->cd(2)->SetGridx(); c16->cd(2)->SetGridy();
  hEmpty->GetXaxis()->SetRangeUser(gPtESDIdProtons->GetXaxis()->GetXmin()-0.2,
				   gPtESDIdProtons->GetXaxis()->GetXmax()+0.2);
  hEmpty->GetXaxis()->SetTitle(gPtESDContamProtons->GetXaxis()->GetTitle());
  hEmpty->DrawCopy();
  gPtESDIdProtons->DrawCopy("ESAME");
  gPtESDContamProtons->DrawCopy("ESAME");

  //N_points dependence
  //protons pid efficiency
  TH1D *gNPointsESDIdProtons = (TH1D *)gHistESDIdYPtProtons->Project3D("z");
  TH1D *gNPointsESDInitProtons = (TH1D *)gHistESDInitYPtProtons->Project3D("z");
  gNPointsESDIdProtons->Divide(gNPointsESDInitProtons);
  SetError(gNPointsESDIdProtons,gNPointsESDInitProtons);
  gNPointsESDIdProtons->Scale(100.);
  gNPointsESDIdProtons->SetMarkerStyle(kFullCircle);

  //protons pid contamination
  TH1D *gNPointsESDContamProtons = (TH1D *)gHistESDContamYPtProtons->Project3D("z");
  TH1D *gNPointsESDRecIdProtons = (TH1D *)gHistESDRecIdYPtProtons->Project3D("z");
  gNPointsESDContamProtons->Divide(gNPointsESDRecIdProtons);
  SetError(gNPointsESDContamProtons,gNPointsESDRecIdProtons);
  gNPointsESDContamProtons->Scale(100.);
  gNPointsESDContamProtons->SetMarkerStyle(kOpenCircle);

  c16->cd(3)->SetBottomMargin(0.15); 
  c16->cd(3)->SetLeftMargin(0.15); 
  c16->cd(3)->SetGridx(); c16->cd(3)->SetGridy();
  hEmpty->GetXaxis()->SetRangeUser(gNPointsESDIdProtons->GetXaxis()->GetXmin(),
				   gNPointsESDIdProtons->GetXaxis()->GetXmax()+10);
  hEmpty->GetXaxis()->SetTitle(gNPointsESDContamProtons->GetXaxis()->GetTitle());
  hEmpty->DrawCopy();
  gNPointsESDIdProtons->DrawCopy("ESAME");
  gNPointsESDContamProtons->DrawCopy("ESAME");

  c16->SaveAs("PIDEfficiency-Protons.gif");

  TString outputFileName = "Reconstruction-PID-Efficiency.";
  outputFileName += analysisType; outputFileName += ".root";
  TFile *fout = TFile::Open(outputFileName.Data(),"recreate");
  gYPrimariesESDProtons->Write();
  gYESDProtonsFromWeak->Write();
  gYESDProtonsFromHadronic->Write();
  gPtPrimariesESDProtons->Write();
  gPtESDProtonsFromWeak->Write();
  gPtESDProtonsFromHadronic->Write();
  gYPrimariesESDAntiProtons->Write();
  gYESDAntiProtonsFromWeak->Write();
  gYESDAntiProtonsFromHadronic->Write();
  gPtPrimariesESDAntiProtons->Write();
  gPtESDAntiProtonsFromWeak->Write();
  gPtESDAntiProtonsFromHadronic->Write();
  gYESDIdProtons->Write();
  gYESDContamProtons->Write();
  gPtESDIdProtons->Write();
  gPtESDContamProtons->Write();
  gNPointsESDIdProtons->Write();
  gNPointsESDContamProtons->Write();
  fout->Close();
}

//________________________________________________//
void DrawMarker(Double_t x, Double_t y, Int_t style, 
		Double_t size, Int_t color) {
  TMarker *m = new TMarker(x,y,style);
  m->SetMarkerSize(size);
  m->SetMarkerColor(color);
  m->Draw();
}

//________________________________________________//
const char * const gMCProcessName[45] = {
  "Primary particle emission",
  "Multiple scattering",
  "Energy loss",
  "Bending in magnetic field",
  "Decay",
  "Lepton pair production",
  "Compton scattering",
  "Photoelectric effect",
  "Bremstrahlung",
  "Delta ray",
  "Positron annihilation",
  "Positron annihilation at rest",
  "Positron annihilation in flight",
  "Hadronic interaction",
  "Nuclear evaporation",
  "Nuclear fission",
  "Nuclear absorbtion",
  "Antiproton annihilation",
  "Antineutron annihilation",
  "Neutron capture",
  "Hadronic elastic",
  "Hadronic incoherent elastic",
  "Hadronic coherent elastic",
  "Hadronic inelastic",
  "Photon inelastic",
  "Muon nuclear interaction",
  "Electron nuclear interaction",
  "Positron nuclear interaction",
  "Time of flight limit",
  "Nuclear photofission",
  "Rayleigh effect",
  "No active process",
  "Energy threshold",
  "Light absorption",
  "Light detection",
  "Light scattering",
  "Maximum allowed step",
  "Cerenkov production",
  "Cerenkov feed back photon",
  "Cerenkov photon reflection",
  "Cerenkov photon refraction",
  "Synchrotron radiation",
  "Scintillation",
  "Transportation",
  "Unknown process"
};

//________________________________________________//
void drawKineQA(const char *filename) {
  //Draws the QA plots for the kinematic variables for protons and antiprotons
  gStyle->SetPalette(1,0);
  gStyle->SetCanvasColor(41);
  gStyle->SetFrameFillColor(10);

  TFile *f = TFile::Open(filename);
  TList *acceptedList = (TList *)f->Get("acceptedCutList");
  TH3D *gHistEtaPhiNClustersPrimaryProtonsPass = (TH3D *)acceptedList->At(44);
  gHistEtaPhiNClustersPrimaryProtonsPass->SetTitle("Primary protons");
  TH3D *gHistEtaPhiNClustersSecondaryProtonsPass = (TH3D *)acceptedList->At(46);
  gHistEtaPhiNClustersSecondaryProtonsPass->SetTitle("Secondary protons");
  TH3D *gHistEtaPhiNClustersPrimaryAntiProtonsPass = (TH3D *)acceptedList->At(45);
  gHistEtaPhiNClustersPrimaryAntiProtonsPass->SetTitle("Primary antiprotons");
  TH3D *gHistEtaPhiNClustersSecondaryAntiProtonsPass = (TH3D *)acceptedList->At(47);
  gHistEtaPhiNClustersSecondaryAntiProtonsPass->SetTitle("Secondary antiprotons");
  TH3D *gHistEtaPhiChi2PerTPCClusterPrimaryProtonsPass = (TH3D *)acceptedList->At(48);
  gHistEtaPhiChi2PerTPCClusterPrimaryProtonsPass->SetTitle("Primary protons");
  TH3D *gHistEtaPhiChi2PerTPCClusterSecondaryProtonsPass = (TH3D *)acceptedList->At(50);
  gHistEtaPhiChi2PerTPCClusterSecondaryProtonsPass->SetTitle("Secondary protons");
  TH3D *gHistEtaPhiChi2PerTPCClusterPrimaryAntiProtonsPass = (TH3D *)acceptedList->At(49);
  gHistEtaPhiChi2PerTPCClusterPrimaryAntiProtonsPass->SetTitle("Primary antiprotons");
  TH3D *gHistEtaPhiChi2PerTPCClusterSecondaryAntiProtonsPass = (TH3D *)acceptedList->At(51);
  gHistEtaPhiChi2PerTPCClusterSecondaryAntiProtonsPass->SetTitle("Secondary antiprotons");
  TH3D *gHistEtaPhiTPCdEdxNPointsPrimaryProtonsPass = (TH3D *)acceptedList->At(52);
  gHistEtaPhiTPCdEdxNPointsPrimaryProtonsPass->SetTitle("Primary protons");
  TH3D *gHistEtaPhiTPCdEdxNPointsSecondaryProtonsPass = (TH3D *)acceptedList->At(54);
  gHistEtaPhiTPCdEdxNPointsSecondaryProtonsPass->SetTitle("Secondary protons");
  TH3D *gHistEtaPhiTPCdEdxNPointsPrimaryAntiProtonsPass = (TH3D *)acceptedList->At(53);
  gHistEtaPhiTPCdEdxNPointsPrimaryAntiProtonsPass->SetTitle("Primary antiprotons");
  TH3D *gHistEtaPhiTPCdEdxNPointsSecondaryAntiProtonsPass = (TH3D *)acceptedList->At(55);
  gHistEtaPhiTPCdEdxNPointsSecondaryAntiProtonsPass->SetTitle("Secondary antiprotons");
  
  TList *rejectedList = (TList *)f->Get("rejectedCutList");
  TH3D *gHistEtaPhiNClustersPrimaryProtonsReject = (TH3D *)rejectedList->At(0);
  gHistEtaPhiNClustersPrimaryProtonsPass->Add(gHistEtaPhiNClustersPrimaryProtonsReject);
  TH3D *gHistEtaPhiNClustersSecondaryProtonsReject = (TH3D *)rejectedList->At(2);
  gHistEtaPhiNClustersSecondaryProtonsPass->Add(gHistEtaPhiNClustersSecondaryProtonsReject);
  TH3D *gHistEtaPhiNClustersPrimaryAntiProtonsReject = (TH3D *)rejectedList->At(1);
  gHistEtaPhiNClustersPrimaryAntiProtonsPass->Add(gHistEtaPhiNClustersPrimaryAntiProtonsReject);
  TH3D *gHistEtaPhiNClustersSecondaryAntiProtonsReject = (TH3D *)rejectedList->At(3);
  gHistEtaPhiNClustersSecondaryAntiProtonsPass->Add(gHistEtaPhiNClustersSecondaryAntiProtonsReject);
  TH3D *gHistEtaPhiChi2PerTPCClusterPrimaryProtonsReject = (TH3D *)rejectedList->At(4);
  gHistEtaPhiChi2PerTPCClusterPrimaryProtonsPass->Add(gHistEtaPhiChi2PerTPCClusterPrimaryProtonsReject);
  TH3D *gHistEtaPhiChi2PerTPCClusterSecondaryProtonsReject = (TH3D *)rejectedList->At(6);
  gHistEtaPhiChi2PerTPCClusterSecondaryProtonsPass->Add(gHistEtaPhiChi2PerTPCClusterSecondaryProtonsReject);
  TH3D *gHistEtaPhiChi2PerTPCClusterPrimaryAntiProtonsReject = (TH3D *)rejectedList->At(5);
  gHistEtaPhiChi2PerTPCClusterPrimaryAntiProtonsPass->Add(gHistEtaPhiChi2PerTPCClusterPrimaryAntiProtonsReject);
  TH3D *gHistEtaPhiChi2PerTPCClusterSecondaryAntiProtonsReject = (TH3D *)rejectedList->At(7);
  gHistEtaPhiChi2PerTPCClusterSecondaryAntiProtonsPass->Add(gHistEtaPhiChi2PerTPCClusterSecondaryAntiProtonsReject);
  TH3D *gHistEtaPhiTPCdEdxNPointsPrimaryProtonsReject = (TH3D *)rejectedList->At(8);
  gHistEtaPhiTPCdEdxNPointsPrimaryProtonsPass->Add(gHistEtaPhiTPCdEdxNPointsPrimaryProtonsReject);
  TH3D *gHistEtaPhiTPCdEdxNPointsSecondaryProtonsReject = (TH3D *)rejectedList->At(10);
  gHistEtaPhiTPCdEdxNPointsSecondaryProtonsPass->Add(gHistEtaPhiTPCdEdxNPointsSecondaryProtonsReject);
  TH3D *gHistEtaPhiTPCdEdxNPointsPrimaryAntiProtonsReject = (TH3D *)rejectedList->At(9);
  gHistEtaPhiTPCdEdxNPointsPrimaryAntiProtonsPass->Add(gHistEtaPhiTPCdEdxNPointsPrimaryAntiProtonsReject);
  TH3D *gHistEtaPhiTPCdEdxNPointsSecondaryAntiProtonsReject = (TH3D *)rejectedList->At(11);
  gHistEtaPhiTPCdEdxNPointsSecondaryAntiProtonsPass->Add(gHistEtaPhiTPCdEdxNPointsSecondaryAntiProtonsReject);

  //eta-phi
  TCanvas *c21 = new TCanvas("c21",
			     "#eta-#phi",
			     0,0,600,600);
  c21->SetHighLightColor(10); c21->Divide(2,2);
  c21->cd(1)->SetLeftMargin(0.15); c21->cd(1)->SetBottomMargin(0.15);  
  c21->cd(1)->SetRightMargin(0.2);
  ((TH2D *)(gHistEtaPhiNClustersPrimaryProtonsPass->Project3D("yx")))->SetStats(kFALSE);
  ((TH2D *)(gHistEtaPhiNClustersPrimaryProtonsPass->Project3D("yx")))->DrawCopy("colz");
  c21->cd(2)->SetLeftMargin(0.15); c21->cd(2)->SetBottomMargin(0.15);  
  c21->cd(2)->SetRightMargin(0.2);
  ((TH2D *)(gHistEtaPhiNClustersSecondaryProtonsPass->Project3D("yx")))->SetStats(kFALSE);
  ((TH2D *)(gHistEtaPhiNClustersSecondaryProtonsPass->Project3D("yx")))->DrawCopy("colz");
  c21->cd(3)->SetLeftMargin(0.15); c21->cd(3)->SetBottomMargin(0.15);  
  c21->cd(3)->SetRightMargin(0.2);
  ((TH2D *)(gHistEtaPhiNClustersPrimaryAntiProtonsPass->Project3D("yx")))->SetStats(kFALSE);
  ((TH2D *)(gHistEtaPhiNClustersPrimaryAntiProtonsPass->Project3D("yx")))->DrawCopy("colz");
  c21->cd(4)->SetLeftMargin(0.15); c21->cd(4)->SetBottomMargin(0.15);  
  c21->cd(4)->SetRightMargin(0.2);
  ((TH2D *)(gHistEtaPhiNClustersSecondaryAntiProtonsPass->Project3D("yx")))->SetStats(kFALSE);
  ((TH2D *)(gHistEtaPhiNClustersSecondaryAntiProtonsPass->Project3D("yx")))->DrawCopy("colz");
  c21->SaveAs("EtaPhi.gif");

  //eta-Nclusters
  TCanvas *c22 = new TCanvas("c22",
			     "#eta-N_{clusters}",
			     100,100,600,600);
  c22->SetHighLightColor(10); c22->Divide(2,2);
  c22->cd(1)->SetLeftMargin(0.15); c22->cd(1)->SetBottomMargin(0.15);  
  c22->cd(1)->SetRightMargin(0.2);
  ((TH2D *)(gHistEtaPhiNClustersPrimaryProtonsPass->Project3D("zx")))->SetStats(kFALSE);
  ((TH2D *)(gHistEtaPhiNClustersPrimaryProtonsPass->Project3D("zx")))->DrawCopy("colz");
  c22->cd(2)->SetLeftMargin(0.15); c22->cd(2)->SetBottomMargin(0.15);  
  c22->cd(2)->SetRightMargin(0.2);
  ((TH2D *)(gHistEtaPhiNClustersSecondaryProtonsPass->Project3D("zx")))->SetStats(kFALSE);
  ((TH2D *)(gHistEtaPhiNClustersSecondaryProtonsPass->Project3D("zx")))->DrawCopy("colz");
  c22->cd(3)->SetLeftMargin(0.15); c22->cd(3)->SetBottomMargin(0.15);  
  c22->cd(3)->SetRightMargin(0.2);
  ((TH2D *)(gHistEtaPhiNClustersPrimaryAntiProtonsPass->Project3D("zx")))->SetStats(kFALSE);
  ((TH2D *)(gHistEtaPhiNClustersPrimaryAntiProtonsPass->Project3D("zx")))->DrawCopy("colz");
  c22->cd(4)->SetLeftMargin(0.15); c22->cd(4)->SetBottomMargin(0.15);  
  c22->cd(4)->SetRightMargin(0.2);
  ((TH2D *)(gHistEtaPhiNClustersSecondaryAntiProtonsPass->Project3D("zx")))->SetStats(kFALSE);
  ((TH2D *)(gHistEtaPhiNClustersSecondaryAntiProtonsPass->Project3D("zx")))->DrawCopy("colz");
  c22->SaveAs("EtaNClusters.gif");

  //phi-Nclusters
  TCanvas *c23 = new TCanvas("c23",
			     "#phi-N_{clusters}",
			     200,200,600,600);
  c23->SetHighLightColor(10); c23->Divide(2,2);
  c23->cd(1)->SetLeftMargin(0.15); c23->cd(1)->SetBottomMargin(0.15);  
  c23->cd(1)->SetRightMargin(0.2);
  ((TH2D *)(gHistEtaPhiNClustersPrimaryProtonsPass->Project3D("zy")))->SetStats(kFALSE);
  ((TH2D *)(gHistEtaPhiNClustersPrimaryProtonsPass->Project3D("zy")))->DrawCopy("colz");
  c23->cd(2)->SetLeftMargin(0.15); c23->cd(2)->SetBottomMargin(0.15);  
  c23->cd(2)->SetRightMargin(0.2);
  ((TH2D *)(gHistEtaPhiNClustersSecondaryProtonsPass->Project3D("zy")))->SetStats(kFALSE);
  ((TH2D *)(gHistEtaPhiNClustersSecondaryProtonsPass->Project3D("zy")))->DrawCopy("colz");
  c23->cd(3)->SetLeftMargin(0.15); c23->cd(3)->SetBottomMargin(0.15);  
  c23->cd(3)->SetRightMargin(0.2);
  ((TH2D *)(gHistEtaPhiNClustersPrimaryAntiProtonsPass->Project3D("zy")))->SetStats(kFALSE);
  ((TH2D *)(gHistEtaPhiNClustersPrimaryAntiProtonsPass->Project3D("zy")))->DrawCopy("colz");
  c23->cd(4)->SetLeftMargin(0.15); c23->cd(4)->SetBottomMargin(0.15);  
  c23->cd(4)->SetRightMargin(0.2);
  ((TH2D *)(gHistEtaPhiNClustersSecondaryAntiProtonsPass->Project3D("zy")))->SetStats(kFALSE);
  ((TH2D *)(gHistEtaPhiNClustersSecondaryAntiProtonsPass->Project3D("zy")))->DrawCopy("colz");
  c23->SaveAs("PhiNClusters.gif");

  //eta-chi^2 per TPC cluster
  TCanvas *c24 = new TCanvas("c24",
			     "#eta-#chi^{2}/N_{clusters}(TPC)",
			     300,300,600,600);
  c24->SetHighLightColor(10); c24->Divide(2,2);
  c24->cd(1)->SetLeftMargin(0.15); c24->cd(1)->SetBottomMargin(0.15);  
  c24->cd(1)->SetRightMargin(0.2);
  ((TH2D *)(gHistEtaPhiChi2PerTPCClusterPrimaryProtonsPass->Project3D("zx")))->SetStats(kFALSE);
  ((TH2D *)(gHistEtaPhiChi2PerTPCClusterPrimaryProtonsPass->Project3D("zx")))->DrawCopy("colz");
  c24->cd(2)->SetLeftMargin(0.15); c24->cd(2)->SetBottomMargin(0.15);  
  c24->cd(2)->SetRightMargin(0.2);
  ((TH2D *)(gHistEtaPhiChi2PerTPCClusterSecondaryProtonsPass->Project3D("zx")))->SetStats(kFALSE);
  ((TH2D *)(gHistEtaPhiChi2PerTPCClusterSecondaryProtonsPass->Project3D("zx")))->DrawCopy("colz");
  c24->cd(3)->SetLeftMargin(0.15); c24->cd(3)->SetBottomMargin(0.15);  
  c24->cd(3)->SetRightMargin(0.2);
  ((TH2D *)(gHistEtaPhiChi2PerTPCClusterPrimaryAntiProtonsPass->Project3D("zx")))->SetStats(kFALSE);
  ((TH2D *)(gHistEtaPhiChi2PerTPCClusterPrimaryAntiProtonsPass->Project3D("zx")))->DrawCopy("colz");
  c24->cd(4)->SetLeftMargin(0.15); c24->cd(4)->SetBottomMargin(0.15);  
  c24->cd(4)->SetRightMargin(0.2);
  ((TH2D *)(gHistEtaPhiChi2PerTPCClusterSecondaryAntiProtonsPass->Project3D("zx")))->SetStats(kFALSE);
  ((TH2D *)(gHistEtaPhiChi2PerTPCClusterSecondaryAntiProtonsPass->Project3D("zx")))->DrawCopy("colz");
  c24->SaveAs("EtaChi2PerTPCCluster.gif");

  //phi-chi^2 per TPC cluster
  TCanvas *c25 = new TCanvas("c25",
			     "#phi-#chi^{2}/N_{clusters}(TPC)",
			     400,400,600,600);
  c25->SetHighLightColor(10); c25->Divide(2,2);
  c25->cd(1)->SetLeftMargin(0.15); c25->cd(1)->SetBottomMargin(0.15);  
  c25->cd(1)->SetRightMargin(0.2);
  ((TH2D *)(gHistEtaPhiChi2PerTPCClusterPrimaryProtonsPass->Project3D("zy")))->SetStats(kFALSE);
  ((TH2D *)(gHistEtaPhiChi2PerTPCClusterPrimaryProtonsPass->Project3D("zy")))->DrawCopy("colz");
  c25->cd(2)->SetLeftMargin(0.15); c25->cd(2)->SetBottomMargin(0.15);  
  c25->cd(2)->SetRightMargin(0.2);
  ((TH2D *)(gHistEtaPhiChi2PerTPCClusterSecondaryProtonsPass->Project3D("zy")))->SetStats(kFALSE);
  ((TH2D *)(gHistEtaPhiChi2PerTPCClusterSecondaryProtonsPass->Project3D("zy")))->DrawCopy("colz");
  c25->cd(3)->SetLeftMargin(0.15); c25->cd(3)->SetBottomMargin(0.15);  
  c25->cd(3)->SetRightMargin(0.2);
  ((TH2D *)(gHistEtaPhiChi2PerTPCClusterPrimaryAntiProtonsPass->Project3D("zy")))->SetStats(kFALSE);
  ((TH2D *)(gHistEtaPhiChi2PerTPCClusterPrimaryAntiProtonsPass->Project3D("zy")))->DrawCopy("colz");
  c25->cd(4)->SetLeftMargin(0.15); c25->cd(4)->SetBottomMargin(0.15);  
  c25->cd(4)->SetRightMargin(0.2);
  ((TH2D *)(gHistEtaPhiChi2PerTPCClusterSecondaryAntiProtonsPass->Project3D("zy")))->SetStats(kFALSE);
  ((TH2D *)(gHistEtaPhiChi2PerTPCClusterSecondaryAntiProtonsPass->Project3D("zy")))->DrawCopy("colz");
  c25->SaveAs("PhiChi2PerTPCCluster.gif");

   //eta-dE/dx Npoints (TPC)
  TCanvas *c26 = new TCanvas("c26",
			     "#eta-dEdx N_{points}(TPC)",
			     500,500,600,600);
  c26->SetHighLightColor(10); c26->Divide(2,2);
  c26->cd(1)->SetLeftMargin(0.15); c26->cd(1)->SetBottomMargin(0.15);  
  c26->cd(1)->SetRightMargin(0.2);
  ((TH2D *)(gHistEtaPhiTPCdEdxNPointsPrimaryProtonsPass->Project3D("zx")))->SetStats(kFALSE);
  ((TH2D *)(gHistEtaPhiTPCdEdxNPointsPrimaryProtonsPass->Project3D("zx")))->DrawCopy("colz");
  c26->cd(2)->SetLeftMargin(0.15); c26->cd(2)->SetBottomMargin(0.15);  
  c26->cd(2)->SetRightMargin(0.2);
  ((TH2D *)(gHistEtaPhiTPCdEdxNPointsSecondaryProtonsPass->Project3D("zx")))->SetStats(kFALSE);
  ((TH2D *)(gHistEtaPhiTPCdEdxNPointsSecondaryProtonsPass->Project3D("zx")))->DrawCopy("colz");
  c26->cd(3)->SetLeftMargin(0.15); c26->cd(3)->SetBottomMargin(0.15);  
  c26->cd(3)->SetRightMargin(0.2);
  ((TH2D *)(gHistEtaPhiTPCdEdxNPointsPrimaryAntiProtonsPass->Project3D("zx")))->SetStats(kFALSE);
  ((TH2D *)(gHistEtaPhiTPCdEdxNPointsPrimaryAntiProtonsPass->Project3D("zx")))->DrawCopy("colz");
  c26->cd(4)->SetLeftMargin(0.15); c26->cd(4)->SetBottomMargin(0.15);  
  c26->cd(4)->SetRightMargin(0.2);
  ((TH2D *)(gHistEtaPhiTPCdEdxNPointsSecondaryAntiProtonsPass->Project3D("zx")))->SetStats(kFALSE);
  ((TH2D *)(gHistEtaPhiTPCdEdxNPointsSecondaryAntiProtonsPass->Project3D("zx")))->DrawCopy("colz");
  c26->SaveAs("EtadEdxNPointsTPC.gif");

  //phi-dE/dx Npoints (TPC)
  TCanvas *c27 = new TCanvas("c27",
			     "#phi-dEdx N_{points}(TPC)",
			     600,600,600,600);
  c27->SetHighLightColor(10); c27->Divide(2,2);
  c27->cd(1)->SetLeftMargin(0.15); c27->cd(1)->SetBottomMargin(0.15);  
  c27->cd(1)->SetRightMargin(0.2);
  ((TH2D *)(gHistEtaPhiTPCdEdxNPointsPrimaryProtonsPass->Project3D("zy")))->SetStats(kFALSE);
  ((TH2D *)(gHistEtaPhiTPCdEdxNPointsPrimaryProtonsPass->Project3D("zy")))->DrawCopy("colz");
  c27->cd(2)->SetLeftMargin(0.15); c27->cd(2)->SetBottomMargin(0.15);  
  c27->cd(2)->SetRightMargin(0.2);
  ((TH2D *)(gHistEtaPhiTPCdEdxNPointsSecondaryProtonsPass->Project3D("zy")))->SetStats(kFALSE);
  ((TH2D *)(gHistEtaPhiTPCdEdxNPointsSecondaryProtonsPass->Project3D("zy")))->DrawCopy("colz");
  c27->cd(3)->SetLeftMargin(0.15); c27->cd(3)->SetBottomMargin(0.15);  
  c27->cd(3)->SetRightMargin(0.2);
  ((TH2D *)(gHistEtaPhiTPCdEdxNPointsPrimaryAntiProtonsPass->Project3D("zy")))->SetStats(kFALSE);
  ((TH2D *)(gHistEtaPhiTPCdEdxNPointsPrimaryAntiProtonsPass->Project3D("zy")))->DrawCopy("colz");
  c27->cd(4)->SetLeftMargin(0.15); c27->cd(4)->SetBottomMargin(0.15);  
  c27->cd(4)->SetRightMargin(0.2);
  ((TH2D *)(gHistEtaPhiTPCdEdxNPointsSecondaryAntiProtonsPass->Project3D("zy")))->SetStats(kFALSE);
  ((TH2D *)(gHistEtaPhiTPCdEdxNPointsSecondaryAntiProtonsPass->Project3D("zy")))->DrawCopy("colz");
  c27->SaveAs("PhidEdxNPointsTPC.gif");
  
  f->Close();
}

//________________________________________________//
void drawEfficiencies(const char *filename,
		      Bool_t gShowPrimaries = kTRUE,
		      Bool_t gShowWeak = kFALSE,
		      Bool_t gShowHadronic = kFALSE) {
  //Macro to display the reconstruction, cut and pid efficiencies
  gStyle->SetPalette(1,0);
  gStyle->SetCanvasColor(41);
  gStyle->SetFrameFillColor(10);

  TH2F *hEmpty = new TH2F("hEmpty","",100,-1.5,5.0,100,0,120);
  hEmpty->SetStats(kFALSE);
  hEmpty->GetXaxis()->SetTitleColor(1);
  hEmpty->GetXaxis()->SetNdivisions(15);
  hEmpty->GetYaxis()->SetNdivisions(15);
  hEmpty->GetYaxis()->SetTitleOffset(1.4);
  hEmpty->GetYaxis()->SetTitle("#epsilon");

  TLatex *t1 = new TLatex();
  t1->SetTextSize(0.04);

  TPaveText *tpave = new TPaveText();
  tpave->SetFillColor(10);
  Double_t bottomY = 0.0;

  TFile *f = TFile::Open(filename);
  TH1D *gYPrimariesESDProtons = (TH1D *)f->Get("gYPrimariesESDProtons");
  TH1D *gYESDProtonsFromWeak = (TH1D *)f->Get("gYESDProtonsFromWeak");
  TH1D *gYESDProtonsFromHadronic = (TH1D *)f->Get("gYESDProtonsFromHadronic");
  TH1D *gPtPrimariesESDProtons = (TH1D *)f->Get("gPtPrimariesESDProtons");
  TH1D *gPtESDProtonsFromWeak = (TH1D *)f->Get("gPtESDProtonsFromWeak");
  TH1D *gPtESDProtonsFromHadronic = (TH1D *)f->Get("gPtESDProtonsFromHadronic");
  TH1D *gYPrimariesESDAntiProtons = (TH1D *)f->Get("gYPrimariesESDAntiProtons");
  TH1D *gYESDAntiProtonsFromWeak = (TH1D *)f->Get("gYESDAntiProtonsFromWeak");
  TH1D *gYESDAntiProtonsFromHadronic = (TH1D *)f->Get("gYESDAntiProtonsFromHadronic");	
  TH1D *gPtPrimariesESDAntiProtons = (TH1D *)f->Get("gPtPrimariesESDAntiProtons");	
  TH1D *gPtESDAntiProtonsFromWeak = (TH1D *)f->Get("gPtESDAntiProtonsFromWeak");	
  TH1D *gPtESDAntiProtonsFromHadronic = (TH1D *)f->Get("gPtESDAntiProtonsFromHadronic");	
  TH1D *gYESDIdProtons = (TH1D *)f->Get("gHistESDIdYPtProtons_x");
  TH1D *gYESDContamProtons = (TH1D *)f->Get("gHistESDContamYPtProtons_x");
  TH1D *gPtESDIdProtons = (TH1D *)f->Get("gHistESDIdYPtProtons_y");
  TH1D *gPtESDContamProtons = (TH1D *)f->Get("gHistESDContamYPtProtons_y");	

  //Reconstruction efficiencies - protons
  TCanvas *c1 = new TCanvas("c1","Reconstruction efficiencies - Protons",
			    0,0,700,400);
  c1->SetFillColor(41); c1->SetHighLightColor(41);
  c1->Divide(2,1);
  c1->cd(1)->SetLeftMargin(0.15); c1->cd(1)->SetBottomMargin(0.15);
  c1->cd(1)->SetGridx(); c1->cd(1)->SetGridy();
  hEmpty->GetXaxis()->SetRangeUser(gYPrimariesESDProtons->GetXaxis()->GetXmin()-0.1,
				   gYPrimariesESDProtons->GetXaxis()->GetXmax()+0.1);
  hEmpty->GetXaxis()->SetTitle(gYPrimariesESDProtons->GetXaxis()->GetTitle());
  hEmpty->DrawCopy();
  if(gShowPrimaries)
    bottomY = 111.0;
  if(gShowWeak)
    bottomY = 106.0;
  if(gShowHadronic)
    bottomY = 101.0;
  tpave->DrawPave(gYPrimariesESDProtons->GetXaxis()->GetXmin()+0.1,119,
		  gYPrimariesESDProtons->GetXaxis()->GetXmax()-0.1,bottomY);
  if(gShowPrimaries) {
    DrawMarker(gYPrimariesESDProtons->GetXaxis()->GetXmin()+0.2, 115, 20, 1.2, 1);
    t1->DrawLatex(gYPrimariesESDProtons->GetXaxis()->GetXmin()+0.3,113,"Primary p");
    gYPrimariesESDProtons->DrawCopy("ESAME");
  }
  if(gShowWeak) {
    DrawMarker(gYPrimariesESDProtons->GetXaxis()->GetXmin()+0.2, 110, 21, 1.2, 2);
    t1->DrawLatex(gYPrimariesESDProtons->GetXaxis()->GetXmin()+0.3,108,"#Lambda -> p + #pi^{-}");
    gYESDProtonsFromWeak->DrawCopy("ESAME");
  }
  if(gShowHadronic) {
    DrawMarker(gYPrimariesESDProtons->GetXaxis()->GetXmin()+0.2, 105, 22, 1.2, 3);
    t1->DrawLatex(gYPrimariesESDProtons->GetXaxis()->GetXmin()+0.3,103,"X + A -> p + B");
    gYESDProtonsFromHadronic->DrawCopy("ESAME");
  }

  c1->cd(2)->SetLeftMargin(0.15); c1->cd(2)->SetBottomMargin(0.15);
  c1->cd(2)->SetGridx(); c1->cd(2)->SetGridy();
  hEmpty->GetXaxis()->SetRangeUser(gPtPrimariesESDProtons->GetXaxis()->GetXmin()-0.1,
				   gPtPrimariesESDProtons->GetXaxis()->GetXmax()+0.1);
  hEmpty->GetXaxis()->SetTitle(gPtPrimariesESDProtons->GetXaxis()->GetTitle());
  hEmpty->DrawCopy();
  if(gShowPrimaries)
    bottomY = 111.0;
  if(gShowWeak)
    bottomY = 106.0;
  if(gShowHadronic)
    bottomY = 101.0;
  tpave->DrawPave(gPtPrimariesESDProtons->GetXaxis()->GetXmin(),119,
		  gPtPrimariesESDProtons->GetXaxis()->GetXmax(),bottomY);
  if(gShowPrimaries) {
    DrawMarker(gPtPrimariesESDProtons->GetXaxis()->GetXmin()+0.05, 115, 20, 1.2, 1);
    t1->DrawLatex(gPtPrimariesESDProtons->GetXaxis()->GetXmin()+0.15,113,"Primary p");
    gPtPrimariesESDProtons->DrawCopy("ESAME");
  }
  if(gShowWeak) {
    DrawMarker(gPtPrimariesESDProtons->GetXaxis()->GetXmin()+0.05, 110, 21, 1.2, 2);
    t1->DrawLatex(gPtPrimariesESDProtons->GetXaxis()->GetXmin()+0.15,108,"#Lambda -> p + #pi^{-}");
    gPtESDProtonsFromWeak->DrawCopy("ESAME");
  }
  if(gShowHadronic) {
    DrawMarker(gPtPrimariesESDProtons->GetXaxis()->GetXmin()+0.05, 105, 22, 1.2, 3);
    t1->DrawLatex(gPtPrimariesESDProtons->GetXaxis()->GetXmin()+0.15,103,"X + A -> p + B");
    gPtESDProtonsFromHadronic->DrawCopy("ESAME");
  }
  c1->SaveAs("ReconstructionEfficiency-Protons.gif");

  //Reconstruction efficiencies - antiprotons
  TCanvas *c2 = new TCanvas("c2","Reconstruction efficiencies - Antirotons",
			    100,100,700,400);
  c2->SetFillColor(41); c2->SetHighLightColor(41);
  c2->Divide(2,1);
  c2->cd(1)->SetLeftMargin(0.15); c2->cd(1)->SetBottomMargin(0.15);
  c2->cd(1)->SetGridx(); c2->cd(1)->SetGridy();
  hEmpty->GetXaxis()->SetRangeUser(gYPrimariesESDAntiProtons->GetXaxis()->GetXmin()-0.1,
				   gYPrimariesESDAntiProtons->GetXaxis()->GetXmax()+0.1);
  hEmpty->GetXaxis()->SetTitle(gYPrimariesESDAntiProtons->GetXaxis()->GetTitle());
  hEmpty->DrawCopy();
  if(gShowPrimaries)
    bottomY = 111.0;
  if(gShowWeak)
    bottomY = 104.0;
  if(gShowHadronic)
    bottomY = 97.0;
  tpave->DrawPave(gYPrimariesESDAntiProtons->GetXaxis()->GetXmin()+0.1,119,
		  gYPrimariesESDAntiProtons->GetXaxis()->GetXmax()-0.1,bottomY);
  if(gShowPrimaries) {
    DrawMarker(gYPrimariesESDAntiProtons->GetXaxis()->GetXmin()+0.2, 115, 20, 1.2, 1);
    t1->DrawLatex(gYPrimariesESDAntiProtons->GetXaxis()->GetXmin()+0.3,113,"Primary #bar{p}");
    gYPrimariesESDAntiProtons->DrawCopy("ESAME");
  }
  if(gShowWeak) {
    DrawMarker(gYPrimariesESDAntiProtons->GetXaxis()->GetXmin()+0.2, 108, 21, 1.2, 2);
    t1->DrawLatex(gYPrimariesESDAntiProtons->GetXaxis()->GetXmin()+0.3,106,"#bar{#Lambda} -> #bar{p} + #pi^{+}");
    gYESDAntiProtonsFromWeak->DrawCopy("ESAME");
  }
  if(gShowHadronic) {
    DrawMarker(gYPrimariesESDAntiProtons->GetXaxis()->GetXmin()+0.2, 101, 22, 1.2, 3);
    t1->DrawLatex(gYPrimariesESDAntiProtons->GetXaxis()->GetXmin()+0.3,98,"X + A -> #bar{p} + B");
    gYESDAntiProtonsFromHadronic->DrawCopy("ESAME");
  }

  c2->cd(2)->SetLeftMargin(0.15); c2->cd(2)->SetBottomMargin(0.15);
  c2->cd(2)->SetGridx(); c2->cd(2)->SetGridy();
  hEmpty->GetXaxis()->SetRangeUser(gPtPrimariesESDAntiProtons->GetXaxis()->GetXmin()-0.1,
				   gPtPrimariesESDAntiProtons->GetXaxis()->GetXmax()+0.1);
  hEmpty->GetXaxis()->SetTitle(gPtPrimariesESDAntiProtons->GetXaxis()->GetTitle());
  hEmpty->DrawCopy();
  hEmpty->DrawCopy();
  if(gShowPrimaries)
    bottomY = 111.0;
  if(gShowWeak)
    bottomY = 104.0;
  if(gShowHadronic)
    bottomY = 97.0;
  tpave->DrawPave(gPtPrimariesESDAntiProtons->GetXaxis()->GetXmin(),119,
		  gPtPrimariesESDAntiProtons->GetXaxis()->GetXmax(),bottomY);
  if(gShowPrimaries) {
    DrawMarker(gPtPrimariesESDAntiProtons->GetXaxis()->GetXmin()+0.05, 115, 20, 1.2, 1);
    t1->DrawLatex(gPtPrimariesESDAntiProtons->GetXaxis()->GetXmin()+0.15,113,"Primary #bar{p}");
    gPtPrimariesESDAntiProtons->DrawCopy("ESAME");
  }
  if(gShowWeak) {
    DrawMarker(gPtPrimariesESDAntiProtons->GetXaxis()->GetXmin()+0.05, 108, 21, 1.2, 2);
    t1->DrawLatex(gPtPrimariesESDAntiProtons->GetXaxis()->GetXmin()+0.15,106,"#bar{#Lambda} -> #bar{p} + #pi^{+}");
    gPtESDAntiProtonsFromWeak->DrawCopy("ESAME");
  }
  if(gShowHadronic) {
    DrawMarker(gPtPrimariesESDAntiProtons->GetXaxis()->GetXmin()+0.05, 101, 22, 1.2, 3);
    t1->DrawLatex(gPtPrimariesESDAntiProtons->GetXaxis()->GetXmin()+0.15,98,"X + A -> #bar{p} + B");
    gPtESDAntiProtonsFromHadronic->DrawCopy("ESAME");
  }
  c2->SaveAs("ReconstructionEfficiency-AntiProtons.gif");

  //PID efficiencies - (anti)protons
  TCanvas *c3 = new TCanvas("c3","PID efficiencies",
			    200,200,700,400);
  c3->SetFillColor(41); c3->SetHighLightColor(41);
  c3->Divide(2,1);
  c3->cd(1)->SetLeftMargin(0.15); c3->cd(1)->SetBottomMargin(0.15);
  c3->cd(1)->SetGridx(); c3->cd(1)->SetGridy();
  hEmpty->GetXaxis()->SetRangeUser(gYPrimariesESDProtons->GetXaxis()->GetXmin()-0.1,
				   gYPrimariesESDProtons->GetXaxis()->GetXmax()+0.1);
  hEmpty->GetXaxis()->SetTitle(gYPrimariesESDProtons->GetXaxis()->GetTitle());
  hEmpty->DrawCopy();
  tpave->DrawPave(gYPrimariesESDProtons->GetXaxis()->GetXmin()+0.1,119,
		  gYPrimariesESDProtons->GetXaxis()->GetXmax()-0.1,104);
  gYESDIdProtons->DrawCopy("ESAME");
  gYESDContamProtons->DrawCopy("ESAME");
  DrawMarker(gYPrimariesESDProtons->GetXaxis()->GetXmin()+0.2, 115, 20, 1.2, 1);
  t1->DrawLatex(gYPrimariesESDProtons->GetXaxis()->GetXmin()+0.3,113,"Efficiency");
  DrawMarker(gYPrimariesESDProtons->GetXaxis()->GetXmin()+0.2, 108, 24, 1.2, 1);
  t1->DrawLatex(gYPrimariesESDProtons->GetXaxis()->GetXmin()+0.3,106,"Contamination");
 
  c3->cd(2)->SetLeftMargin(0.15); c3->cd(2)->SetBottomMargin(0.15);
  c3->cd(2)->SetGridx(); c3->cd(2)->SetGridy();
  hEmpty->GetXaxis()->SetRangeUser(gPtPrimariesESDProtons->GetXaxis()->GetXmin()-0.1,
				   gPtPrimariesESDProtons->GetXaxis()->GetXmax()+0.1);
  hEmpty->GetXaxis()->SetTitle(gPtPrimariesESDProtons->GetXaxis()->GetTitle());
  hEmpty->DrawCopy();
  tpave->DrawPave(gPtPrimariesESDProtons->GetXaxis()->GetXmin(),119,
		  gPtPrimariesESDProtons->GetXaxis()->GetXmax(),104);
  gPtESDIdProtons->DrawCopy("ESAME");
  gPtESDContamProtons->DrawCopy("ESAME");
  DrawMarker(gPtPrimariesESDProtons->GetXaxis()->GetXmin()+0.05, 115, 20, 1.2, 1);
  t1->DrawLatex(gPtPrimariesESDProtons->GetXaxis()->GetXmin()+0.15,113,"Efficiency");
  DrawMarker(gPtPrimariesESDProtons->GetXaxis()->GetXmin()+0.05, 108, 24, 1.2, 1);
  t1->DrawLatex(gPtPrimariesESDProtons->GetXaxis()->GetXmin()+0.15,106,"Contamination");
  c3->SaveAs("PIDEfficiency-Protons.gif");
}

//________________________________________________//
void compareEfficiencies(const char *filenameTPC,
			 const char *filenameHybrid,
			 Bool_t gShowPrimaries = kTRUE,
			 Bool_t gShowWeak = kFALSE,
			 Bool_t gShowHadronic = kFALSE) {
  //Function to compare the reconstruction efficiencies between two methods:
  //e.g. TPC standalone and global tracking
  gStyle->SetPalette(1,0);
  gStyle->SetCanvasColor(41);
  gStyle->SetFrameFillColor(10);

  TH2F *hEmpty = new TH2F("hEmpty","",100,-1.5,2.0,100,0,120);
  hEmpty->SetStats(kFALSE);
  hEmpty->GetXaxis()->SetTitleColor(1);
  hEmpty->GetXaxis()->SetNdivisions(15);
  hEmpty->GetYaxis()->SetNdivisions(15);
  hEmpty->GetYaxis()->SetTitleOffset(1.4);
  hEmpty->GetYaxis()->SetTitle("#epsilon");

  TLatex *t1 = new TLatex();
  t1->SetTextSize(0.04);

  TPaveText *tpave = new TPaveText();
  tpave->SetFillColor(10);
  Double_t bottomY = 0.0;

  //TPC standalone
  TFile *f1 = TFile::Open(filenameTPC);
  TH1D *g1YPrimariesESDProtons = (TH1D *)f1->Get("gYPrimariesESDProtons");
  TH1D *g1YESDProtonsFromWeak = (TH1D *)f1->Get("gYESDProtonsFromWeak");
  TH1D *g1YESDProtonsFromHadronic = (TH1D *)f1->Get("gYESDProtonsFromHadronic");
  TH1D *g1PtPrimariesESDProtons = (TH1D *)f1->Get("gPtPrimariesESDProtons");
  TH1D *g1PtESDProtonsFromWeak = (TH1D *)f1->Get("gPtESDProtonsFromWeak");
  TH1D *g1PtESDProtonsFromHadronic = (TH1D *)f1->Get("gPtESDProtonsFromHadronic");
  TH1D *g1YPrimariesESDAntiProtons = (TH1D *)f1->Get("gYPrimariesESDAntiProtons");
  TH1D *g1YESDAntiProtonsFromWeak = (TH1D *)f1->Get("gYESDAntiProtonsFromWeak");
  TH1D *g1YESDAntiProtonsFromHadronic = (TH1D *)f1->Get("gYESDAntiProtonsFromHadronic");	
  TH1D *g1PtPrimariesESDAntiProtons = (TH1D *)f1->Get("gPtPrimariesESDAntiProtons");	
  TH1D *g1PtESDAntiProtonsFromWeak = (TH1D *)f1->Get("gPtESDAntiProtonsFromWeak");	
  TH1D *g1PtESDAntiProtonsFromHadronic = (TH1D *)f1->Get("gPtESDAntiProtonsFromHadronic");	

  //Global tracking
  TFile *f2 = TFile::Open(filenameHybrid);
  TH1D *g2YPrimariesESDProtons = (TH1D *)f2->Get("gYPrimariesESDProtons");
  TH1D *g2YESDProtonsFromWeak = (TH1D *)f2->Get("gYESDProtonsFromWeak");
  TH1D *g2YESDProtonsFromHadronic = (TH1D *)f2->Get("gYESDProtonsFromHadronic");
  TH1D *g2PtPrimariesESDProtons = (TH1D *)f2->Get("gPtPrimariesESDProtons");
  TH1D *g2PtESDProtonsFromWeak = (TH1D *)f2->Get("gPtESDProtonsFromWeak");
  TH1D *g2PtESDProtonsFromHadronic = (TH1D *)f2->Get("gPtESDProtonsFromHadronic");
  TH1D *g2YPrimariesESDAntiProtons = (TH1D *)f2->Get("gYPrimariesESDAntiProtons");
  TH1D *g2YESDAntiProtonsFromWeak = (TH1D *)f2->Get("gYESDAntiProtonsFromWeak");
  TH1D *g2YESDAntiProtonsFromHadronic = (TH1D *)f2->Get("gYESDAntiProtonsFromHadronic");	
  TH1D *g2PtPrimariesESDAntiProtons = (TH1D *)f2->Get("gPtPrimariesESDAntiProtons");	
  TH1D *g2PtESDAntiProtonsFromWeak = (TH1D *)f2->Get("gPtESDAntiProtonsFromWeak");	
  TH1D *g2PtESDAntiProtonsFromHadronic = (TH1D *)f2->Get("gPtESDAntiProtonsFromHadronic");	

  //Reconstruction efficiencies - protons
  TCanvas *c1 = new TCanvas("c1","Reconstruction efficiencies - Protons",
			    0,0,700,400);
  c1->SetFillColor(41); c1->SetHighLightColor(41);
  c1->Divide(2,1);
  c1->cd(1)->SetLeftMargin(0.15); c1->cd(1)->SetBottomMargin(0.15);
  c1->cd(1)->SetGridx(); c1->cd(1)->SetGridy();
  hEmpty->GetXaxis()->SetRangeUser(-1.1,1.1);
  hEmpty->GetXaxis()->SetTitle("#eta");
  hEmpty->DrawCopy();
  if(gShowPrimaries)
    bottomY = 106.0;
  if(gShowWeak)
    bottomY = 99.0;
  if(gShowHadronic)
    bottomY = 92.0;
  tpave->DrawPave(-0.4,119,1.1,bottomY);
  t1->DrawLatex(-0.3,113,"TPC");
  t1->DrawLatex(0.0,113,"Global");
  if(gShowPrimaries) {
    DrawMarker(-0.15, 110, 20, 1.2, 1);
    DrawMarker(0.15, 110, 24, 1.2, 1);
    t1->DrawLatex(0.35,108,"Primary p");
    g1YPrimariesESDProtons->DrawCopy("ESAME");
    g2YPrimariesESDProtons->SetMarkerStyle(24);
    g2YPrimariesESDProtons->DrawCopy("ESAME");
  }
  if(gShowWeak) {
    DrawMarker(-0.15, 103, 21, 1.2, 2);
    DrawMarker(0.15, 103, 25, 1.2, 2);
    t1->DrawLatex(0.35,101,"#Lambda -> p + #pi^{-}");
    g1YESDProtonsFromWeak->DrawCopy("ESAME");
    g2YESDProtonsFromWeak->SetMarkerStyle(25);
    g2YESDProtonsFromWeak->DrawCopy("ESAME");
  }
  if(gShowHadronic) {
    DrawMarker(-0.15, 96, 22, 1.2, 3);
    DrawMarker(0.15, 96, 26, 1.2, 3);
    t1->DrawLatex(0.35,94,"X + A -> p + B");
    g1YESDProtonsFromHadronic->DrawCopy("ESAME");
    g2YESDProtonsFromHadronic->SetMarkerStyle(26);
    g2YESDProtonsFromHadronic->DrawCopy("ESAME");
  }

  c1->cd(2)->SetLeftMargin(0.15); c1->cd(2)->SetBottomMargin(0.15);
  c1->cd(2)->SetGridx(); c1->cd(2)->SetGridy();
  hEmpty->GetXaxis()->SetRangeUser(0.0,1.7);
  hEmpty->GetXaxis()->SetTitle("P_{T} [GeV/c]");
  hEmpty->DrawCopy();
  if(gShowPrimaries)
    bottomY = 106.0;
  if(gShowWeak)
    bottomY = 99.0;
  if(gShowHadronic)
    bottomY = 92.0;
  tpave->DrawPave(0.05,119,1.2,bottomY);
  t1->DrawLatex(0.1,113,"TPC");
  t1->DrawLatex(0.3,113,"Global");
  if(gShowPrimaries) {
    DrawMarker(0.15, 110, 20, 1.2, 1);
    DrawMarker(0.4, 110, 24, 1.2, 1);
    t1->DrawLatex(0.6,108,"Primary p");
    g1PtPrimariesESDProtons->DrawCopy("ESAME");
    g2PtPrimariesESDProtons->SetMarkerStyle(24);
    g2PtPrimariesESDProtons->DrawCopy("ESAME");
  }
  if(gShowWeak) {
    DrawMarker(0.15, 103, 21, 1.2, 2);
    DrawMarker(0.4, 103, 25, 1.2, 2);
    t1->DrawLatex(0.6,101,"#Lambda -> p + #pi^{-}");
    g1PtESDProtonsFromWeak->DrawCopy("ESAME");
    g2PtESDProtonsFromWeak->SetMarkerStyle(25);
    g2PtESDProtonsFromWeak->DrawCopy("ESAME");
  }
  if(gShowHadronic) {
    DrawMarker(0.15, 96, 22, 1.2, 3);
    DrawMarker(0.4, 96, 26, 1.2, 3);
    t1->DrawLatex(0.6,94,"X + A -> p + B");
    g1PtESDProtonsFromHadronic->DrawCopy("ESAME");
    g2PtESDProtonsFromHadronic->SetMarkerStyle(26);
    g2PtESDProtonsFromHadronic->DrawCopy("ESAME");
  }
  c1->SaveAs("ReconstructionEfficiency-Protons.gif");

  //Reconstruction efficiencies - antiprotons
  TCanvas *c2 = new TCanvas("c2","Reconstruction efficiencies - Antirotons",
			    100,100,700,400);
  c2->SetFillColor(41); c2->SetHighLightColor(41);
  c2->Divide(2,1);
  c2->cd(1)->SetLeftMargin(0.15); c2->cd(1)->SetBottomMargin(0.15);
  c2->cd(1)->SetGridx(); c2->cd(1)->SetGridy();
  hEmpty->GetXaxis()->SetRangeUser(-1.1,1.1);
  hEmpty->GetXaxis()->SetTitle("#eta");
  hEmpty->DrawCopy();
  if(gShowPrimaries)
    bottomY = 106.0;
  if(gShowWeak)
    bottomY = 99.0;
  if(gShowHadronic)
    bottomY = 92.0;
  tpave->DrawPave(-0.4,119,1.1,bottomY);
  t1->DrawLatex(-0.3,113,"TPC");
  t1->DrawLatex(0.0,113,"Global");
  if(gShowPrimaries) {
    DrawMarker(-0.15, 110, 20, 1.2, 1);
    DrawMarker(0.15, 110, 24, 1.2, 1);
    t1->DrawLatex(0.35,108,"Primary #bar{p}");
    g1YPrimariesESDAntiProtons->DrawCopy("ESAME");
    g2YPrimariesESDAntiProtons->SetMarkerStyle(24);
    g2YPrimariesESDAntiProtons->DrawCopy("ESAME");
  }
  if(gShowWeak) {
    DrawMarker(-0.15, 103, 21, 1.2, 2);
    DrawMarker(0.15, 103, 25, 1.2, 2);
    t1->DrawLatex(0.35,101,"#bar{#Lambda} -> #bar{p} + #pi^{+}");
    g1YESDAntiProtonsFromWeak->DrawCopy("ESAME");
    g2YESDAntiProtonsFromWeak->SetMarkerStyle(25);
    g2YESDAntiProtonsFromWeak->DrawCopy("ESAME");
  }
  if(gShowHadronic) {
    DrawMarker(-0.15, 96, 22, 1.2, 3);
    DrawMarker(0.15, 96, 26, 1.2, 3);
    t1->DrawLatex(0.35,94,"X + A -> #bar{p} + B");
    g1YESDAntiProtonsFromHadronic->DrawCopy("ESAME");
    g2YESDAntiProtonsFromHadronic->SetMarkerStyle(26);
    g2YESDAntiProtonsFromHadronic->DrawCopy("ESAME");
  }

  c2->cd(2)->SetLeftMargin(0.15); c2->cd(2)->SetBottomMargin(0.15);
  c2->cd(2)->SetGridx(); c2->cd(2)->SetGridy();
  hEmpty->GetXaxis()->SetRangeUser(0.0,1.7);
  hEmpty->GetXaxis()->SetTitle("P_{T} [GeV/c]");
  hEmpty->DrawCopy();
  if(gShowPrimaries)
    bottomY = 106.0;
  if(gShowWeak)
    bottomY = 99.0;
  if(gShowHadronic)
    bottomY = 92.0;
  tpave->DrawPave(0.05,119,1.2,bottomY);
  t1->DrawLatex(0.1,113,"TPC");
  t1->DrawLatex(0.3,113,"Global");
  if(gShowPrimaries) {
    DrawMarker(0.15, 110, 20, 1.2, 1);
    DrawMarker(0.4, 110, 24, 1.2, 1);
    t1->DrawLatex(0.6,108,"Primary #bar{p}");
    g1PtPrimariesESDAntiProtons->DrawCopy("ESAME");
    g2PtPrimariesESDAntiProtons->SetMarkerStyle(24);
    g2PtPrimariesESDAntiProtons->DrawCopy("ESAME");
  }
  if(gShowWeak) {
    DrawMarker(0.15, 103, 21, 1.2, 2);
    DrawMarker(0.4, 103, 25, 1.2, 2);
    t1->DrawLatex(0.6,101,"#bar{#Lambda} -> #bar{p} + #pi^{+}");
    g1PtESDAntiProtonsFromWeak->DrawCopy("ESAME");
    g2PtESDAntiProtonsFromWeak->SetMarkerStyle(25);
    g2PtESDAntiProtonsFromWeak->DrawCopy("ESAME");
  }
  if(gShowHadronic) {
    DrawMarker(0.15, 96, 22, 1.2, 3);
    DrawMarker(0.4, 96, 26, 1.2, 3);
    t1->DrawLatex(0.6,94,"X + A -> #bar{p} + B");
    g1PtESDAntiProtonsFromHadronic->DrawCopy("ESAME");
    g2PtESDAntiProtonsFromHadronic->SetMarkerStyle(26);
    g2PtESDAntiProtonsFromHadronic->DrawCopy("ESAME");
  }
  c2->SaveAs("ReconstructionEfficiency-AntiProtons.gif");

}

//________________________________________________//
void drawCutParametersDistributions(const char* filename = "Protons.QA.Histograms.root") {
  //macro that takes as an input the third file 
  //created by the proton QA analysis task 
  //and draws the DCA distributions of protons 
  //and antiprotons (both primary & secondaries)
  const Int_t nEvents = 1;
  gStyle->SetPalette(1,0);

  TFile *f = TFile::Open(filename);

  //cut list
  TH1F *gCutListHistograms[100];
  TList *listCut = (TList *)f->Get("acceptedCutList");
  Int_t iCounter = 0;
  cout<<"Cut list entries: "<<listCut->GetEntries()<<endl;
  for(Int_t iEntry = 0; iEntry < listCut->GetEntries(); iEntry++) {
    if(iCounter == 4) iCounter = 0;
    iCounter += 1;
    gCutListHistograms[iEntry] = (TH1F *)listCut->At(iEntry);
    gCutListHistograms[iEntry]->Scale(1./nEvents);
    if(iCounter < 3) {
      gCutListHistograms[iEntry]->SetFillColor(4);
      gCutListHistograms[iEntry]->SetMarkerColor(4);
      gCutListHistograms[iEntry]->SetMarkerStyle(20);
    }
    else {
      gCutListHistograms[iEntry]->SetFillColor(kOrange+1);
      gCutListHistograms[iEntry]->SetMarkerColor(kOrange+1);
      gCutListHistograms[iEntry]->SetMarkerStyle(29);
    }
    /*cout<<"Entry: "<<iEntry<<
      " - Counter: "<<iCounter<<
      " - Name: "<<gCutListHistograms[iEntry]->GetName()<<endl;*/
  }

  //DCA list
  TH1F *gDCAListHistograms[20];
  TList *listDCA = (TList *)f->Get("acceptedDCAList");
  iCounter = 0;
  Int_t nDCAHistos1D = 12;
  cout<<"DCA list entries: "<<listDCA->GetEntries()<<endl;
  for(Int_t iEntry = 0; iEntry < nDCAHistos1D; iEntry++) {
    if(iCounter == 4) iCounter = 0;
    iCounter += 1;
    gDCAListHistograms[iEntry] = (TH1F *)listDCA->At(iEntry);
    gDCAListHistograms[iEntry]->Scale(1./nEvents);
    if(iCounter < 3) {
      gDCAListHistograms[iEntry]->SetFillColor(4);
      gDCAListHistograms[iEntry]->SetMarkerColor(4);
      gDCAListHistograms[iEntry]->SetMarkerStyle(20);
    }
    else {
      gDCAListHistograms[iEntry]->SetFillColor(kOrange+1);
      gDCAListHistograms[iEntry]->SetMarkerColor(kOrange+1);
      gDCAListHistograms[iEntry]->SetMarkerStyle(29);
    }
    /*cout<<"Entry: "<<iEntry<<
      " - Counter: "<<iCounter<<
      " - Name: "<<gDCAListHistograms[iEntry]->GetName()<<endl;*/
  }

  TH3F *gDCAListHistograms3D[20];
  TList *listDCA3D = new TList();
  Int_t nDCAHistos2D = 12;
  for(Int_t iEntry = nDCAHistos1D; iEntry < 2*nDCAHistos2D; iEntry++) {
    gDCAListHistograms3D[iEntry-nDCAHistos1D] = dynamic_cast<TH3F *>(listDCA->At(iEntry));
    listDCA3D->Add(gDCAListHistograms3D[iEntry-nDCAHistos1D]);
  }
  
  //_________________________________________________________//
  TF1 *gDCA = new TF1("gDCA",
		      "[0]*TMath::Power(1+TMath::Exp((x-[1])/[2]),-1)",
		      0.1,100.0);
  gDCA->SetParameter(0,1.74221e+07);
  gDCA->SetParameter(1,-1.12221e+01);
  gDCA->SetParameter(2,1.02726);
  //_________________________________________________________//
  TH2F *hEmpty = new TH2F("hEmpty","",300,-100,200,100,1e-01,1e+06);
  hEmpty->GetYaxis()->SetTitle("Entries/Event");
  hEmpty->GetYaxis()->SetNdivisions(10);
  hEmpty->GetXaxis()->SetNdivisions(10);
  hEmpty->SetStats(kFALSE);
  //_________________________________________________________//

  //Cut parameters
  TCanvas *c1 = new TCanvas("c1","ITS Cluster map",0,0,650,350);
  c1->SetFillColor(10); c1->GetFrame()->SetFillColor(10);
  c1->SetHighLightColor(10); c1->Divide(2,1);
  c1->cd(1)->SetBottomMargin(0.2); c1->cd(1)->SetLeftMargin(0.2);
  c1->cd(1)->SetLogy();
  hEmpty->GetXaxis()->SetTitle("ITS layer");
  hEmpty->GetXaxis()->SetRangeUser(0.0,7.0);
  hEmpty->SetTitle("Protons");
  hEmpty->DrawCopy();
  gCutListHistograms[0]->Draw("ESAME");
  gCutListHistograms[2]->Draw("ESAME");
  c1->cd(2)->SetBottomMargin(0.2); c1->cd(2)->SetLeftMargin(0.2);
  c1->cd(2)->SetLogy();
  hEmpty->GetXaxis()->SetTitle("ITS layer");
  hEmpty->GetXaxis()->SetRangeUser(0.0,7.0);
  hEmpty->SetTitle("Antiprotons");
  hEmpty->DrawCopy();
  gCutListHistograms[1]->Draw("ESAME");
  gCutListHistograms[3]->Draw("ESAME");
  c1->SaveAs("ITSClusterMap.gif");

  TCanvas *c2 = new TCanvas("c2","Number of ITS Clusters",50,50,650,350);
  c2->SetFillColor(10); c2->GetFrame()->SetFillColor(10);
  c2->SetHighLightColor(10); c2->Divide(2,1);
  c2->cd(1)->SetBottomMargin(0.2); c2->cd(1)->SetLeftMargin(0.2);
  c2->cd(1)->SetLogy();
  hEmpty->GetXaxis()->SetTitle("N_{clusters}(ITS)");
  hEmpty->GetXaxis()->SetRangeUser(0.0,7.0);
  hEmpty->SetTitle("Protons");
  hEmpty->DrawCopy();
  gCutListHistograms[4]->Draw("ESAME");
  gCutListHistograms[6]->Draw("ESAME");
  c2->cd(2)->SetBottomMargin(0.2); c2->cd(2)->SetLeftMargin(0.2);
  c2->cd(2)->SetLogy();
  hEmpty->GetXaxis()->SetTitle("N_{clusters}(ITS)");
  hEmpty->GetXaxis()->SetRangeUser(0.0,7.0);
  hEmpty->SetTitle("Antiprotons");
  hEmpty->DrawCopy();
  gCutListHistograms[5]->Draw("ESAME");
  gCutListHistograms[7]->Draw("ESAME");
  c2->SaveAs("NITSClusters.gif");

  TCanvas *c3 = new TCanvas("c3","Chi2 per ITS cluster",100,100,650,350);
  c3->SetFillColor(10); c3->GetFrame()->SetFillColor(10);
  c3->SetHighLightColor(10); c3->Divide(2,1);
  c3->cd(1)->SetBottomMargin(0.2); c3->cd(1)->SetLeftMargin(0.2);
  c3->cd(1)->SetLogy();
  hEmpty->GetXaxis()->SetTitle("#chi^{2}/N_{clusters}(ITS)");
  hEmpty->GetXaxis()->SetRangeUser(0.0,20.0);
  hEmpty->SetTitle("Protons");
  hEmpty->DrawCopy();
  gCutListHistograms[8]->Draw("ESAME");
  gCutListHistograms[10]->Draw("ESAME");
  c3->cd(2)->SetBottomMargin(0.2); c3->cd(2)->SetLeftMargin(0.2);
  c3->cd(2)->SetLogy();
  hEmpty->GetXaxis()->SetTitle("#chi^{2}/N_{clusters}(ITS)");
  hEmpty->GetXaxis()->SetRangeUser(0.0,20.0);
  hEmpty->SetTitle("AntiPpotons");
  hEmpty->DrawCopy();
  gCutListHistograms[9]->Draw("ESAME");
  gCutListHistograms[11]->Draw("ESAME");
  c3->SaveAs("Chi2PerITSCluster.gif");

  TCanvas *c4 = new TCanvas("c4","Constrain chi2 - vertex",150,150,650,350);
  c4->SetFillColor(10); c4->GetFrame()->SetFillColor(10);
  c4->SetHighLightColor(10); c4->Divide(2,1);
  c4->cd(1)->SetBottomMargin(0.2); c4->cd(1)->SetLeftMargin(0.2);
  c4->cd(1)->SetLogy();
  hEmpty->GetXaxis()->SetTitle("log_{10}(#chi^{2}) (vertex)");
  hEmpty->GetXaxis()->SetRangeUser(-10.0,10.0);
  hEmpty->SetTitle("Protons");
  hEmpty->DrawCopy();
  gCutListHistograms[12]->Draw("ESAME");
  gCutListHistograms[14]->Draw("ESAME");
  c4->cd(2)->SetBottomMargin(0.2); c4->cd(2)->SetLeftMargin(0.2);
  c4->cd(2)->SetLogy();
  hEmpty->GetXaxis()->SetTitle("log_{10}(#chi^{2}) (vertex )");
  hEmpty->GetXaxis()->SetRangeUser(-10.0,10.0);
  hEmpty->SetTitle("Antiprotons");
  hEmpty->DrawCopy();
  gCutListHistograms[13]->Draw("ESAME");
  gCutListHistograms[15]->Draw("ESAME");
  c4->SaveAs("ConstrainChi2Vertex.gif");

  TCanvas *c5 = new TCanvas("c5","Number of TPC Clusters",200,200,650,350);
  c5->SetFillColor(10); c5->GetFrame()->SetFillColor(10);
  c5->SetHighLightColor(10); c5->Divide(2,1);
  c5->cd(1)->SetBottomMargin(0.2); c5->cd(1)->SetLeftMargin(0.2);
  c5->cd(1)->SetLogy();
  hEmpty->GetXaxis()->SetTitle("N_{clusters}(TPC");
  hEmpty->GetXaxis()->SetRangeUser(0.0,200.0);
  hEmpty->SetTitle("Protons");
  hEmpty->DrawCopy();
  gCutListHistograms[16]->Draw("ESAME");
  gCutListHistograms[18]->Draw("ESAME");
  c5->cd(2)->SetBottomMargin(0.2); c5->cd(2)->SetLeftMargin(0.2);
  c5->cd(2)->SetLogy();
  hEmpty->GetXaxis()->SetTitle("N_{clusters}(TPC");
  hEmpty->GetXaxis()->SetRangeUser(0.0,200.0);
  hEmpty->SetTitle("Antiprotons");
  hEmpty->DrawCopy();
  gCutListHistograms[17]->Draw("ESAME");
  gCutListHistograms[19]->Draw("ESAME");
  c5->SaveAs("NTPCClusters.gif");

  TCanvas *c6 = new TCanvas("c6","Chi2 per TPC cluster",250,250,650,350);
  c6->SetFillColor(10); c6->GetFrame()->SetFillColor(10);
  c6->SetHighLightColor(10); c6->Divide(2,1);
  c6->cd(1)->SetBottomMargin(0.2); c6->cd(1)->SetLeftMargin(0.2);
  c6->cd(1)->SetLogy();
  hEmpty->GetXaxis()->SetTitle("#chi^{2}/N_{clusters}(TPC)");
  hEmpty->GetXaxis()->SetRangeUser(0.0,4.0);
  hEmpty->SetTitle("Protons");
  hEmpty->DrawCopy();
  gCutListHistograms[20]->Draw("ESAME");
  gCutListHistograms[22]->Draw("ESAME");
  c6->cd(2)->SetBottomMargin(0.2); c6->cd(2)->SetLeftMargin(0.2);
  c6->cd(2)->SetLogy();
  hEmpty->GetXaxis()->SetTitle("#chi^{2}/N_{clusters}(TPC)");
  hEmpty->GetXaxis()->SetRangeUser(0.0,4.0);
  hEmpty->SetTitle("Antiprotons");
  hEmpty->DrawCopy();
  gCutListHistograms[21]->Draw("ESAME");
  gCutListHistograms[23]->Draw("ESAME");
  c6->SaveAs("Chi2PerTPCCluster.gif");

  TCanvas *c7 = new TCanvas("c7","Covariance matrix 11",300,300,650,350);
  c7->SetFillColor(10); c7->GetFrame()->SetFillColor(10);
  c7->SetHighLightColor(10); c7->Divide(2,1);
  c7->cd(1)->SetBottomMargin(0.2); c7->cd(1)->SetLeftMargin(0.2);
  c7->cd(1)->SetLogy();
  hEmpty->GetXaxis()->SetTitle("#sigma_{y} [cm]");
  hEmpty->GetXaxis()->SetRangeUser(0.0,4.0);
  hEmpty->SetTitle("Protons");
  hEmpty->DrawCopy();
  gCutListHistograms[24]->Draw("ESAME");
  gCutListHistograms[26]->Draw("ESAME");
  c7->cd(2)->SetBottomMargin(0.2); c7->cd(2)->SetLeftMargin(0.2);
  c7->cd(2)->SetLogy();
  hEmpty->GetXaxis()->SetTitle("#sigma_{y} [cm]");
  hEmpty->GetXaxis()->SetRangeUser(0.0,4.0);
  hEmpty->SetTitle("Antiprotons");
  hEmpty->DrawCopy();
  gCutListHistograms[25]->Draw("ESAME");
  gCutListHistograms[27]->Draw("ESAME");
  c7->SaveAs("Cov11.gif");

  TCanvas *c8 = new TCanvas("c8","Covariance matrix 22",350,350,650,350);
  c8->SetFillColor(10); c8->GetFrame()->SetFillColor(10);
  c8->SetHighLightColor(10); c8->Divide(2,1);
  c8->cd(1)->SetBottomMargin(0.2); c8->cd(1)->SetLeftMargin(0.2);
  c8->cd(1)->SetLogy();
  hEmpty->GetXaxis()->SetTitle("#sigma_{z} [cm]");
  hEmpty->GetXaxis()->SetRangeUser(0.0,4.0);
  hEmpty->SetTitle("Protons");
  hEmpty->DrawCopy();
  gCutListHistograms[28]->Draw("ESAME");
  gCutListHistograms[30]->Draw("ESAME");
  c8->cd(2)->SetBottomMargin(0.2); c8->cd(2)->SetLeftMargin(0.2);
  c8->cd(2)->SetLogy();
  hEmpty->GetXaxis()->SetTitle("#sigma_{z} [cm]");
  hEmpty->GetXaxis()->SetRangeUser(0.0,4.0);
  hEmpty->SetTitle("Antiprotons");
  hEmpty->DrawCopy();
  gCutListHistograms[29]->Draw("ESAME");
  gCutListHistograms[31]->Draw("ESAME");
  c8->SaveAs("Cov22.gif");

  TCanvas *c9 = new TCanvas("c9","Covariance matrix 33",400,400,650,350);
  c9->SetFillColor(10); c9->GetFrame()->SetFillColor(10);
  c9->SetHighLightColor(10); c9->Divide(2,1);
  c9->cd(1)->SetBottomMargin(0.2); c9->cd(1)->SetLeftMargin(0.2);
  c9->cd(1)->SetLogy();
  hEmpty->GetXaxis()->SetTitle("#sigma_{sin(#phi)}");
  hEmpty->GetXaxis()->SetRangeUser(0.0,4.0);
  hEmpty->SetTitle("Protons");
  hEmpty->DrawCopy();
  gCutListHistograms[32]->Draw("ESAME");
  gCutListHistograms[34]->Draw("ESAME");
  c9->cd(2)->SetBottomMargin(0.2); c9->cd(2)->SetLeftMargin(0.2);
  c9->cd(2)->SetLogy();
  hEmpty->GetXaxis()->SetTitle("#sigma_{sin(#phi)}");
  hEmpty->GetXaxis()->SetRangeUser(0.0,4.0);
  hEmpty->SetTitle("Antiprotons");
  hEmpty->DrawCopy();
  gCutListHistograms[33]->Draw("ESAME");
  gCutListHistograms[35]->Draw("ESAME");
  c9->SaveAs("Cov33.gif");

  TCanvas *c10 = new TCanvas("c10","Covariance matrix 44",450,450,650,350);
  c10->SetFillColor(10); c10->GetFrame()->SetFillColor(10);
  c10->SetHighLightColor(10); c10->Divide(2,1);
  c10->cd(1)->SetBottomMargin(0.2); c10->cd(1)->SetLeftMargin(0.2);
  c10->cd(1)->SetLogy();
  hEmpty->GetXaxis()->SetTitle("#sigma_{tan(#lambda)}");
  hEmpty->GetXaxis()->SetRangeUser(0.0,4.0);
  hEmpty->SetTitle("Protons");
  hEmpty->DrawCopy();
  gCutListHistograms[36]->Draw("ESAME");
  gCutListHistograms[38]->Draw("ESAME");
  c10->cd(2)->SetBottomMargin(0.2); c10->cd(2)->SetLeftMargin(0.2);
  c10->cd(2)->SetLogy();
  hEmpty->GetXaxis()->SetTitle("#sigma_{tan(#lambda)}");
  hEmpty->GetXaxis()->SetRangeUser(0.0,4.0);
  hEmpty->SetTitle("Antiprotons");
  hEmpty->DrawCopy();
  gCutListHistograms[37]->Draw("ESAME");
  gCutListHistograms[39]->Draw("ESAME");
  c10->SaveAs("Cov44.gif");

  TCanvas *c11 = new TCanvas("c11","Covariance matrix 55",500,500,650,350);
  c11->SetFillColor(10); c11->GetFrame()->SetFillColor(10);
  c11->SetHighLightColor(10); c11->Divide(2,1);
  c11->cd(1)->SetBottomMargin(0.2); c11->cd(1)->SetLeftMargin(0.2);
  c11->cd(1)->SetLogy();
  hEmpty->GetXaxis()->SetTitle("#sigma_{1/P_{T}} [GeV/c]^{-1}");
  hEmpty->GetXaxis()->SetRangeUser(0.0,4.0);
  hEmpty->SetTitle("Protons");
  hEmpty->DrawCopy();
  gCutListHistograms[40]->Draw("ESAME");
  gCutListHistograms[42]->Draw("ESAME");
  c11->cd(2)->SetBottomMargin(0.2); c11->cd(2)->SetLeftMargin(0.2);
  c11->cd(2)->SetLogy();
  hEmpty->GetXaxis()->SetTitle("#sigma_{1/P_{T}} [GeV/c]^{-1}");
  hEmpty->GetXaxis()->SetRangeUser(0.0,4.0);
  hEmpty->SetTitle("Antiprotons");
  hEmpty->DrawCopy();
  gCutListHistograms[41]->Draw("ESAME");
  gCutListHistograms[43]->Draw("ESAME");
  c11->SaveAs("Cov55.gif");

  TCanvas *c12 = new TCanvas("c12","Number of TPC points (dE/dx)",550,550,650,350);
  c12->SetFillColor(10); c12->GetFrame()->SetFillColor(10);
  c12->SetHighLightColor(10); c12->Divide(2,1);
  c12->cd(1)->SetBottomMargin(0.2); c12->cd(1)->SetLeftMargin(0.2);
  c12->cd(1)->SetLogy();
  hEmpty->GetXaxis()->SetTitle("N_{points} (TPC-dE/dx");
  hEmpty->GetXaxis()->SetRangeUser(0.0,200.0);
  hEmpty->SetTitle("Protons");
  hEmpty->DrawCopy();
  gCutListHistograms[56]->Draw("ESAME");
  gCutListHistograms[58]->Draw("ESAME");
  c12->cd(2)->SetBottomMargin(0.2); c12->cd(2)->SetLeftMargin(0.2);
  c12->cd(2)->SetLogy();
  hEmpty->GetXaxis()->SetTitle("N_{points} (TPC-dE/dx");
  hEmpty->GetXaxis()->SetRangeUser(0.0,200.0);
  hEmpty->SetTitle("Antiprotons");
  hEmpty->DrawCopy();
  gCutListHistograms[57]->Draw("ESAME");
  gCutListHistograms[59]->Draw("ESAME");
  c12->SaveAs("Npoints-TPCdEdx.gif");


  //DCA cut parameters  
  TCanvas *c13 = new TCanvas("c13","DCA xy",600,600,650,350);
  c13->SetFillColor(10); c13->GetFrame()->SetFillColor(10);
  c13->SetHighLightColor(10); c13->Divide(2,1);
  c13->cd(1)->SetBottomMargin(0.2); c13->cd(1)->SetLeftMargin(0.2);
  c13->cd(1)->SetLogy();
  hEmpty->GetXaxis()->SetTitle("DCA_{xy} [cm]");
  hEmpty->GetXaxis()->SetRangeUser(0.0,20.0);
  hEmpty->SetTitle("Protons");
  hEmpty->DrawCopy();
  gDCAListHistograms[2]->Draw("ESAME");
  //gDCAListHistograms[2]->Fit("gDCA","","esame",0.1,12);
  gDCAListHistograms[0]->Draw("ESAME");
  c13->cd(2)->SetBottomMargin(0.15); c13->cd(2)->SetLeftMargin(0.15);
  c13->cd(2)->SetLogy();
  hEmpty->GetXaxis()->SetTitle("DCA_{xy} [cm]");
  hEmpty->GetXaxis()->SetRangeUser(0.0,20.0);
  hEmpty->SetTitle("Antiprotons");
  hEmpty->DrawCopy();
  gDCAListHistograms[1]->Draw("ESAME");
  gDCAListHistograms[3]->Draw("ESAME");
  c13->SaveAs("DCAxy.gif");

  TCanvas *c14 = new TCanvas("c14","DCA z",650,650,650,350);
  c14->SetFillColor(10); c14->GetFrame()->SetFillColor(10);
  c14->SetHighLightColor(10); c14->Divide(2,1);
  c14->cd(1)->SetBottomMargin(0.2); c14->cd(1)->SetLeftMargin(0.2);
  c14->cd(1)->SetLogy();
  hEmpty->GetXaxis()->SetTitle("DCA_{z} [cm]");
  hEmpty->GetXaxis()->SetRangeUser(0.0,20.0);
  hEmpty->SetTitle("Protons");
  hEmpty->DrawCopy();
  gDCAListHistograms[4]->Draw("ESAME");
  gDCAListHistograms[6]->Draw("ESAME");
  //gDCAListHistograms[6]->Fit("gDCA","","esame",0.1,12);
  c14->cd(2)->SetBottomMargin(0.15); c14->cd(2)->SetLeftMargin(0.15);
  c14->cd(2)->SetLogy();
  hEmpty->GetXaxis()->SetTitle("DCA_{z} [cm]");
  hEmpty->GetXaxis()->SetRangeUser(0.0,20.0);
  hEmpty->SetTitle("Antiprotons");
  hEmpty->DrawCopy();
  gDCAListHistograms[5]->Draw("ESAME");
  gDCAListHistograms[7]->Draw("ESAME");
  c14->SaveAs("DCAz.gif");

  TCanvas *c15 = new TCanvas("c15","Sigma to vertex",700,700,650,350);
  c15->SetFillColor(10); c15->GetFrame()->SetFillColor(10);
  c15->SetHighLightColor(10); c15->Divide(2,1);
  c15->cd(1)->SetBottomMargin(0.2); c15->cd(1)->SetLeftMargin(0.2);
  c15->cd(1)->SetLogy();
  hEmpty->GetXaxis()->SetTitle("N_{#sigma}(Vertex)");
  hEmpty->GetXaxis()->SetRangeUser(0.0,7.0);
  hEmpty->SetTitle("Protons");
  hEmpty->DrawCopy();
  gDCAListHistograms[8]->DrawCopy("ESAME");
  gDCAListHistograms[10]->DrawCopy("ESAME");
  c15->cd(2)->SetBottomMargin(0.15); c15->cd(2)->SetLeftMargin(0.15);
  c15->cd(2)->SetLogy();
  hEmpty->GetXaxis()->SetTitle("N_{#sigma}(Vertex)");
  hEmpty->GetXaxis()->SetRangeUser(0.0,7.0);
  hEmpty->SetTitle("Antiprotons");
  hEmpty->DrawCopy();
  gDCAListHistograms[9]->DrawCopy("ESAME");
  gDCAListHistograms[11]->DrawCopy("ESAME");
  c15->SaveAs("NSigmaToVertex.gif");

  TCanvas *c16 = new TCanvas("c16","dca(xy) vs Pt",0,0,900,650);
  c16->SetFillColor(10); c16->GetFrame()->SetFillColor(10);
  c16->SetHighLightColor(10); c16->Divide(3,2);
  c16->cd(1)->SetBottomMargin(0.2); c16->cd(1)->SetLeftMargin(0.2);
  gDCAListHistograms3D[0]->SetTitle("Accepted primary protons");
  gDCAListHistograms3D[0]->Draw("");
  c16->cd(2)->SetBottomMargin(0.2); c16->cd(2)->SetLeftMargin(0.2);
  gDCAListHistograms3D[2]->SetTitle("Accepted secondary protons (weak decay)");
  gDCAListHistograms3D[2]->Draw("");
  c16->cd(3)->SetBottomMargin(0.2); c16->cd(3)->SetLeftMargin(0.2);
  gDCAListHistograms3D[4]->SetTitle("Accepted secondary protons (material)");
  gDCAListHistograms3D[4]->Draw("");
  c16->cd(4)->SetBottomMargin(0.2); c16->cd(4)->SetLeftMargin(0.2);
  gDCAListHistograms3D[1]->SetTitle("Accepted primary antiprotons");
  gDCAListHistograms3D[1]->Draw("");
  c16->cd(5)->SetBottomMargin(0.2); c16->cd(5)->SetLeftMargin(0.2);
  gDCAListHistograms3D[3]->SetTitle("Accepted secondary antiprotons (weak decay)");
  gDCAListHistograms3D[3]->Draw("");
  c16->cd(6)->SetBottomMargin(0.2); c16->cd(6)->SetLeftMargin(0.2);
  gDCAListHistograms3D[5]->SetTitle("Accepted secondary antiprotons (material)");
  gDCAListHistograms3D[5]->Draw("");

  TCanvas *c17 = new TCanvas("c17","dca(z) vs Pt",100,100,900,650);
  c17->SetFillColor(10); c17->GetFrame()->SetFillColor(10);
  c17->SetHighLightColor(10); c17->Divide(3,2);
  c17->cd(1)->SetBottomMargin(0.2); c17->cd(1)->SetLeftMargin(0.2);
  gDCAListHistograms3D[6]->SetTitle("Accepted primary protons");
  gDCAListHistograms3D[6]->Draw("");
  c17->cd(2)->SetBottomMargin(0.2); c17->cd(2)->SetLeftMargin(0.2);
  gDCAListHistograms3D[8]->SetTitle("Accepted secondary protons (weak decay)");
  gDCAListHistograms3D[8]->Draw("");
  c17->cd(3)->SetBottomMargin(0.2); c17->cd(3)->SetLeftMargin(0.2);
  gDCAListHistograms3D[10]->SetTitle("Accepted secondary protons (material)");
  gDCAListHistograms3D[10]->Draw("");
  c17->cd(4)->SetBottomMargin(0.2); c17->cd(4)->SetLeftMargin(0.2);
  gDCAListHistograms3D[7]->SetTitle("Accepted primary antiprotons");
  gDCAListHistograms3D[7]->Draw("");
  c17->cd(5)->SetBottomMargin(0.2); c17->cd(5)->SetLeftMargin(0.2);
  gDCAListHistograms3D[9]->SetTitle("Accepted secondary antiprotons (weak decay)");
  gDCAListHistograms3D[9]->Draw("");
  c17->cd(6)->SetBottomMargin(0.2); c17->cd(6)->SetLeftMargin(0.2);
  gDCAListHistograms3D[11]->SetTitle("Accepted secondary antiprotons (material)");
  gDCAListHistograms3D[11]->Draw("");

  drawDCAPlots(listDCA3D);
  f->Close();
}

//________________________________________________//
void drawDCAPlots(TList *listDCA3D) {
  //Draws the dca distributions for primaries and secondaries for each 
  //eta-pT bin
    TH3F *gDCAListHistograms3D[20];
  listDCA3D->ls();
  for(Int_t i = 0; i < listDCA3D->GetEntries(); i++) {
    gDCAListHistograms3D[i] = dynamic_cast<TH3F *>(listDCA3D->At(i));
    Printf("Name 3D: %s - Entries: %d",gDCAListHistograms3D[i]->GetName(),gDCAListHistograms3D[i]->GetEntries());
  }
  TCanvas *cDCAxy = new TCanvas("cDCAxy","",0,0,500,500);
  gDCAListHistograms3D[0]->ProjectionZ()->Draw();
  
}

//________________________________________________//
void draw2DEfficiency(const char *analysisMode = "TPC",
		      const char *pidMode = "Bayesian",
		      const char* projection = "yx") {
  gStyle->SetPalette(1,0);
  gStyle->SetCanvasColor(41);
  gStyle->SetFrameFillColor(10);

  TString filename = "Protons.Efficiency.";filename += analysisMode; 
  filename += "."; filename += pidMode; filename += ".root";
  TFile *f = TFile::Open(filename.Data());
  TList *list = (TList *)f->Get("efficiencyList");

  TH3D *gHistESDInitYPtProtons = (TH3D *)list->At(12);
  TH2D *gInit = (TH2D *)gHistESDInitYPtProtons->Project3D(projection);
  TH3D *gHistESDIdYPtProtons = (TH3D *)list->At(13);
  TH2D *gId = (TH2D *)gHistESDIdYPtProtons->Project3D(projection);
  gId->Divide(gInit);
  gId->Scale(100.);
  gId->GetZaxis()->SetTitle("#epsilon [%]");

  TH2F *h = new TH2F("h","",100,-1,1,10000,0,210);
  h->SetStats(kFALSE);

  switch(projection) {
    case "yx":
      gId->GetZaxis()->SetRangeUser(90,100);
      h->GetXaxis()->SetRangeUser(gHistESDInitYPtProtons->GetXaxis()->GetXmin(),
				  gHistESDInitYPtProtons->GetXaxis()->GetXmax());
      h->GetYaxis()->SetRangeUser(gHistESDInitYPtProtons->GetYaxis()->GetXmin(),
				  gHistESDInitYPtProtons->GetYaxis()->GetXmax());
      h->GetXaxis()->SetTitle(gId->GetXaxis()->GetTitle());
      h->GetYaxis()->SetTitle(gId->GetYaxis()->GetTitle());
      break;
    case "zx":
      gId->GetZaxis()->SetRangeUser(0,100);
      h->GetXaxis()->SetRangeUser(gHistESDInitYPtProtons->GetXaxis()->GetXmin(),
				  gHistESDInitYPtProtons->GetXaxis()->GetXmax());
      h->GetYaxis()->SetRangeUser(gHistESDInitYPtProtons->GetZaxis()->GetXmin(),
				  gHistESDInitYPtProtons->GetZaxis()->GetXmax());
      h->GetXaxis()->SetTitle(gId->GetXaxis()->GetTitle());
      h->GetYaxis()->SetTitle(gId->GetYaxis()->GetTitle());
      break;
    case "zy":
      gId->GetZaxis()->SetRangeUser(0,100);
      h->GetXaxis()->SetRangeUser(gHistESDInitYPtProtons->GetYaxis()->GetXmin(),
				  gHistESDInitYPtProtons->GetYaxis()->GetXmax());
      h->GetYaxis()->SetRangeUser(gHistESDInitYPtProtons->GetZaxis()->GetXmin(),
				  gHistESDInitYPtProtons->GetZaxis()->GetXmax());
      h->GetXaxis()->SetTitle(gId->GetXaxis()->GetTitle());
      h->GetYaxis()->SetTitle(gId->GetYaxis()->GetTitle());
      break;
  default:
    break;
  }

  TCanvas *c = new TCanvas();
  c->SetRightMargin(0.15);
  h->DrawCopy();
  gId->DrawCopy("colzsame");
}

//________________________________________________//
void RescaleEtaHistogram(TH1 *h1, TH2 *h2) {
  //Rescales the histogram in eta or y 
  Int_t iBinCounter = 0;
  for(Int_t iBinX = 1; iBinX <= h2->GetNbinsX(); iBinX++) {
    iBinCounter = 0;
    for(Int_t iBinY = 1; iBinY <= h2->GetNbinsY(); iBinY++) {
      if(h2->GetBinContent(iBinX,iBinY) > 0) {
	iBinCounter += 1;
      }
    }
    h1->SetBinContent(iBinX,h1->GetBinContent(iBinX)/iBinCounter);
    h1->SetBinError(iBinX,h1->GetBinError(iBinX)/iBinCounter);
    //Printf("Bin: %d - e: %lf - error: %lf",iBinX,sum/iBinCounter,TMath::Sqrt(sumError)/iBinCounter);
  }
}

//________________________________________________//
void RescalePtHistogram(TH1 *h1, TH2 *h2) {
  //Rescales the histogram in pT
  Int_t iBinCounter = 0;
  for(Int_t iBinY = 1; iBinY <= h2->GetNbinsY(); iBinY++) {
    iBinCounter = 0;
    for(Int_t iBinX = 1; iBinX <= h2->GetNbinsX(); iBinX++) {
      if(h2->GetBinContent(iBinX,iBinY) > 0) {
	iBinCounter += 1;
      }
    }
    h1->SetBinContent(iBinY,h1->GetBinContent(iBinY)/iBinCounter);
    h1->SetBinError(iBinY,h1->GetBinError(iBinY)/iBinCounter);
    //Printf("Bin: %d - e: %lf - error: %lf",iBinX,sum/iBinCounter,TMath::Sqrt(sumError)/iBinCounter);
  }
}

 drawProtonQAResults.C:1
 drawProtonQAResults.C:2
 drawProtonQAResults.C:3
 drawProtonQAResults.C:4
 drawProtonQAResults.C:5
 drawProtonQAResults.C:6
 drawProtonQAResults.C:7
 drawProtonQAResults.C:8
 drawProtonQAResults.C:9
 drawProtonQAResults.C:10
 drawProtonQAResults.C:11
 drawProtonQAResults.C:12
 drawProtonQAResults.C:13
 drawProtonQAResults.C:14
 drawProtonQAResults.C:15
 drawProtonQAResults.C:16
 drawProtonQAResults.C:17
 drawProtonQAResults.C:18
 drawProtonQAResults.C:19
 drawProtonQAResults.C:20
 drawProtonQAResults.C:21
 drawProtonQAResults.C:22
 drawProtonQAResults.C:23
 drawProtonQAResults.C:24
 drawProtonQAResults.C:25
 drawProtonQAResults.C:26
 drawProtonQAResults.C:27
 drawProtonQAResults.C:28
 drawProtonQAResults.C:29
 drawProtonQAResults.C:30
 drawProtonQAResults.C:31
 drawProtonQAResults.C:32
 drawProtonQAResults.C:33
 drawProtonQAResults.C:34
 drawProtonQAResults.C:35
 drawProtonQAResults.C:36
 drawProtonQAResults.C:37
 drawProtonQAResults.C:38
 drawProtonQAResults.C:39
 drawProtonQAResults.C:40
 drawProtonQAResults.C:41
 drawProtonQAResults.C:42
 drawProtonQAResults.C:43
 drawProtonQAResults.C:44
 drawProtonQAResults.C:45
 drawProtonQAResults.C:46
 drawProtonQAResults.C:47
 drawProtonQAResults.C:48
 drawProtonQAResults.C:49
 drawProtonQAResults.C:50
 drawProtonQAResults.C:51
 drawProtonQAResults.C:52
 drawProtonQAResults.C:53
 drawProtonQAResults.C:54
 drawProtonQAResults.C:55
 drawProtonQAResults.C:56
 drawProtonQAResults.C:57
 drawProtonQAResults.C:58
 drawProtonQAResults.C:59
 drawProtonQAResults.C:60
 drawProtonQAResults.C:61
 drawProtonQAResults.C:62
 drawProtonQAResults.C:63
 drawProtonQAResults.C:64
 drawProtonQAResults.C:65
 drawProtonQAResults.C:66
 drawProtonQAResults.C:67
 drawProtonQAResults.C:68
 drawProtonQAResults.C:69
 drawProtonQAResults.C:70
 drawProtonQAResults.C:71
 drawProtonQAResults.C:72
 drawProtonQAResults.C:73
 drawProtonQAResults.C:74
 drawProtonQAResults.C:75
 drawProtonQAResults.C:76
 drawProtonQAResults.C:77
 drawProtonQAResults.C:78
 drawProtonQAResults.C:79
 drawProtonQAResults.C:80
 drawProtonQAResults.C:81
 drawProtonQAResults.C:82
 drawProtonQAResults.C:83
 drawProtonQAResults.C:84
 drawProtonQAResults.C:85
 drawProtonQAResults.C:86
 drawProtonQAResults.C:87
 drawProtonQAResults.C:88
 drawProtonQAResults.C:89
 drawProtonQAResults.C:90
 drawProtonQAResults.C:91
 drawProtonQAResults.C:92
 drawProtonQAResults.C:93
 drawProtonQAResults.C:94
 drawProtonQAResults.C:95
 drawProtonQAResults.C:96
 drawProtonQAResults.C:97
 drawProtonQAResults.C:98
 drawProtonQAResults.C:99
 drawProtonQAResults.C:100
 drawProtonQAResults.C:101
 drawProtonQAResults.C:102
 drawProtonQAResults.C:103
 drawProtonQAResults.C:104
 drawProtonQAResults.C:105
 drawProtonQAResults.C:106
 drawProtonQAResults.C:107
 drawProtonQAResults.C:108
 drawProtonQAResults.C:109
 drawProtonQAResults.C:110
 drawProtonQAResults.C:111
 drawProtonQAResults.C:112
 drawProtonQAResults.C:113
 drawProtonQAResults.C:114
 drawProtonQAResults.C:115
 drawProtonQAResults.C:116
 drawProtonQAResults.C:117
 drawProtonQAResults.C:118
 drawProtonQAResults.C:119
 drawProtonQAResults.C:120
 drawProtonQAResults.C:121
 drawProtonQAResults.C:122
 drawProtonQAResults.C:123
 drawProtonQAResults.C:124
 drawProtonQAResults.C:125
 drawProtonQAResults.C:126
 drawProtonQAResults.C:127
 drawProtonQAResults.C:128
 drawProtonQAResults.C:129
 drawProtonQAResults.C:130
 drawProtonQAResults.C:131
 drawProtonQAResults.C:132
 drawProtonQAResults.C:133
 drawProtonQAResults.C:134
 drawProtonQAResults.C:135
 drawProtonQAResults.C:136
 drawProtonQAResults.C:137
 drawProtonQAResults.C:138
 drawProtonQAResults.C:139
 drawProtonQAResults.C:140
 drawProtonQAResults.C:141
 drawProtonQAResults.C:142
 drawProtonQAResults.C:143
 drawProtonQAResults.C:144
 drawProtonQAResults.C:145
 drawProtonQAResults.C:146
 drawProtonQAResults.C:147
 drawProtonQAResults.C:148
 drawProtonQAResults.C:149
 drawProtonQAResults.C:150
 drawProtonQAResults.C:151
 drawProtonQAResults.C:152
 drawProtonQAResults.C:153
 drawProtonQAResults.C:154
 drawProtonQAResults.C:155
 drawProtonQAResults.C:156
 drawProtonQAResults.C:157
 drawProtonQAResults.C:158
 drawProtonQAResults.C:159
 drawProtonQAResults.C:160
 drawProtonQAResults.C:161
 drawProtonQAResults.C:162
 drawProtonQAResults.C:163
 drawProtonQAResults.C:164
 drawProtonQAResults.C:165
 drawProtonQAResults.C:166
 drawProtonQAResults.C:167
 drawProtonQAResults.C:168
 drawProtonQAResults.C:169
 drawProtonQAResults.C:170
 drawProtonQAResults.C:171
 drawProtonQAResults.C:172
 drawProtonQAResults.C:173
 drawProtonQAResults.C:174
 drawProtonQAResults.C:175
 drawProtonQAResults.C:176
 drawProtonQAResults.C:177
 drawProtonQAResults.C:178
 drawProtonQAResults.C:179
 drawProtonQAResults.C:180
 drawProtonQAResults.C:181
 drawProtonQAResults.C:182
 drawProtonQAResults.C:183
 drawProtonQAResults.C:184
 drawProtonQAResults.C:185
 drawProtonQAResults.C:186
 drawProtonQAResults.C:187
 drawProtonQAResults.C:188
 drawProtonQAResults.C:189
 drawProtonQAResults.C:190
 drawProtonQAResults.C:191
 drawProtonQAResults.C:192
 drawProtonQAResults.C:193
 drawProtonQAResults.C:194
 drawProtonQAResults.C:195
 drawProtonQAResults.C:196
 drawProtonQAResults.C:197
 drawProtonQAResults.C:198
 drawProtonQAResults.C:199
 drawProtonQAResults.C:200
 drawProtonQAResults.C:201
 drawProtonQAResults.C:202
 drawProtonQAResults.C:203
 drawProtonQAResults.C:204
 drawProtonQAResults.C:205
 drawProtonQAResults.C:206
 drawProtonQAResults.C:207
 drawProtonQAResults.C:208
 drawProtonQAResults.C:209
 drawProtonQAResults.C:210
 drawProtonQAResults.C:211
 drawProtonQAResults.C:212
 drawProtonQAResults.C:213
 drawProtonQAResults.C:214
 drawProtonQAResults.C:215
 drawProtonQAResults.C:216
 drawProtonQAResults.C:217
 drawProtonQAResults.C:218
 drawProtonQAResults.C:219
 drawProtonQAResults.C:220
 drawProtonQAResults.C:221
 drawProtonQAResults.C:222
 drawProtonQAResults.C:223
 drawProtonQAResults.C:224
 drawProtonQAResults.C:225
 drawProtonQAResults.C:226
 drawProtonQAResults.C:227
 drawProtonQAResults.C:228
 drawProtonQAResults.C:229
 drawProtonQAResults.C:230
 drawProtonQAResults.C:231
 drawProtonQAResults.C:232
 drawProtonQAResults.C:233
 drawProtonQAResults.C:234
 drawProtonQAResults.C:235
 drawProtonQAResults.C:236
 drawProtonQAResults.C:237
 drawProtonQAResults.C:238
 drawProtonQAResults.C:239
 drawProtonQAResults.C:240
 drawProtonQAResults.C:241
 drawProtonQAResults.C:242
 drawProtonQAResults.C:243
 drawProtonQAResults.C:244
 drawProtonQAResults.C:245
 drawProtonQAResults.C:246
 drawProtonQAResults.C:247
 drawProtonQAResults.C:248
 drawProtonQAResults.C:249
 drawProtonQAResults.C:250
 drawProtonQAResults.C:251
 drawProtonQAResults.C:252
 drawProtonQAResults.C:253
 drawProtonQAResults.C:254
 drawProtonQAResults.C:255
 drawProtonQAResults.C:256
 drawProtonQAResults.C:257
 drawProtonQAResults.C:258
 drawProtonQAResults.C:259
 drawProtonQAResults.C:260
 drawProtonQAResults.C:261
 drawProtonQAResults.C:262
 drawProtonQAResults.C:263
 drawProtonQAResults.C:264
 drawProtonQAResults.C:265
 drawProtonQAResults.C:266
 drawProtonQAResults.C:267
 drawProtonQAResults.C:268
 drawProtonQAResults.C:269
 drawProtonQAResults.C:270
 drawProtonQAResults.C:271
 drawProtonQAResults.C:272
 drawProtonQAResults.C:273
 drawProtonQAResults.C:274
 drawProtonQAResults.C:275
 drawProtonQAResults.C:276
 drawProtonQAResults.C:277
 drawProtonQAResults.C:278
 drawProtonQAResults.C:279
 drawProtonQAResults.C:280
 drawProtonQAResults.C:281
 drawProtonQAResults.C:282
 drawProtonQAResults.C:283
 drawProtonQAResults.C:284
 drawProtonQAResults.C:285
 drawProtonQAResults.C:286
 drawProtonQAResults.C:287
 drawProtonQAResults.C:288
 drawProtonQAResults.C:289
 drawProtonQAResults.C:290
 drawProtonQAResults.C:291
 drawProtonQAResults.C:292
 drawProtonQAResults.C:293
 drawProtonQAResults.C:294
 drawProtonQAResults.C:295
 drawProtonQAResults.C:296
 drawProtonQAResults.C:297
 drawProtonQAResults.C:298
 drawProtonQAResults.C:299
 drawProtonQAResults.C:300
 drawProtonQAResults.C:301
 drawProtonQAResults.C:302
 drawProtonQAResults.C:303
 drawProtonQAResults.C:304
 drawProtonQAResults.C:305
 drawProtonQAResults.C:306
 drawProtonQAResults.C:307
 drawProtonQAResults.C:308
 drawProtonQAResults.C:309
 drawProtonQAResults.C:310
 drawProtonQAResults.C:311
 drawProtonQAResults.C:312
 drawProtonQAResults.C:313
 drawProtonQAResults.C:314
 drawProtonQAResults.C:315
 drawProtonQAResults.C:316
 drawProtonQAResults.C:317
 drawProtonQAResults.C:318
 drawProtonQAResults.C:319
 drawProtonQAResults.C:320
 drawProtonQAResults.C:321
 drawProtonQAResults.C:322
 drawProtonQAResults.C:323
 drawProtonQAResults.C:324
 drawProtonQAResults.C:325
 drawProtonQAResults.C:326
 drawProtonQAResults.C:327
 drawProtonQAResults.C:328
 drawProtonQAResults.C:329
 drawProtonQAResults.C:330
 drawProtonQAResults.C:331
 drawProtonQAResults.C:332
 drawProtonQAResults.C:333
 drawProtonQAResults.C:334
 drawProtonQAResults.C:335
 drawProtonQAResults.C:336
 drawProtonQAResults.C:337
 drawProtonQAResults.C:338
 drawProtonQAResults.C:339
 drawProtonQAResults.C:340
 drawProtonQAResults.C:341
 drawProtonQAResults.C:342
 drawProtonQAResults.C:343
 drawProtonQAResults.C:344
 drawProtonQAResults.C:345
 drawProtonQAResults.C:346
 drawProtonQAResults.C:347
 drawProtonQAResults.C:348
 drawProtonQAResults.C:349
 drawProtonQAResults.C:350
 drawProtonQAResults.C:351
 drawProtonQAResults.C:352
 drawProtonQAResults.C:353
 drawProtonQAResults.C:354
 drawProtonQAResults.C:355
 drawProtonQAResults.C:356
 drawProtonQAResults.C:357
 drawProtonQAResults.C:358
 drawProtonQAResults.C:359
 drawProtonQAResults.C:360
 drawProtonQAResults.C:361
 drawProtonQAResults.C:362
 drawProtonQAResults.C:363
 drawProtonQAResults.C:364
 drawProtonQAResults.C:365
 drawProtonQAResults.C:366
 drawProtonQAResults.C:367
 drawProtonQAResults.C:368
 drawProtonQAResults.C:369
 drawProtonQAResults.C:370
 drawProtonQAResults.C:371
 drawProtonQAResults.C:372
 drawProtonQAResults.C:373
 drawProtonQAResults.C:374
 drawProtonQAResults.C:375
 drawProtonQAResults.C:376
 drawProtonQAResults.C:377
 drawProtonQAResults.C:378
 drawProtonQAResults.C:379
 drawProtonQAResults.C:380
 drawProtonQAResults.C:381
 drawProtonQAResults.C:382
 drawProtonQAResults.C:383
 drawProtonQAResults.C:384
 drawProtonQAResults.C:385
 drawProtonQAResults.C:386
 drawProtonQAResults.C:387
 drawProtonQAResults.C:388
 drawProtonQAResults.C:389
 drawProtonQAResults.C:390
 drawProtonQAResults.C:391
 drawProtonQAResults.C:392
 drawProtonQAResults.C:393
 drawProtonQAResults.C:394
 drawProtonQAResults.C:395
 drawProtonQAResults.C:396
 drawProtonQAResults.C:397
 drawProtonQAResults.C:398
 drawProtonQAResults.C:399
 drawProtonQAResults.C:400
 drawProtonQAResults.C:401
 drawProtonQAResults.C:402
 drawProtonQAResults.C:403
 drawProtonQAResults.C:404
 drawProtonQAResults.C:405
 drawProtonQAResults.C:406
 drawProtonQAResults.C:407
 drawProtonQAResults.C:408
 drawProtonQAResults.C:409
 drawProtonQAResults.C:410
 drawProtonQAResults.C:411
 drawProtonQAResults.C:412
 drawProtonQAResults.C:413
 drawProtonQAResults.C:414
 drawProtonQAResults.C:415
 drawProtonQAResults.C:416
 drawProtonQAResults.C:417
 drawProtonQAResults.C:418
 drawProtonQAResults.C:419
 drawProtonQAResults.C:420
 drawProtonQAResults.C:421
 drawProtonQAResults.C:422
 drawProtonQAResults.C:423
 drawProtonQAResults.C:424
 drawProtonQAResults.C:425
 drawProtonQAResults.C:426
 drawProtonQAResults.C:427
 drawProtonQAResults.C:428
 drawProtonQAResults.C:429
 drawProtonQAResults.C:430
 drawProtonQAResults.C:431
 drawProtonQAResults.C:432
 drawProtonQAResults.C:433
 drawProtonQAResults.C:434
 drawProtonQAResults.C:435
 drawProtonQAResults.C:436
 drawProtonQAResults.C:437
 drawProtonQAResults.C:438
 drawProtonQAResults.C:439
 drawProtonQAResults.C:440
 drawProtonQAResults.C:441
 drawProtonQAResults.C:442
 drawProtonQAResults.C:443
 drawProtonQAResults.C:444
 drawProtonQAResults.C:445
 drawProtonQAResults.C:446
 drawProtonQAResults.C:447
 drawProtonQAResults.C:448
 drawProtonQAResults.C:449
 drawProtonQAResults.C:450
 drawProtonQAResults.C:451
 drawProtonQAResults.C:452
 drawProtonQAResults.C:453
 drawProtonQAResults.C:454
 drawProtonQAResults.C:455
 drawProtonQAResults.C:456
 drawProtonQAResults.C:457
 drawProtonQAResults.C:458
 drawProtonQAResults.C:459
 drawProtonQAResults.C:460
 drawProtonQAResults.C:461
 drawProtonQAResults.C:462
 drawProtonQAResults.C:463
 drawProtonQAResults.C:464
 drawProtonQAResults.C:465
 drawProtonQAResults.C:466
 drawProtonQAResults.C:467
 drawProtonQAResults.C:468
 drawProtonQAResults.C:469
 drawProtonQAResults.C:470
 drawProtonQAResults.C:471
 drawProtonQAResults.C:472
 drawProtonQAResults.C:473
 drawProtonQAResults.C:474
 drawProtonQAResults.C:475
 drawProtonQAResults.C:476
 drawProtonQAResults.C:477
 drawProtonQAResults.C:478
 drawProtonQAResults.C:479
 drawProtonQAResults.C:480
 drawProtonQAResults.C:481
 drawProtonQAResults.C:482
 drawProtonQAResults.C:483
 drawProtonQAResults.C:484
 drawProtonQAResults.C:485
 drawProtonQAResults.C:486
 drawProtonQAResults.C:487
 drawProtonQAResults.C:488
 drawProtonQAResults.C:489
 drawProtonQAResults.C:490
 drawProtonQAResults.C:491
 drawProtonQAResults.C:492
 drawProtonQAResults.C:493
 drawProtonQAResults.C:494
 drawProtonQAResults.C:495
 drawProtonQAResults.C:496
 drawProtonQAResults.C:497
 drawProtonQAResults.C:498
 drawProtonQAResults.C:499
 drawProtonQAResults.C:500
 drawProtonQAResults.C:501
 drawProtonQAResults.C:502
 drawProtonQAResults.C:503
 drawProtonQAResults.C:504
 drawProtonQAResults.C:505
 drawProtonQAResults.C:506
 drawProtonQAResults.C:507
 drawProtonQAResults.C:508
 drawProtonQAResults.C:509
 drawProtonQAResults.C:510
 drawProtonQAResults.C:511
 drawProtonQAResults.C:512
 drawProtonQAResults.C:513
 drawProtonQAResults.C:514
 drawProtonQAResults.C:515
 drawProtonQAResults.C:516
 drawProtonQAResults.C:517
 drawProtonQAResults.C:518
 drawProtonQAResults.C:519
 drawProtonQAResults.C:520
 drawProtonQAResults.C:521
 drawProtonQAResults.C:522
 drawProtonQAResults.C:523
 drawProtonQAResults.C:524
 drawProtonQAResults.C:525
 drawProtonQAResults.C:526
 drawProtonQAResults.C:527
 drawProtonQAResults.C:528
 drawProtonQAResults.C:529
 drawProtonQAResults.C:530
 drawProtonQAResults.C:531
 drawProtonQAResults.C:532
 drawProtonQAResults.C:533
 drawProtonQAResults.C:534
 drawProtonQAResults.C:535
 drawProtonQAResults.C:536
 drawProtonQAResults.C:537
 drawProtonQAResults.C:538
 drawProtonQAResults.C:539
 drawProtonQAResults.C:540
 drawProtonQAResults.C:541
 drawProtonQAResults.C:542
 drawProtonQAResults.C:543
 drawProtonQAResults.C:544
 drawProtonQAResults.C:545
 drawProtonQAResults.C:546
 drawProtonQAResults.C:547
 drawProtonQAResults.C:548
 drawProtonQAResults.C:549
 drawProtonQAResults.C:550
 drawProtonQAResults.C:551
 drawProtonQAResults.C:552
 drawProtonQAResults.C:553
 drawProtonQAResults.C:554
 drawProtonQAResults.C:555
 drawProtonQAResults.C:556
 drawProtonQAResults.C:557
 drawProtonQAResults.C:558
 drawProtonQAResults.C:559
 drawProtonQAResults.C:560
 drawProtonQAResults.C:561
 drawProtonQAResults.C:562
 drawProtonQAResults.C:563
 drawProtonQAResults.C:564
 drawProtonQAResults.C:565
 drawProtonQAResults.C:566
 drawProtonQAResults.C:567
 drawProtonQAResults.C:568
 drawProtonQAResults.C:569
 drawProtonQAResults.C:570
 drawProtonQAResults.C:571
 drawProtonQAResults.C:572
 drawProtonQAResults.C:573
 drawProtonQAResults.C:574
 drawProtonQAResults.C:575
 drawProtonQAResults.C:576
 drawProtonQAResults.C:577
 drawProtonQAResults.C:578
 drawProtonQAResults.C:579
 drawProtonQAResults.C:580
 drawProtonQAResults.C:581
 drawProtonQAResults.C:582
 drawProtonQAResults.C:583
 drawProtonQAResults.C:584
 drawProtonQAResults.C:585
 drawProtonQAResults.C:586
 drawProtonQAResults.C:587
 drawProtonQAResults.C:588
 drawProtonQAResults.C:589
 drawProtonQAResults.C:590
 drawProtonQAResults.C:591
 drawProtonQAResults.C:592
 drawProtonQAResults.C:593
 drawProtonQAResults.C:594
 drawProtonQAResults.C:595
 drawProtonQAResults.C:596
 drawProtonQAResults.C:597
 drawProtonQAResults.C:598
 drawProtonQAResults.C:599
 drawProtonQAResults.C:600
 drawProtonQAResults.C:601
 drawProtonQAResults.C:602
 drawProtonQAResults.C:603
 drawProtonQAResults.C:604
 drawProtonQAResults.C:605
 drawProtonQAResults.C:606
 drawProtonQAResults.C:607
 drawProtonQAResults.C:608
 drawProtonQAResults.C:609
 drawProtonQAResults.C:610
 drawProtonQAResults.C:611
 drawProtonQAResults.C:612
 drawProtonQAResults.C:613
 drawProtonQAResults.C:614
 drawProtonQAResults.C:615
 drawProtonQAResults.C:616
 drawProtonQAResults.C:617
 drawProtonQAResults.C:618
 drawProtonQAResults.C:619
 drawProtonQAResults.C:620
 drawProtonQAResults.C:621
 drawProtonQAResults.C:622
 drawProtonQAResults.C:623
 drawProtonQAResults.C:624
 drawProtonQAResults.C:625
 drawProtonQAResults.C:626
 drawProtonQAResults.C:627
 drawProtonQAResults.C:628
 drawProtonQAResults.C:629
 drawProtonQAResults.C:630
 drawProtonQAResults.C:631
 drawProtonQAResults.C:632
 drawProtonQAResults.C:633
 drawProtonQAResults.C:634
 drawProtonQAResults.C:635
 drawProtonQAResults.C:636
 drawProtonQAResults.C:637
 drawProtonQAResults.C:638
 drawProtonQAResults.C:639
 drawProtonQAResults.C:640
 drawProtonQAResults.C:641
 drawProtonQAResults.C:642
 drawProtonQAResults.C:643
 drawProtonQAResults.C:644
 drawProtonQAResults.C:645
 drawProtonQAResults.C:646
 drawProtonQAResults.C:647
 drawProtonQAResults.C:648
 drawProtonQAResults.C:649
 drawProtonQAResults.C:650
 drawProtonQAResults.C:651
 drawProtonQAResults.C:652
 drawProtonQAResults.C:653
 drawProtonQAResults.C:654
 drawProtonQAResults.C:655
 drawProtonQAResults.C:656
 drawProtonQAResults.C:657
 drawProtonQAResults.C:658
 drawProtonQAResults.C:659
 drawProtonQAResults.C:660
 drawProtonQAResults.C:661
 drawProtonQAResults.C:662
 drawProtonQAResults.C:663
 drawProtonQAResults.C:664
 drawProtonQAResults.C:665
 drawProtonQAResults.C:666
 drawProtonQAResults.C:667
 drawProtonQAResults.C:668
 drawProtonQAResults.C:669
 drawProtonQAResults.C:670
 drawProtonQAResults.C:671
 drawProtonQAResults.C:672
 drawProtonQAResults.C:673
 drawProtonQAResults.C:674
 drawProtonQAResults.C:675
 drawProtonQAResults.C:676
 drawProtonQAResults.C:677
 drawProtonQAResults.C:678
 drawProtonQAResults.C:679
 drawProtonQAResults.C:680
 drawProtonQAResults.C:681
 drawProtonQAResults.C:682
 drawProtonQAResults.C:683
 drawProtonQAResults.C:684
 drawProtonQAResults.C:685
 drawProtonQAResults.C:686
 drawProtonQAResults.C:687
 drawProtonQAResults.C:688
 drawProtonQAResults.C:689
 drawProtonQAResults.C:690
 drawProtonQAResults.C:691
 drawProtonQAResults.C:692
 drawProtonQAResults.C:693
 drawProtonQAResults.C:694
 drawProtonQAResults.C:695
 drawProtonQAResults.C:696
 drawProtonQAResults.C:697
 drawProtonQAResults.C:698
 drawProtonQAResults.C:699
 drawProtonQAResults.C:700
 drawProtonQAResults.C:701
 drawProtonQAResults.C:702
 drawProtonQAResults.C:703
 drawProtonQAResults.C:704
 drawProtonQAResults.C:705
 drawProtonQAResults.C:706
 drawProtonQAResults.C:707
 drawProtonQAResults.C:708
 drawProtonQAResults.C:709
 drawProtonQAResults.C:710
 drawProtonQAResults.C:711
 drawProtonQAResults.C:712
 drawProtonQAResults.C:713
 drawProtonQAResults.C:714
 drawProtonQAResults.C:715
 drawProtonQAResults.C:716
 drawProtonQAResults.C:717
 drawProtonQAResults.C:718
 drawProtonQAResults.C:719
 drawProtonQAResults.C:720
 drawProtonQAResults.C:721
 drawProtonQAResults.C:722
 drawProtonQAResults.C:723
 drawProtonQAResults.C:724
 drawProtonQAResults.C:725
 drawProtonQAResults.C:726
 drawProtonQAResults.C:727
 drawProtonQAResults.C:728
 drawProtonQAResults.C:729
 drawProtonQAResults.C:730
 drawProtonQAResults.C:731
 drawProtonQAResults.C:732
 drawProtonQAResults.C:733
 drawProtonQAResults.C:734
 drawProtonQAResults.C:735
 drawProtonQAResults.C:736
 drawProtonQAResults.C:737
 drawProtonQAResults.C:738
 drawProtonQAResults.C:739
 drawProtonQAResults.C:740
 drawProtonQAResults.C:741
 drawProtonQAResults.C:742
 drawProtonQAResults.C:743
 drawProtonQAResults.C:744
 drawProtonQAResults.C:745
 drawProtonQAResults.C:746
 drawProtonQAResults.C:747
 drawProtonQAResults.C:748
 drawProtonQAResults.C:749
 drawProtonQAResults.C:750
 drawProtonQAResults.C:751
 drawProtonQAResults.C:752
 drawProtonQAResults.C:753
 drawProtonQAResults.C:754
 drawProtonQAResults.C:755
 drawProtonQAResults.C:756
 drawProtonQAResults.C:757
 drawProtonQAResults.C:758
 drawProtonQAResults.C:759
 drawProtonQAResults.C:760
 drawProtonQAResults.C:761
 drawProtonQAResults.C:762
 drawProtonQAResults.C:763
 drawProtonQAResults.C:764
 drawProtonQAResults.C:765
 drawProtonQAResults.C:766
 drawProtonQAResults.C:767
 drawProtonQAResults.C:768
 drawProtonQAResults.C:769
 drawProtonQAResults.C:770
 drawProtonQAResults.C:771
 drawProtonQAResults.C:772
 drawProtonQAResults.C:773
 drawProtonQAResults.C:774
 drawProtonQAResults.C:775
 drawProtonQAResults.C:776
 drawProtonQAResults.C:777
 drawProtonQAResults.C:778
 drawProtonQAResults.C:779
 drawProtonQAResults.C:780
 drawProtonQAResults.C:781
 drawProtonQAResults.C:782
 drawProtonQAResults.C:783
 drawProtonQAResults.C:784
 drawProtonQAResults.C:785
 drawProtonQAResults.C:786
 drawProtonQAResults.C:787
 drawProtonQAResults.C:788
 drawProtonQAResults.C:789
 drawProtonQAResults.C:790
 drawProtonQAResults.C:791
 drawProtonQAResults.C:792
 drawProtonQAResults.C:793
 drawProtonQAResults.C:794
 drawProtonQAResults.C:795
 drawProtonQAResults.C:796
 drawProtonQAResults.C:797
 drawProtonQAResults.C:798
 drawProtonQAResults.C:799
 drawProtonQAResults.C:800
 drawProtonQAResults.C:801
 drawProtonQAResults.C:802
 drawProtonQAResults.C:803
 drawProtonQAResults.C:804
 drawProtonQAResults.C:805
 drawProtonQAResults.C:806
 drawProtonQAResults.C:807
 drawProtonQAResults.C:808
 drawProtonQAResults.C:809
 drawProtonQAResults.C:810
 drawProtonQAResults.C:811
 drawProtonQAResults.C:812
 drawProtonQAResults.C:813
 drawProtonQAResults.C:814
 drawProtonQAResults.C:815
 drawProtonQAResults.C:816
 drawProtonQAResults.C:817
 drawProtonQAResults.C:818
 drawProtonQAResults.C:819
 drawProtonQAResults.C:820
 drawProtonQAResults.C:821
 drawProtonQAResults.C:822
 drawProtonQAResults.C:823
 drawProtonQAResults.C:824
 drawProtonQAResults.C:825
 drawProtonQAResults.C:826
 drawProtonQAResults.C:827
 drawProtonQAResults.C:828
 drawProtonQAResults.C:829
 drawProtonQAResults.C:830
 drawProtonQAResults.C:831
 drawProtonQAResults.C:832
 drawProtonQAResults.C:833
 drawProtonQAResults.C:834
 drawProtonQAResults.C:835
 drawProtonQAResults.C:836
 drawProtonQAResults.C:837
 drawProtonQAResults.C:838
 drawProtonQAResults.C:839
 drawProtonQAResults.C:840
 drawProtonQAResults.C:841
 drawProtonQAResults.C:842
 drawProtonQAResults.C:843
 drawProtonQAResults.C:844
 drawProtonQAResults.C:845
 drawProtonQAResults.C:846
 drawProtonQAResults.C:847
 drawProtonQAResults.C:848
 drawProtonQAResults.C:849
 drawProtonQAResults.C:850
 drawProtonQAResults.C:851
 drawProtonQAResults.C:852
 drawProtonQAResults.C:853
 drawProtonQAResults.C:854
 drawProtonQAResults.C:855
 drawProtonQAResults.C:856
 drawProtonQAResults.C:857
 drawProtonQAResults.C:858
 drawProtonQAResults.C:859
 drawProtonQAResults.C:860
 drawProtonQAResults.C:861
 drawProtonQAResults.C:862
 drawProtonQAResults.C:863
 drawProtonQAResults.C:864
 drawProtonQAResults.C:865
 drawProtonQAResults.C:866
 drawProtonQAResults.C:867
 drawProtonQAResults.C:868
 drawProtonQAResults.C:869
 drawProtonQAResults.C:870
 drawProtonQAResults.C:871
 drawProtonQAResults.C:872
 drawProtonQAResults.C:873
 drawProtonQAResults.C:874
 drawProtonQAResults.C:875
 drawProtonQAResults.C:876
 drawProtonQAResults.C:877
 drawProtonQAResults.C:878
 drawProtonQAResults.C:879
 drawProtonQAResults.C:880
 drawProtonQAResults.C:881
 drawProtonQAResults.C:882
 drawProtonQAResults.C:883
 drawProtonQAResults.C:884
 drawProtonQAResults.C:885
 drawProtonQAResults.C:886
 drawProtonQAResults.C:887
 drawProtonQAResults.C:888
 drawProtonQAResults.C:889
 drawProtonQAResults.C:890
 drawProtonQAResults.C:891
 drawProtonQAResults.C:892
 drawProtonQAResults.C:893
 drawProtonQAResults.C:894
 drawProtonQAResults.C:895
 drawProtonQAResults.C:896
 drawProtonQAResults.C:897
 drawProtonQAResults.C:898
 drawProtonQAResults.C:899
 drawProtonQAResults.C:900
 drawProtonQAResults.C:901
 drawProtonQAResults.C:902
 drawProtonQAResults.C:903
 drawProtonQAResults.C:904
 drawProtonQAResults.C:905
 drawProtonQAResults.C:906
 drawProtonQAResults.C:907
 drawProtonQAResults.C:908
 drawProtonQAResults.C:909
 drawProtonQAResults.C:910
 drawProtonQAResults.C:911
 drawProtonQAResults.C:912
 drawProtonQAResults.C:913
 drawProtonQAResults.C:914
 drawProtonQAResults.C:915
 drawProtonQAResults.C:916
 drawProtonQAResults.C:917
 drawProtonQAResults.C:918
 drawProtonQAResults.C:919
 drawProtonQAResults.C:920
 drawProtonQAResults.C:921
 drawProtonQAResults.C:922
 drawProtonQAResults.C:923
 drawProtonQAResults.C:924
 drawProtonQAResults.C:925
 drawProtonQAResults.C:926
 drawProtonQAResults.C:927
 drawProtonQAResults.C:928
 drawProtonQAResults.C:929
 drawProtonQAResults.C:930
 drawProtonQAResults.C:931
 drawProtonQAResults.C:932
 drawProtonQAResults.C:933
 drawProtonQAResults.C:934
 drawProtonQAResults.C:935
 drawProtonQAResults.C:936
 drawProtonQAResults.C:937
 drawProtonQAResults.C:938
 drawProtonQAResults.C:939
 drawProtonQAResults.C:940
 drawProtonQAResults.C:941
 drawProtonQAResults.C:942
 drawProtonQAResults.C:943
 drawProtonQAResults.C:944
 drawProtonQAResults.C:945
 drawProtonQAResults.C:946
 drawProtonQAResults.C:947
 drawProtonQAResults.C:948
 drawProtonQAResults.C:949
 drawProtonQAResults.C:950
 drawProtonQAResults.C:951
 drawProtonQAResults.C:952
 drawProtonQAResults.C:953
 drawProtonQAResults.C:954
 drawProtonQAResults.C:955
 drawProtonQAResults.C:956
 drawProtonQAResults.C:957
 drawProtonQAResults.C:958
 drawProtonQAResults.C:959
 drawProtonQAResults.C:960
 drawProtonQAResults.C:961
 drawProtonQAResults.C:962
 drawProtonQAResults.C:963
 drawProtonQAResults.C:964
 drawProtonQAResults.C:965
 drawProtonQAResults.C:966
 drawProtonQAResults.C:967
 drawProtonQAResults.C:968
 drawProtonQAResults.C:969
 drawProtonQAResults.C:970
 drawProtonQAResults.C:971
 drawProtonQAResults.C:972
 drawProtonQAResults.C:973
 drawProtonQAResults.C:974
 drawProtonQAResults.C:975
 drawProtonQAResults.C:976
 drawProtonQAResults.C:977
 drawProtonQAResults.C:978
 drawProtonQAResults.C:979
 drawProtonQAResults.C:980
 drawProtonQAResults.C:981
 drawProtonQAResults.C:982
 drawProtonQAResults.C:983
 drawProtonQAResults.C:984
 drawProtonQAResults.C:985
 drawProtonQAResults.C:986
 drawProtonQAResults.C:987
 drawProtonQAResults.C:988
 drawProtonQAResults.C:989
 drawProtonQAResults.C:990
 drawProtonQAResults.C:991
 drawProtonQAResults.C:992
 drawProtonQAResults.C:993
 drawProtonQAResults.C:994
 drawProtonQAResults.C:995
 drawProtonQAResults.C:996
 drawProtonQAResults.C:997
 drawProtonQAResults.C:998
 drawProtonQAResults.C:999
 drawProtonQAResults.C:1000
 drawProtonQAResults.C:1001
 drawProtonQAResults.C:1002
 drawProtonQAResults.C:1003
 drawProtonQAResults.C:1004
 drawProtonQAResults.C:1005
 drawProtonQAResults.C:1006
 drawProtonQAResults.C:1007
 drawProtonQAResults.C:1008
 drawProtonQAResults.C:1009
 drawProtonQAResults.C:1010
 drawProtonQAResults.C:1011
 drawProtonQAResults.C:1012
 drawProtonQAResults.C:1013
 drawProtonQAResults.C:1014
 drawProtonQAResults.C:1015
 drawProtonQAResults.C:1016
 drawProtonQAResults.C:1017
 drawProtonQAResults.C:1018
 drawProtonQAResults.C:1019
 drawProtonQAResults.C:1020
 drawProtonQAResults.C:1021
 drawProtonQAResults.C:1022
 drawProtonQAResults.C:1023
 drawProtonQAResults.C:1024
 drawProtonQAResults.C:1025
 drawProtonQAResults.C:1026
 drawProtonQAResults.C:1027
 drawProtonQAResults.C:1028
 drawProtonQAResults.C:1029
 drawProtonQAResults.C:1030
 drawProtonQAResults.C:1031
 drawProtonQAResults.C:1032
 drawProtonQAResults.C:1033
 drawProtonQAResults.C:1034
 drawProtonQAResults.C:1035
 drawProtonQAResults.C:1036
 drawProtonQAResults.C:1037
 drawProtonQAResults.C:1038
 drawProtonQAResults.C:1039
 drawProtonQAResults.C:1040
 drawProtonQAResults.C:1041
 drawProtonQAResults.C:1042
 drawProtonQAResults.C:1043
 drawProtonQAResults.C:1044
 drawProtonQAResults.C:1045
 drawProtonQAResults.C:1046
 drawProtonQAResults.C:1047
 drawProtonQAResults.C:1048
 drawProtonQAResults.C:1049
 drawProtonQAResults.C:1050
 drawProtonQAResults.C:1051
 drawProtonQAResults.C:1052
 drawProtonQAResults.C:1053
 drawProtonQAResults.C:1054
 drawProtonQAResults.C:1055
 drawProtonQAResults.C:1056
 drawProtonQAResults.C:1057
 drawProtonQAResults.C:1058
 drawProtonQAResults.C:1059
 drawProtonQAResults.C:1060
 drawProtonQAResults.C:1061
 drawProtonQAResults.C:1062
 drawProtonQAResults.C:1063
 drawProtonQAResults.C:1064
 drawProtonQAResults.C:1065
 drawProtonQAResults.C:1066
 drawProtonQAResults.C:1067
 drawProtonQAResults.C:1068
 drawProtonQAResults.C:1069
 drawProtonQAResults.C:1070
 drawProtonQAResults.C:1071
 drawProtonQAResults.C:1072
 drawProtonQAResults.C:1073
 drawProtonQAResults.C:1074
 drawProtonQAResults.C:1075
 drawProtonQAResults.C:1076
 drawProtonQAResults.C:1077
 drawProtonQAResults.C:1078
 drawProtonQAResults.C:1079
 drawProtonQAResults.C:1080
 drawProtonQAResults.C:1081
 drawProtonQAResults.C:1082
 drawProtonQAResults.C:1083
 drawProtonQAResults.C:1084
 drawProtonQAResults.C:1085
 drawProtonQAResults.C:1086
 drawProtonQAResults.C:1087
 drawProtonQAResults.C:1088
 drawProtonQAResults.C:1089
 drawProtonQAResults.C:1090
 drawProtonQAResults.C:1091
 drawProtonQAResults.C:1092
 drawProtonQAResults.C:1093
 drawProtonQAResults.C:1094
 drawProtonQAResults.C:1095
 drawProtonQAResults.C:1096
 drawProtonQAResults.C:1097
 drawProtonQAResults.C:1098
 drawProtonQAResults.C:1099
 drawProtonQAResults.C:1100
 drawProtonQAResults.C:1101
 drawProtonQAResults.C:1102
 drawProtonQAResults.C:1103
 drawProtonQAResults.C:1104
 drawProtonQAResults.C:1105
 drawProtonQAResults.C:1106
 drawProtonQAResults.C:1107
 drawProtonQAResults.C:1108
 drawProtonQAResults.C:1109
 drawProtonQAResults.C:1110
 drawProtonQAResults.C:1111
 drawProtonQAResults.C:1112
 drawProtonQAResults.C:1113
 drawProtonQAResults.C:1114
 drawProtonQAResults.C:1115
 drawProtonQAResults.C:1116
 drawProtonQAResults.C:1117
 drawProtonQAResults.C:1118
 drawProtonQAResults.C:1119
 drawProtonQAResults.C:1120
 drawProtonQAResults.C:1121
 drawProtonQAResults.C:1122
 drawProtonQAResults.C:1123
 drawProtonQAResults.C:1124
 drawProtonQAResults.C:1125
 drawProtonQAResults.C:1126
 drawProtonQAResults.C:1127
 drawProtonQAResults.C:1128
 drawProtonQAResults.C:1129
 drawProtonQAResults.C:1130
 drawProtonQAResults.C:1131
 drawProtonQAResults.C:1132
 drawProtonQAResults.C:1133
 drawProtonQAResults.C:1134
 drawProtonQAResults.C:1135
 drawProtonQAResults.C:1136
 drawProtonQAResults.C:1137
 drawProtonQAResults.C:1138
 drawProtonQAResults.C:1139
 drawProtonQAResults.C:1140
 drawProtonQAResults.C:1141
 drawProtonQAResults.C:1142
 drawProtonQAResults.C:1143
 drawProtonQAResults.C:1144
 drawProtonQAResults.C:1145
 drawProtonQAResults.C:1146
 drawProtonQAResults.C:1147
 drawProtonQAResults.C:1148
 drawProtonQAResults.C:1149
 drawProtonQAResults.C:1150
 drawProtonQAResults.C:1151
 drawProtonQAResults.C:1152
 drawProtonQAResults.C:1153
 drawProtonQAResults.C:1154
 drawProtonQAResults.C:1155
 drawProtonQAResults.C:1156
 drawProtonQAResults.C:1157
 drawProtonQAResults.C:1158
 drawProtonQAResults.C:1159
 drawProtonQAResults.C:1160
 drawProtonQAResults.C:1161
 drawProtonQAResults.C:1162
 drawProtonQAResults.C:1163
 drawProtonQAResults.C:1164
 drawProtonQAResults.C:1165
 drawProtonQAResults.C:1166
 drawProtonQAResults.C:1167
 drawProtonQAResults.C:1168
 drawProtonQAResults.C:1169
 drawProtonQAResults.C:1170
 drawProtonQAResults.C:1171
 drawProtonQAResults.C:1172
 drawProtonQAResults.C:1173
 drawProtonQAResults.C:1174
 drawProtonQAResults.C:1175
 drawProtonQAResults.C:1176
 drawProtonQAResults.C:1177
 drawProtonQAResults.C:1178
 drawProtonQAResults.C:1179
 drawProtonQAResults.C:1180
 drawProtonQAResults.C:1181
 drawProtonQAResults.C:1182
 drawProtonQAResults.C:1183
 drawProtonQAResults.C:1184
 drawProtonQAResults.C:1185
 drawProtonQAResults.C:1186
 drawProtonQAResults.C:1187
 drawProtonQAResults.C:1188
 drawProtonQAResults.C:1189
 drawProtonQAResults.C:1190
 drawProtonQAResults.C:1191
 drawProtonQAResults.C:1192
 drawProtonQAResults.C:1193
 drawProtonQAResults.C:1194
 drawProtonQAResults.C:1195
 drawProtonQAResults.C:1196
 drawProtonQAResults.C:1197
 drawProtonQAResults.C:1198
 drawProtonQAResults.C:1199
 drawProtonQAResults.C:1200
 drawProtonQAResults.C:1201
 drawProtonQAResults.C:1202
 drawProtonQAResults.C:1203
 drawProtonQAResults.C:1204
 drawProtonQAResults.C:1205
 drawProtonQAResults.C:1206
 drawProtonQAResults.C:1207
 drawProtonQAResults.C:1208
 drawProtonQAResults.C:1209
 drawProtonQAResults.C:1210
 drawProtonQAResults.C:1211
 drawProtonQAResults.C:1212
 drawProtonQAResults.C:1213
 drawProtonQAResults.C:1214
 drawProtonQAResults.C:1215
 drawProtonQAResults.C:1216
 drawProtonQAResults.C:1217
 drawProtonQAResults.C:1218
 drawProtonQAResults.C:1219
 drawProtonQAResults.C:1220
 drawProtonQAResults.C:1221
 drawProtonQAResults.C:1222
 drawProtonQAResults.C:1223
 drawProtonQAResults.C:1224
 drawProtonQAResults.C:1225
 drawProtonQAResults.C:1226
 drawProtonQAResults.C:1227
 drawProtonQAResults.C:1228
 drawProtonQAResults.C:1229
 drawProtonQAResults.C:1230
 drawProtonQAResults.C:1231
 drawProtonQAResults.C:1232
 drawProtonQAResults.C:1233
 drawProtonQAResults.C:1234
 drawProtonQAResults.C:1235
 drawProtonQAResults.C:1236
 drawProtonQAResults.C:1237
 drawProtonQAResults.C:1238
 drawProtonQAResults.C:1239
 drawProtonQAResults.C:1240
 drawProtonQAResults.C:1241
 drawProtonQAResults.C:1242
 drawProtonQAResults.C:1243
 drawProtonQAResults.C:1244
 drawProtonQAResults.C:1245
 drawProtonQAResults.C:1246
 drawProtonQAResults.C:1247
 drawProtonQAResults.C:1248
 drawProtonQAResults.C:1249
 drawProtonQAResults.C:1250
 drawProtonQAResults.C:1251
 drawProtonQAResults.C:1252
 drawProtonQAResults.C:1253
 drawProtonQAResults.C:1254
 drawProtonQAResults.C:1255
 drawProtonQAResults.C:1256
 drawProtonQAResults.C:1257
 drawProtonQAResults.C:1258
 drawProtonQAResults.C:1259
 drawProtonQAResults.C:1260
 drawProtonQAResults.C:1261
 drawProtonQAResults.C:1262
 drawProtonQAResults.C:1263
 drawProtonQAResults.C:1264
 drawProtonQAResults.C:1265
 drawProtonQAResults.C:1266
 drawProtonQAResults.C:1267
 drawProtonQAResults.C:1268
 drawProtonQAResults.C:1269
 drawProtonQAResults.C:1270
 drawProtonQAResults.C:1271
 drawProtonQAResults.C:1272
 drawProtonQAResults.C:1273
 drawProtonQAResults.C:1274
 drawProtonQAResults.C:1275
 drawProtonQAResults.C:1276
 drawProtonQAResults.C:1277
 drawProtonQAResults.C:1278
 drawProtonQAResults.C:1279
 drawProtonQAResults.C:1280
 drawProtonQAResults.C:1281
 drawProtonQAResults.C:1282
 drawProtonQAResults.C:1283
 drawProtonQAResults.C:1284
 drawProtonQAResults.C:1285
 drawProtonQAResults.C:1286
 drawProtonQAResults.C:1287
 drawProtonQAResults.C:1288
 drawProtonQAResults.C:1289
 drawProtonQAResults.C:1290
 drawProtonQAResults.C:1291
 drawProtonQAResults.C:1292
 drawProtonQAResults.C:1293
 drawProtonQAResults.C:1294
 drawProtonQAResults.C:1295
 drawProtonQAResults.C:1296
 drawProtonQAResults.C:1297
 drawProtonQAResults.C:1298
 drawProtonQAResults.C:1299
 drawProtonQAResults.C:1300
 drawProtonQAResults.C:1301
 drawProtonQAResults.C:1302
 drawProtonQAResults.C:1303
 drawProtonQAResults.C:1304
 drawProtonQAResults.C:1305
 drawProtonQAResults.C:1306
 drawProtonQAResults.C:1307
 drawProtonQAResults.C:1308
 drawProtonQAResults.C:1309
 drawProtonQAResults.C:1310
 drawProtonQAResults.C:1311
 drawProtonQAResults.C:1312
 drawProtonQAResults.C:1313
 drawProtonQAResults.C:1314
 drawProtonQAResults.C:1315
 drawProtonQAResults.C:1316
 drawProtonQAResults.C:1317
 drawProtonQAResults.C:1318
 drawProtonQAResults.C:1319
 drawProtonQAResults.C:1320
 drawProtonQAResults.C:1321
 drawProtonQAResults.C:1322
 drawProtonQAResults.C:1323
 drawProtonQAResults.C:1324
 drawProtonQAResults.C:1325
 drawProtonQAResults.C:1326
 drawProtonQAResults.C:1327
 drawProtonQAResults.C:1328
 drawProtonQAResults.C:1329
 drawProtonQAResults.C:1330
 drawProtonQAResults.C:1331
 drawProtonQAResults.C:1332
 drawProtonQAResults.C:1333
 drawProtonQAResults.C:1334
 drawProtonQAResults.C:1335
 drawProtonQAResults.C:1336
 drawProtonQAResults.C:1337
 drawProtonQAResults.C:1338
 drawProtonQAResults.C:1339
 drawProtonQAResults.C:1340
 drawProtonQAResults.C:1341
 drawProtonQAResults.C:1342
 drawProtonQAResults.C:1343
 drawProtonQAResults.C:1344
 drawProtonQAResults.C:1345
 drawProtonQAResults.C:1346
 drawProtonQAResults.C:1347
 drawProtonQAResults.C:1348
 drawProtonQAResults.C:1349
 drawProtonQAResults.C:1350
 drawProtonQAResults.C:1351
 drawProtonQAResults.C:1352
 drawProtonQAResults.C:1353
 drawProtonQAResults.C:1354
 drawProtonQAResults.C:1355
 drawProtonQAResults.C:1356
 drawProtonQAResults.C:1357
 drawProtonQAResults.C:1358
 drawProtonQAResults.C:1359
 drawProtonQAResults.C:1360
 drawProtonQAResults.C:1361
 drawProtonQAResults.C:1362
 drawProtonQAResults.C:1363
 drawProtonQAResults.C:1364
 drawProtonQAResults.C:1365
 drawProtonQAResults.C:1366
 drawProtonQAResults.C:1367
 drawProtonQAResults.C:1368
 drawProtonQAResults.C:1369
 drawProtonQAResults.C:1370
 drawProtonQAResults.C:1371
 drawProtonQAResults.C:1372
 drawProtonQAResults.C:1373
 drawProtonQAResults.C:1374
 drawProtonQAResults.C:1375
 drawProtonQAResults.C:1376
 drawProtonQAResults.C:1377
 drawProtonQAResults.C:1378
 drawProtonQAResults.C:1379
 drawProtonQAResults.C:1380
 drawProtonQAResults.C:1381
 drawProtonQAResults.C:1382
 drawProtonQAResults.C:1383
 drawProtonQAResults.C:1384
 drawProtonQAResults.C:1385
 drawProtonQAResults.C:1386
 drawProtonQAResults.C:1387
 drawProtonQAResults.C:1388
 drawProtonQAResults.C:1389
 drawProtonQAResults.C:1390
 drawProtonQAResults.C:1391
 drawProtonQAResults.C:1392
 drawProtonQAResults.C:1393
 drawProtonQAResults.C:1394
 drawProtonQAResults.C:1395
 drawProtonQAResults.C:1396
 drawProtonQAResults.C:1397
 drawProtonQAResults.C:1398
 drawProtonQAResults.C:1399
 drawProtonQAResults.C:1400
 drawProtonQAResults.C:1401
 drawProtonQAResults.C:1402
 drawProtonQAResults.C:1403
 drawProtonQAResults.C:1404
 drawProtonQAResults.C:1405
 drawProtonQAResults.C:1406
 drawProtonQAResults.C:1407
 drawProtonQAResults.C:1408
 drawProtonQAResults.C:1409
 drawProtonQAResults.C:1410
 drawProtonQAResults.C:1411
 drawProtonQAResults.C:1412
 drawProtonQAResults.C:1413
 drawProtonQAResults.C:1414
 drawProtonQAResults.C:1415
 drawProtonQAResults.C:1416
 drawProtonQAResults.C:1417
 drawProtonQAResults.C:1418
 drawProtonQAResults.C:1419
 drawProtonQAResults.C:1420
 drawProtonQAResults.C:1421
 drawProtonQAResults.C:1422
 drawProtonQAResults.C:1423
 drawProtonQAResults.C:1424
 drawProtonQAResults.C:1425
 drawProtonQAResults.C:1426
 drawProtonQAResults.C:1427
 drawProtonQAResults.C:1428
 drawProtonQAResults.C:1429
 drawProtonQAResults.C:1430
 drawProtonQAResults.C:1431
 drawProtonQAResults.C:1432
 drawProtonQAResults.C:1433
 drawProtonQAResults.C:1434
 drawProtonQAResults.C:1435
 drawProtonQAResults.C:1436
 drawProtonQAResults.C:1437
 drawProtonQAResults.C:1438
 drawProtonQAResults.C:1439
 drawProtonQAResults.C:1440
 drawProtonQAResults.C:1441
 drawProtonQAResults.C:1442
 drawProtonQAResults.C:1443
 drawProtonQAResults.C:1444
 drawProtonQAResults.C:1445
 drawProtonQAResults.C:1446
 drawProtonQAResults.C:1447
 drawProtonQAResults.C:1448
 drawProtonQAResults.C:1449
 drawProtonQAResults.C:1450
 drawProtonQAResults.C:1451
 drawProtonQAResults.C:1452
 drawProtonQAResults.C:1453
 drawProtonQAResults.C:1454
 drawProtonQAResults.C:1455
 drawProtonQAResults.C:1456
 drawProtonQAResults.C:1457
 drawProtonQAResults.C:1458
 drawProtonQAResults.C:1459
 drawProtonQAResults.C:1460
 drawProtonQAResults.C:1461
 drawProtonQAResults.C:1462
 drawProtonQAResults.C:1463
 drawProtonQAResults.C:1464
 drawProtonQAResults.C:1465
 drawProtonQAResults.C:1466
 drawProtonQAResults.C:1467
 drawProtonQAResults.C:1468
 drawProtonQAResults.C:1469
 drawProtonQAResults.C:1470
 drawProtonQAResults.C:1471
 drawProtonQAResults.C:1472
 drawProtonQAResults.C:1473
 drawProtonQAResults.C:1474
 drawProtonQAResults.C:1475
 drawProtonQAResults.C:1476
 drawProtonQAResults.C:1477
 drawProtonQAResults.C:1478
 drawProtonQAResults.C:1479
 drawProtonQAResults.C:1480
 drawProtonQAResults.C:1481
 drawProtonQAResults.C:1482
 drawProtonQAResults.C:1483
 drawProtonQAResults.C:1484
 drawProtonQAResults.C:1485
 drawProtonQAResults.C:1486
 drawProtonQAResults.C:1487
 drawProtonQAResults.C:1488
 drawProtonQAResults.C:1489
 drawProtonQAResults.C:1490
 drawProtonQAResults.C:1491
 drawProtonQAResults.C:1492
 drawProtonQAResults.C:1493
 drawProtonQAResults.C:1494
 drawProtonQAResults.C:1495
 drawProtonQAResults.C:1496
 drawProtonQAResults.C:1497
 drawProtonQAResults.C:1498
 drawProtonQAResults.C:1499
 drawProtonQAResults.C:1500
 drawProtonQAResults.C:1501
 drawProtonQAResults.C:1502
 drawProtonQAResults.C:1503
 drawProtonQAResults.C:1504
 drawProtonQAResults.C:1505
 drawProtonQAResults.C:1506
 drawProtonQAResults.C:1507
 drawProtonQAResults.C:1508
 drawProtonQAResults.C:1509
 drawProtonQAResults.C:1510
 drawProtonQAResults.C:1511
 drawProtonQAResults.C:1512
 drawProtonQAResults.C:1513
 drawProtonQAResults.C:1514
 drawProtonQAResults.C:1515
 drawProtonQAResults.C:1516
 drawProtonQAResults.C:1517
 drawProtonQAResults.C:1518
 drawProtonQAResults.C:1519
 drawProtonQAResults.C:1520
 drawProtonQAResults.C:1521
 drawProtonQAResults.C:1522
 drawProtonQAResults.C:1523
 drawProtonQAResults.C:1524
 drawProtonQAResults.C:1525
 drawProtonQAResults.C:1526
 drawProtonQAResults.C:1527
 drawProtonQAResults.C:1528
 drawProtonQAResults.C:1529
 drawProtonQAResults.C:1530
 drawProtonQAResults.C:1531
 drawProtonQAResults.C:1532
 drawProtonQAResults.C:1533
 drawProtonQAResults.C:1534
 drawProtonQAResults.C:1535
 drawProtonQAResults.C:1536
 drawProtonQAResults.C:1537
 drawProtonQAResults.C:1538
 drawProtonQAResults.C:1539
 drawProtonQAResults.C:1540
 drawProtonQAResults.C:1541
 drawProtonQAResults.C:1542
 drawProtonQAResults.C:1543
 drawProtonQAResults.C:1544
 drawProtonQAResults.C:1545
 drawProtonQAResults.C:1546
 drawProtonQAResults.C:1547
 drawProtonQAResults.C:1548
 drawProtonQAResults.C:1549
 drawProtonQAResults.C:1550
 drawProtonQAResults.C:1551
 drawProtonQAResults.C:1552
 drawProtonQAResults.C:1553
 drawProtonQAResults.C:1554
 drawProtonQAResults.C:1555
 drawProtonQAResults.C:1556
 drawProtonQAResults.C:1557
 drawProtonQAResults.C:1558
 drawProtonQAResults.C:1559
 drawProtonQAResults.C:1560
 drawProtonQAResults.C:1561
 drawProtonQAResults.C:1562
 drawProtonQAResults.C:1563
 drawProtonQAResults.C:1564
 drawProtonQAResults.C:1565
 drawProtonQAResults.C:1566
 drawProtonQAResults.C:1567
 drawProtonQAResults.C:1568
 drawProtonQAResults.C:1569
 drawProtonQAResults.C:1570
 drawProtonQAResults.C:1571
 drawProtonQAResults.C:1572
 drawProtonQAResults.C:1573
 drawProtonQAResults.C:1574
 drawProtonQAResults.C:1575
 drawProtonQAResults.C:1576
 drawProtonQAResults.C:1577
 drawProtonQAResults.C:1578
 drawProtonQAResults.C:1579
 drawProtonQAResults.C:1580
 drawProtonQAResults.C:1581
 drawProtonQAResults.C:1582
 drawProtonQAResults.C:1583
 drawProtonQAResults.C:1584
 drawProtonQAResults.C:1585
 drawProtonQAResults.C:1586
 drawProtonQAResults.C:1587
 drawProtonQAResults.C:1588
 drawProtonQAResults.C:1589
 drawProtonQAResults.C:1590
 drawProtonQAResults.C:1591
 drawProtonQAResults.C:1592
 drawProtonQAResults.C:1593
 drawProtonQAResults.C:1594
 drawProtonQAResults.C:1595
 drawProtonQAResults.C:1596
 drawProtonQAResults.C:1597
 drawProtonQAResults.C:1598
 drawProtonQAResults.C:1599
 drawProtonQAResults.C:1600
 drawProtonQAResults.C:1601
 drawProtonQAResults.C:1602
 drawProtonQAResults.C:1603
 drawProtonQAResults.C:1604
 drawProtonQAResults.C:1605
 drawProtonQAResults.C:1606
 drawProtonQAResults.C:1607
 drawProtonQAResults.C:1608
 drawProtonQAResults.C:1609
 drawProtonQAResults.C:1610
 drawProtonQAResults.C:1611
 drawProtonQAResults.C:1612
 drawProtonQAResults.C:1613
 drawProtonQAResults.C:1614
 drawProtonQAResults.C:1615
 drawProtonQAResults.C:1616
 drawProtonQAResults.C:1617
 drawProtonQAResults.C:1618
 drawProtonQAResults.C:1619
 drawProtonQAResults.C:1620
 drawProtonQAResults.C:1621
 drawProtonQAResults.C:1622
 drawProtonQAResults.C:1623
 drawProtonQAResults.C:1624
 drawProtonQAResults.C:1625
 drawProtonQAResults.C:1626
 drawProtonQAResults.C:1627
 drawProtonQAResults.C:1628
 drawProtonQAResults.C:1629
 drawProtonQAResults.C:1630
 drawProtonQAResults.C:1631
 drawProtonQAResults.C:1632
 drawProtonQAResults.C:1633
 drawProtonQAResults.C:1634
 drawProtonQAResults.C:1635
 drawProtonQAResults.C:1636
 drawProtonQAResults.C:1637
 drawProtonQAResults.C:1638
 drawProtonQAResults.C:1639
 drawProtonQAResults.C:1640
 drawProtonQAResults.C:1641
 drawProtonQAResults.C:1642
 drawProtonQAResults.C:1643
 drawProtonQAResults.C:1644
 drawProtonQAResults.C:1645
 drawProtonQAResults.C:1646
 drawProtonQAResults.C:1647
 drawProtonQAResults.C:1648
 drawProtonQAResults.C:1649
 drawProtonQAResults.C:1650
 drawProtonQAResults.C:1651
 drawProtonQAResults.C:1652
 drawProtonQAResults.C:1653
 drawProtonQAResults.C:1654
 drawProtonQAResults.C:1655
 drawProtonQAResults.C:1656
 drawProtonQAResults.C:1657
 drawProtonQAResults.C:1658
 drawProtonQAResults.C:1659
 drawProtonQAResults.C:1660
 drawProtonQAResults.C:1661
 drawProtonQAResults.C:1662
 drawProtonQAResults.C:1663
 drawProtonQAResults.C:1664
 drawProtonQAResults.C:1665
 drawProtonQAResults.C:1666
 drawProtonQAResults.C:1667
 drawProtonQAResults.C:1668
 drawProtonQAResults.C:1669
 drawProtonQAResults.C:1670
 drawProtonQAResults.C:1671
 drawProtonQAResults.C:1672
 drawProtonQAResults.C:1673
 drawProtonQAResults.C:1674
 drawProtonQAResults.C:1675
 drawProtonQAResults.C:1676
 drawProtonQAResults.C:1677
 drawProtonQAResults.C:1678
 drawProtonQAResults.C:1679
 drawProtonQAResults.C:1680
 drawProtonQAResults.C:1681
 drawProtonQAResults.C:1682
 drawProtonQAResults.C:1683
 drawProtonQAResults.C:1684
 drawProtonQAResults.C:1685
 drawProtonQAResults.C:1686
 drawProtonQAResults.C:1687
 drawProtonQAResults.C:1688
 drawProtonQAResults.C:1689
 drawProtonQAResults.C:1690
 drawProtonQAResults.C:1691
 drawProtonQAResults.C:1692
 drawProtonQAResults.C:1693
 drawProtonQAResults.C:1694
 drawProtonQAResults.C:1695
 drawProtonQAResults.C:1696
 drawProtonQAResults.C:1697
 drawProtonQAResults.C:1698
 drawProtonQAResults.C:1699
 drawProtonQAResults.C:1700
 drawProtonQAResults.C:1701
 drawProtonQAResults.C:1702
 drawProtonQAResults.C:1703
 drawProtonQAResults.C:1704
 drawProtonQAResults.C:1705
 drawProtonQAResults.C:1706
 drawProtonQAResults.C:1707
 drawProtonQAResults.C:1708
 drawProtonQAResults.C:1709
 drawProtonQAResults.C:1710
 drawProtonQAResults.C:1711
 drawProtonQAResults.C:1712
 drawProtonQAResults.C:1713
 drawProtonQAResults.C:1714
 drawProtonQAResults.C:1715
 drawProtonQAResults.C:1716
 drawProtonQAResults.C:1717
 drawProtonQAResults.C:1718
 drawProtonQAResults.C:1719
 drawProtonQAResults.C:1720
 drawProtonQAResults.C:1721
 drawProtonQAResults.C:1722
 drawProtonQAResults.C:1723
 drawProtonQAResults.C:1724
 drawProtonQAResults.C:1725
 drawProtonQAResults.C:1726
 drawProtonQAResults.C:1727
 drawProtonQAResults.C:1728
 drawProtonQAResults.C:1729
 drawProtonQAResults.C:1730
 drawProtonQAResults.C:1731
 drawProtonQAResults.C:1732
 drawProtonQAResults.C:1733
 drawProtonQAResults.C:1734
 drawProtonQAResults.C:1735
 drawProtonQAResults.C:1736
 drawProtonQAResults.C:1737
 drawProtonQAResults.C:1738
 drawProtonQAResults.C:1739
 drawProtonQAResults.C:1740
 drawProtonQAResults.C:1741
 drawProtonQAResults.C:1742
 drawProtonQAResults.C:1743
 drawProtonQAResults.C:1744
 drawProtonQAResults.C:1745
 drawProtonQAResults.C:1746
 drawProtonQAResults.C:1747
 drawProtonQAResults.C:1748
 drawProtonQAResults.C:1749
 drawProtonQAResults.C:1750
 drawProtonQAResults.C:1751
 drawProtonQAResults.C:1752
 drawProtonQAResults.C:1753
 drawProtonQAResults.C:1754
 drawProtonQAResults.C:1755
 drawProtonQAResults.C:1756
 drawProtonQAResults.C:1757
 drawProtonQAResults.C:1758
 drawProtonQAResults.C:1759
 drawProtonQAResults.C:1760
 drawProtonQAResults.C:1761
 drawProtonQAResults.C:1762
 drawProtonQAResults.C:1763
 drawProtonQAResults.C:1764
 drawProtonQAResults.C:1765
 drawProtonQAResults.C:1766
 drawProtonQAResults.C:1767
 drawProtonQAResults.C:1768
 drawProtonQAResults.C:1769
 drawProtonQAResults.C:1770
 drawProtonQAResults.C:1771
 drawProtonQAResults.C:1772
 drawProtonQAResults.C:1773
 drawProtonQAResults.C:1774
 drawProtonQAResults.C:1775
 drawProtonQAResults.C:1776
 drawProtonQAResults.C:1777
 drawProtonQAResults.C:1778
 drawProtonQAResults.C:1779
 drawProtonQAResults.C:1780
 drawProtonQAResults.C:1781
 drawProtonQAResults.C:1782
 drawProtonQAResults.C:1783
 drawProtonQAResults.C:1784
 drawProtonQAResults.C:1785
 drawProtonQAResults.C:1786
 drawProtonQAResults.C:1787
 drawProtonQAResults.C:1788
 drawProtonQAResults.C:1789
 drawProtonQAResults.C:1790
 drawProtonQAResults.C:1791
 drawProtonQAResults.C:1792
 drawProtonQAResults.C:1793
 drawProtonQAResults.C:1794
 drawProtonQAResults.C:1795
 drawProtonQAResults.C:1796
 drawProtonQAResults.C:1797
 drawProtonQAResults.C:1798
 drawProtonQAResults.C:1799
 drawProtonQAResults.C:1800
 drawProtonQAResults.C:1801
 drawProtonQAResults.C:1802
 drawProtonQAResults.C:1803
 drawProtonQAResults.C:1804
 drawProtonQAResults.C:1805
 drawProtonQAResults.C:1806
 drawProtonQAResults.C:1807
 drawProtonQAResults.C:1808
 drawProtonQAResults.C:1809
 drawProtonQAResults.C:1810
 drawProtonQAResults.C:1811
 drawProtonQAResults.C:1812
 drawProtonQAResults.C:1813
 drawProtonQAResults.C:1814
 drawProtonQAResults.C:1815
 drawProtonQAResults.C:1816
 drawProtonQAResults.C:1817
 drawProtonQAResults.C:1818
 drawProtonQAResults.C:1819
 drawProtonQAResults.C:1820
 drawProtonQAResults.C:1821
 drawProtonQAResults.C:1822
 drawProtonQAResults.C:1823
 drawProtonQAResults.C:1824
 drawProtonQAResults.C:1825
 drawProtonQAResults.C:1826
 drawProtonQAResults.C:1827
 drawProtonQAResults.C:1828
 drawProtonQAResults.C:1829
 drawProtonQAResults.C:1830
 drawProtonQAResults.C:1831
 drawProtonQAResults.C:1832
 drawProtonQAResults.C:1833
 drawProtonQAResults.C:1834
 drawProtonQAResults.C:1835
 drawProtonQAResults.C:1836
 drawProtonQAResults.C:1837
 drawProtonQAResults.C:1838
 drawProtonQAResults.C:1839
 drawProtonQAResults.C:1840
 drawProtonQAResults.C:1841
 drawProtonQAResults.C:1842
 drawProtonQAResults.C:1843
 drawProtonQAResults.C:1844
 drawProtonQAResults.C:1845
 drawProtonQAResults.C:1846
 drawProtonQAResults.C:1847
 drawProtonQAResults.C:1848
 drawProtonQAResults.C:1849
 drawProtonQAResults.C:1850
 drawProtonQAResults.C:1851
 drawProtonQAResults.C:1852
 drawProtonQAResults.C:1853
 drawProtonQAResults.C:1854
 drawProtonQAResults.C:1855
 drawProtonQAResults.C:1856
 drawProtonQAResults.C:1857
 drawProtonQAResults.C:1858
 drawProtonQAResults.C:1859
 drawProtonQAResults.C:1860
 drawProtonQAResults.C:1861
 drawProtonQAResults.C:1862
 drawProtonQAResults.C:1863
 drawProtonQAResults.C:1864
 drawProtonQAResults.C:1865
 drawProtonQAResults.C:1866
 drawProtonQAResults.C:1867
 drawProtonQAResults.C:1868
 drawProtonQAResults.C:1869
 drawProtonQAResults.C:1870
 drawProtonQAResults.C:1871
 drawProtonQAResults.C:1872
 drawProtonQAResults.C:1873
 drawProtonQAResults.C:1874
 drawProtonQAResults.C:1875
 drawProtonQAResults.C:1876
 drawProtonQAResults.C:1877
 drawProtonQAResults.C:1878
 drawProtonQAResults.C:1879
 drawProtonQAResults.C:1880
 drawProtonQAResults.C:1881
 drawProtonQAResults.C:1882
 drawProtonQAResults.C:1883
 drawProtonQAResults.C:1884
 drawProtonQAResults.C:1885
 drawProtonQAResults.C:1886
 drawProtonQAResults.C:1887
 drawProtonQAResults.C:1888
 drawProtonQAResults.C:1889
 drawProtonQAResults.C:1890
 drawProtonQAResults.C:1891
 drawProtonQAResults.C:1892
 drawProtonQAResults.C:1893
 drawProtonQAResults.C:1894
 drawProtonQAResults.C:1895
 drawProtonQAResults.C:1896
 drawProtonQAResults.C:1897
 drawProtonQAResults.C:1898
 drawProtonQAResults.C:1899
 drawProtonQAResults.C:1900
 drawProtonQAResults.C:1901
 drawProtonQAResults.C:1902
 drawProtonQAResults.C:1903
 drawProtonQAResults.C:1904
 drawProtonQAResults.C:1905
 drawProtonQAResults.C:1906
 drawProtonQAResults.C:1907
 drawProtonQAResults.C:1908
 drawProtonQAResults.C:1909
 drawProtonQAResults.C:1910
 drawProtonQAResults.C:1911
 drawProtonQAResults.C:1912
 drawProtonQAResults.C:1913
 drawProtonQAResults.C:1914
 drawProtonQAResults.C:1915
 drawProtonQAResults.C:1916
 drawProtonQAResults.C:1917
 drawProtonQAResults.C:1918
 drawProtonQAResults.C:1919
 drawProtonQAResults.C:1920
 drawProtonQAResults.C:1921
 drawProtonQAResults.C:1922
 drawProtonQAResults.C:1923
 drawProtonQAResults.C:1924
 drawProtonQAResults.C:1925
 drawProtonQAResults.C:1926
 drawProtonQAResults.C:1927
 drawProtonQAResults.C:1928
 drawProtonQAResults.C:1929
 drawProtonQAResults.C:1930
 drawProtonQAResults.C:1931
 drawProtonQAResults.C:1932
 drawProtonQAResults.C:1933
 drawProtonQAResults.C:1934
 drawProtonQAResults.C:1935
 drawProtonQAResults.C:1936
 drawProtonQAResults.C:1937
 drawProtonQAResults.C:1938
 drawProtonQAResults.C:1939
 drawProtonQAResults.C:1940
 drawProtonQAResults.C:1941
 drawProtonQAResults.C:1942
 drawProtonQAResults.C:1943
 drawProtonQAResults.C:1944
 drawProtonQAResults.C:1945
 drawProtonQAResults.C:1946
 drawProtonQAResults.C:1947
 drawProtonQAResults.C:1948
 drawProtonQAResults.C:1949
 drawProtonQAResults.C:1950
 drawProtonQAResults.C:1951
 drawProtonQAResults.C:1952
 drawProtonQAResults.C:1953
 drawProtonQAResults.C:1954
 drawProtonQAResults.C:1955
 drawProtonQAResults.C:1956
 drawProtonQAResults.C:1957
 drawProtonQAResults.C:1958
 drawProtonQAResults.C:1959
 drawProtonQAResults.C:1960
 drawProtonQAResults.C:1961
 drawProtonQAResults.C:1962
 drawProtonQAResults.C:1963
 drawProtonQAResults.C:1964
 drawProtonQAResults.C:1965
 drawProtonQAResults.C:1966
 drawProtonQAResults.C:1967
 drawProtonQAResults.C:1968
 drawProtonQAResults.C:1969
 drawProtonQAResults.C:1970
 drawProtonQAResults.C:1971
 drawProtonQAResults.C:1972
 drawProtonQAResults.C:1973
 drawProtonQAResults.C:1974
 drawProtonQAResults.C:1975
 drawProtonQAResults.C:1976
 drawProtonQAResults.C:1977
 drawProtonQAResults.C:1978
 drawProtonQAResults.C:1979
 drawProtonQAResults.C:1980
 drawProtonQAResults.C:1981
 drawProtonQAResults.C:1982
 drawProtonQAResults.C:1983
 drawProtonQAResults.C:1984
 drawProtonQAResults.C:1985
 drawProtonQAResults.C:1986
 drawProtonQAResults.C:1987
 drawProtonQAResults.C:1988
 drawProtonQAResults.C:1989
 drawProtonQAResults.C:1990
 drawProtonQAResults.C:1991
 drawProtonQAResults.C:1992
 drawProtonQAResults.C:1993
 drawProtonQAResults.C:1994
 drawProtonQAResults.C:1995
 drawProtonQAResults.C:1996
 drawProtonQAResults.C:1997
 drawProtonQAResults.C:1998
 drawProtonQAResults.C:1999
 drawProtonQAResults.C:2000
 drawProtonQAResults.C:2001
 drawProtonQAResults.C:2002
 drawProtonQAResults.C:2003
 drawProtonQAResults.C:2004
 drawProtonQAResults.C:2005
 drawProtonQAResults.C:2006
 drawProtonQAResults.C:2007
 drawProtonQAResults.C:2008
 drawProtonQAResults.C:2009
 drawProtonQAResults.C:2010
 drawProtonQAResults.C:2011
 drawProtonQAResults.C:2012
 drawProtonQAResults.C:2013
 drawProtonQAResults.C:2014
 drawProtonQAResults.C:2015
 drawProtonQAResults.C:2016
 drawProtonQAResults.C:2017
 drawProtonQAResults.C:2018
 drawProtonQAResults.C:2019
 drawProtonQAResults.C:2020
 drawProtonQAResults.C:2021
 drawProtonQAResults.C:2022
 drawProtonQAResults.C:2023
 drawProtonQAResults.C:2024
 drawProtonQAResults.C:2025
 drawProtonQAResults.C:2026
 drawProtonQAResults.C:2027
 drawProtonQAResults.C:2028
 drawProtonQAResults.C:2029
 drawProtonQAResults.C:2030
 drawProtonQAResults.C:2031
 drawProtonQAResults.C:2032
 drawProtonQAResults.C:2033
 drawProtonQAResults.C:2034
 drawProtonQAResults.C:2035
 drawProtonQAResults.C:2036
 drawProtonQAResults.C:2037
 drawProtonQAResults.C:2038
 drawProtonQAResults.C:2039
 drawProtonQAResults.C:2040
 drawProtonQAResults.C:2041
 drawProtonQAResults.C:2042
 drawProtonQAResults.C:2043
 drawProtonQAResults.C:2044
 drawProtonQAResults.C:2045
 drawProtonQAResults.C:2046
 drawProtonQAResults.C:2047
 drawProtonQAResults.C:2048
 drawProtonQAResults.C:2049
 drawProtonQAResults.C:2050
 drawProtonQAResults.C:2051
 drawProtonQAResults.C:2052
 drawProtonQAResults.C:2053
 drawProtonQAResults.C:2054
 drawProtonQAResults.C:2055
 drawProtonQAResults.C:2056
 drawProtonQAResults.C:2057
 drawProtonQAResults.C:2058
 drawProtonQAResults.C:2059
 drawProtonQAResults.C:2060
 drawProtonQAResults.C:2061
 drawProtonQAResults.C:2062
 drawProtonQAResults.C:2063
 drawProtonQAResults.C:2064
 drawProtonQAResults.C:2065
 drawProtonQAResults.C:2066
 drawProtonQAResults.C:2067
 drawProtonQAResults.C:2068
 drawProtonQAResults.C:2069
 drawProtonQAResults.C:2070
 drawProtonQAResults.C:2071
 drawProtonQAResults.C:2072
 drawProtonQAResults.C:2073
 drawProtonQAResults.C:2074
 drawProtonQAResults.C:2075
 drawProtonQAResults.C:2076
 drawProtonQAResults.C:2077
 drawProtonQAResults.C:2078
 drawProtonQAResults.C:2079
 drawProtonQAResults.C:2080
 drawProtonQAResults.C:2081
 drawProtonQAResults.C:2082
 drawProtonQAResults.C:2083
 drawProtonQAResults.C:2084
 drawProtonQAResults.C:2085
 drawProtonQAResults.C:2086
 drawProtonQAResults.C:2087
 drawProtonQAResults.C:2088
 drawProtonQAResults.C:2089
 drawProtonQAResults.C:2090
 drawProtonQAResults.C:2091
 drawProtonQAResults.C:2092
 drawProtonQAResults.C:2093
 drawProtonQAResults.C:2094
 drawProtonQAResults.C:2095
 drawProtonQAResults.C:2096
 drawProtonQAResults.C:2097
 drawProtonQAResults.C:2098
 drawProtonQAResults.C:2099
 drawProtonQAResults.C:2100
 drawProtonQAResults.C:2101
 drawProtonQAResults.C:2102
 drawProtonQAResults.C:2103
 drawProtonQAResults.C:2104
 drawProtonQAResults.C:2105
 drawProtonQAResults.C:2106
 drawProtonQAResults.C:2107
 drawProtonQAResults.C:2108
 drawProtonQAResults.C:2109
 drawProtonQAResults.C:2110
 drawProtonQAResults.C:2111
 drawProtonQAResults.C:2112
 drawProtonQAResults.C:2113
 drawProtonQAResults.C:2114
 drawProtonQAResults.C:2115
 drawProtonQAResults.C:2116
 drawProtonQAResults.C:2117
 drawProtonQAResults.C:2118
 drawProtonQAResults.C:2119
 drawProtonQAResults.C:2120
 drawProtonQAResults.C:2121
 drawProtonQAResults.C:2122
 drawProtonQAResults.C:2123
 drawProtonQAResults.C:2124
 drawProtonQAResults.C:2125
 drawProtonQAResults.C:2126
 drawProtonQAResults.C:2127
 drawProtonQAResults.C:2128
 drawProtonQAResults.C:2129
 drawProtonQAResults.C:2130
 drawProtonQAResults.C:2131
 drawProtonQAResults.C:2132
 drawProtonQAResults.C:2133
 drawProtonQAResults.C:2134
 drawProtonQAResults.C:2135
 drawProtonQAResults.C:2136
 drawProtonQAResults.C:2137
 drawProtonQAResults.C:2138
 drawProtonQAResults.C:2139
 drawProtonQAResults.C:2140
 drawProtonQAResults.C:2141
 drawProtonQAResults.C:2142
 drawProtonQAResults.C:2143
 drawProtonQAResults.C:2144
 drawProtonQAResults.C:2145
 drawProtonQAResults.C:2146
 drawProtonQAResults.C:2147
 drawProtonQAResults.C:2148
 drawProtonQAResults.C:2149
 drawProtonQAResults.C:2150
 drawProtonQAResults.C:2151
 drawProtonQAResults.C:2152
 drawProtonQAResults.C:2153
 drawProtonQAResults.C:2154
 drawProtonQAResults.C:2155
 drawProtonQAResults.C:2156
 drawProtonQAResults.C:2157
 drawProtonQAResults.C:2158
 drawProtonQAResults.C:2159
 drawProtonQAResults.C:2160
 drawProtonQAResults.C:2161
 drawProtonQAResults.C:2162
 drawProtonQAResults.C:2163
 drawProtonQAResults.C:2164
 drawProtonQAResults.C:2165
 drawProtonQAResults.C:2166
 drawProtonQAResults.C:2167
 drawProtonQAResults.C:2168
 drawProtonQAResults.C:2169
 drawProtonQAResults.C:2170
 drawProtonQAResults.C:2171
 drawProtonQAResults.C:2172
 drawProtonQAResults.C:2173
 drawProtonQAResults.C:2174
 drawProtonQAResults.C:2175
 drawProtonQAResults.C:2176
 drawProtonQAResults.C:2177
 drawProtonQAResults.C:2178
 drawProtonQAResults.C:2179
 drawProtonQAResults.C:2180
 drawProtonQAResults.C:2181
 drawProtonQAResults.C:2182
 drawProtonQAResults.C:2183
 drawProtonQAResults.C:2184
 drawProtonQAResults.C:2185
 drawProtonQAResults.C:2186
 drawProtonQAResults.C:2187
 drawProtonQAResults.C:2188
 drawProtonQAResults.C:2189
 drawProtonQAResults.C:2190
 drawProtonQAResults.C:2191
 drawProtonQAResults.C:2192
 drawProtonQAResults.C:2193
 drawProtonQAResults.C:2194
 drawProtonQAResults.C:2195
 drawProtonQAResults.C:2196
 drawProtonQAResults.C:2197
 drawProtonQAResults.C:2198
 drawProtonQAResults.C:2199
 drawProtonQAResults.C:2200
 drawProtonQAResults.C:2201
 drawProtonQAResults.C:2202
 drawProtonQAResults.C:2203
 drawProtonQAResults.C:2204
 drawProtonQAResults.C:2205
 drawProtonQAResults.C:2206
 drawProtonQAResults.C:2207
 drawProtonQAResults.C:2208
 drawProtonQAResults.C:2209
 drawProtonQAResults.C:2210
 drawProtonQAResults.C:2211
 drawProtonQAResults.C:2212
 drawProtonQAResults.C:2213
 drawProtonQAResults.C:2214
 drawProtonQAResults.C:2215
 drawProtonQAResults.C:2216
 drawProtonQAResults.C:2217
 drawProtonQAResults.C:2218
 drawProtonQAResults.C:2219
 drawProtonQAResults.C:2220
 drawProtonQAResults.C:2221
 drawProtonQAResults.C:2222
 drawProtonQAResults.C:2223
 drawProtonQAResults.C:2224
 drawProtonQAResults.C:2225
 drawProtonQAResults.C:2226
 drawProtonQAResults.C:2227
 drawProtonQAResults.C:2228
 drawProtonQAResults.C:2229
 drawProtonQAResults.C:2230
 drawProtonQAResults.C:2231
 drawProtonQAResults.C:2232
 drawProtonQAResults.C:2233
 drawProtonQAResults.C:2234
 drawProtonQAResults.C:2235
 drawProtonQAResults.C:2236
 drawProtonQAResults.C:2237
 drawProtonQAResults.C:2238
 drawProtonQAResults.C:2239
 drawProtonQAResults.C:2240
 drawProtonQAResults.C:2241
 drawProtonQAResults.C:2242
 drawProtonQAResults.C:2243
 drawProtonQAResults.C:2244
 drawProtonQAResults.C:2245
 drawProtonQAResults.C:2246
 drawProtonQAResults.C:2247
 drawProtonQAResults.C:2248
 drawProtonQAResults.C:2249
 drawProtonQAResults.C:2250
 drawProtonQAResults.C:2251
 drawProtonQAResults.C:2252
 drawProtonQAResults.C:2253
 drawProtonQAResults.C:2254
 drawProtonQAResults.C:2255
 drawProtonQAResults.C:2256
 drawProtonQAResults.C:2257
 drawProtonQAResults.C:2258
 drawProtonQAResults.C:2259
 drawProtonQAResults.C:2260
 drawProtonQAResults.C:2261
 drawProtonQAResults.C:2262
 drawProtonQAResults.C:2263
 drawProtonQAResults.C:2264
 drawProtonQAResults.C:2265
 drawProtonQAResults.C:2266
 drawProtonQAResults.C:2267
 drawProtonQAResults.C:2268
 drawProtonQAResults.C:2269
 drawProtonQAResults.C:2270
 drawProtonQAResults.C:2271
 drawProtonQAResults.C:2272
 drawProtonQAResults.C:2273
 drawProtonQAResults.C:2274
 drawProtonQAResults.C:2275
 drawProtonQAResults.C:2276
 drawProtonQAResults.C:2277
 drawProtonQAResults.C:2278
 drawProtonQAResults.C:2279
 drawProtonQAResults.C:2280
 drawProtonQAResults.C:2281
 drawProtonQAResults.C:2282
 drawProtonQAResults.C:2283
 drawProtonQAResults.C:2284
 drawProtonQAResults.C:2285
 drawProtonQAResults.C:2286
 drawProtonQAResults.C:2287
 drawProtonQAResults.C:2288
 drawProtonQAResults.C:2289
 drawProtonQAResults.C:2290
 drawProtonQAResults.C:2291
 drawProtonQAResults.C:2292
 drawProtonQAResults.C:2293
 drawProtonQAResults.C:2294
 drawProtonQAResults.C:2295
 drawProtonQAResults.C:2296
 drawProtonQAResults.C:2297
 drawProtonQAResults.C:2298
 drawProtonQAResults.C:2299
 drawProtonQAResults.C:2300
 drawProtonQAResults.C:2301
 drawProtonQAResults.C:2302
 drawProtonQAResults.C:2303
 drawProtonQAResults.C:2304
 drawProtonQAResults.C:2305
 drawProtonQAResults.C:2306
 drawProtonQAResults.C:2307
 drawProtonQAResults.C:2308
 drawProtonQAResults.C:2309
 drawProtonQAResults.C:2310
 drawProtonQAResults.C:2311
 drawProtonQAResults.C:2312
 drawProtonQAResults.C:2313
 drawProtonQAResults.C:2314
 drawProtonQAResults.C:2315
 drawProtonQAResults.C:2316
 drawProtonQAResults.C:2317
 drawProtonQAResults.C:2318
 drawProtonQAResults.C:2319
 drawProtonQAResults.C:2320
 drawProtonQAResults.C:2321
 drawProtonQAResults.C:2322
 drawProtonQAResults.C:2323
 drawProtonQAResults.C:2324
 drawProtonQAResults.C:2325
 drawProtonQAResults.C:2326
 drawProtonQAResults.C:2327
 drawProtonQAResults.C:2328
 drawProtonQAResults.C:2329
 drawProtonQAResults.C:2330
 drawProtonQAResults.C:2331
 drawProtonQAResults.C:2332
 drawProtonQAResults.C:2333
 drawProtonQAResults.C:2334
 drawProtonQAResults.C:2335
 drawProtonQAResults.C:2336
 drawProtonQAResults.C:2337
 drawProtonQAResults.C:2338
 drawProtonQAResults.C:2339
 drawProtonQAResults.C:2340
 drawProtonQAResults.C:2341
 drawProtonQAResults.C:2342
 drawProtonQAResults.C:2343
 drawProtonQAResults.C:2344
 drawProtonQAResults.C:2345
 drawProtonQAResults.C:2346
 drawProtonQAResults.C:2347
 drawProtonQAResults.C:2348
 drawProtonQAResults.C:2349
 drawProtonQAResults.C:2350
 drawProtonQAResults.C:2351
 drawProtonQAResults.C:2352
 drawProtonQAResults.C:2353
 drawProtonQAResults.C:2354
 drawProtonQAResults.C:2355
 drawProtonQAResults.C:2356
 drawProtonQAResults.C:2357
 drawProtonQAResults.C:2358
 drawProtonQAResults.C:2359
 drawProtonQAResults.C:2360
 drawProtonQAResults.C:2361
 drawProtonQAResults.C:2362
 drawProtonQAResults.C:2363
 drawProtonQAResults.C:2364
 drawProtonQAResults.C:2365
 drawProtonQAResults.C:2366
 drawProtonQAResults.C:2367
 drawProtonQAResults.C:2368
 drawProtonQAResults.C:2369
 drawProtonQAResults.C:2370
 drawProtonQAResults.C:2371
 drawProtonQAResults.C:2372
 drawProtonQAResults.C:2373
 drawProtonQAResults.C:2374
 drawProtonQAResults.C:2375
 drawProtonQAResults.C:2376
 drawProtonQAResults.C:2377
 drawProtonQAResults.C:2378
 drawProtonQAResults.C:2379
 drawProtonQAResults.C:2380
 drawProtonQAResults.C:2381
 drawProtonQAResults.C:2382
 drawProtonQAResults.C:2383
 drawProtonQAResults.C:2384
 drawProtonQAResults.C:2385
 drawProtonQAResults.C:2386
 drawProtonQAResults.C:2387
 drawProtonQAResults.C:2388
 drawProtonQAResults.C:2389
 drawProtonQAResults.C:2390
 drawProtonQAResults.C:2391
 drawProtonQAResults.C:2392
 drawProtonQAResults.C:2393
 drawProtonQAResults.C:2394
 drawProtonQAResults.C:2395
 drawProtonQAResults.C:2396
 drawProtonQAResults.C:2397
 drawProtonQAResults.C:2398
 drawProtonQAResults.C:2399
 drawProtonQAResults.C:2400
 drawProtonQAResults.C:2401
 drawProtonQAResults.C:2402
 drawProtonQAResults.C:2403
 drawProtonQAResults.C:2404
 drawProtonQAResults.C:2405
 drawProtonQAResults.C:2406
 drawProtonQAResults.C:2407
 drawProtonQAResults.C:2408
 drawProtonQAResults.C:2409
 drawProtonQAResults.C:2410
 drawProtonQAResults.C:2411
 drawProtonQAResults.C:2412
 drawProtonQAResults.C:2413
 drawProtonQAResults.C:2414
 drawProtonQAResults.C:2415
 drawProtonQAResults.C:2416
 drawProtonQAResults.C:2417
 drawProtonQAResults.C:2418
 drawProtonQAResults.C:2419
 drawProtonQAResults.C:2420
 drawProtonQAResults.C:2421
 drawProtonQAResults.C:2422
 drawProtonQAResults.C:2423
 drawProtonQAResults.C:2424
 drawProtonQAResults.C:2425
 drawProtonQAResults.C:2426
 drawProtonQAResults.C:2427
 drawProtonQAResults.C:2428
 drawProtonQAResults.C:2429
 drawProtonQAResults.C:2430
 drawProtonQAResults.C:2431
 drawProtonQAResults.C:2432
 drawProtonQAResults.C:2433
 drawProtonQAResults.C:2434
 drawProtonQAResults.C:2435
 drawProtonQAResults.C:2436
 drawProtonQAResults.C:2437
 drawProtonQAResults.C:2438
 drawProtonQAResults.C:2439
 drawProtonQAResults.C:2440
 drawProtonQAResults.C:2441
 drawProtonQAResults.C:2442
 drawProtonQAResults.C:2443
 drawProtonQAResults.C:2444
 drawProtonQAResults.C:2445
 drawProtonQAResults.C:2446
 drawProtonQAResults.C:2447
 drawProtonQAResults.C:2448
 drawProtonQAResults.C:2449
 drawProtonQAResults.C:2450
 drawProtonQAResults.C:2451
 drawProtonQAResults.C:2452
 drawProtonQAResults.C:2453
 drawProtonQAResults.C:2454
 drawProtonQAResults.C:2455
 drawProtonQAResults.C:2456
 drawProtonQAResults.C:2457
 drawProtonQAResults.C:2458
 drawProtonQAResults.C:2459
 drawProtonQAResults.C:2460
 drawProtonQAResults.C:2461
 drawProtonQAResults.C:2462
 drawProtonQAResults.C:2463
 drawProtonQAResults.C:2464
 drawProtonQAResults.C:2465
 drawProtonQAResults.C:2466
 drawProtonQAResults.C:2467
 drawProtonQAResults.C:2468
 drawProtonQAResults.C:2469
 drawProtonQAResults.C:2470
 drawProtonQAResults.C:2471
 drawProtonQAResults.C:2472
 drawProtonQAResults.C:2473
 drawProtonQAResults.C:2474
 drawProtonQAResults.C:2475
 drawProtonQAResults.C:2476
 drawProtonQAResults.C:2477
 drawProtonQAResults.C:2478
 drawProtonQAResults.C:2479
 drawProtonQAResults.C:2480
 drawProtonQAResults.C:2481
 drawProtonQAResults.C:2482
 drawProtonQAResults.C:2483
 drawProtonQAResults.C:2484
 drawProtonQAResults.C:2485
 drawProtonQAResults.C:2486
 drawProtonQAResults.C:2487
 drawProtonQAResults.C:2488
 drawProtonQAResults.C:2489
 drawProtonQAResults.C:2490
 drawProtonQAResults.C:2491
 drawProtonQAResults.C:2492
 drawProtonQAResults.C:2493
 drawProtonQAResults.C:2494
 drawProtonQAResults.C:2495
 drawProtonQAResults.C:2496
 drawProtonQAResults.C:2497
 drawProtonQAResults.C:2498
 drawProtonQAResults.C:2499
 drawProtonQAResults.C:2500
 drawProtonQAResults.C:2501
 drawProtonQAResults.C:2502
 drawProtonQAResults.C:2503
 drawProtonQAResults.C:2504
 drawProtonQAResults.C:2505
 drawProtonQAResults.C:2506
 drawProtonQAResults.C:2507
 drawProtonQAResults.C:2508
 drawProtonQAResults.C:2509
 drawProtonQAResults.C:2510
 drawProtonQAResults.C:2511
 drawProtonQAResults.C:2512
 drawProtonQAResults.C:2513
 drawProtonQAResults.C:2514
 drawProtonQAResults.C:2515
 drawProtonQAResults.C:2516
 drawProtonQAResults.C:2517
 drawProtonQAResults.C:2518
 drawProtonQAResults.C:2519
 drawProtonQAResults.C:2520
 drawProtonQAResults.C:2521
 drawProtonQAResults.C:2522
 drawProtonQAResults.C:2523
 drawProtonQAResults.C:2524
 drawProtonQAResults.C:2525
 drawProtonQAResults.C:2526
 drawProtonQAResults.C:2527
 drawProtonQAResults.C:2528
 drawProtonQAResults.C:2529
 drawProtonQAResults.C:2530
 drawProtonQAResults.C:2531
 drawProtonQAResults.C:2532
 drawProtonQAResults.C:2533
 drawProtonQAResults.C:2534
 drawProtonQAResults.C:2535
 drawProtonQAResults.C:2536
 drawProtonQAResults.C:2537
 drawProtonQAResults.C:2538
 drawProtonQAResults.C:2539
 drawProtonQAResults.C:2540
 drawProtonQAResults.C:2541
 drawProtonQAResults.C:2542
 drawProtonQAResults.C:2543
 drawProtonQAResults.C:2544
 drawProtonQAResults.C:2545
 drawProtonQAResults.C:2546
 drawProtonQAResults.C:2547
 drawProtonQAResults.C:2548
 drawProtonQAResults.C:2549
 drawProtonQAResults.C:2550
 drawProtonQAResults.C:2551
 drawProtonQAResults.C:2552
 drawProtonQAResults.C:2553
 drawProtonQAResults.C:2554
 drawProtonQAResults.C:2555
 drawProtonQAResults.C:2556
 drawProtonQAResults.C:2557
 drawProtonQAResults.C:2558
 drawProtonQAResults.C:2559
 drawProtonQAResults.C:2560
 drawProtonQAResults.C:2561
 drawProtonQAResults.C:2562
 drawProtonQAResults.C:2563
 drawProtonQAResults.C:2564
 drawProtonQAResults.C:2565
 drawProtonQAResults.C:2566
 drawProtonQAResults.C:2567
 drawProtonQAResults.C:2568
 drawProtonQAResults.C:2569
 drawProtonQAResults.C:2570
 drawProtonQAResults.C:2571
 drawProtonQAResults.C:2572
 drawProtonQAResults.C:2573
 drawProtonQAResults.C:2574
 drawProtonQAResults.C:2575
 drawProtonQAResults.C:2576
 drawProtonQAResults.C:2577
 drawProtonQAResults.C:2578
 drawProtonQAResults.C:2579
 drawProtonQAResults.C:2580
 drawProtonQAResults.C:2581
 drawProtonQAResults.C:2582
 drawProtonQAResults.C:2583
 drawProtonQAResults.C:2584
 drawProtonQAResults.C:2585
 drawProtonQAResults.C:2586
 drawProtonQAResults.C:2587
 drawProtonQAResults.C:2588
 drawProtonQAResults.C:2589
 drawProtonQAResults.C:2590
 drawProtonQAResults.C:2591
 drawProtonQAResults.C:2592
 drawProtonQAResults.C:2593
 drawProtonQAResults.C:2594
 drawProtonQAResults.C:2595
 drawProtonQAResults.C:2596
 drawProtonQAResults.C:2597
 drawProtonQAResults.C:2598
 drawProtonQAResults.C:2599
 drawProtonQAResults.C:2600
 drawProtonQAResults.C:2601
 drawProtonQAResults.C:2602
 drawProtonQAResults.C:2603
 drawProtonQAResults.C:2604
 drawProtonQAResults.C:2605
 drawProtonQAResults.C:2606
 drawProtonQAResults.C:2607
 drawProtonQAResults.C:2608
 drawProtonQAResults.C:2609
 drawProtonQAResults.C:2610
 drawProtonQAResults.C:2611
 drawProtonQAResults.C:2612
 drawProtonQAResults.C:2613
 drawProtonQAResults.C:2614
 drawProtonQAResults.C:2615
 drawProtonQAResults.C:2616
 drawProtonQAResults.C:2617
 drawProtonQAResults.C:2618
 drawProtonQAResults.C:2619
 drawProtonQAResults.C:2620
 drawProtonQAResults.C:2621
 drawProtonQAResults.C:2622
 drawProtonQAResults.C:2623
 drawProtonQAResults.C:2624
 drawProtonQAResults.C:2625
 drawProtonQAResults.C:2626
 drawProtonQAResults.C:2627
 drawProtonQAResults.C:2628
 drawProtonQAResults.C:2629
 drawProtonQAResults.C:2630
 drawProtonQAResults.C:2631
 drawProtonQAResults.C:2632
 drawProtonQAResults.C:2633
 drawProtonQAResults.C:2634
 drawProtonQAResults.C:2635
 drawProtonQAResults.C:2636
 drawProtonQAResults.C:2637
 drawProtonQAResults.C:2638
 drawProtonQAResults.C:2639
 drawProtonQAResults.C:2640
 drawProtonQAResults.C:2641
 drawProtonQAResults.C:2642
 drawProtonQAResults.C:2643
 drawProtonQAResults.C:2644
 drawProtonQAResults.C:2645
 drawProtonQAResults.C:2646
 drawProtonQAResults.C:2647
 drawProtonQAResults.C:2648
 drawProtonQAResults.C:2649
 drawProtonQAResults.C:2650
 drawProtonQAResults.C:2651
 drawProtonQAResults.C:2652
 drawProtonQAResults.C:2653
 drawProtonQAResults.C:2654
 drawProtonQAResults.C:2655
 drawProtonQAResults.C:2656
 drawProtonQAResults.C:2657
 drawProtonQAResults.C:2658
 drawProtonQAResults.C:2659
 drawProtonQAResults.C:2660
 drawProtonQAResults.C:2661
 drawProtonQAResults.C:2662
 drawProtonQAResults.C:2663
 drawProtonQAResults.C:2664
 drawProtonQAResults.C:2665
 drawProtonQAResults.C:2666
 drawProtonQAResults.C:2667
 drawProtonQAResults.C:2668
 drawProtonQAResults.C:2669
 drawProtonQAResults.C:2670
 drawProtonQAResults.C:2671
 drawProtonQAResults.C:2672
 drawProtonQAResults.C:2673
 drawProtonQAResults.C:2674
 drawProtonQAResults.C:2675
 drawProtonQAResults.C:2676
 drawProtonQAResults.C:2677
 drawProtonQAResults.C:2678
 drawProtonQAResults.C:2679
 drawProtonQAResults.C:2680
 drawProtonQAResults.C:2681
 drawProtonQAResults.C:2682
 drawProtonQAResults.C:2683
 drawProtonQAResults.C:2684
 drawProtonQAResults.C:2685
 drawProtonQAResults.C:2686
 drawProtonQAResults.C:2687
 drawProtonQAResults.C:2688
 drawProtonQAResults.C:2689
 drawProtonQAResults.C:2690
 drawProtonQAResults.C:2691
 drawProtonQAResults.C:2692
 drawProtonQAResults.C:2693
 drawProtonQAResults.C:2694
 drawProtonQAResults.C:2695
 drawProtonQAResults.C:2696
 drawProtonQAResults.C:2697
 drawProtonQAResults.C:2698
 drawProtonQAResults.C:2699
 drawProtonQAResults.C:2700
 drawProtonQAResults.C:2701
 drawProtonQAResults.C:2702
 drawProtonQAResults.C:2703
 drawProtonQAResults.C:2704
 drawProtonQAResults.C:2705
 drawProtonQAResults.C:2706
 drawProtonQAResults.C:2707
 drawProtonQAResults.C:2708
 drawProtonQAResults.C:2709
 drawProtonQAResults.C:2710
 drawProtonQAResults.C:2711
 drawProtonQAResults.C:2712
 drawProtonQAResults.C:2713
 drawProtonQAResults.C:2714
 drawProtonQAResults.C:2715
 drawProtonQAResults.C:2716
 drawProtonQAResults.C:2717
 drawProtonQAResults.C:2718
 drawProtonQAResults.C:2719
 drawProtonQAResults.C:2720
 drawProtonQAResults.C:2721
 drawProtonQAResults.C:2722
 drawProtonQAResults.C:2723
 drawProtonQAResults.C:2724
 drawProtonQAResults.C:2725
 drawProtonQAResults.C:2726
 drawProtonQAResults.C:2727
 drawProtonQAResults.C:2728
 drawProtonQAResults.C:2729
 drawProtonQAResults.C:2730
 drawProtonQAResults.C:2731
 drawProtonQAResults.C:2732
 drawProtonQAResults.C:2733
 drawProtonQAResults.C:2734
 drawProtonQAResults.C:2735
 drawProtonQAResults.C:2736
 drawProtonQAResults.C:2737
 drawProtonQAResults.C:2738
 drawProtonQAResults.C:2739
 drawProtonQAResults.C:2740
 drawProtonQAResults.C:2741
 drawProtonQAResults.C:2742
 drawProtonQAResults.C:2743
 drawProtonQAResults.C:2744
 drawProtonQAResults.C:2745
 drawProtonQAResults.C:2746
 drawProtonQAResults.C:2747
 drawProtonQAResults.C:2748
 drawProtonQAResults.C:2749
 drawProtonQAResults.C:2750
 drawProtonQAResults.C:2751
 drawProtonQAResults.C:2752
 drawProtonQAResults.C:2753
 drawProtonQAResults.C:2754
 drawProtonQAResults.C:2755
 drawProtonQAResults.C:2756
 drawProtonQAResults.C:2757
 drawProtonQAResults.C:2758
 drawProtonQAResults.C:2759
 drawProtonQAResults.C:2760
 drawProtonQAResults.C:2761
 drawProtonQAResults.C:2762
 drawProtonQAResults.C:2763
 drawProtonQAResults.C:2764
 drawProtonQAResults.C:2765
 drawProtonQAResults.C:2766
 drawProtonQAResults.C:2767
 drawProtonQAResults.C:2768
 drawProtonQAResults.C:2769
 drawProtonQAResults.C:2770
 drawProtonQAResults.C:2771
 drawProtonQAResults.C:2772
 drawProtonQAResults.C:2773
 drawProtonQAResults.C:2774
 drawProtonQAResults.C:2775
 drawProtonQAResults.C:2776
 drawProtonQAResults.C:2777
 drawProtonQAResults.C:2778
 drawProtonQAResults.C:2779
 drawProtonQAResults.C:2780
 drawProtonQAResults.C:2781
 drawProtonQAResults.C:2782
 drawProtonQAResults.C:2783
 drawProtonQAResults.C:2784
 drawProtonQAResults.C:2785
 drawProtonQAResults.C:2786
 drawProtonQAResults.C:2787
 drawProtonQAResults.C:2788
 drawProtonQAResults.C:2789
 drawProtonQAResults.C:2790
 drawProtonQAResults.C:2791
 drawProtonQAResults.C:2792
 drawProtonQAResults.C:2793
 drawProtonQAResults.C:2794
 drawProtonQAResults.C:2795
 drawProtonQAResults.C:2796
 drawProtonQAResults.C:2797
 drawProtonQAResults.C:2798
 drawProtonQAResults.C:2799
 drawProtonQAResults.C:2800
 drawProtonQAResults.C:2801
 drawProtonQAResults.C:2802
 drawProtonQAResults.C:2803
 drawProtonQAResults.C:2804
 drawProtonQAResults.C:2805
 drawProtonQAResults.C:2806
 drawProtonQAResults.C:2807
 drawProtonQAResults.C:2808
 drawProtonQAResults.C:2809
 drawProtonQAResults.C:2810
 drawProtonQAResults.C:2811
 drawProtonQAResults.C:2812
 drawProtonQAResults.C:2813
 drawProtonQAResults.C:2814
 drawProtonQAResults.C:2815
 drawProtonQAResults.C:2816
 drawProtonQAResults.C:2817
 drawProtonQAResults.C:2818
 drawProtonQAResults.C:2819
 drawProtonQAResults.C:2820
 drawProtonQAResults.C:2821
 drawProtonQAResults.C:2822
 drawProtonQAResults.C:2823
 drawProtonQAResults.C:2824
 drawProtonQAResults.C:2825
 drawProtonQAResults.C:2826
 drawProtonQAResults.C:2827
 drawProtonQAResults.C:2828
 drawProtonQAResults.C:2829
 drawProtonQAResults.C:2830
 drawProtonQAResults.C:2831
 drawProtonQAResults.C:2832
 drawProtonQAResults.C:2833
 drawProtonQAResults.C:2834
 drawProtonQAResults.C:2835
 drawProtonQAResults.C:2836
 drawProtonQAResults.C:2837
 drawProtonQAResults.C:2838
 drawProtonQAResults.C:2839
 drawProtonQAResults.C:2840
 drawProtonQAResults.C:2841
 drawProtonQAResults.C:2842
 drawProtonQAResults.C:2843
 drawProtonQAResults.C:2844
 drawProtonQAResults.C:2845
 drawProtonQAResults.C:2846
 drawProtonQAResults.C:2847
 drawProtonQAResults.C:2848
 drawProtonQAResults.C:2849
 drawProtonQAResults.C:2850
 drawProtonQAResults.C:2851
 drawProtonQAResults.C:2852
 drawProtonQAResults.C:2853
 drawProtonQAResults.C:2854
 drawProtonQAResults.C:2855
 drawProtonQAResults.C:2856
 drawProtonQAResults.C:2857
 drawProtonQAResults.C:2858
 drawProtonQAResults.C:2859
 drawProtonQAResults.C:2860
 drawProtonQAResults.C:2861
 drawProtonQAResults.C:2862
 drawProtonQAResults.C:2863
 drawProtonQAResults.C:2864
 drawProtonQAResults.C:2865
 drawProtonQAResults.C:2866
 drawProtonQAResults.C:2867
 drawProtonQAResults.C:2868
 drawProtonQAResults.C:2869
 drawProtonQAResults.C:2870
 drawProtonQAResults.C:2871
 drawProtonQAResults.C:2872
 drawProtonQAResults.C:2873
 drawProtonQAResults.C:2874
 drawProtonQAResults.C:2875
 drawProtonQAResults.C:2876
 drawProtonQAResults.C:2877
 drawProtonQAResults.C:2878
 drawProtonQAResults.C:2879
 drawProtonQAResults.C:2880
 drawProtonQAResults.C:2881
 drawProtonQAResults.C:2882
 drawProtonQAResults.C:2883
 drawProtonQAResults.C:2884
 drawProtonQAResults.C:2885
 drawProtonQAResults.C:2886
 drawProtonQAResults.C:2887
 drawProtonQAResults.C:2888
 drawProtonQAResults.C:2889
 drawProtonQAResults.C:2890
 drawProtonQAResults.C:2891
 drawProtonQAResults.C:2892
 drawProtonQAResults.C:2893
 drawProtonQAResults.C:2894
 drawProtonQAResults.C:2895
 drawProtonQAResults.C:2896
 drawProtonQAResults.C:2897
 drawProtonQAResults.C:2898
 drawProtonQAResults.C:2899
 drawProtonQAResults.C:2900
 drawProtonQAResults.C:2901
 drawProtonQAResults.C:2902
 drawProtonQAResults.C:2903
 drawProtonQAResults.C:2904
 drawProtonQAResults.C:2905
 drawProtonQAResults.C:2906
 drawProtonQAResults.C:2907
 drawProtonQAResults.C:2908
 drawProtonQAResults.C:2909
 drawProtonQAResults.C:2910
 drawProtonQAResults.C:2911
 drawProtonQAResults.C:2912
 drawProtonQAResults.C:2913
 drawProtonQAResults.C:2914
 drawProtonQAResults.C:2915
 drawProtonQAResults.C:2916
 drawProtonQAResults.C:2917
 drawProtonQAResults.C:2918
 drawProtonQAResults.C:2919
 drawProtonQAResults.C:2920
 drawProtonQAResults.C:2921
 drawProtonQAResults.C:2922
 drawProtonQAResults.C:2923
 drawProtonQAResults.C:2924
 drawProtonQAResults.C:2925
 drawProtonQAResults.C:2926
 drawProtonQAResults.C:2927
 drawProtonQAResults.C:2928
 drawProtonQAResults.C:2929
 drawProtonQAResults.C:2930
 drawProtonQAResults.C:2931
 drawProtonQAResults.C:2932
 drawProtonQAResults.C:2933
 drawProtonQAResults.C:2934
 drawProtonQAResults.C:2935
 drawProtonQAResults.C:2936
 drawProtonQAResults.C:2937
 drawProtonQAResults.C:2938
 drawProtonQAResults.C:2939
 drawProtonQAResults.C:2940
 drawProtonQAResults.C:2941
 drawProtonQAResults.C:2942
 drawProtonQAResults.C:2943
 drawProtonQAResults.C:2944
 drawProtonQAResults.C:2945
 drawProtonQAResults.C:2946
 drawProtonQAResults.C:2947
 drawProtonQAResults.C:2948
 drawProtonQAResults.C:2949
 drawProtonQAResults.C:2950
 drawProtonQAResults.C:2951
 drawProtonQAResults.C:2952
 drawProtonQAResults.C:2953
 drawProtonQAResults.C:2954
 drawProtonQAResults.C:2955
 drawProtonQAResults.C:2956
 drawProtonQAResults.C:2957
 drawProtonQAResults.C:2958
 drawProtonQAResults.C:2959
 drawProtonQAResults.C:2960
 drawProtonQAResults.C:2961
 drawProtonQAResults.C:2962
 drawProtonQAResults.C:2963
 drawProtonQAResults.C:2964
 drawProtonQAResults.C:2965
 drawProtonQAResults.C:2966
 drawProtonQAResults.C:2967
 drawProtonQAResults.C:2968
 drawProtonQAResults.C:2969
 drawProtonQAResults.C:2970
 drawProtonQAResults.C:2971
 drawProtonQAResults.C:2972
 drawProtonQAResults.C:2973
 drawProtonQAResults.C:2974
 drawProtonQAResults.C:2975
 drawProtonQAResults.C:2976
 drawProtonQAResults.C:2977
 drawProtonQAResults.C:2978
 drawProtonQAResults.C:2979
 drawProtonQAResults.C:2980
 drawProtonQAResults.C:2981
 drawProtonQAResults.C:2982
 drawProtonQAResults.C:2983
 drawProtonQAResults.C:2984
 drawProtonQAResults.C:2985
 drawProtonQAResults.C:2986
 drawProtonQAResults.C:2987
 drawProtonQAResults.C:2988
 drawProtonQAResults.C:2989
 drawProtonQAResults.C:2990
 drawProtonQAResults.C:2991
 drawProtonQAResults.C:2992
 drawProtonQAResults.C:2993
 drawProtonQAResults.C:2994
 drawProtonQAResults.C:2995
 drawProtonQAResults.C:2996
 drawProtonQAResults.C:2997
 drawProtonQAResults.C:2998
 drawProtonQAResults.C:2999
 drawProtonQAResults.C:3000
 drawProtonQAResults.C:3001
 drawProtonQAResults.C:3002
 drawProtonQAResults.C:3003
 drawProtonQAResults.C:3004
 drawProtonQAResults.C:3005
 drawProtonQAResults.C:3006
 drawProtonQAResults.C:3007
 drawProtonQAResults.C:3008
 drawProtonQAResults.C:3009
 drawProtonQAResults.C:3010
 drawProtonQAResults.C:3011
 drawProtonQAResults.C:3012
 drawProtonQAResults.C:3013
 drawProtonQAResults.C:3014
 drawProtonQAResults.C:3015
 drawProtonQAResults.C:3016
 drawProtonQAResults.C:3017
 drawProtonQAResults.C:3018
 drawProtonQAResults.C:3019
 drawProtonQAResults.C:3020
 drawProtonQAResults.C:3021
 drawProtonQAResults.C:3022
 drawProtonQAResults.C:3023
 drawProtonQAResults.C:3024
 drawProtonQAResults.C:3025
 drawProtonQAResults.C:3026
 drawProtonQAResults.C:3027
 drawProtonQAResults.C:3028
 drawProtonQAResults.C:3029
 drawProtonQAResults.C:3030
 drawProtonQAResults.C:3031
 drawProtonQAResults.C:3032
 drawProtonQAResults.C:3033
 drawProtonQAResults.C:3034
 drawProtonQAResults.C:3035
 drawProtonQAResults.C:3036
 drawProtonQAResults.C:3037
 drawProtonQAResults.C:3038
 drawProtonQAResults.C:3039
 drawProtonQAResults.C:3040
 drawProtonQAResults.C:3041
 drawProtonQAResults.C:3042
 drawProtonQAResults.C:3043
 drawProtonQAResults.C:3044
 drawProtonQAResults.C:3045
 drawProtonQAResults.C:3046
 drawProtonQAResults.C:3047
 drawProtonQAResults.C:3048
 drawProtonQAResults.C:3049
 drawProtonQAResults.C:3050
 drawProtonQAResults.C:3051
 drawProtonQAResults.C:3052
 drawProtonQAResults.C:3053
 drawProtonQAResults.C:3054
 drawProtonQAResults.C:3055
 drawProtonQAResults.C:3056
 drawProtonQAResults.C:3057
 drawProtonQAResults.C:3058
 drawProtonQAResults.C:3059
 drawProtonQAResults.C:3060
 drawProtonQAResults.C:3061
 drawProtonQAResults.C:3062
 drawProtonQAResults.C:3063
 drawProtonQAResults.C:3064
 drawProtonQAResults.C:3065
 drawProtonQAResults.C:3066
 drawProtonQAResults.C:3067
 drawProtonQAResults.C:3068
 drawProtonQAResults.C:3069
 drawProtonQAResults.C:3070
 drawProtonQAResults.C:3071
 drawProtonQAResults.C:3072
 drawProtonQAResults.C:3073
 drawProtonQAResults.C:3074
 drawProtonQAResults.C:3075
 drawProtonQAResults.C:3076
 drawProtonQAResults.C:3077
 drawProtonQAResults.C:3078
 drawProtonQAResults.C:3079
 drawProtonQAResults.C:3080
 drawProtonQAResults.C:3081
 drawProtonQAResults.C:3082
 drawProtonQAResults.C:3083
 drawProtonQAResults.C:3084
 drawProtonQAResults.C:3085
 drawProtonQAResults.C:3086
 drawProtonQAResults.C:3087
 drawProtonQAResults.C:3088
 drawProtonQAResults.C:3089
 drawProtonQAResults.C:3090
 drawProtonQAResults.C:3091
 drawProtonQAResults.C:3092
 drawProtonQAResults.C:3093
 drawProtonQAResults.C:3094