]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG3/muon/AddTaskMuMu.C
Updates to run with deltas (L. Cunqueiro)
[u/mrichter/AliRoot.git] / PWG3 / muon / AddTaskMuMu.C
1 ///
2 /// Configure a task to get invariant mass spectrum of dimuons
3 ///
4 /// author: L. Aphecetche (Subatech) (laurent.aphecetche - at - subatech.in2p3.fr)
5 ///
6
7 AliAnalysisTask* AddTaskMuMu(const char* outputname, TList* triggerClassesToConsider, Bool_t aa)
8                                     
9 {
10   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
11   if (!mgr) {
12     ::Error("AddTaskMuMu", "No analysis manager to connect to.");
13     return NULL;
14   }  
15   
16   // Check the analysis type using the event handlers connected to the analysis manager.
17   //==============================================================================
18   if (!mgr->GetInputEventHandler()) {
19     ::Error("AddTaskMuMu", "This task requires an input event handler");
20     return NULL;
21   }
22   TString inputDataType = mgr->GetInputEventHandler()->GetDataType(); // can be "ESD" or "AOD"
23   
24   // Configure analysis
25   //===========================================================================  
26   
27   AliAnalysisMuMu* task;
28   
29   if ( triggerClassesToConsider ) 
30   {
31     task = AliAnalysisMuMu::Create(inputDataType,triggerClassesToConsider);    
32   }
33   else 
34   {
35     task = AliAnalysisMuMu::Create(inputDataType,aa);    
36   }
37   
38   task->AddSingleCut("MATCHLOWRABS",AliAnalysisMuMu::kAll|AliAnalysisMuMu::kMatchedLow|AliAnalysisMuMu::kRabs);
39   task->AddPairCut("MATCHLOWRABS",AliAnalysisMuMu::kAll|AliAnalysisMuMu::kMatchedLow|AliAnalysisMuMu::kRabs);
40
41   task->AddSingleCut("MATCHHIGHRABSDCA",AliAnalysisMuMu::kAll|AliAnalysisMuMu::kMatchedHigh|AliAnalysisMuMu::kRabs|AliAnalysisMuMu::kDCA);
42   task->AddPairCut("MATCHHIGHRABSDCA",AliAnalysisMuMu::kAll|AliAnalysisMuMu::kMatchedHigh|AliAnalysisMuMu::kRabs|AliAnalysisMuMu::kDCA);
43
44   mgr->AddTask(task);  
45   
46   static int n(0);
47   
48   ++n;
49   
50   TString containerName("chist");
51   
52   if ( n > 1 ) containerName += Form("%d",n);
53   
54   // Create containers for input/output
55   AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer();  
56   AliAnalysisDataContainer *coutput = 
57   mgr->CreateContainer(containerName.Data(), TList::Class(),
58                        AliAnalysisManager::kOutputContainer,outputname);
59   
60   // Connect input/output
61   mgr->ConnectInput(task, 0, cinput);
62   mgr->ConnectOutput(task, 1, coutput);
63   
64   return task;
65 }
66