]>
Commit | Line | Data |
---|---|---|
b201705a | 1 | AliAnalysisTaskSingleMu *AddTaskSingleMuonAnalysis(Bool_t fillNtuple=kFALSE, Bool_t keepAll=kFALSE){ |
d394951c | 2 | |
3 | // Get the pointer to the existing analysis manager via the static access method. | |
4 | //============================================================================== | |
4583fe14 | 5 | |
d394951c | 6 | AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager(); |
7 | if (!mgr) { | |
8 | ::Error("AddtaskSingleMuonAnalysis", "No analysis manager to connect to."); | |
9 | return NULL; | |
10 | } | |
d394951c | 11 | |
b201705a | 12 | // This task requires an ESD or AOD output handler. |
13 | // Check this using the analysis manager. | |
14 | //=============================================================================== | |
15 | TString type = mgr->GetInputEventHandler()->GetDataType(); | |
16 | if (!type.Contains("ESD") && !type.Contains("AOD")) { | |
17 | ::Error("AddtaskSingleMuonAnalysis", "SingleMuon task needs the manager to have an ESD or AOD input handler."); | |
18 | return NULL; | |
19 | } | |
d394951c | 20 | |
d08e8cce | 21 | TString outputfile = AliAnalysisManager::GetCommonFileName(); |
22 | outputfile += ":PWG3Muon_SingleMuon"; | |
23 | ||
24 | AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("SingleMuon",TList::Class(),AliAnalysisManager::kOutputContainer,outputfile); | |
4583fe14 | 25 | AliAnalysisDataContainer *coutput2 = mgr->CreateContainer("SingleMuonMC",TList::Class(),AliAnalysisManager::kOutputContainer,outputfile); |
b201705a | 26 | AliAnalysisDataContainer *coutput3 = 0x0; |
27 | ||
28 | if ( fillNtuple ) { | |
29 | coutput3 = mgr->CreateContainer("SingleMuonNtuple",TTree::Class(),AliAnalysisManager::kOutputContainer,outputfile); | |
30 | coutput3->SetSpecialOutput(); | |
31 | } | |
32 | ||
d394951c | 33 | |
4583fe14 | 34 | // Create the task, add it to the manager and configure it. |
d394951c | 35 | //=========================================================================== |
4583fe14 | 36 | |
b201705a | 37 | AliAnalysisTaskSingleMu *SingleMuonAnalysisTask = new AliAnalysisTaskSingleMu("Single Muon Analysis Task", fillNtuple, keepAll); |
d394951c | 38 | mgr->AddTask(SingleMuonAnalysisTask); |
39 | ||
40 | // Create ONLY the output containers for the data produced by the task. | |
41 | // Get and connect other common input/output containers via the manager as below | |
42 | //============================================================================== | |
4583fe14 | 43 | |
d394951c | 44 | mgr->ConnectInput (SingleMuonAnalysisTask, 0, mgr->GetCommonInputContainer()); |
45 | mgr->ConnectOutput (SingleMuonAnalysisTask, 1, coutput1); | |
4583fe14 | 46 | mgr->ConnectOutput (SingleMuonAnalysisTask, 2, coutput2); |
d394951c | 47 | |
b201705a | 48 | if ( fillNtuple ) |
49 | mgr->ConnectOutput (SingleMuonAnalysisTask, 3, coutput3); | |
50 | ||
d394951c | 51 | return SingleMuonAnalysisTask; |
52 | } |