ROOT logo
void CorrectForEfficiencypptrd(const char *filedata,const char *fileMC,const char *NameList,Bool_t withtrd=kTRUE, Float_t CorrType=0, Int_t conf=2, Bool_t smoothing=kFALSE, Bool_t hadroncontaminationsubtracted=kTRUE, Bool_t UnsetCorrelatedErrors=kFALSE);
void CorrectForEfficiencyBeauty(const char *filedata,const char *fileMC, const char *fileMCbg);
TList *GetResults(const Char_t *testfile,const Char_t *plus="");
TList *GetQA(const Char_t *testfile,const Char_t *plus="");
TObject* GetSpectrum(AliCFContainer *c, Int_t step);
THnSparseF* GetHadronEffbyIPcut(TList *hfeqa);
void CorrectFromTheWidth(TH1D *h1);

void CorrectForEfficiencypptrd(const char *filedata,const char *fileMC,const char *NameList,Bool_t withtrd, Float_t CorrType, Int_t conf, Bool_t smoothing, Bool_t hadroncontaminationsubtracted, Bool_t UnsetCorrelatedErrors) {

   ///////////////////////////////////////////////////////////////////////////////////////////////////////
  // Will produce finalSpectrum.root with results inside
  // TGraphErrors UnfoldingCorrectedSpectrum -> unfolding procedure (doesn't work in 2D with trunk)
  // TGraphErrors AlltogetherSpectrum -> corrected spectrum with other method
  // TH1D RatioUnfoldingAlltogetherSpectrum 
  // THnSparseF UnfoldingCorrectedNotNormalizedSpectrum -> unfolding procedure not yet normalized
  // AliCFDataGrid AlltogetherCorrectedNotNormalizedSpectrum -> other method not yet normalized
  //
  // NameList - possible extension for the full name of the data and MC TLists (e.g. "_PID2" for HFE_Results_PID2)
  // CorrType - 0 use fixed TPC PID 0.5
  //            1 use TPC PID efficiency from V0s 
  //
  // Conf - TRD efficiency
  // double TRDeffs[5] = {0.7,0.8,0.9,0.75,0.85};
  // conf = 2, TRDeff = 0.8...
  // (Only relevant for withtrd = kTRUE)
  //
  // f/ smoothing kFALSE
  //
  // g/ Flag for hadron contamination subtraction
  // kTRUE means we subtract the hadron contamination
  // kFALSE not
  //
  ///////////////////////////////////////////////////////////////////////////////////////////////////////

  double TRDeffs[5] = {0.7,0.8,0.9,0.75,0.85};

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

  if (CorrType>1){
    printf("Wrong argument for the type of correction, it is maybe missing, or it has to be <=2!!! \n");
    return;
  }

  /////////////////////
  // Take the stuff
  /////////////////////
  
  printf("Get results for data \n");
  TList *resultsdata = GetResults(filedata,NameList);
  if(!resultsdata){
    printf("No output objects for data: Calculation will terminate here\n");
    return;
  }

  ///////////////////////////////////////////////////////////
  // Event container for the normalization to CINB1
  // Take the number of events as function of z and number of contributors
  // For those without primary vertex from tracks, take the fraction in the z range from MC
  // For 10cm: LHC10f6a (88.0756%), LHC10f6 (86.7461%)
  ////////////////////////////////////////////////////////////
  resultsdata->Print();

  AliCFContainer *containerdata = (AliCFContainer *) resultsdata->FindObject("eventContainer");
  if(!containerdata) {
    printf("No container \n");
    return;
  }
  AliCFDataGrid *dataGrid = (AliCFDataGrid *) GetSpectrum(containerdata,AliHFEcuts::kEventStepZRange);
  //dataGrid->PrintBinLimits();
  dataGrid->PrintNBins();
  
  // 
  TH2D *spectrum_zrange = (TH2D *) dataGrid->Project(0,3);
  TAxis *axis_0 = spectrum_zrange->GetXaxis();
  TAxis *axis_1 = spectrum_zrange->GetYaxis();
  printf("Number of bins in x %d and in y %d\n",axis_0->GetNbins(),axis_1->GetNbins());
  TH1D *spectrum1Da = (TH1D *) spectrum_zrange->ProjectionX("bin0",1,1);
  TH1D *spectrum1Db = (TH1D *) spectrum_zrange->ProjectionX("bin>0",2,12);
  TH1D *spectrum1Dc = (TH1D *) spectrum_zrange->ProjectionX("total");
  Double_t nbinbin0 = spectrum1Da->Integral();
  Double_t nbinnobin0 = spectrum1Db->Integral();
  Double_t nbintotal = spectrum1Dc->Integral();

  //TCanvas *c1teste = new TCanvas("eventcontainertest","eventcontainertest",800,800);
  //c1teste->cd(1);
  //spectrum_zrange->Draw("colz");
  

  Float_t numberofentries = nbinnobin0+nbinbin0*0.880756;
  printf("Number in bin0 %f, number out %f, total %f, normalized %f\n",nbinbin0,nbinnobin0,nbintotal,numberofentries);
  
  //////////////////////////////
  // Take more stuff
  ///////////////////////////////
 
  printf("Get results for MC \n");
  TList *resultsmc = GetResults(fileMC,NameList);
  if(!resultsmc){
    printf("No output objects for mc: Calculation will terminate here\n");
    return;
  }

  AliHFEcontainer *datahfecontainer = (AliHFEcontainer *) resultsdata->FindObject("trackContainer");
  if(!datahfecontainer) {
    printf("No container for data \n");
    return;
  }
  AliCFContainer *sumcontainer = datahfecontainer->GetCFContainer("recTrackContReco");

  ////////////////////////////////////////////
  //Plot raw spectrum for TPC TOF scenario
  ////////////////////////////////////////////
  AliCFDataGrid *dataGrida = 0x0;
  if(!withtrd) dataGrida = (AliCFDataGrid *) GetSpectrum(sumcontainer,AliHFEcuts::kStepHFEcutsTRD + 2);
  else dataGrida = (AliCFDataGrid *) GetSpectrum(sumcontainer,AliHFEcuts::kStepHFEcutsTRD + 3);
 
  TH1D *spectrumpt =  (TH1D *) dataGrida->Project(0);
  CorrectFromTheWidth(spectrumpt);
  
  TH1D *total = new TH1D("total","",1,0.3,10.3);
  total->SetMaximum(1.0e+07);
  total->SetMinimum(1000);
  total->SetXTitle("p_{T} [GeV/c]");
  total->SetYTitle("dN/dp_{T}[GeV/c]^{-1}");
  total->SetTitleOffset(1.5,"Y");
  //total->Scale(0.9);
  total->GetXaxis()->SetRangeUser(0.38,10.3);
   

  TCanvas *c1test = new TCanvas("rawspectrum","rawspectrum",800,800);
  c1test->cd(1);
  gPad->SetLeftMargin(0.13);
  gPad->SetLogy();
  gPad->SetTicks();
  //gPad->SetGridx();
  //gPad->SetGridy();
  gPad->SetFillColor(10);
  gPad->SetFrameFillColor(10);
  gStyle->SetOptStat(0);
  gStyle->SetOptFit(1111);
  gStyle->SetOptTitle(0);
  total->SetStats(0);
  spectrumpt->SetStats(0);
  total->Draw();
  spectrumpt->Draw("same");
  TPaveText* t1=new TPaveText(0.49,0.45,0.79,0.52,"NDC");
  t1->SetFillStyle(0);
  t1->SetBorderSize(0);
  t1->AddText(0.,0.,"pp, #sqrt{s} =  7 TeV");
  t1->SetTextColor(kRed);
  //t1->SetTextSize(20);
  t1->SetTextFont(42);
  t1->Draw();
  TPaveText* t2=new TPaveText(0.49,0.35,0.79,0.42,"NDC");
  t2->SetFillStyle(0);
  t2->SetBorderSize(0);
  t2->AddText(0.,0.,"L = 2.6 nb^{-1}");
  t2->SetTextColor(kRed);
  //t1->SetTextSize(20);
  t2->SetTextFont(42);
  t2->Draw();
  TPaveText* t3=new TPaveText(0.49,0.35,0.79,0.42,"NDC");
  t3->SetFillStyle(0);
  t3->SetBorderSize(0);
  t3->AddText(0.,0.,"|#eta| < 0.8");
  t3->SetTextColor(kRed);
  //t1->SetTextSize(20);
  t3->SetTextFont(42);
  t3->Draw();
  
  /////////////////////////////
  // Check number of events
  /////////////////////////////


  Int_t numberOfEventsafterallcuts = (Int_t) datahfecontainer->GetNumberOfEvents();
   
  printf("Number of events not corrected %d\n",numberOfEventsafterallcuts);
  printf("Number of events corrected  %f\n",numberofentries);

  AliHFEcontainer *mchfecontainer = (AliHFEcontainer *) resultsmc->FindObject("trackContainer");
  if(!mchfecontainer) {
    printf("No mc container \n");
    return;
  }
 
  printf("Find the container V0\n");   
  AliHFEcontainer *containerhfeV0 = (AliHFEcontainer *) resultsdata->FindObject("containerV0");
  if(!containerhfeV0) {
    printf("No hfe container \n");
    return;
  }
    
  //////////////
  // Correct
  /////////////

  AliHFEspectrum *spectrum = new AliHFEspectrum("HFEspectrum");
  spectrum->SetNbDimensions(1);
  // If you want to correct positive (0) or negative (1) separately
  //spectrum->SetChargeChoosen(0);
  spectrum->SetSmoothing(smoothing);
  spectrum->SetUnSetCorrelatedErrors(UnsetCorrelatedErrors);
  spectrum->SetDebugLevel(1);
  spectrum->SetNumberOfEvents((Int_t)numberofentries);
  spectrum->SetDumpToFile(kTRUE);
  // True step in MC (events in range +- 10 cm and no pile up)
  spectrum->SetMCTruthStep(AliHFEcuts::kStepMCGeneratedZOutNoPileUpCentralityFine);

  // Step where we correct from MC (tracking + TOF)
  spectrum->SetMCEffStep(AliHFEcuts::kNcutStepsMCTrack + AliHFEcuts::kStepHFEcutsTRD + 1);
  printf("!!! Step we correct with MC %d\n!!!",AliHFEcuts::kNcutStepsMCTrack + AliHFEcuts::kStepHFEcutsTRD + 1);
 

  // Step from data we correct for
  //////////****************************//////////////////////////////
  if(withtrd) spectrum->SetStepToCorrect(AliHFEcuts::kStepHFEcutsTRD + 3);
  else spectrum->SetStepToCorrect(AliHFEcuts::kStepHFEcutsTRD + 2);
  //////////****************************//////////////////////////////

  // Steps to be corrected with V0 
  if (CorrType == 1){
    printf("\n This time we correct with PID efficiency from V0s !!! \n");
    if(withtrd) {
      spectrum->SetStepBeforeCutsV0(AliHFEcuts::kStepHFEcutsTRD + 2);
      spectrum->SetStepAfterCutsV0(AliHFEcuts::kStepHFEcutsTRD + 3);
    }
    else {
      spectrum->SetStepBeforeCutsV0(AliHFEcuts::kStepHFEcutsTRD + 1);
      spectrum->SetStepAfterCutsV0(AliHFEcuts::kStepHFEcutsTRD + 2);
    }
  }

  if (CorrType < 1){
 
    Double_t effTPC = 0.5,
      effTRD = TRDeffs[conf-1]; 
    printf("effTRD = %f\n", effTRD);
    // Place for a correction as an efficiency parametrized as function of pt of pt,eta,phi or p=pt
    TF1 *hEfficiency = new TF1("efficiency", "[0]", 0., 20.);
    if(withtrd) hEfficiency->SetParameter(0, effTPC*effTRD);
    else hEfficiency->SetParameter(0, effTPC);
    spectrum->SetEfficiencyFunction(hEfficiency);
  }  

  // Give everything (data container, mc container and V0 data container)
  if (CorrType == 1){
    printf("\n This time we correct with PID efficiency from V0s !!! \n");
    spectrum->Init(datahfecontainer,mchfecontainer,containerhfeV0);
  }
  else {
    printf("\n This time we correct with PID efficiency from MC or fixed value !!! \n");
    spectrum->Init(datahfecontainer,mchfecontainer);
  }
 
  // kTRUE means subtract hadron background, kFALSE means do not subtract hadron background
  spectrum->Correct(hadroncontaminationsubtracted);
  

}

