]>
Commit | Line | Data |
---|---|---|
16864de3 | 1 | |
2 | ||
16864de3 | 3 | AliAnalysisTask *AddTask_mkoehler_lowmassMC(Bool_t hasMC_aod = kFALSE){ |
4 | //get the current analysis manager | |
5 | AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager(); | |
6 | if (!mgr) { | |
7 | ::Error("AddTask_mkoehler_lowmassMC", "No analysis manager found."); | |
8 | return NULL; | |
9 | } | |
10 | if (!mgr->GetInputEventHandler()) { | |
11 | ::Error("AddTask_mkoehler_lowmassMC", "This task requires an input event handler"); | |
12 | return NULL; | |
13 | } | |
14 | ||
15 | //Do we have an MC handler? | |
16 | Bool_t hasMC=(mgr->GetMCtruthEventHandler()!=0x0); | |
a837c2f7 | 17 | |
18 | ||
19 | TString configBasePath("$ALICE_ROOT/PWGDQ/dielectron/macrosLMEE/"); | |
16864de3 | 20 | TString configFile("Config_mkoehler_lowmassMC.C"); |
a837c2f7 | 21 | TString configFilePath(configBasePath+configFile); |
16864de3 | 22 | Bool_t isAOD=0; |
23 | ||
24 | //create task and add it to the manager | |
25 | AliAnalysisTaskMultiDielectron *task=new AliAnalysisTaskMultiDielectron("MultiDie"); | |
26 | mgr->AddTask(task); | |
27 | ||
28 | //load dielectron configuration file | |
a837c2f7 | 29 | TString checkconfig="Config_mkoehler_lowmassMC.C"; |
16864de3 | 30 | if (!gROOT->GetListOfGlobalFunctions()->FindObject(checkconfig.Data())) |
a837c2f7 | 31 | gROOT->LoadMacro(configFilePath.Data()); |
16864de3 | 32 | |
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.); | |
39 | task->SetEventFilter(eventCuts); | |
40 | ||
41 | ||
42 | //add dielectron analysis with different cuts to the task | |
43 | for (Int_t i=0; i<nDie; ++i){ //nDie defined in config file | |
edd32676 | 44 | AliDielectron *jpsi=Config_mkoehler_lowmassMC(i,isAOD, hasMC); |
16864de3 | 45 | task->AddDielectron(jpsi); |
46 | } | |
47 | ||
48 | //---------------------- | |
49 | //create data containers | |
50 | //---------------------- | |
51 | ||
52 | AliAnalysisDataContainer *cOutputHist1 = | |
53 | mgr->CreateContainer("mkoehler_MC_QA", TList::Class(), AliAnalysisManager::kOutputContainer, | |
54 | "LMEEoutput.root"); | |
55 | ||
56 | AliAnalysisDataContainer *cOutputHist2 = | |
57 | mgr->CreateContainer("mkoehler_MC_CF", TList::Class(), AliAnalysisManager::kOutputContainer, | |
58 | "LMEEoutput.root"); | |
59 | ||
60 | AliAnalysisDataContainer *cOutputHist3 = | |
61 | mgr->CreateContainer("mkoehler_MC_EventStat", TH1D::Class(), AliAnalysisManager::kOutputContainer, | |
62 | "LMEEoutput.root"); | |
63 | ||
64 | mgr->ConnectInput(task, 0, mgr->GetCommonInputContainer()); | |
65 | mgr->ConnectOutput(task, 1, cOutputHist1); | |
66 | mgr->ConnectOutput(task, 2, cOutputHist2); | |
67 | mgr->ConnectOutput(task, 3, cOutputHist3); | |
68 | ||
69 | return task; | |
70 | } |