]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
Added mock up of baryon enhancement, added code 20100 as lead collisions from 2010...
authorcnattras <cnattras@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 29 Nov 2010 22:25:19 +0000 (22:25 +0000)
committercnattras <cnattras@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 29 Nov 2010 22:25:19 +0000 (22:25 +0000)
PWG4/totEt/AliAnalysisEtCommon.cxx
PWG4/totEt/AliAnalysisEtCommon.h
PWG4/totEt/AliAnalysisHadEtMonteCarlo.cxx
PWG4/totEt/AliAnalysisHadEtMonteCarlo.h
PWG4/totEt/AliAnalysisHadEtReconstructed.cxx
PWG4/totEt/AliAnalysisTaskHadEt.cxx
PWG4/totEt/macros/ConfigHadEtMonteCarlo.C
PWG4/totEt/macros/ConfigHadEtReconstructed.C
PWG4/totEt/macros/GetCorrections.C

index 78786bee1ad6a1de139ec25f0014a98f941b1877..1d3c1b87a213f947df2fa1f474c9c7193c089dfe 100644 (file)
@@ -83,6 +83,8 @@ AliAnalysisEtCommon::AliAnalysisEtCommon() :
   ,fK0Data(0)
   ,fLambdaData(0)
   ,fAntiLambdaData(0)
+  ,fLambdaEnhancement(0)
+  ,fProtonEnhancement(0)
 {//default constructor
 
 }
@@ -99,6 +101,8 @@ AliAnalysisEtCommon::~AliAnalysisEtCommon()
   delete fK0Data;
   delete fLambdaData;
   delete fAntiLambdaData;
+  delete fLambdaEnhancement;
+  delete fProtonEnhancement;
 }
 
 Int_t AliAnalysisEtCommon::AnalyseEvent(AliVEvent *event)
@@ -144,7 +148,7 @@ void AliAnalysisEtCommon::Init()
     fAntiLambdaData->SetParameter(1,0.210);
     fAntiLambdaData->SetParameter(2,9.2);
   }
-  if(fDataSet==2010){
+  if(fDataSet==2010 ||fDataSet==20100 ){
     //These data are from the CMS analysis note on 7 TeV spectra
     //http://cdsweb.cern.ch/record/1279344/files/QCD-10-007-pas.pdf
     //Note the CMS parameterization of the Levy function differs from the ALICE parameterization by a constant.
@@ -168,6 +172,22 @@ void AliAnalysisEtCommon::Init()
     fAntiLambdaData->SetParameter(1,0.290);
     fAntiLambdaData->SetParameter(2,9.28);
   }
+  fLambdaEnhancement = new TF1("fLambdaEnhancement","([0]*pow(x,[1])*exp(-pow(x/[2],[3])))/([4]*exp(-pow([5]/x,[6]))+[7]*x)",0,50);
+   fLambdaEnhancement->SetParameter(0,0.5630487);
+   fLambdaEnhancement->SetParameter(1,1.388818);
+   fLambdaEnhancement->SetParameter(2,3.954147);
+   fLambdaEnhancement->SetParameter(3,3.443772);
+   fLambdaEnhancement->SetParameter(4,2.844288);
+   fLambdaEnhancement->SetParameter(5,2);
+   fLambdaEnhancement->SetParameter(6,0.4747893);
+   fLambdaEnhancement->SetParameter(7,-0.2250856);
+   fProtonEnhancement = new TF1("fProtonEnhancement","[0]*pow(x,[1])*exp(-pow(x/[2],[3]))/([4]+[5]*x)",0,50);
+   fProtonEnhancement->SetParameter(0,0.5630487*1.6);
+   fProtonEnhancement->SetParameter(1,1.388818);
+   fProtonEnhancement->SetParameter(2,3.954147/1.5);
+   fProtonEnhancement->SetParameter(3,3.443772/2.5);
+   fProtonEnhancement->SetParameter(4,0.5);
+   fProtonEnhancement->SetParameter(5,-.03);
 }
 
 void AliAnalysisEtCommon::ResetEventValues()
@@ -242,3 +262,11 @@ Float_t AliAnalysisEtCommon::AntiLambdaWeight(Float_t pt){
   return data/mc;
 }
 
+Float_t AliAnalysisEtCommon::LambdaBaryonEnhancement(Float_t pt){
+  if(pt<0.8) return 1.0;
+  return fLambdaEnhancement->Eval(pt);
+};//Function which gives the factor to reweigh a lambda or antilambda so it roughly matches baryon enhancement seen at RHIC
+Float_t AliAnalysisEtCommon::ProtonBaryonEnhancement(Float_t pt){
+  if(pt<0.8) return 1.0;
+  return fProtonEnhancement->Eval(pt);
+}//Function which gives the factor to reweigh a lambda or antilambda so it roughly matches baryon enhancement seen at RHIC
index 3fccb822e8dd69e337bc1a3723085c28ce3d1451..da4beee7028b58b49f994fe6ccce5f737f7e85a0 100644 (file)
@@ -26,7 +26,7 @@ class AliAnalysisEtCuts;
 #define ALIANALYSISLEVYPT_H
 class AliAnalysisLevyPt{
  public:
-  virtual ~AliAnalysisLevyPt(){};
+  virtual ~AliAnalysisLevyPt(){;};
   Double_t Evaluate(const Double_t *pt, const Double_t *par) const
   {
     Double_t lMass  = 0.497;
@@ -84,6 +84,7 @@ protected:
     Int_t fDataSet;//Integer corresponding to data set.  Used as a switch to set appropriate track cuts.  By default set to 2010 p+p
     //2009 = 900 GeV p+p data from 2009
     //2010 = 7 TeV p+p data from 2010
+    //20100 = 2.76 TeV Pb+Pb data from 2010
 
     /** PDG Database */
     //TDatabasePDG *fPdgDB;//data base used for looking up pdg codes
@@ -143,6 +144,12 @@ protected:
     TF1 *fLambdaData;//function with Levy fit parameters for Lambda in data
     TF1 *fAntiLambdaData;//function with Levy fit parameters for AntiLambda in data
 
+    TF1 *fLambdaEnhancement;
+    TF1 *fProtonEnhancement;
+    Float_t LambdaBaryonEnhancement(Float_t pt);//Function which gives the factor to reweigh a lambda or antilambda so it roughly matches baryon enhancement seen at RHIC
+    Float_t ProtonBaryonEnhancement(Float_t pt);//Function which gives the factor to reweigh a lambda or antilambda so it roughly matches baryon enhancement seen at RHIC
+
+
  private:
     //Declare it private to avoid compilation warning
     AliAnalysisEtCommon & operator = (const AliAnalysisEtCommon & g) ;//cpy assignment
index be1e24e0f29bcdaedd0b5506292d7c2bba0a4f4a..0038f6588991f07ff04d506675d5675ee6085541 100644 (file)
@@ -44,6 +44,7 @@ AliAnalysisHadEtMonteCarlo::AliAnalysisHadEtMonteCarlo():AliAnalysisHadEt()
                                                        ,fInvestigatePHOS(0)
                                                        ,fInvestigatePiKP(0)
                                                        ,fRequireITSHits(0)
+                                                       ,fBaryonEnhancement(0)
                                                        ,fPtSmearer(0)
 {
 }
@@ -174,6 +175,11 @@ Int_t AliAnalysisHadEtMonteCarlo::AnalyseEvent(AliVEvent* ev,AliVEvent* ev2)
                  float myEt = Et(simPart);
                  if(track->Charge()>0){ FillHisto2D(Form("EtReconstructed%sIdentifiedProton",cutName->Data()),track->Pt(),track->Eta(),myEt);}
                  else{ FillHisto2D(Form("EtReconstructed%sIdentifiedAntiProton",cutName->Data()),track->Pt(),track->Eta(),myEt);}
+                 if(fBaryonEnhancement){
+                   myEt = myEt*ProtonBaryonEnhancement(track->Pt());
+                   if(track->Charge()>0){ FillHisto2D(Form("EtReconstructed%sIdentifiedProtonEnhanced",cutName->Data()),track->Pt(),track->Eta(),myEt);}
+                   else{ FillHisto2D(Form("EtReconstructed%sIdentifiedAntiProtonEnhanced",cutName->Data()),track->Pt(),track->Eta(),myEt);}
+                 }
                  FillHisto2D(Form("dEdxProton%s",cutName->Data()),track->P(),dEdx,1.0);
                }
                if(isKaon){
@@ -201,6 +207,23 @@ Int_t AliAnalysisHadEtMonteCarlo::AnalyseEvent(AliVEvent* ev,AliVEvent* ev2)
                    FillHisto2D(Form("EtReconstructed%sUnidentifiedAssumingPion",cutName->Data()),track->Pt(),track->Eta(),myEtPi);
                    FillHisto2D(Form("EtReconstructed%sUnidentified",cutName->Data()),track->Pt(),track->Eta(),myEt);
                    FillHisto2D(Form("EtNReconstructed%sUnidentified",cutName->Data()),track->Pt(),track->Eta(),1.0);
+                   if(pdgCode == fgPiPlusCode||pdgCode == fgPiMinusCode){
+                     FillHisto2D(Form("EtReconstructed%sUnidentifiedPionAssumingPion",cutName->Data()),track->Pt(),track->Eta(),myEtPi);
+                     FillHisto2D(Form("EtNReconstructed%sUnidentifiedPion",cutName->Data()),track->Pt(),track->Eta(),1.0);
+                   }
+                   if(pdgCode == fgKPlusCode||pdgCode == fgKMinusCode){
+                     FillHisto2D(Form("EtReconstructed%sUnidentifiedKaonAssumingPion",cutName->Data()),track->Pt(),track->Eta(),myEtPi);
+                     FillHisto2D(Form("EtNReconstructed%sUnidentifiedKaon",cutName->Data()),track->Pt(),track->Eta(),1.0);
+                   }
+                   if(pdgCode == fgProtonCode||pdgCode == fgAntiProtonCode){
+                     FillHisto2D(Form("EtReconstructed%sUnidentifiedProtonAssumingPion",cutName->Data()),track->Pt(),track->Eta(),myEtPi);
+                     FillHisto2D(Form("EtNReconstructed%sUnidentifiedProton",cutName->Data()),track->Pt(),track->Eta(),1.0);
+                     if(fBaryonEnhancement){
+                       myEt = myEt*ProtonBaryonEnhancement(track->Pt());
+                       FillHisto2D(Form("EtReconstructed%sUnidentifiedProtonAssumingPionEnhanced",cutName->Data()),track->Pt(),track->Eta(),myEtPi);
+                       FillHisto2D(Form("EtNReconstructed%sUnidentifiedProtonEnhanced",cutName->Data()),track->Pt(),track->Eta(),1.0);
+                     }
+                   }
                  }
                  FillHisto2D(Form("dEdxUnidentified%s",cutName->Data()),track->P(),dEdx,1.0);
                  FillHisto1D(Form("UnidentifiedPIDs%s",cutName->Data()),mypid,1);
@@ -256,6 +279,14 @@ Int_t AliAnalysisHadEtMonteCarlo::AnalyseEvent(AliVEvent* ev,AliVEvent* ev2)
                  FillHisto2D(Form("EtReconstructed%sChargedHadronAssumingPion",cutName->Data()),simPart->Pt(),simPart->Eta(),myEtPi);
                  FillHisto2D(Form("EtReconstructed%sProtonAssumingPion",cutName->Data()),simPart->Pt(),simPart->Eta(),myEtPi);
                  filled = true;
+
+                     if(fBaryonEnhancement){
+                       float enhancement = ProtonBaryonEnhancement(track->Pt());
+                       FillHisto2D(Form("EtReconstructed%sProtonEnhanced",cutName->Data()),simPart->Pt(),simPart->Eta(),myEt*enhancement);
+                       FillHisto2D(Form("EtNReconstructed%sProtonEnhanced",cutName->Data()),simPart->Pt(),simPart->Eta(),myEt*enhancement);
+                       FillHisto2D(Form("EtReconstructed%sProtonAssumingPionEnhanced",cutName->Data()),simPart->Pt(),simPart->Eta(),myEtPi*enhancement);
+                     }
+
                }
                if(pdgCode == fgAntiProtonCode){
                  float myEt = Et(simPart);
@@ -267,6 +298,12 @@ Int_t AliAnalysisHadEtMonteCarlo::AnalyseEvent(AliVEvent* ev,AliVEvent* ev2)
                  FillHisto2D(Form("EtReconstructed%sChargedHadronAssumingPion",cutName->Data()),simPart->Pt(),simPart->Eta(),myEtPi);
                  FillHisto2D(Form("EtReconstructed%sAntiProtonAssumingPion",cutName->Data()),simPart->Pt(),simPart->Eta(),myEtPi);
                  filled = true;
+                 if(fBaryonEnhancement){
+                       float enhancement = ProtonBaryonEnhancement(track->Pt());
+                       FillHisto2D(Form("EtReconstructed%sAntiProtonEnhanced",cutName->Data()),simPart->Pt(),simPart->Eta(),myEt*enhancement);
+                   FillHisto2D(Form("EtNReconstructed%sAntiProtonEnhanced",cutName->Data()),simPart->Pt(),simPart->Eta(),myEt*enhancement);
+                   FillHisto2D(Form("EtReconstructed%sAntiProtonAssumingPionEnhanced",cutName->Data()),simPart->Pt(),simPart->Eta(),myEtPi*enhancement);
+                 }
                }
                if(pdgCode == fgEPlusCode){
                  float myEt = Et(simPart);
@@ -300,12 +337,20 @@ Int_t AliAnalysisHadEtMonteCarlo::AnalyseEvent(AliVEvent* ev,AliVEvent* ev2)
                      float myEt = Et(simPart);
                      FillHisto2D(Form("EtReconstructed%sLambdaDaughters",cutName->Data()),track->Pt(),track->Eta(),myEt);
                      Float_t weight = LambdaWeight(mom->Pt());
+                     if(fBaryonEnhancement){
+                       float enhancement = ProtonBaryonEnhancement(track->Pt());
+                       weight = weight*enhancement;
+                     }
                      FillHisto2D(Form("EtReconstructed%sLambdaDaughtersReweighted",cutName->Data()),track->Pt(),track->Eta(),myEt*weight);
                    }
                    if(pdgCode == fgAntiLambdaCode){
                      float myEt = Et(simPart);
                      FillHisto2D(Form("EtReconstructed%sAntiLambdaDaughters",cutName->Data()),track->Pt(),track->Eta(),myEt);
                      Float_t weight = AntiLambdaWeight(mom->Pt());
+                     if(fBaryonEnhancement){
+                       float enhancement = ProtonBaryonEnhancement(track->Pt());
+                       weight = weight*enhancement;
+                     }
                      FillHisto2D(Form("EtReconstructed%sAntiLambdaDaughtersReweighted",cutName->Data()),track->Pt(),track->Eta(),myEt*weight);
                    }
                    if(pdgCode == fgK0SCode){
@@ -550,6 +595,12 @@ Int_t AliAnalysisHadEtMonteCarlo::AnalyseEvent(AliVEvent* ev)
              FillHisto2D("EtSimulatedChargedHadronAssumingPtTPCCut",part->Pt(),part->Eta(),myEtTPC);
              FillHisto2D("EtSimulatedChargedHadronAssumingPtITSCut",part->Pt(),part->Eta(),myEtITS);
              filled = true;
+             if(fBaryonEnhancement){
+               float enhancement = ProtonBaryonEnhancement(part->Pt());
+               FillHisto2D("EtSimulatedProtonEnhanced",part->Pt(),part->Eta(),myEt*enhancement);
+               FillHisto2D("EtNSimulatedProtonEnhanced",part->Pt(),part->Eta(),1.0*enhancement);
+               FillHisto2D("EtSimulatedProtonAssumingPionEnhanced",part->Pt(),part->Eta(),myEtPi*enhancement);
+             }
            }
            if(pdgCode == fgAntiProtonCode){
              float myEt = Et(part);
@@ -571,6 +622,12 @@ Int_t AliAnalysisHadEtMonteCarlo::AnalyseEvent(AliVEvent* ev)
              FillHisto2D("EtSimulatedChargedHadronAssumingPtTPCCut",part->Pt(),part->Eta(),myEtTPC);
              FillHisto2D("EtSimulatedChargedHadronAssumingPtITSCut",part->Pt(),part->Eta(),myEtITS);
              filled = true;
+             if(fBaryonEnhancement){
+               float enhancement = ProtonBaryonEnhancement(part->Pt());
+               FillHisto2D("EtSimulatedAntiProtonEnhanced",part->Pt(),part->Eta(),myEt*enhancement);
+               FillHisto2D("EtNSimulatedAntiProtonEnhanced",part->Pt(),part->Eta(),1.0*enhancement);
+               FillHisto2D("EtSimulatedAntiProtonAssumingPionEnhanced",part->Pt(),part->Eta(),myEtPi*enhancement);
+             }
            }
            //============Other hadrons===================================
 
