]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG3/dielectron/macros/AddTaskJPSIFilter.C
78d81ccc402df71462031ff10f8c045775db2c76
[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("jpsi_FilterQA",
43                          THashList::Class(),
44                          AliAnalysisManager::kOutputContainer,
45                          containerName.Data());
46   
47   AliAnalysisDataContainer *cOutputHist2 =
48     mgr->CreateContainer("jpsi_FilterEventStat",
49                          TH1D::Class(),
50                          AliAnalysisManager::kOutputContainer,
51                          containerName.Data());
52   
53   mgr->ConnectInput(task,  0, mgr->GetCommonInputContainer());
54   mgr->ConnectOutput(task, 1, cOutputHist1);
55   mgr->ConnectOutput(task, 2, cOutputHist2);
56
57   return task;
58 }