//_____________________________________________________________________
void CorrectForEfficiencyBeauty(const char *filedata,const char *fileMC, const char *fileMCbg) {
  
  ///////////////////////////////////////////////////////////////////////////////////////////////////////
  // Will produce finalSpectrum.root with results inside
  // TGraphErrors UnfoldingCorrectedSpectrum -> unfolding procedure (doesn't work in 2D with trunk)
  // TGraphErrors AlltogetherSpectrum -> corrected spectrum with other method
  // TH1D RatioUnfoldingAlltogetherSpectrum 
  // THnSparseF UnfoldingCorrectedNotNormalizedSpectrum -> unfolding procedure not yet normalized
  // AliCFDataGrid AlltogetherCorrectedNotNormalizedSpectrum -> other method not yet normalized
  ///////////////////////////////////////////////////////////////////////////////////////////////////////

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

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

  TList *resultsdata = GetResults(filedata,"_PID2");
  //TList *resultsdata = GetResults(filedata);
  if(!resultsdata){
    printf("No output objects for data: Calculation will terminate here\n");
    return;
  }
  ///////////////////////////////////////////////////////////
  // Event container for the normalization to CINB1
  // Take the number of events as function of z and number of contributors
  // For those without primary vertex from tracks, take the fraction in the z range from MC
  // For 10cm: LHC10f6a (88.0756%), LHC10f6 (86.7461%)
  ////////////////////////////////////////////////////////////

  AliCFContainer *containerdata = (AliCFContainer *) resultsdata->FindObject("eventContainer");
  if(!containerdata) {
    printf("No container \n");
    return;
  }
  AliCFDataGrid *dataGrid = (AliCFDataGrid *) GetSpectrum(containerdata,AliHFEcuts::kEventStepZRange);
  TH2D *spectrum_zrange = (TH2D *) dataGrid->Project(0,2);
  TH1D *spectrum1Da = (TH1D *) spectrum_zrange->ProjectionX("bin0",1,1);
  TH1D *spectrum1Db = (TH1D *) spectrum_zrange->ProjectionX("bin>0",2,12);
  TH1D *spectrum1Dc = (TH1D *) spectrum_zrange->ProjectionX("total");
  Double_t nbinbin0 = spectrum1Da->Integral();
  Double_t nbinnobin0 = spectrum1Db->Integral();
  Double_t nbintotal = spectrum1Dc->Integral();

  Float_t numberofentries = nbinnobin0+nbinbin0*0.880756;
  printf("Number in bin0 %f, number out %f, total %f, normalized %f\n",nbinbin0,nbinnobin0,nbintotal,numberofentries);


  AliHFEcontainer *datahfecontainer = (AliHFEcontainer *) resultsdata->FindObject("trackContainer");
  if(!datahfecontainer) {
    printf("No container for data \n");
    return;
  }


  //////////////////////////////
  // Check MC # of events
  ///////////////////////////////

  TList *resultsmc = GetResults(fileMC,"_PID2");
  if(!resultsmc){
    printf("No output objects for mc: Calculation will terminate here\n");
    return;
  }

  AliCFContainer *containermc = (AliCFContainer *) resultsmc->FindObject("eventContainer");
  if(!containermc) {
    printf("No container \n");
    return;
  }
  AliCFDataGrid *mcGrid = (AliCFDataGrid *) GetSpectrum(containermc,AliHFEcuts::kEventStepZRange);
  TH2D *spectrum_zrangemc = (TH2D *) mcGrid->Project(0,2);
  TH1D *spectrum1Damc = (TH1D *) spectrum_zrangemc->ProjectionX("bin0",1,1);
  TH1D *spectrum1Dbmc = (TH1D *) spectrum_zrangemc->ProjectionX("bin>0",2,12);
  TH1D *spectrum1Dcmc = (TH1D *) spectrum_zrangemc->ProjectionX("total");
  Double_t nbinbin0mc = spectrum1Damc->Integral();
  Double_t nbinnobin0mc = spectrum1Dbmc->Integral();
  Double_t nbintotalmc = spectrum1Dcmc->Integral();

  Float_t numberofentriesmc = nbinnobin0mc+nbinbin0mc*0.880756;
  printf("MC: Number in bin0 %f, number out %f, total %f, normalized %f\n",nbinbin0mc,nbinnobin0mc,nbintotalmc,numberofentriesmc);



  /////////////////////////////
  // Check number of events
  /////////////////////////////

  Int_t numberOfEventsafterallcuts = (Int_t) datahfecontainer->GetNumberOfEvents();

  printf("Number of events not corrected %d\n",numberOfEventsafterallcuts);
  printf("Number of events corrected  %f\n",numberofentries);

  AliHFEcontainer *mchfecontainer = (AliHFEcontainer *) resultsmc->FindObject("trackContainer");
  if(!mchfecontainer) {
    printf("No mc container \n");
    return;
  }

  printf("Find the container V0\n");
  AliHFEcontainer *containerhfeV0 = (AliHFEcontainer *) resultsdata->FindObject("containerV0");
  if(!containerhfeV0) {
    printf("No hfe container \n");
    return;
  }

  // nonHFE backgrounds
  TList *resultsmcbg = GetResults(fileMCbg,"_PID2");
  if(!resultsmcbg){
    printf("No output objects for mc: Calculation will terminate here\n");    return;
  }  
  AliHFEcontainer *mcbghfecontainer = (AliHFEcontainer *) resultsmcbg->FindObject("trackContainer");
  if(!mcbghfecontainer) {
    printf("No mc container \n");
    return;
  }

  AliCFContainer *containermcbg = (AliCFContainer *) resultsmcbg->FindObject("eventContainer");
  if(!containermcbg) {
    printf("No container \n");
    return;
  }

  AliCFDataGrid *mcbgGrid = (AliCFDataGrid *) GetSpectrum(containermcbg,AliHFEcuts::kEventStepZRange);
  TH2D *spectrum_zrangemcbg = (TH2D *) mcbgGrid->Project(0,2);
  TH1D *spectrum1Damcbg = (TH1D *) spectrum_zrangemcbg->ProjectionX("bin0",1,1);
  TH1D *spectrum1Dbmcbg = (TH1D *) spectrum_zrangemcbg->ProjectionX("bin>0",2,12);
  TH1D *spectrum1Dcmcbg = (TH1D *) spectrum_zrangemcbg->ProjectionX("total");
  Double_t nbinbin0mcbg = spectrum1Damcbg->Integral();
  Double_t nbinnobin0mcbg = spectrum1Dbmcbg->Integral();
  Double_t nbintotalmcbg = spectrum1Dcmcbg->Integral();

  Float_t numberofentriesmcbg = nbinnobin0mcbg+nbinbin0mcbg*0.880756;
  printf("MCbg: Number in bin0 %f, number out %f, total %f, normalized %f\n",nbinbin0mcbg,nbinnobin0mcbg,nbintotalmcbg,numberofentriesmcbg);


  // hadron contamination after IP cuts
  TList *hfeqa = GetQA(fileMC,"_PID2");
  THnSparseF* hsHadronEffbyIPcut = (THnSparseF* )GetHadronEffbyIPcut(hfeqa);

  //////////////
  // Correct
  /////////////

  AliHFEspectrum *spectrum = new AliHFEspectrum("HFEspectrum");

  spectrum->SetBeautyAnalysis();
  // Enable background subtraction
  spectrum->EnableIPanaHadronBgSubtract();
  spectrum->EnableIPanaCharmBgSubtract();
  spectrum->EnableIPanaConversionBgSubtract();
  spectrum->EnableIPanaNonHFEBgSubtract();
  //spectrum->SetNonHFEBackground2ndMethod();

  spectrum->SetNbDimensions(1);
  // If you want to correct positive (0) or negative (1) separately
  //spectrum->SetChargeChoosen(0);
  spectrum->SetDebugLevel(1);
  spectrum->SetNumberOfEvents((Int_t)numberofentries);
  spectrum->SetNumberOfMCEvents((Int_t)numberofentriesmc);
  spectrum->SetNumberOfMC2Events((Int_t)numberofentriesmcbg);
  spectrum->SetDumpToFile(smoothing);
  // True step in MC (events in range +- 10 cm and no pile up)
  spectrum->SetMCTruthStep(AliHFEcuts::kStepMCGeneratedZOutNoPileUpCentralityFine);
  // Step where we correct from MC (tracking + TOF)
  spectrum->SetMCEffStep(AliHFEcuts::kNcutStepsMCTrack + AliHFEcuts::kStepHFEcutsTRD + 1);
  // Step from data we correct for
  spectrum->SetStepToCorrect(AliHFEcuts::kStepHFEcutsTRD + 3); // +3 = tracking + TOF + TPC + IPcut
  // Steps to be corrected with V0 (TPC PID only)
  spectrum->SetStepBeforeCutsV0(AliHFEcuts::kStepHFEcutsTRD + 1);
  spectrum->SetStepAfterCutsV0(AliHFEcuts::kStepHFEcutsTRD + 2);

  spectrum->SetHadronEffbyIPcut(hsHadronEffbyIPcut);
  // Give everything (data container, mc container and V0 data container)
  spectrum->Init(datahfecontainer,mchfecontainer,containerhfeV0,mcbghfecontainer);

  // kTRUE means subtract hadron background, kFALSE means do not subtract hadron background
  spectrum->CorrectBeauty(kTRUE);

}

