]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGDQ/dielectron/macros/AddTaskJPSI.C
including switch to set on/off iso-track core removal, cleaning and bug fix
[u/mrichter/AliRoot.git] / PWGDQ / dielectron / macros / AddTaskJPSI.C
CommitLineData
fb7d2d99 1AliAnalysisTask *AddTaskJPSI(Bool_t hasMC_aod = kFALSE){
572b0139 2 //get the current analysis manager
3 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
4 if (!mgr) {
5 ::Error("AddTasJPSI", "No analysis manager found.");
6 return NULL;
7 }
8 if (!mgr->GetInputEventHandler()) {
9 ::Error("AddTaskJPSI", "This task requires an input event handler");
10 return NULL;
11 }
12
48609e3d 13 //Do we have an MC handler?
14 Bool_t hasMC=(mgr->GetMCtruthEventHandler()!=0x0);
15
a14d0b3e 16 TString configFile("$ALICE_ROOT/PWGDQ/dielectron/macros/ConfigJpsi2eeData.C");
17 if (hasMC) configFile="$ALICE_ROOT/PWGDQ/dielectron/macros/ConfigJpsi2eeEff.C";
164bfb53 18 Bool_t isAOD=mgr->GetInputEventHandler()->IsA()==AliAODInputHandler::Class();
572b0139 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 gROOT->LoadMacro(configFile.Data());
26
27 //add dielectron analysis with different cuts to the task
28 for (Int_t i=0; i<nDie; ++i){ //nDie defined in config file
164bfb53 29 AliDielectron *jpsi=ConfigJpsi2ee(i,isAOD);
fb7d2d99 30 if (isAOD) jpsi->SetHasMC(hasMC_aod);
48609e3d 31 if (jpsi) task->AddDielectron(jpsi);
572b0139 32 }
fb7d2d99 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.);
0c09cae4 39 if (isAOD) eventCuts->SetVertexType(AliDielectronEventCuts::kVtxAny);
ba15fdfb 40
41 // add event filter
42 task->SetEventFilter(eventCuts);
43
44 // pileup rejection
45 task->SetRejectPileup();
572b0139 46
47 //----------------------
48 //create data containers
49 //----------------------
572b0139 50
51 TString containerName = mgr->GetCommonFileName();
a14d0b3e 52 containerName += ":PWGDQ_dielectron";
572b0139 53
54 //create output container
55
56 AliAnalysisDataContainer *cOutputHist1 =
61d106d3 57 mgr->CreateContainer("jpsi_QA", TList::Class(), AliAnalysisManager::kOutputContainer,
572b0139 58 containerName.Data());
59
60 AliAnalysisDataContainer *cOutputHist2 =
61d106d3 61 mgr->CreateContainer("jpsi_CF", TList::Class(), AliAnalysisManager::kOutputContainer,
62 containerName.Data());
63
64 AliAnalysisDataContainer *cOutputHist3 =
65 mgr->CreateContainer("jpsi_EventStat", TH1D::Class(), AliAnalysisManager::kOutputContainer,
572b0139 66 containerName.Data());
67
68 mgr->ConnectInput(task, 0, mgr->GetCommonInputContainer());
69 mgr->ConnectOutput(task, 1, cOutputHist1);
70 mgr->ConnectOutput(task, 2, cOutputHist2);
61d106d3 71 mgr->ConnectOutput(task, 3, cOutputHist3);
572b0139 72
73 return task;
a14d0b3e 74}