]>
Commit | Line | Data |
---|---|---|
0651dd18 | 1 | AliAnalysisTaskPWG4PidDetEx *AddTaskPWG4PidDetEx()\r |
2 | {\r | |
3 | // Creates a jet fider task, configures it and adds it to the analysis manager.\r | |
4 | \r | |
5 | // Get the pointer to the existing analysis manager via the static access method.\r | |
6 | //==============================================================================\r | |
7 | AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();\r | |
8 | if (!mgr) {\r | |
9 | ::Error("AddTaskJets", "No analysis manager to connect to.");\r | |
10 | return NULL;\r | |
11 | } \r | |
12 | \r | |
13 | // Check the analysis type using the event handlers connected to the analysis manager.\r | |
14 | //==============================================================================\r | |
15 | if (!mgr->GetInputEventHandler()) {\r | |
16 | ::Error("AddTaskPWG4PidDetEx", "This task requires an input event handler");\r | |
17 | return NULL;\r | |
18 | }\r | |
19 | \r | |
20 | // Create the task and configure it.\r | |
21 | //===========================================================================\r | |
22 | \r | |
23 | AliAnalysisTaskPWG4PidDetEx* taskPid = new AliAnalysisTaskPWG4PidDetEx("TaskPID");\r | |
24 | if(mgr->GetInputEventHandler()->InheritsFrom("AliAODInputHandler"))taskPid->SetAnalysisType("AOD");\r | |
25 | else {\r | |
26 | // Either we assume taht w have the cuts already loaded or we just do it again\r | |
27 | // this can be done more elegant when also accepting AOD filtered output\r | |
28 | gROOT->LoadMacro("AddTaskESDfilter.C");\r | |
29 | AliAnalysisFilter* trackFilter = new AliAnalysisFilter("trackFilter");\r | |
30 | trackFilter->AddCuts(CreateCuts(0));\r | |
31 | taskPid->SetTrackFilter(trackFilter);\r | |
32 | }\r | |
33 | mgr->AddTask(taskPid);\r | |
34 | \r | |
35 | // Create ONLY the output containers for the data produced by the task.\r | |
36 | // Get and connect other common input/output containers via the manager as below\r | |
37 | //==============================================================================\r | |
38 | AliAnalysisDataContainer *coutput1_PID = mgr->CreateContainer("histosPID", TList::Class(),AliAnalysisManager::kOutputContainer,"pwg4pid.root");\r | |
39 | \r | |
40 | mgr->ConnectInput (taskPid, 0, mgr->GetCommonInputContainer());\r | |
41 | mgr->ConnectOutput (taskPid, 0, mgr->GetCommonOutputContainer());\r | |
42 | mgr->ConnectOutput (taskPid, 1, coutput1_PID);\r | |
43 | return taskPid;\r | |
44 | }\r | |
45 | \r | |
46 | AliAnalysisTaskPWG4PidDetEx *AddTaskPWG4PidDetEx(AliAnalysisManager* mgr,AliAnalysisDataContainer *cinput)\r | |
47 | {\r | |
48 | // This is only for running on PROOF with the old root version 5-22-00 \r | |
49 | // and the older version of the AF\r | |
50 | \r | |
51 | // Get the pointer to the existing analysis manager via the static access method.\r | |
52 | //==============================================================================\r | |
53 | AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();\r | |
54 | if (!mgr) {\r | |
55 | ::Error("AddTaskJets", "No analysis manager to connect to.");\r | |
56 | return NULL;\r | |
57 | } \r | |
58 | \r | |
59 | // Check the analysis type using the event handlers connected to the analysis manager.\r | |
60 | //==============================================================================\r | |
61 | if (!mgr->GetInputEventHandler()) {\r | |
62 | ::Error("AddTaskPWG4PidDetEx", "This task requires an input event handler");\r | |
63 | return NULL;\r | |
64 | }\r | |
65 | \r | |
66 | // Create the task and configure it.\r | |
67 | //===========================================================================\r | |
68 | AliAnalysisTaskPWG4PidDetEx* taskPid = new AliAnalysisTaskPWG4PidDetEx("TaskPID");\r | |
69 | if(mgr->GetInputEventHandler()->InheritsFrom("AliAODInputHandler"))taskPid->SetAnalysisType("AOD");\r | |
70 | else {\r | |
71 | // Either we assume taht w have the cuts already loaded or we just do it again\r | |
72 | // this can be done more elegant when also accepting AOD filtered output\r | |
73 | gROOT->LoadMacro("AddTaskESDfilter.C");\r | |
74 | AliAnalysisFilter* trackFilter = new AliAnalysisFilter("trackFilter");\r | |
75 | trackFilter->AddCuts(CreateCuts(0));\r | |
76 | taskPid->SetTrackFilter(trackFilter);\r | |
77 | }\r | |
78 | mgr->AddTask(taskPid);\r | |
79 | \r | |
80 | \r | |
81 | //\r | |
82 | // Create containers for input/output\r | |
83 | AliAnalysisDataContainer *c_aod_pid = mgr->CreateContainer("cAODpid", TTree::Class(),AliAnalysisManager::kExchangeContainer);\r | |
84 | AliAnalysisDataContainer *coutput1_PID = mgr->CreateContainer("histosPID", TList::Class(),AliAnalysisManager::kOutputContainer,"pwg4pid.root");\r | |
85 | mgr->ConnectInput (taskPid, 0, cinput );\r | |
86 | mgr->ConnectOutput (taskPid, 0, c_aod_pid);\r | |
87 | mgr->ConnectOutput (taskPid, 1, coutput1_PID);\r | |
88 | \r | |
89 | return taskPid;\r | |
90 | \r | |
91 | } \r |