]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWG4/totEt/AliAnalysisEt.cxx
- adding histograms for energy deposited by identified charged particles
[u/mrichter/AliRoot.git] / PWG4 / totEt / AliAnalysisEt.cxx
index 9f2b67b9450b83ea60808183e3f9b0ef84a18a43..260d9fba3a1694e734a29d4b37aec8a480312b73 100644 (file)
@@ -24,6 +24,7 @@ ClassImp(AliAnalysisEt);
 
 AliAnalysisEt::AliAnalysisEt() :
         fHistogramNameSuffix("")
+        ,fCuts(0)
         ,fPdgDB(0)
         ,fPiPlusCode(0)
         ,fPiMinusCode(0)
@@ -59,19 +60,27 @@ AliAnalysisEt::AliAnalysisEt() :
         ,fMultiplicity(0)
         ,fChargedMultiplicity(0)
         ,fNeutralMultiplicity(0)
-        ,fEtaCut(EtCommonCuts::kEtaCut)
-        ,fEtaCutAcc(0)
-        ,fPhiCutAccMin(0)
-        ,fPhiCutAccMax(360.)
-        ,fDetectorRadius(460.)
-        ,fVertexXCut(0)
-        ,fVertexYCut(0)
-        ,fVertexZCut(0)
-        ,fIPxyCut(0)
-        ,fIPzCut(0)
-        ,fClusterEnergyCut(EtCommonCuts::kClusterEnergyCut)
-        ,fTrackPtCut(EtCommonCuts::kTrackPtCut)
-        ,fSingleCellEnergyCut(0)
+        ,fBaryonEt(0)
+        ,fAntiBaryonEt(0)
+        ,fMesonEt(0)
+        ,fBaryonEtAcc(0)
+        ,fAntiBaryonEtAcc(0)
+        ,fMesonEtAcc(0)
+        ,fProtonEt(0)
+        ,fChargedKaonEt(0)
+        ,fMuonEt(0)
+        ,fElectronEt(0)
+        ,fProtonEtAcc(0)
+        ,fChargedKaonEtAcc(0)
+        ,fMuonEtAcc(0)
+        ,fElectronEtAcc(0)
+        ,fEtaCut(0)
+       ,fEtaCutAcc(0)
+       ,fPhiCutAccMin(0)
+       ,fPhiCutAccMax(0)
+       ,fDetectorRadius(0)
+       ,fClusterEnergyCut(0) 
+       ,fSingleCellEnergyCut(0)
         ,fHistEt(0)
         ,fHistChargedEt(0)
         ,fHistNeutralEt(0)
@@ -89,9 +98,17 @@ AliAnalysisEt::AliAnalysisEt() :
         ,fHistBaryonEtAcc(0)
         ,fHistAntiBaryonEtAcc(0)
         ,fHistMesonEtAcc(0)
+        ,fHistProtonEt(0)
+        ,fHistChargedKaonEt(0)
+        ,fHistMuonEt(0)
+        ,fHistElectronEt(0)
+        ,fHistProtonEtAcc(0)
+        ,fHistChargedKaonEtAcc(0)
+        ,fHistMuonEtAcc(0)
+        ,fHistElectronEtAcc(0)
+        ,fHistEtRecvsEtMC(0)
         ,fHistTMDeltaR(0)
 {
-
 }
 
 AliAnalysisEt::~AliAnalysisEt()
@@ -124,19 +141,19 @@ void AliAnalysisEt::FillOutputList(TList *list)
     list->Add(fHistAntiBaryonEtAcc);
     list->Add(fHistMesonEtAcc);
 
+    list->Add(fHistProtonEtAcc);
+    list->Add(fHistChargedKaonEtAcc);
+    list->Add(fHistMuonEtAcc);
+    list->Add(fHistElectronEtAcc);
+
+    list->Add(fHistEtRecvsEtMC);
+
     list->Add(fHistTMDeltaR);
 }
 
 void AliAnalysisEt::Init()
