]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ANALYSIS/AliAnalysisTaskPIDResponse.cxx
HMPID related updates
[u/mrichter/AliRoot.git] / ANALYSIS / AliAnalysisTaskPIDResponse.cxx
index eff6d1428db6ec9aeb7e25625242744efc9c7098..f0a2f086322723e1529696e69229110033b4da4c 100644 (file)
@@ -25,6 +25,7 @@
 #include <AliVTrack.h>
 #include <AliLog.h>
 #include <AliPIDResponse.h>
+#include <AliESDpid.h>
 
 #include "AliAnalysisTaskPIDResponse.h"
 
@@ -34,11 +35,14 @@ ClassImp(AliAnalysisTaskPIDResponse)
 AliAnalysisTaskPIDResponse::AliAnalysisTaskPIDResponse():
 AliAnalysisTaskSE(),
 fIsMC(kFALSE),
+fCachePID(kTRUE),
 fOADBPath(),
 fPIDResponse(0x0),
 fRun(0),
 fOldRun(0),
-fRecoPass(0)
+fRecoPass(0),
+fIsTunedOnData(kFALSE),
+fRecoPassTuned(0)  
 {
   //
   // Dummy constructor
@@ -49,11 +53,14 @@ fRecoPass(0)
 AliAnalysisTaskPIDResponse::AliAnalysisTaskPIDResponse(const char* name):
 AliAnalysisTaskSE(name),
 fIsMC(kFALSE),
+fCachePID(kTRUE),
 fOADBPath(),
 fPIDResponse(0x0),
 fRun(0),
 fOldRun(0),
-fRecoPass(0)
+fRecoPass(0),
+fIsTunedOnData(kFALSE),
+fRecoPassTuned(0)
 {
   //
   // Default constructor
@@ -90,6 +97,8 @@ void AliAnalysisTaskPIDResponse::UserCreateOutputObjects()
 
   fPIDResponse->SetOADBPath(AliAnalysisManager::GetOADBPath());
   if (!fOADBPath.IsNull()) fPIDResponse->SetOADBPath(fOADBPath.Data());
+
+  if(fIsTunedOnData) fPIDResponse->SetTunedOnData(kTRUE,fRecoPassTuned);
 }
 
 //______________________________________________________________________________
@@ -107,6 +116,14 @@ void AliAnalysisTaskPIDResponse::UserExec(Option_t */*option*/)
   }
 
   fPIDResponse->InitialiseEvent(event,fRecoPass);
+  AliESDpid *pidresp = dynamic_cast<AliESDpid*>(fPIDResponse);
+  if(pidresp && AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler()){
+      pidresp->SetEventHandler(AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler());
+  }
+  //create and attach transient PID object
+  if (fCachePID) {
+    fPIDResponse->FillTrackDetectorPID();
+  }
 }
 
 //______________________________________________________________________________
@@ -134,12 +151,16 @@ void AliAnalysisTaskPIDResponse::SetRecoInfo()
   
   //find pass from file name (UGLY, but not stored in ESD... )
   TString fileName(file->GetName());
-  if (fileName.Contains("/pass1")) {
+  if (fileName.Contains("pass1") ) {
     fRecoPass=1;
-  } else if (fileName.Contains("/pass2")) {
+  } else if (fileName.Contains("pass2") ) {
     fRecoPass=2;
-  } else if (fileName.Contains("/pass3")) {
+  } else if (fileName.Contains("pass3") ) {
     fRecoPass=3;
+  } else if (fileName.Contains("pass4") ) {
+    fRecoPass=4;
+  } else if (fileName.Contains("pass5") ) {
+    fRecoPass=5;
   }
 
   fPIDResponse->SetCurrentFile(fileName.Data());