]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG3/muon/AddTaskSingleMuonAnalysis.C
Storing the analysis output histograms in folders of a common output (Roberta)
[u/mrichter/AliRoot.git] / PWG3 / muon / AddTaskSingleMuonAnalysis.C
1 AliAnalysisTaskSingleMu *AddTaskSingleMuonAnalysis(){
2
3    // Get the pointer to the existing analysis manager via the static access method.
4    //==============================================================================
5    AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
6    if (!mgr) {
7       ::Error("AddtaskSingleMuonAnalysis", "No analysis manager to connect to.");
8       return NULL;
9    }   
10    
11    // Check this using the analysis manager.
12    //===============================================================================
13    TString type = mgr->GetInputEventHandler()->GetDataType();
14    if (!type.Contains("ESD")) {
15       ::Error("AddTaskSingleMuonAnalysis", "ESD filtering task needs the manager to have an ESD input handler.");
16       return NULL;
17    }   
18
19 //    // Check if MC handler is connected in case kine filter requested
20
21     AliMCEventHandler *mcH = (AliMCEventHandler*)mgr->GetMCtruthEventHandler();
22     if (!mcH) {
23        ::Error("AddTaskSingleMuonAnalysis", "No MC handler connected");
24        return NULL;
25     }   
26
27    TString outputfile = AliAnalysisManager::GetCommonFileName();
28    outputfile += ":PWG3Muon_SingleMuon";
29
30    AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("SingleMuon",TList::Class(),AliAnalysisManager::kOutputContainer,outputfile);
31
32   // Create the task, add it to the manager and configure it.
33    //===========================================================================   
34    // Barrel tracks filter
35    AliAnalysisTaskSingleMu *SingleMuonAnalysisTask = new AliAnalysisTaskSingleMu("Single Muon Analysis Task");
36    mgr->AddTask(SingleMuonAnalysisTask);
37    
38    // Create ONLY the output containers for the data produced by the task.
39    // Get and connect other common input/output containers via the manager as below
40    //==============================================================================
41    mgr->ConnectInput  (SingleMuonAnalysisTask,  0, mgr->GetCommonInputContainer());
42    mgr->ConnectOutput (SingleMuonAnalysisTask,  1, coutput1);
43
44    return SingleMuonAnalysisTask;
45 }