]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGDQ/dielectron/macrosLMEE/AddTask_mkoehler_lowmassMC.C
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGDQ / dielectron / macrosLMEE / AddTask_mkoehler_lowmassMC.C
1
2
3 AliAnalysisTask *AddTask_mkoehler_lowmassMC(Bool_t hasMC_aod = kFALSE){
4   //get the current analysis manager
5   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
6   if (!mgr) {
7     ::Error("AddTask_mkoehler_lowmassMC", "No analysis manager found.");
8     return NULL;
9   }
10   if (!mgr->GetInputEventHandler()) {
11     ::Error("AddTask_mkoehler_lowmassMC", "This task requires an input event handler");
12     return NULL;
13   }
14
15   //Do we have an MC handler?
16   Bool_t hasMC=(mgr->GetMCtruthEventHandler()!=0x0);
17
18
19   TString configBasePath("$ALICE_ROOT/PWGDQ/dielectron/macrosLMEE/");
20   TString configFile("Config_mkoehler_lowmassMC.C");
21   TString configFilePath(configBasePath+configFile);
22   Bool_t isAOD=0;
23
24   //create task and add it to the manager
25   AliAnalysisTaskMultiDielectron *task=new AliAnalysisTaskMultiDielectron("MultiDie");
26   mgr->AddTask(task);
27   
28   //load dielectron configuration file
29   TString checkconfig="Config_mkoehler_lowmassMC.C";
30   if (!gROOT->GetListOfGlobalFunctions()->FindObject(checkconfig.Data()))
31     gROOT->LoadMacro(configFilePath.Data());
32   
33   
34     //Add event filter
35   AliDielectronEventCuts *eventCuts=new AliDielectronEventCuts("eventCuts","Vertex Track && |vtxZ|<10 && ncontrib>0");
36   eventCuts->SetRequireVertex();
37   eventCuts->SetMinVtxContributors(1);
38   eventCuts->SetVertexZ(-10.,10.);
39   task->SetEventFilter(eventCuts);
40   
41   
42   //add dielectron analysis with different cuts to the task
43   for (Int_t i=0; i<nDie; ++i){ //nDie defined in config file
44     AliDielectron *jpsi=Config_mkoehler_lowmassMC(i,isAOD, hasMC);
45     task->AddDielectron(jpsi);
46   }
47
48   //----------------------
49   //create data containers
50   //----------------------
51   
52   AliAnalysisDataContainer *cOutputHist1 =
53     mgr->CreateContainer("mkoehler_MC_QA", TList::Class(), AliAnalysisManager::kOutputContainer,
54                          "LMEEoutput.root");
55   
56   AliAnalysisDataContainer *cOutputHist2 =
57     mgr->CreateContainer("mkoehler_MC_CF", TList::Class(), AliAnalysisManager::kOutputContainer,
58                          "LMEEoutput.root");
59
60   AliAnalysisDataContainer *cOutputHist3 =
61     mgr->CreateContainer("mkoehler_MC_EventStat", TH1D::Class(), AliAnalysisManager::kOutputContainer,
62                         "LMEEoutput.root");
63   
64   mgr->ConnectInput(task,  0, mgr->GetCommonInputContainer());
65   mgr->ConnectOutput(task, 1, cOutputHist1);
66   mgr->ConnectOutput(task, 2, cOutputHist2);
67   mgr->ConnectOutput(task, 3, cOutputHist3);
68   
69   return task;
70 }