]>
Commit | Line | Data |
---|---|---|
b438e263 | 1 | AliAnalysisTask *AddTaskPIDResponse(Bool_t isMC=kFALSE, Bool_t autoMCesd=kTRUE, |
2 | Bool_t tuneOnData=kFALSE, Int_t recoPass=2, | |
f84b18dd | 3 | Bool_t cachePID=kFALSE, TString detResponse="", |
4 | Bool_t useTPCEtaCorrection = kFALSE) | |
66ab8ab2 | 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 | ||
6a45d03f | 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; | |
66ab8ab2 | 32 | } |
6a45d03f | 33 | |
34 | // standard with task | |
35 | printf("========================================================================================\n"); | |
36 | printf("PIDResponse: Initialising AliAnalysisTaskPIDResponse\n"); | |
37 | printf("========================================================================================\n"); | |
66ab8ab2 | 38 | |
6a45d03f | 39 | if ( autoMCesd && (inputHandler->IsA() == AliESDInputHandler::Class()) ) { |
40 | isMC=mgr->GetMCtruthEventHandler()!=0x0; | |
41 | } | |
42 | ||
66ab8ab2 | 43 | AliAnalysisTaskPIDResponse *pidTask = new AliAnalysisTaskPIDResponse("PIDResponseTask"); |
44 | // pidTask->SelectCollisionCandidates(AliVEvent::kMB); | |
45 | pidTask->SetIsMC(isMC); | |
1daf6aaa | 46 | if(isMC&&tuneOnData) pidTask->SetTuneOnData(kTRUE,recoPass); |
b438e263 | 47 | pidTask->SetCachePID(cachePID); |
48 | pidTask->SetSpecialDetectorResponse(detResponse); | |
f84b18dd | 49 | pidTask->SetUseTPCEtaCorrection(useTPCEtaCorrection); |
66ab8ab2 | 50 | mgr->AddTask(pidTask); |
51 | ||
6a45d03f | 52 | // AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("PIDResponseQA", |
53 | // TList::Class(), AliAnalysisManager::kOutputContainer, | |
54 | // "PIDResponseQA.root"); | |
66ab8ab2 | 55 | |
56 | mgr->ConnectInput(pidTask, 0, mgr->GetCommonInputContainer()); | |
6a45d03f | 57 | // mgr->ConnectOutput(pidTask,1,coutput1); |
66ab8ab2 | 58 | |
59 | return pidTask; | |
60 | } |