]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG3/dielectron/macros/AddTaskJPSIFilter.C
76462d01b6379f3bb082d05ab9381a94555cbd60
[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("AddTaskJPSIFilter", "No analysis manager found.");
6     return 0;
7   }
8   
9   //check for output aod handler
10   if (!mgr->GetOutputEventHandler()||mgr->GetOutputEventHandler()->IsA()!=AliAODHandler::Class()) {
11     Warning("AddTaskJPSIFilter","No AOD output handler available. Not adding the task!");
12     return 0;
13   }
14
15   //Do we have an MC handler?
16   Bool_t hasMC=(AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler()!=0x0);
17   
18   //Do we run on AOD?
19   Bool_t isAOD=mgr->GetInputEventHandler()->IsA()==AliAODInputHandler::Class();
20   
21   //Create task and add it to the analysis manager
22   AliAnalysisTaskDielectronFilter *task=new AliAnalysisTaskDielectronFilter("jpsi_DielectronFilter");
23   
24   gROOT->LoadMacro("$ALICE_ROOT/PWG3/dielectron/macros/ConfigJpsi2eeFilter.C");
25   AliDielectron *jpsi=ConfigJpsi2eeFilter(isAOD);
26   if (!hasMC) task->UsePhysicsSelection();
27   task->SetDielectron(jpsi);
28   mgr->AddTask(task);
29
30   //----------------------
31   //create data containers
32   //----------------------
33   
34   
35   TString containerName = mgr->GetCommonFileName();
36   containerName += ":PWG3_dielectronFilter";
37   
38   //create output container
39   
40   AliAnalysisDataContainer *cOutputHist1 =
41     mgr->CreateContainer("jpsi_FilterQA",
42                          THashList::Class(),
43                          AliAnalysisManager::kOutputContainer,
44                          containerName.Data());
45   
46   AliAnalysisDataContainer *cOutputHist2 =
47     mgr->CreateContainer("jpsi_FilterEventStat",
48                          TH1D::Class(),
49                          AliAnalysisManager::kOutputContainer,
50                          containerName.Data());
51   
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 }