]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG3/dielectron/macros/AddTaskJPSIFilter.C
Code updates with bugfixes; new PID class; filtered AOD config macro
[u/mrichter/AliRoot.git] / PWG3 / dielectron / macros / AddTaskJPSIFilter.C
1 AliAnalysisTask *AddTaskJPSIFilter(){
2   //get the current analysis manager
3   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
4   if (!mgr) {
5     Error("AddTask_jpsi_DielectronFilter", "No analysis manager found.");
6     return 0;
7   }
8   // currently don't accept AOD input
9   if (mgr->GetInputEventHandler()->IsA()==AliAODInputHandler::Class()) {
10     Warning("AddTask_jpsi_JPsi","No AOD input supported currently. Not adding the task!");
11     return 0;
12   }
13   //check for output aod handler
14   if (!mgr->GetOutputEventHandler()||mgr->GetOutputEventHandler()->IsA()!=AliAODHandler::Class()) {
15     Warning("AddTask_jpsi_DielectronFilter","No AOD output handler available. Not adding the task!");
16     return 0;
17   }
18
19   //Do we have an MC handler?
20   Bool_t hasMC=(AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler()!=0x0);
21
22   //Create task and add it to the analysis manager
23   AliAnalysisTaskDielectronFilter *task=new AliAnalysisTaskDielectronFilter("jpsi_DielectronFilter");
24   
25   gROOT->LoadMacro("$ALICE_ROOT/PWG3/dielectron/macros/ConfigJpsi2eeFilter.C");
26   AliDielectron *jpsi=ConfigJpsi2eeFilter();
27   if (!hasMC) task->UsePhysicsSelection();
28   task->SetDielectron(jpsi);
29   mgr->AddTask(task);
30
31   //----------------------
32   //create data containers
33   //----------------------
34   
35   
36   TString containerName = mgr->GetCommonFileName();
37   containerName += ":PWG3_dielectronFilter";
38   
39   //create output container
40   
41   AliAnalysisDataContainer *cOutputHist1 =
42     mgr->CreateContainer("QA", TList::Class(), AliAnalysisManager::kOutputContainer,
43                          containerName.Data());
44   
45   AliAnalysisDataContainer *cOutputHist2 =
46     mgr->CreateContainer("CF", TList::Class(), AliAnalysisManager::kOutputContainer,
47                          containerName.Data());
48   
49   mgr->ConnectInput(task,  0, mgr->GetCommonInputContainer());
50   mgr->ConnectOutput(task, 1, cOutputHist1);
51   mgr->ConnectOutput(task, 2, cOutputHist2);
52
53   return task;
54 }