3 AliAnalysisTask *AddTask_mkoehler_lowmassMC(Bool_t hasMC_aod = kFALSE){
4 //get the current analysis manager
5 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
7 ::Error("AddTask_mkoehler_lowmassMC", "No analysis manager found.");
10 if (!mgr->GetInputEventHandler()) {
11 ::Error("AddTask_mkoehler_lowmassMC", "This task requires an input event handler");
15 //Do we have an MC handler?
16 Bool_t hasMC=(mgr->GetMCtruthEventHandler()!=0x0);
19 TString configBasePath("$ALICE_ROOT/PWGDQ/dielectron/macrosLMEE/");
20 TString configFile("Config_mkoehler_lowmassMC.C");
21 TString configFilePath(configBasePath+configFile);
24 //create task and add it to the manager
25 AliAnalysisTaskMultiDielectron *task=new AliAnalysisTaskMultiDielectron("MultiDie");
28 //load dielectron configuration file
29 TString checkconfig="Config_mkoehler_lowmassMC.C";
30 if (!gROOT->GetListOfGlobalFunctions()->FindObject(checkconfig.Data()))
31 gROOT->LoadMacro(configFilePath.Data());
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);
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);
48 //----------------------
49 //create data containers
50 //----------------------
52 AliAnalysisDataContainer *cOutputHist1 =
53 mgr->CreateContainer("mkoehler_MC_QA", TList::Class(), AliAnalysisManager::kOutputContainer,
56 AliAnalysisDataContainer *cOutputHist2 =
57 mgr->CreateContainer("mkoehler_MC_CF", TList::Class(), AliAnalysisManager::kOutputContainer,
60 AliAnalysisDataContainer *cOutputHist3 =
61 mgr->CreateContainer("mkoehler_MC_EventStat", TH1D::Class(), AliAnalysisManager::kOutputContainer,
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);