-AliAnalysisTask *AddTaskPIDResponse()
+AliAnalysisTask *AddTaskPIDResponse(Bool_t isMC=kFALSE, Bool_t autoMCesd=kTRUE,
+ Bool_t tuneOnData=kFALSE, Int_t recoPass=2,
+ Bool_t cachePID=kFALSE, TString detResponse="",
+ Bool_t useTPCEtaCorrection = kTRUE,/*Please use default value! Otherwise splines can be off*/
+ Bool_t useTPCMultiplicityCorrection = kTRUE,/*Please use default value! Otherwise splines can be off*/
+ Int_t recoDataPass = -1)
{
// Macro to connect a centrality selection task to an existing analysis manager.
AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
return 0x0;
}
- Bool_t isMC=kFALSE;
- if (mgr->GetInputEventHandler()->IsA() == AliESDInputHandler::Class()) {
- isMC=mgr->GetMCtruthEventHandler()!=0x0;
+ AliVEventHandler *inputHandler=mgr->GetInputEventHandler();
+
+ //case of multi input event handler (needed for mixing)
+ if (inputHandler->IsA() == AliMultiInputEventHandler::Class()) {
+ printf("========================================================================================\n");
+ printf("PIDResponse: AliMultiInputEventHandler detected, initialising AliPIDResponseInputHandler\n");
+ printf("========================================================================================\n");
+ AliMultiInputEventHandler *multiInputHandler=(AliMultiInputEventHandler*)inputHandler;
+
+ AliPIDResponseInputHandler *pidResponseIH = new AliPIDResponseInputHandler();
+ multiInputHandler->AddInputEventHandler(pidResponseIH);
+
+ pidResponseIH->SetIsMC(isMC);
+
+ return 0x0;
}
+
+ // standard with task
+ printf("========================================================================================\n");
+ printf("PIDResponse: Initialising AliAnalysisTaskPIDResponse\n");
+ printf("========================================================================================\n");
AliAnalysisTaskPIDResponse *pidTask = new AliAnalysisTaskPIDResponse("PIDResponseTask");
// pidTask->SelectCollisionCandidates(AliVEvent::kMB);
pidTask->SetIsMC(isMC);
+ if(isMC&&tuneOnData) {
+ pidTask->SetTuneOnData(kTRUE,recoPass);
+ // tuning on MC is by default active on TPC and TOF, to enable it only on one of them use:
+ // pidTask->SetTuneOnDataMask(AliPIDResponse::kDetTPC);
+ // pidTask->SetTuneOnDataMask(AliPIDResponse::kDetTOF);
+ }
+ pidTask->SetCachePID(cachePID);
+ pidTask->SetSpecialDetectorResponse(detResponse);
+ pidTask->SetUseTPCEtaCorrection(useTPCEtaCorrection);
+ pidTask->SetUseTPCMultiplicityCorrection(useTPCMultiplicityCorrection);
+ pidTask->SetUserDataRecoPass(recoDataPass);
mgr->AddTask(pidTask);
- AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("PIDResponseQA",
- TList::Class(), AliAnalysisManager::kOutputContainer,
- "PIDResponseQA.root");
+// AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("PIDResponseQA",
+// TList::Class(), AliAnalysisManager::kOutputContainer,
+// "PIDResponseQA.root");
mgr->ConnectInput(pidTask, 0, mgr->GetCommonInputContainer());
- mgr->ConnectOutput(pidTask,1,coutput1);
+// mgr->ConnectOutput(pidTask,1,coutput1);
return pidTask;
}