//_____________________________________________________________________
TList *GetResults(const Char_t *testfile,const Char_t *plus){
  //
  // read output
  //
  TFile *f = TFile::Open(testfile);
  if(!f || f->IsZombie()){
    printf("File not readable\n");
    return 0x0;
  }
  TString name(plus);
  printf("Name of TList %s\n",(const char*)name); 
  TList *l = dynamic_cast<TList *>(f->Get((const char*)name));
  if(!l){
    printf("Results list was not found\n");
    f->Close(); delete f;
    return 0x0;
  } 
  TList *returnlist = dynamic_cast<TList *>(l->Clone());
  f->Close(); delete f;
  return returnlist;
}

//_____________________________________________________________________
TList *GetQA(const Char_t *testfile,const Char_t *plus){
  //
  // read output
  //
  TFile *f = TFile::Open(testfile);
  if(!f || f->IsZombie()){
    printf("File not readable\n");
    return 0x0;
  }
  TString name("HFE_QA");
  name += plus;
  printf("Name of TList %s\n",(const char*)name);
  TList *l = dynamic_cast<TList *>(f->Get((const char*)name));
  if(!l){
    printf("QA list was not found\n");
    f->Close(); delete f;
    return 0x0;
  }
  TList *returnlist = dynamic_cast<TList *>(l->Clone());
  f->Close(); delete f;
  return returnlist;
}

