1 AliAnalysisTask *AddTask_mk_CCbarPbPb(TString prod="",ULong64_t triggers=AliVEvent::kEMCEGA | AliVEvent::kEMCEJE){
3 //get the current analysis manager
4 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
6 ::Error("AddTask_mk_CCbarPbPb", "No analysis manager found.");
9 if (!mgr->GetInputEventHandler()) {
10 ::Error("AddTask_mk_CCbarPbPb", "This task requires an input event handler");
15 //Do we have an MC handler?
16 Bool_t hasMC = kFALSE;
17 TString list = gSystem->Getenv("LIST");
18 if( list.IsNull()) list=prod;
19 if( list.Contains("LHC10h") || list.Contains("LHC11h") ) hasMC=kFALSE;
20 if( list.Contains("LHC11a10") || list.Contains("LHC12a17") ) hasMC=kTRUE;
23 TString configFile("$ALICE_ROOT/PWGDQ/dielectron/macrosLMEE/Config_mk_CCbarPbPb.C");
24 // TString configFile("Config_mk_CCbarPbPb.C");
26 Bool_t isAOD=mgr->GetInputEventHandler()->IsA()==AliAODInputHandler::Class();
28 //create task and add it to the manager
29 AliAnalysisTaskMultiDielectron *task=new AliAnalysisTaskMultiDielectron("MultiDie");
31 //load dielectron configuration file
32 TString checkconfig="$ALICE_ROOT/PWGDQ/dielectron/macrosLMEE/Config_mk_CCbarPbPb";//for train
33 // TString checkconfig="ConfigCCbar_mk_pp";
34 if (!gROOT->GetListOfGlobalFunctions()->FindObject(checkconfig.Data()))
35 gROOT->LoadMacro(configFile.Data());
37 //add dielectron analysis with different cuts to the task
38 for (Int_t i=0; i<nDie; ++i){ //nDie defined in config file
40 jpsi=Config_mk_CCbarPbPb(i,isAOD);
41 if (jpsi) task->AddDielectron(jpsi);
45 AliDielectronEventCuts *eventCuts=new AliDielectronEventCuts("eventCuts","Vertex Track && |vtxZ|<10 && ncontrib>0");
46 if(isAOD) eventCuts->SetVertexType(AliDielectronEventCuts::kVtxAny);
47 eventCuts->SetRequireVertex();
48 eventCuts->SetMinVtxContributors(1);
49 eventCuts->SetVertexZ(-10.,10.);
50 eventCuts->SetCentralityRange(0.0,90.0);
52 task->SetEventFilter(eventCuts);
55 task->SetTriggerMask(AliVEvent::kEMCEGA+AliVEvent::kEMCEJE);
56 task->UsePhysicsSelection();
60 //----------------------
61 //create data containers
62 //----------------------
64 //create output container
65 TString containerName = "LMEEoutput.root";
66 AliAnalysisDataContainer *cOutputHist1 =
67 mgr->CreateContainer("mkoehler_QA_EMC",
69 AliAnalysisManager::kOutputContainer,
70 containerName.Data());
72 AliAnalysisDataContainer *cOutputHist2 =
73 mgr->CreateContainer("mkoehler_CF_EMC",
75 AliAnalysisManager::kOutputContainer,
76 containerName.Data());
78 AliAnalysisDataContainer *cOutputHist3 =
79 mgr->CreateContainer("mkoehler_EventStat_EMC",
81 AliAnalysisManager::kOutputContainer,
82 containerName.Data());
85 mgr->ConnectInput(task, 0, mgr->GetCommonInputContainer());
86 mgr->ConnectOutput(task, 1, cOutputHist1);
87 mgr->ConnectOutput(task, 2, cOutputHist2);
88 mgr->ConnectOutput(task, 3, cOutputHist3);