ROOT logo
/************************************************************************

  V0 QA Post-processing Macro
  ---------------------------

 To be used in conjunction with AliAnalysisTaskQAV0.cxx, .h 
 Designed for visualization of the QA output from this task. 

 Creates a "summary pdf" file with several pages, each referring to 
 some aspect of the QA, including: 

  --- Event Counters
  --- Topological Variables
  --- Invariant Mass Peak Widths (resolution) 
  --- TPC dE/dx for daughters 

************************************************************************/


PostProcessQAV0(Bool_t lAttemptInvMassFit = kTRUE){
  CustomGStyleSettings();  

  //==============================================================
  //Open Output File
  TFile* file = TFile::Open("AnalysisResults.root", "READ");
  if (!file){
    cout<<"Output file not found!"<<endl;
    return;
  }
	file->cd("PWGLFQAV0_QA");
	TList* clist  = (TList*)file->FindObjectAny("clist");
  if (!clist){
    cout<<"File does not seem to hold QA list output!"<<endl;
    return;
  }  
  //==============================================================

  //==============================================================
  //Open Event Histogram: first canvas
  TH1D* fHistEvent = (TH1D*)clist->FindObject("fHistEvent");
  TCanvas *cHistEvent = new TCanvas("cHistEvent","",800,670); 
  cHistEvent->SetTopMargin(0.15);
  cHistEvent->SetGridx(); 
  cHistEvent->SetGridy();
  fHistEvent->Draw();

  fHistEvent->SetMarkerSize(1.35);
  fHistEvent->GetXaxis()->SetTitleOffset(1.2);
  fHistEvent->GetYaxis()->SetTitleOffset(1.2);
  fHistEvent->Draw("same text00");

  TLatex Tl;
  Tl.SetNDC();
  Tl.SetTextSize(0.05);
  Tl.DrawLatex(.35, .9277, "Event Counters")  ;    
  cHistEvent->SaveAs("V0_QA.pdf(");    
  //==============================================================

  //==============================================================
  //Invariant Mass Plots: Base, no dE/dx
  /*
  TH2D *f2dHistInvMassK0Short    = (TH2D*)clist->FindObject("f2dHistInvMassK0Short");
  TH2D *f2dHistInvMassLambda     = (TH2D*)clist->FindObject("f2dHistInvMassLambda");
  TH2D *f2dHistInvMassAntiLambda = (TH2D*)clist->FindObject("f2dHistInvMassAntiLambda");
    
  f2dHistInvMassK0Short     -> Scale ( 1. / ((Double_t)fHistEvent->GetBinContent(4) ) );
  f2dHistInvMassLambda      -> Scale ( 1. / ((Double_t)fHistEvent->GetBinContent(4) ) );
  f2dHistInvMassAntiLambda  -> Scale ( 1. / ((Double_t)fHistEvent->GetBinContent(4) ) );

  TCanvas *cInvMassK0Short = new TCanvas ( "cInvMassK0Short", "", 1200,800); 
  cInvMassK0Short->Divide(1,2); 
  cInvMassK0Short->cd(2)->Divide(3,1); 
  cInvMassK0Short->cd(1); 
  cInvMassK0Short->cd(1)->SetLogz();
  cInvMassK0Short->cd(1)->SetLeftMargin(0.065);
  cInvMassK0Short->cd(1)->SetTopMargin(0.13);
  cInvMassK0Short->cd(1)->SetBottomMargin(0.11);

  f2dHistInvMassK0Short->GetYaxis()->SetTitleSize(0.05);
  f2dHistInvMassK0Short->GetYaxis()->SetTitleOffset(0.6);
  f2dHistInvMassK0Short->GetXaxis()->SetTitleSize(0.05);
  f2dHistInvMassK0Short->GetXaxis()->SetTitle("p_{T} (GeV/c)");
  f2dHistInvMassK0Short->GetZaxis()->SetTitle("Counts / Event");
  f2dHistInvMassK0Short->GetZaxis()->SetTitleOffset(0.7);
  f2dHistInvMassK0Short->GetZaxis()->SetRangeUser( f2dHistInvMassK0Short->GetMinimum(1e-10)*0.9, f2dHistInvMassK0Short->GetMaximum()*1.2 );
  f2dHistInvMassK0Short->Draw("colz");
  Tl.DrawLatex(.35, .9277, "Mass under K^{0}_{S} hypothesis, no TPC dE/dx")  ;   

  TH1D *fLowPtK0ShortSample = (TH1D*) f2dHistInvMassK0Short->ProjectionY( "fLowPtK0ShortSample", 
    f2dHistInvMassK0Short->GetXaxis()->FindBin(0.5001),
    f2dHistInvMassK0Short->GetXaxis()->FindBin(0.9999) );

  TH1D *fMidPtK0ShortSample = (TH1D*) f2dHistInvMassK0Short->ProjectionY( "fMidPtK0ShortSample", 
    f2dHistInvMassK0Short->GetXaxis()->FindBin(1.5001),
    f2dHistInvMassK0Short->GetXaxis()->FindBin(2.4999) );

  TH1D *fHiPtK0ShortSample = (TH1D*) f2dHistInvMassK0Short->ProjectionY( "fHiPtK0ShortSample", 
    f2dHistInvMassK0Short->GetXaxis()->FindBin(5.0001),
    f2dHistInvMassK0Short->GetXaxis()->FindBin(9.9999) );

  for(Int_t ic = 1; ic<4; ic++){ 
    cInvMassK0Short->cd(2)->cd(ic)->SetTopMargin(0.14);
    cInvMassK0Short->cd(2)->cd(ic)->SetLeftMargin(0.15);
    cInvMassK0Short->cd(2)->cd(ic)->SetBottomMargin(0.11);
    cInvMassK0Short->cd(2)->cd(ic)->SetGridx(); 
    cInvMassK0Short->cd(2)->cd(ic)->SetGridy();
  }

  cInvMassK0Short->cd(2)->cd(1); 
  fLowPtK0ShortSample->GetXaxis()->SetTitleOffset(1.1);
  fLowPtK0ShortSample->GetYaxis()->SetTitleOffset(2.33);
  fLowPtK0ShortSample->GetYaxis()->SetTitle("Counts/Event");
  fLowPtK0ShortSample->Draw(); 
  Tl.DrawLatex(.25, .9277, "0.5 < p_{T} (GeV/c^{2}) < 1.0");

  cInvMassK0Short->cd(2)->cd(2); 
  fMidPtK0ShortSample->GetXaxis()->SetTitleOffset(1.1);
  fMidPtK0ShortSample->GetYaxis()->SetTitleOffset(2.33);
  fMidPtK0ShortSample->GetYaxis()->SetTitle("Counts/Event");
  fMidPtK0ShortSample->Draw(); 
  Tl.DrawLatex(.25, .9277, "1.5 < p_{T} (GeV/c^{2}) < 2.5");

  cInvMassK0Short->cd(2)->cd(3); 
  fHiPtK0ShortSample->GetXaxis()->SetTitleOffset(1.1);
  fHiPtK0ShortSample->GetYaxis()->SetTitleOffset(2.33);
  fHiPtK0ShortSample->GetYaxis()->SetTitle("Counts/Event");
  fHiPtK0ShortSample->Draw(); 
  Tl.DrawLatex(.25, .9277, "5 < p_{T} (GeV/c^{2}) < 10");  
  cInvMassK0Short->SaveAs("V0_QA.pdf");
  */
  //==============================================================

  //==============================================================
  //Invariant Mass Plots: WITH dE/dx
  TH2D *f2dHistInvMassWithdEdxK0Short    = (TH2D*)clist->FindObject("f2dHistInvMassWithdEdxK0Short");
  TH2D *f2dHistInvMassWithdEdxLambda     = (TH2D*)clist->FindObject("f2dHistInvMassWithdEdxLambda");
  TH2D *f2dHistInvMassWithdEdxAntiLambda = (TH2D*)clist->FindObject("f2dHistInvMassWithdEdxAntiLambda");
    
  f2dHistInvMassWithdEdxK0Short     -> Scale ( 1. / ((Double_t)fHistEvent->GetBinContent(4) ) );
  f2dHistInvMassWithdEdxLambda      -> Scale ( 1. / ((Double_t)fHistEvent->GetBinContent(4) ) );
  f2dHistInvMassWithdEdxAntiLambda  -> Scale ( 1. / ((Double_t)fHistEvent->GetBinContent(4) ) );

  TCanvas *cInvMassK0ShortWithdEdx = new TCanvas ( "cInvMassK0ShortWithdEdx", "", 1200,800); 
  cInvMassK0ShortWithdEdx->Divide(1,2); 
  cInvMassK0ShortWithdEdx->cd(2)->Divide(3,1); 
  cInvMassK0ShortWithdEdx->cd(1); 
  cInvMassK0ShortWithdEdx->cd(1)->SetLogz();
  cInvMassK0ShortWithdEdx->cd(1)->SetLeftMargin(0.065);
  cInvMassK0ShortWithdEdx->cd(1)->SetTopMargin(0.13);
  cInvMassK0ShortWithdEdx->cd(1)->SetBottomMargin(0.11);

  f2dHistInvMassWithdEdxK0Short->GetYaxis()->SetTitleSize(0.05);
  f2dHistInvMassWithdEdxK0Short->GetYaxis()->SetTitleOffset(0.6);
  f2dHistInvMassWithdEdxK0Short->GetXaxis()->SetTitleSize(0.05);
  f2dHistInvMassWithdEdxK0Short->GetXaxis()->SetTitle("p_{T} (GeV/c)");
  f2dHistInvMassWithdEdxK0Short->GetZaxis()->SetTitle("Counts / Event");
  f2dHistInvMassWithdEdxK0Short->GetZaxis()->SetTitleOffset(0.7);
  f2dHistInvMassWithdEdxK0Short->GetZaxis()->SetRangeUser( f2dHistInvMassWithdEdxK0Short->GetMinimum(1e-10)*0.9, f2dHistInvMassWithdEdxK0Short->GetMaximum()*1.2 );
  f2dHistInvMassWithdEdxK0Short->Draw("colz");
  Tl.DrawLatex(.35, .9277, "Mass under K^{0}_{S} hypothesis, With TPC dE/dx")  ;   

  TH1D *fLowPtK0ShortSampleWithdEdx = (TH1D*) f2dHistInvMassWithdEdxK0Short->ProjectionY( "fLowPtK0ShortSampleWithdEdx", 
    f2dHistInvMassWithdEdxK0Short->GetXaxis()->FindBin(0.5001),
    f2dHistInvMassWithdEdxK0Short->GetXaxis()->FindBin(0.9999) );

  TH1D *fMidPtK0ShortSampleWithdEdx = (TH1D*) f2dHistInvMassWithdEdxK0Short->ProjectionY( "fMidPtK0ShortSampleWithdEdx", 
    f2dHistInvMassWithdEdxK0Short->GetXaxis()->FindBin(1.5001),
    f2dHistInvMassWithdEdxK0Short->GetXaxis()->FindBin(2.4999) );

  TH1D *fHiPtK0ShortSampleWithdEdx = (TH1D*) f2dHistInvMassWithdEdxK0Short->ProjectionY( "fHiPtK0ShortSampleWithdEdx", 
    f2dHistInvMassWithdEdxK0Short->GetXaxis()->FindBin(5.0001),
    f2dHistInvMassWithdEdxK0Short->GetXaxis()->FindBin(9.9999) );

  for(Int_t ic = 1; ic<4; ic++){ 
    cInvMassK0ShortWithdEdx->cd(2)->cd(ic)->SetTopMargin(0.14);
    cInvMassK0ShortWithdEdx->cd(2)->cd(ic)->SetLeftMargin(0.15);
    cInvMassK0ShortWithdEdx->cd(2)->cd(ic)->SetBottomMargin(0.11);
    cInvMassK0ShortWithdEdx->cd(2)->cd(ic)->SetGridx(); 
    cInvMassK0ShortWithdEdx->cd(2)->cd(ic)->SetGridy();
  }

  cInvMassK0ShortWithdEdx->cd(2)->cd(1); 
  fLowPtK0ShortSampleWithdEdx->GetXaxis()->SetTitleOffset(1.1);
  fLowPtK0ShortSampleWithdEdx->GetYaxis()->SetTitleOffset(2.33);
  fLowPtK0ShortSampleWithdEdx->GetYaxis()->SetTitle("Counts/Event");
  fLowPtK0ShortSampleWithdEdx->Draw(); 
  Tl.DrawLatex(.25, .9277, "0.5 < p_{T} (GeV/c^{2}) < 1.0");

  cInvMassK0ShortWithdEdx->cd(2)->cd(2); 
  fMidPtK0ShortSampleWithdEdx->GetXaxis()->SetTitleOffset(1.1);
  fMidPtK0ShortSampleWithdEdx->GetYaxis()->SetTitleOffset(2.33);
  fMidPtK0ShortSampleWithdEdx->GetYaxis()->SetTitle("Counts/Event");
  fMidPtK0ShortSampleWithdEdx->Draw(); 
  Tl.DrawLatex(.25, .9277, "1.5 < p_{T} (GeV/c^{2}) < 2.5");

  cInvMassK0ShortWithdEdx->cd(2)->cd(3); 
  fHiPtK0ShortSampleWithdEdx->GetXaxis()->SetTitleOffset(1.1);
  fHiPtK0ShortSampleWithdEdx->GetYaxis()->SetTitleOffset(2.33);
  fHiPtK0ShortSampleWithdEdx->GetYaxis()->SetTitle("Counts/Event");
  fHiPtK0ShortSampleWithdEdx->Draw(); 
  Tl.DrawLatex(.25, .9277, "5 < p_{T} (GeV/c^{2}) < 10");  

  TLatex Tli;
  Tli.SetNDC();
  Tli.SetTextSize(0.05);  

  if( lAttemptInvMassFit ){ 
    //Attempt rough signal extraction   
    TF1 *f1 = new TF1("f1","[0]+[1]*x+[2]*x*x+[3]*TMath::Gaus(x,[4],[5])",0.435, 0.565);
    //Reasonable first guess
    f1->SetParameter(0, fLowPtK0ShortSampleWithdEdx -> GetBinContent( fLowPtK0ShortSampleWithdEdx->FindBin(0.497-0.01) ) );
    f1->SetParameter(1, 0 );
    f1->SetParameter(2, 0 );
    f1->SetParameter(3, 0.5*fLowPtK0ShortSampleWithdEdx->GetMaximum() ); 
    f1->SetParameter(4, 0.497);
    f1->SetParameter(5, 0.0045);
    cout<<"Will now fit, please wait!"<<endl;
    fLowPtK0ShortSampleWithdEdx->Fit("f1","REM0");
    cInvMassK0ShortWithdEdx->cd(2)->cd(1); 
    f1->Draw("same"); 
    //Peak Position, Width: printout 
    fLowPtK0ShortSampleWithdEdx->GetYaxis()->SetRangeUser(0,fLowPtK0ShortSampleWithdEdx->GetMaximum() * 1.2);
    Tli.DrawLatex(0.2,0.8,Form("peak = %.4f #pm %.4f MeV/c^{2}",f1->GetParameter(4),f1->GetParameter(5)) ) ;
    
    //Attempt rough signal extraction   
    TF1 *f2 = new TF1("f2","[0]+[1]*x+[2]*x*x+[3]*TMath::Gaus(x,[4],[5])",0.375, 0.635);
    //Reasonable first guess
    f2->SetParameter(0, fMidPtK0ShortSampleWithdEdx -> GetBinContent( fMidPtK0ShortSampleWithdEdx->FindBin(0.497-0.01) ) );
    f2->SetParameter(1, 0 );
    f2->SetParameter(2, 0 );
    f2->SetParameter(3, 0.5*fMidPtK0ShortSampleWithdEdx->GetMaximum() ); 
    f2->SetParameter(4, 0.497);
    f2->SetParameter(5, 0.0045);
    cout<<"Will now fit, please wait!"<<endl;
    fMidPtK0ShortSampleWithdEdx->Fit("f2","REM0");
    cInvMassK0ShortWithdEdx->cd(2)->cd(2); 
    f2->Draw("same"); 
    //Peak Position, Width: printout 
    fMidPtK0ShortSampleWithdEdx->GetYaxis()->SetRangeUser(0,fMidPtK0ShortSampleWithdEdx->GetMaximum() * 1.2);
    Tli.DrawLatex(0.2,0.8,Form("peak = %.4f #pm %.4f MeV/c^{2}",f2->GetParameter(4),f2->GetParameter(5)) ) ;

    //Attempt rough signal extraction   
    TF1 *f3 = new TF1("f3","[0]+[1]*x+[2]*x*x+[3]*TMath::Gaus(x,[4],[5])",0.375, 0.665);
    //Reasonable first guess
    f3->SetParameter(0, fHiPtK0ShortSampleWithdEdx -> GetBinContent( fHiPtK0ShortSampleWithdEdx->FindBin(0.497-0.01) ) );
    f3->SetParameter(1, 0 );
    f3->SetParameter(2, 0 );
    f3->SetParameter(3, 0.5*fHiPtK0ShortSampleWithdEdx->GetMaximum() ); 
    f3->SetParameter(4, 0.497);
    f3->SetParameter(5, 0.0045);
    cout<<"Will now fit, please wait!"<<endl;
    fHiPtK0ShortSampleWithdEdx->Fit("f3","REM0");
    cInvMassK0ShortWithdEdx->cd(2)->cd(3); 
    f3->Draw("same"); 
    //Peak Position, Width: printout 
    fHiPtK0ShortSampleWithdEdx->GetYaxis()->SetRangeUser(0,fHiPtK0ShortSampleWithdEdx->GetMaximum() * 1.2);
    Tli.DrawLatex(0.2,0.8,Form("peak = %.4f #pm %.4f MeV/c^{2}",f3->GetParameter(4),f3->GetParameter(5)) ) ;
  }

  cInvMassK0ShortWithdEdx->SaveAs("V0_QA.pdf");
  //==============================================================  


  //==============================================================
  //Invariant Mass Plots: Base, no dE/dx
  /*
  TCanvas *cInvMassLambda = new TCanvas ( "cInvMassLambda", "", 1200,800); 
  cInvMassLambda->Divide(1,2); 
  cInvMassLambda->cd(2)->Divide(3,1); 
  cInvMassLambda->cd(1); 
  cInvMassLambda->cd(1)->SetLogz();
  cInvMassLambda->cd(1)->SetLeftMargin(0.065);
  cInvMassLambda->cd(1)->SetTopMargin(0.13);
  cInvMassLambda->cd(1)->SetBottomMargin(0.11);

  f2dHistInvMassLambda->GetYaxis()->SetTitleSize(0.05);
  f2dHistInvMassLambda->GetYaxis()->SetTitleOffset(0.6);
  f2dHistInvMassLambda->GetXaxis()->SetTitleSize(0.05);
  f2dHistInvMassLambda->GetXaxis()->SetTitle("p_{T} (GeV/c)");
  f2dHistInvMassLambda->GetZaxis()->SetTitle("Counts / Event");
  f2dHistInvMassLambda->GetZaxis()->SetTitleOffset(0.7);
  f2dHistInvMassLambda->GetZaxis()->SetRangeUser( f2dHistInvMassLambda->GetMinimum(1e-10)*0.9, f2dHistInvMassLambda->GetMaximum()*1.2 );
  f2dHistInvMassLambda->Draw("colz");
  Tl.DrawLatex(.35, .9277, "Mass under #Lambda hypothesis, no TPC dE/dx")  ;   

  TH1D *fLowPtLambdaSample = (TH1D*) f2dHistInvMassLambda->ProjectionY( "fLowPtLambdaSample", 
    f2dHistInvMassLambda->GetXaxis()->FindBin(0.5001),
    f2dHistInvMassLambda->GetXaxis()->FindBin(0.9999) );

  TH1D *fMidPtLambdaSample = (TH1D*) f2dHistInvMassLambda->ProjectionY( "fMidPtLambdaSample", 
    f2dHistInvMassLambda->GetXaxis()->FindBin(1.5001),
    f2dHistInvMassLambda->GetXaxis()->FindBin(2.4999) );

  TH1D *fHiPtLambdaSample = (TH1D*) f2dHistInvMassLambda->ProjectionY( "fHiPtLambdaSample", 
    f2dHistInvMassLambda->GetXaxis()->FindBin(5.0001),
    f2dHistInvMassLambda->GetXaxis()->FindBin(9.9999) );

  for(Int_t ic = 1; ic<4; ic++){ 
    cInvMassLambda->cd(2)->cd(ic)->SetTopMargin(0.14);
    cInvMassLambda->cd(2)->cd(ic)->SetLeftMargin(0.15);
    cInvMassLambda->cd(2)->cd(ic)->SetBottomMargin(0.11);
    cInvMassLambda->cd(2)->cd(ic)->SetGridx(); 
    cInvMassLambda->cd(2)->cd(ic)->SetGridy();
  }

  cInvMassLambda->cd(2)->cd(1); 
  fLowPtLambdaSample->GetXaxis()->SetTitleOffset(1.1);
  fLowPtLambdaSample->GetYaxis()->SetTitleOffset(2.33);
  fLowPtLambdaSample->GetYaxis()->SetTitle("Counts/Event");
  fLowPtLambdaSample->Draw(); 
  Tl.DrawLatex(.25, .9277, "0.5 < p_{T} (GeV/c^{2}) < 1.0");

  cInvMassLambda->cd(2)->cd(2); 
  fMidPtLambdaSample->GetXaxis()->SetTitleOffset(1.1);
  fMidPtLambdaSample->GetYaxis()->SetTitleOffset(2.33);
  fMidPtLambdaSample->GetYaxis()->SetTitle("Counts/Event");
  fMidPtLambdaSample->Draw(); 
  Tl.DrawLatex(.25, .9277, "1.5 < p_{T} (GeV/c^{2}) < 2.5");

  cInvMassLambda->cd(2)->cd(3); 
  fHiPtLambdaSample->GetXaxis()->SetTitleOffset(1.1);
  fHiPtLambdaSample->GetYaxis()->SetTitleOffset(2.33);
  fHiPtLambdaSample->GetYaxis()->SetTitle("Counts/Event");
  fHiPtLambdaSample->Draw(); 
  Tl.DrawLatex(.25, .9277, "5 < p_{T} (GeV/c^{2}) < 10");  
  cInvMassLambda->SaveAs("V0_QA.pdf");
  */
  //==============================================================

  //==============================================================
  //Invariant Mass Plots: WITH dE/dx
  TCanvas *cInvMassLambdaWithdEdx = new TCanvas ( "cInvMassLambdaWithdEdx", "", 1200,800); 
  cInvMassLambdaWithdEdx->Divide(1,2); 
  cInvMassLambdaWithdEdx->cd(2)->Divide(3,1); 
  cInvMassLambdaWithdEdx->cd(1); 
  cInvMassLambdaWithdEdx->cd(1)->SetLogz();
  cInvMassLambdaWithdEdx->cd(1)->SetLeftMargin(0.065);
  cInvMassLambdaWithdEdx->cd(1)->SetTopMargin(0.13);
  cInvMassLambdaWithdEdx->cd(1)->SetBottomMargin(0.11);

  f2dHistInvMassWithdEdxLambda->GetYaxis()->SetTitleSize(0.05);
  f2dHistInvMassWithdEdxLambda->GetYaxis()->SetTitleOffset(0.6);
  f2dHistInvMassWithdEdxLambda->GetXaxis()->SetTitleSize(0.05);
  f2dHistInvMassWithdEdxLambda->GetXaxis()->SetTitle("p_{T} (GeV/c)");
  f2dHistInvMassWithdEdxLambda->GetZaxis()->SetTitle("Counts / Event");
  f2dHistInvMassWithdEdxLambda->GetZaxis()->SetTitleOffset(0.7);
  f2dHistInvMassWithdEdxLambda->GetZaxis()->SetRangeUser( f2dHistInvMassWithdEdxLambda->GetMinimum(1e-10)*0.9, f2dHistInvMassWithdEdxLambda->GetMaximum()*1.2 );
  f2dHistInvMassWithdEdxLambda->Draw("colz");
  Tl.DrawLatex(.35, .9277, "Mass under #Lambda hypothesis, With TPC dE/dx")  ;   

  TH1D *fLowPtLambdaSampleWithdEdx = (TH1D*) f2dHistInvMassWithdEdxLambda->ProjectionY( "fLowPtLambdaSampleWithdEdx", 
    f2dHistInvMassWithdEdxLambda->GetXaxis()->FindBin(0.5001),
    f2dHistInvMassWithdEdxLambda->GetXaxis()->FindBin(0.9999) );

  TH1D *fMidPtLambdaSampleWithdEdx = (TH1D*) f2dHistInvMassWithdEdxLambda->ProjectionY( "fMidPtLambdaSampleWithdEdx", 
    f2dHistInvMassWithdEdxLambda->GetXaxis()->FindBin(1.5001),
    f2dHistInvMassWithdEdxLambda->GetXaxis()->FindBin(2.4999) );

  TH1D *fHiPtLambdaSampleWithdEdx = (TH1D*) f2dHistInvMassWithdEdxLambda->ProjectionY( "fHiPtLambdaSampleWithdEdx", 
    f2dHistInvMassWithdEdxLambda->GetXaxis()->FindBin(5.0001),
    f2dHistInvMassWithdEdxLambda->GetXaxis()->FindBin(9.9999) );

  for(Int_t ic = 1; ic<4; ic++){ 
    cInvMassLambdaWithdEdx->cd(2)->cd(ic)->SetTopMargin(0.14);
    cInvMassLambdaWithdEdx->cd(2)->cd(ic)->SetLeftMargin(0.15);
    cInvMassLambdaWithdEdx->cd(2)->cd(ic)->SetBottomMargin(0.11);
    cInvMassLambdaWithdEdx->cd(2)->cd(ic)->SetGridx(); 
    cInvMassLambdaWithdEdx->cd(2)->cd(ic)->SetGridy();
  }

  cInvMassLambdaWithdEdx->cd(2)->cd(1); 
  fLowPtLambdaSampleWithdEdx->GetXaxis()->SetTitleOffset(1.1);
  fLowPtLambdaSampleWithdEdx->GetYaxis()->SetTitleOffset(2.33);
  fLowPtLambdaSampleWithdEdx->GetYaxis()->SetTitle("Counts/Event");
  fLowPtLambdaSampleWithdEdx->Draw(); 
  Tl.DrawLatex(.25, .9277, "0.5 < p_{T} (GeV/c^{2}) < 1.0");

  cInvMassLambdaWithdEdx->cd(2)->cd(2); 
  fMidPtLambdaSampleWithdEdx->GetXaxis()->SetTitleOffset(1.1);
  fMidPtLambdaSampleWithdEdx->GetYaxis()->SetTitleOffset(2.33);
  fMidPtLambdaSampleWithdEdx->GetYaxis()->SetTitle("Counts/Event");
  fMidPtLambdaSampleWithdEdx->Draw(); 
  Tl.DrawLatex(.25, .9277, "1.5 < p_{T} (GeV/c^{2}) < 2.5");

  cInvMassLambdaWithdEdx->cd(2)->cd(3); 
  fHiPtLambdaSampleWithdEdx->GetXaxis()->SetTitleOffset(1.1);
  fHiPtLambdaSampleWithdEdx->GetYaxis()->SetTitleOffset(2.33);
  fHiPtLambdaSampleWithdEdx->GetYaxis()->SetTitle("Counts/Event");
  fHiPtLambdaSampleWithdEdx->Draw(); 
  Tl.DrawLatex(.25, .9277, "5 < p_{T} (GeV/c^{2}) < 10"); 

  if( lAttemptInvMassFit ){ 
    //Attempt rough signal extraction   
    TF1 *fl1 = new TF1("fl1","[0]+[1]*x+[2]*x*x+[3]*TMath::Gaus(x,[4],[5])",1.095, 1.14);
    //Reasonable first guess
    fl1->SetParameter(0, fLowPtLambdaSampleWithdEdx -> GetBinContent( fLowPtLambdaSampleWithdEdx->FindBin(1.116+0.01) ) );
    fl1->SetParameter(1, 0 );
    fl1->SetParameter(2, 0 );
    fl1->SetParameter(3, 0.35*fLowPtLambdaSampleWithdEdx->GetMaximum() ); 
    fl1->SetParameter(4, 1.115683);
    fl1->SetParLimits(4,1.116-0.01,1.116+0.01);
    fl1->SetParameter(5, 0.002);
    fl1->SetParLimits(5,0.0005,0.01);
    cout<<"Will now fit, please wait!"<<endl;
    fLowPtLambdaSampleWithdEdx->Fit("fl1","REM0");
    cInvMassLambdaWithdEdx->cd(2)->cd(1); 
    fl1->Draw("same"); 
    //Peak Position, Width: printout 
    fLowPtLambdaSampleWithdEdx->GetYaxis()->SetRangeUser(0,fLowPtLambdaSampleWithdEdx->GetMaximum() * 1.2);
    Tli.DrawLatex(0.2,0.8,Form("peak = %.4f #pm %.4f MeV/c^{2}",fl1->GetParameter(4),fl1->GetParameter(5)) ) ;
    
    //Attempt rough signal extraction   
    TF1 *fl2 = new TF1("fl2","[0]+[1]*x+[2]*x*x+[3]*TMath::Gaus(x,[4],[5])",1.085, 1.15);
    //Reasonable first guess
    fl2->SetParameter(0, fMidPtLambdaSampleWithdEdx -> GetBinContent( fMidPtLambdaSampleWithdEdx->FindBin(1.116+0.01) ) );
    fl2->SetParameter(1, 0 );
    fl2->SetParameter(2, 0 );
    fl2->SetParameter(3, 0.6*fMidPtLambdaSampleWithdEdx->GetMaximum() ); 
    fl2->SetParLimits(4,1.116-0.01,1.116+0.01);
    fl2->SetParameter(4, 1.116);
    fl2->SetParameter(5, 0.0025);
    fl2->SetParLimits(5,0.0005,0.01);
    cout<<"Will now fit, please wait!"<<endl;
    fMidPtLambdaSampleWithdEdx->Fit("fl2","REM0");
    cInvMassLambdaWithdEdx->cd(2)->cd(2); 
    fl2->Draw("same"); 
    //Peak Position, Width: printout 
    fMidPtLambdaSampleWithdEdx->GetYaxis()->SetRangeUser(0,fMidPtLambdaSampleWithdEdx->GetMaximum() * 1.2);
    Tli.DrawLatex(0.2,0.8,Form("peak = %.4f #pm %.4f MeV/c^{2}",fl2->GetParameter(4),fl2->GetParameter(5)) ) ;

    //Attempt rough signal extraction   
    TF1 *fl3 = new TF1("fl3","[0]+[1]*x+[2]*x*x+[3]*TMath::Gaus(x,[4],[5])",1.095, 1.15);
    //Reasonable first guess
    fl3->SetParameter(0, fHiPtLambdaSampleWithdEdx -> GetBinContent( fHiPtLambdaSampleWithdEdx->FindBin(1.116+0.01) ) );
    fl3->SetParameter(1, 0 );
    fl3->SetParameter(2, 0 );
    fl3->SetParameter(3, 0.6*fHiPtLambdaSampleWithdEdx->GetMaximum() ); 
    fl3->SetParameter(4, 1.116);
    fl3->SetParLimits(4,1.116-0.005,1.116+0.005);
    fl3->SetParameter(5, 0.0035);
    fl3->SetParLimits(5,0.0005,0.01);
    cout<<"Will now fit, please wait!"<<endl;
    fHiPtLambdaSampleWithdEdx->Fit("fl3","REM0");
    cInvMassLambdaWithdEdx->cd(2)->cd(3); 
    fl3->Draw("same"); 
    //Peak Position, Width: printout 
    fHiPtLambdaSampleWithdEdx->GetYaxis()->SetRangeUser(0,fHiPtLambdaSampleWithdEdx->GetMaximum() * 1.2);
    Tli.DrawLatex(0.2,0.8,Form("peak = %.4f #pm %.4f MeV/c^{2}",fl3->GetParameter(4),fl3->GetParameter(5)) ) ;
  }




 
  cInvMassLambdaWithdEdx->SaveAs("V0_QA.pdf");
  //==============================================================  

  //==============================================================
  //Invariant Mass Plots: Base, no dE/dx
  /*
  TCanvas *cInvMassAntiLambda = new TCanvas ( "cInvMassAntiLambda", "", 1200,800); 
  cInvMassAntiLambda->Divide(1,2); 
  cInvMassAntiLambda->cd(2)->Divide(3,1); 
  cInvMassAntiLambda->cd(1); 
  cInvMassAntiLambda->cd(1)->SetLogz();
  cInvMassAntiLambda->cd(1)->SetLeftMargin(0.065);
  cInvMassAntiLambda->cd(1)->SetTopMargin(0.13);
  cInvMassAntiLambda->cd(1)->SetBottomMargin(0.11);

  f2dHistInvMassAntiLambda->GetYaxis()->SetTitleSize(0.05);
  f2dHistInvMassAntiLambda->GetYaxis()->SetTitleOffset(0.6);
  f2dHistInvMassAntiLambda->GetXaxis()->SetTitleSize(0.05);
  f2dHistInvMassAntiLambda->GetXaxis()->SetTitle("p_{T} (GeV/c)");
  f2dHistInvMassAntiLambda->GetZaxis()->SetTitle("Counts / Event");
  f2dHistInvMassAntiLambda->GetZaxis()->SetTitleOffset(0.7);
  f2dHistInvMassAntiLambda->GetZaxis()->SetRangeUser( f2dHistInvMassAntiLambda->GetMinimum(1e-10)*0.9, f2dHistInvMassAntiLambda->GetMaximum()*1.2 );
  f2dHistInvMassAntiLambda->Draw("colz");
  Tl.DrawLatex(.35, .9277, "Mass under #bar{#Lambda} hypothesis, no TPC dE/dx")  ;   

  TH1D *fLowPtAntiLambdaSample = (TH1D*) f2dHistInvMassAntiLambda->ProjectionY( "fLowPtAntiLambdaSample", 
    f2dHistInvMassAntiLambda->GetXaxis()->FindBin(0.5001),
    f2dHistInvMassAntiLambda->GetXaxis()->FindBin(0.9999) );

  TH1D *fMidPtAntiLambdaSample = (TH1D*) f2dHistInvMassAntiLambda->ProjectionY( "fMidPtAntiLambdaSample", 
    f2dHistInvMassAntiLambda->GetXaxis()->FindBin(1.5001),
    f2dHistInvMassAntiLambda->GetXaxis()->FindBin(2.4999) );

  TH1D *fHiPtAntiLambdaSample = (TH1D*) f2dHistInvMassAntiLambda->ProjectionY( "fHiPtAntiLambdaSample", 
    f2dHistInvMassAntiLambda->GetXaxis()->FindBin(5.0001),
    f2dHistInvMassAntiLambda->GetXaxis()->FindBin(9.9999) );

  for(Int_t ic = 1; ic<4; ic++){ 
    cInvMassAntiLambda->cd(2)->cd(ic)->SetTopMargin(0.14);
    cInvMassAntiLambda->cd(2)->cd(ic)->SetLeftMargin(0.15);
    cInvMassAntiLambda->cd(2)->cd(ic)->SetBottomMargin(0.11);
    cInvMassAntiLambda->cd(2)->cd(ic)->SetGridx(); 
    cInvMassAntiLambda->cd(2)->cd(ic)->SetGridy();
  }

  cInvMassAntiLambda->cd(2)->cd(1); 
  fLowPtAntiLambdaSample->GetXaxis()->SetTitleOffset(1.1);
  fLowPtAntiLambdaSample->GetYaxis()->SetTitleOffset(2.33);
  fLowPtAntiLambdaSample->GetYaxis()->SetTitle("Counts/Event");
  fLowPtAntiLambdaSample->Draw(); 
  Tl.DrawLatex(.25, .9277, "0.5 < p_{T} (GeV/c^{2}) < 1.0");

  cInvMassAntiLambda->cd(2)->cd(2); 
  fMidPtAntiLambdaSample->GetXaxis()->SetTitleOffset(1.1);
  fMidPtAntiLambdaSample->GetYaxis()->SetTitleOffset(2.33);
  fMidPtAntiLambdaSample->GetYaxis()->SetTitle("Counts/Event");
  fMidPtAntiLambdaSample->Draw(); 
  Tl.DrawLatex(.25, .9277, "1.5 < p_{T} (GeV/c^{2}) < 2.5");

  cInvMassAntiLambda->cd(2)->cd(3); 
  fHiPtAntiLambdaSample->GetXaxis()->SetTitleOffset(1.1);
  fHiPtAntiLambdaSample->GetYaxis()->SetTitleOffset(2.33);
  fHiPtAntiLambdaSample->GetYaxis()->SetTitle("Counts/Event");
  fHiPtAntiLambdaSample->Draw(); 
  Tl.DrawLatex(.25, .9277, "5 < p_{T} (GeV/c^{2}) < 10");  
  cInvMassAntiLambda->SaveAs("V0_QA.pdf");
  */
  //==============================================================

  //==============================================================
  //Invariant Mass Plots: WITH dE/dx
  TCanvas *cInvMassAntiLambdaWithdEdx = new TCanvas ( "cInvMassAntiLambdaWithdEdx", "", 1200,800); 
  cInvMassAntiLambdaWithdEdx->Divide(1,2); 
  cInvMassAntiLambdaWithdEdx->cd(2)->Divide(3,1); 
  cInvMassAntiLambdaWithdEdx->cd(1); 
  cInvMassAntiLambdaWithdEdx->cd(1)->SetLogz();
  cInvMassAntiLambdaWithdEdx->cd(1)->SetLeftMargin(0.065);
  cInvMassAntiLambdaWithdEdx->cd(1)->SetTopMargin(0.13);
  cInvMassAntiLambdaWithdEdx->cd(1)->SetBottomMargin(0.11);

  f2dHistInvMassWithdEdxAntiLambda->GetYaxis()->SetTitleSize(0.05);
  f2dHistInvMassWithdEdxAntiLambda->GetYaxis()->SetTitleOffset(0.6);
  f2dHistInvMassWithdEdxAntiLambda->GetXaxis()->SetTitleSize(0.05);
  f2dHistInvMassWithdEdxAntiLambda->GetXaxis()->SetTitle("p_{T} (GeV/c)");
  f2dHistInvMassWithdEdxAntiLambda->GetZaxis()->SetTitle("Counts / Event");
  f2dHistInvMassWithdEdxAntiLambda->GetZaxis()->SetTitleOffset(0.7);
  f2dHistInvMassWithdEdxAntiLambda->GetZaxis()->SetRangeUser( f2dHistInvMassWithdEdxAntiLambda->GetMinimum(1e-10)*0.9, f2dHistInvMassWithdEdxAntiLambda->GetMaximum()*1.2 );
  f2dHistInvMassWithdEdxAntiLambda->Draw("colz");
  Tl.DrawLatex(.35, .9277, "Mass under #bar{#Lambda} hypothesis, With TPC dE/dx")  ;   

  TH1D *fLowPtAntiLambdaSampleWithdEdx = (TH1D*) f2dHistInvMassWithdEdxAntiLambda->ProjectionY( "fLowPtAntiLambdaSampleWithdEdx", 
    f2dHistInvMassWithdEdxAntiLambda->GetXaxis()->FindBin(0.5001),
    f2dHistInvMassWithdEdxAntiLambda->GetXaxis()->FindBin(0.9999) );

  TH1D *fMidPtAntiLambdaSampleWithdEdx = (TH1D*) f2dHistInvMassWithdEdxAntiLambda->ProjectionY( "fMidPtAntiLambdaSampleWithdEdx", 
    f2dHistInvMassWithdEdxAntiLambda->GetXaxis()->FindBin(1.5001),
    f2dHistInvMassWithdEdxAntiLambda->GetXaxis()->FindBin(2.4999) );

  TH1D *fHiPtAntiLambdaSampleWithdEdx = (TH1D*) f2dHistInvMassWithdEdxAntiLambda->ProjectionY( "fHiPtAntiLambdaSampleWithdEdx", 
    f2dHistInvMassWithdEdxAntiLambda->GetXaxis()->FindBin(5.0001),
    f2dHistInvMassWithdEdxAntiLambda->GetXaxis()->FindBin(9.9999) );

  for(Int_t ic = 1; ic<4; ic++){ 
    cInvMassAntiLambdaWithdEdx->cd(2)->cd(ic)->SetTopMargin(0.14);
    cInvMassAntiLambdaWithdEdx->cd(2)->cd(ic)->SetLeftMargin(0.15);
    cInvMassAntiLambdaWithdEdx->cd(2)->cd(ic)->SetBottomMargin(0.11);
    cInvMassAntiLambdaWithdEdx->cd(2)->cd(ic)->SetGridx(); 
    cInvMassAntiLambdaWithdEdx->cd(2)->cd(ic)->SetGridy();
  }

  cInvMassAntiLambdaWithdEdx->cd(2)->cd(1); 
  fLowPtAntiLambdaSampleWithdEdx->GetXaxis()->SetTitleOffset(1.1);
  fLowPtAntiLambdaSampleWithdEdx->GetYaxis()->SetTitleOffset(2.33);
  fLowPtAntiLambdaSampleWithdEdx->GetYaxis()->SetTitle("Counts/Event");
  fLowPtAntiLambdaSampleWithdEdx->Draw(); 
  Tl.DrawLatex(.25, .9277, "0.5 < p_{T} (GeV/c^{2}) < 1.0");

  cInvMassAntiLambdaWithdEdx->cd(2)->cd(2); 
  fMidPtAntiLambdaSampleWithdEdx->GetXaxis()->SetTitleOffset(1.1);
  fMidPtAntiLambdaSampleWithdEdx->GetYaxis()->SetTitleOffset(2.33);
  fMidPtAntiLambdaSampleWithdEdx->GetYaxis()->SetTitle("Counts/Event");
  fMidPtAntiLambdaSampleWithdEdx->Draw(); 
  Tl.DrawLatex(.25, .9277, "1.5 < p_{T} (GeV/c^{2}) < 2.5");

  cInvMassAntiLambdaWithdEdx->cd(2)->cd(3); 
  fHiPtAntiLambdaSampleWithdEdx->GetXaxis()->SetTitleOffset(1.1);
  fHiPtAntiLambdaSampleWithdEdx->GetYaxis()->SetTitleOffset(2.33);
  fHiPtAntiLambdaSampleWithdEdx->GetYaxis()->SetTitle("Counts/Event");
  fHiPtAntiLambdaSampleWithdEdx->Draw(); 
  Tl.DrawLatex(.25, .9277, "5 < p_{T} (GeV/c^{2}) < 10"); 

  if( lAttemptInvMassFit ){ 
    //Attempt rough signal extraction   
    TF1 *fal1 = new TF1("fal1","[0]+[1]*x+[2]*x*x+[3]*TMath::Gaus(x,[4],[5])",1.095, 1.14);
    //Reasonable first guess
    fal1->SetParameter(0, fLowPtAntiLambdaSampleWithdEdx -> GetBinContent( fLowPtAntiLambdaSampleWithdEdx->FindBin(1.116+0.01) ) );
    fal1->SetParameter(1, 0 );
    fal1->SetParameter(2, 0 );
    fal1->SetParameter(3, 0.35*fLowPtAntiLambdaSampleWithdEdx->GetMaximum() ); 
    fal1->SetParameter(4, 1.115683);
    fal1->SetParLimits(4,1.116-0.01,1.116+0.01);
    fal1->SetParameter(5, 0.002);
    fal1->SetParLimits(5,0.0005,0.01);
    cout<<"Will now fit, please wait!"<<endl;
    fLowPtAntiLambdaSampleWithdEdx->Fit("fal1","REM0");
    cInvMassAntiLambdaWithdEdx->cd(2)->cd(1); 
    fal1->Draw("same"); 
    //Peak Position, Width: printout 
    fLowPtAntiLambdaSampleWithdEdx->GetYaxis()->SetRangeUser(0,fLowPtAntiLambdaSampleWithdEdx->GetMaximum() * 1.2);
    Tli.DrawLatex(0.2,0.8,Form("peak = %.4f #pm %.4f MeV/c^{2}",fal1->GetParameter(4),fal1->GetParameter(5)) ) ;
    
    //Attempt rough signal extraction   
    TF1 *fal2 = new TF1("fal2","[0]+[1]*x+[2]*x*x+[3]*TMath::Gaus(x,[4],[5])",1.085, 1.15);
    //Reasonable first guess
    fal2->SetParameter(0, fMidPtAntiLambdaSampleWithdEdx -> GetBinContent( fMidPtAntiLambdaSampleWithdEdx->FindBin(1.116+0.01) ) );
    fal2->SetParameter(1, 0 );
    fal2->SetParameter(2, 0 );
    fal2->SetParameter(3, 0.6*fMidPtAntiLambdaSampleWithdEdx->GetMaximum() ); 
    fal2->SetParLimits(4,1.116-0.01,1.116+0.01);
    fal2->SetParameter(4, 1.116);
    fal2->SetParameter(5, 0.0025);
    fal2->SetParLimits(5,0.0005,0.01);
    cout<<"Will now fit, please wait!"<<endl;
    fMidPtAntiLambdaSampleWithdEdx->Fit("fal2","REM0");
    cInvMassAntiLambdaWithdEdx->cd(2)->cd(2); 
    fal2->Draw("same"); 
    //Peak Position, Width: printout 
    fMidPtAntiLambdaSampleWithdEdx->GetYaxis()->SetRangeUser(0,fMidPtAntiLambdaSampleWithdEdx->GetMaximum() * 1.2);
    Tli.DrawLatex(0.2,0.8,Form("peak = %.4f #pm %.4f MeV/c^{2}",fal2->GetParameter(4),fal2->GetParameter(5)) ) ;

    //Attempt rough signal extraction   
    TF1 *fal3 = new TF1("fal3","[0]+[1]*x+[2]*x*x+[3]*TMath::Gaus(x,[4],[5])",1.095, 1.15);
    //Reasonable first guess
    fal3->SetParameter(0, fHiPtAntiLambdaSampleWithdEdx -> GetBinContent( fHiPtAntiLambdaSampleWithdEdx->FindBin(1.116+0.01) ) );
    fal3->SetParameter(1, 0 );
    fal3->SetParameter(2, 0 );
    fal3->SetParameter(3, 0.6*fHiPtAntiLambdaSampleWithdEdx->GetMaximum() ); 
    fal3->SetParameter(4, 1.116);
    fal3->SetParLimits(4,1.116-0.005,1.116+0.005);
    fal3->SetParameter(5, 0.0035);
    fal3->SetParLimits(5,0.0005,0.01);
    cout<<"Will now fit, please wait!"<<endl;
    fHiPtAntiLambdaSampleWithdEdx->Fit("fal3","REM0");
    cInvMassAntiLambdaWithdEdx->cd(2)->cd(3); 
    fal3->Draw("same"); 
    //Peak Position, Width: printout 
    fHiPtAntiLambdaSampleWithdEdx->GetYaxis()->SetRangeUser(0,fHiPtAntiLambdaSampleWithdEdx->GetMaximum() * 1.2);
    Tli.DrawLatex(0.2,0.8,Form("peak = %.4f #pm %.4f MeV/c^{2}",fal3->GetParameter(4),fal3->GetParameter(5)) ) ;
  }

 
  cInvMassAntiLambdaWithdEdx->SaveAs("V0_QA.pdf");
  //==============================================================  

  //==============================================================  
  // Strict Lambda Analysis for dE/dx Calibration Check 
  TH2D *f2dHistdEdxSignalPionFromLambda    = (TH2D*)clist->FindObject("f2dHistdEdxSignalPionFromLambda");
  TH2D *f2dHistdEdxSignalProtonFromLambda  = (TH2D*)clist->FindObject("f2dHistdEdxSignalProtonFromLambda");
  TH2D *f2dHistResponsePionFromLambda      = (TH2D*)clist->FindObject("f2dHistResponsePionFromLambda");
  TH2D *f2dHistResponseProtonFromLambda    = (TH2D*)clist->FindObject("f2dHistResponseProtonFromLambda");

  f2dHistdEdxSignalPionFromLambda->Rebin2D(2,10);
  f2dHistdEdxSignalProtonFromLambda->Rebin2D(2,10);
    
  
  TH1D *fLowPtPionResponse = (TH1D*) f2dHistResponsePionFromLambda->ProjectionY( "fLowPtPionResponse", 
    f2dHistResponsePionFromLambda->GetXaxis()->FindBin(0.5001),
    f2dHistResponsePionFromLambda->GetXaxis()->FindBin(0.9999) );

  TH1D *fMidPtPionResponse = (TH1D*) f2dHistResponsePionFromLambda->ProjectionY( "fMidPtPionResponse", 
    f2dHistResponsePionFromLambda->GetXaxis()->FindBin(1.5001),
    f2dHistResponsePionFromLambda->GetXaxis()->FindBin(2.4999) );

  TH1D *fLowPtProtonResponse = (TH1D*) f2dHistResponseProtonFromLambda->ProjectionY( "fLowPtProtonResponse", 
    f2dHistResponseProtonFromLambda->GetXaxis()->FindBin(0.5001),
    f2dHistResponseProtonFromLambda->GetXaxis()->FindBin(0.9999) );

  TH1D *fMidPtProtonResponse = (TH1D*) f2dHistResponseProtonFromLambda->ProjectionY( "fMidPtProtonResponse", 
    f2dHistResponseProtonFromLambda->GetXaxis()->FindBin(1.5001),
    f2dHistResponseProtonFromLambda->GetXaxis()->FindBin(2.4999) );



  TCanvas *cdEdxPure = new TCanvas("cdEdxPure","",1500,800);
  cdEdxPure->Divide(4,2); 

  for(Int_t ic = 1; ic<9; ic++){ 
    cdEdxPure->SetLeftMargin(0.15);
    cdEdxPure->cd(ic)->SetLogz();
    //cdEdxPure->cd(ic)->SetTopMargin(0.133);
    if( ic%4 == 1 || ic%4 == 2){
      cdEdxPure->cd(ic)->SetRightMargin(0.133);
    }
    if( ic%4 != 1 && ic%4 != 2){
      cdEdxPure->cd(ic)->SetGridx();
      cdEdxPure->cd(ic)->SetGridy();
    }
  }



  cdEdxPure->cd(1); 
  f2dHistdEdxSignalPionFromLambda->Draw("colz"); 
  cdEdxPure->cd(2); 
  f2dHistResponsePionFromLambda->Draw("colz"); 
  cdEdxPure->cd(3); 
  fLowPtPionResponse->Draw();
  cdEdxPure->cd(4); 
  fMidPtPionResponse->Draw();

  cdEdxPure->cd(5); 
  f2dHistdEdxSignalProtonFromLambda->Draw("colz"); 
  cdEdxPure->cd(6); 
  f2dHistResponseProtonFromLambda->Draw("colz"); 
  cdEdxPure->cd(7); 
  fLowPtProtonResponse->Draw();
  cdEdxPure->cd(8); 
  fMidPtProtonResponse->Draw();



  //Write explanations on canvases
  cdEdxPure->cd(1); Tl.DrawLatex(.25, .9277, "#pi^{-} from #Lambda: TPC Signal");
  cdEdxPure->cd(2); Tl.DrawLatex(.15, .9277, "#pi^{-} from #Lambda: AliPIDResponse Value");
  cdEdxPure->cd(3); Tl.DrawLatex(.21, .9277, "#pi^{-} N#sigma, 0.5 < p_{T} (GeV/c) < 1.0");
  cdEdxPure->cd(4); Tl.DrawLatex(.21, .9277, "#pi^{-} N#sigma, 1.5 < p_{T} (GeV/c) < 2.5");

  cdEdxPure->cd(5); Tl.DrawLatex(.25, .9277, "p from #Lambda: TPC Signal");
  cdEdxPure->cd(6); Tl.DrawLatex(.15, .9277, "p from #Lambda: AliPIDResponse Value");
  cdEdxPure->cd(7); Tl.DrawLatex(.21, .9277, "p N#sigma, 0.5 < p_{T} (GeV/c) < 1.0");
  cdEdxPure->cd(8); Tl.DrawLatex(.21, .9277, "p N#sigma, 1.5 < p_{T} (GeV/c) < 2.5");

  Double_t lLowPtPeakPion         = fLowPtPionResponse->GetBinCenter( fLowPtPionResponse->GetMaximumBin() );
  Double_t lMidPtPeakPion         = fMidPtPionResponse->GetBinCenter( fMidPtPionResponse->GetMaximumBin() );
  Double_t lLowPtPeakProton       = fLowPtProtonResponse->GetBinCenter( fLowPtProtonResponse->GetMaximumBin() );
  Double_t lMidPtPeakProton       = fMidPtProtonResponse->GetBinCenter( fMidPtProtonResponse->GetMaximumBin() );

  //List Maximal Values
  cout<<"Maximal Value for pion from Lambda at low pt...............: " <<lLowPtPeakPion<<endl;
  cout<<"Maximal Value for pion from Lambda at mid pt...............: " <<lMidPtPeakPion<<endl;
  cout<<"Maximal Value for proton from Lambda at low pt.............: " <<lLowPtPeakProton<<endl;
  cout<<"Maximal Value for proton from Lambda at mid pt.............: " <<lMidPtPeakProton<<endl;

  if( TMath::Abs( lLowPtPeakPion ) > 0.3)   cout<<"*** WARNING: Check Low Pt pion PID Response! ***"<<endl;
  if( TMath::Abs( lMidPtPeakPion ) > 0.3)   cout<<"*** WARNING: Check Mid Pt pion PID Response! ***"<<endl;
  if( TMath::Abs( lLowPtPeakProton ) > 0.3) cout<<"*** WARNING: Check Low Pt proton PID Response! ***"<<endl;
  if( TMath::Abs( lMidPtPeakProton ) > 0.3) cout<<"*** WARNING: Check Mid Pt proton PID Response! ***"<<endl;

  TLatex Tlq;
  Tlq.SetNDC();
  Tlq.SetTextSize(0.06);

  //Draw Arrows to be sure!
  Double_t lFractionHeight = 0.33;
  cdEdxPure->cd(3);  
  TArrow *ar1 = new TArrow(lLowPtPeakPion,lFractionHeight * fLowPtPionResponse->GetMaximum(),lLowPtPeakPion,0.0, 0.008 ,"|>");
  ar1->SetLineWidth(2);
  ar1->Draw();
  if( TMath::Abs( lLowPtPeakPion ) < 0.3) {
    Tlq.SetTextColor(8); 
    Tlq.DrawLatex ( 0.15,0.8, "OK!");
  } else { 
    Tlq.SetTextColor(kRed); 
    Tlq.DrawLatex ( 0.15,0.8, "Prob.! Check dEd/x!");
  }

  cdEdxPure->cd(4);  
  TArrow *ar2 = new TArrow(lMidPtPeakPion,lFractionHeight * fMidPtPionResponse->GetMaximum(),lLowPtPeakPion,0.0, 0.008 ,"|>");
  ar2->SetLineWidth(2);
  ar2->Draw();
  if( TMath::Abs( lMidPtPeakPion ) < 0.3) {
    Tlq.SetTextColor(8); 
    Tlq.DrawLatex ( 0.15,0.8, "OK!");
  } else { 
    Tlq.SetTextColor(kRed); 
    Tlq.DrawLatex ( 0.15,0.8, "Prob.! Check dEd/x!");
  }
  
  cdEdxPure->cd(7);  
  TArrow *ar3 = new TArrow(lLowPtPeakProton,lFractionHeight * fLowPtProtonResponse->GetMaximum(),lLowPtPeakPion,0.0, 0.008 ,"|>");
  ar3->SetLineWidth(2);
  ar3->Draw();
  if( TMath::Abs( lLowPtPeakProton ) < 0.3) {
    Tlq.SetTextColor(8); 
    Tlq.DrawLatex ( 0.15,0.8, "OK!");
  } else { 
    Tlq.SetTextColor(kRed); 
    Tlq.DrawLatex ( 0.15,0.8, "Prob.! Check dEd/x!");
  }

  cdEdxPure->cd(8);  
  TArrow *ar4 = new TArrow(lMidPtPeakProton,lFractionHeight * fMidPtProtonResponse->GetMaximum(),lLowPtPeakPion,0.0, 0.008 ,"|>");
  ar4->SetLineWidth(2);
  ar4->Draw();
  if( TMath::Abs( lMidPtPeakProton ) < 0.3) {
    Tlq.SetTextColor(8); 
    Tlq.DrawLatex ( 0.15,0.8, "OK!");
  } else { 
    Tlq.SetTextColor(kRed); 
    Tlq.DrawLatex ( 0.15,0.8, "Prob.! Check dEd/x!");
  }
  cdEdxPure->SaveAs("V0_QA.pdf");

  //==============================================================

  //==============================================================    
  //Topological variable QA
  // FIXME: This is still only a rough first version. 
  // Adjustments will be required for easy / long-term operation.
  TH1D *fHistTopDCAPosToPV      = (TH1D*)clist->FindObject("fHistSelectedTopDCAPosToPV");
  TH1D *fHistTopDCANegToPV      = (TH1D*)clist->FindObject("fHistSelectedTopDCANegToPV");
  TH1D *fHistTopDCAV0Daughters  = (TH1D*)clist->FindObject("fHistSelectedTopDCAV0Daughters");
  TH1D *fHistTopCosinePA        = (TH1D*)clist->FindObject("fHistSelectedTopCosinePA");
  TH1D *fHistTopV0Radius        = (TH1D*)clist->FindObject("fHistSelectedTopV0Radius");

  //Zoom in on selection in Cosine of pointing angle...
  Int_t iLowBin=-1; 
  Int_t iLowBin2 = -1; 
  Int_t iLowBin3 = -1; 

  //Normalize to per-event 
  fHistTopDCAPosToPV      -> Scale ( 1. / ((Double_t)fHistEvent->GetBinContent(4) ) );
  fHistTopDCANegToPV      -> Scale ( 1. / ((Double_t)fHistEvent->GetBinContent(4) ) );
  fHistTopDCAV0Daughters  -> Scale ( 1. / ((Double_t)fHistEvent->GetBinContent(4) ) );
  fHistTopCosinePA        -> Scale ( 1. / ((Double_t)fHistEvent->GetBinContent(4) ) );
  fHistTopV0Radius        -> Scale ( 1. / ((Double_t)fHistEvent->GetBinContent(4) ) );

  fHistTopDCAPosToPV      -> GetYaxis() -> SetTitle("Counts / Event");
  fHistTopDCANegToPV      -> GetYaxis() -> SetTitle("Counts / Event");
  fHistTopDCAV0Daughters  -> GetYaxis() -> SetTitle("Counts / Event");
  fHistTopCosinePA        -> GetYaxis() -> SetTitle("Counts / Event");
  fHistTopV0Radius        -> GetYaxis() -> SetTitle("Counts / Event");

  fHistTopDCAPosToPV      -> GetYaxis() -> SetTitleSize(0.05);
  fHistTopDCANegToPV      -> GetYaxis() -> SetTitleSize(0.05);
  fHistTopDCAV0Daughters  -> GetYaxis() -> SetTitleSize(0.05);
  fHistTopCosinePA        -> GetYaxis() -> SetTitleSize(0.05);
  fHistTopV0Radius        -> GetYaxis() -> SetTitleSize(0.05);

  fHistTopDCAPosToPV      -> GetXaxis() -> SetTitleSize(0.05);
  fHistTopDCANegToPV      -> GetXaxis() -> SetTitleSize(0.05);
  fHistTopDCAV0Daughters  -> GetXaxis() -> SetTitleSize(0.05);
  fHistTopCosinePA        -> GetXaxis() -> SetTitleSize(0.05);
  fHistTopV0Radius        -> GetXaxis() -> SetTitleSize(0.05);

  Double_t lMinimumCosPADraw = 1.-1.25*(1.-GetXForMinValue ( fHistTopCosinePA ) ); //assumes monotonically increasing dist
  cout<<"Function test: "<< lMinimumCosPADraw <<endl;
  fHistTopCosinePA->GetXaxis()->SetRangeUser(lMinimumCosPADraw,1.001);  

  Double_t lmin[5]; 
  Double_t lminPrecision[5]; 
  lmin[3] = GetXForMinValue ( fHistTopCosinePA );
  lmin[4] = GetXForMinValue ( fHistTopV0Radius );
  lmin[0] = GetXForMaxValue ( fHistTopDCAPosToPV );
  lmin[1] = GetXForMaxValue ( fHistTopDCANegToPV );
  lmin[2] = GetXForMinValue ( fHistTopDCAV0Daughters );

  lminPrecision[3] = fHistTopCosinePA        -> GetBinWidth(1);
  lminPrecision[4] = fHistTopV0Radius        -> GetBinWidth(1);
  lminPrecision[0] = fHistTopDCAPosToPV      -> GetBinWidth(1);
  lminPrecision[1] = fHistTopDCANegToPV      -> GetBinWidth(1);
  lminPrecision[2] = fHistTopDCAV0Daughters  -> GetBinWidth(1);

  cout<<"Minimum Values Found: "<<endl;
  cout<<"Cosine of Pointing Angle...........: "<<GetXForMinValue (fHistTopCosinePA )<<" precision = "<<lminPrecision[3]<<endl;
  cout<<"DCA Neg Daughter to PV.............: "<<GetXForMaxValue (fHistTopDCAPosToPV )<<" precision = "<<lminPrecision[1]<<endl;
  cout<<"DCA Pos Daughter to PV.............: "<<GetXForMaxValue (fHistTopDCANegToPV )<<" precision = "<<lminPrecision[0]<<endl;
  cout<<"DCA V0 Daughers....................: "<<GetXForMinValue (fHistTopDCAV0Daughters )<<" precision = "<<lminPrecision[2]<<endl;
  cout<<"V0 Decay Radius....................: "<<GetXForMinValue (fHistTopV0Radius )<<" precision = "<<lminPrecision[4]<<endl;


  TCanvas *cTopo = new TCanvas ("cTopo","",1200,800);
  cTopo->Divide(3,2); 
  for(Int_t ic = 1; ic<7; ic++){ 
    cTopo->cd(ic)->SetLeftMargin(0.15);
    cTopo->cd(ic)->SetGridx(); 
    cTopo->cd(ic)->SetGridy(); 
  }

  cTopo->cd(1);   
  fHistTopDCAPosToPV->Draw(); 
  cTopo->cd(2);   
  fHistTopDCANegToPV->Draw(); 
  cTopo->cd(3);   
  fHistTopDCAV0Daughters->Draw(); 
  cTopo->cd(4);   
  fHistTopCosinePA->Draw(); 
  cTopo->cd(5);   
  fHistTopV0Radius->Draw(); 

  TLatex Tlt;
  Tlt.SetNDC();
  Tlt.SetTextSize(0.05);
  cTopo->cd(6);
    
  Tlt.DrawLatex(.22, .9, "Boundary Checks")  ;


        
  TString lCut[5];
  lCut [ 0 ] = "Min DCA Pos D. To PV (cm)";
  lCut [ 1 ] = "Min DCA Neg D. To PV (cm)";
  lCut [ 2 ] = "Max DCA V0 Daughters (#sigma)";
  lCut [ 3 ] = "Min Cosine PA";
  lCut [ 4 ] = "Min 2D Decay Radius (cm)";

  TString lCutVal[5]; 
  TString lCutValPrec[5]; 
    
  Tlt.SetTextSize(0.04);
  Tlt.SetTextFont(42);

  Tlt.DrawLatex(.01, .80, "Topological Var.")  ;
  Tlt.DrawLatex(.6, .80, "Value")  ;
  Tlt.DrawLatex(.75, .80, "Precision")  ;

  for (Int_t il=0;il<5;il++){ 
    Tlt.DrawLatex(.01,0.72-((double)il)*0.075, lCut[il].Data() );
    lCutVal[il] = Form( "%.4f", lmin[il] );
    Tlt.DrawLatex(.5925,0.72-((double)il)*0.075, lCutVal[il].Data() );
    lCutValPrec[il] = Form( "%.4f", lminPrecision[il] );
    Tlt.DrawLatex(.7675,0.72-((double)il)*0.075, lCutValPrec[il].Data() );
  }

  Tlt.SetTextSize(0.05);
  Tlt.SetTextFont(42);

  //Try to make a wild guess... 
  if ( TMath::Abs( lmin[0] - 0.100 ) < 2*lminPrecision[0] &&
       TMath::Abs( lmin[1] - 0.100 ) < 2*lminPrecision[1] &&
       TMath::Abs( lmin[2] - 1.000 ) < 2*lminPrecision[2] &&
       TMath::Abs( lmin[3] - 0.998 ) < 2*lminPrecision[3] &&
       TMath::Abs( lmin[4] - 0.500 ) < 2*lminPrecision[4] ){
    Tlt.DrawLatex( 0.17, 0.275, "#bf{Autodetect Interpretation}: "); 
    Tlt.DrawLatex( 0.1, 0.2, "Typical #bf{Pb-Pb} Reconstruction Cuts");
  }
  if ( TMath::Abs( lmin[0] - 0.020 ) < 2*lminPrecision[0] &&
       TMath::Abs( lmin[1] - 0.020 ) < 2*lminPrecision[1] &&
       TMath::Abs( lmin[2] - 1.500 ) < 2*lminPrecision[2] &&
       TMath::Abs( lmin[3] - 0.98 )  < 2*lminPrecision[3] &&
       TMath::Abs( lmin[4] - 0.500 ) < 2*lminPrecision[4] ){
    Tlt.DrawLatex( 0.15, 0.29, "#bf{Autodetect Interpretation}: ");  
    Tlt.DrawLatex( 0.1, 0.2, "Typical pp Reconstruction Cuts"); //To be checked
  }
  cTopo->SaveAs("V0_QA.pdf)");


}

