ROOT logo

//Christine Nattrass, University of Tennessee at Knoxville
//This macro is for calculating the correction for the neutral energy considered part of HadEt not recorded by the tracking detectors, that from lambdas, antilambdas, K0S, K0L, neutrons, and antineutrons.
//Since PYTHIA does not get the spectra of lambdas, antilambdas, and K0S correct, this is not a very good way of determining the correction used for data and as such should be used with great caution.
//Uses the output of AliAnalysisTaskHadEt
//This is not actually what gets used in the correction class AliAnalysisHadEtCorrections - that is done in the macro GetCorrections.C - but this is useful for making plots and playing around with different options


//TFile *file = new TFile("rootFiles/LHC11a4_bis/Et.ESD.new.sim.LHC11a4_bis.root");//PbPb
TFile *file;// = new TFile("rootFiles/LHC11b10a/Et.ESD.new.sim.LHC11b10a.root");//2.76 TeV pp
//TFile *file = new TFile("rootFiles/LHC10e20/Et.ESD.new.sim.LHC10e20.root");
TString *empty = new TString("");
TString *reweighted = new TString("Reweighted");

TH1D *GetHisto(float cut = 0.12, char *name, int mycase, bool eta, int color, int marker, bool hadronic, bool reweight,float kaonFactor=1.0, float lambdaFactor = 1.0, float baryonEnhancement = 1.0){
  //TFile *file = new TFile("Et.ESD.new.sim.merged.root");
  //TFile *file = new TFile("Et.ESD.new.sim.LHC10d4.pp.merged.root");
  TList *list = file->FindObject("out2");
  TString *reweightname = empty;
  if(reweight) reweightname = reweighted;
  TH2F *numeratorParent; 
  switch(mycase){
  case 0:
    numeratorParent= (TH2F*)((TH2F*) out2->FindObject(Form("EtSimulatedLambda",reweightname->Data())))->Clone("v0");
    numeratorParent->Scale(lambdaFactor*baryonEnhancement);
    numeratorParent->Add((TH2F*) out2->FindObject(Form("EtSimulatedAntiLambda",reweightname->Data())),lambdaFactor*baryonEnhancement);
    numeratorParent->Add((TH2F*) out2->FindObject(Form("EtSimulatedK0S%s",reweightname->Data())),kaonFactor);
    break;
  case 1:
    numeratorParent = (TH2F*)((TH2F*) out2->FindObject(Form("EtSimulatedK0L%s",reweightname->Data())))->Clone("Knnbar");
    numeratorParent->Scale(kaonFactor);
    numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedNeutron"),baryonEnhancement);
    numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedAntiNeutron"),baryonEnhancement);
    break;
  case 2:
    numeratorParent = (TH2F*)((TH2F*) out2->FindObject("EtSimulatedOmega"))->Clone("ch2ndary");
    numeratorParent->Scale(baryonEnhancement);
    numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedAntiOmega"),baryonEnhancement);
    numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedXi"),baryonEnhancement);
    numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedAntiXi"),baryonEnhancement);
    //numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedSigma"));
    //numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedAntiSigma"));
    numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedXi0"),baryonEnhancement);
    numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedAntiXi0"),baryonEnhancement);
    break;
  case 3:
    numeratorParent= (TH2F*)((TH2F*) out2->FindObject(Form("EtSimulatedLambda%s",reweightname->Data())))->Clone("allneutral");
    numeratorParent->Scale(lambdaFactor*baryonEnhancement);
    numeratorParent->Add((TH2F*) out2->FindObject(Form("EtSimulatedAntiLambda%s",reweightname->Data())),lambdaFactor*baryonEnhancement);
    numeratorParent->Add((TH2F*) out2->FindObject(Form("EtSimulatedK0S%s",reweightname->Data())),kaonFactor);
    numeratorParent->Add((TH2F*) out2->FindObject(Form("EtSimulatedK0L%s",reweightname->Data())),kaonFactor);
    numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedNeutron"),baryonEnhancement);
    numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedAntiNeutron"),baryonEnhancement);
    break;
  case 4:
    numeratorParent= (TH2F*)((TH2F*) out2->FindObject(Form("EtSimulatedLambda%s",reweightname->Data())))->Clone("allneutral");
    numeratorParent->Scale(lambdaFactor*baryonEnhancement);
    numeratorParent->Add((TH2F*) out2->FindObject(Form("EtSimulatedAntiLambda%s",reweightname->Data())),lambdaFactor*baryonEnhancement);
    numeratorParent->Add((TH2F*) out2->FindObject(Form("EtSimulatedK0S%s",reweightname->Data())),kaonFactor);
    numeratorParent->Add((TH2F*) out2->FindObject(Form("EtSimulatedK0L%s",reweightname->Data())),kaonFactor);
    numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedNeutron"),baryonEnhancement);
    numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedAntiNeutron"),baryonEnhancement);
    numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedOmega"),baryonEnhancement);
    numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedAntiOmega"),baryonEnhancement);
    numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedXi"),baryonEnhancement);
    numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedAntiXi"),baryonEnhancement);
    //numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedSigma"));
    //numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedAntiSigma"));
    numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedXi0"),baryonEnhancement);
    numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedAntiXi0"),baryonEnhancement);
    break;
  case 5:
    numeratorParent= (TH2F*)((TH2F*) out2->FindObject("EtSimulatedXi"))->Clone("allxi");
    numeratorParent->Scale(baryonEnhancement);
    numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedAntiXi"),baryonEnhancement);
    numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedXi0"),baryonEnhancement);
    numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedAntiXi0"),baryonEnhancement);
    break;
  case 6:
    numeratorParent = (TH2F*)((TH2F*) out2->FindObject("EtSimulatedOmega"))->Clone("allomega");
    numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedAntiOmega"),baryonEnhancement);
    break;
  case 7:
    numeratorParent = (TH2F*)((TH2F*) out2->FindObject("EtSimulatedSigma"))->Clone("allsigma");
    numeratorParent->Scale(baryonEnhancement);
    numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedAntiSigma"),baryonEnhancement);
    break;
  case 8:
    numeratorParent= (TH2F*)((TH2F*) out2->FindObject(Form("EtSimulatedLambda%s",reweightname->Data())))->Clone("allneutral");
    numeratorParent->Scale(baryonEnhancement);
    numeratorParent->Scale(lambdaFactor*baryonEnhancement);
    numeratorParent->Add((TH2F*) out2->FindObject(Form("EtSimulatedAntiLambda%s",reweightname->Data())),lambdaFactor*baryonEnhancement);
    numeratorParent->Add((TH2F*) out2->FindObject(Form("EtSimulatedK0S%s",reweightname->Data())),kaonFactor);
    numeratorParent->Add((TH2F*) out2->FindObject(Form("EtSimulatedK0L%s",reweightname->Data())),kaonFactor);
    numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedNeutron"),baryonEnhancement);
    numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedAntiNeutron"),baryonEnhancement);
    numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedOmega"),baryonEnhancement);
    numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedAntiOmega"),baryonEnhancement);
    numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedXi"),baryonEnhancement);
    numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedAntiXi"),baryonEnhancement);
    numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedXi0"),baryonEnhancement);
    numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedAntiXi0"),baryonEnhancement);
    numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedGamma"));
    numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedEta"));
    numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedPi0"));
    numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedOmega0"));
    numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedEPlus"));
    numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedEMinus"));
    break;
  case 9:
    numeratorParent= (TH2F*)((TH2F*) out2->FindObject("EtSimulatedGamma"))->Clone("allem");
    numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedEta"));
    numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedPi0"));
    numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedOmega0"));
    numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedEPlus"));
    numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedEMinus"));
    break;
  case 10:
    numeratorParent= (TH2F*)((TH2F*) out2->FindObject("EtSimulatedGamma"))->Clone("gamma");
    break;
  case 11:
    numeratorParent= (TH2F*)((TH2F*) out2->FindObject("EtSimulatedPi0"))->Clone("pi0");
    break;
  case 12:
    numeratorParent= (TH2F*)((TH2F*) out2->FindObject("EtSimulatedEta"))->Clone("eta");
    break;
  case 13:
    numeratorParent= (TH2F*)((TH2F*) out2->FindObject("EtSimulatedOmega0"))->Clone("Omega0");
    break;
  case 14:
    numeratorParent= (TH2F*)((TH2F*) out2->FindObject("EtSimulatedEPlus"))->Clone("electron");
    numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedEMinus"));
  case 15:
    numeratorParent=(TH2F*) ((TH2F*) out2->FindObject("EtSimulatedPiPlus"))->Clone("chpi");
    numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedPiMinus"));
    break;
  }

  TH2F *allhad;
  //allhad=(TH2F*) ((TH2F*) out2->FindObject("EtSimulatedAllHadron"))->Clone("id");
  allhad=(TH2F*) ((TH2F*) out2->FindObject("EtSimulatedPiPlus"))->Clone("id");
  allhad->Add((TH2F*) out2->FindObject("EtSimulatedPiMinus"));
  allhad->Add((TH2F*) out2->FindObject("EtSimulatedKMinus"),kaonFactor);
  allhad->Add((TH2F*) out2->FindObject("EtSimulatedKPlus"),kaonFactor);
  allhad->Add((TH2F*) out2->FindObject("EtSimulatedProton"),baryonEnhancement);
  allhad->Add((TH2F*) out2->FindObject("EtSimulatedAntiProton"),baryonEnhancement);
  allhad->Add((TH2F*) out2->FindObject(Form("EtSimulatedLambda%s",reweightname->Data())),lambdaFactor*baryonEnhancement);
  allhad->Add((TH2F*) out2->FindObject(Form("EtSimulatedAntiLambda%s",reweightname->Data())),lambdaFactor*baryonEnhancement);
  allhad->Add((TH2F*) out2->FindObject(Form("EtSimulatedK0S%s",reweightname->Data())),kaonFactor);
  allhad->Add((TH2F*) out2->FindObject(Form("EtSimulatedK0L%s",reweightname->Data())),kaonFactor);
  allhad->Add((TH2F*) out2->FindObject("EtSimulatedNeutron"),baryonEnhancement);
  allhad->Add((TH2F*) out2->FindObject("EtSimulatedAntiNeutron"),baryonEnhancement);
  allhad->Add((TH2F*) out2->FindObject("EtSimulatedEPlus"));
  allhad->Add((TH2F*) out2->FindObject("EtSimulatedEMinus"));
  allhad->Add((TH2F*) out2->FindObject("EtSimulatedOmega"),baryonEnhancement);
  allhad->Add((TH2F*) out2->FindObject("EtSimulatedAntiOmega"),baryonEnhancement);
  allhad->Add((TH2F*) out2->FindObject("EtSimulatedXi"),baryonEnhancement);
  allhad->Add((TH2F*) out2->FindObject("EtSimulatedAntiXi"),baryonEnhancement);
  allhad->Add((TH2F*) out2->FindObject("EtSimulatedSigma"),baryonEnhancement);
  allhad->Add((TH2F*) out2->FindObject("EtSimulatedAntiSigma"),baryonEnhancement);
  allhad->Add((TH2F*) out2->FindObject("EtSimulatedXi0"),baryonEnhancement);
  allhad->Add((TH2F*) out2->FindObject("EtSimulatedAntiXi0"),baryonEnhancement);

  if(hadronic){//if we are getting the correction for the hadronic only case...    
    allhad->Add((TH2F*) out2->FindObject("EtSimulatedGamma"));
    allhad->Add((TH2F*) out2->FindObject("EtSimulatedEta"));
    allhad->Add((TH2F*) out2->FindObject("EtSimulatedPi0"));
    allhad->Add((TH2F*) out2->FindObject("EtSimulatedOmega0"));
    allhad->Add((TH2F*) out2->FindObject("EtSimulatedEPlus"));
    allhad->Add((TH2F*) out2->FindObject("EtSimulatedEMinus"));
  }

  // numeratorParent->Sumw2();
  //allhad->Sumw2();
  TH1D *denominator;
  TH1D *numerator;
  if(eta){
    int lowbin = numeratorParent->GetYaxis()->FindBin(-cut+.001);//make sure we don't accv0entally get the wrong bin
    int highbin = numeratorParent->GetYaxis()->FindBin(cut-.001);
    cout<<"Projecting from "<<numeratorParent->GetYaxis()->GetBinLowEdge(lowbin)<<" to "<<numeratorParent->GetYaxis()->GetBinLowEdge(highbin+1)<<endl;
    denominator = allhad->ProjectionX("name",lowbin,highbin);
    numerator = numeratorParent->ProjectionX("numerator",lowbin,highbin);
  }
  else{
    int lowbin = allhad->GetXaxis()->FindBin(cut);//make sure we don't accidentally get the wrong bin
    int highbin = allhad->GetXaxis()->GetNbins();
    cout<<"Projecting from "<<allhad->GetXaxis()->GetBinLowEdge(lowbin)<<" to "<<allhad->GetXaxis()->GetBinLowEdge(highbin+1)<<endl;
    numerator = numeratorParent->ProjectionY("name",lowbin,highbin);
    denominator = allhad->ProjectionY("denominator",lowbin,highbin);
  }
  numerator->Divide(denominator);
  if(hadronic){
    numerator->SetYTitle("E_{T}^{sample}/E_{T}^{total}");
  }
  else{
    numerator->SetYTitle("E_{T}^{had,sample}/E_{T}^{had,total}");
  }
  numerator->GetYaxis()->SetTitleOffset(1.2);
  numerator->SetMarkerColor(color);
  numerator->SetLineColor(color);
  numerator->SetMarkerStyle(marker);
  //numerator->Draw("e");
  delete numeratorParent;
  delete allhad;
  delete denominator;
  numerator->SetName(name);
  return numerator;

}

