]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWG4/totEt/AliAnalysisHadEtReconstructed.cxx
Another pass at fixing coverity issues
[u/mrichter/AliRoot.git] / PWG4 / totEt / AliAnalysisHadEtReconstructed.cxx
index 1ef2f3957bff48958ba8898cd159836dcf3fdfe8..38b67f47fc192c12ddac9b29e573b7d31604ac92 100644 (file)
@@ -24,6 +24,9 @@
 #include "AliAnalysisHadEtCorrections.h"
 #include "TFile.h"
 #include "TString.h"
+#include "AliAnalysisEtCommon.h"
+#include "AliAnalysisHadEt.h"
+#include "AliLog.h"
 
 using namespace std;
 
@@ -34,44 +37,49 @@ AliAnalysisHadEtReconstructed::AliAnalysisHadEtReconstructed() :
         AliAnalysisHadEt()
        ,fCorrections(0)
        ,fConfigFile("ConfigHadEtAnalysis.C")
-    ,fCorrTotEtFullAcceptanceTPC(0)
-    ,fCorrTotEtFullAcceptanceITS(0)
-    ,fCorrHadEtFullAcceptanceTPC(0)
-    ,fCorrHadEtFullAcceptanceITS(0)
-    ,fCorrTotEtEMCALAcceptanceTPC(0)
-    ,fCorrTotEtEMCALAcceptanceITS(0)
-    ,fCorrHadEtEMCALAcceptanceTPC(0)
-    ,fCorrHadEtEMCALAcceptanceITS(0)
-    ,fCorrTotEtPHOSAcceptanceTPC(0)
-    ,fCorrTotEtPHOSAcceptanceITS(0)
-    ,fCorrHadEtPHOSAcceptanceTPC(0)
-    ,fCorrHadEtPHOSAcceptanceITS(0)
-    ,fCorrectedHadEtFullAcceptanceTPCNoPID(0)
-    ,fCorrectedHadEtFullAcceptanceITSNoPID(0)
-    ,fCorrectedHadEtEMCALAcceptanceTPCNoPID(0)
-    ,fCorrectedHadEtEMCALAcceptanceITSNoPID(0)
-    ,fCorrectedHadEtPHOSAcceptanceTPCNoPID(0)
-    ,fCorrectedHadEtPHOSAcceptanceITSNoPID(0)
-    ,fCorrectedHadEtFullAcceptanceTPC(0)
-    ,fCorrectedHadEtFullAcceptanceITS(0)
-    ,fCorrectedHadEtEMCALAcceptanceTPC(0)
-    ,fCorrectedHadEtEMCALAcceptanceITS(0)
-    ,fCorrectedHadEtPHOSAcceptanceTPC(0)
-    ,fCorrectedHadEtPHOSAcceptanceITS(0)
-    ,fRawEtFullAcceptanceTPC(0)
-    ,fRawEtFullAcceptanceITS(0)
-    ,fRawEtEMCALAcceptanceTPC(0)
-    ,fRawEtEMCALAcceptanceITS(0)
-    ,fRawEtPHOSAcceptanceTPC(0)
-    ,fRawEtPHOSAcceptanceITS(0)
-    ,fRawEtFullAcceptanceTPCNoPID(0)
-    ,fRawEtFullAcceptanceITSNoPID(0)
-    ,fRawEtEMCALAcceptanceTPCNoPID(0)
-    ,fRawEtEMCALAcceptanceITSNoPID(0)
-    ,fRawEtPHOSAcceptanceTPCNoPID(0)
-    ,fRawEtPHOSAcceptanceITSNoPID(0)
+       ,fCorrTotEtFullAcceptanceTPC(0)
+       ,fCorrTotEtFullAcceptanceITS(0)
+       ,fCorrHadEtFullAcceptanceTPC(0)
+       ,fCorrHadEtFullAcceptanceITS(0)
+       ,fCorrTotEtEMCALAcceptanceTPC(0)
+       ,fCorrTotEtEMCALAcceptanceITS(0)
+       ,fCorrHadEtEMCALAcceptanceTPC(0)
+       ,fCorrHadEtEMCALAcceptanceITS(0)
+       ,fCorrTotEtPHOSAcceptanceTPC(0)
+       ,fCorrTotEtPHOSAcceptanceITS(0)
+       ,fCorrHadEtPHOSAcceptanceTPC(0)
+       ,fCorrHadEtPHOSAcceptanceITS(0)
+       ,fCorrectedHadEtFullAcceptanceTPCNoPID(0)
+       ,fCorrectedHadEtFullAcceptanceITSNoPID(0)
+       ,fCorrectedHadEtEMCALAcceptanceTPCNoPID(0)
+       ,fCorrectedHadEtEMCALAcceptanceITSNoPID(0)
+       ,fCorrectedHadEtPHOSAcceptanceTPCNoPID(0)
+       ,fCorrectedHadEtPHOSAcceptanceITSNoPID(0)
+       ,fCorrectedHadEtFullAcceptanceTPC(0)
+       ,fCorrectedHadEtFullAcceptanceITS(0)
+       ,fCorrectedHadEtFullAcceptanceTPCAssumingPion(0)
+       ,fCorrectedHadEtFullAcceptanceITSAssumingPion(0)
+       ,fCorrectedHadEtFullAcceptanceTPCAssumingProton(0)
+       ,fCorrectedHadEtFullAcceptanceITSAssumingProton(0)
+       ,fCorrectedHadEtFullAcceptanceTPCAssumingKaon(0)
+       ,fCorrectedHadEtFullAcceptanceITSAssumingKaon(0)
+       ,fCorrectedHadEtEMCALAcceptanceTPC(0)
+       ,fCorrectedHadEtEMCALAcceptanceITS(0)
+       ,fCorrectedHadEtPHOSAcceptanceTPC(0)
+       ,fCorrectedHadEtPHOSAcceptanceITS(0)
+       ,fRawEtFullAcceptanceTPC(0)
+       ,fRawEtFullAcceptanceITS(0)
+       ,fRawEtEMCALAcceptanceTPC(0)
+       ,fRawEtEMCALAcceptanceITS(0)
+       ,fRawEtPHOSAcceptanceTPC(0)
+       ,fRawEtPHOSAcceptanceITS(0)
+       ,fRawEtFullAcceptanceTPCNoPID(0)
+       ,fRawEtFullAcceptanceITSNoPID(0)
+       ,fRawEtEMCALAcceptanceTPCNoPID(0)
+       ,fRawEtEMCALAcceptanceITSNoPID(0)
+       ,fRawEtPHOSAcceptanceTPCNoPID(0)
+       ,fRawEtPHOSAcceptanceITSNoPID(0)
 {
-
 }
 
 AliAnalysisHadEtReconstructed::~AliAnalysisHadEtReconstructed() 