CustomGStyleSettings(){ 
  gStyle->SetOptStat(0); 
  gStyle->SetGridColor(kGray); 

}

Double_t GetXForMaxValue( TH1D *lHist){ 
  Double_t lMaximum = 1e-10; 
  Double_t lMaximumX = 1000; 
  Double_t lThisBin = -1; 
  for(Long_t ib=1; ib<lHist->GetNbinsX()+1; ib++){ 
    lThisBin = lHist->GetBinContent(ib);
    if ( lThisBin > lMaximum ){ 
      lMaximum = lHist->GetBinContent(ib); 
      lMaximumX = lHist->GetBinLowEdge(ib); 
    }
  }
  return lMaximumX; 
}

Double_t GetXForMinValue( TH1D *lHist){ 
  Double_t lThreshold = 1e-7;
  Double_t lMinimum = 1e+10; 
  Double_t lMinimumX = 1000; 
  Double_t lThisBin = -1; 
  for(Long_t ib=1; ib<lHist->GetNbinsX()+1; ib++){ 
    lThisBin = lHist->GetBinContent(ib);
    if ( lThisBin < lMinimum && lThisBin>lThreshold ){ 
      lMinimum = lHist->GetBinContent(ib); 
      lMinimumX = lHist->GetBinLowEdge(ib); 
    }
  }
  return lMinimumX; 
}

