]> git.uio.no Git - u/mrichter/AliRoot.git/blob - ANALYSIS/macros/AddTaskPIDResponse.C
3mm overlap corrected
[u/mrichter/AliRoot.git] / ANALYSIS / macros / AddTaskPIDResponse.C
1 AliAnalysisTask *AddTaskPIDResponse(Bool_t isMC=kFALSE, Bool_t autoMCesd=kTRUE,
2                                     Bool_t tuneOnData=kFALSE, Int_t recoPass=2,
3                                     Bool_t cachePID=kFALSE, TString detResponse="",
4                                     Bool_t useTPCEtaCorrection = kFALSE)
5 {
6 // Macro to connect a centrality selection task to an existing analysis manager.
7   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
8   if (!mgr) {
9     ::Error("AddTaskPIDResponse", "No analysis manager to connect to.");
10     return 0x0;
11   }
12
13   AliVEventHandler *inputHandler=mgr->GetInputEventHandler();
14
15   //case of multi input event handler (needed for mixing)
16   if (inputHandler->IsA() == AliMultiInputEventHandler::Class()) {
17     printf("========================================================================================\n");
18     printf("PIDResponse: AliMultiInputEventHandler detected, initialising AliPIDResponseInputHandler\n");
19     printf("========================================================================================\n");
20     AliMultiInputEventHandler *multiInputHandler=(AliMultiInputEventHandler*)inputHandler;
21     
22     AliPIDResponseInputHandler *pidResponseIH = new AliPIDResponseInputHandler();
23     multiInputHandler->AddInputEventHandler(pidResponseIH);
24
25     if (autoMCesd &&
26         multiInputHandler->GetFirstInputEventHandler()->IsA()==AliESDInputHandler::Class() &&
27         multiInputHandler->GetFirstMCEventHandler()
28        ) isMC=kTRUE;
29     pidResponseIH->SetIsMC(isMC);
30
31     return 0x0;
32   }
33
34   // standard with task
35   printf("========================================================================================\n");
36   printf("PIDResponse: Initialising AliAnalysisTaskPIDResponse\n");
37   printf("========================================================================================\n");
38   
39   if ( autoMCesd && (inputHandler->IsA() == AliESDInputHandler::Class()) ) {
40     isMC=mgr->GetMCtruthEventHandler()!=0x0;
41   }
42
43   AliAnalysisTaskPIDResponse *pidTask = new AliAnalysisTaskPIDResponse("PIDResponseTask");
44 //   pidTask->SelectCollisionCandidates(AliVEvent::kMB);
45   pidTask->SetIsMC(isMC);
46   if(isMC&&tuneOnData) pidTask->SetTuneOnData(kTRUE,recoPass);
47   pidTask->SetCachePID(cachePID);
48   pidTask->SetSpecialDetectorResponse(detResponse);
49   pidTask->SetUseTPCEtaCorrection(useTPCEtaCorrection);
50   mgr->AddTask(pidTask);
51   
52 //   AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("PIDResponseQA",
53 //     TList::Class(), AliAnalysisManager::kOutputContainer,
54 //     "PIDResponseQA.root");
55   
56   mgr->ConnectInput(pidTask, 0, mgr->GetCommonInputContainer());
57 //   mgr->ConnectOutput(pidTask,1,coutput1);
58   
59   return pidTask;
60 }