]>
Commit | Line | Data |
---|---|---|
764cabcb | 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 |