]>
Commit | Line | Data |
---|---|---|
86a74c03 | 1 | AliAnalysisTask *AddTask_cbaumann_LMEEPbPb2011SemiCent(Bool_t runRejection=kFALSE, Bool_t setMC=kFALSE,Bool_t enableCF=kFALSE, Bool_t switchToPhiV=kTRUE, Bool_t getFromAlien=kFALSE){ |
9a476b26 | 2 | //get the current analysis manager |
3 | AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager(); | |
4 | if (!mgr) { | |
54beba6b | 5 | Error("AddTask_cbaumann_LMEEPbPb2011", "No analysis manager found."); |
6 | return 0; | |
9a476b26 | 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/"; | |
86a74c03 | 14 | |
15 | if (getFromAlien && | |
b4d6ccde | 16 | (!gSystem->Exec("alien_cp alien:///alice/cern.ch/user/c/cbaumann/PWGDQ/dielectron/macrosJPSI/ConfigLMEEPbPb2011.C .")) |
86a74c03 | 17 | ) { |
18 | configFile=Form("%s/",gSystem->pwd()); | |
19 | } | |
20 | ||
9a476b26 | 21 | TString configFile("ConfigLMEEPbPb2011.C"); |
22 | TString configLMEECutLib("LMEECutLib.C"); | |
23 | ||
24 | TString configFilePath(configBasePath+configFile); | |
25 | TString configLMEECutLibPath(configBasePath+configLMEECutLib); | |
26 | ||
27 | //AOD Usage currently tested with separate task, to be merged | |
28 | if (mgr->GetInputEventHandler()->IsA()==AliAODInputHandler::Class()){ | |
54beba6b | 29 | ::Info("AddTaskLMEEPbPb2011", "no dedicated AOD configuration"); |
9a476b26 | 30 | } |
31 | ||
32 | //Do we have an MC handler? | |
33 | Bool_t hasMC=setMC; | |
34 | if (AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler()!=0x0) | |
54beba6b | 35 | hasMC=kTRUE; |
9a476b26 | 36 | |
37 | ||
38 | ||
39 | if (!gROOT->GetListOfGlobalFunctions()->FindObject(configLMEECutLib.Data())) | |
54beba6b | 40 | gROOT->LoadMacro(configLMEECutLibPath.Data()); |
9a476b26 | 41 | if (!gROOT->GetListOfGlobalFunctions()->FindObject(configFile.Data())) |
54beba6b | 42 | gROOT->LoadMacro(configFilePath.Data()); |
9a476b26 | 43 | |
44 | LMEECutLib* cutlib = new LMEECutLib(); | |
45 | cutlib->SetMCFlag(hasMC); | |
46 | AliAnalysisTaskMultiDielectron *task=new AliAnalysisTaskMultiDielectron("MultiDiEDataSemiCent"); | |
47 | if (!hasMC){ task->UsePhysicsSelection(); | |
48 | } | |
49 | task->SetTriggerMask(AliVEvent::kMB+AliVEvent::kCentral+AliVEvent::kSemiCentral); | |
50 | task->SetEventFilter(cutlib->GetEventCuts(LMEECutLib::kPbPb2011TPCandTOF)); // | |
51 | ||
52 | //load dielectron configuration file | |
53 | ||
54 | //add dielectron analysis with different cuts to the task | |
55 | if (runRejection) { | |
56 | ||
54beba6b | 57 | AliDielectron *lowmass4=ConfigLMEEPbPb2011(4,hasMC,enableCF); |
58 | task->AddDielectron(lowmass4); | |
59 | printf("add: %s\n",lowmass4->GetName()); | |
9a476b26 | 60 | } |
61 | else { | |
62 | ||
54beba6b | 63 | if (switchToPhiV) { |
64 | ||
65 | AliDielectron *lowmass10=ConfigLMEEPbPb2011(10,hasMC,enableCF); | |
66 | lowmass10->SetUseKF(kFALSE); | |
67 | task->AddDielectron(lowmass10); | |
68 | printf("add: %s\n",lowmass10->GetName()); | |
69 | ||
70 | ||
71 | } | |
72 | else { | |
73 | AliDielectron *lowmass2=ConfigLMEEPbPb2011(2,hasMC,enableCF); | |
74 | lowmass2->SetUseKF(kFALSE); | |
75 | task->AddDielectron(lowmass2); | |
76 | printf("add: %s\n",lowmass2->GetName()); | |
77 | } | |
9a476b26 | 78 | } |
79 | ||
80 | mgr->AddTask(task); | |
81 | ||
82 | //create output container | |
83 | AliAnalysisDataContainer *coutput1 = | |
54beba6b | 84 | mgr->CreateContainer("cbaumann_LMEEPbPb2011SemiCent_tree", |
85 | TTree::Class(), | |
86 | AliAnalysisManager::kExchangeContainer, | |
87 | "cbaumann_LMEEPbPb2011SemiCent_default.root"); | |
9a476b26 | 88 | |
89 | AliAnalysisDataContainer *cOutputHist1 = | |
54beba6b | 90 | mgr->CreateContainer("cbaumann_LMEEPbPb2011SemiCent_out", |
91 | TList::Class(), | |
92 | AliAnalysisManager::kOutputContainer, | |
93 | "cbaumann_LMEEPbPb2011SemiCent_out.root"); | |
94 | ||
9a476b26 | 95 | AliAnalysisDataContainer *cOutputHist2 = 0x0; |
96 | if (enableCF) { | |
54beba6b | 97 | cOutputHist2 = |
98 | mgr->CreateContainer("cbaumann_LMEEPbPb2011SemiCent_CF", | |
99 | TList::Class(), | |
100 | AliAnalysisManager::kOutputContainer, | |
101 | "cbaumann_LMEEPbPb2011SemiCent_out.root"); | |
9a476b26 | 102 | |
103 | } | |
104 | AliAnalysisDataContainer *cOutputHist3 = | |
54beba6b | 105 | mgr->CreateContainer("cbaumann_EventStatPbPb2011SemiCent", |
106 | TH1D::Class(), | |
107 | AliAnalysisManager::kOutputContainer, | |
108 | "cbaumann_LMEEPbPb2011SemiCent_out.root"); | |
9a476b26 | 109 | |
110 | ||
111 | mgr->ConnectInput(task, 0, mgr->GetCommonInputContainer()); | |
112 | mgr->ConnectOutput(task, 0, coutput1 ); | |
113 | mgr->ConnectOutput(task, 1, cOutputHist1); | |
114 | if (enableCF) { | |
54beba6b | 115 | mgr->ConnectOutput(task, 2, cOutputHist2); |
9a476b26 | 116 | } |
117 | mgr->ConnectOutput(task, 3, cOutputHist3); | |
118 | ||
119 | return task; | |
120 | } |