@@ -598,6 +655,10 @@ Int_t AliAnalysisHadEtMonteCarlo::AnalyseEvent(AliVEvent* ev)
              FillHisto2D("EtSimulatedLambda",part->Pt(),part->Eta(),myEt);
              FillHisto2D("EtSimulatedAllHadron",part->Pt(),part->Eta(),myEt);
              Float_t weight = LambdaWeight(part->Pt());
+             if(fBaryonEnhancement){
+               float enhancement = ProtonBaryonEnhancement(part->Pt());
+               weight = weight*enhancement;
+             }
              FillHisto2D("EtSimulatedLambdaReweighted",part->Pt(),part->Eta(),myEt*weight);
              Int_t ndaughters = part->GetNDaughters();
              for(Int_t idaughter = 0;idaughter<ndaughters;idaughter++){
@@ -628,6 +689,10 @@ Int_t AliAnalysisHadEtMonteCarlo::AnalyseEvent(AliVEvent* ev)
              FillHisto2D("EtSimulatedAntiLambda",part->Pt(),part->Eta(),myEt);
              FillHisto2D("EtSimulatedAllHadron",part->Pt(),part->Eta(),myEt);
              Float_t weight = AntiLambdaWeight(part->Pt());
+             if(fBaryonEnhancement){
+               float enhancement = ProtonBaryonEnhancement(part->Pt());
+               weight = weight*enhancement;
+             }
              FillHisto2D("EtSimulatedAntiLambdaReweighted",part->Pt(),part->Eta(),myEt*weight);
              Int_t ndaughters = part->GetNDaughters();
              for(Int_t idaughter = 0;idaughter<ndaughters;idaughter++){
@@ -943,7 +1008,11 @@ void AliAnalysisHadEtMonteCarlo::CreateHistograms(){
   CreateEtaPtHisto2D("EtSimulatedKPlus","Simulated E_{T} from K^{+}");
   CreateEtaPtHisto2D("EtSimulatedKMinus","Simulated E_{T} from K^{-}");
   CreateEtaPtHisto2D("EtSimulatedProton","Simulated E_{T} from p");
-  CreateEtaPtHisto2D("EtSimulatedAntiProton","Simulated E_{T} from #bar{p}");
+  CreateEtaPtHisto2D("EtSimulatedAntiProton","Simulated E_{T} from #bar{p}");//Both baryon enhancement and strangeness rescaling
+  if(fBaryonEnhancement){
+    CreateEtaPtHisto2D("EtSimulatedProtonEnhanced","Simulated E_{T} from p");
+    CreateEtaPtHisto2D("EtSimulatedAntiProtonEnhanced","Simulated E_{T} from #bar{p}");
+  }
   CreateEtaPtHisto2D("EtSimulatedChargedHadron","Simulated E_{T} from charged hadrons");
   CreateEtaPtHisto2D(TString("EtNSimulatedPiPlus"),TString("Number of Simulated #pi^{+}"));
   CreateEtaPtHisto2D("EtNSimulatedPiMinus","Number of simulated #pi^{-}");
@@ -951,6 +1020,10 @@ void AliAnalysisHadEtMonteCarlo::CreateHistograms(){
   CreateEtaPtHisto2D("EtNSimulatedKMinus","Number of simulated K^{-}");
   CreateEtaPtHisto2D("EtNSimulatedProton","Number of simulated p");
   CreateEtaPtHisto2D("EtNSimulatedAntiProton","Number of simulated #bar{p}");
+  if(fBaryonEnhancement){
+    CreateEtaPtHisto2D("EtNSimulatedProtonEnhanced","Number of simulated p");
+    CreateEtaPtHisto2D("EtNSimulatedAntiProtonEnhanced","Number of simulated #bar{p}");
+  }
   CreateEtaPtHisto2D("EtNSimulatedChargedHadron","Number of simulated charged hadrons");
   CreateEtaPtHisto2D("EtSimulatedChargedHadronAssumingNoPt","Simulated E_{T} from charged hadrons assuming p_{T}=0");
   CreateEtaPtHisto2D("EtSimulatedChargedHadronAssumingPtTPCCut","Simulated E_{T} from charged hadrons assuming p_{T}=0.15");
@@ -961,12 +1034,16 @@ void AliAnalysisHadEtMonteCarlo::CreateHistograms(){
   CreateEtaPtHisto2D("EtSimulatedKMinusAssumingPion","Simulated E_{T} from K^{-} assuming #pi mass");
   CreateEtaPtHisto2D("EtSimulatedProtonAssumingPion","Simulated E_{T} from p assuming #pi mass");
   CreateEtaPtHisto2D("EtSimulatedAntiProtonAssumingPion","Simulated E_{T} from #bar{p} assuming #pi mass");
+  if(fBaryonEnhancement){
+    CreateEtaPtHisto2D("EtSimulatedProtonAssumingPionEnhanced","Simulated E_{T} from p assuming #pi mass");
+    CreateEtaPtHisto2D("EtSimulatedAntiProtonAssumingPionEnhanced","Simulated E_{T} from #bar{p} assuming #pi mass");
+  }
 
   CreateEtaPtHisto2D("EtSimulatedLambda","Simulated E_{T} from #Lambda");
   CreateEtaPtHisto2D("EtSimulatedAntiLambda","Simulated E_{T} from #bar{#Lambda}");
   CreateEtaPtHisto2D("EtSimulatedK0S","Simulated E_{T} from K^{0}_{S}");
   CreateEtaPtHisto2D("EtSimulatedK0L","Simulated E_{T} from K^{0}_{L}");
-  CreateEtaPtHisto2D("EtSimulatedLambdaReweighted","Simulated E_{T} from #Lambda");
+  CreateEtaPtHisto2D("EtSimulatedLambdaReweighted","Simulated E_{T} from #Lambda");//These will also be used for baryon enhancement
   CreateEtaPtHisto2D("EtSimulatedAntiLambdaReweighted","Simulated E_{T} from #bar{#Lambda}");
   CreateEtaPtHisto2D("EtSimulatedK0SReweighted","Simulated E_{T} from K^{0}_{S}");
   CreateEtaPtHisto2D("EtSimulatedK0LReweighted","Simulated E_{T} from K^{0}_{L}");
@@ -1037,8 +1114,24 @@ void AliAnalysisHadEtMonteCarlo::CreateHistograms(){
     CreateEtaPtHisto2D(Form("EtReconstructed%sIdentifiedKMinus",cutName->Data()),"Reconstructed E_{T} from identified K^{-}");
     CreateEtaPtHisto2D(Form("EtReconstructed%sIdentifiedProton",cutName->Data()),"Reconstructed E_{T} from identified p");
     CreateEtaPtHisto2D(Form("EtReconstructed%sIdentifiedAntiProton",cutName->Data()),"Reconstructed E_{T} from identified #bar{p}");
+    if(fBaryonEnhancement){
+      CreateEtaPtHisto2D(Form("EtReconstructed%sIdentifiedProtonEnhanced",cutName->Data()),"Reconstructed E_{T} from identified p");
+      CreateEtaPtHisto2D(Form("EtReconstructed%sIdentifiedAntiProtonEnhanced",cutName->Data()),"Reconstructed E_{T} from identified #bar{p}");
+    }
     CreateEtaPtHisto2D(Form("EtNReconstructed%sUnidentified",cutName->Data()),"Number of Reconstructed unidentified particles");
     CreateEtaPtHisto2D(Form("EtReconstructed%sUnidentifiedAssumingPion",cutName->Data()),"Reconstructed E_{T} from unidentified particles assuming pion mass");
+
+    CreateEtaPtHisto2D(Form("EtNReconstructed%sUnidentifiedKaon",cutName->Data()),"Number of Reconstructed unidentified kaons particles");
+    CreateEtaPtHisto2D(Form("EtReconstructed%sUnidentifiedKaonAssumingPion",cutName->Data()),"Reconstructed E_{T} from unidentified kaons particles assuming pion mass");
+    CreateEtaPtHisto2D(Form("EtNReconstructed%sUnidentifiedProton",cutName->Data()),"Number of Reconstructed unidentified proton particles");
+    CreateEtaPtHisto2D(Form("EtReconstructed%sUnidentifiedProtonAssumingPion",cutName->Data()),"Reconstructed E_{T} from unidentified proton particles assuming pion mass");
+    if(fBaryonEnhancement){
+      CreateEtaPtHisto2D(Form("EtNReconstructed%sUnidentifiedProtonEnhanced",cutName->Data()),"Number of Reconstructed unidentified proton particles");
+      CreateEtaPtHisto2D(Form("EtReconstructed%sUnidentifiedProtonAssumingPionEnhanced",cutName->Data()),"Reconstructed E_{T} from unidentified proton particles assuming pion mass");
+    }
+    CreateEtaPtHisto2D(Form("EtNReconstructed%sUnidentifiedPion",cutName->Data()),"Number of Reconstructed unidentified pions particles");
+    CreateEtaPtHisto2D(Form("EtReconstructed%sUnidentifiedPionAssumingPion",cutName->Data()),"Reconstructed E_{T} from unidentified pions particles assuming pion mass");
+
     CreateEtaPtHisto2D(Form("EtReconstructed%sUnidentified",cutName->Data()),"Reconstructed E_{T} from unidentified particles using real mass");
     CreateEtaPtHisto2D(Form("EtReconstructed%sMisidentifiedElectrons",cutName->Data()),"Reconstructed E_{T} from misidentified electrons");
 
@@ -1049,6 +1142,10 @@ void AliAnalysisHadEtMonteCarlo::CreateHistograms(){
     CreateEtaPtHisto2D(Form("EtReconstructed%sKMinus",cutName->Data()),"Reconstructed E_{T} from K^{-}");
     CreateEtaPtHisto2D(Form("EtReconstructed%sProton",cutName->Data()),"Reconstructed E_{T} from p");
     CreateEtaPtHisto2D(Form("EtReconstructed%sAntiProton",cutName->Data()),"Reconstructed E_{T} from #bar{p}");
+    if(fBaryonEnhancement){
+      CreateEtaPtHisto2D(Form("EtReconstructed%sProtonEnhanced",cutName->Data()),"Reconstructed E_{T} from p");
+      CreateEtaPtHisto2D(Form("EtReconstructed%sAntiProtonEnhanced",cutName->Data()),"Reconstructed E_{T} from #bar{p}");
+    }
     CreateEtaPtHisto2D(Form("EtReconstructed%sChargedHadron",cutName->Data()),"Reconstructed E_{T} from charged hadrons");
     CreateEtaPtHisto2D(Form("EtNReconstructed%sPiPlus",cutName->Data()),"Reconstructed E_{T} from #pi^{+}");
     CreateEtaPtHisto2D(Form("EtNReconstructed%sPiMinus",cutName->Data()),"Reconstructed E_{T} from #pi^{-}");
@@ -1056,6 +1153,10 @@ void AliAnalysisHadEtMonteCarlo::CreateHistograms(){
     CreateEtaPtHisto2D(Form("EtNReconstructed%sKMinus",cutName->Data()),"Reconstructed E_{T} from K^{-}");
     CreateEtaPtHisto2D(Form("EtNReconstructed%sProton",cutName->Data()),"Reconstructed E_{T} from p");
     CreateEtaPtHisto2D(Form("EtNReconstructed%sAntiProton",cutName->Data()),"Reconstructed E_{T} from #bar{p}");
+    if(fBaryonEnhancement){
+      CreateEtaPtHisto2D(Form("EtNReconstructed%sProtonEnhanced",cutName->Data()),"Reconstructed E_{T} from p");
+      CreateEtaPtHisto2D(Form("EtNReconstructed%sAntiProtonEnhanced",cutName->Data()),"Reconstructed E_{T} from #bar{p}");
+    }
     CreateEtaPtHisto2D(Form("EtNReconstructed%sChargedHadron",cutName->Data()),"Reconstructed E_{T} from charged hadrons");
 
     CreateEtaPtHisto2D(Form("EtReconstructed%sChargedHadronAssumingPion",cutName->Data()),"Reconstructed E_{T} from charged hadrons assuming they are all pions");
@@ -1063,6 +1164,10 @@ void AliAnalysisHadEtMonteCarlo::CreateHistograms(){
     CreateEtaPtHisto2D(Form("EtReconstructed%sKMinusAssumingPion",cutName->Data()),"Reconstructed E_{T} from K^{-} assuming #pi mass");
     CreateEtaPtHisto2D(Form("EtReconstructed%sProtonAssumingPion",cutName->Data()),"Reconstructed E_{T} from p assuming #pi mass");
     CreateEtaPtHisto2D(Form("EtReconstructed%sAntiProtonAssumingPion",cutName->Data()),"Reconstructed E_{T} from #bar{p} assuming #pi mass");
+    if(fBaryonEnhancement){
+      CreateEtaPtHisto2D(Form("EtReconstructed%sProtonAssumingPionEnhanced",cutName->Data()),"Reconstructed E_{T} from p assuming #pi mass");
+      CreateEtaPtHisto2D(Form("EtReconstructed%sAntiProtonAssumingPionEnhanced",cutName->Data()),"Reconstructed E_{T} from #bar{p} assuming #pi mass");
+    }
 
     CreateEtaPtHisto2D(Form("EtReconstructed%sEPlus",cutName->Data()),"Reconstructed E_{T} from e^{+}");
     CreateEtaPtHisto2D(Form("EtReconstructed%sEMinus",cutName->Data()),"Reconstructed E_{T} from e^{-}");
@@ -1095,6 +1200,7 @@ void AliAnalysisHadEtMonteCarlo::CreateHistograms(){
 
   Float_t minEt = 0.0;
   Float_t maxEt = 100.0;
+  if(fDataSet==20100) maxEt=5000.0;
   Int_t nbinsEt = 100;
   char histoname[200];
   char histotitle[200];
index dd8333cbf4023b2ade29958a7e2c5835866c1be7..334991553fc4cab0b648f5b18d3a2db2f292ad3d 100644 (file)
@@ -106,10 +106,12 @@ public:
     void InvestigatePHOS(Bool_t val){fInvestigatePHOS=val;}
     void InvestigatePiKP(Bool_t val){fInvestigatePiKP=val;}
     void RequireITSHits(Bool_t val){fRequireITSHits=val;}
+    void EnhanceBaryons(Bool_t val){fBaryonEnhancement=val;}
     Bool_t Full() const {return fInvestigateFull;}
     Bool_t EMCAL() const {return fInvestigateEMCal;}
     Bool_t PHOS()const {return fInvestigatePHOS;}
     Bool_t PiKP() const {return fInvestigatePiKP;}
+    Bool_t BaryonEnhancement() const {return fBaryonEnhancement;}
 
  private:
     //Declare it private to avoid compilation warning
@@ -126,7 +128,7 @@ public:
     Bool_t fInvestigatePHOS;//Turns on and off functions and histos for investigating event-by-event et for the full acceptance
     Bool_t fInvestigatePiKP;//Turns on and off functions and histos for looking pi/k/p Et event-by-event
     Bool_t fRequireITSHits;//Also investigates Et for track cuts with ITS+TPC hits
-
+    Bool_t fBaryonEnhancement;//Turns on and off baryon enhancement
 
     void ResetEventValues();
 
index 6c35b632c496700fe078212eb0e99fe61a80a22f..492c6f7919eaf7639c3d91f9e26e285d18de059f 100644 (file)
@@ -97,18 +97,18 @@ Int_t AliAnalysisHadEtReconstructed::AnalyseEvent(AliVEvent* ev)
       TObjArray* list;
       switch(cutset){
       case 0:
-       cutName = strTPC;
-       list = fEsdtrackCutsTPC->GetAcceptedTracks(realEvent);
-       isTPC = true;
-       break;
-      case 1:
        cutName = strTPCITS;
        list = fEsdtrackCutsITSTPC->GetAcceptedTracks(realEvent);
+       isTPC = true;
        break;
-      case 2:
+      case 1:
        cutName = strITS;
        list = fEsdtrackCutsITS->GetAcceptedTracks(realEvent);
        break;
+      case 2:
+       cutName = strTPC;
+       list = fEsdtrackCutsTPC->GetAcceptedTracks(realEvent);
+       break;
       default:
        cerr<<"Error:  cannot fill histograms!"<<endl;
        return -1;
@@ -428,15 +428,15 @@ void AliAnalysisHadEtReconstructed::CreateHistograms(){//Creating histograms and
     Float_t maxdEdx = 150.0;
     switch(i){
     case 0:
-      cutName = strTPC;
+      cutName = strTPCITS;
       break;
     case 1:
-      cutName = strTPCITS;
+      cutName = strITS;
       maxPtdEdx = 5;
       maxdEdx = 500.0;
       break;
     case 2:
-      cutName = strITS;
+      cutName = strTPC;
       maxPtdEdx = 5;
       maxdEdx = 500.0;
       break;
index 352cd200834502000ae6b88bee107da85933764a..c7fae3dd2a5567a5e7ec1ad31367d2998ec08d17 100644 (file)
@@ -104,7 +104,7 @@ void AliAnalysisTaskHadEt::UserCreateOutputObjects()
     fEsdtrackCutsITS =  AliESDtrackCuts::GetStandardITSPureSATrackCuts2009(kTRUE,kFALSE);//we do want primaries but we do not want to require PID info
     fEsdtrackCutsITS->SetName("fEsdTrackCutsITS");
   }
-  if(fRecAnalysis->DataSet()==2010){
+  if(fRecAnalysis->DataSet()==2010 || fRecAnalysis->DataSet()==20100){
     //cout<<"Setting track cuts for the 2010 p+p collisions at 7 GeV"<<endl;
     cout<<"Warning:  Have not set 2010 track cuts yet!!"<<endl;
     fEsdtrackCutsITSTPC = AliESDtrackCuts::GetStandardITSTPCTrackCuts2010(selectPrimaries);
index c6e90d37e30364f839c7c7e0a1f397dc7cefdc28..c37416276b1026efc107ec5974d7c4e2ddd21e18 100644 (file)
@@ -1,18 +1,19 @@
 
 AliAnalysisHadEtMonteCarlo * ConfigHadEtMonteCarlo(){
   //cout<<"Hello I am configuring you"<<endl;
+  cout<<"You are analyzing HIJING Pb+Pb simulations"<<endl;
   AliAnalysisHadEtMonteCarlo *hadEtMC = new AliAnalysisHadEtMonteCarlo();
   //Whether or not to investigate the effects of efficiency, momentum resolution, PID, etc.
   hadEtMC->InvestigateSmearing(kFALSE);
 
   //Whether or not to look at Et(sim)-Et(reco) for full acceptance
-  hadEtMC->InvestigateFull(kFALSE);
+  hadEtMC->InvestigateFull(kTRUE);
 
   //Whether or not to look at Et(sim)-Et(reco) for EMCAL acceptance
-  hadEtMC->InvestigateEMCAL(kTRUE);
+  hadEtMC->InvestigateEMCAL(kFALSE);
 
   //Whether or not to look at Et(sim)-Et(reco) for PHOS acceptance
-  hadEtMC->InvestigatePHOS(kTRUE);
+  hadEtMC->InvestigatePHOS(kFALSE);
 
   //Whether or not to look at Et(sim)-Et(reco) for Pi/K/p in full acceptance (full acceptance must be turned on)
   hadEtMC->InvestigatePiKP(kFALSE);
@@ -20,6 +21,12 @@ AliAnalysisHadEtMonteCarlo * ConfigHadEtMonteCarlo(){
   //Look at ITS+TPC tracks
   hadEtMC->RequireITSHits(kTRUE);
 
+  //Look at the 2010 p+p data...
+  hadEtMC->SetDataSet(20100);
+
+  //Turn baryon enhancement on and off
+  hadEtMC->EnhanceBaryons(kTRUE);
+
   hadEtMC->Init();
   return hadEtMC;
 }
index f0b242ceaae85dcad9e6a04be7896e25c5670015..330718ccbc05652787c464574fb23435a78707af 100644 (file)
@@ -2,6 +2,15 @@
 AliAnalysisHadEtReconstructed * ConfigHadEtReconstructed(){
   //cout<<"Hello I am configuring you"<<endl;
   AliAnalysisHadEtReconstructed *hadEtReco = new AliAnalysisHadEtReconstructed();
+  hadEtReco->SetDataSet(20100);
+  //Set corrections...
+
+  TFile *infile = new TFile("corrections.root");
+  corrections = (AliAnalysisHadEtCorrections *)infile->Get("hadCorrectionEMCAL");
+  cout<<"Setting the AliAnalysisHadEtCorrections to "<<corrections->GetName()<<endl;
+  cout<<"eta cut is "<<corrections->GetEtaCut()<<endl;
+  hadEtReco->SetCorrections(corrections);
+
   hadEtReco->Init();
   return hadEtReco;
 }
index ddb399f14ed44f910707854c2203cbe8f6434cd8..6f9114f7660a9185b0e2c62ba3e74dbc9f161357 100644 (file)
 // #include <TSystem.h>
 // #include "TStopwatch.h"
 
-Float_t CorrNeutral(float ptcut, char *prodname, char *shortprodname, bool TPC, char *infilename, bool hadronic = false, float etacut = 0.7);
-TH1D *GetHistoCorrNeutral(float cut, char *name, int mycase, bool eta, int color, int marker, char *infilename, bool hadronic = false);
+Float_t CorrNeutral(float ptcut, char *prodname, char *shortprodname, bool ispp = true, bool forSim = true, bool TPC, char *infilename, bool hadronic = false, float etacut = 0.7);
+TH1D *GetHistoCorrNeutral(float cut, char *name, bool ispp, bool forSim, int mycase, bool eta, int color, int marker, char *infilename, bool hadronic = false);
 
-Float_t CorrPtCut(float ptcut, char *prodname = "Enter Production Name", char *shortprodname = "EnterProductionName", char *filename="Et.ESD.new.sim.merged.root");
-TH1D *GetHistoCorrPtCut(float ptcut = 0.15, char *name, char *filename);
+Float_t CorrPtCut(float ptcut, char *prodname = "Enter Production Name", char *shortprodname = "EnterProductionName", char *filename="Et.ESD.new.sim.merged.root", bool ispp = true, bool forSim = true);
+TH1D *GetHistoCorrPtCut(float ptcut = 0.15, char *name, char *filename, bool ispp = true, bool forSim = true);
 
-TH1D *GetHistoCorrNotID(float etacut,char *name, bool TPC, char *infilename, bool eta);
-TH1D *CorrNotID(float etacut,char *name, char *prodname, char *shortprodname, bool TPC, char *infilename);
-Float_t CorrNotIDConst(float ptcut, float etacut,char *name, char *prodname, char *shortprodname, bool TPC, char *infilename);
+TH1D *GetHistoCorrNotID(float etacut,char *name, bool TPC, char *infilename, bool eta, bool ispp = true, bool forSim = true);
+TH1D *CorrNotID(float etacut,char *name, char *prodname, char *shortprodname, bool TPC, char *infilename, bool ispp = true, bool forSim = true);
+Float_t CorrNotIDConst(float ptcut, float etacut,char *name, char *prodname, char *shortprodname, bool TPC, char *infilename, bool ispp, bool forSim);
 
-TH1D *GetHistoNoID(float etacut, char *name, char *infilename, bool eta, bool TPC);
-TH1D *CorrNoID(float etacut,char *name, char *prodname, char *shortprodname, char *infilename);
-Float_t CorrNoIDConst(float etacut, float ptcut,char *name, char *prodname, char *shortprodname, char *infilename);
+TH1D *GetHistoNoID(float etacut, char *name, char *infilename, bool eta, bool TPC, bool ispp, bool forSim);
+TH1D *CorrNoID(float etacut,char *name, char *prodname, char *shortprodname, char *infilename, bool ispp, bool forSim);
+Float_t CorrNoIDConst(float etacut, float ptcut,char *name, char *prodname, char *shortprodname, char *infilename, bool ispp, bool forSim);
 
 TH1D* bayneseffdiv(TH1D* numerator, TH1D* denominator,Char_t* name);
-TH1D *GetHistoEfficiency(float cut, char *name, int mycase, int color, int marker,bool TPC, char *infilename);
+TH1D *GetHistoEfficiency(float cut, char *name, int mycase, int color, int marker,bool TPC, bool ITS, char *infilename);
 void CorrEfficiencyPlots(bool TPC, char *prodname, char *shortprodname, char *infilename);
 
-TH1D *GetHistoCorrBkgd(float etacut,char *name, bool TPC, char *infilename);
-void CorrBkgdPlots(char *prodname, char *shortprodname, bool TPC, char *infilename);
+TH1D *GetHistoCorrBkgd(float etacut,char *name, bool TPC, char *infilename,bool ispp,bool forSim);
+void CorrBkgdPlots(char *prodname, char *shortprodname, bool TPC, char *infilename,bool ispp,bool forSim);
 
 //===========================================================================================
 
-void GetCorrections(char *prodname = "Enter Production Name", char *shortprodname = "EnterProductionName", bool TPC = true, char *infilename="Et.ESD.new.sim.merged.root"){
+void GetCorrections(char *prodname = "Enter Production Name", char *shortprodname = "EnterProductionName", bool ispp = true, bool forSim = true, bool TPC = true, char *infilename="Et.ESD.new.sim.merged.root"){
     TStopwatch timer;
     timer.Start();
     gSystem->Load("libTree.so");
@@ -53,7 +53,11 @@ void GetCorrections(char *prodname = "Enter Production Name", char *shortprodnam
    gROOT->ProcessLine(".L AliAnalysisHadEtCorrections.cxx+g");
 
    char outfilename[200];
-   sprintf(outfilename,"corrections.%s.root",shortprodname);
+   char *sim = "ForData";
+   if(forSim) sim = "ForSimulations";
+   char *system = "PbPb";
+   if(ispp) system = "pp";
+   sprintf(outfilename,"corrections.%s.%s.%s.root",shortprodname,system,sim);
    TFile *outfile = new TFile(outfilename,"RECREATE");
    AliAnalysisHadEtCorrections *hadCorrectionEMCAL = new AliAnalysisHadEtCorrections();
    hadCorrectionEMCAL->SetName("hadCorrectionEMCAL");
@@ -68,22 +72,22 @@ void GetCorrections(char *prodname = "Enter Production Name", char *shortprodnam
    hadCorrectionEMCAL->SetAcceptanceCorrectionEMCAL(360.0/60.0);
 
    float ptcut = 0.1;
-   float neutralCorr = CorrNeutral(ptcut,prodname,shortprodname,TPC,infilename,false,etacut);
+   float neutralCorr = CorrNeutral(ptcut,prodname,shortprodname,ispp,forSim,TPC,infilename,false,etacut);
    hadCorrectionEMCAL->SetNeutralCorrection(neutralCorr);
    cout<<"Warning:  Setting neutral correction error bars to STAR value of +/-2%.  Use for development purposes only!"<<endl;
    hadCorrectionEMCAL->SetNeutralCorrectionLowBound(neutralCorr*0.98);
    hadCorrectionEMCAL->SetNeutralCorrectionHighBound(neutralCorr*1.02);
 
 
-   float hadronicCorr = CorrNeutral(ptcut,prodname,shortprodname,TPC,infilename,true,etacut);
+   float hadronicCorr = CorrNeutral(ptcut,prodname,shortprodname,ispp,forSim,TPC,infilename,true,etacut);
    hadCorrectionEMCAL->SetNotHadronicCorrection(hadronicCorr);
    cout<<"Warning:  Setting hadronic correction error bars to value of +/-2%.  Use for development purposes only!"<<endl;
    hadCorrectionEMCAL->SetNotHadronicCorrectionLowBound(neutralCorr*0.98);
    hadCorrectionEMCAL->SetNotHadronicCorrectionHighBound(neutralCorr*1.02);
 
-   float ptcutITS = CorrPtCut(0.1,prodname,shortprodname,infilename);
+   float ptcutITS = CorrPtCut(0.1,prodname,shortprodname,infilename,ispp,forSim);
    hadCorrectionEMCAL->SetpTCutCorrectionITS(ptcutITS);
-   float ptcutTPC = CorrPtCut(0.15,prodname,shortprodname,infilename);
+   float ptcutTPC = CorrPtCut(0.15,prodname,shortprodname,infilename,ispp,forSim);
    hadCorrectionEMCAL->SetpTCutCorrectionTPC(ptcutTPC);
    cout<<"Setting ITS pt cut corr to "<<ptcutITS<<endl;
    cout<<"Setting TPC pt cut corr to "<<ptcutTPC<<endl;
@@ -93,13 +97,13 @@ void GetCorrections(char *prodname = "Enter Production Name", char *shortprodnam
    hadCorrectionEMCAL->SetpTCutCorrectionITSHighBound(ptcutITS*1.03);
    hadCorrectionEMCAL->SetpTCutCorrectionTPCHighBound(ptcutTPC*1.03);
 
-   TH1D *NotIDTPC = CorrNotID(etacut,"CorrNotIDEMCALTPC",prodname,shortprodname,true,infilename);
-   TH1D *NotIDITS = CorrNotID(etacut,"CorrNotIDEMCALITS",prodname,shortprodname,false,infilename);
+   TH1D *NotIDTPC = CorrNotID(etacut,"CorrNotIDEMCALTPC",prodname,shortprodname,true,infilename,ispp,forSim);
+   TH1D *NotIDITS = CorrNotID(etacut,"CorrNotIDEMCALITS",prodname,shortprodname,false,infilename,ispp,forSim);
    hadCorrectionEMCAL->SetNotIDCorrectionTPC(NotIDTPC);
    hadCorrectionEMCAL->SetNotIDCorrectionITS(NotIDITS);
 
-   Float_t NotIDConstTPC = CorrNotIDConst(0.15,etacut,"CorrNotIDEMCALTPC2",prodname,shortprodname,true,infilename);
-   Float_t NotIDConstITS = CorrNotIDConst(0.10,etacut,"CorrNotIDEMCALTPC2",prodname,shortprodname,true,infilename);
+   Float_t NotIDConstTPC = CorrNotIDConst(0.15,etacut,"CorrNotIDEMCALTPC2",prodname,shortprodname,true,infilename,ispp,forSim);
+   Float_t NotIDConstITS = CorrNotIDConst(0.10,etacut,"CorrNotIDEMCALTPC2",prodname,shortprodname,true,infilename,ispp,forSim);
    hadCorrectionEMCAL->SetNotIDConstCorrectionTPC(1.0/NotIDConstTPC);
    hadCorrectionEMCAL->SetNotIDConstCorrectionITS(1.0/NotIDConstITS);
    cout<<"Setting constant PID corrections to "<<NotIDConstTPC<<" and "<<NotIDConstITS<<endl;
@@ -110,11 +114,11 @@ void GetCorrections(char *prodname = "Enter Production Name", char *shortprodnam
    hadCorrectionEMCAL->SetNotIDConstCorrectionITSHighBound(1./NotIDConstITS*1.01);
 
 
-   TH1D *NoID = CorrNoID(etacut,"CorrNoIDEMCAL",prodname,shortprodname,infilename);
+   TH1D *NoID = CorrNoID(etacut,"CorrNoIDEMCAL",prodname,shortprodname,infilename,ispp,forSim);
    hadCorrectionEMCAL->SetNotIDCorrectionNoPID(NoID);
 
-   Float_t NoIDTPC = CorrNoIDConst(etacut,0.15,"CorrNoIDEMCAL2",prodname,shortprodname,infilename);
-   Float_t NoIDITS = CorrNoIDConst(etacut,0.1,"CorrNoIDEMCAL2",prodname,shortprodname,infilename);
+   Float_t NoIDTPC = CorrNoIDConst(etacut,0.15,"CorrNoIDEMCAL2",prodname,shortprodname,infilename,ispp,forSim);
+   Float_t NoIDITS = CorrNoIDConst(etacut,0.1,"CorrNoIDEMCAL2",prodname,shortprodname,infilename,ispp,forSim);
    cout<<"Setting constant PID corrections with no PID to "<<NoIDTPC<<" and "<<NoIDITS<<endl;
    hadCorrectionEMCAL->SetNotIDConstCorrectionTPCNoID(1./NoIDTPC);
    hadCorrectionEMCAL->SetNotIDConstCorrectionITSNoID(1./NoIDITS);
@@ -124,7 +128,7 @@ void GetCorrections(char *prodname = "Enter Production Name", char *shortprodnam
    hadCorrectionEMCAL->SetNotIDConstCorrectionTPCNoIDHighBound(1./NoIDTPC*1.01);
    hadCorrectionEMCAL->SetNotIDConstCorrectionITSNoIDHighBound(1./NoIDITS*1.01);
 
-   TH1D *efficiencyPionTPC = GetHistoEfficiency(etacut,"hEfficiencyPionTPC",1,1,20,true,infilename);
+   TH1D *efficiencyPionTPC = GetHistoEfficiency(etacut,"hEfficiencyPionTPC",1,1,20,true,true,infilename);
    hadCorrectionEMCAL->SetEfficiencyPionTPC(efficiencyPionTPC);
    if(!efficiencyPionTPC){cerr<<"NOOOOOOOOOOOOOOOOOO!!  We have failed you, Christine!"<<endl;}
 //    else{
@@ -133,32 +137,32 @@ void GetCorrections(char *prodname = "Enter Production Name", char *shortprodnam
 //      return;
 //    }
 
-   TH1D *efficiencyKaonTPC = GetHistoEfficiency(etacut,"hEfficiencyKaonTPC",2,1,20,true,infilename);
+   TH1D *efficiencyKaonTPC = GetHistoEfficiency(etacut,"hEfficiencyKaonTPC",2,1,20,true,true,infilename);
    if(!efficiencyKaonTPC){cerr<<"NOOOOOOOOOOOOOOOOOO!!  We have failed you, Christine!"<<endl;}
    hadCorrectionEMCAL->SetEfficiencyKaonTPC(efficiencyKaonTPC);
-   TH1D *efficiencyProtonTPC = GetHistoEfficiency(etacut,"hEfficiencyProtonTPC",3,1,20,true,infilename);
+   TH1D *efficiencyProtonTPC = GetHistoEfficiency(etacut,"hEfficiencyProtonTPC",3,1,20,true,true,infilename);
    hadCorrectionEMCAL->SetEfficiencyProtonTPC(efficiencyProtonTPC);
-   TH1D *efficiencyHadronTPC = GetHistoEfficiency(etacut,"hEfficiencyHadronTPC",0,1,20,true,infilename);
+   TH1D *efficiencyHadronTPC = GetHistoEfficiency(etacut,"hEfficiencyHadronTPC",0,1,20,true,true,infilename);
    hadCorrectionEMCAL->SetEfficiencyHadronTPC(efficiencyHadronTPC);
-   TH1D *efficiencyPionITS = GetHistoEfficiency(etacut,"hEfficiencyPionITS",1,1,20,false,infilename);
+   TH1D *efficiencyPionITS = GetHistoEfficiency(etacut,"hEfficiencyPionITS",1,1,20,false,true,infilename);
    hadCorrectionEMCAL->SetEfficiencyPionITS(efficiencyPionITS);
-   TH1D *efficiencyKaonITS = GetHistoEfficiency(etacut,"hEfficiencyKaonITS",2,1,20,false,infilename);
+   TH1D *efficiencyKaonITS = GetHistoEfficiency(etacut,"hEfficiencyKaonITS",2,1,20,false,true,infilename);
    hadCorrectionEMCAL->SetEfficiencyKaonITS(efficiencyKaonITS);
-   TH1D *efficiencyProtonITS = GetHistoEfficiency(etacut,"hEfficiencyProtonITS",3,1,20,false,infilename);
+   TH1D *efficiencyProtonITS = GetHistoEfficiency(etacut,"hEfficiencyProtonITS",3,1,20,false,true,infilename);
    hadCorrectionEMCAL->SetEfficiencyProtonITS(efficiencyProtonITS);
-   TH1D *efficiencyHadronITS = GetHistoEfficiency(etacut,"hEfficiencyHadronITS",0,1,20,false,infilename);
+   TH1D *efficiencyHadronITS = GetHistoEfficiency(etacut,"hEfficiencyHadronITS",0,1,20,false,true,infilename);
    hadCorrectionEMCAL->SetEfficiencyHadronITS(efficiencyHadronITS);
 
    //CorrEfficiencyPlots(true,prodname,shortprodname,infilename);
    //CorrEfficiencyPlots(false,prodname,shortprodname,infilename);
 
    hadCorrectionEMCAL->GetEfficiencyHadronTPC()->Draw();
-   TH1D *backgroundTPC = GetHistoCorrBkgd(etacut,"hBackgroundTPC",true,infilename);
-   TH1D *backgroundITS = GetHistoCorrBkgd(etacut,"hBackgroundITS",false,infilename);
+   TH1D *backgroundTPC = GetHistoCorrBkgd(etacut,"hBackgroundTPC",true,infilename,ispp,forSim);
+   TH1D *backgroundITS = GetHistoCorrBkgd(etacut,"hBackgroundITS",false,infilename,ispp,forSim);
    hadCorrectionEMCAL->SetBackgroundCorrectionTPC(backgroundTPC);
    hadCorrectionEMCAL->SetBackgroundCorrectionITS(backgroundITS);
-   CorrBkgdPlots(prodname,shortprodname,true,infilename);
-   CorrBkgdPlots(prodname,shortprodname,false,infilename);
+   CorrBkgdPlots(prodname,shortprodname,true,infilename,ispp,forSim);
+   CorrBkgdPlots(prodname,shortprodname,false,infilename,ispp,forSim);
 
    outfile->cd();
    hadCorrectionEMCAL->Write();
@@ -178,23 +182,23 @@ void GetCorrections(char *prodname = "Enter Production Name", char *shortprodnam
    hadCorrectionPHOS->SetAcceptanceCorrectionEMCAL(360.0/60.0);
 
    float ptcut = 0.1;
-   float neutralCorr = CorrNeutral(ptcut,prodname,shortprodname,TPC,infilename,false,etacut);
+   float neutralCorr = CorrNeutral(ptcut,prodname,shortprodname,ispp,forSim,TPC,infilename,false,etacut);
    hadCorrectionPHOS->SetNeutralCorrection(neutralCorr);
    cout<<"Warning:  Setting neutral correction error bars to STAR value of +/-2%.  Use for development purposes only!"<<endl;
    hadCorrectionPHOS->SetNeutralCorrectionLowBound(neutralCorr*0.98);
    hadCorrectionPHOS->SetNeutralCorrectionHighBound(neutralCorr*1.02);
 
 
-   float hadronicCorr = CorrNeutral(ptcut,prodname,shortprodname,TPC,infilename,true,etacut);
+   float hadronicCorr = CorrNeutral(ptcut,prodname,shortprodname,ispp,forSim,TPC,infilename,true,etacut);
    hadCorrectionPHOS->SetNotHadronicCorrection(hadronicCorr);
    cout<<"Warning:  Setting hadronic correction error bars to value of +/-2%.  Use for development purposes only!"<<endl;
    hadCorrectionPHOS->SetNotHadronicCorrectionLowBound(neutralCorr*0.98);
    hadCorrectionPHOS->SetNotHadronicCorrectionHighBound(neutralCorr*1.02);
    
 
-   float ptcutITS = CorrPtCut(0.1,prodname,shortprodname,infilename);
+   float ptcutITS = CorrPtCut(0.1,prodname,shortprodname,infilename,ispp,forSim);
    hadCorrectionPHOS->SetpTCutCorrectionITS(ptcutITS);
-   float ptcutTPC = CorrPtCut(0.15,prodname,shortprodname,infilename);
+   float ptcutTPC = CorrPtCut(0.15,prodname,shortprodname,infilename,ispp,forSim);
    hadCorrectionPHOS->SetpTCutCorrectionTPC(ptcutTPC);
    cout<<"Warning:  Setting pt cut correction error bars to STAR value of +/-3%.  Use for development purposes only!"<<endl;
    hadCorrectionPHOS->SetpTCutCorrectionITSLowBound(ptcutITS*0.97);
@@ -202,13 +206,13 @@ void GetCorrections(char *prodname = "Enter Production Name", char *shortprodnam
    hadCorrectionPHOS->SetpTCutCorrectionITSHighBound(ptcutITS*1.03);
    hadCorrectionPHOS->SetpTCutCorrectionTPCHighBound(ptcutTPC*1.03);
 
-   TH1D *NotIDTPC = CorrNotID(etacut,"CorrNotIDPHOSTPC",prodname,shortprodname,true,infilename);
-   TH1D *NotIDITS = CorrNotID(etacut,"CorrNotIDPHOSITS",prodname,shortprodname,false,infilename);
+   TH1D *NotIDTPC = CorrNotID(etacut,"CorrNotIDPHOSTPC",prodname,shortprodname,true,infilename,ispp,forSim);
+   TH1D *NotIDITS = CorrNotID(etacut,"CorrNotIDPHOSITS",prodname,shortprodname,false,infilename,ispp,forSim);
    hadCorrectionPHOS->SetNotIDCorrectionTPC(NotIDTPC);
    hadCorrectionPHOS->SetNotIDCorrectionITS(NotIDITS);
 
-   Float_t NotIDConstTPC = CorrNotIDConst(0.15,etacut,"CorrNotIDPHOSTPC2",prodname,shortprodname,true,infilename);
-   Float_t NotIDConstITS = CorrNotIDConst(0.10,etacut,"CorrNotIDPHOSTPC2",prodname,shortprodname,true,infilename);
+   Float_t NotIDConstTPC = CorrNotIDConst(0.15,etacut,"CorrNotIDPHOSTPC2",prodname,shortprodname,true,infilename,ispp,forSim);
+   Float_t NotIDConstITS = CorrNotIDConst(0.10,etacut,"CorrNotIDPHOSTPC2",prodname,shortprodname,true,infilename,ispp,forSim);
    hadCorrectionPHOS->SetNotIDConstCorrectionTPC(1./NotIDConstTPC);
    hadCorrectionPHOS->SetNotIDConstCorrectionITS(1./NotIDConstITS);
    cout<<"Warning:  Setting systematic errors on constant correction from unidentified particles at 1%!  For testing and development purposes only!"<<endl;
@@ -218,12 +222,12 @@ void GetCorrections(char *prodname = "Enter Production Name", char *shortprodnam
    hadCorrectionPHOS->SetNotIDConstCorrectionITSHighBound(1./NotIDConstITS*1.01);
 
 
-   TH1D *NoID = CorrNoID(etacut,"CorrNoIDPHOS",prodname,shortprodname,infilename);
+   TH1D *NoID = CorrNoID(etacut,"CorrNoIDPHOS",prodname,shortprodname,infilename,ispp,forSim);
    hadCorrectionPHOS->SetNotIDCorrectionNoPID(NoID);
 
 
-   Float_t NoIDTPC = CorrNoIDConst(etacut,0.15,"CorrNoIDPHOS2",prodname,shortprodname,infilename);
-   Float_t NoIDITS = CorrNoIDConst(etacut,0.1,"CorrNoIDPHOS2",prodname,shortprodname,infilename);
+   Float_t NoIDTPC = CorrNoIDConst(etacut,0.15,"CorrNoIDPHOS2",prodname,shortprodname,infilename,ispp,forSim);
+   Float_t NoIDITS = CorrNoIDConst(etacut,0.1,"CorrNoIDPHOS2",prodname,shortprodname,infilename,ispp,forSim);
    cout<<"Setting constant PID corrections with no PID to "<<NoIDTPC<<" and "<<NoIDITS<<endl;
    hadCorrectionPHOS->SetNotIDConstCorrectionTPCNoID(1./NoIDTPC);
    hadCorrectionPHOS->SetNotIDConstCorrectionITSNoID(1./NoIDITS);
@@ -233,14 +237,14 @@ void GetCorrections(char *prodname = "Enter Production Name", char *shortprodnam
    hadCorrectionPHOS->SetNotIDConstCorrectionTPCNoIDHighBound(1./NoIDTPC*1.01);
    hadCorrectionPHOS->SetNotIDConstCorrectionITSNoIDHighBound(1./NoIDITS*1.01);
 
-   TH1D *efficiencyPionTPC = GetHistoEfficiency(etacut,"hEfficiencyPionTPC",1,1,20,true,infilename);
-   TH1D *efficiencyKaonTPC = GetHistoEfficiency(etacut,"hEfficiencyKaonTPC",2,1,20,true,infilename);
-   TH1D *efficiencyProtonTPC = GetHistoEfficiency(etacut,"hEfficiencyProtonTPC",3,1,20,true,infilename);
-   TH1D *efficiencyHadronTPC = GetHistoEfficiency(etacut,"hEfficiencyHadronTPC",0,1,20,true,infilename);
-   TH1D *efficiencyPionITS = GetHistoEfficiency(etacut,"hEfficiencyPionITS",1,1,20,false,infilename);
-   TH1D *efficiencyKaonITS = GetHistoEfficiency(etacut,"hEfficiencyKaonITS",2,1,20,false,infilename);
-   TH1D *efficiencyProtonITS = GetHistoEfficiency(etacut,"hEfficiencyProtonITS",3,1,20,false,infilename);
-   TH1D *efficiencyHadronITS = GetHistoEfficiency(etacut,"hEfficiencyHadronITS",0,1,20,false,infilename);
+   TH1D *efficiencyPionTPC = GetHistoEfficiency(etacut,"hEfficiencyPionTPC",1,1,20,true,true,infilename);
+   TH1D *efficiencyKaonTPC = GetHistoEfficiency(etacut,"hEfficiencyKaonTPC",2,1,20,true,true,infilename);
+   TH1D *efficiencyProtonTPC = GetHistoEfficiency(etacut,"hEfficiencyProtonTPC",3,1,20,true,true,infilename);
+   TH1D *efficiencyHadronTPC = GetHistoEfficiency(etacut,"hEfficiencyHadronTPC",0,1,20,true,true,infilename);
+   TH1D *efficiencyPionITS = GetHistoEfficiency(etacut,"hEfficiencyPionITS",1,1,20,false,true,infilename);
+   TH1D *efficiencyKaonITS = GetHistoEfficiency(etacut,"hEfficiencyKaonITS",2,1,20,false,true,infilename);
+   TH1D *efficiencyProtonITS = GetHistoEfficiency(etacut,"hEfficiencyProtonITS",3,1,20,false,true,infilename);
+   TH1D *efficiencyHadronITS = GetHistoEfficiency(etacut,"hEfficiencyHadronITS",0,1,20,false,true,infilename);
    //CorrEfficiencyPlots(true,prodname,shortprodname,infilename);
    //CorrEfficiencyPlots(false,prodname,shortprodname,infilename);
    hadCorrectionPHOS->SetEfficiencyPionTPC(efficiencyPionTPC);
@@ -252,12 +256,12 @@ void GetCorrections(char *prodname = "Enter Production Name", char *shortprodnam
    hadCorrectionPHOS->SetEfficiencyProtonITS(efficiencyProtonITS);
    hadCorrectionPHOS->SetEfficiencyHadronITS(efficiencyHadronITS);
 
-   TH1D *backgroundTPC = GetHistoCorrBkgd(etacut,"hBackgroundTPC",true,infilename);
-   TH1D *backgroundITS = GetHistoCorrBkgd(etacut,"hBackgroundITS",false,infilename);
+   TH1D *backgroundTPC = GetHistoCorrBkgd(etacut,"hBackgroundTPC",true,infilename,ispp,forSim);
+   TH1D *backgroundITS = GetHistoCorrBkgd(etacut,"hBackgroundITS",false,infilename,ispp,forSim);
    hadCorrectionPHOS->SetBackgroundCorrectionTPC(backgroundTPC);
    hadCorrectionPHOS->SetBackgroundCorrectionITS(backgroundITS);
-   CorrBkgdPlots(prodname,shortprodname,true,infilename);
-   CorrBkgdPlots(prodname,shortprodname,false,infilename);
+   CorrBkgdPlots(prodname,shortprodname,true,infilename,ispp,forSim);
+   CorrBkgdPlots(prodname,shortprodname,false,infilename,ispp,forSim);
 
    //Write the output
    outfile->cd();
@@ -265,12 +269,17 @@ void GetCorrections(char *prodname = "Enter Production Name", char *shortprodnam
    outfile->Write();
    outfile->Close();
 
+   TFile *junk = new TFile("junk.root","RECREATE");
+   efficiencyPionTPC->Write();
+   junk->Write();
+   junk->Close();
+
   timer.Stop();
   timer.Print();
 }
 
 //==================================CorrNeutral==============================================
-Float_t CorrNeutral(float ptcut, char *prodname, char *shortprodname, bool TPC, char *infilename, bool hadronic, float etacut){
+Float_t CorrNeutral(float ptcut, char *prodname, char *shortprodname, bool ispp, bool forSim, bool TPC, char *infilename, bool hadronic, float etacut){
   gStyle->SetOptTitle(0);
   gStyle->SetOptStat(0);
   gStyle->SetOptFit(0);
@@ -305,22 +314,22 @@ Float_t CorrNeutral(float ptcut, char *prodname, char *shortprodname, bool TPC,
   int colortotal = 1;
   int casetotal = 4;
   if(hadronic) casetotal = 8;
-  TH1D *total = GetHistoCorrNeutral(ptcut,histoname,casetotal,false,colortotal,phosmarker,infilename,hadronic);
+  TH1D *total = GetHistoCorrNeutral(ptcut,histoname,ispp,forSim,casetotal,false,colortotal,phosmarker,infilename,hadronic);
 
   int colorallneutral = 2;
-  TH1D *allneutral = GetHistoCorrNeutral(ptcut,"allneutral",3,false,colorallneutral,phosmarker,infilename,hadronic);
+  TH1D *allneutral = GetHistoCorrNeutral(ptcut,"allneutral",ispp,forSim,3,false,colorallneutral,phosmarker,infilename,hadronic);
 
   int colorchargedsecondary = TColor::kViolet-3;
-  TH1D *chargedsecondary = GetHistoCorrNeutral(ptcut,"chargedsecondary",2,false,colorchargedsecondary,phosmarker,infilename,hadronic);
+  TH1D *chargedsecondary = GetHistoCorrNeutral(ptcut,"chargedsecondary",ispp,forSim,2,false,colorchargedsecondary,phosmarker,infilename,hadronic);
 
   int colorneutralUndet = 4;
-  TH1D *neutralUndet = GetHistoCorrNeutral(ptcut,"neutralUndet",1,false,colorneutralUndet,phosmarker,infilename,hadronic);
+  TH1D *neutralUndet = GetHistoCorrNeutral(ptcut,"neutralUndet",ispp,forSim,1,false,colorneutralUndet,phosmarker,infilename,hadronic);
 
   int colorv0 = TColor::kGreen+2;
-  TH1D *v0 = GetHistoCorrNeutral(ptcut,"v0",0,false,colorv0,phosmarker,infilename,hadronic);
+  TH1D *v0 = GetHistoCorrNeutral(ptcut,"v0",ispp,forSim,0,false,colorv0,phosmarker,infilename,hadronic);
 
   int colorem = TColor::kCyan;
-  TH1D *em = GetHistoCorrNeutral(ptcut,"em",9,false,colorem,phosmarker,infilename,hadronic);
+  TH1D *em = GetHistoCorrNeutral(ptcut,"em",ispp,forSim,9,false,colorem,phosmarker,infilename,hadronic);
 
   TF1 *func = new TF1("func","[0]",-.7,.7);
   func->SetParameter(0,0.2);
@@ -387,18 +396,20 @@ Float_t CorrNeutral(float ptcut, char *prodname, char *shortprodname, bool TPC,
   return 1.0/(1.0-corr);
 
 }
-TH1D *GetHistoCorrNeutral(float cut, char *name, int mycase, bool eta, int color, int marker, char *infilename, bool hadronic){
+TH1D *GetHistoCorrNeutral(float cut, char *name, bool ispp, bool forSim, int mycase, bool eta, int color, int marker, char *infilename, bool hadronic){
   TFile *file = new TFile(infilename);
   TList *list = file->FindObject("out2");
+  char *reweightname = "";
+  if(!forSim) reweightname = "Reweighted";
   TH2F *numeratorParent; 
   switch(mycase){
   case 0:
-    numeratorParent= (TH2F*)((TH2F*) out2->FindObject("EtSimulatedLambda"))->Clone("v0");
-    numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedAntiLambda"));
-    numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedK0S"));
+    numeratorParent= (TH2F*)((TH2F*) out2->FindObject(Form("EtSimulatedLambda%s",reweightname)))->Clone("v0");
+    numeratorParent->Add((TH2F*) out2->FindObject(Form("EtSimulatedAntiLambda%s",reweightname)));
+    numeratorParent->Add((TH2F*) out2->FindObject(Form("EtSimulatedK0S%s",reweightname)));
     break;
   case 1:
-    numeratorParent = (TH2F*)((TH2F*) out2->FindObject("EtSimulatedK0L"))->Clone("Knnbar");
+    numeratorParent = (TH2F*)((TH2F*) out2->FindObject(Form("EtSimulatedK0L%s",reweightname)))->Clone("Knnbar");
     numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedNeutron"));
     numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedAntiNeutron"));
     break;
@@ -411,18 +422,18 @@ TH1D *GetHistoCorrNeutral(float cut, char *name, int mycase, bool eta, int color
     numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedAntiXi0"));
     break;
   case 3:
-    numeratorParent= (TH2F*)((TH2F*) out2->FindObject("EtSimulatedLambda"))->Clone("allneutral");
-    numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedAntiLambda"));
-    numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedK0S"));
-    numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedK0L"));
+    numeratorParent= (TH2F*)((TH2F*) out2->FindObject(Form("EtSimulatedLambda%s",reweightname)))->Clone("allneutral");
+    numeratorParent->Add((TH2F*) out2->FindObject(Form("EtSimulatedAntiLambda%s",reweightname)));
+    numeratorParent->Add((TH2F*) out2->FindObject(Form("EtSimulatedK0S%s",reweightname)));
+    numeratorParent->Add((TH2F*) out2->FindObject(Form("EtSimulatedK0L%s",reweightname)));
     numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedNeutron"));
     numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedAntiNeutron"));
     break;
   case 4:
-    numeratorParent= (TH2F*)((TH2F*) out2->FindObject("EtSimulatedLambda"))->Clone("allneutral");
-    numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedAntiLambda"));
-    numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedK0S"));
-    numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedK0L"));
+    numeratorParent= (TH2F*)((TH2F*) out2->FindObject(Form("EtSimulatedLambda%s",reweightname)))->Clone("allneutral");
+    numeratorParent->Add((TH2F*) out2->FindObject(Form("EtSimulatedAntiLambda%s",reweightname)));
+    numeratorParent->Add((TH2F*) out2->FindObject(Form("EtSimulatedK0S%s",reweightname)));
+    numeratorParent->Add((TH2F*) out2->FindObject(Form("EtSimulatedK0L%s",reweightname)));
     numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedNeutron"));
     numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedAntiNeutron"));
     numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedOmega"));
@@ -447,10 +458,10 @@ TH1D *GetHistoCorrNeutral(float cut, char *name, int mycase, bool eta, int color
     numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedAntiSigma"));
     break;
   case 8:
-    numeratorParent= (TH2F*)((TH2F*) out2->FindObject("EtSimulatedLambda"))->Clone("allneutral");
-    numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedAntiLambda"));
-    numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedK0S"));
-    numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedK0L"));
+    numeratorParent= (TH2F*)((TH2F*) out2->FindObject(Form("EtSimulatedLambda%s",reweightname)))->Clone("allneutral");
+    numeratorParent->Add((TH2F*) out2->FindObject(Form("EtSimulatedAntiLambda%s",reweightname)));
+    numeratorParent->Add((TH2F*) out2->FindObject(Form("EtSimulatedK0S%s",reweightname)));
+    numeratorParent->Add((TH2F*) out2->FindObject(Form("EtSimulatedK0L%s",reweightname)));
     numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedNeutron"));
     numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedAntiNeutron"));
     numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedOmega"));
@@ -477,7 +488,30 @@ TH1D *GetHistoCorrNeutral(float cut, char *name, int mycase, bool eta, int color
   }
 
   TH2F *allhad;
-  allhad=(TH2F*) ((TH2F*) out2->FindObject("EtSimulatedAllHadron"))->Clone("id");
+  //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"));
+  allhad->Add((TH2F*) out2->FindObject("EtSimulatedKPlus"));
+  allhad->Add((TH2F*) out2->FindObject("EtSimulatedProton"));
+  allhad->Add((TH2F*) out2->FindObject("EtSimulatedAntiProton"));
+  allhad->Add((TH2F*) out2->FindObject(Form("EtSimulatedLambda%s",reweightname)));
+  allhad->Add((TH2F*) out2->FindObject(Form("EtSimulatedAntiLambda%s",reweightname)));
+  allhad->Add((TH2F*) out2->FindObject(Form("EtSimulatedK0S%s",reweightname)));
+  allhad->Add((TH2F*) out2->FindObject(Form("EtSimulatedK0L%s",reweightname)));
+  allhad->Add((TH2F*) out2->FindObject("EtSimulatedNeutron"));
+  allhad->Add((TH2F*) out2->FindObject("EtSimulatedAntiNeutron"));
+  allhad->Add((TH2F*) out2->FindObject("EtSimulatedEPlus"));
+  allhad->Add((TH2F*) out2->FindObject("EtSimulatedEMinus"));
+  allhad->Add((TH2F*) out2->FindObject("EtSimulatedOmega"));
+  allhad->Add((TH2F*) out2->FindObject("EtSimulatedAntiOmega"));
+  allhad->Add((TH2F*) out2->FindObject("EtSimulatedXi"));
+  allhad->Add((TH2F*) out2->FindObject("EtSimulatedAntiXi"));
+  allhad->Add((TH2F*) out2->FindObject("EtSimulatedSigma"));
+  allhad->Add((TH2F*) out2->FindObject("EtSimulatedAntiSigma"));
+  allhad->Add((TH2F*) out2->FindObject("EtSimulatedXi0"));
+  allhad->Add((TH2F*) out2->FindObject("EtSimulatedAntiXi0"));
+
   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"));
@@ -487,8 +521,6 @@ TH1D *GetHistoCorrNeutral(float cut, char *name, int mycase, bool eta, int color
     allhad->Add((TH2F*) out2->FindObject("EtSimulatedEMinus"));
   }
 
-  //numeratorParent->Sumw2();
-  //allhad->Sumw2();
   TH1D *denominator;
   TH1D *numerator;
   if(eta){
@@ -522,7 +554,7 @@ TH1D *GetHistoCorrNeutral(float cut, char *name, int mycase, bool eta, int color
 }
 
 //===============================CorrPtCut=========================================
-TH1D *GetHistoCorrPtCut(float ptcut, char *name, char *filename){
+TH1D *GetHistoCorrPtCut(float ptcut, char *name, char *filename, bool ispp, bool forSim){
   TFile *file = new TFile(filename);
   TList *list = file->FindObject("out2");
   TH2F *allhad = ((TH2F*) out2->FindObject("EtSimulatedAllHadron"))->Clone("allhad");
@@ -555,7 +587,7 @@ TH1D *GetHistoCorrPtCut(float ptcut, char *name, char *filename){
 
 }
 
-Float_t CorrPtCut(float ptcut, char *prodname, char *shortprodname, char *filename){
+Float_t CorrPtCut(float ptcut, char *prodname, char *shortprodname, char *filename, bool ispp, bool forSim){
 
   gStyle->SetOptTitle(0);
   gStyle->SetOptStat(0);
@@ -638,7 +670,7 @@ Float_t CorrPtCut(float ptcut, char *prodname, char *shortprodname, char *filena
 
 
 //==================================CorrNotID=================================================
-TH1D *GetHistoCorrNotID(float etacut,char *name, bool TPC, char *infilename, bool eta){
+TH1D *GetHistoCorrNotID(float etacut,char *name, bool TPC, char *infilename, bool eta, bool ispp, bool forSim){
   TFile *file = new TFile(infilename);
   TList *list = file->FindObject("out2");
   char *myname = "ITS";
@@ -730,7 +762,7 @@ TH1D *GetHistoCorrNotID(float etacut,char *name, bool TPC, char *infilename, boo
 
 }
 
-TH1D *CorrNotID(float etacut,char *name, char *prodname, char *shortprodname, bool TPC, char *infilename){
+TH1D *CorrNotID(float etacut,char *name, char *prodname, char *shortprodname, bool TPC, char *infilename, bool ispp, bool forSim){
   gStyle->SetOptTitle(0);
   gStyle->SetOptStat(0);
   gStyle->SetOptFit(0);
@@ -744,7 +776,7 @@ TH1D *CorrNotID(float etacut,char *name, char *prodname, char *shortprodname, bo
   c->SetFrameFillColor(0);
   c->SetFrameBorderMode(0);
 
-  TH1D *PHOS = GetHistoCorrNotID(etacut,name,TPC,infilename,true);
+  TH1D *PHOS = GetHistoCorrNotID(etacut,name,TPC,infilename,true,ispp,forSim);
   PHOS->SetMarkerColor(2);
   PHOS->SetLineColor(2);
   PHOS->SetAxisRange(0.0,4);
@@ -779,7 +811,7 @@ TH1D *CorrNotID(float etacut,char *name, char *prodname, char *shortprodname, bo
   return PHOS;
 }
 
-Float_t CorrNotIDConst(float ptcut, float etacut,char *name, char *prodname, char *shortprodname, bool TPC, char *infilename){
+Float_t CorrNotIDConst(float ptcut, float etacut,char *name, char *prodname, char *shortprodname, bool TPC, char *infilename, bool ispp, bool forSim){
   gStyle->SetOptTitle(0);
   gStyle->SetOptStat(0);
   gStyle->SetOptFit(0);
@@ -793,7 +825,7 @@ Float_t CorrNotIDConst(float ptcut, float etacut,char *name, char *prodname, cha
   c->SetFrameFillColor(0);
   c->SetFrameBorderMode(0);
 
-  TH1D *PHOS = GetHistoCorrNotID(ptcut,name,TPC,infilename,false);
+  TH1D *PHOS = GetHistoCorrNotID(ptcut,name,TPC,infilename,false,ispp,forSim);
   PHOS->SetMarkerColor(2);
   PHOS->SetLineColor(2);
   PHOS->SetMaximum(1.01);
@@ -825,7 +857,7 @@ Float_t CorrNotIDConst(float ptcut, float etacut,char *name, char *prodname, cha
 }
 
 //==================================CorrNoID=================================================
-TH1D *GetHistoNoID(float etacut, char *name, char *infilename, bool eta, bool TPC){
+TH1D *GetHistoNoID(float etacut, char *name, char *infilename, bool eta, bool TPC, bool ispp, bool forSim){
   TFile *file = new TFile(infilename);
   char *myname = "ITS";
   if(TPC) myname = "TPC";
@@ -888,7 +920,7 @@ TH1D *GetHistoNoID(float etacut, char *name, char *infilename, bool eta, bool TP
 
 }
 
-TH1D *CorrNoID(float etacut,char *name, char *prodname, char *shortprodname, char *infilename){
+TH1D *CorrNoID(float etacut,char *name, char *prodname, char *shortprodname, char *infilename, bool ispp, bool forSim){
   gStyle->SetOptTitle(0);
   gStyle->SetOptStat(0);
   gStyle->SetOptFit(0);
@@ -902,7 +934,7 @@ TH1D *CorrNoID(float etacut,char *name, char *prodname, char *shortprodname, cha
   c->SetFrameFillColor(0);
   c->SetFrameBorderMode(0);
 
-  TH1D *PHOS = GetHistoNoID(etacut,name,infilename,true,true);
+  TH1D *PHOS = GetHistoNoID(etacut,name,infilename,true,true,ispp,forSim);
   PHOS->SetMarkerColor(2);
   PHOS->SetLineColor(2);
   PHOS->SetAxisRange(0.0,4);
@@ -929,7 +961,7 @@ TH1D *CorrNoID(float etacut,char *name, char *prodname, char *shortprodname, cha
 
 }
 
-Float_t CorrNoIDConst(float etacut, float ptcut,char *name, char *prodname, char *shortprodname, char *infilename){
+Float_t CorrNoIDConst(float etacut, float ptcut,char *name, char *prodname, char *shortprodname, char *infilename, bool ispp, bool forSim){
   gStyle->SetOptTitle(0);
   gStyle->SetOptStat(0);
   gStyle->SetOptFit(0);
@@ -945,7 +977,7 @@ Float_t CorrNoIDConst(float etacut, float ptcut,char *name, char *prodname, char
 
   bool TPC = true;
   if(ptcut<.15) TPC = false;
-  TH1D *PHOS = GetHistoNoID(ptcut,name,infilename,false,TPC);
+  TH1D *PHOS = GetHistoNoID(ptcut,name,infilename,false,TPC,ispp,forSim);
   TF1 *func = new TF1("func","[0]",-etacut,etacut);
   PHOS->Fit(func,"","",-etacut,etacut);
   PHOS->SetMarkerColor(2);
@@ -1027,12 +1059,14 @@ TH1D* bayneseffdiv(TH1D* numerator, TH1D* denominator,Char_t* name)
 
 
 
-TH1D *GetHistoEfficiency(float cut, char *name, int mycase, int color, int marker,bool TPC, char *infilename){
+TH1D *GetHistoEfficiency(float cut, char *name, int mycase, int color, int marker,bool TPC,bool ITS, char *infilename){
   bool eta = true;
   TFile *file = new TFile(infilename);
   TList *list = file->FindObject("out2");
   char *myname = "ITS";
-  if(TPC) myname = "TPC";
+  if(TPC&&!ITS) myname = "TPC";
+  if(TPC&&ITS) myname = "TPCITS";
+  cout<<"Using tracks from "<<myname<<" for efficiency"<<endl;
   TH2F *numeratorParent; 
   switch(mycase){
   case 0:
@@ -1124,7 +1158,7 @@ TH1D *GetHistoEfficiency(float cut, char *name, int mycase, int color, int marke
 }
 
 void CorrEfficiencyPlots(bool TPC, char *prodname, char *shortprodname, char *infilename){
-
+  bool ITS = true;
   gStyle->SetOptTitle(0);
   gStyle->SetOptStat(0);
   gStyle->SetOptFit(0);
@@ -1147,10 +1181,10 @@ void CorrEfficiencyPlots(bool TPC, char *prodname, char *shortprodname, char *in
   int emcalmarker = 24;
   float ptcut1 = 0.05;
   float ptcut2 = 0.1;
-  TH1D *PHOStotal = GetHistoEfficiency(0.12,"PHOStotal",0,colortotal,phosmarker,TPC,infilename);
-  TH1D *PHOSpi = GetHistoEfficiency(0.12,"PHOSpi",1,colorpi,phosmarker,TPC,infilename);
-  TH1D *PHOSp = GetHistoEfficiency(0.12,"PHOSp",2,colork,phosmarker,TPC,infilename);
-  TH1D *PHOSk = GetHistoEfficiency(0.12,"PHOSk",3,colorp,phosmarker,TPC,infilename);
+  TH1D *PHOStotal = GetHistoEfficiency(0.12,"PHOStotal",0,colortotal,phosmarker,TPC,ITS,infilename);
+  TH1D *PHOSpi = GetHistoEfficiency(0.12,"PHOSpi",1,colorpi,phosmarker,TPC,ITS,infilename);
+  TH1D *PHOSp = GetHistoEfficiency(0.12,"PHOSp",2,colork,phosmarker,TPC,ITS,infilename);
+  TH1D *PHOSk = GetHistoEfficiency(0.12,"PHOSk",3,colorp,phosmarker,TPC,ITS,infilename);
   if(!TPC){PHOStotal->GetXaxis()->SetRange(PHOStotal->GetXaxis()->FindBin(0.05),PHOStotal->GetXaxis()->FindBin(1.0));}
   else{PHOStotal->GetXaxis()->SetRange(PHOStotal->GetXaxis()->FindBin(0.15),PHOStotal->GetXaxis()->FindBin(3.0));}
   PHOStotal->SetMinimum(0.0);
@@ -1159,10 +1193,10 @@ void CorrEfficiencyPlots(bool TPC, char *prodname, char *shortprodname, char *in
   PHOSpi->Draw("same");
   PHOSp->Draw("same");
   PHOSk->Draw("same");
-  TH1D *EMCALtotal = GetHistoEfficiency(0.7,"EMCALtotal",0,colortotal,emcalmarker,TPC,infilename);
-  TH1D *EMCALpi = GetHistoEfficiency(0.7,"EMCALpi",1,colorpi,emcalmarker,TPC,infilename);
-  TH1D *EMCALp = GetHistoEfficiency(0.7,"EMCALp",2,colork,emcalmarker,TPC,infilename);
-  TH1D *EMCALk = GetHistoEfficiency(0.7,"EMCALk",3,colorp,emcalmarker,TPC,infilename);
+  TH1D *EMCALtotal = GetHistoEfficiency(0.7,"EMCALtotal",0,colortotal,emcalmarker,TPC,ITS,infilename);
+  TH1D *EMCALpi = GetHistoEfficiency(0.7,"EMCALpi",1,colorpi,emcalmarker,TPC,ITS,infilename);
+  TH1D *EMCALp = GetHistoEfficiency(0.7,"EMCALp",2,colork,emcalmarker,TPC,ITS,infilename);
+  TH1D *EMCALk = GetHistoEfficiency(0.7,"EMCALk",3,colorp,emcalmarker,TPC,ITS,infilename);
   EMCALtotal->Draw("same");
   EMCALpi->Draw("same");
   EMCALp->Draw("same");
@@ -1200,8 +1234,14 @@ void CorrEfficiencyPlots(bool TPC, char *prodname, char *shortprodname, char *in
   char epsname[100];
   char pngname[100];
   if(TPC){
-    sprintf(epsname,"pics/%s/CorrEfficiencyTPC.eps",shortprodname);
-    sprintf(pngname,"pics/%s/CorrEfficiencyTPC.png",shortprodname);
+    if(ITS){
+      sprintf(epsname,"pics/%s/CorrEfficiencyITSTPC.eps",shortprodname);
+      sprintf(pngname,"pics/%s/CorrEfficiencyITSTPC.png",shortprodname);
+    }
+    else{
+      sprintf(epsname,"pics/%s/CorrEfficiencyTPC.eps",shortprodname);
+      sprintf(pngname,"pics/%s/CorrEfficiencyTPC.png",shortprodname);
+    }
   }
   else{
     sprintf(epsname,"pics/%s/CorrEfficiencyITS.eps",shortprodname);
@@ -1222,9 +1262,11 @@ void CorrEfficiencyPlots(bool TPC, char *prodname, char *shortprodname, char *in
 }
 
 //==================================CorrBkgd=================================================
-TH1D *GetHistoCorrBkgd(float etacut,char *name, bool TPC, char *infilename){
+TH1D *GetHistoCorrBkgd(float etacut,char *name, bool TPC, char *infilename,bool ispp,bool forSim){
   TFile *file = new TFile(infilename);
   TList *list = file->FindObject("out2");
+  char *reweightname = "";
+  if(!forSim) reweightname = "Reweighted";
   char *myname = "ITS";
   if(TPC) myname = "TPC";
   TH2F *signal = ((TH2F*) out2->FindObject(Form("EtReconstructed%sIdentifiedPiPlus",myname)))->Clone("signal");
@@ -1237,9 +1279,9 @@ TH1D *GetHistoCorrBkgd(float etacut,char *name, bool TPC, char *infilename){
 
   //Et of all unidentified hadrons (plus hadrons identified as pions) calculated assuming their true mass
   TH2F *bkgd = ((TH2F*) out2->FindObject(Form("EtReconstructed%sMisidentifiedElectrons",myname)))->Clone("bkgd");
-  bkgd->Add((TH2F*) out2->FindObject(Form("EtReconstructed%sLambdaDaughters",myname)));
-  bkgd->Add((TH2F*) out2->FindObject(Form("EtReconstructed%sAntiLambdaDaughters",myname)));
-  bkgd->Add((TH2F*) out2->FindObject(Form("EtReconstructed%sK0SDaughters",myname)));
+  bkgd->Add((TH2F*) out2->FindObject(Form("EtReconstructed%sLambdaDaughters%s",myname,reweightname)));
+  bkgd->Add((TH2F*) out2->FindObject(Form("EtReconstructed%sAntiLambdaDaughters%s",myname,reweightname)));
+  bkgd->Add((TH2F*) out2->FindObject(Form("EtReconstructed%sK0SDaughters%s",myname,reweightname)));
   bkgd->Add((TH2F*) out2->FindObject(Form("EtReconstructed%sXiDaughters",myname)));
   bkgd->Add((TH2F*) out2->FindObject(Form("EtReconstructed%sAntiXiDaughters",myname)));
   bkgd->Add((TH2F*) out2->FindObject(Form("EtReconstructed%sOmegaDaughters",myname)));
@@ -1261,7 +1303,7 @@ TH1D *GetHistoCorrBkgd(float etacut,char *name, bool TPC, char *infilename){
 
 }
 
-void CorrBkgdPlots(char *prodname, char *shortprodname, bool TPC, char *infilename){
+void CorrBkgdPlots(char *prodname, char *shortprodname, bool TPC, char *infilename,bool ispp,bool forSim){
   gStyle->SetOptTitle(0);
   gStyle->SetOptStat(0);
   gStyle->SetOptFit(0);
@@ -1275,8 +1317,8 @@ void CorrBkgdPlots(char *prodname, char *shortprodname, bool TPC, char *infilena
   c->SetFrameFillColor(0);
   c->SetFrameBorderMode(0);
 
-  TH1D *PHOS = GetHistoCorrBkgd(0.12,"PHOS2",TPC,infilename);
-  TH1D *EMCAL = GetHistoCorrBkgd(0.7,"EMCAL2",TPC,infilename);
+  TH1D *PHOS = GetHistoCorrBkgd(0.12,"PHOS2",TPC,infilename,ispp,forSim);
+  TH1D *EMCAL = GetHistoCorrBkgd(0.7,"EMCAL2",TPC,infilename,ispp,forSim);
   PHOS->SetMarkerColor(2);
   EMCAL->SetMarkerColor(4);
   PHOS->SetLineColor(2);