ROOT logo
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();
  if (!mgr) {
    ::Error("AddTaskPIDResponse", "No analysis manager to connect to.");
    return 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");
  
  mgr->ConnectInput(pidTask, 0, mgr->GetCommonInputContainer());
//   mgr->ConnectOutput(pidTask,1,coutput1);
  
  return pidTask;
}
 AddTaskPIDResponse.C:1
 AddTaskPIDResponse.C:2
 AddTaskPIDResponse.C:3
 AddTaskPIDResponse.C:4
 AddTaskPIDResponse.C:5
 AddTaskPIDResponse.C:6
 AddTaskPIDResponse.C:7
 AddTaskPIDResponse.C:8
 AddTaskPIDResponse.C:9
 AddTaskPIDResponse.C:10
 AddTaskPIDResponse.C:11
 AddTaskPIDResponse.C:12
 AddTaskPIDResponse.C:13
 AddTaskPIDResponse.C:14
 AddTaskPIDResponse.C:15
 AddTaskPIDResponse.C:16
 AddTaskPIDResponse.C:17
 AddTaskPIDResponse.C:18
 AddTaskPIDResponse.C:19
 AddTaskPIDResponse.C:20
 AddTaskPIDResponse.C:21
 AddTaskPIDResponse.C:22
 AddTaskPIDResponse.C:23
 AddTaskPIDResponse.C:24
 AddTaskPIDResponse.C:25
 AddTaskPIDResponse.C:26
 AddTaskPIDResponse.C:27
 AddTaskPIDResponse.C:28
 AddTaskPIDResponse.C:29
 AddTaskPIDResponse.C:30
 AddTaskPIDResponse.C:31
 AddTaskPIDResponse.C:32
 AddTaskPIDResponse.C:33
 AddTaskPIDResponse.C:34
 AddTaskPIDResponse.C:35
 AddTaskPIDResponse.C:36
 AddTaskPIDResponse.C:37
 AddTaskPIDResponse.C:38
 AddTaskPIDResponse.C:39
 AddTaskPIDResponse.C:40
 AddTaskPIDResponse.C:41
 AddTaskPIDResponse.C:42
 AddTaskPIDResponse.C:43
 AddTaskPIDResponse.C:44
 AddTaskPIDResponse.C:45
 AddTaskPIDResponse.C:46
 AddTaskPIDResponse.C:47
 AddTaskPIDResponse.C:48
 AddTaskPIDResponse.C:49
 AddTaskPIDResponse.C:50
 AddTaskPIDResponse.C:51
 AddTaskPIDResponse.C:52
 AddTaskPIDResponse.C:53
 AddTaskPIDResponse.C:54
 AddTaskPIDResponse.C:55
 AddTaskPIDResponse.C:56
 AddTaskPIDResponse.C:57
 AddTaskPIDResponse.C:58
 AddTaskPIDResponse.C:59
 AddTaskPIDResponse.C:60
 AddTaskPIDResponse.C:61
 AddTaskPIDResponse.C:62