-{// set up cuts and PDG info
-  fVertexXCut = EtReconstructedCuts::kVertexXCut;
-  fVertexYCut = EtReconstructedCuts::kVertexYCut;
-  fVertexZCut = EtReconstructedCuts::kVertexZCut;
-  fIPxyCut = EtReconstructedCuts::kIPxyCut;
-  fIPzCut = EtReconstructedCuts::kIPzCut;
-
-  if(!fPdgDB) fPdgDB = new TDatabasePDG();
-  SetParticleCodes();
+{// clear variables, set up cuts and PDG info
+  ResetEventValues();
 }
 
 void AliAnalysisEt::CreateHistograms()
@@ -221,6 +238,33 @@ void AliAnalysisEt::CreateHistograms()
     histname = "fHistMesonEtAcc" + fHistogramNameSuffix;
     fHistMesonEtAcc = new TH1F(histname.Data(), "E_{T} for mesons in calorimeter acceptance",  nbinsEt, minEt, maxEt);
 
+    histname = "fHistProtonEt" + fHistogramNameSuffix;
+    fHistProtonEt = new TH1F(histname.Data(), "E_{T} for (anti-)protons", nbinsEt, minEt, maxEt);
+
+    histname = "fHistKaonEt" + fHistogramNameSuffix;
+    fHistChargedKaonEt = new TH1F(histname.Data(), "E_{T} for charged kaons", nbinsEt, minEt, maxEt);
+
+    histname = "fHistMuonEt" + fHistogramNameSuffix;
+    fHistMuonEt = new TH1F(histname.Data(), "E_{T} for muons", nbinsEt, minEt, maxEt);
+
+    histname = "fHistElectronEt" + fHistogramNameSuffix;
+    fHistElectronEt = new TH1F(histname.Data(), "E_{T} for electrons/positrons", nbinsEt, minEt, maxEt);
+
+    histname = "fHistProtonEtAcc" + fHistogramNameSuffix;
+    fHistProtonEtAcc = new TH1F(histname.Data(), "E_{T} for (anti-)protons in calorimeter acceptance", nbinsEt, minEt, maxEt);
+
+    histname = "fHistKaonEtAcc" + fHistogramNameSuffix;
+    fHistChargedKaonEtAcc = new TH1F(histname.Data(), "E_{T} for charged kaons in calorimeter acceptance", nbinsEt, minEt, maxEt);
+
+    histname = "fHistMuonEtAcc" + fHistogramNameSuffix;
+    fHistMuonEtAcc = new TH1F(histname.Data(), "E_{T} for muons in calorimeter acceptance", nbinsEt, minEt, maxEt);
+
+    histname = "fHistElectronEtAcc" + fHistogramNameSuffix;
+    fHistElectronEtAcc = new TH1F(histname.Data(), "E_{T} for electrons/positrons in calorimeter acceptance", nbinsEt, minEt, maxEt);
+
+    histname = "fHistEtRecvsEtMC" + fHistogramNameSuffix;
+    fHistEtRecvsEtMC = new TH2F(histname.Data(), "Reconstructed E_{t} vs MC E_{t}", nbinsEt, minEt, maxEt, nbinsEt, minEt, maxEt);
+
     //
     histname = "fHistTMDeltaR" + fHistogramNameSuffix;
     fHistTMDeltaR = new TH1F(histname.Data(), "#Delta R for calorimeter clusters", 200, 0, 50);
@@ -255,33 +299,68 @@ void AliAnalysisEt::FillHistograms()
 
     fHistTMDeltaR;
     */
+    fHistProtonEt->Fill(fProtonEt);
+    fHistChargedKaonEt->Fill(fChargedKaonEt);
+    fHistMuonEt->Fill(fMuonEt);
+    fHistElectronEt->Fill(fElectronEt);
+    
+    fHistProtonEtAcc->Fill(fProtonEtAcc);
+    fHistChargedKaonEtAcc->Fill(fChargedKaonEtAcc);
+    fHistMuonEtAcc->Fill(fMuonEtAcc);
+    fHistElectronEtAcc->Fill(fElectronEtAcc);
 }
+
 Int_t AliAnalysisEt::AnalyseEvent(AliVEvent *event)
-{
-  //this line is basically here to eliminate a compiler warning that event is not used.  Making it a virtual function did not work with the plugin.
-  cout<<"This event has "<<event->GetNumberOfTracks()<<" tracks"<<endl;
+{ //this line is basically here to eliminate a compiler warning that event is not used.  Making it a virtual function did not work with the plugin.
+  cout << "This event has " << event->GetNumberOfTracks() << " tracks" << endl;
+  ResetEventValues();
   return 0;
 }
 
 void AliAnalysisEt::ResetEventValues()
 { // clear
-    fTotEt = 0;
-    fTotEtAcc = 0;
-    fTotNeutralEt = 0;
-    fTotNeutralEtAcc = 0;
-    fTotChargedEt  = 0;
-    fTotChargedEtAcc = 0;
-    fMultiplicity = 0;
-    fChargedMultiplicity = 0;
-    fNeutralMultiplicity = 0;
-
-    if(!fPdgDB) fPdgDB = new TDatabasePDG();
-
-    if(fPiPlusCode==0){
+  fTotEt = 0;
+  fTotEtAcc = 0;
+  fTotNeutralEt = 0;
+  fTotNeutralEtAcc = 0;
+  fTotChargedEt  = 0;
+  fTotChargedEtAcc = 0;
+  fMultiplicity = 0;
+  fChargedMultiplicity = 0;
+  fNeutralMultiplicity = 0;
+  fBaryonEt = 0;
+  fAntiBaryonEt = 0;
+  fMesonEt = 0;
+  fBaryonEtAcc = 0;
+  fAntiBaryonEtAcc = 0;
+  fMesonEtAcc = 0;
+  fProtonEt = 0;
+  fChargedKaonEt = 0;
+  fMuonEt = 0;
+  fElectronEt = 0;
+  fProtonEtAcc = 0;
+  fChargedKaonEtAcc = 0;
+  fMuonEtAcc = 0;
+    
+  if (!fCuts || !fPdgDB || fPiPlusCode==0) { // some Init's needed
+    cout << __FILE__ << ":" << __LINE__ << " : Init " << endl;
+    if (!fCuts) {
+      cout << " setting up Cuts " << endl;
+      fCuts = new AliAnalysisEtCuts();
+    }
+    if(!fPdgDB) {
+      cout << " setting up PdgDB " << endl;
+      fPdgDB = new TDatabasePDG();
+    }
+    
+    if (fPiPlusCode==0) {
       SetParticleCodes();
     }
+  }
+  return;
 }
 
+
 void AliAnalysisEt::SetParticleCodes()
 { // set PDG info    
   fPionMass = fPdgDB->GetParticle("pi+")->Mass();