]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
- Adding new histograms for MC/rec comparison
authorodjuvsla <odjuvsla@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 7 Apr 2011 18:08:46 +0000 (18:08 +0000)
committerodjuvsla <odjuvsla@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 7 Apr 2011 18:08:46 +0000 (18:08 +0000)
PWG4/totEt/AliAnalysisTaskTotEt.cxx
PWG4/totEt/AliAnalysisTaskTotEt.h
PWG4/totEt/AliAnalysisTaskTransverseEnergy.cxx
PWG4/totEt/AliAnalysisTaskTransverseEnergy.h

index 144768ab46989abffb1093890924f9b9aba2d58d..74db8972576b99cc686459f7515aed82aa1049c7 100644 (file)
@@ -14,6 +14,7 @@
 #include "TChain.h"
 #include "TList.h"
 #include "TH2F.h"
+#include "THnSparse.h"
 
 #include "AliESDEvent.h"
 #include "AliMCEvent.h"
@@ -26,6 +27,7 @@
 #include "AliAnalysisEtMonteCarloEmcal.h"
 
 #include <iostream>
+#include <AliCentrality.h>
 
 using namespace std;
 
@@ -36,6 +38,8 @@ AliAnalysisTaskTotEt::AliAnalysisTaskTotEt(const char *name, Bool_t isMc) :
         AliAnalysisTaskTransverseEnergy(name, isMc)
         ,fRecAnalysis(0)
         ,fMCAnalysis(0)
+       ,fSparseHistRecVsMc(0)
+       ,fSparseRecVsMc(0)
 {
     // Constructor
 
@@ -60,13 +64,15 @@ AliAnalysisTaskTotEt::AliAnalysisTaskTotEt(const char *name, Bool_t isMc) :
         if (fMCConfigFile.Length()) {
             cout<<"Rereading AliAnalysisEtMonteCarloPhos configuration file..."<<endl;
             gROOT->LoadMacro(fMCConfigFile);
-            fMCAnalysis = (AliAnalysisEtMonteCarloPhos *) gInterpreter->ProcessLine("ConfigEtMonteCarlo()");
+           
+            fMCAnalysis = (AliAnalysisEtMonteCarloPhos *) gInterpreter->ProcessLine("ConfigEtMonteCarlo(false)");
+           cout << fMCAnalysis << endl;
         }
 
         if (fRecoConfigFile.Length()) {
             cout<<"Rereading AliAnalysisEtReconstructedPhos configuration file..."<<endl;
             gROOT->LoadMacro(fRecoConfigFile);
-            fRecAnalysis = (AliAnalysisEtReconstructedPhos *) gInterpreter->ProcessLine("ConfigEtReconstructed()");
+            fRecAnalysis = (AliAnalysisEtReconstructedPhos *) gInterpreter->ProcessLine("ConfigEtReconstructed(false)");
         }
     }
     // Define input and output slots here
@@ -78,7 +84,7 @@ AliAnalysisTaskTotEt::AliAnalysisTaskTotEt(const char *name, Bool_t isMc) :
 
 }
 AliAnalysisTaskTotEt::~AliAnalysisTaskTotEt() {//Destructor
-    fOutputList->Clear();
+//    fOutputList->Clear();
     delete fRecAnalysis;
     delete fMCAnalysis;
 }
@@ -94,8 +100,12 @@ void AliAnalysisTaskTotEt::UserCreateOutputObjects()
     fOutputList->SetOwner();
     fRecAnalysis->FillOutputList(fOutputList);
     fMCAnalysis->FillOutputList(fOutputList);
-    fHistEtRecvsEtMC = new TH2F("fHistEtRecvsEtMC", "Reconstructed E_{t} vs MC E_{t}", 1000, 0.000, 100, 1000, 0.0001, 100);
+    fHistEtRecvsEtMC = new TH2F("fHistEtRecvsEtMC", "Reconstructed E_{T} vs MC E_{T}", 1000, 0.000, 100, 1000, 0.0001, 100);
+    fHistEtRecOverEtMC = new TH2F("fHistEtRecOverEtMC", "Reconstructed E_{T} over MC E_{T} vs centrality", 1000, 0.00, 2.0, 11, -0.5, 10.5); 
+    fHistDiffEtRecEtMCOverEtMC = new TH2F("fHistDiffEtRecEtMCOverEtMC", "fHistDiffEtRecEtMCOverEtMC", 10000, 0.0, 1000, 1000, -5, 5); 
     fOutputList->Add(fHistEtRecvsEtMC);
