]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWG4/totEt/AliAnalysisEt.cxx
- adding histograms for energy deposited by identified charged particles
[u/mrichter/AliRoot.git] / PWG4 / totEt / AliAnalysisEt.cxx
index c7db4fa732f094fa0f249f8fcef1b117704c58fd..260d9fba3a1694e734a29d4b37aec8a480312b73 100644 (file)
@@ -1,3 +1,12 @@
+//_________________________________________________________________________
+//  Utility Class for transverse energy studies
+//  Base class for ESD & MC analysis
+//  - reconstruction and MonteCarlo output
+// implementation file
+//
+//*-- Authors: Oystein Djuvsland (Bergen), David Silvermyr (ORNL)
+//_________________________________________________________________________
+
 #include "AliAnalysisEt.h"
 #include "TMath.h"
 #include "TList.h"
@@ -6,6 +15,8 @@
 #include <iostream>
 #include "AliAnalysisEtCuts.h"
 #include "AliVEvent.h"
+#include "TDatabasePDG.h"
+#include "Rtypes.h"
 
 using namespace std;
 ClassImp(AliAnalysisEt);
@@ -13,30 +24,31 @@ ClassImp(AliAnalysisEt);
 
 AliAnalysisEt::AliAnalysisEt() :
         fHistogramNameSuffix("")
+        ,fCuts(0)
         ,fPdgDB(0)
-        ,PiPlusCode(0)
-        ,PiMinusCode(0)
-        ,KPlusCode(0)
-        ,KMinusCode(0)
-        ,ProtonCode(0)
-        ,AntiProtonCode(0)
-        ,LambdaCode(0)
-        ,AntiLambdaCode(0)
-        ,K0SCode(0)
-        ,OmegaCode(0)
-        ,AntiOmegaCode(0)
-        ,Xi0Code(0)
-        ,AntiXi0Code(0)
-        ,XiCode(0)
-        ,AntiXiCode(0)
-        ,SigmaCode(0)
-        ,AntiSigmaCode(0)
-        ,K0LCode(0)
-        ,NeutronCode(0)
-        ,AntiNeutronCode(0)
-        ,EPlusCode(0)
-        ,EMinusCode(0)
-        ,PionMass(0)
+        ,fPiPlusCode(0)
+        ,fPiMinusCode(0)
+        ,fKPlusCode(0)
+        ,fKMinusCode(0)
+        ,fProtonCode(0)
+        ,fAntiProtonCode(0)
+        ,fLambdaCode(0)
+        ,fAntiLambdaCode(0)
+        ,fK0SCode(0)
+        ,fOmegaCode(0)
+        ,fAntiOmegaCode(0)
+        ,fXi0Code(0)
+        ,fAntiXi0Code(0)
+        ,fXiCode(0)
+        ,fAntiXiCode(0)
+        ,fSigmaCode(0)
+        ,fAntiSigmaCode(0)
+        ,fK0LCode(0)
+        ,fNeutronCode(0)
+        ,fAntiNeutronCode(0)
+        ,fEPlusCode(0)
+        ,fEMinusCode(0)
+        ,fPionMass(0)
         ,fSumEt(0)
         ,fSumEtAcc(0)
         ,fTotEt(0)
@@ -48,19 +60,27 @@ AliAnalysisEt::AliAnalysisEt() :
         ,fMultiplicity(0)
         ,fChargedMultiplicity(0)
         ,fNeutralMultiplicity(0)
-        ,fEtaCut(EtCommonCuts::kEtaCut)
-        ,fEtaCutAcc(0)
-        ,fPhiCutAccMin(0)
-        ,fPhiCutAccMax(360.)
-        ,fDetectorRadius(460.)
-        ,fVertexXCut(0)
-        ,fVertexYCut(0)
-        ,fVertexZCut(0)
-        ,fIPxyCut(0)
-        ,fIPzCut(0)
-        ,fClusterEnergyCut(EtCommonCuts::kClusterEnergyCut)
-        ,fTrackPtCut(EtCommonCuts::kTrackPtCut)
-        ,fSingleCellEnergyCut(0)
+        ,fBaryonEt(0)
+        ,fAntiBaryonEt(0)
+        ,fMesonEt(0)
+        ,fBaryonEtAcc(0)
+        ,fAntiBaryonEtAcc(0)
+        ,fMesonEtAcc(0)
+        ,fProtonEt(0)
+        ,fChargedKaonEt(0)
+        ,fMuonEt(0)
+        ,fElectronEt(0)
+        ,fProtonEtAcc(0)
+        ,fChargedKaonEtAcc(0)
+        ,fMuonEtAcc(0)
+        ,fElectronEtAcc(0)
+        ,fEtaCut(0)
+       ,fEtaCutAcc(0)
+       ,fPhiCutAccMin(0)
+       ,fPhiCutAccMax(0)
+       ,fDetectorRadius(0)
+       ,fClusterEnergyCut(0) 
+       ,fSingleCellEnergyCut(0)
         ,fHistEt(0)
         ,fHistChargedEt(0)
         ,fHistNeutralEt(0)
