]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGDQ/dielectron/macrosLMEE/AddTask_mk_CCbarPbPb.C
update from pr task : sjena
[u/mrichter/AliRoot.git] / PWGDQ / dielectron / macrosLMEE / AddTask_mk_CCbarPbPb.C
CommitLineData
cca4796f 1AliAnalysisTask *AddTask_mk_CCbarPbPb(TString prod="",ULong64_t triggers=AliVEvent::kEMCEGA | AliVEvent::kEMCEJE){
2
3 //get the current analysis manager
4 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
5 if (!mgr) {
6 ::Error("AddTask_mk_CCbarPbPb", "No analysis manager found.");
7 return NULL;
8 }
9 if (!mgr->GetInputEventHandler()) {
10 ::Error("AddTask_mk_CCbarPbPb", "This task requires an input event handler");
11 return NULL;
12 }
13
14
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;
21
22
fd3d56a1 23TString configFile("$ALICE_ROOT/PWGDQ/dielectron/macrosLMEE/Config_mk_CCbarPbPb.C");
24//TString configFile("Config_mk_CCbarPbPb.C");
cca4796f 25
26 Bool_t isAOD=mgr->GetInputEventHandler()->IsA()==AliAODInputHandler::Class();
27
28 //create task and add it to the manager
29 AliAnalysisTaskMultiDielectron *task=new AliAnalysisTaskMultiDielectron("MultiDie");
30
31 //load dielectron configuration file
fd3d56a1 32TString checkconfig="$ALICE_ROOT/PWGDQ/dielectron/macrosLMEE/Config_mk_CCbarPbPb";
cca4796f 33// TString checkconfig="ConfigCCbar_mk_pp";
34 if (!gROOT->GetListOfGlobalFunctions()->FindObject(checkconfig.Data()))
35 gROOT->LoadMacro(configFile.Data());
36
37 //add dielectron analysis with different cuts to the task
38 for (Int_t i=0; i<nDie; ++i){ //nDie defined in config file
39 AliDielectron *jpsi;
40 jpsi=Config_mk_CCbarPbPb(i,isAOD);
41 if (jpsi) task->AddDielectron(jpsi);
42 }
43
44 //Add event filter
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);
51 // add event filter
52 task->SetEventFilter(eventCuts);
53
54 // pileup rejection
fd3d56a1 55 task->SetTriggerMask(AliVEvent::kEMCEGA);
cca4796f 56 task->UsePhysicsSelection();
57
58 mgr->AddTask(task);
59
60 //----------------------
61 //create data containers
62 //----------------------
63
64 //create output container
65 TString containerName = "LMEEoutput.root";
66 AliAnalysisDataContainer *cOutputHist1 =
67 mgr->CreateContainer("mkoehler_QA_EMC",
68 TList::Class(),
69 AliAnalysisManager::kOutputContainer,
70 containerName.Data());
71
72 AliAnalysisDataContainer *cOutputHist2 =
73 mgr->CreateContainer("mkoehler_CF_EMC",
74 TList::Class(),
75 AliAnalysisManager::kOutputContainer,
76 containerName.Data());
77
78 AliAnalysisDataContainer *cOutputHist3 =
79 mgr->CreateContainer("mkoehler_EventStat_EMC",
80 TH1D::Class(),
81 AliAnalysisManager::kOutputContainer,
82 containerName.Data());
83
84
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);
89
90 return task;
91}