]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWGLF/totEt/AliAnalysisTaskHadEt.cxx
Commit for Simone
[u/mrichter/AliRoot.git] / PWGLF / totEt / AliAnalysisTaskHadEt.cxx
index fadcf505d6ab356030870eca088ec0a8d465b15d..f74425c5aeb075208fae2df6edda83c4b02c2d89 100644 (file)
 #include "AliAnalysisHadEtReconstructed.h"
 #include "AliAnalysisHadEtMonteCarlo.h"
 #include "AliPWG0Helper.h"
+#include "AliTriggerAnalysis.h"
+#include "AliAnalysisManager.h"
+#include "AliPIDResponse.h"
+#include "AliTPCPIDResponse.h" 
+#include "AliInputEventHandler.h"
 
 #include <iostream>
 #include "AliLog.h"
@@ -37,11 +42,34 @@ ClassImp(AliAnalysisTaskHadEt)
 //________________________________________________________________________
   AliAnalysisTaskHadEt::AliAnalysisTaskHadEt(const char *name, Bool_t isMc, TString recoConfigFile, TString mcConfigFile) :
         AliAnalysisTaskTransverseEnergy(name, isMc)
+       ,fPIDResponse(0)
        ,fRecAnalysis(0)
        ,fMCAnalysis(0)
        ,fIsSim(isMc)
+       ,kIsOfflineV0AND(0)
+       ,kIsOfflineMB(0)
 {
     // Constructor
+  //input hander
+  AliAnalysisManager *man=AliAnalysisManager::GetAnalysisManager();
+  if (!man) {
+    AliFatal("Analysis manager needed");
+    return;
+  }
+
+  AliInputEventHandler *inputHandler=dynamic_cast<AliInputEventHandler*>(man->GetInputEventHandler());
+  if (!inputHandler) {
+    AliFatal("Input handler needed");
+    return;
+  }
+  inputHandler->SetNeedField(); 
+
+  //pid response object
+  fPIDResponse=inputHandler->GetPIDResponse();
+  if (!fPIDResponse) AliError("PIDResponse object was not created");
+  else{cout<<"PIDResponse was created!"<<endl;}
+
+
   fMCConfigFile = mcConfigFile;
   fRecoConfigFile = recoConfigFile;
 
@@ -71,6 +99,7 @@ ClassImp(AliAnalysisTaskHadEt)
 AliAnalysisTaskHadEt::~AliAnalysisTaskHadEt(){//Destructor
   delete fRecAnalysis;
   delete fMCAnalysis;
+  delete fPIDResponse;
 }
 
 
@@ -82,6 +111,24 @@ void AliAnalysisTaskHadEt::UserCreateOutputObjects()
     // Called once
 
 
+  //input hander
+  AliAnalysisManager *man=AliAnalysisManager::GetAnalysisManager();
+  if (!man) {
+    AliFatal("Analysis manager needed");
+    return;
+  }
+
+  AliInputEventHandler *inputHandler=dynamic_cast<AliInputEventHandler*>(man->GetInputEventHandler());
+  if (!inputHandler) {
+    AliFatal("Input handler needed");
+    return;
+  }
+
+  //pid response object
+  fPIDResponse=inputHandler->GetPIDResponse();
+  if (!fPIDResponse) AliError("PIDResponse object was not created");
+  else{cout<<"PIDResponse was created!"<<endl;}
+
 
   fOutputList = new TList;
   fOutputList->SetOwner();
@@ -110,12 +157,18 @@ void AliAnalysisTaskHadEt::UserCreateOutputObjects()
 //     fEsdtrackCutsITS =  AliESDtrackCuts::GetStandardITSPureSATrackCuts2009(kTRUE,kFALSE);//we do want primaries but we do not want to require PID info
 //     fEsdtrackCutsITS->SetName("fEsdTrackCutsITS");
 //   }
-  if(fRecAnalysis->DataSet()==2010 || fRecAnalysis->DataSet()==20111||fRecAnalysis->DataSet()==2009){
+  if(fRecAnalysis->DataSet()==2010 || fRecAnalysis->DataSet()==20111||fRecAnalysis->DataSet()==2009 || fRecAnalysis->DataSet()==2012 || fRecAnalysis->DataSet()==2013){
     // AliAnalysisTaskSE::     SelectCollisionCandidates(AliVEvent::kINT7 ) ;
     if(fRecAnalysis->DataSet()==2010)cout<<"Setting track cuts for the 2010 p+p collisions at 7 TeV"<<endl;
     else{
-      if(fRecAnalysis->DataSet()==2009){cout<<"Setting track cuts for the 2010 p+p collisions at 900 GeV"<<endl;}
-      else{cout<<"Setting track cuts for the 2011 p+p collisions at 2.76 TeV"<<endl;}
+      if(fRecAnalysis->DataSet()==2012)cout<<"Setting track cuts for the 2012 p+p collisions at 8 TeV"<<endl;
+      else{
+       if(fRecAnalysis->DataSet()==2013)cout<<"Setting track cuts for the 2013 p+Pb collisions at 5 TeV"<<endl;
+       else{
+         if(fRecAnalysis->DataSet()==2009){cout<<"Setting track cuts for the 2010 p+p collisions at 900 GeV"<<endl;}
+         else{cout<<"Setting track cuts for the 2011 p+p collisions at 2.76 TeV"<<endl;}
+       }
+      }
     }
     //cout<<"Warning:  Have not set 2010 track cuts yet!!"<<endl;
     fEsdtrackCutsITSTPC = AliESDtrackCuts::GetStandardITSTPCTrackCuts2010(selectPrimaries);
@@ -155,6 +208,8 @@ void AliAnalysisTaskHadEt::UserCreateOutputObjects()
     Printf("Error: no track cuts!");
   }
 
+
+
  PostData(1, fOutputList);
 }
 
@@ -174,11 +229,19 @@ if (!fESDEvent) {
 
 //if(res == 0 && cent){
 //if(cent){
-  
+ AliTriggerAnalysis *fTriggerAnalysis = new AliTriggerAnalysis();
+
+  kIsOfflineV0AND = fTriggerAnalysis->IsOfflineTriggerFired(fESDEvent, AliTriggerAnalysis::kV0AND);  
+  kIsOfflineMB = fTriggerAnalysis->IsOfflineTriggerFired(fESDEvent, AliTriggerAnalysis::kMB1);  
+  fRecAnalysis->SetIsOfflineV0AND(kIsOfflineV0AND);
+  fMCAnalysis->SetIsOfflineV0AND(kIsOfflineV0AND);
+  fMCAnalysis->SetIsOfflineMB(kIsOfflineMB);
 
   Int_t eventtype =    AliPWG0Helper::kInvalidProcess;
   if(fIsSim && fRecAnalysis->DataSet()!=20100) eventtype = (Int_t) AliPWG0Helper::GetEventProcessType(MCEvent()->Header());
-  fRecAnalysis->AnalyseEvent(fESDEvent,eventtype);
+  //only do the analysis if it meets the offline trigger cut
+  if(kIsOfflineV0AND) fRecAnalysis->AnalyseEvent(fESDEvent,eventtype);
+  //else{cout<<"Not analyzing this event!  Does not meet trigger condition!"<<endl;}
   if(fIsSim){
     AliMCEvent* mcEvent = MCEvent();
     if(!mcEvent){  
@@ -242,6 +305,7 @@ if (!fESDEvent) {
     }
   }
   }
+  delete fTriggerAnalysis;
   //}
 //cout<<"End Event"<<endl<<endl;
 // Post output data.