]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
Changing particle codes and masses to static variables, fixing a bug in the backgroun...
authorcnattras <cnattras@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 13 Oct 2010 03:01:01 +0000 (03:01 +0000)
committercnattras <cnattras@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 13 Oct 2010 03:01:01 +0000 (03:01 +0000)
PWG4/totEt/AliAnalysisHadEt.cxx
PWG4/totEt/AliAnalysisHadEt.h
PWG4/totEt/AliAnalysisHadEtCorrections.h
PWG4/totEt/AliAnalysisHadEtMonteCarlo.cxx
PWG4/totEt/AliAnalysisHadEtMonteCarlo.h
PWG4/totEt/AliAnalysisHadEtReconstructed.cxx
PWG4/totEt/AliAnalysisHadEtReconstructed.h
PWG4/totEt/AliAnalysisTaskHadEt.cxx

index 36ca3e9b7085629f5e617b93348489f02d330fd9..09fa8eba3237fa9872095075c3d68f6ce7694ff9 100644 (file)
 #include "TDatabasePDG.h"
 #include "TParticle.h"
 #include "Rtypes.h"
+#include "AliPDG.h"
 
 using namespace std;
 
 ClassImp(AliAnalysisHadEt);
+//These are from the PDG database but by making them static the code is a bit more efficient and has no problems running with the plugin
+Float_t AliAnalysisHadEt::fgPionMass = 0.13957;
+Float_t AliAnalysisHadEt::fgKaonMass = 0.493677;
+Float_t AliAnalysisHadEt::fgProtonMass = 0.938272;
+Float_t AliAnalysisHadEt::fgElectronMass = 0.000510999;
+Int_t AliAnalysisHadEt::fgPiPlusCode = 211;
+Int_t AliAnalysisHadEt::fgPiMinusCode = -211;
+Int_t AliAnalysisHadEt::fgKPlusCode = 321;
+Int_t AliAnalysisHadEt::fgKMinusCode = -321;
+Int_t AliAnalysisHadEt::fgProtonCode = 2212;
+Int_t AliAnalysisHadEt::fgAntiProtonCode = -2212;
+Int_t AliAnalysisHadEt::fgLambdaCode = 3122;
+Int_t AliAnalysisHadEt::fgAntiLambdaCode = -3122;
+Int_t AliAnalysisHadEt::fgK0SCode = 310;
+Int_t AliAnalysisHadEt::fgOmegaCode = 3334;
+Int_t AliAnalysisHadEt::fgAntiOmegaCode = -3334;
+Int_t AliAnalysisHadEt::fgXi0Code = 3322;
+Int_t AliAnalysisHadEt::fgAntiXi0Code = -3322;
+Int_t AliAnalysisHadEt::fgXiCode = 3312;
+Int_t AliAnalysisHadEt::fgAntiXiCode = -3312;
+Int_t AliAnalysisHadEt::fgSigmaCode = 3112;
+Int_t AliAnalysisHadEt::fgAntiSigmaCode = -3112;
+Int_t AliAnalysisHadEt::fgK0LCode = 130;
+Int_t AliAnalysisHadEt::fgNeutronCode = 2112;
+Int_t AliAnalysisHadEt::fgAntiNeutronCode = -2112;
+Int_t AliAnalysisHadEt::fgEPlusCode = -11;
+Int_t AliAnalysisHadEt::fgEMinusCode = 11;
+Int_t AliAnalysisHadEt::fgGammaCode = 22;
+Int_t AliAnalysisHadEt::fgPi0Code = 111;
+Int_t AliAnalysisHadEt::fgEtaCode = 221;
+Int_t AliAnalysisHadEt::fgOmega0Code = 223;
 
 
-Int_t AliAnalysisHadEt::fgnumOfEtaBins = 46;
-Float_t AliAnalysisHadEt::fgEtaAxis[47]={-0.78, -0.74, -0.7, -0.66, -0.62, -0.58, -0.54, -0.5, -0.46, -0.42, -0.38, -0.34, -0.3, -0.26, -0.22, -0.18, -0.14, -0.12, -0.1, -0.08, -0.06, -0.04, -0.02, -0.0, 0.02, 0.04, 0.06, 0.08, 0.1, 0.12, 0.14, 0.18, 0.22, 0.26, 0.3, 0.34, 0.38, 0.42, 0.46, 0.5, 0.54, 0.58, 0.62, 0.66, 0.7, 0.74, 0.78};
+// Int_t AliAnalysisHadEt::fgnumOfEtaBins = 46;
+// Float_t AliAnalysisHadEt::fgEtaAxis[47]={-0.78, -0.74, -0.7, -0.66, -0.62, -0.58, -0.54, -0.5, -0.46, -0.42, -0.38, -0.34, -0.3, -0.26, -0.22, -0.18, -0.14, -0.12, -0.1, -0.08, -0.06, -0.04, -0.02, -0.0, 0.02, 0.04, 0.06, 0.08, 0.1, 0.12, 0.14, 0.18, 0.22, 0.26, 0.3, 0.34, 0.38, 0.42, 0.46, 0.5, 0.54, 0.58, 0.62, 0.66, 0.7, 0.74, 0.78};
+//reduction in the number of bins
+Int_t AliAnalysisHadEt::fgnumOfEtaBins = 16;
+Float_t AliAnalysisHadEt::fgEtaAxis[17]={-0.78, -0.7, -0.58, -0.46, -0.34, -0.22, -0.12, -0.06, -0.0, 0.06, 0.12, 0.22, 0.34, 0.46, 0.58, 0.7, 0.78};
 Int_t AliAnalysisHadEt::fgNumOfPtBins = 111;
 Float_t AliAnalysisHadEt::fgPtAxis[117]=
   {0.0,0.01,0.02,0.03,0.04, 0.05, 0.06,0.07,0.08,0.09, 0.10,0.11, .12,0.13, .14,0.15, .16,0.17, .18,0.19,
@@ -48,37 +83,6 @@ Float_t AliAnalysisHadEt::fgPtITSCutOff = 0.10;
 AliAnalysisHadEt::AliAnalysisHadEt() :
         fHistogramNameSuffix("")
        ,fCuts(0)
-        ,fPdgDB(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)
-       ,fGammaCode(0)
-       ,fPi0Code(0)
-       ,fEtaCode(0)
-       ,fOmega0Code(0)
-        ,fPionMass(0)
-        ,fKaonMass(0)
-        ,fProtonMass(0)
-        ,fElectronMass(0)
        ,fSumEt(0)
        ,fSumEtAcc(0)
        ,fTotEt(0)
@@ -101,16 +105,9 @@ AliAnalysisHadEt::AliAnalysisHadEt() :
 AliAnalysisHadEt::~AliAnalysisHadEt()
 {//destructor
   delete fCuts;
-  delete fPdgDB;
   delete fEsdtrackCutsITSTPC;
   delete fEsdtrackCutsITS;
   delete fEsdtrackCutsTPC;
-  //histoList doesn't really belong to this class - it's passed in
-  //fhistoList->Clear();
-  //delete fhistoList;
-  //constants don't get deleted
-  //delete [] fgEtaAxis;
-  //delete [] fgPtAxis;
 }
 
 Int_t AliAnalysisHadEt::AnalyseEvent(AliVEvent *event)
@@ -126,7 +123,6 @@ void AliAnalysisHadEt::FillOutputList()
 
 void AliAnalysisHadEt::Init()
 {// clear variables, set up cuts and PDG info
-  ResetEventValues();
 
 }
 
@@ -150,64 +146,17 @@ void AliAnalysisHadEt::ResetEventValues()
   fChargedMultiplicity = 0;
   fNeutralMultiplicity = 0;
   
-  if (!fCuts || !fPdgDB || fPiPlusCode==0) { // some Init's needed
+  if (!fCuts) { // 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();
-    }
   }
 }
 
 void AliAnalysisHadEt::SetParticleCodes()
 {  //the codes are defined in $ROOTSYS/etc/pdg_table.txt
-    fPionMass = fPdgDB->GetParticle("pi+")->Mass();
-    fKaonMass = fPdgDB->GetParticle("K+")->Mass();
-    fProtonMass = fPdgDB->GetParticle("proton")->Mass();
-    fElectronMass = fPdgDB->GetParticle("e+")->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();
-    fGammaCode =  fPdgDB->GetParticle("gamma")->PdgCode();
-    fPi0Code =  fPdgDB->GetParticle("pi0")->PdgCode();
-    fEtaCode =  fPdgDB->GetParticle("eta")->PdgCode();
-    fOmega0Code =  fPdgDB->GetParticle("omega")->PdgCode();
-    cout << "Resetting Codes: Pion " << fPiPlusCode
-        << "," << fPiMinusCode 
-        << " Kaon " << fKPlusCode 
-        << "," << fKMinusCode 
-        << " Gamma "<<fGammaCode
-        << " Pi0 "<<fPi0Code
-        << " Eta "<<fEtaCode
-        << " omega "<<fOmega0Code
-        << endl;
 }
 
 void AliAnalysisHadEt::CreateEtaPtHisto2D(TString name, TString title)
@@ -217,7 +166,6 @@ void AliAnalysisHadEt::CreateEtaPtHisto2D(TString name, TString title)
 
   histoname->Append(name);
   histotitle->Append(title);
-  //TH2F *h1 = new TH2F("h1", "Histogram with Gaussian random distribution", fgNumOfPtBins, ptBinsArray, fgnumOfEtaBins, etaBinsArray);
 
   TH2F *histo = new TH2F(histoname->Data(),histotitle->Data(),fgNumOfPtBins, fgPtAxis, fgnumOfEtaBins, fgEtaAxis);
   histo->SetYTitle("#eta");
