]>
Commit | Line | Data |
---|---|---|
9a476b26 | 1 | AliAnalysisTask *AddTask_cbaumann_LMEEnoPID(Bool_t withMC = kFALSE,Bool_t enableCF = kFALSE){ |
2 | //get the current analysis manager | |
3 | AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager(); | |
4 | if (!mgr) { | |
5 | Error("AddTask_cbaumann_LMEEnoPID", "No analysis manager found."); | |
6 | return 0; | |
7 | } | |
8 | ||
9 | //create config File names: TRAIN_ROOT is for running on GSI train, | |
10 | // ALICE_ROOT for CERN Lego trains | |
11 | TString configBasePath("$TRAIN_ROOT/cbaumann_dielectron/"); | |
12 | TString trainRoot=gSystem->Getenv("TRAIN_ROOT"); | |
13 | if (trainRoot.IsNull()) configBasePath= "$ALICE_ROOT/PWGDQ/dielectron/macrosLMEE/"; | |
14 | TString configFile("ConfigLMEEnoPID.C"); | |
15 | TString configLMEECutLib("LMEECutLib.C"); | |
16 | ||
17 | TString configFilePath(configBasePath+configFile); | |
18 | TString configLMEECutLibPath(configBasePath+configLMEECutLib); | |
19 | ||
20 | ||
21 | //AOD Usage not yet testes/avialable------------------------------------- | |
22 | ||
23 | if (mgr->GetInputEventHandler()->IsA()==AliAODInputHandler::Class()){ | |
24 | ::Info("AddTaskLMEEnoPID", "no dedicated AOD configuration"); | |
25 | // configFile="$TRAIN_ROOT/util/dielectron/dielectron/macros/ConfigLMEEnoPIDAOD.C"; | |
26 | ||
27 | } | |
28 | ||
29 | //Do we have an MC handler? | |
30 | Bool_t hasMC=(AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler()!=0x0); | |
31 | if (!hasMC) hasMC=withMC; | |
32 | ||
33 | // create task and add it to the manager | |
34 | ||
35 | if (!gROOT->GetListOfGlobalFunctions()->FindObject(configLMEECutLib.Data())) | |
36 | gROOT->LoadMacro(configLMEECutLibPath.Data()); | |
37 | if (!gROOT->GetListOfGlobalFunctions()->FindObject(configFile.Data())) | |
38 | gROOT->LoadMacro(configFilePath.Data()); | |
39 | ||
40 | ||
41 | LMEECutLib* cutlib = new LMEECutLib(); | |
42 | AliAnalysisTaskMultiDielectron *task=new AliAnalysisTaskMultiDielectron("MultiDiEData"); | |
43 | if (!hasMC) task->UsePhysicsSelection(); | |
44 | task->SetEventFilter(cutlib->GetEventCuts(LMEECutLib::kpp2010TPCandTOF)); // | |
45 | ||
46 | ||
47 | //load dielectron configuration file | |
48 | ||
49 | //add dielectron analysis with different cuts to the task | |
50 | //no memleak | |
51 | AliDielectron *lowmass0=ConfigLMEEnoPID(0,hasMC,enableCF); | |
52 | task->AddDielectron(lowmass0); | |
53 | printf("add: %s\n",lowmass0->GetName()); | |
54 | ||
55 | AliDielectron *lowmass1=ConfigLMEEnoPID(1,hasMC,enableCF); | |
56 | task->AddDielectron(lowmass1); | |
57 | printf("add: %s\n",lowmass1->GetName()); | |
27520cca | 58 | |
59 | AliDielectron *lowmass2=ConfigLMEEnoPID(2,hasMC,enableCF); | |
60 | task->AddDielectron(lowmass2); | |
61 | printf("add: %s\n",lowmass2->GetName()); | |
9a476b26 | 62 | |
63 | mgr->AddTask(task); | |
64 | ||
65 | //create output container | |
66 | AliAnalysisDataContainer *coutput1 = | |
67 | mgr->CreateContainer("cbaumann_LMEEnoPID_tree", | |
68 | TTree::Class(), | |
69 | AliAnalysisManager::kExchangeContainer, | |
70 | "cbaumann_LMEEnoPID_default.root"); | |
71 | ||
72 | AliAnalysisDataContainer *cOutputHist1 = | |
73 | mgr->CreateContainer("cbaumann_LMEEnoPID_out", | |
74 | TList::Class(), | |
75 | AliAnalysisManager::kOutputContainer, | |
76 | "cbaumann_LMEEnoPID_out.root"); | |
77 | ||
78 | AliAnalysisDataContainer *cOutputHist2 = 0x0; | |
79 | if (enableCF) { | |
80 | cOutputHist2 = | |
81 | mgr->CreateContainer("cbaumann_LMEEnoPID_CF", | |
82 | TList::Class(), | |
83 | AliAnalysisManager::kOutputContainer, | |
84 | "cbaumann_LMEEnoPID_out.root"); | |
85 | } | |
86 | AliAnalysisDataContainer *cOutputHist3 = | |
87 | mgr->CreateContainer("cbaumann_EventStatnoPID", | |
88 | TH1D::Class(), | |
89 | AliAnalysisManager::kOutputContainer, | |
90 | "cbaumann_LMEEnoPID_out.root"); | |
91 | ||
92 | ||
93 | mgr->ConnectInput(task, 0, mgr->GetCommonInputContainer()); | |
94 | mgr->ConnectOutput(task, 0, coutput1 ); | |
95 | mgr->ConnectOutput(task, 1, cOutputHist1); | |
96 | if (enableCF) mgr->ConnectOutput(task, 2, cOutputHist2); | |
97 | mgr->ConnectOutput(task, 3, cOutputHist3); | |
98 | ||
99 | return task; | |
100 | } |