@@ -78,10 +98,17 @@ AliAnalysisEt::AliAnalysisEt() :
         ,fHistBaryonEtAcc(0)
         ,fHistAntiBaryonEtAcc(0)
         ,fHistMesonEtAcc(0)
+        ,fHistProtonEt(0)
+        ,fHistChargedKaonEt(0)
+        ,fHistMuonEt(0)
+        ,fHistElectronEt(0)
+        ,fHistProtonEtAcc(0)
+        ,fHistChargedKaonEtAcc(0)
+        ,fHistMuonEtAcc(0)
+        ,fHistElectronEtAcc(0)
         ,fHistEtRecvsEtMC(0)
         ,fHistTMDeltaR(0)
 {
-
 }
 
 AliAnalysisEt::~AliAnalysisEt()
@@ -90,7 +117,7 @@ AliAnalysisEt::~AliAnalysisEt()
 }
 
 void AliAnalysisEt::FillOutputList(TList *list)
-{
+{ // histograms to be added to output
     list->Add(fHistEt);
     list->Add(fHistChargedEt);
     list->Add(fHistNeutralEt);
@@ -114,101 +141,138 @@ void AliAnalysisEt::FillOutputList(TList *list)
     list->Add(fHistAntiBaryonEtAcc);
     list->Add(fHistMesonEtAcc);
 
+    list->Add(fHistProtonEtAcc);
+    list->Add(fHistChargedKaonEtAcc);
+    list->Add(fHistMuonEtAcc);
+    list->Add(fHistElectronEtAcc);
+
     list->Add(fHistEtRecvsEtMC);
 
     list->Add(fHistTMDeltaR);
 }
 
 void AliAnalysisEt::Init()
-{
-
-  if(!fPdgDB) fPdgDB = new TDatabasePDG();
-  SetParticleCodes();
+{// clear variables, set up cuts and PDG info
+  ResetEventValues();
 }
 
 void AliAnalysisEt::CreateHistograms()
-{
+{ // create histograms..
+  // histogram binning for E_T, p_T and Multiplicity: defaults for p+p
+  Int_t nbinsEt = 1000;
+  Double_t minEt = 0.0001;
+  Double_t maxEt = 100;
+  Int_t nbinsPt = 200;
+  Double_t minPt = 0;
+  Double_t maxPt = 20;
+  Int_t nbinsMult = 200;
+  Double_t minMult = -0.5; // offset -0.5 to have integer bins centered around 0
+  Double_t maxMult = nbinsMult + minMult; // 1 bin per integer value
 
     TString histname = "fHistEt" + fHistogramNameSuffix;
-
-    fHistEt = new TH1F(histname.Data(), "Total E_{T} Distribution", 1000, 0.00, 99);
+    fHistEt = new TH1F(histname.Data(), "Total E_{T} Distribution", nbinsEt, minEt, maxEt);
     fHistEt->GetXaxis()->SetTitle("E_{T} (GeV/c^{2})");
     fHistEt->GetYaxis()->SetTitle("dN/dE_{T} (c^{2}/GeV)");
 
     histname = "fHistChargedEt" + fHistogramNameSuffix;
-    fHistChargedEt = new TH1F(histname.Data(), "Total Charged E_{T} Distribution", 1000, 0.00, 99);
+    fHistChargedEt = new TH1F(histname.Data(), "Total Charged E_{T} Distribution", nbinsEt, minEt, maxEt);
     fHistChargedEt->GetXaxis()->SetTitle("E_{T} (GeV/c^{2})");
     fHistChargedEt->GetYaxis()->SetTitle("dN/dE_{T} (c^{2}/GeV)");
 
     histname = "fHistNeutralEt" + fHistogramNameSuffix;
-    fHistNeutralEt = new TH1F(histname.Data(), "Total Neutral E_{T} Distribution", 1000, 0.00, 99);
+    fHistNeutralEt = new TH1F(histname.Data(), "Total Neutral E_{T} Distribution", nbinsEt, minEt, maxEt);
     fHistNeutralEt->GetXaxis()->SetTitle("E_{T} (GeV/c^{2})");
     fHistNeutralEt->GetYaxis()->SetTitle("dN/dE_{T} (c^{2}/GeV)");
 
     histname = "fHistEtAcc" + fHistogramNameSuffix;
-    fHistEtAcc = new TH1F(histname.Data(), "Total E_{T} Distribution in Acceptance", 1000, 0.00, 99);
+    fHistEtAcc = new TH1F(histname.Data(), "Total E_{T} Distribution in Acceptance", nbinsEt, minEt, maxEt);
     fHistEtAcc->GetXaxis()->SetTitle("E_{T} (GeV/c^{2})");
     fHistEtAcc->GetYaxis()->SetTitle("dN/dE_{T} (c^{2}/GeV)");
 
     histname = "fHistChargedEtAcc" + fHistogramNameSuffix;
-    fHistChargedEtAcc = new TH1F(histname.Data(), "Total Charged E_{T} Distribution in Acceptance", 1000, 0.00, 99);
+    fHistChargedEtAcc = new TH1F(histname.Data(), "Total Charged E_{T} Distribution in Acceptance", nbinsEt, minEt, maxEt);
     fHistChargedEtAcc->GetXaxis()->SetTitle("E_{T} (GeV/c^{2})");
     fHistChargedEtAcc->GetYaxis()->SetTitle("dN/dE_{T} (c^{2}/GeV)");
 
     histname = "fHistNeutralEtAcc" + fHistogramNameSuffix;
-    fHistNeutralEtAcc = new TH1F(histname.Data(), "Total Neutral E_{T} Distribution in Acceptance", 1000, 0.00, 99);
+    fHistNeutralEtAcc = new TH1F(histname.Data(), "Total Neutral E_{T} Distribution in Acceptance", nbinsEt, minEt, maxEt);
     fHistNeutralEtAcc->GetXaxis()->SetTitle("E_{T} (GeV/c^{2})");
     fHistNeutralEtAcc->GetYaxis()->SetTitle("dN/dE_{T} (c^{2}/GeV)");
     std::cout << histname << std::endl;
     histname = "fHistMult" + fHistogramNameSuffix;
-    fHistMult = new TH1F(histname.Data(), "Total Multiplicity", 200, 0, 199);
+    fHistMult = new TH1F(histname.Data(), "Total Multiplicity", nbinsMult, minMult, maxMult);
     fHistMult->GetXaxis()->SetTitle("N");
     fHistMult->GetYaxis()->SetTitle("Multiplicity");
 
     histname = "fHistChargedMult" + fHistogramNameSuffix;
-    fHistChargedMult = new TH1F(histname.Data(), "Charged Multiplicity", 200, 0, 199);
+    fHistChargedMult = new TH1F(histname.Data(), "Charged Multiplicity", nbinsMult, minMult, maxMult);
     fHistChargedMult->GetXaxis()->SetTitle("N");
     fHistChargedMult->GetYaxis()->SetTitle("Multiplicity");
 
     histname = "fHistNeutralMult" + fHistogramNameSuffix;
-    fHistNeutralMult = new TH1F(histname.Data(), "Charged Multiplicity", 200, 0, 199);
+    fHistNeutralMult = new TH1F(histname.Data(), "Neutral Multiplicity", nbinsMult, minMult, maxMult);
     fHistNeutralMult->GetXaxis()->SetTitle("N");
     fHistNeutralMult->GetYaxis()->SetTitle("Multiplicity");
 
     histname = "fHistPhivsPtPos" + fHistogramNameSuffix;
-    fHistPhivsPtPos = new TH2F(histname.Data(), "Phi vs pT of positively charged tracks hitting the calorimeter",      200, 0, 2*TMath::Pi(), 2000, 0, 100);
+    fHistPhivsPtPos = new TH2F(histname.Data(), "Phi vs pT of positively charged tracks hitting the calorimeter",      200, 0, 2*TMath::Pi(), nbinsPt, minPt, maxPt);
 
     histname = "fHistPhivsPtNeg" + fHistogramNameSuffix;
-    fHistPhivsPtNeg = new TH2F(histname.Data(), "Phi vs pT of negatively charged tracks hitting the calorimeter",      200, 0, 2*TMath::Pi(), 2000, 0, 100);
+    fHistPhivsPtNeg = new TH2F(histname.Data(), "Phi vs pT of negatively charged tracks hitting the calorimeter",      200, 0, 2*TMath::Pi(), nbinsPt, minPt, maxPt);
 
     histname = "fHistBaryonEt" + fHistogramNameSuffix;
-    fHistBaryonEt = new TH1F(histname.Data(), "E_{T} for baryons",  1000, 0.0001, 100);
+    fHistBaryonEt = new TH1F(histname.Data(), "E_{T} for baryons",  nbinsEt, minEt, maxEt);
 
     histname = "fHistAntiBaryonEt" + fHistogramNameSuffix;
-    fHistAntiBaryonEt = new TH1F(histname.Data(), "E_{T} for anti baryons",  1000, 0.0001, 100);
+    fHistAntiBaryonEt = new TH1F(histname.Data(), "E_{T} for anti baryons",  nbinsEt, minEt, maxEt);
 
     histname = "fHistMesonEt" + fHistogramNameSuffix;
-    fHistMesonEt = new TH1F(histname.Data(), "E_{T} for mesons",  1000, 0.0001, 100);
+    fHistMesonEt = new TH1F(histname.Data(), "E_{T} for mesons",  nbinsEt, minEt, maxEt);
 
     histname = "fHistBaryonEtAcc" + fHistogramNameSuffix;
-    fHistBaryonEtAcc = new TH1F(histname.Data(), "E_{T} for baryons in calorimeter acceptance",  1000, 0.0001, 100);
+    fHistBaryonEtAcc = new TH1F(histname.Data(), "E_{T} for baryons in calorimeter acceptance",  nbinsEt, minEt, maxEt);
 
     histname = "fHistAntiBaryonEtAcc" + fHistogramNameSuffix;
-    fHistAntiBaryonEtAcc = new TH1F(histname.Data(), "E_{T} for anti baryons in calorimeter acceptance",  1000, 0.0001, 100);
+    fHistAntiBaryonEtAcc = new TH1F(histname.Data(), "E_{T} for anti baryons in calorimeter acceptance",  nbinsEt, minEt, maxEt);
 
     histname = "fHistMesonEtAcc" + fHistogramNameSuffix;
-    fHistMesonEtAcc = new TH1F(histname.Data(), "E_{T} for mesons in calorimeter acceptance",  1000, 0.0001, 100);
+    fHistMesonEtAcc = new TH1F(histname.Data(), "E_{T} for mesons in calorimeter acceptance",  nbinsEt, minEt, maxEt);
+
+    histname = "fHistProtonEt" + fHistogramNameSuffix;
+    fHistProtonEt = new TH1F(histname.Data(), "E_{T} for (anti-)protons", nbinsEt, minEt, maxEt);
+
+    histname = "fHistKaonEt" + fHistogramNameSuffix;
+    fHistChargedKaonEt = new TH1F(histname.Data(), "E_{T} for charged kaons", nbinsEt, minEt, maxEt);
+
+    histname = "fHistMuonEt" + fHistogramNameSuffix;
+    fHistMuonEt = new TH1F(histname.Data(), "E_{T} for muons", nbinsEt, minEt, maxEt);
+
+    histname = "fHistElectronEt" + fHistogramNameSuffix;
+    fHistElectronEt = new TH1F(histname.Data(), "E_{T} for electrons/positrons", nbinsEt, minEt, maxEt);
+
+    histname = "fHistProtonEtAcc" + fHistogramNameSuffix;
+    fHistProtonEtAcc = new TH1F(histname.Data(), "E_{T} for (anti-)protons in calorimeter acceptance", nbinsEt, minEt, maxEt);
+
+    histname = "fHistKaonEtAcc" + fHistogramNameSuffix;
+    fHistChargedKaonEtAcc = new TH1F(histname.Data(), "E_{T} for charged kaons in calorimeter acceptance", nbinsEt, minEt, maxEt);
+
+    histname = "fHistMuonEtAcc" + fHistogramNameSuffix;
+    fHistMuonEtAcc = new TH1F(histname.Data(), "E_{T} for muons in calorimeter acceptance", nbinsEt, minEt, maxEt);
+
+    histname = "fHistElectronEtAcc" + fHistogramNameSuffix;
+    fHistElectronEtAcc = new TH1F(histname.Data(), "E_{T} for electrons/positrons in calorimeter acceptance", nbinsEt, minEt, maxEt);
 
     histname = "fHistEtRecvsEtMC" + fHistogramNameSuffix;
-    fHistEtRecvsEtMC = new TH2F(histname.Data(), "Reconstructed E_{t} vs MC E_{t}", 1000, 0.000, 100, 1000, 0.0001, 100);
+    fHistEtRecvsEtMC = new TH2F(histname.Data(), "Reconstructed E_{t} vs MC E_{t}", nbinsEt, minEt, maxEt, nbinsEt, minEt, maxEt);
 
+    //
     histname = "fHistTMDeltaR" + fHistogramNameSuffix;
     fHistTMDeltaR = new TH1F(histname.Data(), "#Delta R for calorimeter clusters", 200, 0, 50);
 
 }
 
 void AliAnalysisEt::FillHistograms()
-{
+{ // fill histograms..
     fHistEt->Fill(fTotEt);
     fHistChargedEt->Fill(fTotChargedEt);
     fHistNeutralEt->Fill(fTotNeutralEt);
@@ -235,61 +299,96 @@ void AliAnalysisEt::FillHistograms()
 
     fHistTMDeltaR;
     */
+    fHistProtonEt->Fill(fProtonEt);
+    fHistChargedKaonEt->Fill(fChargedKaonEt);
+    fHistMuonEt->Fill(fMuonEt);
+    fHistElectronEt->Fill(fElectronEt);
+    
+    fHistProtonEtAcc->Fill(fProtonEtAcc);
+    fHistChargedKaonEtAcc->Fill(fChargedKaonEtAcc);
+    fHistMuonEtAcc->Fill(fMuonEtAcc);
+    fHistElectronEtAcc->Fill(fElectronEtAcc);
 }
+
 Int_t AliAnalysisEt::AnalyseEvent(AliVEvent *event)
-{
-  //this line is basically here to eliminate a compiler warning that event is not used.  Making it a virtual function did not work with the plugin.
-  cout<<"This event has "<<event->GetNumberOfTracks()<<" tracks"<<endl;
+{ //this line is basically here to eliminate a compiler warning that event is not used.  Making it a virtual function did not work with the plugin.
+  cout << "This event has " << event->GetNumberOfTracks() << " tracks" << endl;
+  ResetEventValues();
   return 0;
 }
 
 void AliAnalysisEt::ResetEventValues()
-{
-    fTotEt = 0;
-    fTotEtAcc = 0;
-    fTotNeutralEt = 0;
-    fTotNeutralEtAcc = 0;
-    fTotChargedEt  = 0;
-    fTotChargedEtAcc = 0;
-    fMultiplicity = 0;
-    fChargedMultiplicity = 0;
-    fNeutralMultiplicity = 0;
-
-    if(!fPdgDB) fPdgDB = new TDatabasePDG();
-
-    if(PiPlusCode==0){
+{ // clear
+  fTotEt = 0;
+  fTotEtAcc = 0;
+  fTotNeutralEt = 0;
+  fTotNeutralEtAcc = 0;
+  fTotChargedEt  = 0;
+  fTotChargedEtAcc = 0;
+  fMultiplicity = 0;
+  fChargedMultiplicity = 0;
+  fNeutralMultiplicity = 0;
+  fBaryonEt = 0;
+  fAntiBaryonEt = 0;
+  fMesonEt = 0;
+  fBaryonEtAcc = 0;
+  fAntiBaryonEtAcc = 0;
+  fMesonEtAcc = 0;
+  fProtonEt = 0;
+  fChargedKaonEt = 0;
+  fMuonEt = 0;
+  fElectronEt = 0;
+  fProtonEtAcc = 0;
+  fChargedKaonEtAcc = 0;
+  fMuonEtAcc = 0;
+    
+  if (!fCuts || !fPdgDB || fPiPlusCode==0) { // some Init's needed
+    cout << __FILE__ << ":" << __LINE__ << " : Init " << endl;
+    if (!fCuts) {
+      cout << " setting up Cuts " << endl;
+      fCuts = new AliAnalysisEtCuts();
+    }
+    if(!fPdgDB) {
+      cout << " setting up PdgDB " << endl;
+      fPdgDB = new TDatabasePDG();
+    }
+    
+    if (fPiPlusCode==0) {
       SetParticleCodes();
     }
+  }
+  return;
 }
 
+
 void AliAnalysisEt::SetParticleCodes()
-{     
-  PionMass = fPdgDB->GetParticle("pi+")->Mass();
-  PiPlusCode = fPdgDB->GetParticle("pi+")->PdgCode();
-  PiMinusCode = fPdgDB->GetParticle("pi-")->PdgCode();
-  KPlusCode = fPdgDB->GetParticle("K+")->PdgCode();
-  KMinusCode = fPdgDB->GetParticle("K-")->PdgCode();
-  ProtonCode = fPdgDB->GetParticle("proton")->PdgCode();
-  AntiProtonCode = fPdgDB->GetParticle("antiproton")->PdgCode();
-  LambdaCode = fPdgDB->GetParticle("Lambda0")->PdgCode();
-  AntiLambdaCode = fPdgDB->GetParticle("Lambda0_bar")->PdgCode();
-  K0SCode = fPdgDB->GetParticle("K_S0")->PdgCode();
-  OmegaCode = fPdgDB->GetParticle("Omega-")->PdgCode();
-  AntiOmegaCode = fPdgDB->GetParticle("Omega+")->PdgCode();
-  Xi0Code = fPdgDB->GetParticle("Xi0")->PdgCode();
-  AntiXi0Code = fPdgDB->GetParticle("Xi0_bar")->PdgCode();
-  XiCode = fPdgDB->GetParticle("Xi-")->PdgCode();
-  AntiXiCode = fPdgDB->GetParticle("Xi-_bar")->PdgCode();
-  SigmaCode = fPdgDB->GetParticle("Sigma-")->PdgCode();
-  AntiSigmaCode = fPdgDB->GetParticle("Sigma+")->PdgCode();
-  K0LCode = fPdgDB->GetParticle("K_L0")->PdgCode();
-  NeutronCode = fPdgDB->GetParticle("neutron")->PdgCode();
-  AntiNeutronCode = fPdgDB->GetParticle("antineutron")->PdgCode();
-  EPlusCode = fPdgDB->GetParticle("e+")->PdgCode();
-  EMinusCode = fPdgDB->GetParticle("e-")->PdgCode();
-  cout << "Resetting Codes: Pion " << PiPlusCode
-       << "," << PiMinusCode 
-       << " Kaon " << KPlusCode 
-       << "," << KMinusCode << endl;
+{ // set PDG info    
+  fPionMass = fPdgDB->GetParticle("pi+")->Mass();
+  fPiPlusCode = fPdgDB->GetParticle("pi+")->PdgCode();
+  fPiMinusCode = fPdgDB->GetParticle("pi-")->PdgCode();
+  fKPlusCode = fPdgDB->GetParticle("K+")->PdgCode();
+  fKMinusCode = fPdgDB->GetParticle("K-")->PdgCode();
+  fProtonCode = fPdgDB->GetParticle("proton")->PdgCode();
+  fAntiProtonCode = fPdgDB->GetParticle("antiproton")->PdgCode();
+  fLambdaCode = fPdgDB->GetParticle("Lambda0")->PdgCode();
+  fAntiLambdaCode = fPdgDB->GetParticle("Lambda0_bar")->PdgCode();
+  fK0SCode = fPdgDB->GetParticle("K_S0")->PdgCode();
+  fOmegaCode = fPdgDB->GetParticle("Omega-")->PdgCode();
+  fAntiOmegaCode = fPdgDB->GetParticle("Omega+")->PdgCode();
+  fXi0Code = fPdgDB->GetParticle("Xi0")->PdgCode();
+  fAntiXi0Code = fPdgDB->GetParticle("Xi0_bar")->PdgCode();
+  fXiCode = fPdgDB->GetParticle("Xi-")->PdgCode();
+  fAntiXiCode = fPdgDB->GetParticle("Xi-_bar")->PdgCode();
+  fSigmaCode = fPdgDB->GetParticle("Sigma-")->PdgCode();
+  fAntiSigmaCode = fPdgDB->GetParticle("Sigma+")->PdgCode();
+  fK0LCode = fPdgDB->GetParticle("K_L0")->PdgCode();
+  fNeutronCode = fPdgDB->GetParticle("neutron")->PdgCode();
+  fAntiNeutronCode = fPdgDB->GetParticle("antineutron")->PdgCode();
+  fEPlusCode = fPdgDB->GetParticle("e+")->PdgCode();
+  fEMinusCode = fPdgDB->GetParticle("e-")->PdgCode();
+  cout << "Resetting Codes: Pion " << fPiPlusCode
+       << "," << fPiMinusCode 
+       << " Kaon " << fKPlusCode 
+       << "," << fKMinusCode << endl;
 }