//Trick for background fitting (pol2) 
Double_t MyBgPol2(const Double_t *x, const Double_t *par)
{
        //par[0] and par[1] -> linear and angular coefficients
        //par[2] and par[3] -> lower and upper peak boundaries
        if ( x[0] > par[2] && x[0] < par[3]) {
                TF1::RejectPoint();
                return 0;
        }
        return par[0] + par[1]*x[0];
}



 PostProcessQAV0.C:1
 PostProcessQAV0.C:2
 PostProcessQAV0.C:3
 PostProcessQAV0.C:4
 PostProcessQAV0.C:5
 PostProcessQAV0.C:6
 PostProcessQAV0.C:7
 PostProcessQAV0.C:8
 PostProcessQAV0.C:9
 PostProcessQAV0.C:10
 PostProcessQAV0.C:11
 PostProcessQAV0.C:12
 PostProcessQAV0.C:13
 PostProcessQAV0.C:14
 PostProcessQAV0.C:15
 PostProcessQAV0.C:16
 PostProcessQAV0.C:17
 PostProcessQAV0.C:18
 PostProcessQAV0.C:19
 PostProcessQAV0.C:20
 PostProcessQAV0.C:21
 PostProcessQAV0.C:22
 PostProcessQAV0.C:23
 PostProcessQAV0.C:24
 PostProcessQAV0.C:25
 PostProcessQAV0.C:26
 PostProcessQAV0.C:27
 PostProcessQAV0.C:28
 PostProcessQAV0.C:29
 PostProcessQAV0.C:30
 PostProcessQAV0.C:31
 PostProcessQAV0.C:32
 PostProcessQAV0.C:33
 PostProcessQAV0.C:34
 PostProcessQAV0.C:35
 PostProcessQAV0.C:36
 PostProcessQAV0.C:37
 PostProcessQAV0.C:38
 PostProcessQAV0.C:39
 PostProcessQAV0.C:40
 PostProcessQAV0.C:41
 PostProcessQAV0.C:42
 PostProcessQAV0.C:43
 PostProcessQAV0.C:44
 PostProcessQAV0.C:45
 PostProcessQAV0.C:46
 PostProcessQAV0.C:47
 PostProcessQAV0.C:48
 PostProcessQAV0.C:49
 PostProcessQAV0.C:50
 PostProcessQAV0.C:51
 PostProcessQAV0.C:52
 PostProcessQAV0.C:53
 PostProcessQAV0.C:54
 PostProcessQAV0.C:55
 PostProcessQAV0.C:56
 PostProcessQAV0.C:57
 PostProcessQAV0.C:58
 PostProcessQAV0.C:59
 PostProcessQAV0.C:60
 PostProcessQAV0.C:61
 PostProcessQAV0.C:62
 PostProcessQAV0.C:63
 PostProcessQAV0.C:64
 PostProcessQAV0.C:65
 PostProcessQAV0.C:66
 PostProcessQAV0.C:67
 PostProcessQAV0.C:68
 PostProcessQAV0.C:69
 PostProcessQAV0.C:70
 PostProcessQAV0.C:71
 PostProcessQAV0.C:72
 PostProcessQAV0.C:73
 PostProcessQAV0.C:74
 PostProcessQAV0.C:75
 PostProcessQAV0.C:76
 PostProcessQAV0.C:77
 PostProcessQAV0.C:78
 PostProcessQAV0.C:79
 PostProcessQAV0.C:80
 PostProcessQAV0.C:81
 PostProcessQAV0.C:82
 PostProcessQAV0.C:83
 PostProcessQAV0.C:84
 PostProcessQAV0.C:85
 PostProcessQAV0.C:86
 PostProcessQAV0.C:87
 PostProcessQAV0.C:88
 PostProcessQAV0.C:89
 PostProcessQAV0.C:90
 PostProcessQAV0.C:91
 PostProcessQAV0.C:92
 PostProcessQAV0.C:93
 PostProcessQAV0.C:94
 PostProcessQAV0.C:95
 PostProcessQAV0.C:96
 PostProcessQAV0.C:97
 PostProcessQAV0.C:98
 PostProcessQAV0.C:99
 PostProcessQAV0.C:100
 PostProcessQAV0.C:101
 PostProcessQAV0.C:102
 PostProcessQAV0.C:103
 PostProcessQAV0.C:104
 PostProcessQAV0.C:105
 PostProcessQAV0.C:106
 PostProcessQAV0.C:107
 PostProcessQAV0.C:108
 PostProcessQAV0.C:109
 PostProcessQAV0.C:110
 PostProcessQAV0.C:111
 PostProcessQAV0.C:112
 PostProcessQAV0.C:113
 PostProcessQAV0.C:114
 PostProcessQAV0.C:115
 PostProcessQAV0.C:116
 PostProcessQAV0.C:117
 PostProcessQAV0.C:118
 PostProcessQAV0.C:119
 PostProcessQAV0.C:120
 PostProcessQAV0.C:121
 PostProcessQAV0.C:122
 PostProcessQAV0.C:123
 PostProcessQAV0.C:124
 PostProcessQAV0.C:125
 PostProcessQAV0.C:126
 PostProcessQAV0.C:127
 PostProcessQAV0.C:128
 PostProcessQAV0.C:129
 PostProcessQAV0.C:130
 PostProcessQAV0.C:131
 PostProcessQAV0.C:132
 PostProcessQAV0.C:133
 PostProcessQAV0.C:134
 PostProcessQAV0.C:135
 PostProcessQAV0.C:136
 PostProcessQAV0.C:137
 PostProcessQAV0.C:138
 PostProcessQAV0.C:139
 PostProcessQAV0.C:140
 PostProcessQAV0.C:141
 PostProcessQAV0.C:142
 PostProcessQAV0.C:143
 PostProcessQAV0.C:144
 PostProcessQAV0.C:145
 PostProcessQAV0.C:146
 PostProcessQAV0.C:147
 PostProcessQAV0.C:148
 PostProcessQAV0.C:149
 PostProcessQAV0.C:150
 PostProcessQAV0.C:151
 PostProcessQAV0.C:152
 PostProcessQAV0.C:153
 PostProcessQAV0.C:154
 PostProcessQAV0.C:155
 PostProcessQAV0.C:156
 PostProcessQAV0.C:157
 PostProcessQAV0.C:158
 PostProcessQAV0.C:159
 PostProcessQAV0.C:160
 PostProcessQAV0.C:161
 PostProcessQAV0.C:162
 PostProcessQAV0.C:163
 PostProcessQAV0.C:164
 PostProcessQAV0.C:165
 PostProcessQAV0.C:166
 PostProcessQAV0.C:167
 PostProcessQAV0.C:168
 PostProcessQAV0.C:169
 PostProcessQAV0.C:170
 PostProcessQAV0.C:171
 PostProcessQAV0.C:172
 PostProcessQAV0.C:173
 PostProcessQAV0.C:174
 PostProcessQAV0.C:175
 PostProcessQAV0.C:176
 PostProcessQAV0.C:177
 PostProcessQAV0.C:178
 PostProcessQAV0.C:179
 PostProcessQAV0.C:180
 PostProcessQAV0.C:181
 PostProcessQAV0.C:182
 PostProcessQAV0.C:183
 PostProcessQAV0.C:184
 PostProcessQAV0.C:185
 PostProcessQAV0.C:186
 PostProcessQAV0.C:187
 PostProcessQAV0.C:188
 PostProcessQAV0.C:189
 PostProcessQAV0.C:190
 PostProcessQAV0.C:191
 PostProcessQAV0.C:192
 PostProcessQAV0.C:193
 PostProcessQAV0.C:194
 PostProcessQAV0.C:195
 PostProcessQAV0.C:196
 PostProcessQAV0.C:197
 PostProcessQAV0.C:198
 PostProcessQAV0.C:199
 PostProcessQAV0.C:200
 PostProcessQAV0.C:201
 PostProcessQAV0.C:202
 PostProcessQAV0.C:203
 PostProcessQAV0.C:204
 PostProcessQAV0.C:205
 PostProcessQAV0.C:206
 PostProcessQAV0.C:207
 PostProcessQAV0.C:208
 PostProcessQAV0.C:209
 PostProcessQAV0.C:210
 PostProcessQAV0.C:211
 PostProcessQAV0.C:212
 PostProcessQAV0.C:213
 PostProcessQAV0.C:214
 PostProcessQAV0.C:215
 PostProcessQAV0.C:216
 PostProcessQAV0.C:217
 PostProcessQAV0.C:218
 PostProcessQAV0.C:219
 PostProcessQAV0.C:220
 PostProcessQAV0.C:221
 PostProcessQAV0.C:222
 PostProcessQAV0.C:223
 PostProcessQAV0.C:224
 PostProcessQAV0.C:225
 PostProcessQAV0.C:226
 PostProcessQAV0.C:227
 PostProcessQAV0.C:228
 PostProcessQAV0.C:229
 PostProcessQAV0.C:230
 PostProcessQAV0.C:231
 PostProcessQAV0.C:232
 PostProcessQAV0.C:233
 PostProcessQAV0.C:234
 PostProcessQAV0.C:235
 PostProcessQAV0.C:236
 PostProcessQAV0.C:237
 PostProcessQAV0.C:238
 PostProcessQAV0.C:239
 PostProcessQAV0.C:240
 PostProcessQAV0.C:241
 PostProcessQAV0.C:242
 PostProcessQAV0.C:243
 PostProcessQAV0.C:244
 PostProcessQAV0.C:245
 PostProcessQAV0.C:246
 PostProcessQAV0.C:247
 PostProcessQAV0.C:248
 PostProcessQAV0.C:249
 PostProcessQAV0.C:250
 PostProcessQAV0.C:251
 PostProcessQAV0.C:252
 PostProcessQAV0.C:253
 PostProcessQAV0.C:254
 PostProcessQAV0.C:255
 PostProcessQAV0.C:256
 PostProcessQAV0.C:257
 PostProcessQAV0.C:258
 PostProcessQAV0.C:259
 PostProcessQAV0.C:260
 PostProcessQAV0.C:261
 PostProcessQAV0.C:262
 PostProcessQAV0.C:263
 PostProcessQAV0.C:264
 PostProcessQAV0.C:265
 PostProcessQAV0.C:266
 PostProcessQAV0.C:267
 PostProcessQAV0.C:268
 PostProcessQAV0.C:269
 PostProcessQAV0.C:270
 PostProcessQAV0.C:271
 PostProcessQAV0.C:272
 PostProcessQAV0.C:273
 PostProcessQAV0.C:274
 PostProcessQAV0.C:275
 PostProcessQAV0.C:276
 PostProcessQAV0.C:277
 PostProcessQAV0.C:278
 PostProcessQAV0.C:279
 PostProcessQAV0.C:280
 PostProcessQAV0.C:281
 PostProcessQAV0.C:282
 PostProcessQAV0.C:283
 PostProcessQAV0.C:284
 PostProcessQAV0.C:285
 PostProcessQAV0.C:286
 PostProcessQAV0.C:287
 PostProcessQAV0.C:288
 PostProcessQAV0.C:289
 PostProcessQAV0.C:290
 PostProcessQAV0.C:291
 PostProcessQAV0.C:292
 PostProcessQAV0.C:293
 PostProcessQAV0.C:294
 PostProcessQAV0.C:295
 PostProcessQAV0.C:296
 PostProcessQAV0.C:297
 PostProcessQAV0.C:298
 PostProcessQAV0.C:299
 PostProcessQAV0.C:300
 PostProcessQAV0.C:301
 PostProcessQAV0.C:302
 PostProcessQAV0.C:303
 PostProcessQAV0.C:304
 PostProcessQAV0.C:305
 PostProcessQAV0.C:306
 PostProcessQAV0.C:307
 PostProcessQAV0.C:308
 PostProcessQAV0.C:309
 PostProcessQAV0.C:310
 PostProcessQAV0.C:311
 PostProcessQAV0.C:312
 PostProcessQAV0.C:313
 PostProcessQAV0.C:314
 PostProcessQAV0.C:315
 PostProcessQAV0.C:316
 PostProcessQAV0.C:317
 PostProcessQAV0.C:318
 PostProcessQAV0.C:319
 PostProcessQAV0.C:320
 PostProcessQAV0.C:321
 PostProcessQAV0.C:322
 PostProcessQAV0.C:323
 PostProcessQAV0.C:324
 PostProcessQAV0.C:325
 PostProcessQAV0.C:326
 PostProcessQAV0.C:327
 PostProcessQAV0.C:328
 PostProcessQAV0.C:329
 PostProcessQAV0.C:330
 PostProcessQAV0.C:331
 PostProcessQAV0.C:332
 PostProcessQAV0.C:333
 PostProcessQAV0.C:334
 PostProcessQAV0.C:335
 PostProcessQAV0.C:336
 PostProcessQAV0.C:337
 PostProcessQAV0.C:338
 PostProcessQAV0.C:339
 PostProcessQAV0.C:340
 PostProcessQAV0.C:341
 PostProcessQAV0.C:342
 PostProcessQAV0.C:343
 PostProcessQAV0.C:344
 PostProcessQAV0.C:345
 PostProcessQAV0.C:346
 PostProcessQAV0.C:347
 PostProcessQAV0.C:348
 PostProcessQAV0.C:349
 PostProcessQAV0.C:350
 PostProcessQAV0.C:351
 PostProcessQAV0.C:352
 PostProcessQAV0.C:353
 PostProcessQAV0.C:354
 PostProcessQAV0.C:355
 PostProcessQAV0.C:356
 PostProcessQAV0.C:357
 PostProcessQAV0.C:358
 PostProcessQAV0.C:359
 PostProcessQAV0.C:360
 PostProcessQAV0.C:361
 PostProcessQAV0.C:362
 PostProcessQAV0.C:363
 PostProcessQAV0.C:364
 PostProcessQAV0.C:365
 PostProcessQAV0.C:366
 PostProcessQAV0.C:367
 PostProcessQAV0.C:368
 PostProcessQAV0.C:369
 PostProcessQAV0.C:370
 PostProcessQAV0.C:371
 PostProcessQAV0.C:372
 PostProcessQAV0.C:373
 PostProcessQAV0.C:374
 PostProcessQAV0.C:375
 PostProcessQAV0.C:376
 PostProcessQAV0.C:377
 PostProcessQAV0.C:378
 PostProcessQAV0.C:379
 PostProcessQAV0.C:380
 PostProcessQAV0.C:381
 PostProcessQAV0.C:382
 PostProcessQAV0.C:383
 PostProcessQAV0.C:384
 PostProcessQAV0.C:385
 PostProcessQAV0.C:386
 PostProcessQAV0.C:387
 PostProcessQAV0.C:388
 PostProcessQAV0.C:389
 PostProcessQAV0.C:390
 PostProcessQAV0.C:391
 PostProcessQAV0.C:392
 PostProcessQAV0.C:393
 PostProcessQAV0.C:394
 PostProcessQAV0.C:395
 PostProcessQAV0.C:396
 PostProcessQAV0.C:397
 PostProcessQAV0.C:398
 PostProcessQAV0.C:399
 PostProcessQAV0.C:400
 PostProcessQAV0.C:401
 PostProcessQAV0.C:402
 PostProcessQAV0.C:403
 PostProcessQAV0.C:404
 PostProcessQAV0.C:405
 PostProcessQAV0.C:406
 PostProcessQAV0.C:407
 PostProcessQAV0.C:408
 PostProcessQAV0.C:409
 PostProcessQAV0.C:410
 PostProcessQAV0.C:411
 PostProcessQAV0.C:412
 PostProcessQAV0.C:413
 PostProcessQAV0.C:414
 PostProcessQAV0.C:415
 PostProcessQAV0.C:416
 PostProcessQAV0.C:417
 PostProcessQAV0.C:418
 PostProcessQAV0.C:419
 PostProcessQAV0.C:420
 PostProcessQAV0.C:421
 PostProcessQAV0.C:422
 PostProcessQAV0.C:423
 PostProcessQAV0.C:424
 PostProcessQAV0.C:425
 PostProcessQAV0.C:426
 PostProcessQAV0.C:427
 PostProcessQAV0.C:428
 PostProcessQAV0.C:429
 PostProcessQAV0.C:430
 PostProcessQAV0.C:431
 PostProcessQAV0.C:432
 PostProcessQAV0.C:433
 PostProcessQAV0.C:434
 PostProcessQAV0.C:435
 PostProcessQAV0.C:436
 PostProcessQAV0.C:437
 PostProcessQAV0.C:438
 PostProcessQAV0.C:439
 PostProcessQAV0.C:440
 PostProcessQAV0.C:441
 PostProcessQAV0.C:442
 PostProcessQAV0.C:443
 PostProcessQAV0.C:444
 PostProcessQAV0.C:445
 PostProcessQAV0.C:446
 PostProcessQAV0.C:447
 PostProcessQAV0.C:448
 PostProcessQAV0.C:449
 PostProcessQAV0.C:450
 PostProcessQAV0.C:451
 PostProcessQAV0.C:452
 PostProcessQAV0.C:453
 PostProcessQAV0.C:454
 PostProcessQAV0.C:455
 PostProcessQAV0.C:456
 PostProcessQAV0.C:457
 PostProcessQAV0.C:458
 PostProcessQAV0.C:459
 PostProcessQAV0.C:460
 PostProcessQAV0.C:461
 PostProcessQAV0.C:462
 PostProcessQAV0.C:463
 PostProcessQAV0.C:464
 PostProcessQAV0.C:465
 PostProcessQAV0.C:466
 PostProcessQAV0.C:467
 PostProcessQAV0.C:468
 PostProcessQAV0.C:469
 PostProcessQAV0.C:470
 PostProcessQAV0.C:471
 PostProcessQAV0.C:472
 PostProcessQAV0.C:473
 PostProcessQAV0.C:474
 PostProcessQAV0.C:475
 PostProcessQAV0.C:476
 PostProcessQAV0.C:477
 PostProcessQAV0.C:478
 PostProcessQAV0.C:479
 PostProcessQAV0.C:480
 PostProcessQAV0.C:481
 PostProcessQAV0.C:482
 PostProcessQAV0.C:483
 PostProcessQAV0.C:484
 PostProcessQAV0.C:485
 PostProcessQAV0.C:486
 PostProcessQAV0.C:487
 PostProcessQAV0.C:488
 PostProcessQAV0.C:489
 PostProcessQAV0.C:490
 PostProcessQAV0.C:491
 PostProcessQAV0.C:492
 PostProcessQAV0.C:493
 PostProcessQAV0.C:494
 PostProcessQAV0.C:495
 PostProcessQAV0.C:496
 PostProcessQAV0.C:497
 PostProcessQAV0.C:498
 PostProcessQAV0.C:499
 PostProcessQAV0.C:500
 PostProcessQAV0.C:501
 PostProcessQAV0.C:502
 PostProcessQAV0.C:503
 PostProcessQAV0.C:504
 PostProcessQAV0.C:505
 PostProcessQAV0.C:506
 PostProcessQAV0.C:507
 PostProcessQAV0.C:508
 PostProcessQAV0.C:509
 PostProcessQAV0.C:510
 PostProcessQAV0.C:511
 PostProcessQAV0.C:512
 PostProcessQAV0.C:513
 PostProcessQAV0.C:514
 PostProcessQAV0.C:515
 PostProcessQAV0.C:516
 PostProcessQAV0.C:517
 PostProcessQAV0.C:518
 PostProcessQAV0.C:519
 PostProcessQAV0.C:520
 PostProcessQAV0.C:521
 PostProcessQAV0.C:522
 PostProcessQAV0.C:523
 PostProcessQAV0.C:524
 PostProcessQAV0.C:525
 PostProcessQAV0.C:526
 PostProcessQAV0.C:527
 PostProcessQAV0.C:528
 PostProcessQAV0.C:529
 PostProcessQAV0.C:530
 PostProcessQAV0.C:531
 PostProcessQAV0.C:532
 PostProcessQAV0.C:533
 PostProcessQAV0.C:534
 PostProcessQAV0.C:535
 PostProcessQAV0.C:536
 PostProcessQAV0.C:537
 PostProcessQAV0.C:538
 PostProcessQAV0.C:539
 PostProcessQAV0.C:540
 PostProcessQAV0.C:541
 PostProcessQAV0.C:542
 PostProcessQAV0.C:543
 PostProcessQAV0.C:544
 PostProcessQAV0.C:545
 PostProcessQAV0.C:546
 PostProcessQAV0.C:547
 PostProcessQAV0.C:548
 PostProcessQAV0.C:549
 PostProcessQAV0.C:550
 PostProcessQAV0.C:551
 PostProcessQAV0.C:552
 PostProcessQAV0.C:553
 PostProcessQAV0.C:554
 PostProcessQAV0.C:555
 PostProcessQAV0.C:556
 PostProcessQAV0.C:557
 PostProcessQAV0.C:558
 PostProcessQAV0.C:559
 PostProcessQAV0.C:560
 PostProcessQAV0.C:561
 PostProcessQAV0.C:562
 PostProcessQAV0.C:563
 PostProcessQAV0.C:564
 PostProcessQAV0.C:565
 PostProcessQAV0.C:566
 PostProcessQAV0.C:567
 PostProcessQAV0.C:568
 PostProcessQAV0.C:569
 PostProcessQAV0.C:570
 PostProcessQAV0.C:571
 PostProcessQAV0.C:572
 PostProcessQAV0.C:573
 PostProcessQAV0.C:574
 PostProcessQAV0.C:575
 PostProcessQAV0.C:576
 PostProcessQAV0.C:577
 PostProcessQAV0.C:578
 PostProcessQAV0.C:579
 PostProcessQAV0.C:580
 PostProcessQAV0.C:581
 PostProcessQAV0.C:582
 PostProcessQAV0.C:583
 PostProcessQAV0.C:584
 PostProcessQAV0.C:585
 PostProcessQAV0.C:586
 PostProcessQAV0.C:587
 PostProcessQAV0.C:588
 PostProcessQAV0.C:589
 PostProcessQAV0.C:590
 PostProcessQAV0.C:591
 PostProcessQAV0.C:592
 PostProcessQAV0.C:593
 PostProcessQAV0.C:594
 PostProcessQAV0.C:595
 PostProcessQAV0.C:596
 PostProcessQAV0.C:597
 PostProcessQAV0.C:598
 PostProcessQAV0.C:599
 PostProcessQAV0.C:600
 PostProcessQAV0.C:601
 PostProcessQAV0.C:602
 PostProcessQAV0.C:603
 PostProcessQAV0.C:604
 PostProcessQAV0.C:605
 PostProcessQAV0.C:606
 PostProcessQAV0.C:607
 PostProcessQAV0.C:608
 PostProcessQAV0.C:609
 PostProcessQAV0.C:610
 PostProcessQAV0.C:611
 PostProcessQAV0.C:612
 PostProcessQAV0.C:613
 PostProcessQAV0.C:614
 PostProcessQAV0.C:615
 PostProcessQAV0.C:616
 PostProcessQAV0.C:617
 PostProcessQAV0.C:618
 PostProcessQAV0.C:619
 PostProcessQAV0.C:620
 PostProcessQAV0.C:621
 PostProcessQAV0.C:622
 PostProcessQAV0.C:623
 PostProcessQAV0.C:624
 PostProcessQAV0.C:625
 PostProcessQAV0.C:626
 PostProcessQAV0.C:627
 PostProcessQAV0.C:628
 PostProcessQAV0.C:629
 PostProcessQAV0.C:630
 PostProcessQAV0.C:631
 PostProcessQAV0.C:632
 PostProcessQAV0.C:633
 PostProcessQAV0.C:634
 PostProcessQAV0.C:635
 PostProcessQAV0.C:636
 PostProcessQAV0.C:637
 PostProcessQAV0.C:638
 PostProcessQAV0.C:639
 PostProcessQAV0.C:640
 PostProcessQAV0.C:641
 PostProcessQAV0.C:642
 PostProcessQAV0.C:643
 PostProcessQAV0.C:644
 PostProcessQAV0.C:645
 PostProcessQAV0.C:646
 PostProcessQAV0.C:647
 PostProcessQAV0.C:648
 PostProcessQAV0.C:649
 PostProcessQAV0.C:650
 PostProcessQAV0.C:651
 PostProcessQAV0.C:652
 PostProcessQAV0.C:653
 PostProcessQAV0.C:654
 PostProcessQAV0.C:655
 PostProcessQAV0.C:656
 PostProcessQAV0.C:657
 PostProcessQAV0.C:658
 PostProcessQAV0.C:659
 PostProcessQAV0.C:660
 PostProcessQAV0.C:661
 PostProcessQAV0.C:662
 PostProcessQAV0.C:663
 PostProcessQAV0.C:664
 PostProcessQAV0.C:665
 PostProcessQAV0.C:666
 PostProcessQAV0.C:667
 PostProcessQAV0.C:668
 PostProcessQAV0.C:669
 PostProcessQAV0.C:670
 PostProcessQAV0.C:671
 PostProcessQAV0.C:672
 PostProcessQAV0.C:673
 PostProcessQAV0.C:674
 PostProcessQAV0.C:675
 PostProcessQAV0.C:676
 PostProcessQAV0.C:677
 PostProcessQAV0.C:678
 PostProcessQAV0.C:679
 PostProcessQAV0.C:680
 PostProcessQAV0.C:681
 PostProcessQAV0.C:682
 PostProcessQAV0.C:683
 PostProcessQAV0.C:684
 PostProcessQAV0.C:685
 PostProcessQAV0.C:686
 PostProcessQAV0.C:687
 PostProcessQAV0.C:688
 PostProcessQAV0.C:689
 PostProcessQAV0.C:690
 PostProcessQAV0.C:691
 PostProcessQAV0.C:692
 PostProcessQAV0.C:693
 PostProcessQAV0.C:694
 PostProcessQAV0.C:695
 PostProcessQAV0.C:696
 PostProcessQAV0.C:697
 PostProcessQAV0.C:698
 PostProcessQAV0.C:699
 PostProcessQAV0.C:700
 PostProcessQAV0.C:701
 PostProcessQAV0.C:702
 PostProcessQAV0.C:703
 PostProcessQAV0.C:704
 PostProcessQAV0.C:705
 PostProcessQAV0.C:706
 PostProcessQAV0.C:707
 PostProcessQAV0.C:708
 PostProcessQAV0.C:709
 PostProcessQAV0.C:710
 PostProcessQAV0.C:711
 PostProcessQAV0.C:712
 PostProcessQAV0.C:713
 PostProcessQAV0.C:714
 PostProcessQAV0.C:715
 PostProcessQAV0.C:716
 PostProcessQAV0.C:717
 PostProcessQAV0.C:718
 PostProcessQAV0.C:719
 PostProcessQAV0.C:720
 PostProcessQAV0.C:721
 PostProcessQAV0.C:722
 PostProcessQAV0.C:723
 PostProcessQAV0.C:724
 PostProcessQAV0.C:725
 PostProcessQAV0.C:726
 PostProcessQAV0.C:727
 PostProcessQAV0.C:728
 PostProcessQAV0.C:729
 PostProcessQAV0.C:730
 PostProcessQAV0.C:731
 PostProcessQAV0.C:732
 PostProcessQAV0.C:733
 PostProcessQAV0.C:734
 PostProcessQAV0.C:735
 PostProcessQAV0.C:736
 PostProcessQAV0.C:737
 PostProcessQAV0.C:738
 PostProcessQAV0.C:739
 PostProcessQAV0.C:740
 PostProcessQAV0.C:741
 PostProcessQAV0.C:742
 PostProcessQAV0.C:743
 PostProcessQAV0.C:744
 PostProcessQAV0.C:745
 PostProcessQAV0.C:746
 PostProcessQAV0.C:747
 PostProcessQAV0.C:748
 PostProcessQAV0.C:749
 PostProcessQAV0.C:750
 PostProcessQAV0.C:751
 PostProcessQAV0.C:752
 PostProcessQAV0.C:753
 PostProcessQAV0.C:754
 PostProcessQAV0.C:755
 PostProcessQAV0.C:756
 PostProcessQAV0.C:757
 PostProcessQAV0.C:758
 PostProcessQAV0.C:759
 PostProcessQAV0.C:760
 PostProcessQAV0.C:761
 PostProcessQAV0.C:762
 PostProcessQAV0.C:763
 PostProcessQAV0.C:764
 PostProcessQAV0.C:765
 PostProcessQAV0.C:766
 PostProcessQAV0.C:767
 PostProcessQAV0.C:768
 PostProcessQAV0.C:769
 PostProcessQAV0.C:770
 PostProcessQAV0.C:771
 PostProcessQAV0.C:772
 PostProcessQAV0.C:773
 PostProcessQAV0.C:774
 PostProcessQAV0.C:775
 PostProcessQAV0.C:776
 PostProcessQAV0.C:777
 PostProcessQAV0.C:778
 PostProcessQAV0.C:779
 PostProcessQAV0.C:780
 PostProcessQAV0.C:781
 PostProcessQAV0.C:782
 PostProcessQAV0.C:783
 PostProcessQAV0.C:784
 PostProcessQAV0.C:785
 PostProcessQAV0.C:786
 PostProcessQAV0.C:787
 PostProcessQAV0.C:788
 PostProcessQAV0.C:789
 PostProcessQAV0.C:790
 PostProcessQAV0.C:791
 PostProcessQAV0.C:792
 PostProcessQAV0.C:793
 PostProcessQAV0.C:794
 PostProcessQAV0.C:795
 PostProcessQAV0.C:796
 PostProcessQAV0.C:797
 PostProcessQAV0.C:798
 PostProcessQAV0.C:799
 PostProcessQAV0.C:800
 PostProcessQAV0.C:801
 PostProcessQAV0.C:802
 PostProcessQAV0.C:803
 PostProcessQAV0.C:804
 PostProcessQAV0.C:805
 PostProcessQAV0.C:806
 PostProcessQAV0.C:807
 PostProcessQAV0.C:808
 PostProcessQAV0.C:809
 PostProcessQAV0.C:810
 PostProcessQAV0.C:811
 PostProcessQAV0.C:812
 PostProcessQAV0.C:813
 PostProcessQAV0.C:814
 PostProcessQAV0.C:815
 PostProcessQAV0.C:816
 PostProcessQAV0.C:817
 PostProcessQAV0.C:818
 PostProcessQAV0.C:819
 PostProcessQAV0.C:820
 PostProcessQAV0.C:821
 PostProcessQAV0.C:822
 PostProcessQAV0.C:823
 PostProcessQAV0.C:824
 PostProcessQAV0.C:825
 PostProcessQAV0.C:826
 PostProcessQAV0.C:827
 PostProcessQAV0.C:828
 PostProcessQAV0.C:829
 PostProcessQAV0.C:830
 PostProcessQAV0.C:831
 PostProcessQAV0.C:832
 PostProcessQAV0.C:833
 PostProcessQAV0.C:834
 PostProcessQAV0.C:835
 PostProcessQAV0.C:836
 PostProcessQAV0.C:837
 PostProcessQAV0.C:838
 PostProcessQAV0.C:839
 PostProcessQAV0.C:840
 PostProcessQAV0.C:841
 PostProcessQAV0.C:842
 PostProcessQAV0.C:843
 PostProcessQAV0.C:844
 PostProcessQAV0.C:845
 PostProcessQAV0.C:846
 PostProcessQAV0.C:847
 PostProcessQAV0.C:848
 PostProcessQAV0.C:849
 PostProcessQAV0.C:850
 PostProcessQAV0.C:851
 PostProcessQAV0.C:852
 PostProcessQAV0.C:853
 PostProcessQAV0.C:854
 PostProcessQAV0.C:855
 PostProcessQAV0.C:856
 PostProcessQAV0.C:857
 PostProcessQAV0.C:858
 PostProcessQAV0.C:859
 PostProcessQAV0.C:860
 PostProcessQAV0.C:861
 PostProcessQAV0.C:862
 PostProcessQAV0.C:863
 PostProcessQAV0.C:864
 PostProcessQAV0.C:865
 PostProcessQAV0.C:866
 PostProcessQAV0.C:867
 PostProcessQAV0.C:868
 PostProcessQAV0.C:869
 PostProcessQAV0.C:870
 PostProcessQAV0.C:871
 PostProcessQAV0.C:872
 PostProcessQAV0.C:873
 PostProcessQAV0.C:874
 PostProcessQAV0.C:875
 PostProcessQAV0.C:876
 PostProcessQAV0.C:877
 PostProcessQAV0.C:878
 PostProcessQAV0.C:879
 PostProcessQAV0.C:880
 PostProcessQAV0.C:881
 PostProcessQAV0.C:882
 PostProcessQAV0.C:883
 PostProcessQAV0.C:884
 PostProcessQAV0.C:885
 PostProcessQAV0.C:886
 PostProcessQAV0.C:887
 PostProcessQAV0.C:888
 PostProcessQAV0.C:889
 PostProcessQAV0.C:890
 PostProcessQAV0.C:891
 PostProcessQAV0.C:892
 PostProcessQAV0.C:893
 PostProcessQAV0.C:894
 PostProcessQAV0.C:895
 PostProcessQAV0.C:896
 PostProcessQAV0.C:897
 PostProcessQAV0.C:898
 PostProcessQAV0.C:899
 PostProcessQAV0.C:900
 PostProcessQAV0.C:901
 PostProcessQAV0.C:902
 PostProcessQAV0.C:903
 PostProcessQAV0.C:904
 PostProcessQAV0.C:905
 PostProcessQAV0.C:906
 PostProcessQAV0.C:907
 PostProcessQAV0.C:908
 PostProcessQAV0.C:909
 PostProcessQAV0.C:910
 PostProcessQAV0.C:911
 PostProcessQAV0.C:912
 PostProcessQAV0.C:913
 PostProcessQAV0.C:914
 PostProcessQAV0.C:915
 PostProcessQAV0.C:916
 PostProcessQAV0.C:917
 PostProcessQAV0.C:918
 PostProcessQAV0.C:919
 PostProcessQAV0.C:920
 PostProcessQAV0.C:921
 PostProcessQAV0.C:922
 PostProcessQAV0.C:923
 PostProcessQAV0.C:924
 PostProcessQAV0.C:925
 PostProcessQAV0.C:926
 PostProcessQAV0.C:927
 PostProcessQAV0.C:928
 PostProcessQAV0.C:929
 PostProcessQAV0.C:930
 PostProcessQAV0.C:931
 PostProcessQAV0.C:932
 PostProcessQAV0.C:933
 PostProcessQAV0.C:934
 PostProcessQAV0.C:935
 PostProcessQAV0.C:936
 PostProcessQAV0.C:937
 PostProcessQAV0.C:938
 PostProcessQAV0.C:939
 PostProcessQAV0.C:940
 PostProcessQAV0.C:941
 PostProcessQAV0.C:942
 PostProcessQAV0.C:943
 PostProcessQAV0.C:944
 PostProcessQAV0.C:945
 PostProcessQAV0.C:946
 PostProcessQAV0.C:947
 PostProcessQAV0.C:948
 PostProcessQAV0.C:949
 PostProcessQAV0.C:950
 PostProcessQAV0.C:951
 PostProcessQAV0.C:952
 PostProcessQAV0.C:953
 PostProcessQAV0.C:954
 PostProcessQAV0.C:955
 PostProcessQAV0.C:956
 PostProcessQAV0.C:957
 PostProcessQAV0.C:958
 PostProcessQAV0.C:959
 PostProcessQAV0.C:960
 PostProcessQAV0.C:961
 PostProcessQAV0.C:962
 PostProcessQAV0.C:963
 PostProcessQAV0.C:964
 PostProcessQAV0.C:965
 PostProcessQAV0.C:966
 PostProcessQAV0.C:967
 PostProcessQAV0.C:968
 PostProcessQAV0.C:969
 PostProcessQAV0.C:970
 PostProcessQAV0.C:971
 PostProcessQAV0.C:972
 PostProcessQAV0.C:973
 PostProcessQAV0.C:974
 PostProcessQAV0.C:975
 PostProcessQAV0.C:976
 PostProcessQAV0.C:977
 PostProcessQAV0.C:978
 PostProcessQAV0.C:979
 PostProcessQAV0.C:980
 PostProcessQAV0.C:981
 PostProcessQAV0.C:982
 PostProcessQAV0.C:983
 PostProcessQAV0.C:984
 PostProcessQAV0.C:985
 PostProcessQAV0.C:986
 PostProcessQAV0.C:987
 PostProcessQAV0.C:988
 PostProcessQAV0.C:989
 PostProcessQAV0.C:990
 PostProcessQAV0.C:991
 PostProcessQAV0.C:992
 PostProcessQAV0.C:993