]>
Commit | Line | Data |
---|---|---|
10efc4c3 | 1 | AliAnalysisTask *AddTask_reichelt_LMEEPbPb2011AOD(Char_t* outputFileName="LMEEoutput.root", |
bae04e0a | 2 | Bool_t flag1=kFALSE, Bool_t flag2=kFALSE, Bool_t getFromAlien=kFALSE, |
10efc4c3 | 3 | Int_t triggerNames=(AliVEvent::kMB+AliVEvent::kCentral+AliVEvent::kSemiCentral), Int_t collCands=AliVEvent::kAny) |
4 | { | |
5 | Bool_t bESDANA=kFALSE; //Autodetect via InputHandler | |
6 | //get the current analysis manager | |
7 | AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager(); | |
8 | if (!mgr) { | |
9 | Error("AddTask_reichelt_LMEEPbPb2011", "No analysis manager found."); | |
10 | return 0; | |
11 | } | |
12 | ||
13 | // create task and add it to the manager | |
14 | // gSystem->AddIncludePath("$ALICE_ROOT/PWGDQ/dielectron/macrosLMEE"); | |
15 | ||
16 | TString configBasePath("$TRAIN_ROOT/reichelt_lowmass/"); | |
17 | TString trainRoot=gSystem->Getenv("TRAIN_ROOT"); | |
18 | if (trainRoot.IsNull()) configBasePath= "$ALICE_ROOT/PWGDQ/dielectron/macrosLMEE/"; | |
19 | ||
20 | ||
21 | //Load updated macros from private ALIEN path | |
bae04e0a | 22 | if (getFromAlien //&& |
23 | && (!gSystem->Exec("alien_cp alien:///alice/cern.ch/user/p/preichel/PWGDQ/dielectron/macrosLMEE/Config_reichelt_LMEEPbPb2011.C .")) | |
24 | && (!gSystem->Exec("alien_cp alien:///alice/cern.ch/user/p/preichel/PWGDQ/dielectron/macrosLMEE/LMEECutLib_reichelt.C .")) | |
10efc4c3 | 25 | ) { |
26 | configBasePath=Form("%s/",gSystem->pwd()); | |
27 | } | |
28 | ||
29 | TString configFile("Config_reichelt_LMEEPbPb2011.C"); | |
30 | TString configLMEECutLib("LMEECutLib_reichelt.C"); | |
31 | ||
32 | TString configFilePath(configBasePath+configFile); | |
33 | TString configLMEECutLibPath(configBasePath+configLMEECutLib); | |
34 | ||
35 | //AOD Usage currently tested with separate task, to be merged | |
36 | if (mgr->GetInputEventHandler()->IsA()==AliAODInputHandler::Class()){ | |
37 | ::Info("AddTaskLMEEPbPb2011", "no dedicated AOD configuration"); | |
38 | } | |
39 | else if (mgr->GetInputEventHandler()->IsA()==AliESDInputHandler::Class()){ | |
40 | ::Info("AddTaskLMEEPbPb2011AOD","switching on ESD specific code"); | |
41 | bESDANA=kTRUE; | |
42 | } | |
43 | ||
44 | ||
45 | //Do we have an MC handler? | |
bae04e0a | 46 | Bool_t hasMC = (AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler() != 0x0); |
10efc4c3 | 47 | |
48 | //load dielectron configuration files | |
49 | if (!gROOT->GetListOfGlobalFunctions()->FindObject(configLMEECutLib.Data())) | |
50 | gROOT->LoadMacro(configLMEECutLibPath.Data()); | |
51 | if (!gROOT->GetListOfGlobalFunctions()->FindObject(configFile.Data())) | |
52 | gROOT->LoadMacro(configFilePath.Data()); | |
53 | ||
54 | ||
55 | LMEECutLib* cutlib = new LMEECutLib(); | |
56 | AliAnalysisTaskMultiDielectron *task=new AliAnalysisTaskMultiDielectron("MultiDiEData"); | |
57 | if (!hasMC) task->UsePhysicsSelection(); | |
58 | task->SetTriggerMask(triggerNames); | |
59 | task->SelectCollisionCandidates(collCands); | |
60 | task->SetEventFilter(cutlib->GetEventCuts(LMEECutLib::kPbPb2011_TPCTOF_Semi1)); | |
61 | // Note: event cuts are identical for all analysis 'cutDefinition's that run together! | |
62 | ||
63 | ||
64 | //add dielectron analysis with different cuts to the task | |
65 | for (Int_t i=0; i<nDie; ++i){ //nDie defined in config file | |
66 | //MB | |
67 | AliDielectron *diel_low = Config_reichelt_LMEEPbPb2011(i,hasMC,bESDANA); | |
68 | if(!diel_low)continue; | |
69 | task->AddDielectron(diel_low); | |
bae04e0a | 70 | printf("successfully added AliDielectron: %s\n",diel_low->GetName()); |
10efc4c3 | 71 | }//loop |
72 | ||
73 | mgr->AddTask(task); | |
74 | ||
75 | //create output container | |
76 | AliAnalysisDataContainer *coutput1 = | |
77 | mgr->CreateContainer("reichelt_LMEEPbPb2011_tree", | |
78 | TTree::Class(), | |
79 | AliAnalysisManager::kExchangeContainer, | |
80 | outputFileName); | |
81 | ||
82 | AliAnalysisDataContainer *cOutputHist1 = | |
83 | mgr->CreateContainer("reichelt_LMEEPbPb2011_out", | |
84 | TList::Class(), | |
85 | AliAnalysisManager::kOutputContainer, | |
86 | outputFileName); | |
87 | ||
88 | AliAnalysisDataContainer *cOutputHist2 = | |
89 | mgr->CreateContainer("reichelt_LMEEPbPb2011_CF", | |
90 | TList::Class(), | |
91 | AliAnalysisManager::kOutputContainer, | |
92 | outputFileName); | |
93 | ||
94 | AliAnalysisDataContainer *cOutputHist3 = | |
95 | mgr->CreateContainer("reichelt_EventStatPbPb2011", | |
96 | TH1D::Class(), | |
97 | AliAnalysisManager::kOutputContainer, | |
98 | outputFileName); | |
99 | ||
100 | mgr->ConnectInput(task, 0, mgr->GetCommonInputContainer()); | |
101 | mgr->ConnectOutput(task, 0, coutput1 ); | |
102 | mgr->ConnectOutput(task, 1, cOutputHist1); | |
103 | mgr->ConnectOutput(task, 2, cOutputHist2); | |
104 | mgr->ConnectOutput(task, 3, cOutputHist3); | |
105 | ||
106 | return task; | |
107 | } |