void CorrNeutral(char *prodname = "LHC10d4 PYTHIA D6T 7 TeV p+p", char *shortprodname = "LHC10d4",TString filename = "rootFiles/LHC11b10a/Et.ESD.new.sim.LHC11b10a.root", bool hadronic = true, bool reweighted = false, float kaonFactor=1.0, float lambdaFactor = 1.0, float baryonEnhancement = 1.0){
  file = new TFile(filename.Data());
  gStyle->SetOptTitle(0);
  gStyle->SetOptStat(0);
  gStyle->SetOptFit(0);
//   TCanvas *c = new TCanvas("c","c",800,400);
//   c->SetTopMargin(0.0);
//   c->SetRightMargin(0.0);
//   c->SetBorderSize(0);
//   c->SetFillColor(0);
//   c->SetFillColor(0);
//   c->SetBorderMode(0);
//   c->SetFrameFillColor(0);
//   c->SetFrameBorderMode(0);
//   c->Divide(2);
//  TPad *ptpad = c->cd(1);
  TCanvas *ptpad = new TCanvas("ptpad","ptpad",400,400);
  ptpad->SetTopMargin(0.04);
  ptpad->SetRightMargin(0.04);
  ptpad->SetLeftMargin(0.149288);
  ptpad->SetBorderSize(0);
  ptpad->SetFillColor(0);
  ptpad->SetFillColor(0);
  ptpad->SetBorderMode(0);
  ptpad->SetFrameFillColor(0);
  ptpad->SetFrameBorderMode(0);

  int phosmarker = 20;
  int emcalmarker = 24;
  float ptcut1 = 0.05;
  float ptcut2 = 0.1;
  float ptcut3 = 0.0;

  int colortotal = 1;
  int casetotal = 4;
  if(hadronic) casetotal = 8;
  TH1D *PHOStotal = GetHisto(0.12,"PHOStotal",casetotal,true,colortotal,phosmarker,hadronic,reweighted,kaonFactor,lambdaFactor,baryonEnhancement);
  TH1D *EMCALtotal = GetHisto(0.7,"EMCALtotal",casetotal,true,colortotal,emcalmarker,hadronic,reweighted,kaonFactor,lambdaFactor,baryonEnhancement);
  TH1D *pt1total = GetHisto(ptcut2,"pt1total",casetotal,false,colortotal,phosmarker,hadronic,reweighted,kaonFactor,lambdaFactor,baryonEnhancement);
  TH1D *pt2total = GetHisto(ptcut1,"pt2total",casetotal,false,colortotal,emcalmarker,hadronic,reweighted,kaonFactor,lambdaFactor,baryonEnhancement);

  int colorallneutral = 2;
  TH1D *PHOSallneutral = GetHisto(0.12,"PHOSallneutral",3,true,colorallneutral,phosmarker,hadronic,reweighted,kaonFactor,lambdaFactor,baryonEnhancement);
  TH1D *EMCALallneutral = GetHisto(0.7,"EMCALallneutral",3,true,colorallneutral,emcalmarker,hadronic,reweighted,kaonFactor,lambdaFactor,baryonEnhancement);
  TH1D *pt1allneutral = GetHisto(ptcut2,"pt1allneutral",3,false,colorallneutral,phosmarker,hadronic,reweighted,kaonFactor,lambdaFactor,baryonEnhancement);
  TH1D *pt2allneutral = GetHisto(ptcut1,"pt2allneutral",3,false,colorallneutral,emcalmarker,hadronic,reweighted,kaonFactor,lambdaFactor,baryonEnhancement);

  int colorchargedsecondary = TColor::kViolet-3;
  TH1D *PHOSchargedsecondary = GetHisto(0.12,"PHOSchargedsecondary",2,true,colorchargedsecondary,phosmarker,hadronic,reweighted,kaonFactor,lambdaFactor,baryonEnhancement);
  TH1D *EMCALchargedsecondary = GetHisto(0.7,"EMCALchargedsecondary",2,true,colorchargedsecondary,emcalmarker,hadronic,reweighted,kaonFactor,lambdaFactor,baryonEnhancement);
  TH1D *pt1chargedsecondary = GetHisto(ptcut2,"pt1chargedsecondary",2,false,colorchargedsecondary,phosmarker,hadronic,reweighted,kaonFactor,lambdaFactor,baryonEnhancement);
  TH1D *pt2chargedsecondary = GetHisto(ptcut1,"pt2chargedsecondary",2,false,colorchargedsecondary,emcalmarker,hadronic,reweighted,kaonFactor,lambdaFactor,baryonEnhancement);

  int colorneutralUndet = 4;
  TH1D *PHOSneutralUndet = GetHisto(0.12,"PHOSneutralUndet",1,true,colorneutralUndet,phosmarker,hadronic,reweighted,kaonFactor,lambdaFactor,baryonEnhancement);
  TH1D *EMCALneutralUndet = GetHisto(0.7,"EMCALneutralUndet",1,true,colorneutralUndet,emcalmarker,hadronic,reweighted,kaonFactor,lambdaFactor,baryonEnhancement);
  TH1D *pt1neutralUndet = GetHisto(ptcut2,"pt1neutralUndet",1,false,colorneutralUndet,phosmarker,hadronic,reweighted,kaonFactor,lambdaFactor,baryonEnhancement);
  TH1D *pt2neutralUndet = GetHisto(ptcut1,"pt2neutralUndet",1,false,colorneutralUndet,emcalmarker,hadronic,reweighted,kaonFactor,lambdaFactor,baryonEnhancement);

  int colorv0 = TColor::kGreen+2;
  TH1D *PHOSv0 = GetHisto(0.12,"PHOSv0",0,true,colorv0,phosmarker,hadronic,reweighted,kaonFactor,lambdaFactor,baryonEnhancement);
  TH1D *EMCALv0 = GetHisto(0.7,"EMCALv0",0,true,colorv0,emcalmarker,hadronic,reweighted,kaonFactor,lambdaFactor,baryonEnhancement);
  TH1D *pt1v0 = GetHisto(ptcut2,"pt1v0",0,false,colorv0,phosmarker,hadronic,reweighted,kaonFactor,lambdaFactor,baryonEnhancement);
  TH1D *pt2v0 = GetHisto(ptcut1,"pt2v0",0,false,colorv0,emcalmarker,hadronic,reweighted,kaonFactor,lambdaFactor,baryonEnhancement);

  int colorem = TColor::kCyan;
  TH1D *PHOSem = GetHisto(0.12,"PHOSem",9,true,colorem,phosmarker,hadronic,reweighted,kaonFactor,lambdaFactor,baryonEnhancement);
  TH1D *EMCALem = GetHisto(0.7,"EMCALem",9,true,colorem,emcalmarker,hadronic,reweighted,kaonFactor,lambdaFactor,baryonEnhancement);
  TH1D *pt1em = GetHisto(ptcut2,"pt1em",9,false,colorem,phosmarker,hadronic,reweighted,kaonFactor,lambdaFactor,baryonEnhancement);
  TH1D *pt2em = GetHisto(ptcut1,"pt2em",9,false,colorem,emcalmarker,hadronic,reweighted,kaonFactor,lambdaFactor,baryonEnhancement);

  TH1D *pt3em = GetHisto(ptcut3,"pt3em",9,false,colorem,emcalmarker,hadronic,reweighted,kaonFactor,lambdaFactor,baryonEnhancement);

  PHOStotal->SetMaximum(0.5);
  PHOStotal->SetMinimum(0.0);
  if(hadronic){
    PHOStotal->SetMaximum(0.95);
  }
  PHOStotal->SetAxisRange(0.0,4);
  PHOStotal->GetXaxis()->SetLabelSize(0.05);
  PHOStotal->GetYaxis()->SetLabelSize(0.045);
  PHOStotal->GetXaxis()->SetTitleSize(0.05);
  PHOStotal->GetYaxis()->SetTitleSize(0.06);

  PHOStotal->GetXaxis()->SetTitle("p_{T} (GeV/c)");
  PHOStotal->Draw();
  EMCALtotal->Draw("same");
  PHOSallneutral->Draw("same");
  EMCALallneutral->Draw("same");
  PHOSchargedsecondary->Draw("same");
  EMCALchargedsecondary->Draw("same");
  PHOSneutralUndet->Draw("same");
  EMCALneutralUndet->Draw("same");
  PHOSv0->Draw("same");
  EMCALv0->Draw("same");
  if(hadronic){
    PHOSem->Draw("same");
    EMCALem->Draw("same");
  }
  TLatex *tex = new TLatex(0.161478,1.0835,prodname);
  tex->SetTextSize(0.0537634);
  tex->Draw();
  TLegend *leg = new TLegend(0.193781,0.796248,0.450272,0.944371);
  leg->AddEntry(PHOStotal,"|#eta|<0.12");
  leg->AddEntry(EMCALtotal,"|#eta|<0.70");
  leg->SetFillStyle(0);
  leg->SetFillColor(0);
  leg->SetBorderSize(0);
  leg->Draw();
  TLegend *leg2 = new TLegend(0.518321,0.612903,0.774812,0.955343);
  leg2->AddEntry(PHOStotal,"Total");
  leg2->AddEntry(PHOSallneutral,"#Lambda,#bar{#Lambda},K^{0}_{S},K^{0}_{L},n,#bar{n}");
  leg2->AddEntry(PHOSneutralUndet,"K^{0}_{L},n,#bar{n}");
  leg2->AddEntry(PHOSv0,"#Lambda,#bar{#Lambda},K^{0}_{S}");
  leg2->AddEntry(PHOSchargedsecondary,"#Xi,#Omega");
  if(hadronic) leg2->AddEntry(PHOSem,"e^{#pm},#gamma,#eta,#pi^{0},#omega");
  leg2->SetFillStyle(0);
  leg2->SetFillColor(0);
  leg2->SetBorderSize(0);
  leg2->SetTextSize(0.0548607);
  leg2->Draw();


  TCanvas *etapad = new TCanvas("etapad","etapad",400,400);//  TPad *etapad = c->cd(2);
  etapad->SetTopMargin(0.04);
  etapad->SetRightMargin(0.04);
  etapad->SetBorderSize(0);
  etapad->SetFillColor(0);
  etapad->SetFillColor(0);
  etapad->SetBorderMode(0);
  etapad->SetFrameFillColor(0);
  etapad->SetFrameBorderMode(0);
  etapad->SetLeftMargin(0.149288);



  pt1total->GetXaxis()->SetLabelSize(0.05);
  pt1total->GetYaxis()->SetLabelSize(0.045);
  pt1total->GetXaxis()->SetTitleSize(0.05);
  pt1total->GetYaxis()->SetTitleSize(0.06);
  pt1total->SetMinimum(0.0);
  pt1total->SetMaximum(0.5);
  if(hadronic){
    pt1total->SetMaximum(0.7);
  }

  TF1 *func = new TF1("func","[0]",-.7,.7);
  func->SetParameter(0,0.2);
  pt1total->Fit(func);
  int nbins = pt1total->GetNbinsX();
  float weight = 0.0;
  float totalwidth = 0.0;
  float weightPhos = 0.0;
  float totalwidthPhos = 0.0;
  for(int i=1;i<=nbins;i++){
    float width = pt1total->GetBinWidth(i);
    weight += width * pt1total->GetBinContent(i);
    totalwidth +=width;
    if(TMath::Abs(pt1total->GetBinCenter(i))<0.12){//if within the phos acceptance
    weightPhos += width * pt1total->GetBinContent(i);
    totalwidthPhos +=width;
    }
  }
  weight = weight/totalwidth;
  weightPhos = weightPhos/totalwidthPhos;
  cout<<"weight = "<<weight<<" weight phos "<<weightPhos<<endl;
  pt1total->GetXaxis()->SetTitle("p_{T} (GeV/c)");
  pt1total->Draw();
  pt2total->Draw("same");
  pt1allneutral->Draw("same");
  pt2allneutral->Draw("same");
  pt1chargedsecondary->Draw("same");
  pt2chargedsecondary->Draw("same");
  pt1neutralUndet->Draw("same");
  pt2neutralUndet->Draw("same");
  pt1v0->Draw("same");
  pt2v0->Draw("same");
  if(hadronic){
    pt1em->Draw("same");
    pt2em->Draw("same");
  }
  TLatex *tex = new TLatex(-.65,.23,Form("%2.5f#pm%2.5f",func->GetParameter(0),func->GetParError(0)));
  tex->Draw();
  cout<<"corr fac "<<Form("%2.5f\$\\pm\$%2.5f",func->GetParameter(0),func->GetParError(0))<<endl;
  cout<<"factor "<<Form("%2.5f",1- func->GetParameter(0))<<endl;
  TLegend *leg3 = new TLegend(0.539259,0.801734,0.79575,0.949857);
  leg3->AddEntry(pt1total,"p_{T} cut = 0.1");
  leg3->AddEntry(pt2total,"p_{T} cut = 0.05");
  leg3->SetFillStyle(0);
  leg3->SetFillColor(0);
  leg3->SetBorderSize(0);
  leg3->SetTextSize(0.0548607);
  leg3->Draw();
  TLegend *leg4 = new TLegend(0.199016,0.785275,0.455507,0.955343);
  leg4->AddEntry(PHOSv0,"#Lambda,#bar{#Lambda},K^{0}_{S}");
  //leg4->AddEntry(PHOSchargedsecondary,"#Sigma,#bar{#Sigma},#Xi,#bar{#Xi},#Xi^{0},#bar{#Xi^0},#Omega,#bar{#Omega}");
  leg4->AddEntry(PHOSchargedsecondary,"#Xi,#Omega");
  if(hadronic) leg4->AddEntry(PHOSem,"e^{#pm},#gamma,#eta,#pi^{0},#omega");
  leg4->SetFillStyle(0);
  leg4->SetFillColor(0);
  leg4->SetBorderSize(0);
  leg4->SetTextSize(0.0548607);
  //leg4->Draw();

  float y = 0.0237534;
  if(hadronic) y = 0.158129;
  TLatex *tex = new TLatex(-0.719565,y,prodname);
  tex->SetTextSize(0.0537634);
  tex->Draw();

  char ptnameeps[200];
  char ptnamepng[200];
  char ptnamepdf[200];
  char ptnameC[200];
  char etanameeps[200];
  char etanamepng[200];
  char etanamepdf[200];
  char etanameC[200];
  TString *Total = new TString("total");
  TString *Neutral = new TString("neutral");
  TString *Cut = Neutral;
  if(hadronic) Cut = Total;
  TString *None = new TString("");
  TString *Factors = None;
  if(kaonFactor!=1.0||lambdaFactor!=1.0||baryonEnhancement!=1.0){
    Factors = new TString(Form("Lambda%2.2fKaon%2.2fBaryon%2.2f",lambdaFactor,kaonFactor,baryonEnhancement));
  }
  sprintf(ptnameeps,"pics/f%spt%s.eps",Cut->Data(),Factors->Data());
  sprintf(ptnamepng,"pics/f%spt%s.png",Cut->Data(),Factors->Data());
  sprintf(ptnamepdf,"pics/f%spt%s.pdf",Cut->Data(),Factors->Data());
  sprintf(ptnameC,"pics/f%spt%s.C",Cut->Data(),Factors->Data());
  sprintf(etanameeps,"pics/%s/f%seta%s.eps",shortprodname,Cut->Data(),Factors->Data());
  sprintf(etanamepng,"pics/%s/f%seta%s.png",shortprodname,Cut->Data(),Factors->Data());
  sprintf(etanamepdf,"pics/f%seta%s.pdf",Cut->Data(),Factors->Data());
  sprintf(etanameC,"pics/f%seta%s.C",Cut->Data(),Factors->Data());
//   ptpad->SaveAs(ptnameeps);
//   ptpad->SaveAs(ptnamepng);
//   ptpad->SaveAs(ptnamepdf);
//   ptpad->SaveAs(ptnameC);
  etapad->SaveAs(etanameeps);
  etapad->SaveAs(etanamepng);
//   etapad->SaveAs(etanamepdf);
//   etapad->SaveAs(etanameC);
  return;

  TCanvas *c2 = new TCanvas("c2","c2",500,400);
  c2->SetTopMargin(0.03);
  c2->SetRightMargin(0.03);
  c2->SetBorderSize(0);
  c2->SetFillColor(0);
  c2->SetFillColor(0);
  c2->SetBorderMode(0);
  c2->SetFrameFillColor(0);
  c2->SetFrameBorderMode(0);


  int colorchargedall = 1;
  TH1D *chargedall = GetHisto(ptcut2,"chargedall",2,false,colorchargedall,phosmarker,hadronic,reweighted,kaonFactor,lambdaFactor,baryonEnhancement);
  int colorxi =TColor::kGreen+2;
  TH1D *xi = GetHisto(ptcut2,"xi",5,false,colorxi,phosmarker,hadronic,reweighted,kaonFactor,lambdaFactor,baryonEnhancement);
  int coloromega = 4;
  TH1D *omega = GetHisto(ptcut2,"omega",6,false,coloromega,phosmarker,hadronic,reweighted,kaonFactor,lambdaFactor,baryonEnhancement);
  int colorsigma = 2;
  TH1D *sigma = GetHisto(ptcut2,"sigma",7,false,colorsigma,phosmarker,hadronic,reweighted,kaonFactor,lambdaFactor,baryonEnhancement);
  chargedall->SetMinimum(0.0);
  chargedall->SetMaximum(0.02);
  chargedall->Draw();
  xi->Draw("same");
  omega->Draw("same");
  //sigma->Draw("same");
  TLegend *leg5 = new TLegend(0.199016,0.785275,0.455507,0.955343);
  leg5->AddEntry(chargedall,"#Sigma,#Xi,#Xi^{0},#Omega");
  //leg5->AddEntry(sigma,"#Sigma");
  leg5->AddEntry(xi,"#Xi,#Xi^{0}");
  leg5->AddEntry(omega,"#Omega");
  leg5->SetFillStyle(0);
  leg5->SetFillColor(0);
  leg5->SetBorderSize(0);
  leg5->SetTextSize(0.0548607);
  leg5->Draw();
  if(!hadronic){return;}


  TCanvas *empad = new TCanvas("empad","empad",400,400);
  empad->SetTopMargin(0.04);
  empad->SetRightMargin(0.04);
  empad->SetLeftMargin(0.149288);
  empad->SetBorderSize(0);
  empad->SetFillColor(0);
  empad->SetFillColor(0);
  empad->SetBorderMode(0);
  empad->SetFrameFillColor(0);
  empad->SetFrameBorderMode(0);
  //TH1D *EMCALem = GetHisto(0.7,"EMCALem",9,true,colorem,emcalmarker,hadronic,reweighted,kaonFactor,lambdaFactor,baryonEnhancement);
  pt1em->SetMarkerColor(1);
  pt1em->SetLineColor(1);
  TH1D *EMCALGamma = GetHisto(ptcut2,"EMCALGamma",10,false,4,emcalmarker,hadronic,reweighted,kaonFactor,lambdaFactor,baryonEnhancement);//0.2%
  TH1D *EMCALPi0 = GetHisto(ptcut2,"EMCALPi0",11,false,2,phosmarker,hadronic,reweighted,kaonFactor,lambdaFactor,baryonEnhancement);//24%
  TH1D *EMCALPiCh = GetHisto(ptcut2,"EMCALPiCh",15,false,2,emcalmarker,hadronic,reweighted,kaonFactor,lambdaFactor,baryonEnhancement);//24%
  TH1D *EMCALEta = GetHisto(ptcut2,"EMCALEta",12,false,TColor::kViolet-3,emcalmarker,hadronic,reweighted,kaonFactor,lambdaFactor,baryonEnhancement);//1.7%
  TH1D *EMCALOmega = GetHisto(ptcut2,"EMCALOmega",13,false,TColor::kCyan,emcalmarker,hadronic,reweighted,kaonFactor,lambdaFactor,baryonEnhancement);//0.24%
  TH1D *EMCALElectron = GetHisto(ptcut2,"EMCALElectronFrog",14,false,TColor::kGreen+2,emcalmarker,hadronic,reweighted,kaonFactor,lambdaFactor,baryonEnhancement);//0.25%
  TH1D *EMCALGammaptcut3 = GetHisto(ptcut3,"EMCALGamma",10,false,4,emcalmarker,hadronic,reweighted,kaonFactor,lambdaFactor,baryonEnhancement);//0.2%
  TH1D *EMCALPi0ptcut3 = GetHisto(ptcut3,"EMCALPi0",11,false,2,phosmarker,hadronic,reweighted,kaonFactor,lambdaFactor,baryonEnhancement);//24%
  TH1D *EMCALEtaptcut3 = GetHisto(ptcut3,"EMCALEta3",12,false,TColor::kViolet-3,emcalmarker,hadronic,reweighted,kaonFactor,lambdaFactor,baryonEnhancement);//1.7%
  TH1D *EMCALOmegaptcut3 = GetHisto(ptcut3,"EMCALOmega3",13,false,TColor::kCyan,emcalmarker,hadronic,reweighted,kaonFactor,lambdaFactor,baryonEnhancement);//0.24%
  TH1D *EMCALElectronptcut3 = GetHisto(ptcut3,"EMCALElectron3",14,false,TColor::kGreen+2,emcalmarker,hadronic,reweighted,kaonFactor,lambdaFactor,baryonEnhancement);//0.25%
  //EMCALElectron->Draw();return;
  //EMCALPi0->Draw();return;
  pt1em->SetMinimum(0.0);
  pt1em->SetMaximum(0.3);
  pt1em->Draw();
  //EMCALGamma->Draw();
  EMCALPiCh->Scale(0.5);
  EMCALGamma->Draw("same");
  EMCALPi0->Draw("same");
  EMCALPiCh->Draw("same");
  EMCALEta->Draw("same");
  EMCALOmega->Draw("same");
  EMCALElectron->Draw("same");
  TLegend *leg20 = new TLegend(0.194444,0.215054,0.449495,0.430108);
  leg20->AddEntry(pt1em,"#gamma#eta#pi^{0}#omega e^{#pm}");
  //leg20->AddEntry(EMCALGamma,"#gamma");
  leg20->AddEntry(EMCALEta,"#eta");
  leg20->AddEntry(EMCALOmega,"#omega");
  leg20->AddEntry(EMCALPi0,"#pi^{0}");
  leg20->AddEntry(EMCALPiCh,"#pi^{#pm}/2");
  leg20->AddEntry(EMCALElectron,"e^{#pm}");
  leg20->SetFillStyle(0);
  leg20->SetFillColor(0);
  leg20->SetBorderSize(0);
  leg20->SetTextSize(0.0548607);
  leg20->Draw();
  empad->SaveAs("pics/ftotalEmEt.eps");

  TCanvas *percentagepad = new TCanvas("percentagepad","percentagepad",400,400);
  percentagepad->SetTopMargin(0.04);
  percentagepad->SetRightMargin(0.04);
  percentagepad->SetLeftMargin(0.149288);
  percentagepad->SetBorderSize(0);
  percentagepad->SetFillColor(0);
  percentagepad->SetFillColor(0);
  percentagepad->SetBorderMode(0);
  percentagepad->SetFrameFillColor(0);
  percentagepad->SetFrameBorderMode(0);
  TH1D *percentage = EMCALPi0->Clone("Percentage");
  percentage->GetYaxis()->SetTitle("percentage of E_{T}^{em} from #pi^0");
  percentage->Divide(pt1em);
  TF1 *funcPercent = new TF1("funcPercent","[0]",-.7,.7);
  funcPercent->SetParameter(0,0.91);
  percentage->Fit(funcPercent);
  percentage->Scale(100.0);
  TF1 *funcPercent = new TF1("funcPercent","[0]",-.7,.7);
  funcPercent->SetParameter(0,0.91);
  percentage->Fit(funcPercent);

  percentage->Draw();
  percentagepad->SaveAs("pics/ftotalpercentage.eps");
  TCanvas *omegapad = new TCanvas("omegapad","omegapad",400,400);
  omegapad->SetTopMargin(0.04);
  omegapad->SetRightMargin(0.04);
  omegapad->SetLeftMargin(0.149288);
  omegapad->SetBorderSize(0);
  omegapad->SetFillColor(0);
  omegapad->SetFillColor(0);
  omegapad->SetBorderMode(0);
  omegapad->SetFrameFillColor(0);
  omegapad->SetFrameBorderMode(0);
  //Virtually all electrons are from Dalitz decays of pi0s.  Some are from Dalitz decays of etas so this is not 100% correct but etas are about 7% of pi0s and Dalitz decays are about 2% of all pi0s, so we have a sub-.2% correction.
  //EMCALPi0ptcut3->Add(EMCALElectronptcut3);
  EMCALOmegaptcut3->Divide(pt3em);
  EMCALPi0ptcut3->Divide(pt3em);
  EMCALEtaptcut3->Divide(pt3em);
  EMCALGammaptcut3->Divide(pt3em);
  EMCALElectronptcut3->Divide(pt3em);

//   EMCALOmegaptcut3->Divide(EMCALPi0ptcut3);
//   EMCALPi0ptcut3->Divide(EMCALPi0ptcut3);
//   EMCALEtaptcut3->Divide(EMCALPi0ptcut3);
//   EMCALGammaptcut3->Divide(EMCALPi0ptcut3);
//   EMCALElectronptcut3->Divide(EMCALPi0ptcut3);

  //EMCALGammaptcut3->Scale(10);
  //EMCALOmegaptcut3->Scale(10);
  //EMCALElectronptcut3->Scale(100);
  EMCALOmegaptcut3->SetMinimum(0.0);
  EMCALOmegaptcut3->SetMaximum(2.0);
  TF1 *omegapercent = new TF1("omegapercent","[0]",-0.6,0.6);
  TF1 *pi0percent = new TF1("omegapercent","[0]",-0.6,0.6);
  TF1 *etapercent = new TF1("omegapercent","[0]",-0.6,0.6);
  TF1 *gammapercent = new TF1("omegapercent","[0]",-0.6,0.6);
  TF1 *electronpercent = new TF1("omegapercent","[0]",-0.6,0.6);
  cout<<"Gammas x10"<<endl;
  EMCALGammaptcut3->Fit(gammapercent,"","",-0.6,0.6);
  cout<<"Electrons x100"<<endl;
  EMCALElectronptcut3->Fit(electronpercent,"","",-0.6,0.6);
  cout<<"Omega x10"<<endl;
  EMCALOmegaptcut3->Fit(omegapercent,"","",-0.6,0.6);
  cout<<"Eta"<<endl;
  EMCALEtaptcut3->Fit(etapercent,"","",-0.6,0.6);
  cout<<"Pi0"<<endl;
  EMCALPi0ptcut3->Fit(pi0percent,"","",-0.6,0.6);
  EMCALOmegaptcut3->Draw();
  EMCALPi0ptcut3->Draw("same");
  EMCALEtaptcut3->Draw("same");
  EMCALGammaptcut3->Draw("same");
  EMCALElectronptcut3->Draw("same");

  TLegend *leg20 = new TLegend(0.194444,0.215054,0.449495,0.430108);
  leg20->AddEntry(EMCALPi0ptcut3,"#pi^{0}");
  leg20->AddEntry(EMCALEtaptcut3,"#eta");
  leg20->AddEntry(EMCALOmegaptcut3,"#omega");
  leg20->AddEntry(EMCALGammaptcut3,"#gamma");
//   leg20->AddEntry(EMCALOmegaptcut3,"#omega x10");
//   leg20->AddEntry(EMCALGammaptcut3,"#gamma x10");
//   leg20->AddEntry(EMCALElectronptcut3,"e^{#pm} x100");
  leg20->SetFillStyle(0);
  leg20->SetFillColor(0);
  leg20->SetBorderSize(0);
  leg20->SetTextSize(0.0548607);
  leg20->Draw();


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