@@ -82,23 +90,30 @@ AliAnalysisHadEtReconstructed::~AliAnalysisHadEtReconstructed()
 Int_t AliAnalysisHadEtReconstructed::AnalyseEvent(AliVEvent* ev)
 { // analyse ESD event
     ResetEventValues();
+  if(!ev){
+    AliFatal("ERROR: Event does not exist");   
+    return 0;
+  }
 
     AliESDEvent *realEvent = dynamic_cast<AliESDEvent*>(ev);
+    if(!realEvent){  
+      AliFatal("ERROR: ESD Event does not exist");
+      return 0;
+    }
     //for PID
     AliESDpid *pID = new AliESDpid();
     pID->MakePID(realEvent);
-
     TString *strTPC = new TString("TPC");
     TString *strITS = new TString("ITS");
     TString *strTPCITS = new TString("TPCITS");
-    bool isTPC = false;
     for(Int_t cutset=0;cutset<2;cutset++){
-      TString *cutName;
-      TObjArray* list;
+      bool isTPC = false;
+      TString *cutName = NULL;
+      TObjArray* list = NULL;
       switch(cutset){
       case 0:
-       cutName = strTPC;
-       list = fEsdtrackCutsTPC->GetAcceptedTracks(realEvent);
+       cutName = strTPCITS;
+       list = fEsdtrackCutsITSTPC->GetAcceptedTracks(realEvent);
        isTPC = true;
        break;
       case 1:
@@ -106,15 +121,14 @@ Int_t AliAnalysisHadEtReconstructed::AnalyseEvent(AliVEvent* ev)
        list = fEsdtrackCutsITS->GetAcceptedTracks(realEvent);
        break;
       case 2:
-       cutName = strTPCITS;
-       list = fEsdtrackCutsITSTPC->GetAcceptedTracks(realEvent);
+       cutName = strTPC;
+       list = fEsdtrackCutsTPC->GetAcceptedTracks(realEvent);
        break;
       default:
        cerr<<"Error:  cannot fill histograms!"<<endl;
        return -1;
       }
       Int_t nGoodTracks = list->GetEntries();
-      //cout<<nGoodTracks<<" "<<cutName->Data()<<" tracks"<<endl;
       for (Int_t iTrack = 0; iTrack < nGoodTracks; iTrack++)
        {
 
@@ -128,7 +142,6 @@ Int_t AliAnalysisHadEtReconstructed::AnalyseEvent(AliVEvent* ev)
          else{
            if(TMath::Abs(track->Eta())>fCorrections->GetEtaCut()) continue;
            Float_t nSigmaPion,nSigmaProton,nSigmaKaon,nSigmaElectron;
-           
            if(cutset!=1){
              nSigmaPion = TMath::Abs(pID->NumberOfSigmasTPC(track,AliPID::kPion));
              nSigmaProton = TMath::Abs(pID->NumberOfSigmasTPC(track,AliPID::kProton));
@@ -141,48 +154,55 @@ Int_t AliAnalysisHadEtReconstructed::AnalyseEvent(AliVEvent* ev)
              nSigmaKaon = TMath::Abs(pID->NumberOfSigmasITS(track,AliPID::kKaon));
              nSigmaElectron = TMath::Abs(pID->NumberOfSigmasITS(track,AliPID::kElectron));
            }
-           bool isPion = (nSigmaPion<3.0 && nSigmaProton>2.0 && nSigmaKaon>2.0);
-           bool isElectron = (nSigmaElectron<2.0 && nSigmaPion>4.0 && nSigmaProton>3.0 && nSigmaKaon>3.0);
-           bool isKaon = (nSigmaPion>3.0 && nSigmaProton>2.0 && nSigmaKaon<2.0);
-           bool isProton = (nSigmaPion>3.0 && nSigmaProton<2.0 && nSigmaKaon>2.0);
-
-           //bool IsElectron = false;
-           bool unidentified = (!isProton && !isKaon && !isElectron);
+//         bool isPion = (nSigmaPion<3.0 && nSigmaProton>2.0 && nSigmaKaon>2.0);
+//         bool isElectron = (nSigmaElectron<2.0 && nSigmaPion>4.0 && nSigmaProton>3.0 && nSigmaKaon>3.0);
+//         bool isKaon = (nSigmaPion>3.0 && nSigmaProton>2.0 && nSigmaKaon<2.0);
+//         bool isProton = (nSigmaPion>3.0 && nSigmaProton<2.0 && nSigmaKaon>2.0);
+         bool isPion = (nSigmaPion<3.0 && nSigmaProton>2.0 && nSigmaKaon>2.0);
+         bool isElectron = (nSigmaElectron<2.0 && nSigmaPion>4.0 && nSigmaProton>3.0 && nSigmaKaon>3.0);
+         bool isKaon = (nSigmaPion>3.0 && nSigmaProton>3.0 && nSigmaKaon<3.0 && track->Pt()<0.45);
+         bool isProton = (nSigmaPion>3.0 && nSigmaProton<3.0 && nSigmaKaon>3.0 && track->Pt()<0.9);
+
+           bool unidentified = (!isProton && !isKaon && !isElectron && !isPion);
            Float_t dEdx = track->GetTPCsignal();
            if(cutset==1) dEdx = track->GetITSsignal();
            FillHisto2D(Form("dEdxDataAll%s",cutName->Data()),track->P(),dEdx,1.0);
 
            bool inPHOS = IsInPHOS(track);
            bool inEMCAL = IsInEMCAL(track);
-           //if(!(fCorrections->GetEfficiencyPionTPC())) cerr<<"Uh-oh!  No histogram!"<<endl;
 
            Float_t corrBkgd=0.0;
            Float_t corrNotID=0.0;
-           Float_t corrNoID = fCorrections->GetNotIDCorrectionNoPID(track->Pt());
+           Float_t corrNoID=0.0;// = fCorrections->GetNotIDCorrectionNoPID(track->Pt());
            Float_t corrEff = 0.0;
            Float_t corrEffNoID = 0.0;
            if(cutset==0){//TPC
              corrBkgd = fCorrections->GetBackgroundCorrectionTPC(track->Pt());
              corrEffNoID = fCorrections->GetTPCEfficiencyCorrectionHadron(track->Pt());
-             corrNotID = fCorrections->GetNotIDCorrectionTPC(track->Pt());
+             corrNotID = fCorrections->GetNotIDConstCorrectionTPC();
+             corrNoID = fCorrections->GetNotIDConstCorrectionTPCNoID();
            }
            if(cutset==1){//ITS
              corrBkgd = fCorrections->GetBackgroundCorrectionITS(track->Pt());
-             //corrEffNoID = fCorrections->GetITSEfficiencyCorrectionHadron(track->Pt());
-             corrNotID = fCorrections->GetNotIDCorrectionITS(track->Pt());
+             corrEffNoID = fCorrections->GetITSEfficiencyCorrectionHadron(track->Pt());
+             corrNotID = fCorrections->GetNotIDConstCorrectionITS();
+             corrNoID = fCorrections->GetNotIDConstCorrectionITSNoID();
            }
            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 etpartialcorrectedPion = 0.0;
+           Float_t etpartialcorrectedKaon = 0.0;
+           Float_t etpartialcorrectedProton = 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;
+             etpartialcorrected = et*corrBkgd*corrEff*corrNotID;
              
              if(track->Charge()>0.0){
                FillHisto2D(Form("EtDataRaw%sPiPlus",cutName->Data()),track->Pt(),track->Eta(),et);
@@ -195,10 +215,10 @@ 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;
+             etpartialcorrected = et*corrBkgd*corrEff*corrNotID;
              
              if(track->Charge()>0.0){
                FillHisto2D(Form("EtDataRaw%sKPlus",cutName->Data()),track->Pt(),track->Eta(),et);
@@ -211,10 +231,10 @@ 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;
+             etpartialcorrected = et*corrBkgd*corrEff*corrNotID;
              
              if(track->Charge()>0.0){
                FillHisto2D(Form("EtDataRaw%sProton",cutName->Data()),track->Pt(),track->Eta(),et);
@@ -227,99 +247,86 @@ 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){
+             //if(!isPion) 
              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());
+             Float_t etProton = Et(track->P(),track->Theta(),fgProtonCode,track->Charge());
+             Float_t etKaon = Et(track->P(),track->Theta(),fgKPlusCode,track->Charge());
              etpartialcorrected = et*corrBkgd*corrEffNoID*corrNotID;
+             etpartialcorrectedPion = et*corrBkgd*corrEffNoID;
+             etpartialcorrectedProton = etProton*corrBkgd*corrEffNoID;
+             etpartialcorrectedKaon = etKaon*corrBkgd*corrEffNoID;
+             //if(!isPion) 
              FillHisto2D(Form("EtDataCorrected%sUnidentified",cutName->Data()),track->Pt(),track->Eta(),etpartialcorrected);
            }
-           if(!isTPC) etpartialcorrected = etpartialcorrectedNoID;//Not using PID for ITS
-           AddEt(et,etNoID,etpartialcorrected,etpartialcorrectedNoID,track->Pt(),isTPC,inPHOS,inEMCAL);
-           //if(inEMCAL) cout<<"I should add a track"<<endl;
+           else{
+             etpartialcorrectedPion = etpartialcorrected;
+             etpartialcorrectedKaon = etpartialcorrected;
+             etpartialcorrectedProton = etpartialcorrected;
+           }
+           if(!isTPC){
+             etpartialcorrected = etpartialcorrectedNoID;//Not using PID for ITS
+           }
+           AddEt(et,etNoID,etpartialcorrected,etpartialcorrectedPion,etpartialcorrectedProton,etpartialcorrectedKaon,etpartialcorrectedNoID,track->Pt(),isTPC,inPHOS,inEMCAL);
          }
        }
+      delete list;
     }
-//   cout<<"Finishing with Raw/Corrected Et in full, PHOS, EMCAL acceptance of "
-//       << GetRawEtFullAcceptanceITS() <<"/"
-//       << GetCorrectedHadEtFullAcceptanceITS() <<", "
-//       << GetRawEtPHOSAcceptanceITS() <<"/"
-//       << GetCorrectedHadEtPHOSAcceptanceITS() <<", "
-//       << GetRawEtEMCALAcceptanceITS() <<"/"
-//       << GetCorrectedHadEtEMCALAcceptanceITS() <<endl;
-//   cout<<"Finishing with Raw/Corrected Et w/o PID in full, PHOS, EMCAL acceptance of "
-//       << GetRawEtFullAcceptanceITSNoPID() <<"/"
-//       << GetCorrectedHadEtFullAcceptanceITSNoPID() <<", "
-//       << GetRawEtPHOSAcceptanceITSNoPID() <<"/"
-//       << GetCorrectedHadEtPHOSAcceptanceITSNoPID() <<", "
-//       << GetRawEtEMCALAcceptanceITSNoPID() <<"/"
-//       << GetCorrectedHadEtEMCALAcceptanceITSNoPID() <<endl;
-//   cout<<"Finishing with Raw/Corrected Et in full, PHOS, EMCAL acceptance of "
-//       << GetRawEtFullAcceptanceTPC() <<"/"
-//       << GetCorrectedHadEtFullAcceptanceTPC() <<", "
-//       << GetRawEtPHOSAcceptanceTPC() <<"/"
-//       << GetCorrectedHadEtPHOSAcceptanceTPC() <<", "
-//       << GetRawEtEMCALAcceptanceTPC() <<"/"
-//       << GetCorrectedHadEtEMCALAcceptanceTPC() <<endl;
-//   cout<<"Finishing with Raw/Corrected Et w/o PID in full, PHOS, EMCAL acceptance of "
-//       << GetRawEtFullAcceptanceTPCNoPID() <<"/"
-//       << GetCorrectedHadEtFullAcceptanceTPCNoPID() <<", "
-//       << GetRawEtPHOSAcceptanceTPCNoPID() <<"/"
-//       << GetCorrectedHadEtPHOSAcceptanceTPCNoPID() <<", "
-//       << GetRawEtEMCALAcceptanceTPCNoPID() <<"/"
-//       << GetCorrectedHadEtEMCALAcceptanceTPCNoPID() <<endl;
-//   cout<<"Correction factors "
-//       <<fCorrTotEtFullAcceptanceTPC<<", "<<fCorrTotEtFullAcceptanceITS<<", "<<fCorrHadEtFullAcceptanceTPC<<", "<<fCorrHadEtFullAcceptanceITS<<","
-//       <<fCorrTotEtEMCALAcceptanceTPC<<", "<<fCorrTotEtEMCALAcceptanceITS<<", "<<fCorrHadEtEMCALAcceptanceTPC<<", "<<fCorrHadEtEMCALAcceptanceITS<<","
-//       <<fCorrTotEtPHOSAcceptanceTPC<<", "<<fCorrTotEtPHOSAcceptanceITS<<", "<<fCorrHadEtPHOSAcceptanceTPC<<", "<<fCorrHadEtPHOSAcceptanceITS<<endl;
-    FillHisto1D("RecoHadEtFullAcceptanceTPC",GetCorrectedHadEtFullAcceptanceTPC(),1.0);
-    FillHisto1D("RecoTotEtFullAcceptanceTPC",GetCorrectedTotEtFullAcceptanceTPC(),1.0);
-    FillHisto1D("RecoHadEtEMCALAcceptanceTPC",GetCorrectedHadEtEMCALAcceptanceTPC(),1.0);
-    FillHisto1D("RecoTotEtEMCALAcceptanceTPC",GetCorrectedTotEtEMCALAcceptanceTPC(),1.0);
-    FillHisto1D("RecoHadEtPHOSAcceptanceTPC",GetCorrectedHadEtPHOSAcceptanceTPC(),1.0);
-    FillHisto1D("RecoTotEtPHOSAcceptanceTPC",GetCorrectedTotEtPHOSAcceptanceTPC(),1.0);
-    FillHisto1D("RecoHadEtFullAcceptanceTPCNoPID",GetCorrectedHadEtFullAcceptanceTPCNoPID(),1.0);
-    FillHisto1D("RecoTotEtFullAcceptanceTPCNoPID",GetCorrectedTotEtFullAcceptanceTPCNoPID(),1.0);
-    FillHisto1D("RecoHadEtEMCALAcceptanceTPCNoPID",GetCorrectedHadEtEMCALAcceptanceTPCNoPID(),1.0);
-    FillHisto1D("RecoTotEtEMCALAcceptanceTPCNoPID",GetCorrectedTotEtEMCALAcceptanceTPCNoPID(),1.0);
-    FillHisto1D("RecoHadEtPHOSAcceptanceTPCNoPID",GetCorrectedHadEtPHOSAcceptanceTPCNoPID(),1.0);
-    FillHisto1D("RecoTotEtPHOSAcceptanceTPCNoPID",GetCorrectedTotEtPHOSAcceptanceTPCNoPID(),1.0);
-    FillHisto1D("RecoHadEtFullAcceptanceITS",GetCorrectedHadEtFullAcceptanceITS(),1.0);
-    FillHisto1D("RecoTotEtFullAcceptanceITS",GetCorrectedTotEtFullAcceptanceITS(),1.0);
-    FillHisto1D("RecoHadEtEMCALAcceptanceITS",GetCorrectedHadEtEMCALAcceptanceITS(),1.0);
-    FillHisto1D("RecoTotEtEMCALAcceptanceITS",GetCorrectedTotEtEMCALAcceptanceITS(),1.0);
-    FillHisto1D("RecoHadEtPHOSAcceptanceITS",GetCorrectedHadEtPHOSAcceptanceITS(),1.0);
-    FillHisto1D("RecoTotEtPHOSAcceptanceITS",GetCorrectedTotEtPHOSAcceptanceITS(),1.0);
-    FillHisto1D("RecoHadEtFullAcceptanceITSNoPID",GetCorrectedHadEtFullAcceptanceITSNoPID(),1.0);
-    FillHisto1D("RecoTotEtFullAcceptanceITSNoPID",GetCorrectedTotEtFullAcceptanceITSNoPID(),1.0);
-    FillHisto1D("RecoHadEtEMCALAcceptanceITSNoPID",GetCorrectedHadEtEMCALAcceptanceITSNoPID(),1.0);
-    FillHisto1D("RecoTotEtEMCALAcceptanceITSNoPID",GetCorrectedTotEtEMCALAcceptanceITSNoPID(),1.0);
-    FillHisto1D("RecoHadEtPHOSAcceptanceITSNoPID",GetCorrectedHadEtPHOSAcceptanceITSNoPID(),1.0);
-    FillHisto1D("RecoTotEtPHOSAcceptanceITSNoPID",GetCorrectedTotEtPHOSAcceptanceITSNoPID(),1.0);
-
-    FillHisto1D("RecoRawEtFullAcceptanceTPC",GetRawEtFullAcceptanceTPC(),1.0);
-    FillHisto1D("RecoRawEtEMCALAcceptanceTPC",GetRawEtEMCALAcceptanceTPC(),1.0);
-    FillHisto1D("RecoRawEtPHOSAcceptanceTPC",GetRawEtPHOSAcceptanceTPC(),1.0);
-    FillHisto1D("RecoRawEtFullAcceptanceTPCNoPID",GetRawEtFullAcceptanceTPCNoPID(),1.0);
-    FillHisto1D("RecoRawEtEMCALAcceptanceTPCNoPID",GetRawEtEMCALAcceptanceTPCNoPID(),1.0);
-    FillHisto1D("RecoRawEtPHOSAcceptanceTPCNoPID",GetRawEtPHOSAcceptanceTPCNoPID(),1.0);
-    FillHisto1D("RecoRawEtFullAcceptanceITS",GetRawEtFullAcceptanceITS(),1.0);
-    FillHisto1D("RecoRawEtEMCALAcceptanceITS",GetRawEtEMCALAcceptanceITS(),1.0);
-    FillHisto1D("RecoRawEtPHOSAcceptanceITS",GetRawEtPHOSAcceptanceITS(),1.0);
-    FillHisto1D("RecoRawEtFullAcceptanceITSNoPID",GetRawEtFullAcceptanceITSNoPID(),1.0);
-    FillHisto1D("RecoRawEtEMCALAcceptanceITSNoPID",GetRawEtEMCALAcceptanceITSNoPID(),1.0);
-    FillHisto1D("RecoRawEtPHOSAcceptanceITSNoPID",GetRawEtPHOSAcceptanceITSNoPID(),1.0);
+    if(GetCorrectedHadEtFullAcceptanceTPC()>0.0)FillHisto1D("RecoHadEtFullAcceptanceTPC",GetCorrectedHadEtFullAcceptanceTPC(),1.0);
+    if(GetCorrectedTotEtFullAcceptanceTPC()>0.0)FillHisto1D("RecoTotEtFullAcceptanceTPC",GetCorrectedTotEtFullAcceptanceTPC(),1.0);
+    if(GetCorrectedHadEtFullAcceptanceTPCAssumingPion()>0.0)FillHisto1D("RecoHadEtFullAcceptanceTPCAssumingPion",GetCorrectedHadEtFullAcceptanceTPCAssumingPion(),1.0);
+    if(GetCorrectedHadEtFullAcceptanceTPCAssumingProton()>0.0)FillHisto1D("RecoHadEtFullAcceptanceTPCAssumingProton",GetCorrectedHadEtFullAcceptanceTPCAssumingProton(),1.0);
+    if(GetCorrectedHadEtFullAcceptanceTPCAssumingKaon()>0.0)FillHisto1D("RecoHadEtFullAcceptanceTPCAssumingKaon",GetCorrectedHadEtFullAcceptanceTPCAssumingKaon(),1.0);
+    if(GetCorrectedHadEtEMCALAcceptanceTPC()>0.0)FillHisto1D("RecoHadEtEMCALAcceptanceTPC",GetCorrectedHadEtEMCALAcceptanceTPC(),1.0);
+    if(GetCorrectedTotEtEMCALAcceptanceTPC()>0.0)FillHisto1D("RecoTotEtEMCALAcceptanceTPC",GetCorrectedTotEtEMCALAcceptanceTPC(),1.0);
+    if(GetCorrectedHadEtPHOSAcceptanceTPC()>0.0)FillHisto1D("RecoHadEtPHOSAcceptanceTPC",GetCorrectedHadEtPHOSAcceptanceTPC(),1.0);
+    if(GetCorrectedTotEtPHOSAcceptanceTPC()>0.0)FillHisto1D("RecoTotEtPHOSAcceptanceTPC",GetCorrectedTotEtPHOSAcceptanceTPC(),1.0);
+    if(GetCorrectedHadEtFullAcceptanceTPCNoPID()>0.0)FillHisto1D("RecoHadEtFullAcceptanceTPCNoPID",GetCorrectedHadEtFullAcceptanceTPCNoPID(),1.0);
+    if(GetCorrectedTotEtFullAcceptanceTPCNoPID()>0.0)FillHisto1D("RecoTotEtFullAcceptanceTPCNoPID",GetCorrectedTotEtFullAcceptanceTPCNoPID(),1.0);
+    if(GetCorrectedHadEtEMCALAcceptanceTPCNoPID()>0.0)FillHisto1D("RecoHadEtEMCALAcceptanceTPCNoPID",GetCorrectedHadEtEMCALAcceptanceTPCNoPID(),1.0);
+    if(GetCorrectedTotEtEMCALAcceptanceTPCNoPID()>0.0)FillHisto1D("RecoTotEtEMCALAcceptanceTPCNoPID",GetCorrectedTotEtEMCALAcceptanceTPCNoPID(),1.0);
+    if(GetCorrectedHadEtPHOSAcceptanceTPCNoPID()>0.0)FillHisto1D("RecoHadEtPHOSAcceptanceTPCNoPID",GetCorrectedHadEtPHOSAcceptanceTPCNoPID(),1.0);
+    if(GetCorrectedTotEtPHOSAcceptanceTPCNoPID()>0.0)FillHisto1D("RecoTotEtPHOSAcceptanceTPCNoPID",GetCorrectedTotEtPHOSAcceptanceTPCNoPID(),1.0);
+    if(GetCorrectedHadEtFullAcceptanceITS()>0.0)FillHisto1D("RecoHadEtFullAcceptanceITS",GetCorrectedHadEtFullAcceptanceITS(),1.0);
+    if(GetCorrectedHadEtFullAcceptanceITSAssumingPion()>0.0)FillHisto1D("RecoHadEtFullAcceptanceITSAssumingPion",GetCorrectedHadEtFullAcceptanceITSAssumingPion(),1.0);
+    if(GetCorrectedHadEtFullAcceptanceITSAssumingProton()>0.0)FillHisto1D("RecoHadEtFullAcceptanceITSAssumingProton",GetCorrectedHadEtFullAcceptanceITSAssumingProton(),1.0);
+    if(GetCorrectedHadEtFullAcceptanceITSAssumingKaon()>0.0)FillHisto1D("RecoHadEtFullAcceptanceITSAssumingKaon",GetCorrectedHadEtFullAcceptanceITSAssumingKaon(),1.0);
+    if(GetCorrectedTotEtFullAcceptanceITS()>0.0)FillHisto1D("RecoTotEtFullAcceptanceITS",GetCorrectedTotEtFullAcceptanceITS(),1.0);
+    if(GetCorrectedHadEtEMCALAcceptanceITS()>0.0)FillHisto1D("RecoHadEtEMCALAcceptanceITS",GetCorrectedHadEtEMCALAcceptanceITS(),1.0);
+    if(GetCorrectedTotEtEMCALAcceptanceITS()>0.0)FillHisto1D("RecoTotEtEMCALAcceptanceITS",GetCorrectedTotEtEMCALAcceptanceITS(),1.0);
+    if(GetCorrectedHadEtPHOSAcceptanceITS()>0.0)FillHisto1D("RecoHadEtPHOSAcceptanceITS",GetCorrectedHadEtPHOSAcceptanceITS(),1.0);
+    if(GetCorrectedTotEtPHOSAcceptanceITS()>0.0)FillHisto1D("RecoTotEtPHOSAcceptanceITS",GetCorrectedTotEtPHOSAcceptanceITS(),1.0);
+    if(GetCorrectedHadEtFullAcceptanceITSNoPID()>0.0)FillHisto1D("RecoHadEtFullAcceptanceITSNoPID",GetCorrectedHadEtFullAcceptanceITSNoPID(),1.0);
+    if(GetCorrectedTotEtFullAcceptanceITSNoPID()>0.0)FillHisto1D("RecoTotEtFullAcceptanceITSNoPID",GetCorrectedTotEtFullAcceptanceITSNoPID(),1.0);
+    if(GetCorrectedHadEtEMCALAcceptanceITSNoPID()>0.0)FillHisto1D("RecoHadEtEMCALAcceptanceITSNoPID",GetCorrectedHadEtEMCALAcceptanceITSNoPID(),1.0);
+    if(GetCorrectedTotEtEMCALAcceptanceITSNoPID()>0.0)FillHisto1D("RecoTotEtEMCALAcceptanceITSNoPID",GetCorrectedTotEtEMCALAcceptanceITSNoPID(),1.0);
+    if(GetCorrectedHadEtPHOSAcceptanceITSNoPID()>0.0)FillHisto1D("RecoHadEtPHOSAcceptanceITSNoPID",GetCorrectedHadEtPHOSAcceptanceITSNoPID(),1.0);
+    if(GetCorrectedTotEtPHOSAcceptanceITSNoPID()>0.0)FillHisto1D("RecoTotEtPHOSAcceptanceITSNoPID",GetCorrectedTotEtPHOSAcceptanceITSNoPID(),1.0);
+
+    if(GetRawEtFullAcceptanceTPC()>0.0)FillHisto1D("RecoRawEtFullAcceptanceTPC",GetRawEtFullAcceptanceTPC(),1.0);
+    if(GetRawEtEMCALAcceptanceTPC()>0.0)FillHisto1D("RecoRawEtEMCALAcceptanceTPC",GetRawEtEMCALAcceptanceTPC(),1.0);
+    if(GetRawEtPHOSAcceptanceTPC()>0.0)FillHisto1D("RecoRawEtPHOSAcceptanceTPC",GetRawEtPHOSAcceptanceTPC(),1.0);
+    if(GetRawEtFullAcceptanceTPCNoPID()>0.0)FillHisto1D("RecoRawEtFullAcceptanceTPCNoPID",GetRawEtFullAcceptanceTPCNoPID(),1.0);
+    if(GetRawEtEMCALAcceptanceTPCNoPID()>0.0)FillHisto1D("RecoRawEtEMCALAcceptanceTPCNoPID",GetRawEtEMCALAcceptanceTPCNoPID(),1.0);
+    if(GetRawEtPHOSAcceptanceTPCNoPID()>0.0)FillHisto1D("RecoRawEtPHOSAcceptanceTPCNoPID",GetRawEtPHOSAcceptanceTPCNoPID(),1.0);
+    if(GetRawEtFullAcceptanceITS()>0.0)FillHisto1D("RecoRawEtFullAcceptanceITS",GetRawEtFullAcceptanceITS(),1.0);
+    if(GetRawEtEMCALAcceptanceITS()>0.0)FillHisto1D("RecoRawEtEMCALAcceptanceITS",GetRawEtEMCALAcceptanceITS(),1.0);
+    if(GetRawEtPHOSAcceptanceITS()>0.0)FillHisto1D("RecoRawEtPHOSAcceptanceITS",GetRawEtPHOSAcceptanceITS(),1.0);
+    if(GetRawEtFullAcceptanceITSNoPID()>0.0)FillHisto1D("RecoRawEtFullAcceptanceITSNoPID",GetRawEtFullAcceptanceITSNoPID(),1.0);
+    if(GetRawEtEMCALAcceptanceITSNoPID()>0.0)FillHisto1D("RecoRawEtEMCALAcceptanceITSNoPID",GetRawEtEMCALAcceptanceITSNoPID(),1.0);
+    if(GetRawEtPHOSAcceptanceITSNoPID()>0.0)FillHisto1D("RecoRawEtPHOSAcceptanceITSNoPID",GetRawEtPHOSAcceptanceITSNoPID(),1.0);
     delete pID;
     delete strTPC;
     delete strITS;
     delete strTPCITS;
     return 1;
 }
-void AliAnalysisHadEtReconstructed::AddEt(Float_t rawEt, Float_t rawEtNoPID, Float_t corrEt, Float_t corrEtNoPID, Float_t pt, Bool_t IsTPC, Bool_t InPHOS, Bool_t InEMCAL) {//Adding Et to each of the variables that tracks et event by event
+void AliAnalysisHadEtReconstructed::AddEt(Float_t rawEt, Float_t rawEtNoPID, Float_t corrEt, Float_t corrEtPion, Float_t corrEtProton, Float_t corrEtKaon, Float_t corrEtNoPID, Float_t pt, Bool_t IsTPC, Bool_t InPHOS, Bool_t InEMCAL) {//Adding Et to each of the variables that tracks et event by event
   if(pt>=AliAnalysisHadEt::fgPtTPCCutOff && IsTPC){//TPC tracks
     //adding to the raw Et
-    //if(InEMCAL) cout<<"Adding "<<rawEt<<" to the raw Et"<<endl;
     fRawEtFullAcceptanceTPC += rawEt;
     if(InPHOS)fRawEtPHOSAcceptanceTPC += rawEt;
     if(InEMCAL)fRawEtEMCALAcceptanceTPC += rawEt;
@@ -327,8 +334,10 @@ void AliAnalysisHadEtReconstructed::AddEt(Float_t rawEt, Float_t rawEtNoPID, Flo
     if(InPHOS)fRawEtPHOSAcceptanceTPCNoPID += rawEtNoPID;
     if(InEMCAL)fRawEtEMCALAcceptanceTPCNoPID += rawEtNoPID;
     //adding to the corrected Et
-    //if(InPHOS) cout<<"Adding "<<corrEt<<" to the corrected Et"<<endl;
     fCorrectedHadEtFullAcceptanceTPC += corrEt;
+    fCorrectedHadEtFullAcceptanceTPCAssumingPion += corrEtPion;
+    fCorrectedHadEtFullAcceptanceTPCAssumingProton += corrEtProton;
+    fCorrectedHadEtFullAcceptanceTPCAssumingKaon += corrEtKaon;
     if(InPHOS)fCorrectedHadEtPHOSAcceptanceTPC += corrEt;
     if(InEMCAL)fCorrectedHadEtEMCALAcceptanceTPC += corrEt;
     fCorrectedHadEtFullAcceptanceTPCNoPID += corrEtNoPID;
@@ -345,6 +354,9 @@ void AliAnalysisHadEtReconstructed::AddEt(Float_t rawEt, Float_t rawEtNoPID, Flo
     if(InEMCAL)fRawEtEMCALAcceptanceITSNoPID += rawEtNoPID;
     //adding to the corrected Et
     fCorrectedHadEtFullAcceptanceITS += corrEt;
+    fCorrectedHadEtFullAcceptanceITSAssumingPion += corrEtPion;
+    fCorrectedHadEtFullAcceptanceITSAssumingProton += corrEtProton;
+    fCorrectedHadEtFullAcceptanceITSAssumingKaon += corrEtKaon;
     if(InPHOS)fCorrectedHadEtPHOSAcceptanceITS += corrEt;
     if(InEMCAL)fCorrectedHadEtEMCALAcceptanceITS += corrEt;
     fCorrectedHadEtFullAcceptanceITSNoPID += corrEtNoPID;
@@ -354,12 +366,19 @@ void AliAnalysisHadEtReconstructed::AddEt(Float_t rawEt, Float_t rawEtNoPID, Flo
 }
 
 Bool_t AliAnalysisHadEtReconstructed::IsInPHOS(AliESDtrack *track){//This function will need to be elaborated on later to include PHOS dead channels
+  if(!track){
+    cout<<"Error: Track does not exist!!"<<endl;
+    return kFALSE;
+  }
   return   TMath::Abs(track->Eta()) < fCuts->GetGeometryPhosEtaAccCut()//in eta acceptance
     && track->Phi()*180.0/TMath::Pi() > fCuts->GetGeometryPhosPhiAccMinCut()//greater than the minimum phi
     && track->Phi()*180.0/TMath::Pi() < fCuts->GetGeometryPhosPhiAccMaxCut();//less than the maximum phi
 }
 Bool_t AliAnalysisHadEtReconstructed::IsInEMCAL(AliESDtrack *track){//This function will need to be elaborated on later to include EMCAL dead channels
-  //cout<<"Eta: |"<<track->Eta()<<"|<"<< fCuts->GetGeometryEmcalEtaAccCut() <<"; phi: "<<fCuts->GetGeometryEmcalPhiAccMinCut()<<"<"<<track->Phi()*180.0/TMath::Pi()<<"<"<<fCuts->GetGeometryEmcalPhiAccMaxCut()<<endl;
+  if(!track){
+    cout<<"Error: Track does not exist!!"<<endl;
+    return kFALSE;
+  }
   return   TMath::Abs(track->Eta()) < fCuts->GetGeometryEmcalEtaAccCut()//in eta acceptance
     && track->Phi()*180.0/TMath::Pi() > fCuts->GetGeometryEmcalPhiAccMinCut()//greater than the minimum phi
     && track->Phi()*180.0/TMath::Pi() < fCuts->GetGeometryEmcalPhiAccMaxCut();//less than the maximum phi
@@ -369,7 +388,16 @@ Bool_t AliAnalysisHadEtReconstructed::CheckGoodVertex(AliVParticle* track)
 
     Float_t bxy = 999.;
     Float_t bz = 999.;
-    dynamic_cast<AliESDtrack*>(track)->GetImpactParametersTPC(bxy,bz);
+    if(!track){
+      AliError("ERROR: no track");
+      return kFALSE;
+    }
+    AliESDtrack *esdTrack = dynamic_cast<AliESDtrack*>(track);
+    if(!esdTrack){
+      AliError("ERROR: no track");
+      return kFALSE;
+    }
+    esdTrack->GetImpactParametersTPC(bxy,bz);
 
     bool status = (TMath::Abs(track->Xv()) < fCuts->GetReconstructedVertexXCut()) && 
       (TMath::Abs(track->Yv()) < fCuts->GetReconstructedVertexYCut()) && 
@@ -382,11 +410,8 @@ Bool_t AliAnalysisHadEtReconstructed::CheckGoodVertex(AliVParticle* track)
 
 void AliAnalysisHadEtReconstructed::Init()
 { // Init
-    AliAnalysisHadEt::Init();
-
-  if (fConfigFile.Length()) {
-    gROOT->LoadMacro(fConfigFile);
-    fCorrections = (AliAnalysisHadEtCorrections *) gInterpreter->ProcessLine("ConfigHadEtAnalysis()");
+  AliAnalysisHadEt::Init();
+  if(fCorrections){
     fCorrTotEtFullAcceptanceTPC = fCorrections->GetConstantCorrections(kTRUE,fgPtTPCCutOff,"Full");
     fCorrTotEtFullAcceptanceITS = fCorrections->GetConstantCorrections(kTRUE,fgPtITSCutOff,"Full");
     fCorrHadEtFullAcceptanceTPC = fCorrections->GetConstantCorrections(kFALSE,fgPtTPCCutOff,"Full");
@@ -399,7 +424,9 @@ void AliAnalysisHadEtReconstructed::Init()
     fCorrTotEtPHOSAcceptanceITS = fCorrections->GetConstantCorrections(kTRUE,fgPtITSCutOff,"PHOS");
     fCorrHadEtPHOSAcceptanceTPC = fCorrections->GetConstantCorrections(kFALSE,fgPtTPCCutOff,"PHOS");
     fCorrHadEtPHOSAcceptanceITS = fCorrections->GetConstantCorrections(kFALSE,fgPtITSCutOff,"PHOS");
-
+  }
+  else{
+    cout<<"Warning!  You have not set corrections.  Your code will crash.  You have to set the corrections."<<endl;
   }
 }
 
@@ -413,6 +440,12 @@ void AliAnalysisHadEtReconstructed::ResetEventValues(){//resetting event by even
      fCorrectedHadEtPHOSAcceptanceITSNoPID=0.0;
      fCorrectedHadEtFullAcceptanceTPC=0.0;
      fCorrectedHadEtFullAcceptanceITS=0.0;
+     fCorrectedHadEtFullAcceptanceTPCAssumingPion=0.0;
+     fCorrectedHadEtFullAcceptanceITSAssumingPion=0.0;
+     fCorrectedHadEtFullAcceptanceTPCAssumingProton=0.0;
+     fCorrectedHadEtFullAcceptanceITSAssumingProton=0.0;
+     fCorrectedHadEtFullAcceptanceTPCAssumingKaon=0.0;
+     fCorrectedHadEtFullAcceptanceITSAssumingKaon=0.0;
      fCorrectedHadEtEMCALAcceptanceTPC=0.0;
      fCorrectedHadEtEMCALAcceptanceITS=0.0;
      fCorrectedHadEtPHOSAcceptanceTPC=0.0;
@@ -432,7 +465,7 @@ void AliAnalysisHadEtReconstructed::ResetEventValues(){//resetting event by even
 
      if(TMath::Abs(fCorrTotEtFullAcceptanceTPC)<1e-3){
        if (fConfigFile.Length()) {
-        cout<<"Rereading fCorrections file..."<<endl;
+        cout<<"Warning: Rereading fCorrections file..."<<endl;
         gROOT->LoadMacro(fConfigFile);
         fCorrections = (AliAnalysisHadEtCorrections *) gInterpreter->ProcessLine("ConfigHadEtAnalysis()");
         fCorrTotEtFullAcceptanceTPC = fCorrections->GetConstantCorrections(kTRUE,fgPtTPCCutOff,"Full");
@@ -450,30 +483,32 @@ 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
 
-  TString *strTPC = new TString("TPC");
+  //TString *strTPC = new TString("TPC");
   TString *strITS = new TString("ITS");
   TString *strTPCITS = new TString("TPCITS");
   for(Int_t i=0;i<2;i++){
-    TString *cutName;
+    TString *cutName = NULL;
     Float_t maxPtdEdx = 10;
     Float_t mindEdx = 35;
     Float_t maxdEdx = 150.0;
     switch(i){
     case 0:
-      cutName = strTPC;
+      cutName = strTPCITS;
       break;
     case 1:
       cutName = strITS;
       maxPtdEdx = 5;
       maxdEdx = 500.0;
       break;
-    case 2:
-      cutName = strTPCITS;
-      break;
+      //not deleting this completely since we might want to add it back in later
+//     case 2:
+//       cutName = strTPC;
+//       maxPtdEdx = 5;
+//       maxdEdx = 500.0;
+//       break;
     default:
       cerr<<"Error:  cannot make histograms!"<<endl;
       return;
@@ -546,12 +581,12 @@ void AliAnalysisHadEtReconstructed::CreateHistograms(){//Creating histograms and
     for(int hadet = 0;hadet<3;hadet++){
       for(int type = 0;type<3;type++){
        for(int pid = 0;pid<2;pid++){
-         TString *detector;
-         TString *partid;
+         TString *detector = NULL;
+         TString *partid = NULL;
          TString *et = sHadEt;
-         TString *acceptance;
-         TString *ptstring;
-         TString *partidstring;
+         TString *acceptance = NULL;
+         TString *ptstring = NULL;
+         TString *partidstring = NULL;
          TString *etstring = sHadEtString;
          if(tpc==1) {detector = sTPC; ptstring = sTPCpt;}
          else{detector = sITS; ptstring = sITSpt;}
@@ -573,14 +608,20 @@ void AliAnalysisHadEtReconstructed::CreateHistograms(){//Creating histograms and
          default:
            acceptance = sFull;
          }
-         sprintf(histoname,"Reco%s%sAcceptance%s%s",et->Data(),acceptance->Data(),detector->Data(),partid->Data());
-         sprintf(histotitle,"Reconstructed %s with %s acceptance for p_{T}>%s GeV/c%s",etstring->Data(),acceptance->Data(),ptstring->Data(),partidstring->Data());
-         sprintf(xtitle,"Reconstructed %s",etstring->Data());
-         CreateHisto1D(histoname,histotitle,xtitle,ytitle->Data(),nbinsEt,minEt,maxEt);
+         snprintf(histoname,200,"Reco%s%sAcceptance%s%s",et->Data(),acceptance->Data(),detector->Data(),partid->Data());
+         snprintf(histotitle,200,"Reconstructed %s with %s acceptance for p_{T}>%s GeV/c%s",etstring->Data(),acceptance->Data(),ptstring->Data(),partidstring->Data());
+         snprintf(xtitle,50,"Reconstructed %s",etstring->Data());
+         CreateHisto1D(histoname,histotitle,xtitle,ytitle->Data(),nbinsEt*2,minEt,maxEt);
        }
       }
     }
   }
+  CreateHisto1D("RecoHadEtFullAcceptanceTPCAssumingPion","Reconstructing E_{T}^{had} with full acceptance for p_{T}>0.15 GeV/c assuming pions","Reconstructed E_{T}^{had}","dN_{eve}/dE_{T}^{had}",nbinsEt*2,minEt,maxEt);
+  CreateHisto1D("RecoHadEtFullAcceptanceTPCAssumingProton","Reconstructing E_{T}^{had} with full acceptance for p_{T}>0.15 GeV/c assuming protons","Reconstructed E_{T}^{had}","dN_{eve}/dE_{T}^{had}",nbinsEt*2,minEt,maxEt);
+  CreateHisto1D("RecoHadEtFullAcceptanceTPCAssumingKaon","Reconstructing E_{T}^{had} with full acceptance for p_{T}>0.15 GeV/c assuming kaons","Reconstructed E_{T}^{had}","dN_{eve}/dE_{T}^{had}",nbinsEt*2,minEt,maxEt);
+  CreateHisto1D("RecoHadEtFullAcceptanceITSAssumingPion","Reconstructing E_{T}^{had} with full acceptance for p_{T}>0.10 GeV/c assuming pions","Reconstructed E_{T}^{had}","dN_{eve}/dE_{T}^{had}",nbinsEt*2,minEt,maxEt);
+  CreateHisto1D("RecoHadEtFullAcceptanceITSAssumingProton","Reconstructing E_{T}^{had} with full acceptance for p_{T}>0.10 GeV/c assuming protons","Reconstructed E_{T}^{had}","dN_{eve}/dE_{T}^{had}",nbinsEt*2,minEt,maxEt);
+  CreateHisto1D("RecoHadEtFullAcceptanceITSAssumingKaon","Reconstructing E_{T}^{had} with full acceptance for p_{T}>0.10 GeV/c assuming kaons","Reconstructed E_{T}^{had}","dN_{eve}/dE_{T}^{had}",nbinsEt*2,minEt,maxEt);
 
   delete sTPC;
   delete sITS;