@@ -234,12 +182,8 @@ void AliAnalysisHadEt::CreateHisto1D(TString name, TString title, TString xtitle
 {     //creates a 1d histogram of the given dimensions and adds it to the list of histograms to be saved
   TString *histoname   = new TString();
   TString *histotitle   = new TString();
-  
-  //cout<<"creating "<<name<<endl;
-
   histoname->Append(name);
   histotitle->Append(title);
-  // printf("%s \n ",histoname->Data());
   TH1F *histo = new TH1F(histoname->Data(),histotitle->Data(),xbins,xlow,xhigh);
   histo->SetYTitle(ytitle);
   histo->SetXTitle(xtitle);
@@ -247,18 +191,13 @@ void AliAnalysisHadEt::CreateHisto1D(TString name, TString title, TString xtitle
   fhistoList->Add(histo);
   delete histoname;
   delete histotitle;
-    
 }
 void AliAnalysisHadEt::CreateIntHisto1D(TString name, TString title, TString xtitle, TString ytitle,Int_t xbins, Int_t xlow,Int_t xhigh)
 {     //creates a 1d integer histogram and adds it to the list of histograms to be saved
   TString *histoname   = new TString();
   TString *histotitle   = new TString();
-  
-  //cout<<"creating "<<name<<endl;
-
   histoname->Append(name);
   histotitle->Append(title);
-  // printf("%s \n ",histoname->Data());
   TH1I *histo = new TH1I(histoname->Data(),histotitle->Data(),xbins,xlow,xhigh);
   histo->SetYTitle(ytitle);
   histo->SetXTitle(xtitle);
@@ -272,12 +211,8 @@ void AliAnalysisHadEt::CreateHisto2D(TString name, TString title, TString xtitle
 {     //creates a 2d histogram and adds it to the list of histograms to be saved
   TString *histoname   = new TString();
   TString *histotitle   = new TString();
-  
-  //cout<<"creating "<<name<<endl;
-
   histoname->Append(name);
   histotitle->Append(title);
-  // printf("%s \n ",histoname->Data());
   TH2F *histo = new TH2F(histoname->Data(),histotitle->Data(),xbins,xlow,xhigh,ybins,ylow,yhigh);
   histo->SetYTitle(ytitle);
   histo->SetXTitle(xtitle);
@@ -291,12 +226,8 @@ void AliAnalysisHadEt::CreateIntHisto2D(TString name, TString title, TString xti
 {     //creates a 2-d integer histogram and adds it to the list of histograms to be saved
   TString *histoname   = new TString();
   TString *histotitle   = new TString();
-  
-  //cout<<"creating "<<name<<endl;
-
   histoname->Append(name);
   histotitle->Append(title);
-  // printf("%s \n ",histoname->Data());
   TH2I *histo = new TH2I(histoname->Data(),histotitle->Data(),xbins,xlow,xhigh,ybins,ylow,yhigh);
   histo->SetYTitle(ytitle);
   histo->SetXTitle(xtitle);
@@ -311,8 +242,6 @@ void AliAnalysisHadEt::CreateEtaHisto1D(TString name, TString title)
 {     //creates 1d histogram in eta and adds it to the list of histograms to be saved
   TString *histoname   = new TString();
   TString *histotitle   = new TString();
-  
-
   histoname->Append(name);
   histotitle->Append(title);
   TH1F *histo = new TH1F(histoname->Data(),histotitle->Data(),fgnumOfEtaBins, fgEtaAxis);
@@ -322,13 +251,11 @@ void AliAnalysisHadEt::CreateEtaHisto1D(TString name, TString title)
   fhistoList->Add(histo);
   delete histoname;
   delete histotitle;
-    
 }
 void AliAnalysisHadEt::FillHisto1D(TString histname, Float_t x, Float_t weight)
 {//fills a 1d histogram with the name histoname with the value x and the weight "weight"
   TH1F     *histo; 
   TString  *name   = new TString();
-
   name->Append(histname);       
   histo = (TH1F *)fhistoList->FindObject(name->Data()); 
   if(histo){
@@ -341,7 +268,6 @@ void AliAnalysisHadEt::FillHisto2D(TString histname, Float_t x, Float_t y, Float
 {//fills a 2d histogram with the name histoname with the value x and the weight "weight"
   TH2F     *histo; 
   TString  *name   = new TString();
-  
   name->Append(histname);       
   histo = (TH2F *)fhistoList->FindObject(name->Data()); 
   if(histo){
@@ -374,21 +300,21 @@ Float_t AliAnalysisHadEt::Et(TParticle *part, float mass){//function to calculat
   return 0.0;
 }
 Float_t AliAnalysisHadEt::Et(Float_t p, Float_t theta, Int_t pid, Short_t charge) const {//function to calculate et in the same way as it would be calculated in a calorimeter
-  if(pid==fPiPlusCode || pid==fPiMinusCode){//Nothing special for pions
-    return TMath::Sqrt(p*p + fPionMass*fPionMass) * TMath::Sin(theta);
+  if(pid==fgPiPlusCode || pid==fgPiMinusCode){//Nothing special for pions
+    return TMath::Sqrt(p*p + fgPionMass*fgPionMass) * TMath::Sin(theta);
   }
-  if(pid==fKPlusCode || pid==fKMinusCode){//Nothing special for kaons
-    return TMath::Sqrt(p*p + fKaonMass*fKaonMass) * TMath::Sin(theta);
+  if(pid==fgKPlusCode || pid==fgKMinusCode){//Nothing special for kaons
+    return TMath::Sqrt(p*p + fgKaonMass*fgKaonMass) * TMath::Sin(theta);
   }
-  if(pid==fEPlusCode || pid==fEMinusCode){//Nothing special for electrons
-    return TMath::Sqrt(p*p + fElectronMass*fElectronMass) * TMath::Sin(theta);
+  if(pid==fgEPlusCode || pid==fgEMinusCode){//Nothing special for electrons
+    return TMath::Sqrt(p*p + fgElectronMass*fgElectronMass) * TMath::Sin(theta);
   }
-  if(pid==fProtonCode || pid==fAntiProtonCode){//But for protons we must be careful...
+  if(pid==fgProtonCode || pid==fgAntiProtonCode){//But for protons we must be careful...
     if(charge<0.0){//antiprotns: kinetic energy plus twice the rest mass
-      return (TMath::Sqrt(p*p + fProtonMass*fProtonMass) + fProtonMass) * TMath::Sin(theta);
+      return (TMath::Sqrt(p*p + fgProtonMass*fgProtonMass) + fgProtonMass) * TMath::Sin(theta);
     }
     if(charge>0.0){//antiprotns: kinetic energy only
-      return (TMath::Sqrt(p*p + fProtonMass*fProtonMass) - fProtonMass) * TMath::Sin(theta);
+      return (TMath::Sqrt(p*p + fgProtonMass*fgProtonMass) - fgProtonMass) * TMath::Sin(theta);
     }
   }
   cerr<<"Uh-oh!  Et not set properly!"<<endl;
index 2c88138f2b536cde476bf2bb2623483bf095f982..ba28726a2e254d2d45db25d455dbf9d07096fd8f 100644 (file)
@@ -94,38 +94,38 @@ protected:
     AliAnalysisEtCuts *fCuts; // keeper of basic cuts
 
     /** PDG Database */
-    TDatabasePDG *fPdgDB;//data base used for looking up pdg codes
+    //TDatabasePDG *fPdgDB;//data base used for looking up pdg codes
     //these codes are stored as variables because otherwise there were issues using this with the plugin
-    Int_t fPiPlusCode;//pdg pi plus code
-    Int_t fPiMinusCode;//pdg pi minus code
-    Int_t fKPlusCode;// pdg k plus code
-    Int_t fKMinusCode;//pdg k minus code
-    Int_t fProtonCode;//pdg proton code
-    Int_t fAntiProtonCode;//pdg antiproton code
-    Int_t fLambdaCode;// pdg lambda code
-    Int_t fAntiLambdaCode;//pdg antilambda code
-    Int_t fK0SCode;//pdg k0 short code
-    Int_t fOmegaCode;//pdg omega code
-    Int_t fAntiOmegaCode;//pdg anti-omega code
-    Int_t fXi0Code;//pdg xi-0 code
-    Int_t fAntiXi0Code;//pdg anti-xi0 code
-    Int_t fXiCode;//pdg xi code
-    Int_t fAntiXiCode;//pdg anti-xi code
-    Int_t fSigmaCode;//pdg sigma code
-    Int_t fAntiSigmaCode;//pdg anti-sigma code
-    Int_t fK0LCode;//pdg k0 long code
-    Int_t fNeutronCode;//pdg neutron code
-    Int_t fAntiNeutronCode;//pdg anti-neutron code
-    Int_t fEPlusCode;//pdg positron code
-    Int_t fEMinusCode;//pdg electron code
-    Int_t fGammaCode;//pdg gamma code
-    Int_t fPi0Code;//pdg neutral pion code
-    Int_t fEtaCode;//pdg eta code
-    Int_t fOmega0Code;//pdg eta code
-    Float_t fPionMass;//pdg pion mass
-    Float_t fKaonMass;//pdg kaon mass
-    Float_t fProtonMass;//pdg proton mass
-    Float_t fElectronMass;//pdg electron mass
+    static Int_t fgPiPlusCode;//pdg pi plus code
+    static Int_t fgPiMinusCode;//pdg pi minus code
+    static Int_t fgKPlusCode;// pdg k plus code
+    static Int_t fgKMinusCode;//pdg k minus code
+    static Int_t fgProtonCode;//pdg proton code
+    static Int_t fgAntiProtonCode;//pdg antiproton code
+    static Int_t fgLambdaCode;// pdg lambda code
+    static Int_t fgAntiLambdaCode;//pdg antilambda code
+    static Int_t fgK0SCode;//pdg k0 short code
+    static Int_t fgOmegaCode;//pdg omega code
+    static Int_t fgAntiOmegaCode;//pdg anti-omega code
+    static Int_t fgXi0Code;//pdg xi-0 code
+    static Int_t fgAntiXi0Code;//pdg anti-xi0 code
+    static Int_t fgXiCode;//pdg xi code
+    static Int_t fgAntiXiCode;//pdg anti-xi code
+    static Int_t fgSigmaCode;//pdg sigma code
+    static Int_t fgAntiSigmaCode;//pdg anti-sigma code
+    static Int_t fgK0LCode;//pdg k0 long code
+    static Int_t fgNeutronCode;//pdg neutron code
+    static Int_t fgAntiNeutronCode;//pdg anti-neutron code
+    static Int_t fgEPlusCode;//pdg positron code
+    static Int_t fgEMinusCode;//pdg electron code
+    static Int_t fgGammaCode;//pdg gamma code
+    static Int_t fgPi0Code;//pdg neutral pion code
+    static Int_t fgEtaCode;//pdg eta code
+    static Int_t fgOmega0Code;//pdg eta code
+    static Float_t fgPionMass;//pdg pion mass
+    static Float_t fgKaonMass;//pdg kaon mass
+    static Float_t fgProtonMass;//pdg proton mass
+    static Float_t fgElectronMass;//pdg electron mass
 
     
     Double_t fSumEt;/** Sum of the total Et for all events */
@@ -158,7 +158,8 @@ protected:
     AliESDtrackCuts* fEsdtrackCutsITS;//esd track cuts for ITS stand alone tracks
 
     TList *fhistoList;//list of histograms saved out to file
-    static Float_t fgEtaAxis[47];//bins for eta axis of histograms
+    //static Float_t fgEtaAxis[47];//bins for eta axis of histograms
+    static Float_t fgEtaAxis[17];//bins for eta axis of histograms
     static Int_t fgnumOfEtaBins;//number of eta bins
     static Float_t fgPtAxis[117];//bins for pt axis of histograms
     static Int_t fgNumOfPtBins;//number of pt bins
index 1c383f4c71296e4e04cd7f1268336a35eea6b5e3..db71a0d7ca220473bb7f1a944a96b4d80efcf2c9 100644 (file)
@@ -66,8 +66,8 @@ public:
     Float_t GetITSEfficiencyCorrectionProton(const float pT);
     Float_t GetITSEfficiencyCorrectionHadron(const float pT);
     //...and these guys are too
-    Float_t GetBackgroundCorrectionTPC(const float pT){return 1.0/(1.0-fBackgroundTPC->GetBinContent(fBackgroundTPC->FindBin(pT)));}
-    Float_t GetBackgroundCorrectionITS(const float pT){return 1.0/(1.0-fBackgroundITS->GetBinContent(fBackgroundITS->FindBin(pT)));}
+    Float_t GetBackgroundCorrectionTPC(const float pT){return (1.0-fBackgroundTPC->GetBinContent(fBackgroundTPC->FindBin(pT)));}
+    Float_t GetBackgroundCorrectionITS(const float pT){return (1.0-fBackgroundITS->GetBinContent(fBackgroundITS->FindBin(pT)));}
 
 
     void SetEtaCut(const Float_t val){fEtaCut=val;}
index e7efb1ba5255d06ce31868617d0951ef10aa23d1..25db7d5b480d37977398505fdf9b8bb72f3110ff 100644 (file)
 #include "AliESDEvent.h"
 #include "AliESDtrackCuts.h"
 #include "AliESDpid.h"
+#include "AliPID.h"
+#include "AliESDtrack.h"
+#include "AliVParticle.h"
+#include "AliAnalysisTask.h"
+#include "AliAnalysisManager.h"
+#include "AliAnalysisHadEtReconstructed.h"
+#include "AliAnalysisEtCuts.h"
 #include <iostream>
+#include "TRandom.h"
 
 using namespace std;
 
 ClassImp(AliAnalysisHadEtMonteCarlo);
 
+
+// Int_t AliAnalysisHadEtMonteCarlo::fgNumSmearWidths = 4;
+// Float_t AliAnalysisHadEtMonteCarlo::fgSmearWidths[4] = {0.005,0.006,0.007,0.008};
+
 AliAnalysisHadEtMonteCarlo::AliAnalysisHadEtMonteCarlo():AliAnalysisHadEt()
-                           ,fSimHadEt(0)
-                           ,fSimTotEt(0) 
+                                                     //,fSimPiKPEt(0)
+                                                       ,fSimHadEt(0)
+                                                       ,fSimTotEt(0) 
 {
+//   for(int i=0;i<fgNumSmearWidths;i++){
+//     //fSimPiKPEtSmeared[i] = 0.0;
+//   }
+}
+AliAnalysisHadEtMonteCarlo::~AliAnalysisHadEtMonteCarlo(){//destructor
+  //if(fSimPiKPEtSmeared) delete [] fSimPiKPEtSmeared;
 }
-void AliAnalysisHadEtMonteCarlo::ResetEventValues(){
+
+void AliAnalysisHadEtMonteCarlo::ResetEventValues(){//resetting event variables
   AliAnalysisHadEt::ResetEventValues();
     fSimHadEt=0.0;
     fSimTotEt=0.0;
+    //fSimPiKPEt=0.0;
 }
 Int_t AliAnalysisHadEtMonteCarlo::AnalyseEvent(AliVEvent* ev,AliVEvent* ev2)
 { // analyse MC and real event info
@@ -42,7 +63,7 @@ Int_t AliAnalysisHadEtMonteCarlo::AnalyseEvent(AliVEvent* ev,AliVEvent* ev2)
 
   //for PID
   AliESDpid *pID = new AliESDpid();
-  pID->MakePID(realEvent);
+  //pID->MakePID(realEvent);
 
   //This code taken from https://twiki.cern.ch/twiki/bin/view/ALICE/SelectionOfPrimaryTracksForPp2009DataAnalysis
   //Gets good tracks
@@ -69,7 +90,7 @@ Int_t AliAnalysisHadEtMonteCarlo::AnalyseEvent(AliVEvent* ev,AliVEvent* ev2)
   TString *strTPC = new TString("TPC");
   TString *strITS = new TString("ITS");
   TString *strTPCITS = new TString("TPCITS");
-  for(Int_t cutset=0;cutset<3;cutset++){
+  for(Int_t cutset=0;cutset<2;cutset++){
     TString *cutName;
     TObjArray* list;
     switch(cutset){
@@ -100,6 +121,8 @@ Int_t AliAnalysisHadEtMonteCarlo::AnalyseEvent(AliVEvent* ev,AliVEvent* ev2)
          }
        else{
          Float_t nSigmaPion,nSigmaProton,nSigmaKaon,nSigmaElectron;
+           pID->MakeTPCPID(track);
+           pID->MakeITSPID(track);
          if(cutset!=1){
            nSigmaPion = TMath::Abs(pID->NumberOfSigmasTPC(track,AliPID::kPion));
            nSigmaProton = TMath::Abs(pID->NumberOfSigmasTPC(track,AliPID::kProton));
@@ -137,21 +160,21 @@ Int_t AliAnalysisHadEtMonteCarlo::AnalyseEvent(AliVEvent* ev,AliVEvent* ev2)
 
                Int_t pdgCode =  simPart->GetPDG(0)->PdgCode();
                Int_t mypid = 0;
-               if(pdgCode==fPiPlusCode) mypid = 1;
-               if(pdgCode==fProtonCode) mypid = 2;
-               if(pdgCode==fKPlusCode) mypid = 3;
-               if(pdgCode==fEPlusCode) mypid = 4;
-               if(pdgCode==fPiMinusCode) mypid = 1;
-               if(pdgCode==fAntiProtonCode) mypid = 2;
-               if(pdgCode==fKMinusCode) mypid = 3;
-               if(pdgCode==fEMinusCode) mypid = 4;
+               if(pdgCode==fgPiPlusCode) mypid = 1;
+               if(pdgCode==fgProtonCode) mypid = 2;
+               if(pdgCode==fgKPlusCode) mypid = 3;
+               if(pdgCode==fgEPlusCode) mypid = 4;
+               if(pdgCode==fgPiMinusCode) mypid = 1;
+               if(pdgCode==fgAntiProtonCode) mypid = 2;
+               if(pdgCode==fgKMinusCode) mypid = 3;
+               if(pdgCode==fgEMinusCode) mypid = 4;
                //cout<<pdgCode->PdgCode()<<" ";
                //fPdgDB->GetSimParticle("pi+")->PdgCode();
                bool filled = false;      
                //============Charged hadrons===================================
                //identified...
                if(isPion){
-                 if(pdgCode!=fPiPlusCode && pdgCode!=fPiMinusCode){
+                 if(pdgCode!=fgPiPlusCode && pdgCode!=fgPiMinusCode){
                    FillHisto2D(Form("MisidentifiedPIDs%s",cutName->Data()),1,mypid,1);
                    //if(mypid==0)cerr<<"I was misidentified! I'm not a pion! I am a "<<simPart->GetName()<<endl;
                  }
@@ -161,7 +184,7 @@ Int_t AliAnalysisHadEtMonteCarlo::AnalyseEvent(AliVEvent* ev,AliVEvent* ev2)
                  FillHisto2D(Form("dEdxPion%s",cutName->Data()),track->P(),dEdx,1.0);
                }
                if(isProton){
-                 if(pdgCode!=fProtonCode && pdgCode!=fAntiProtonCode){
+                 if(pdgCode!=fgProtonCode && pdgCode!=fgAntiProtonCode){
                    FillHisto2D(Form("MisidentifiedPIDs%s",cutName->Data()),2,mypid,1);
                    // if(mypid==0)cerr<<"I was misidentified!  I'm not a proton! I am a "<<simPart->GetName()<<endl;
                  }
@@ -171,7 +194,7 @@ Int_t AliAnalysisHadEtMonteCarlo::AnalyseEvent(AliVEvent* ev,AliVEvent* ev2)
                  FillHisto2D(Form("dEdxProton%s",cutName->Data()),track->P(),dEdx,1.0);
                }
                if(isKaon){
-                 if(pdgCode!=fKMinusCode && pdgCode!=fKPlusCode){
+                 if(pdgCode!=fgKMinusCode && pdgCode!=fgKPlusCode){
                    FillHisto2D(Form("MisidentifiedPIDs%s",cutName->Data()),3,mypid,1);
                    //if(mypid==0)cerr<<"I was misidentified!  I'm not a kaon! I am a "<<simPart->GetName()<<" p "<<track->P()<<" nSigmaProton "<<nSigmaProton<<" nSigmaPion "<<nSigmaPion<<" nSigmaKaon "<<nSigmaKaon<<endl;
                  }
@@ -181,7 +204,7 @@ Int_t AliAnalysisHadEtMonteCarlo::AnalyseEvent(AliVEvent* ev,AliVEvent* ev2)
                  FillHisto2D(Form("dEdxKaon%s",cutName->Data()),track->P(),dEdx,1.0);
                }
                if(isElectron){
-                 if(pdgCode!=fEMinusCode && pdgCode!=fEPlusCode){
+                 if(pdgCode!=fgEMinusCode && pdgCode!=fgEPlusCode){
                    FillHisto2D(Form("MisidentifiedPIDs%s",cutName->Data()),4,mypid,1);
                    //cerr<<"I was misidentified!  I'm not an electron! I am a "<<simPart->GetName()<<endl;
                  }
@@ -191,8 +214,8 @@ Int_t AliAnalysisHadEtMonteCarlo::AnalyseEvent(AliVEvent* ev,AliVEvent* ev2)
                  FillHisto2D(Form("dEdxElectron%s",cutName->Data()),track->P(),dEdx,1.0);
                }
                if(unidentified){
-                 if(pdgCode!=fEMinusCode && pdgCode!=fEPlusCode){
-                   float myEtPi = Et(simPart,fPionMass);
+                 if(pdgCode!=fgEMinusCode && pdgCode!=fgEPlusCode){
+                   float myEtPi = Et(simPart,fgPionMass);
                    float myEt = Et(simPart);
                    FillHisto2D(Form("EtReconstructed%sUnidentifiedAssumingPion",cutName->Data()),track->Pt(),track->Eta(),myEtPi);
                    FillHisto2D(Form("EtReconstructed%sUnidentified",cutName->Data()),track->Pt(),track->Eta(),myEt);
@@ -204,7 +227,7 @@ Int_t AliAnalysisHadEtMonteCarlo::AnalyseEvent(AliVEvent* ev,AliVEvent* ev2)
                  FillHisto1D(Form("UnidentifiedPIDs%s",cutName->Data()),mypid,1);
                }
                //...simulated
-               if(pdgCode == fPiPlusCode){
+               if(pdgCode == fgPiPlusCode){
                  //cout<<"I'm a real primary "<<simPart->GetName()<<"! "<<"my label is "<<simPart->GetFirstMother()<<" track no "<<iTrack<<"/"<<realEvent->GetNumberOfTracks()<<endl;//<<" "<<label<<" "<<pdgCode<<endl;
                
                  float myEt = Et(simPart);
@@ -215,7 +238,7 @@ Int_t AliAnalysisHadEtMonteCarlo::AnalyseEvent(AliVEvent* ev,AliVEvent* ev2)
                  FillHisto2D(Form("EtReconstructed%sChargedHadronAssumingPion",cutName->Data()),simPart->Pt(),simPart->Eta(),myEt);
                  filled = true;
                }
-               if(pdgCode == fPiMinusCode){
+               if(pdgCode == fgPiMinusCode){
                  float myEt = Et(simPart);
                  FillHisto2D(Form("EtReconstructed%sPiMinus",cutName->Data()),simPart->Pt(),simPart->Eta(),myEt);
                  FillHisto2D(Form("EtReconstructed%sChargedHadron",cutName->Data()),simPart->Pt(),simPart->Eta(),myEt);
@@ -224,9 +247,9 @@ Int_t AliAnalysisHadEtMonteCarlo::AnalyseEvent(AliVEvent* ev,AliVEvent* ev2)
                  FillHisto2D(Form("EtReconstructed%sChargedHadronAssumingPion",cutName->Data()),simPart->Pt(),simPart->Eta(),myEt);
                  filled = true;
                }
-               if(pdgCode == fKPlusCode){
+               if(pdgCode == fgKPlusCode){
                  float myEt = Et(simPart);
-                 float myEtPi = Et(simPart,fPionMass);
+                 float myEtPi = Et(simPart,fgPionMass);
                  FillHisto2D(Form("EtReconstructed%sKPlus",cutName->Data()),simPart->Pt(),simPart->Eta(),myEt);
                  FillHisto2D(Form("EtReconstructed%sChargedHadron",cutName->Data()),simPart->Pt(),simPart->Eta(),myEt);
                  FillHisto2D(Form("EtNReconstructed%sKPlus",cutName->Data()),simPart->Pt(),simPart->Eta(),myEt);
@@ -235,9 +258,9 @@ Int_t AliAnalysisHadEtMonteCarlo::AnalyseEvent(AliVEvent* ev,AliVEvent* ev2)
                  FillHisto2D(Form("EtReconstructed%sKPlusAssumingPion",cutName->Data()),simPart->Pt(),simPart->Eta(),myEtPi);
                  filled = true;
                }
-               if(pdgCode == fKMinusCode){
+               if(pdgCode == fgKMinusCode){
                  float myEt = Et(simPart);
-                 float myEtPi = Et(simPart,fPionMass);
+                 float myEtPi = Et(simPart,fgPionMass);
                  FillHisto2D(Form("EtReconstructed%sKMinus",cutName->Data()),simPart->Pt(),simPart->Eta(),myEt);
                  FillHisto2D(Form("EtReconstructed%sChargedHadron",cutName->Data()),simPart->Pt(),simPart->Eta(),myEt);
                  FillHisto2D(Form("EtNReconstructed%sKMinus",cutName->Data()),simPart->Pt(),simPart->Eta(),myEt);
@@ -246,9 +269,9 @@ Int_t AliAnalysisHadEtMonteCarlo::AnalyseEvent(AliVEvent* ev,AliVEvent* ev2)
                  FillHisto2D(Form("EtReconstructed%sKMinusAssumingPion",cutName->Data()),simPart->Pt(),simPart->Eta(),myEtPi);
                  filled = true;
                }
-               if(pdgCode == fProtonCode){
+               if(pdgCode == fgProtonCode){
                  float myEt = Et(simPart);
-                 float myEtPi = Et(simPart,fPionMass);
+                 float myEtPi = Et(simPart,fgPionMass);
                  FillHisto2D(Form("EtReconstructed%sProton",cutName->Data()),simPart->Pt(),simPart->Eta(),myEt);
                  FillHisto2D(Form("EtReconstructed%sChargedHadron",cutName->Data()),simPart->Pt(),simPart->Eta(),myEt);
                  FillHisto2D(Form("EtNReconstructed%sProton",cutName->Data()),simPart->Pt(),simPart->Eta(),myEt);
@@ -257,9 +280,9 @@ Int_t AliAnalysisHadEtMonteCarlo::AnalyseEvent(AliVEvent* ev,AliVEvent* ev2)
                  FillHisto2D(Form("EtReconstructed%sProtonAssumingPion",cutName->Data()),simPart->Pt(),simPart->Eta(),myEtPi);
                  filled = true;
                }
-               if(pdgCode == fAntiProtonCode){
+               if(pdgCode == fgAntiProtonCode){
                  float myEt = Et(simPart);
-                 float myEtPi = Et(simPart,fPionMass);
+                 float myEtPi = Et(simPart,fgPionMass);
                  FillHisto2D(Form("EtReconstructed%sAntiProton",cutName->Data()),simPart->Pt(),simPart->Eta(),myEt);
                  FillHisto2D(Form("EtReconstructed%sChargedHadron",cutName->Data()),simPart->Pt(),simPart->Eta(),myEt);
                  FillHisto2D(Form("EtNReconstructed%sAntiProton",cutName->Data()),simPart->Pt(),simPart->Eta(),myEt);
@@ -268,18 +291,18 @@ Int_t AliAnalysisHadEtMonteCarlo::AnalyseEvent(AliVEvent* ev,AliVEvent* ev2)
                  FillHisto2D(Form("EtReconstructed%sAntiProtonAssumingPion",cutName->Data()),simPart->Pt(),simPart->Eta(),myEtPi);
                  filled = true;
                }
-               if(pdgCode == fEPlusCode){
+               if(pdgCode == fgEPlusCode){
                  float myEt = Et(simPart);
                  FillHisto2D(Form("EtReconstructed%sEPlus",cutName->Data()),simPart->Pt(),simPart->Eta(),myEt);
                  if(!isElectron || unidentified){
-                   float myEtPi = Et(simPart,fPionMass);
+                   float myEtPi = Et(simPart,fgPionMass);
                    FillHisto2D(Form("EtReconstructed%sMisidentifiedElectrons",cutName->Data()),track->Pt(),track->Eta(),myEtPi);
                  }
                  filled = true;
                }
-               if(pdgCode == fEMinusCode){
+               if(pdgCode == fgEMinusCode){
                  if(!isElectron || unidentified){
-                   float myEtPi = Et(simPart,fPionMass);
+                   float myEtPi = Et(simPart,fgPionMass);
                    FillHisto2D(Form("EtReconstructed%sMisidentifiedElectrons",cutName->Data()),track->Pt(),track->Eta(),myEtPi);
                  }
                  float myEt = Et(simPart);
@@ -302,31 +325,31 @@ Int_t AliAnalysisHadEtMonteCarlo::AnalyseEvent(AliVEvent* ev,AliVEvent* ev2)
                TParticlePDG *pc = mom->GetPDG(0);
                if(pc){
                  Int_t pdgCode =  mom->GetPDG(0)->PdgCode();
-                 if(pdgCode == fLambdaCode){
+                 if(pdgCode == fgLambdaCode){
                    float myEt = Et(simPart);
                    FillHisto2D(Form("EtReconstructed%sLambdaDaughters",cutName->Data()),track->Pt(),track->Eta(),myEt);
                  }
-                 if(pdgCode == fAntiLambdaCode){
+                 if(pdgCode == fgAntiLambdaCode){
                    float myEt = Et(simPart);
                    FillHisto2D(Form("EtReconstructed%sAntiLambdaDaughters",cutName->Data()),track->Pt(),track->Eta(),myEt);
                  }
-                 if(pdgCode == fK0SCode){
+                 if(pdgCode == fgK0SCode){
                    float myEt = Et(simPart);
                    FillHisto2D(Form("EtReconstructed%sK0SDaughters",cutName->Data()),track->Pt(),track->Eta(),myEt);
                  }
-                 if(pdgCode == fXiCode){
+                 if(pdgCode == fgXiCode){
                    float myEt = Et(simPart);
                    FillHisto2D(Form("EtReconstructed%sXiDaughters",cutName->Data()),track->Pt(),track->Eta(),myEt);
                  }
-                 if(pdgCode == fAntiXiCode){
+                 if(pdgCode == fgAntiXiCode){
                    float myEt = Et(simPart);
                    FillHisto2D(Form("EtReconstructed%sAntiXiDaughters",cutName->Data()),track->Pt(),track->Eta(),myEt);
                  }
-                 if(pdgCode == fOmegaCode){
+                 if(pdgCode == fgOmegaCode){
                    float myEt = Et(simPart);
                    FillHisto2D(Form("EtReconstructed%sOmegaDaughters",cutName->Data()),track->Pt(),track->Eta(),myEt);
                  }
-                 if(pdgCode == fXiCode){
+                 if(pdgCode == fgXiCode){
                    float myEt = Et(simPart);
                    FillHisto2D(Form("EtReconstructed%sAntiOmegaDaughters",cutName->Data()),track->Pt(),track->Eta(),myEt);
                  }
@@ -335,23 +358,23 @@ Int_t AliAnalysisHadEtMonteCarlo::AnalyseEvent(AliVEvent* ev,AliVEvent* ev2)
                    TParticle *grandma = stack->Particle(mom->GetFirstMother());
                    if(grandma){
                      Int_t pdgCodeMom =  mom->GetPDG(0)->PdgCode();
-                     if(pdgCodeMom==fPiPlusCode || pdgCodeMom==fPiMinusCode || pdgCodeMom==fProtonCode ||pdgCodeMom==fAntiProtonCode || pdgCodeMom==fKPlusCode || pdgCode==fKMinusCode){
+                     if(pdgCodeMom==fgPiPlusCode || pdgCodeMom==fgPiMinusCode || pdgCodeMom==fgProtonCode ||pdgCodeMom==fgAntiProtonCode || pdgCodeMom==fgKPlusCode || pdgCode==fgKMinusCode){
                        //cout<<" my grandmother is "<<grandma->GetName()<<" "<<endl;
                        Int_t pdgCodeGrandma =  grandma->GetPDG(0)->PdgCode();
                      
-                       if(pdgCodeGrandma == fXiCode){
+                       if(pdgCodeGrandma == fgXiCode){
                          float myEt = Et(simPart);
                          FillHisto2D(Form("EtReconstructed%sXiDaughters",cutName->Data()),track->Pt(),track->Eta(),myEt);
                        }
-                       if(pdgCodeGrandma == fAntiXiCode){
+                       if(pdgCodeGrandma == fgAntiXiCode){
                          float myEt = Et(simPart);
                          FillHisto2D(Form("EtReconstructed%sAntiXiDaughters",cutName->Data()),track->Pt(),track->Eta(),myEt);
                        }
-                       if(pdgCodeGrandma == fOmegaCode){
+                       if(pdgCodeGrandma == fgOmegaCode){
                          float myEt = Et(simPart);
                          FillHisto2D(Form("EtReconstructed%sOmegaDaughters",cutName->Data()),track->Pt(),track->Eta(),myEt);
                        }
-                       if(pdgCodeGrandma == fXiCode){
+                       if(pdgCodeGrandma == fgXiCode){
                          float myEt = Et(simPart);
                          FillHisto2D(Form("EtReconstructed%sAntiOmegaDaughters",cutName->Data()),track->Pt(),track->Eta(),myEt);
                        }
@@ -387,6 +410,10 @@ Int_t AliAnalysisHadEtMonteCarlo::AnalyseEvent(AliVEvent* ev)
 
     Int_t nPrim = stack->GetNtrack();
 
+//     Float_t fSimPiKPEtSmeared[fgNumSmearWidths];
+//     for(int i=0;i<fgNumSmearWidths;i++){
+//       fSimPiKPEtSmeared[i] = 0.0;
+//     }
     //=================Tracks which may or may not have been reconstructed=================
 
     for (Int_t iPart = 0; iPart < nPrim; iPart++)
@@ -412,11 +439,19 @@ Int_t AliAnalysisHadEtMonteCarlo::AnalyseEvent(AliVEvent* ev)
            //fPdgDB->GetParticle("pi+")->PdgCode();
            bool filled = false;
            //============Charged hadrons===================================
-           if(pdgCode == fPiPlusCode){
+           if(pdgCode == fgPiPlusCode){
              //cout<<"I'm a simulated primary "<<part->GetName()<<"! "<<"my label is "<<part->GetFirstMother()<<" pt "<<part->Pt()<<endl;
              float myEt = Et(part);
              fSimHadEt += myEt;
              fSimTotEt += myEt;
+             //To investigate p Smearing...
+//           fSimPiKPEt += myEt;
+//           Float_t theta = part->Theta();
+//           Short_t charge = 1;
+//           for(int i=0;i<fgNumSmearWidths;i++){
+//             Float_t pSmeared = part->P() *  fpSmearer->Gaus(1,fgSmearWidths[i]);//Gaussian centered around 1
+//             fSimPiKPEtSmeared[i] += AliAnalysisHadEt::Et(pSmeared,theta,pdgCode,charge);
+//           }
              FillHisto2D("EtSimulatedPiPlus",part->Pt(),part->Eta(),myEt);
              FillHisto2D("EtNSimulatedPiPlus",part->Pt(),part->Eta(),1.0);
              FillHisto2D("EtSimulatedChargedHadron",part->Pt(),part->Eta(),myEt);
@@ -425,10 +460,18 @@ Int_t AliAnalysisHadEtMonteCarlo::AnalyseEvent(AliVEvent* ev)
              FillHisto2D("EtSimulatedAllHadron",part->Pt(),part->Eta(),myEt);
              filled = true;
            }
-           if(pdgCode == fPiMinusCode){
+           if(pdgCode == fgPiMinusCode){
              float myEt = Et(part);
              fSimHadEt += myEt;
              fSimTotEt += myEt;
+//           //To investigate p Smearing...
+//           fSimPiKPEt += myEt;
+//           Float_t theta = part->Theta();
+//           Short_t charge = -1;
+//           for(int i=0;i<fgNumSmearWidths;i++){
+//             Float_t pSmeared = part->P() *  fpSmearer->Gaus(1,fgSmearWidths[i]);//Gaussian centered around 1
+//             fSimPiKPEtSmeared[i] += AliAnalysisHadEt::Et(pSmeared,theta,pdgCode,charge);
+//           }
              FillHisto2D("EtSimulatedPiMinus",part->Pt(),part->Eta(),myEt);
              FillHisto2D("EtNSimulatedPiMinus",part->Pt(),part->Eta(),1.0);
              FillHisto2D("EtSimulatedChargedHadron",part->Pt(),part->Eta(),myEt);
@@ -437,11 +480,19 @@ Int_t AliAnalysisHadEtMonteCarlo::AnalyseEvent(AliVEvent* ev)
              FillHisto2D("EtSimulatedAllHadron",part->Pt(),part->Eta(),myEt);
              filled = true;
            }
-           if(pdgCode == fKPlusCode){
+           if(pdgCode == fgKPlusCode){
              float myEt = Et(part);
-             float myEtPi = Et(part,fPionMass);
+             float myEtPi = Et(part,fgPionMass);
              fSimHadEt += myEt;
              fSimTotEt += myEt;
+             //To investigate p Smearing...
+//           fSimPiKPEt += myEt;
+//           Float_t theta = part->Theta();
+//           Short_t charge = 1;
+//           for(int i=0;i<fgNumSmearWidths;i++){
+//             Float_t pSmeared = part->P() *  fpSmearer->Gaus(1,fgSmearWidths[i]);//Gaussian centered around 1
+//             fSimPiKPEtSmeared[i] += AliAnalysisHadEt::Et(pSmeared,theta,pdgCode,charge);
+//           }
              FillHisto2D("EtSimulatedKPlus",part->Pt(),part->Eta(),myEt);
              FillHisto2D("EtNSimulatedKPlus",part->Pt(),part->Eta(),1.0);
              FillHisto2D("EtSimulatedChargedHadron",part->Pt(),part->Eta(),myEt);
@@ -451,11 +502,19 @@ Int_t AliAnalysisHadEtMonteCarlo::AnalyseEvent(AliVEvent* ev)
              FillHisto2D("EtSimulatedAllHadron",part->Pt(),part->Eta(),myEt);
              filled = true;
            }
-           if(pdgCode == fKMinusCode){
+           if(pdgCode == fgKMinusCode){
              float myEt = Et(part);
-             float myEtPi = Et(part,fPionMass);
+             float myEtPi = Et(part,fgPionMass);
              fSimHadEt += myEt;
              fSimTotEt += myEt;
+             //To investigate p Smearing...
+//           fSimPiKPEt += myEt;
+//           Float_t theta = part->Theta();
+//           Short_t charge = -1;
+//           for(int i=0;i<fgNumSmearWidths;i++){
+//             Float_t pSmeared = part->P() *  fpSmearer->Gaus(1,fgSmearWidths[i]);//Gaussian centered around 1
+//             fSimPiKPEtSmeared[i] += AliAnalysisHadEt::Et(pSmeared,theta,pdgCode,charge);
+//           }
              FillHisto2D("EtSimulatedKMinus",part->Pt(),part->Eta(),myEt);
              FillHisto2D("EtNSimulatedKMinus",part->Pt(),part->Eta(),1.0);
              FillHisto2D("EtSimulatedChargedHadron",part->Pt(),part->Eta(),myEt);
@@ -465,11 +524,19 @@ Int_t AliAnalysisHadEtMonteCarlo::AnalyseEvent(AliVEvent* ev)
              FillHisto2D("EtSimulatedAllHadron",part->Pt(),part->Eta(),myEt);
              filled = true;
            }
-           if(pdgCode == fProtonCode){
+           if(pdgCode == fgProtonCode){
              float myEt = Et(part);
-             float myEtPi = Et(part,fPionMass);
+             float myEtPi = Et(part,fgPionMass);
              fSimHadEt += myEt;
              fSimTotEt += myEt;
+             //To investigate p Smearing...
+//           fSimPiKPEt += myEt;
+//           Float_t theta = part->Theta();
+//           Short_t charge = 1;
+//           for(int i=0;i<fgNumSmearWidths;i++){
+//             Float_t pSmeared = part->P() *  fpSmearer->Gaus(1,fgSmearWidths[i]);//Gaussian centered around 1
+//             fSimPiKPEtSmeared[i] += AliAnalysisHadEt::Et(pSmeared,theta,pdgCode,charge);
+//           }
              FillHisto2D("EtSimulatedProton",part->Pt(),part->Eta(),myEt);
              FillHisto2D("EtNSimulatedProton",part->Pt(),part->Eta(),1.0);
              FillHisto2D("EtSimulatedChargedHadron",part->Pt(),part->Eta(),myEt);
@@ -479,11 +546,19 @@ Int_t AliAnalysisHadEtMonteCarlo::AnalyseEvent(AliVEvent* ev)
              FillHisto2D("EtSimulatedAllHadron",part->Pt(),part->Eta(),myEt);
              filled = true;
            }
-           if(pdgCode == fAntiProtonCode){
+           if(pdgCode == fgAntiProtonCode){
              float myEt = Et(part);
-             float myEtPi = Et(part,fPionMass);
+             float myEtPi = Et(part,fgPionMass);
              fSimHadEt += myEt;
              fSimTotEt += myEt;
+             //To investigate p Smearing...
+//           fSimPiKPEt += myEt;
+//           Float_t theta = part->Theta();
+//           Short_t charge = -1;
+//           for(int i=0;i<fgNumSmearWidths;i++){
+//             Float_t pSmeared = part->P() *  fpSmearer->Gaus(1,fgSmearWidths[i]);//Gaussian centered around 1
+//             fSimPiKPEtSmeared[i] += AliAnalysisHadEt::Et(pSmeared,theta,pdgCode,charge);
+//           }
              FillHisto2D("EtSimulatedAntiProton",part->Pt(),part->Eta(),myEt);
              FillHisto2D("EtNSimulatedAntiProton",part->Pt(),part->Eta(),1.0);
              FillHisto2D("EtSimulatedChargedHadron",part->Pt(),part->Eta(),myEt);
@@ -495,7 +570,7 @@ Int_t AliAnalysisHadEtMonteCarlo::AnalyseEvent(AliVEvent* ev)
            }
            //============Other hadrons===================================
 
-           if(pdgCode == fNeutronCode){
+           if(pdgCode == fgNeutronCode){
              float myEt = Et(part);
              fSimHadEt += myEt;
              fSimTotEt += myEt;
@@ -503,7 +578,7 @@ Int_t AliAnalysisHadEtMonteCarlo::AnalyseEvent(AliVEvent* ev)
              FillHisto2D("EtSimulatedAllHadron",part->Pt(),part->Eta(),myEt);
              filled = true;
            }
-           if(pdgCode == fAntiNeutronCode){
+           if(pdgCode == fgAntiNeutronCode){
              float myEt = Et(part);
              fSimHadEt += myEt;
              fSimTotEt += myEt;
@@ -511,7 +586,7 @@ Int_t AliAnalysisHadEtMonteCarlo::AnalyseEvent(AliVEvent* ev)
              FillHisto2D("EtSimulatedAllHadron",part->Pt(),part->Eta(),myEt);
              filled = true;
            }
-           if(pdgCode == fLambdaCode){
+           if(pdgCode == fgLambdaCode){
              float myEt = Et(part);
              fSimHadEt += myEt;
              fSimTotEt += myEt;
@@ -526,7 +601,7 @@ Int_t AliAnalysisHadEtMonteCarlo::AnalyseEvent(AliVEvent* ev)
                if(daughter){
                  if(daughter->GetPDG(0)){
                    Int_t daughtercode = daughter->GetPDG(0)->PdgCode();
-                   if(daughtercode==fPiMinusCode || daughtercode==fProtonCode){
+                   if(daughtercode==fgPiMinusCode || daughtercode==fgProtonCode){
                      myEt = Et(daughter);
                      FillHisto2D("EtSimulatedLambdaDaughters",daughter->Pt(),daughter->Eta(),myEt);
                      //cout<<"Lambda daughter is a "<<daughter->GetName()<<endl;
@@ -539,7 +614,7 @@ Int_t AliAnalysisHadEtMonteCarlo::AnalyseEvent(AliVEvent* ev)
              }
              filled = true;
            }
-           if(pdgCode == fAntiLambdaCode){
+           if(pdgCode == fgAntiLambdaCode){
              float myEt = Et(part);
              fSimHadEt += myEt;
              fSimTotEt += myEt;
@@ -553,7 +628,7 @@ Int_t AliAnalysisHadEtMonteCarlo::AnalyseEvent(AliVEvent* ev)
                if(daughter){
                  if(daughter->GetPDG(0)){
                    Int_t daughtercode = daughter->GetPDG(0)->PdgCode();
-                   if(daughtercode==fPiPlusCode || daughtercode==fAntiProtonCode){
+                   if(daughtercode==fgPiPlusCode || daughtercode==fgAntiProtonCode){
                      myEt = Et(daughter);
                      FillHisto2D("EtSimulatedAntiLambdaDaughters",daughter->Pt(),daughter->Eta(),myEt);
                      //cout<<"AntiLambda daughter is a "<<daughter->GetName()<<endl;
@@ -566,7 +641,7 @@ Int_t AliAnalysisHadEtMonteCarlo::AnalyseEvent(AliVEvent* ev)
              }
              filled = true;
            }
-           if(pdgCode == fK0SCode){
+           if(pdgCode == fgK0SCode){
              float myEt = Et(part);
              fSimHadEt += myEt;
              fSimTotEt += myEt;
@@ -581,7 +656,7 @@ Int_t AliAnalysisHadEtMonteCarlo::AnalyseEvent(AliVEvent* ev)
                  if(daughter->GetPDG(0)){
 
                    Int_t daughtercode = daughter->GetPDG(0)->PdgCode();
-                   if(daughtercode==fPiMinusCode || daughtercode==fPiPlusCode){
+                   if(daughtercode==fgPiMinusCode || daughtercode==fgPiPlusCode){
                      myEt = Et(daughter);
                      FillHisto2D("EtSimulatedK0SDaughters",daughter->Pt(),daughter->Eta(),myEt);
                      //cout<<"K0S daughter is a "<<daughter->GetName()<<endl;
@@ -594,7 +669,7 @@ Int_t AliAnalysisHadEtMonteCarlo::AnalyseEvent(AliVEvent* ev)
              }
              filled = true;
            }
-           if(pdgCode == fK0LCode){
+           if(pdgCode == fgK0LCode){
              float myEt = Et(part);
              fSimHadEt += myEt;
              fSimTotEt += myEt;
@@ -602,7 +677,7 @@ Int_t AliAnalysisHadEtMonteCarlo::AnalyseEvent(AliVEvent* ev)
              FillHisto2D("EtSimulatedAllHadron",part->Pt(),part->Eta(),myEt);
              filled = true;
            }
-           if(pdgCode == fOmegaCode){
+           if(pdgCode == fgOmegaCode){
              float myEt = Et(part);
              fSimHadEt += myEt;
              fSimTotEt += myEt;
@@ -617,7 +692,7 @@ Int_t AliAnalysisHadEtMonteCarlo::AnalyseEvent(AliVEvent* ev)
                  if(daughter->GetPDG(0)){
 
                    Int_t daughtercode = daughter->GetPDG(0)->PdgCode();
-                   if(daughtercode==fPiPlusCode || daughtercode==fProtonCode || daughtercode==fKMinusCode){
+                   if(daughtercode==fgPiPlusCode || daughtercode==fgProtonCode || daughtercode==fgKMinusCode){
                      myEt = Et(daughter);
                      FillHisto2D("EtSimulatedOmegaDaughters",daughter->Pt(),daughter->Eta(),myEt);
                    //cout<<"Omega daughter is a "<<daughter->GetName()<<endl;
@@ -630,7 +705,7 @@ Int_t AliAnalysisHadEtMonteCarlo::AnalyseEvent(AliVEvent* ev)
              }
              filled = true;
            }
-           if(pdgCode == fAntiOmegaCode){
+           if(pdgCode == fgAntiOmegaCode){
              float myEt = Et(part);
              fSimHadEt += myEt;
              fSimTotEt += myEt;
@@ -644,7 +719,7 @@ Int_t AliAnalysisHadEtMonteCarlo::AnalyseEvent(AliVEvent* ev)
                if(daughter){
                  if(daughter->GetPDG(0)){
                    Int_t daughtercode = daughter->GetPDG(0)->PdgCode();
-                   if(daughtercode==fPiMinusCode || daughtercode==fAntiProtonCode || daughtercode==fKPlusCode){
+                   if(daughtercode==fgPiMinusCode || daughtercode==fgAntiProtonCode || daughtercode==fgKPlusCode){
                      myEt = Et(daughter);
                      FillHisto2D("EtSimulatedAntiOmegaDaughters",daughter->Pt(),daughter->Eta(),myEt);
                      //cout<<"AntiOmega daughter is a "<<daughter->GetName()<<endl;
@@ -658,7 +733,7 @@ Int_t AliAnalysisHadEtMonteCarlo::AnalyseEvent(AliVEvent* ev)
              filled = true;
            }
            //There are two codes for Sigmas
-           if(pdgCode == fSigmaCode || pdgCode == -3222){
+           if(pdgCode == fgSigmaCode || pdgCode == -3222){
              float myEt = Et(part);
              fSimHadEt += myEt;
              fSimTotEt += myEt;
@@ -666,7 +741,7 @@ Int_t AliAnalysisHadEtMonteCarlo::AnalyseEvent(AliVEvent* ev)
              FillHisto2D("EtSimulatedAllHadron",part->Pt(),part->Eta(),myEt);
              filled = true;
            }
-           if(pdgCode == fAntiSigmaCode || pdgCode == 3222){
+           if(pdgCode == fgAntiSigmaCode || pdgCode == 3222){
              float myEt = Et(part);
              fSimHadEt += myEt;
              fSimTotEt += myEt;
@@ -674,7 +749,7 @@ Int_t AliAnalysisHadEtMonteCarlo::AnalyseEvent(AliVEvent* ev)
              FillHisto2D("EtSimulatedAllHadron",part->Pt(),part->Eta(),myEt);
              filled = true;
            }
-           if(pdgCode == fXiCode){
+           if(pdgCode == fgXiCode){
              float myEt = Et(part);
              fSimHadEt += myEt;
              fSimTotEt += myEt;
@@ -690,7 +765,7 @@ Int_t AliAnalysisHadEtMonteCarlo::AnalyseEvent(AliVEvent* ev)
                  if(daughter->GetPDG(0)){
 
                    Int_t daughtercode = daughter->GetPDG(0)->PdgCode();
-                   if(daughtercode==fPiPlusCode || daughtercode==fProtonCode || daughtercode==fPiMinusCode){
+                   if(daughtercode==fgPiPlusCode || daughtercode==fgProtonCode || daughtercode==fgPiMinusCode){
                      myEt = Et(daughter);
                      FillHisto2D("EtSimulatedXiDaughters",daughter->Pt(),daughter->Eta(),myEt);
                    //cout<<"Xi daughter is a "<<daughter->GetName()<<endl;
@@ -703,7 +778,7 @@ Int_t AliAnalysisHadEtMonteCarlo::AnalyseEvent(AliVEvent* ev)
              }
              filled = true;
            }
-           if(pdgCode == fAntiXiCode){
+           if(pdgCode == fgAntiXiCode){
              float myEt = Et(part);
              fSimHadEt += myEt;
              fSimTotEt += myEt;
@@ -717,7 +792,7 @@ Int_t AliAnalysisHadEtMonteCarlo::AnalyseEvent(AliVEvent* ev)
                if(daughter){
                  if(daughter->GetPDG(0)){
                    Int_t daughtercode = daughter->GetPDG(0)->PdgCode();
-                   if(daughtercode==fPiPlusCode || daughtercode==fAntiProtonCode || daughtercode==fPiMinusCode){
+                   if(daughtercode==fgPiPlusCode || daughtercode==fgAntiProtonCode || daughtercode==fgPiMinusCode){
                      myEt = Et(daughter);
                      FillHisto2D("EtSimulatedAntiXiDaughters",daughter->Pt(),daughter->Eta(),myEt);
                      //cout<<"AntiXi daughter is a "<<daughter->GetName()<<endl;
@@ -730,7 +805,7 @@ Int_t AliAnalysisHadEtMonteCarlo::AnalyseEvent(AliVEvent* ev)
              }
              filled = true;
            }
-           if(pdgCode == fXi0Code){
+           if(pdgCode == fgXi0Code){
              float myEt = Et(part);
              fSimHadEt += myEt;
              fSimTotEt += myEt;
@@ -738,7 +813,7 @@ Int_t AliAnalysisHadEtMonteCarlo::AnalyseEvent(AliVEvent* ev)
              FillHisto2D("EtSimulatedAllHadron",part->Pt(),part->Eta(),myEt);
              filled = true;
            }
-           if(pdgCode == fAntiXi0Code){
+           if(pdgCode == fgAntiXi0Code){
              float myEt = Et(part);
              fSimHadEt += myEt;
              fSimTotEt += myEt;
@@ -748,37 +823,37 @@ Int_t AliAnalysisHadEtMonteCarlo::AnalyseEvent(AliVEvent* ev)
            }
            //============electrons===================================
 
-           if(pdgCode == fEPlusCode){
+           if(pdgCode == fgEPlusCode){
              float myEt = Et(part);
              fSimTotEt += myEt;
              FillHisto2D("EtSimulatedEPlus",part->Pt(),part->Eta(),myEt);
              filled = true;
            }
-           if(pdgCode == fEMinusCode){
+           if(pdgCode == fgEMinusCode){
              float myEt = Et(part);
              fSimTotEt += myEt;
              FillHisto2D("EtSimulatedEMinus",part->Pt(),part->Eta(),myEt);
              filled = true;
            }
            //============neutrals===================================
-           if(pdgCode == fGammaCode){
+           if(pdgCode == fgGammaCode){
              TParticle *mom = stack->Particle(part->GetFirstMother());
              Int_t pdgCodeMom =  mom->GetPDG(0)->PdgCode();
              //cout<<"I am a gamma and my mom is "<<mom->GetName()<<endl;
              //We want to separate the gammas by pi0, eta, omega0 but we don't want to double count energy so we get the et from the gamma daughter
-             if(pdgCodeMom == fEtaCode){
+             if(pdgCodeMom == fgEtaCode){
                float myEt = Et(part);
                fSimTotEt += myEt;
                FillHisto2D("EtSimulatedEta",mom->Pt(),mom->Eta(),myEt);
                filled = true;
              }
-             if(pdgCodeMom == fPi0Code){
+             if(pdgCodeMom == fgPi0Code){
                float myEt = Et(part);
                fSimTotEt += myEt;
                FillHisto2D("EtSimulatedPi0",mom->Pt(),mom->Eta(),myEt);
                filled = true;
              }
-             if(pdgCodeMom == fOmega0Code){
+             if(pdgCodeMom == fgOmega0Code){
                float myEt = Et(part);
                fSimTotEt += myEt;
                FillHisto2D("EtSimulatedOmega0",mom->Pt(),mom->Eta(),myEt);
@@ -791,19 +866,19 @@ Int_t AliAnalysisHadEtMonteCarlo::AnalyseEvent(AliVEvent* ev)
                filled = true;
              }
            }
-           if(pdgCode == fEtaCode){
+           if(pdgCode == fgEtaCode){
              float myEt = Et(part);
              fSimTotEt += myEt;
              FillHisto2D("EtSimulatedEta",part->Pt(),part->Eta(),myEt);
              filled = true;
            }
-           if(pdgCode == fPi0Code){
+           if(pdgCode == fgPi0Code){
              float myEt = Et(part);
              fSimTotEt += myEt;
              FillHisto2D("EtSimulatedPi0",part->Pt(),part->Eta(),myEt);
              filled = true;
            }
-           if(pdgCode == fOmega0Code){
+           if(pdgCode == fgOmega0Code){
              float myEt = Et(part);
              fSimTotEt += myEt;
              FillHisto2D("EtSimulatedOmega0",part->Pt(),part->Eta(),myEt);
@@ -820,8 +895,14 @@ Int_t AliAnalysisHadEtMonteCarlo::AnalyseEvent(AliVEvent* ev)
 
     FillHisto1D("SimTotEt",fSimTotEt,1.0);
     FillHisto1D("SimHadEt",fSimHadEt,1.0);
-
-
+//     FillHisto1D("SimPiKPEt",fSimPiKPEt,1.0);
+//     char histoname[200];
+//     for(int i=0;i<fgNumSmearWidths;i++){
+//       sprintf(histoname,"SimPiKPEtMinusSimSmeared%2.1f",fgSmearWidths[i]*100.);
+//       if(fSimPiKPEt>0.0) FillHisto2D(histoname,fSimPiKPEt,(fSimPiKPEt-fSimPiKPEtSmeared[i])/fSimPiKPEt,1.0);
+//       sprintf(histoname,"SimPiKPEt%2.1f",fgSmearWidths[i]*100.);
+//       FillHisto1D(histoname,fSimPiKPEtSmeared[i],1.0);
+//     }
     return 1;
     
 }
@@ -890,7 +971,7 @@ void AliAnalysisHadEtMonteCarlo::CreateHistograms(){
   TString *strTPC = new TString("TPC");
   TString *strITS = new TString("ITS");
   TString *strTPCITS = new TString("TPCITS");
-  for(Int_t i=0;i<3;i++){
+  for(Int_t i=0;i<2;i++){
     TString *cutName;
     Float_t maxPtdEdx = 10;
     Float_t mindEdx = 35;
@@ -975,7 +1056,7 @@ void AliAnalysisHadEtMonteCarlo::CreateHistograms(){
 
   Float_t minEt = 0.0;
   Float_t maxEt = 100.0;
-  Int_t nbinsEt = 200;
+  Int_t nbinsEt = 100;
   char histoname[200];
   char histotitle[200];
   char xtitle[50];
@@ -994,37 +1075,45 @@ void AliAnalysisHadEtMonteCarlo::CreateHistograms(){
   TString *sFull = new TString("Full");
   TString *sEMCAL = new TString("EMCAL");
   TString *sPHOS = new TString("PHOS");
+  float etDiff = 1.5;
   
   for(int tpc = 0;tpc<2;tpc++){
+    TString *detector;
+    TString *ptstring;
+    if(tpc==1) {detector = sTPC; ptstring = sTPCpt;}
+    else{detector = sITS; ptstring = sITSpt;}
     for(int hadet = 0;hadet<2;hadet++){
-      for(int type = 0;type<3;type++){
+      TString *et;
+      TString *etstring;
+      if(hadet==1) {et = sHadEt; etstring = sHadEtString;}
+      else{et = sTotEt; etstring = sTotEtString;}
+      for(int type = 0;type<1;type++){
+       TString *acceptance;
+       switch(type){
+       case 0:
+         acceptance = sFull;
+         break;
+       case 1:
+         acceptance = sEMCAL;
+         break;
+       case 2:
+         acceptance = sPHOS;
+         break;
+       default:
+         acceptance = sFull;
+       }
+       sprintf(histoname,"Sim%sMinusRawEt%sAcceptance%s",et->Data(),acceptance->Data(),detector->Data());
+       sprintf(histotitle,"(Simulated %s - raw reconstructed)/(Simulated %s) with %s acceptance for p_{T}>%s GeV/c",etstring->Data(),etstring->Data(),acceptance->Data(),ptstring->Data());
+       sprintf(ytitle,"(Simulated %s - raw reconstructed)/(Simulated %s)",etstring->Data(),etstring->Data());
+       sprintf(xtitle,"Simulated %s",etstring->Data());
+       CreateHisto2D(histoname,histotitle,xtitle,ytitle,nbinsEt,minEt,maxEt,nbinsEt,-etDiff,etDiff);
+
        for(int pid = 0;pid<2;pid++){
-         TString *detector;
          TString *partid;
-         TString *et;
-         TString *acceptance;
-         TString *ptstring;
          TString *partidstring;
-         TString *etstring;
-         if(tpc==1) {detector = sTPC; ptstring = sTPCpt;}
-         else{detector = sITS; ptstring = sITSpt;}
          if(pid==1){partid = sPID; partidstring = sPID;}
          else{partid = sNoPID; partidstring = sNoPIDString;}
-         if(hadet==1) {et = sHadEt; etstring = sHadEtString;}
-         else{et = sTotEt; etstring = sTotEtString;}
-         switch(type){
-         case 0:
-           acceptance = sFull;
-           break;
-         case 1:
-           acceptance = sEMCAL;
-           break;
-         case 2:
-           acceptance = sPHOS;
-           break;
-         default:
-           acceptance = sFull;
-         }
+
          sprintf(histoname,"Sim%sVsReco%s%sAcceptance%s%s",et->Data(),et->Data(),acceptance->Data(),detector->Data(),partid->Data());
          sprintf(histotitle,"Simulated %s vs reconstructed %s with %s acceptance for p_{T}>%s GeV/c%s",etstring->Data(),etstring->Data(),acceptance->Data(),ptstring->Data(),partidstring->Data());
          sprintf(xtitle,"Simulated %s",etstring->Data());
@@ -1035,14 +1124,30 @@ void AliAnalysisHadEtMonteCarlo::CreateHistograms(){
          sprintf(histotitle,"(Simulated %s - reconstructed %s)/(Simulated %s) with %s acceptance for p_{T}>%s GeV/c%s",etstring->Data(),etstring->Data(),etstring->Data(),acceptance->Data(),ptstring->Data(),partidstring->Data());
          sprintf(ytitle,"(Simulated %s - reconstructed %s)/(Simulated %s)",etstring->Data(),etstring->Data(),etstring->Data());
          sprintf(xtitle,"Simulated %s",etstring->Data());
-         CreateHisto2D(histoname,histotitle,xtitle,ytitle,nbinsEt,minEt,maxEt,nbinsEt,-maxEt/10.0,maxEt/10.0);
+         CreateHisto2D(histoname,histotitle,xtitle,ytitle,nbinsEt,minEt,maxEt,nbinsEt,-etDiff,etDiff);
+
          //cout<<"I want to make "<<histoname<<" with the title "<<histotitle<<endl;
        }
       }
     }
   }
+//   CreateHisto1D("SimPiKPEt","Simulated #pi,K,p E_{T}","Simulated #pi,K,p E_{T}","Number of events",nbinsEt,minEt,maxEt);
   CreateHisto1D("SimTotEt","Simulated Total E_{T}","Simulated Total E_{T}","Number of events",nbinsEt,minEt,maxEt);
   CreateHisto1D("SimHadEt","Simulated Hadronic E_{T}","Simulated Hadronic E_{T}","Number of events",nbinsEt,minEt,maxEt);
+//   etDiff = 0.015;
+//   for(int i=0;i<fgNumSmearWidths;i++){
+//     sprintf(histoname,"SimPiKPEtMinusSimSmeared%2.1f",fgSmearWidths[i]*100.);
+//     sprintf(histotitle,"Simulated (true-smeared)/true for %2.1f percent momentum smearing",fgSmearWidths[i]*100.);
+//     sprintf(ytitle,"(true-smeared)/true");
+//     sprintf(xtitle,"true p, K, p E_{T}");
+//     CreateHisto2D(histoname,histotitle,xtitle,ytitle,nbinsEt,minEt,maxEt,nbinsEt,-etDiff,etDiff);
+//     sprintf(histoname,"SimPiKPEt%2.1f",fgSmearWidths[i]*100.);
+//     sprintf(histotitle,"Simulated E_{T} for %2.1f percent momentum smearing",fgSmearWidths[i]*100.);
+//     sprintf(ytitle,"Number of events");
+//     sprintf(xtitle,"p, K, p E_{T}");
+//     CreateHisto1D(histoname,histotitle,xtitle,ytitle,nbinsEt,minEt,maxEt);
+//   }
+
   delete sTPC;
   delete sITS;
   delete sTPCpt;
index fe6a05acc6b736793ee02ef1fde00e5e39baab2b..028cbba0046076da240b0b127d3dd9e9aa339613 100644 (file)
@@ -11,6 +11,7 @@
 
 #include "AliAnalysisHadEt.h"
 class AliVEvent;
+class TRandom;
 
 class AliAnalysisHadEtMonteCarlo : public AliAnalysisHadEt
 {
@@ -18,7 +19,7 @@ class AliAnalysisHadEtMonteCarlo : public AliAnalysisHadEt
 public:
    
   AliAnalysisHadEtMonteCarlo();
-  virtual ~AliAnalysisHadEtMonteCarlo() {}
+  virtual ~AliAnalysisHadEtMonteCarlo();
    
     virtual Int_t AnalyseEvent(AliVEvent* event);
     virtual Int_t AnalyseEvent(AliVEvent* event,AliVEvent* event2);
@@ -79,15 +80,38 @@ public:
     void FillSimHadEtMinusRecoHadEtEMCALAcceptanceITSNoPID(Float_t et){if(fSimHadEt>0.0)FillHisto2D("SimHadEtMinusRecoHadEtEMCALAcceptanceITSNoPID",et,(fSimHadEt-et)/fSimHadEt,1.0);}
     void FillSimHadEtMinusRecoHadEtPHOSAcceptanceTPCNoPID(Float_t et){if(fSimHadEt>0.0)FillHisto2D("SimHadEtMinusRecoHadEtPHOSAcceptanceTPCNoPID",et,(fSimHadEt-et)/fSimHadEt,1.0);}
     void FillSimHadEtMinusRecoHadEtPHOSAcceptanceITSNoPID(Float_t et){if(fSimHadEt>0.0)FillHisto2D("SimHadEtMinusRecoHadEtPHOSAcceptanceITSNoPID",et,(fSimHadEt-et)/fSimHadEt,1.0);}
+
+
+    void FillSimTotEtMinusRawEtFullAcceptanceTPC(Float_t et){if(fSimTotEt>0.0)FillHisto2D("SimTotEtMinusRawEtFullAcceptanceTPC",et,(fSimTotEt-et)/fSimTotEt,1.0);}
+    void FillSimTotEtMinusRawEtFullAcceptanceITS(Float_t et){if(fSimTotEt>0.0)FillHisto2D("SimTotEtMinusRawEtFullAcceptanceITS",et,(fSimTotEt-et)/fSimTotEt,1.0);}
+    void FillSimTotEtMinusRawEtEMCALAcceptanceTPC(Float_t et){if(fSimTotEt>0.0)FillHisto2D("SimTotEtMinusRawEtEMCALAcceptanceTPC",et,(fSimTotEt-et)/fSimTotEt,1.0);}
+    void FillSimTotEtMinusRawEtEMCALAcceptanceITS(Float_t et){if(fSimTotEt>0.0)FillHisto2D("SimTotEtMinusRawEtEMCALAcceptanceITS",et,(fSimTotEt-et)/fSimTotEt,1.0);}
+    void FillSimTotEtMinusRawEtPHOSAcceptanceTPC(Float_t et){if(fSimTotEt>0.0)FillHisto2D("SimTotEtMinusRawEtPHOSAcceptanceTPC",et,(fSimTotEt-et)/fSimTotEt,1.0);}
+    void FillSimTotEtMinusRawEtPHOSAcceptanceITS(Float_t et){if(fSimTotEt>0.0)FillHisto2D("SimTotEtMinusRawEtPHOSAcceptanceITS",et,(fSimTotEt-et)/fSimTotEt,1.0);}
+    void FillSimHadEtMinusRawEtFullAcceptanceTPC(Float_t et){if(fSimHadEt>0.0)FillHisto2D("SimHadEtMinusRawEtFullAcceptanceTPC",et,(fSimHadEt-et)/fSimHadEt,1.0);}
+    void FillSimHadEtMinusRawEtFullAcceptanceITS(Float_t et){if(fSimHadEt>0.0)FillHisto2D("SimHadEtMinusRawEtFullAcceptanceITS",et,(fSimHadEt-et)/fSimHadEt,1.0);}
+    void FillSimHadEtMinusRawEtEMCALAcceptanceTPC(Float_t et){if(fSimHadEt>0.0)FillHisto2D("SimHadEtMinusRawEtEMCALAcceptanceTPC",et,(fSimHadEt-et)/fSimHadEt,1.0);}
+    void FillSimHadEtMinusRawEtEMCALAcceptanceITS(Float_t et){if(fSimHadEt>0.0)FillHisto2D("SimHadEtMinusRawEtEMCALAcceptanceITS",et,(fSimHadEt-et)/fSimHadEt,1.0);}
+    void FillSimHadEtMinusRawEtPHOSAcceptanceTPC(Float_t et){if(fSimHadEt>0.0)FillHisto2D("SimHadEtMinusRawEtPHOSAcceptanceTPC",et,(fSimHadEt-et)/fSimHadEt,1.0);}
+    void FillSimHadEtMinusRawEtPHOSAcceptanceITS(Float_t et){if(fSimHadEt>0.0)FillHisto2D("SimHadEtMinusRawEtPHOSAcceptanceITS",et,(fSimHadEt-et)/fSimHadEt,1.0);}
+
+
  private:
     //Declare it private to avoid compilation warning
     AliAnalysisHadEtMonteCarlo & operator = (const AliAnalysisHadEtMonteCarlo & g) ;//cpy assignment
     AliAnalysisHadEtMonteCarlo(const AliAnalysisHadEtMonteCarlo & g) ; // cpy ctor
 
+    //Float_t fSimPiKPEt;//simulated Et for pi,k,p event by event
     Float_t fSimHadEt;//simulated Et event by event
     Float_t fSimTotEt;//total et event by event
 
+
     void ResetEventValues();
+
+    //Float_t fSimPiKPEtSmeared[4];//simulated Et for pi,k,p smeared for each event by different momentum resolutions
+/*     static Float_t fgSmearWidths[4]; */
+/*     static Int_t fgNumSmearWidths; */
+
     ClassDef(AliAnalysisHadEtMonteCarlo, 1);
 };
 
index 1ef2f3957bff48958ba8898cd159836dcf3fdfe8..68142d65e56ac3087643562dcf2bc76ff0b70103 100644 (file)
@@ -128,7 +128,8 @@ Int_t AliAnalysisHadEtReconstructed::AnalyseEvent(AliVEvent* ev)
          else{
            if(TMath::Abs(track->Eta())>fCorrections->GetEtaCut()) continue;
            Float_t nSigmaPion,nSigmaProton,nSigmaKaon,nSigmaElectron;
-           
+           pID->MakeTPCPID(track);
+           pID->MakeITSPID(track);
            if(cutset!=1){
              nSigmaPion = TMath::Abs(pID->NumberOfSigmasTPC(track,AliPID::kPion));
              nSigmaProton = TMath::Abs(pID->NumberOfSigmasTPC(track,AliPID::kProton));
@@ -172,14 +173,14 @@ Int_t AliAnalysisHadEtReconstructed::AnalyseEvent(AliVEvent* ev)
              corrNotID = fCorrections->GetNotIDCorrectionITS(track->Pt());
            }
            Float_t et = 0.0;
-           Float_t etNoID = Et(track->P(),track->Theta(),fPiPlusCode,track->Charge());
+           Float_t etNoID = Et(track->P(),track->Theta(),fgPiPlusCode,track->Charge());
            Float_t etpartialcorrected = 0.0;
            Float_t etpartialcorrectedNoID = corrNoID*corrBkgd*corrEffNoID*etNoID;
            FillHisto2D(Form("EtDataRaw%sNoID",cutName->Data()),track->Pt(),track->Eta(),etpartialcorrectedNoID);
 
            if(isPion){
              FillHisto2D(Form("dEdxDataPion%s",cutName->Data()),track->P(),dEdx,1.0);
-             et = Et(track->P(),track->Theta(),fPiPlusCode,track->Charge());
+             et = Et(track->P(),track->Theta(),fgPiPlusCode,track->Charge());
              if(cutset==0){corrEff = fCorrections->GetTPCEfficiencyCorrectionPion(track->Pt());}
              //else{corrEff = fCorrections->GetITSEfficiencyCorrectionPion(track->Pt());}
              etpartialcorrected = et*corrBkgd*corrEff;
@@ -195,7 +196,7 @@ Int_t AliAnalysisHadEtReconstructed::AnalyseEvent(AliVEvent* ev)
            }
            if(isKaon){
              FillHisto2D(Form("dEdxDataKaon%s",cutName->Data()),track->P(),dEdx,1.0);
-             et = Et(track->P(),track->Theta(),fKPlusCode,track->Charge());
+             et = Et(track->P(),track->Theta(),fgKPlusCode,track->Charge());
              if(cutset==0){corrEff = fCorrections->GetTPCEfficiencyCorrectionKaon(track->Pt());}
              //else{corrEff = fCorrections->GetITSEfficiencyCorrectionKaon(track->Pt());}
              etpartialcorrected = et*corrBkgd*corrEff;
@@ -211,7 +212,7 @@ Int_t AliAnalysisHadEtReconstructed::AnalyseEvent(AliVEvent* ev)
            }
            if(isProton){
              FillHisto2D(Form("dEdxDataProton%s",cutName->Data()),track->P(),dEdx,1.0);
-             et = Et(track->P(),track->Theta(),fProtonCode,track->Charge());
+             et = Et(track->P(),track->Theta(),fgProtonCode,track->Charge());
              if(cutset==0){corrEff = fCorrections->GetTPCEfficiencyCorrectionProton(track->Pt());}
              //else{corrEff = fCorrections->GetITSEfficiencyCorrectionProton(track->Pt());}
              etpartialcorrected = et*corrBkgd*corrEff;
@@ -227,11 +228,11 @@ Int_t AliAnalysisHadEtReconstructed::AnalyseEvent(AliVEvent* ev)
            }
            if(isElectron){
              FillHisto2D(Form("dEdxDataProton%s",cutName->Data()),track->P(),dEdx,1.0);
-             //et = Et(track->P(),track->Theta(),fPiPlusCode,track->Charge());
+             //et = Et(track->P(),track->Theta(),fgPiPlusCode,track->Charge());
            }
            if(unidentified){
              FillHisto2D(Form("dEdxDataUnidentified%s",cutName->Data()),track->P(),dEdx,1.0);
-             et = Et(track->P(),track->Theta(),fPiPlusCode,track->Charge());
+             et = Et(track->P(),track->Theta(),fgPiPlusCode,track->Charge());
              etpartialcorrected = et*corrBkgd*corrEffNoID*corrNotID;
              FillHisto2D(Form("EtDataCorrected%sUnidentified",cutName->Data()),track->Pt(),track->Eta(),etpartialcorrected);
            }
@@ -382,9 +383,8 @@ Bool_t AliAnalysisHadEtReconstructed::CheckGoodVertex(AliVParticle* track)
 
 void AliAnalysisHadEtReconstructed::Init()
 { // Init
-    AliAnalysisHadEt::Init();
-
-  if (fConfigFile.Length()) {
+  AliAnalysisHadEt::Init();
+  if (fConfigFile.Length() && !fCorrections) {
     gROOT->LoadMacro(fConfigFile);
     fCorrections = (AliAnalysisHadEtCorrections *) gInterpreter->ProcessLine("ConfigHadEtAnalysis()");
     fCorrTotEtFullAcceptanceTPC = fCorrections->GetConstantCorrections(kTRUE,fgPtTPCCutOff,"Full");
@@ -450,7 +450,6 @@ void AliAnalysisHadEtReconstructed::ResetEventValues(){//resetting event by even
        }
        else{cerr<<"Uh-oh!  Unable to open configuration file!"<<endl;}
      }
-
 }
 void AliAnalysisHadEtReconstructed::CreateHistograms(){//Creating histograms and adding them to the output TList
 
index 03400a3396ecadf88b39630172fdde9b68d76959..59732c94e2e47278075463e21617d1ec8d3af039 100644 (file)
@@ -66,7 +66,7 @@ public:
     Float_t GetRawEtPHOSAcceptanceITSNoPID() const {return fRawEtPHOSAcceptanceITSNoPID+fRawEtPHOSAcceptanceTPCNoPID;}
 
     void CreateHistograms();
-    virtual void Init();
+     virtual void Init();
     
 protected:
 
index 348499dcae7a53767a1628b1abdb80ee796ea6cf..e5b053215f2c09ab3b50dc0463fa6d1171bc4d53 100644 (file)
@@ -41,18 +41,18 @@ AliAnalysisTaskHadEt::AliAnalysisTaskHadEt(const char *name) :
 {
     // Constructor
 
-    fRecAnalysis = new AliAnalysisHadEtReconstructed();
-    fRecAnalysis->Init();
     fMCAnalysis = new AliAnalysisHadEtMonteCarlo();
     fMCAnalysis->Init();
 
+    fRecAnalysis = new AliAnalysisHadEtReconstructed();
+    fRecAnalysis->Init();
+
     // Define input and output slots here
     // Input slot #0 works with a TChain
     DefineInput(0, TChain::Class());
     // Output slot #1 writes into a TH1 container
 
     DefineOutput(1, TList::Class());
-
 }
 AliAnalysisTaskHadEt::~AliAnalysisTaskHadEt(){//Destructor
   fOutputList->Clear();
@@ -104,7 +104,6 @@ void AliAnalysisTaskHadEt::UserCreateOutputObjects()
     else{
       Printf("Error: no track cuts!");
     }
-
 }
 
 //________________________________________________________________________
@@ -115,7 +114,6 @@ if (!event) {
   Printf("ERROR: Could not retrieve event");
   return;
  }
-
 fRecAnalysis->AnalyseEvent(event);
 
 AliMCEvent* mcEvent = MCEvent();
@@ -126,59 +124,75 @@ if (mcEvent)
     //cout<<"Simulated Total Et "<<fMCAnalysis->GetSimulatedTotalEt()<<" Reconstructed Total Et "<<fRecAnalysis->GetCorrectedTotEtFullAcceptanceITS()<<endl;
     fMCAnalysis->FillSimTotEtVsRecoTotEtFullAcceptanceTPC( fRecAnalysis->GetCorrectedTotEtFullAcceptanceTPC() );
     fMCAnalysis->FillSimTotEtVsRecoTotEtFullAcceptanceITS( fRecAnalysis->GetCorrectedTotEtFullAcceptanceITS() );
-    fMCAnalysis->FillSimTotEtVsRecoTotEtEMCALAcceptanceTPC( fRecAnalysis->GetCorrectedTotEtEMCALAcceptanceTPC() );
-    fMCAnalysis->FillSimTotEtVsRecoTotEtEMCALAcceptanceITS( fRecAnalysis->GetCorrectedTotEtEMCALAcceptanceITS() );
-    fMCAnalysis->FillSimTotEtVsRecoTotEtPHOSAcceptanceTPC( fRecAnalysis->GetCorrectedTotEtPHOSAcceptanceTPC() );
-    fMCAnalysis->FillSimTotEtVsRecoTotEtPHOSAcceptanceITS( fRecAnalysis->GetCorrectedTotEtPHOSAcceptanceITS() );
+//     fMCAnalysis->FillSimTotEtVsRecoTotEtEMCALAcceptanceTPC( fRecAnalysis->GetCorrectedTotEtEMCALAcceptanceTPC() );
+//     fMCAnalysis->FillSimTotEtVsRecoTotEtEMCALAcceptanceITS( fRecAnalysis->GetCorrectedTotEtEMCALAcceptanceITS() );
+//     fMCAnalysis->FillSimTotEtVsRecoTotEtPHOSAcceptanceTPC( fRecAnalysis->GetCorrectedTotEtPHOSAcceptanceTPC() );
+//     fMCAnalysis->FillSimTotEtVsRecoTotEtPHOSAcceptanceITS( fRecAnalysis->GetCorrectedTotEtPHOSAcceptanceITS() );
     fMCAnalysis->FillSimTotEtVsRecoTotEtFullAcceptanceTPCNoPID( fRecAnalysis->GetCorrectedTotEtFullAcceptanceTPCNoPID() );
     fMCAnalysis->FillSimTotEtVsRecoTotEtFullAcceptanceITSNoPID( fRecAnalysis->GetCorrectedTotEtFullAcceptanceITSNoPID() );
-    fMCAnalysis->FillSimTotEtVsRecoTotEtEMCALAcceptanceTPCNoPID( fRecAnalysis->GetCorrectedTotEtEMCALAcceptanceTPCNoPID() );
-    fMCAnalysis->FillSimTotEtVsRecoTotEtEMCALAcceptanceITSNoPID( fRecAnalysis->GetCorrectedTotEtEMCALAcceptanceITSNoPID() );
-    fMCAnalysis->FillSimTotEtVsRecoTotEtPHOSAcceptanceTPCNoPID( fRecAnalysis->GetCorrectedTotEtPHOSAcceptanceTPCNoPID() );
-    fMCAnalysis->FillSimTotEtVsRecoTotEtPHOSAcceptanceITSNoPID( fRecAnalysis->GetCorrectedTotEtPHOSAcceptanceITSNoPID() );
+//     fMCAnalysis->FillSimTotEtVsRecoTotEtEMCALAcceptanceTPCNoPID( fRecAnalysis->GetCorrectedTotEtEMCALAcceptanceTPCNoPID() );
+//     fMCAnalysis->FillSimTotEtVsRecoTotEtEMCALAcceptanceITSNoPID( fRecAnalysis->GetCorrectedTotEtEMCALAcceptanceITSNoPID() );
+//     fMCAnalysis->FillSimTotEtVsRecoTotEtPHOSAcceptanceTPCNoPID( fRecAnalysis->GetCorrectedTotEtPHOSAcceptanceTPCNoPID() );
+//     fMCAnalysis->FillSimTotEtVsRecoTotEtPHOSAcceptanceITSNoPID( fRecAnalysis->GetCorrectedTotEtPHOSAcceptanceITSNoPID() );
     fMCAnalysis->FillSimHadEtVsRecoHadEtFullAcceptanceTPC( fRecAnalysis->GetCorrectedHadEtFullAcceptanceTPC() );
     fMCAnalysis->FillSimHadEtVsRecoHadEtFullAcceptanceITS( fRecAnalysis->GetCorrectedHadEtFullAcceptanceITS() );
-    fMCAnalysis->FillSimHadEtVsRecoHadEtEMCALAcceptanceTPC( fRecAnalysis->GetCorrectedHadEtEMCALAcceptanceTPC() );
-    fMCAnalysis->FillSimHadEtVsRecoHadEtEMCALAcceptanceITS( fRecAnalysis->GetCorrectedHadEtEMCALAcceptanceITS() );
-    fMCAnalysis->FillSimHadEtVsRecoHadEtPHOSAcceptanceTPC( fRecAnalysis->GetCorrectedHadEtPHOSAcceptanceTPC() );
-    fMCAnalysis->FillSimHadEtVsRecoHadEtPHOSAcceptanceITS( fRecAnalysis->GetCorrectedHadEtPHOSAcceptanceITS() );
+//     fMCAnalysis->FillSimHadEtVsRecoHadEtEMCALAcceptanceTPC( fRecAnalysis->GetCorrectedHadEtEMCALAcceptanceTPC() );
+//     fMCAnalysis->FillSimHadEtVsRecoHadEtEMCALAcceptanceITS( fRecAnalysis->GetCorrectedHadEtEMCALAcceptanceITS() );
+//     fMCAnalysis->FillSimHadEtVsRecoHadEtPHOSAcceptanceTPC( fRecAnalysis->GetCorrectedHadEtPHOSAcceptanceTPC() );
+//     fMCAnalysis->FillSimHadEtVsRecoHadEtPHOSAcceptanceITS( fRecAnalysis->GetCorrectedHadEtPHOSAcceptanceITS() );
     fMCAnalysis->FillSimHadEtVsRecoHadEtFullAcceptanceTPCNoPID( fRecAnalysis->GetCorrectedHadEtFullAcceptanceTPCNoPID() );
     fMCAnalysis->FillSimHadEtVsRecoHadEtFullAcceptanceITSNoPID( fRecAnalysis->GetCorrectedHadEtFullAcceptanceITSNoPID() );
-    fMCAnalysis->FillSimHadEtVsRecoHadEtEMCALAcceptanceTPCNoPID( fRecAnalysis->GetCorrectedHadEtEMCALAcceptanceTPCNoPID() );
-    fMCAnalysis->FillSimHadEtVsRecoHadEtEMCALAcceptanceITSNoPID( fRecAnalysis->GetCorrectedHadEtEMCALAcceptanceITSNoPID() );
-    fMCAnalysis->FillSimHadEtVsRecoHadEtPHOSAcceptanceTPCNoPID( fRecAnalysis->GetCorrectedHadEtPHOSAcceptanceTPCNoPID() );
-    fMCAnalysis->FillSimHadEtVsRecoHadEtPHOSAcceptanceITSNoPID( fRecAnalysis->GetCorrectedHadEtPHOSAcceptanceITSNoPID() );
+//     fMCAnalysis->FillSimHadEtVsRecoHadEtEMCALAcceptanceTPCNoPID( fRecAnalysis->GetCorrectedHadEtEMCALAcceptanceTPCNoPID() );
+//     fMCAnalysis->FillSimHadEtVsRecoHadEtEMCALAcceptanceITSNoPID( fRecAnalysis->GetCorrectedHadEtEMCALAcceptanceITSNoPID() );
+//     fMCAnalysis->FillSimHadEtVsRecoHadEtPHOSAcceptanceTPCNoPID( fRecAnalysis->GetCorrectedHadEtPHOSAcceptanceTPCNoPID() );
+//     fMCAnalysis->FillSimHadEtVsRecoHadEtPHOSAcceptanceITSNoPID( fRecAnalysis->GetCorrectedHadEtPHOSAcceptanceITSNoPID() );
 
 
     fMCAnalysis->FillSimTotEtMinusRecoTotEtFullAcceptanceTPC( fRecAnalysis->GetCorrectedTotEtFullAcceptanceTPC() );
     fMCAnalysis->FillSimTotEtMinusRecoTotEtFullAcceptanceITS( fRecAnalysis->GetCorrectedTotEtFullAcceptanceITS() );
-    fMCAnalysis->FillSimTotEtMinusRecoTotEtEMCALAcceptanceTPC( fRecAnalysis->GetCorrectedTotEtEMCALAcceptanceTPC() );
-    fMCAnalysis->FillSimTotEtMinusRecoTotEtEMCALAcceptanceITS( fRecAnalysis->GetCorrectedTotEtEMCALAcceptanceITS() );
-    fMCAnalysis->FillSimTotEtMinusRecoTotEtPHOSAcceptanceTPC( fRecAnalysis->GetCorrectedTotEtPHOSAcceptanceTPC() );
-    fMCAnalysis->FillSimTotEtMinusRecoTotEtPHOSAcceptanceITS( fRecAnalysis->GetCorrectedTotEtPHOSAcceptanceITS() );
+//     fMCAnalysis->FillSimTotEtMinusRecoTotEtEMCALAcceptanceTPC( fRecAnalysis->GetCorrectedTotEtEMCALAcceptanceTPC() );
+//     fMCAnalysis->FillSimTotEtMinusRecoTotEtEMCALAcceptanceITS( fRecAnalysis->GetCorrectedTotEtEMCALAcceptanceITS() );
+//     fMCAnalysis->FillSimTotEtMinusRecoTotEtPHOSAcceptanceTPC( fRecAnalysis->GetCorrectedTotEtPHOSAcceptanceTPC() );
+//     fMCAnalysis->FillSimTotEtMinusRecoTotEtPHOSAcceptanceITS( fRecAnalysis->GetCorrectedTotEtPHOSAcceptanceITS() );
     fMCAnalysis->FillSimTotEtMinusRecoTotEtFullAcceptanceTPCNoPID( fRecAnalysis->GetCorrectedTotEtFullAcceptanceTPCNoPID() );
     fMCAnalysis->FillSimTotEtMinusRecoTotEtFullAcceptanceITSNoPID( fRecAnalysis->GetCorrectedTotEtFullAcceptanceITSNoPID() );
-    fMCAnalysis->FillSimTotEtMinusRecoTotEtEMCALAcceptanceTPCNoPID( fRecAnalysis->GetCorrectedTotEtEMCALAcceptanceTPCNoPID() );
-    fMCAnalysis->FillSimTotEtMinusRecoTotEtEMCALAcceptanceITSNoPID( fRecAnalysis->GetCorrectedTotEtEMCALAcceptanceITSNoPID() );
-    fMCAnalysis->FillSimTotEtMinusRecoTotEtPHOSAcceptanceTPCNoPID( fRecAnalysis->GetCorrectedTotEtPHOSAcceptanceTPCNoPID() );
-    fMCAnalysis->FillSimTotEtMinusRecoTotEtPHOSAcceptanceITSNoPID( fRecAnalysis->GetCorrectedTotEtPHOSAcceptanceITSNoPID() );
+//     fMCAnalysis->FillSimTotEtMinusRecoTotEtEMCALAcceptanceTPCNoPID( fRecAnalysis->GetCorrectedTotEtEMCALAcceptanceTPCNoPID() );
+//     fMCAnalysis->FillSimTotEtMinusRecoTotEtEMCALAcceptanceITSNoPID( fRecAnalysis->GetCorrectedTotEtEMCALAcceptanceITSNoPID() );
+//     fMCAnalysis->FillSimTotEtMinusRecoTotEtPHOSAcceptanceTPCNoPID( fRecAnalysis->GetCorrectedTotEtPHOSAcceptanceTPCNoPID() );
+//     fMCAnalysis->FillSimTotEtMinusRecoTotEtPHOSAcceptanceITSNoPID( fRecAnalysis->GetCorrectedTotEtPHOSAcceptanceITSNoPID() );
     fMCAnalysis->FillSimHadEtMinusRecoHadEtFullAcceptanceTPC( fRecAnalysis->GetCorrectedHadEtFullAcceptanceTPC() );
     fMCAnalysis->FillSimHadEtMinusRecoHadEtFullAcceptanceITS( fRecAnalysis->GetCorrectedHadEtFullAcceptanceITS() );
-    fMCAnalysis->FillSimHadEtMinusRecoHadEtEMCALAcceptanceTPC( fRecAnalysis->GetCorrectedHadEtEMCALAcceptanceTPC() );
-    fMCAnalysis->FillSimHadEtMinusRecoHadEtEMCALAcceptanceITS( fRecAnalysis->GetCorrectedHadEtEMCALAcceptanceITS() );
-    fMCAnalysis->FillSimHadEtMinusRecoHadEtPHOSAcceptanceTPC( fRecAnalysis->GetCorrectedHadEtPHOSAcceptanceTPC() );
-    fMCAnalysis->FillSimHadEtMinusRecoHadEtPHOSAcceptanceITS( fRecAnalysis->GetCorrectedHadEtPHOSAcceptanceITS() );
+//     fMCAnalysis->FillSimHadEtMinusRecoHadEtEMCALAcceptanceTPC( fRecAnalysis->GetCorrectedHadEtEMCALAcceptanceTPC() );
+//     fMCAnalysis->FillSimHadEtMinusRecoHadEtEMCALAcceptanceITS( fRecAnalysis->GetCorrectedHadEtEMCALAcceptanceITS() );
+//     fMCAnalysis->FillSimHadEtMinusRecoHadEtPHOSAcceptanceTPC( fRecAnalysis->GetCorrectedHadEtPHOSAcceptanceTPC() );
+//     fMCAnalysis->FillSimHadEtMinusRecoHadEtPHOSAcceptanceITS( fRecAnalysis->GetCorrectedHadEtPHOSAcceptanceITS() );
     fMCAnalysis->FillSimHadEtMinusRecoHadEtFullAcceptanceTPCNoPID( fRecAnalysis->GetCorrectedHadEtFullAcceptanceTPCNoPID() );
     fMCAnalysis->FillSimHadEtMinusRecoHadEtFullAcceptanceITSNoPID( fRecAnalysis->GetCorrectedHadEtFullAcceptanceITSNoPID() );
-    fMCAnalysis->FillSimHadEtMinusRecoHadEtEMCALAcceptanceTPCNoPID( fRecAnalysis->GetCorrectedHadEtEMCALAcceptanceTPCNoPID() );
-    fMCAnalysis->FillSimHadEtMinusRecoHadEtEMCALAcceptanceITSNoPID( fRecAnalysis->GetCorrectedHadEtEMCALAcceptanceITSNoPID() );
-    fMCAnalysis->FillSimHadEtMinusRecoHadEtPHOSAcceptanceTPCNoPID( fRecAnalysis->GetCorrectedHadEtPHOSAcceptanceTPCNoPID() );
-    fMCAnalysis->FillSimHadEtMinusRecoHadEtPHOSAcceptanceITSNoPID( fRecAnalysis->GetCorrectedHadEtPHOSAcceptanceITSNoPID() );
+//     fMCAnalysis->FillSimHadEtMinusRecoHadEtEMCALAcceptanceTPCNoPID( fRecAnalysis->GetCorrectedHadEtEMCALAcceptanceTPCNoPID() );
+//     fMCAnalysis->FillSimHadEtMinusRecoHadEtEMCALAcceptanceITSNoPID( fRecAnalysis->GetCorrectedHadEtEMCALAcceptanceITSNoPID() );
+//     fMCAnalysis->FillSimHadEtMinusRecoHadEtPHOSAcceptanceTPCNoPID( fRecAnalysis->GetCorrectedHadEtPHOSAcceptanceTPCNoPID() );
+//     fMCAnalysis->FillSimHadEtMinusRecoHadEtPHOSAcceptanceITSNoPID( fRecAnalysis->GetCorrectedHadEtPHOSAcceptanceITSNoPID() );
+
+
+    fMCAnalysis->FillSimTotEtMinusRawEtFullAcceptanceTPC( fRecAnalysis->GetRawEtFullAcceptanceTPC() );
+    fMCAnalysis->FillSimTotEtMinusRawEtFullAcceptanceITS( fRecAnalysis->GetRawEtFullAcceptanceITS() );
+//     fMCAnalysis->FillSimTotEtMinusRawTotEtEMCALAcceptanceTPC( fRecAnalysis->GetRawEtEMCALAcceptanceTPC() );
+//     fMCAnalysis->FillSimTotEtMinusRawTotEtEMCALAcceptanceITS( fRecAnalysis->GetRawEtEMCALAcceptanceITS() );
+//     fMCAnalysis->FillSimTotEtMinusRawTotEtPHOSAcceptanceTPC( fRecAnalysis->GetRawEtPHOSAcceptanceTPC() );
+//     fMCAnalysis->FillSimTotEtMinusRawTotEtPHOSAcceptanceITS( fRecAnalysis->GetRawEtPHOSAcceptanceITS() );
+
+    fMCAnalysis->FillSimHadEtMinusRawEtFullAcceptanceTPC( fRecAnalysis->GetRawEtFullAcceptanceTPC() );
+    fMCAnalysis->FillSimHadEtMinusRawEtFullAcceptanceITS( fRecAnalysis->GetRawEtFullAcceptanceITS() );
+//     fMCAnalysis->FillSimHadEtMinusRawHadEtEMCALAcceptanceTPC( fRecAnalysis->GetRawEtEMCALAcceptanceTPC() );
+//     fMCAnalysis->FillSimHadEtMinusRawHadEtEMCALAcceptanceITS( fRecAnalysis->GetRawEtEMCALAcceptanceITS() );
+//     fMCAnalysis->FillSimHadEtMinusRawHadEtPHOSAcceptanceTPC( fRecAnalysis->GetRawEtPHOSAcceptanceTPC() );
+//     fMCAnalysis->FillSimHadEtMinusRawHadEtPHOSAcceptanceITS( fRecAnalysis->GetRawEtPHOSAcceptanceITS() );
+
+
   }
 
 // Post output data.
 PostData(1, fOutputList);
 }
 
 //________________________________________________________________________