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