]>
Commit | Line | Data |
---|---|---|
fb7d2d99 | 1 | AliAnalysisTask *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 | ||
572b0139 | 16 | TString configFile("$ALICE_ROOT/PWG3/dielectron/macros/ConfigJpsi2eeData.C"); |
48609e3d | 17 | if (hasMC) configFile="$ALICE_ROOT/PWG3/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.); | |
ba15fdfb | 39 | |
40 | // add event filter | |
41 | task->SetEventFilter(eventCuts); | |
42 | ||
43 | // pileup rejection | |
44 | task->SetRejectPileup(); | |
572b0139 | 45 | |
46 | //---------------------- | |
47 | //create data containers | |
48 | //---------------------- | |
572b0139 | 49 | |
50 | TString containerName = mgr->GetCommonFileName(); | |
51 | containerName += ":PWG3_dielectron"; | |
52 | ||
53 | //create output container | |
54 | ||
55 | AliAnalysisDataContainer *cOutputHist1 = | |
61d106d3 | 56 | mgr->CreateContainer("jpsi_QA", TList::Class(), AliAnalysisManager::kOutputContainer, |
572b0139 | 57 | containerName.Data()); |
58 | ||
59 | AliAnalysisDataContainer *cOutputHist2 = | |
61d106d3 | 60 | mgr->CreateContainer("jpsi_CF", TList::Class(), AliAnalysisManager::kOutputContainer, |
61 | containerName.Data()); | |
62 | ||
63 | AliAnalysisDataContainer *cOutputHist3 = | |
64 | mgr->CreateContainer("jpsi_EventStat", TH1D::Class(), AliAnalysisManager::kOutputContainer, | |
572b0139 | 65 | containerName.Data()); |
66 | ||
67 | mgr->ConnectInput(task, 0, mgr->GetCommonInputContainer()); | |
68 | mgr->ConnectOutput(task, 1, cOutputHist1); | |
69 | mgr->ConnectOutput(task, 2, cOutputHist2); | |
61d106d3 | 70 | mgr->ConnectOutput(task, 3, cOutputHist3); |
572b0139 | 71 | |
72 | return task; | |
fb7d2d99 | 73 | } |