//_____________________________________________________________________
THnSparseF* GetHadronEffbyIPcut(TList *hfeqa){


  // get hadron reduction factors due to the IP cuts
  TList* tl=(TList*)hfeqa->FindObject("list_TaskQA");
  TH1F* hbefore=(TH1F*)tl->FindObject("hadronsBeforeIPcut");
  TH1F* hafter=(TH1F*)tl->FindObject("hadronsAfterIPcut");
  TH1F* hreduction= (TH1F*)hafter->Clone("hreduction");
  hbefore->Sumw2(); 
  hafter->Sumw2();
  hreduction->Sumw2();
  hreduction->Divide(hbefore);

  Double_t* binEdges[0];
  Int_t hnBin = hreduction->GetNbinsX();
  Int_t nBin[1] = {hnBin};

  for(int i=0; i<nBin[0]; i++){
    binEdges[0][i] = hreduction->GetBinLowEdge(i+1);
  }
  binEdges[0][nBin[0]] = hreduction->GetBinLowEdge(nBin[0]) + hreduction->GetBinWidth(nBin[0]);

  THnSparseF* hsreduction = new THnSparseF("hadroncontamin", "hadroncontamin; pt[GeV/c]", 1, nBin);
  hsreduction->SetBinEdges(0, binEdges[0]);

  Double_t dataE[1];
  Double_t yval;
  for(int i=0; i<nBin[0]; i++){
    dataE[0]=hreduction->GetBinCenter(i+1);
    yval=hreduction->GetBinContent(i+1);
    hsreduction->Fill(dataE,yval);
  }

  Int_t* ibins;
  ibins = new Int_t[nBin[0] + 1];
  hsreduction->SetBinError(ibins,0);


  return hsreduction;
}

//_________________________________________________________________________
TObject* GetSpectrum(AliCFContainer *c, Int_t step) {
  AliCFDataGrid* data = new AliCFDataGrid("data","",*c,step);
  //data->SetMeasured(step);
  return data;
}
//___________________________________________________________________________
void CorrectFromTheWidth(TH1D *h1) {
  //
  // Correct from the width of the bins --> dN/dp_{T} (GeV/c)^{-1}
  //

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

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

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

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