+    fOutputList->Add(fHistEtRecOverEtMC);
+    fOutputList->Add(fHistDiffEtRecEtMCOverEtMC);
 
     Bool_t selectPrimaries=kTRUE;
     if (fRecAnalysis->DataSet()==2009) {
@@ -163,10 +173,16 @@ void AliAnalysisTaskTotEt::UserExec(Option_t *)
             AliMCEvent* mcEvent = MCEvent();
             if (mcEvent)
             {
+               fMCAnalysis->SetCentralityObject(cent);
                 fMCAnalysis->AnalyseEvent(mcEvent, fESDEvent);
                 //fMCAnalysis->AnalyseEvent(mcEvent);
             }
-            fHistEtRecvsEtMC->Fill(fRecAnalysis->GetTotEtAcc(), fMCAnalysis->GetTotEt());
+            if(fMCAnalysis)
+           {
+             fHistEtRecvsEtMC->Fill(fRecAnalysis->GetTotNeutralEtAcc(), fMCAnalysis->GetTotNeutralEtAcc());
+             if(fMCAnalysis->GetTotNeutralEtAcc()) fHistEtRecOverEtMC->Fill(fRecAnalysis->GetTotNeutralEt()/fMCAnalysis->GetTotNeutralEtAcc(), cent->GetCentralityClass10("V0M"));
+             if(fMCAnalysis->GetTotNeutralEtAcc()) fHistDiffEtRecEtMCOverEtMC->Fill(fMCAnalysis->GetTotNeutralEt(), (fRecAnalysis->GetTotNeutralEt()-fMCAnalysis->GetTotNeutralEt())/fMCAnalysis->GetTotNeutralEt());
+           }
         }
     }
     // Post output data.
index 33dc38e5a5e1d61fd3ed876c28ead1ccbcf4a98b..2e8c4e7fde453b0fce50bb6a06e5fb6bda66eacd 100644 (file)
@@ -36,6 +36,9 @@ private:
   AliAnalysisEtReconstructed *fRecAnalysis; // Rec \r
   AliAnalysisEtMonteCarlo *fMCAnalysis; // MC\r
   \r
+  THnSparseD *fSparseHistRecVsMc;\r
+  Double_t *fSparseRecVsMc;\r
+  \r
   ClassDef(AliAnalysisTaskTotEt, 2) \r
 };\r
 \r
index 92255b68b8c1d359b8f30c518d2b452f1f47b76e..dfefc23c5aa6da4ce74390800c8348138f13baa7 100644 (file)
@@ -26,6 +26,7 @@ AliAnalysisTaskTransverseEnergy::AliAnalysisTaskTransverseEnergy(const char* nam
         ,fMCConfigFile("ConfigEtMonteCarlo.C")
         ,fRecoConfigFile("ConfigEtReconstructed.C")
         ,fHistEtRecvsEtMC(0)
+       ,fHistEtRecOverEtMC(0)
         ,fEsdtrackCutsITSTPC(0)
         ,fEsdtrackCutsTPC(0)
         ,fEsdtrackCutsITS(0)
@@ -44,6 +45,7 @@ AliAnalysisTaskTransverseEnergy::AliAnalysisTaskTransverseEnergy(const char* nam
 AliAnalysisTaskTransverseEnergy::~AliAnalysisTaskTransverseEnergy()
 {    // destructor
   delete fHistEtRecvsEtMC;
+  delete fHistEtRecOverEtMC;
   delete fEsdtrackCutsITSTPC;
   delete fEsdtrackCutsTPC;
   delete fEsdtrackCutsITS;
@@ -54,6 +56,7 @@ AliAnalysisTaskTransverseEnergy::~AliAnalysisTaskTransverseEnergy()
 Int_t AliAnalysisTaskTransverseEnergy::CheckPhysicsSelection(Int_t runNumber)
 {
   // Check if the physics selection is valid, if not load a new one
+  
     if (runNumber == fCurrentRunNum || fIsMc)
     {
         return 0;
index bb92bdb26d1a67a265d4f9dd8adb3616e78e63c1..adcb959fe5610150403833651807bffbd3bd3ddd 100644 (file)
@@ -53,6 +53,8 @@ protected:
     TString       fRecoConfigFile;        // the name of the ConfigFile
 
     TH2F *fHistEtRecvsEtMC; // Rec vs MC histo 
+    TH2F *fHistEtRecOverEtMC; // Rec over MC histo 
+    TH2F *fHistDiffEtRecEtMCOverEtMC; // Rec - MC over MC histo 
 
     AliESDtrackCuts* fEsdtrackCutsITSTPC; // track cuts ITS&TPC
     AliESDtrackCuts* fEsdtrackCutsTPC; // track cuts TPC