#include <AliVTrack.h>
#include <AliLog.h>
#include <AliPIDResponse.h>
+#include <AliESDpid.h>
#include "AliAnalysisTaskPIDResponse.h"
AliAnalysisTaskPIDResponse::AliAnalysisTaskPIDResponse():
AliAnalysisTaskSE(),
fIsMC(kFALSE),
+fCachePID(kTRUE),
fOADBPath(),
fPIDResponse(0x0),
fRun(0),
fOldRun(0),
-fRecoPass(0)
+fRecoPass(0),
+fIsTunedOnData(kFALSE),
+fRecoPassTuned(0)
{
//
// Dummy constructor
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
fPIDResponse->SetOADBPath(AliAnalysisManager::GetOADBPath());
if (!fOADBPath.IsNull()) fPIDResponse->SetOADBPath(fOADBPath.Data());
+
+ if(fIsTunedOnData) fPIDResponse->SetTunedOnData(kTRUE,fRecoPassTuned);
}
//______________________________________________________________________________
}
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();
+ }
}
//______________________________________________________________________________
//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());