]>
Commit | Line | Data |
---|---|---|
571a7b22 | 1 | /* |
2 | in real data. argument should be kFALSE, kFALSE, kFALSE, | |
3 | in siml data. argument should be kFALSE, kTRUE, kTRUE, | |
4 | ||
5 | */ | |
6 | AliAnalysisTask *AddTask_taku_LMEEPbPb2011Cent(Bool_t runRejection=kFALSE, Bool_t setMC=kFALSE,Bool_t enableCF=kFALSE){ | |
7 | //get the current analysis manager | |
8 | AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager(); | |
9 | if (!mgr) { | |
10 | Error("AddTask_taku_LMEEPbPb2011", "No analysis manager found."); | |
11 | return 0; | |
12 | } | |
13 | ||
14 | //create config File names: TRAIN_ROOT is for running on GSI train, | |
15 | // ALICE_ROOT for CERN Lego trains | |
16 | TString configBasePath("$TRAIN_ROOT/cbaumann_dielectron/"); | |
17 | TString trainRoot=gSystem->Getenv("TRAIN_ROOT"); | |
18 | if (trainRoot.IsNull()) configBasePath= "$ALICE_ROOT/PWGDQ/dielectron/macrosLMEE/"; | |
19 | TString configFile("ConfigTakuLMEEPbPb2011.C"); | |
20 | TString configLMEECutLib("LMEECutLibTaku.C"); | |
21 | ||
22 | TString configFilePath(configBasePath+configFile); | |
23 | TString configLMEECutLibPath(configBasePath+configLMEECutLib); | |
24 | ||
25 | //AOD Usage currently tested with separate task, to be merged | |
26 | if (mgr->GetInputEventHandler()->IsA()==AliAODInputHandler::Class()){ | |
27 | ::Info("AddTaskLMEEPbPb2011", "no dedicated AOD configuration"); | |
28 | } | |
29 | ||
30 | //Do we have an MC handler? | |
31 | Bool_t hasMC=setMC; | |
32 | if (AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler()!=0x0){ | |
33 | hasMC=kTRUE; | |
34 | } | |
35 | ||
36 | if (!gROOT->GetListOfGlobalFunctions()->FindObject(configLMEECutLib.Data())) | |
37 | gROOT->LoadMacro(configLMEECutLibPath.Data()); | |
38 | if (!gROOT->GetListOfGlobalFunctions()->FindObject(configFile.Data())) | |
39 | gROOT->LoadMacro(configFilePath.Data()); | |
40 | ||
41 | LMEECutLib* cutlib = new LMEECutLib(); | |
42 | cutlib->SetMCFlag(hasMC); | |
43 | AliAnalysisTaskMultiDielectronTG *task=new AliAnalysisTaskMultiDielectronTG("MultiDiEData"); | |
44 | ||
45 | ////default cutter defined in ConfigTakuLMEEPbPb2011.C | |
46 | Int_t PairCutTypeDef[20]={0, | |
47 | 0,0,0, //no pair cuts | |
48 | 1,1,1, //reject from arrays by op cuts | |
49 | 2,2,2, //reject from arrays by phiv cuts | |
50 | 3,3,3, //pair-by-pair cuts by op | |
51 | 4,4,4, //pair-by-pair cuts by phiv | |
52 | 0,0,0, | |
53 | 0}; | |
54 | ||
55 | Int_t PairCutType[20]={0}; | |
56 | PairCutType[0] = PairCutTypeDef[1]; | |
57 | PairCutType[1] = PairCutTypeDef[4]; | |
58 | PairCutType[2] = PairCutTypeDef[7]; | |
59 | PairCutType[3] = PairCutTypeDef[10]; | |
60 | PairCutType[4] = PairCutTypeDef[13]; | |
61 | ||
62 | if (!hasMC){ | |
63 | task->UsePhysicsSelection(); | |
64 | } | |
65 | task->SetTriggerMask(AliVEvent::kMB+AliVEvent::kCentral+AliVEvent::kSemiCentral); | |
66 | task->SetEventFilter(cutlib->GetEventCuts(LMEECutLib::kPbPb2011TPCandTOF)); // | |
67 | task->RejectConversion(2.0); | |
68 | task->RejectOP(0.035); | |
69 | task->SetPairCuts(PairCutType); | |
70 | task->EnableV0mixing(kFALSE); | |
71 | ||
72 | //load dielectron configuration file | |
73 | //add dielectron analysis with different cuts to the task | |
74 | if (runRejection) { | |
75 | AliDielectron *lowmass4=ConfigTakuLMEEPbPb2011(4,hasMC,enableCF); | |
76 | task->AddDielectron(lowmass4); | |
77 | printf("add: %s\n",lowmass4->GetName()); | |
78 | } | |
79 | else { | |
80 | ||
81 | AliDielectron *lowmass1=ConfigTakuLMEEPbPb2011(1,hasMC,enableCF); | |
82 | lowmass1->SetUseKF(kFALSE); | |
83 | task->AddDielectron(lowmass1); | |
84 | printf("add: %s\n",lowmass1->GetName()); | |
85 | ||
86 | /////////////////////////// | |
87 | ||
88 | AliDielectron *lowmass4=ConfigTakuLMEEPbPb2011(4,hasMC,enableCF); | |
89 | lowmass4->SetUseKF(kFALSE); | |
90 | task->AddDielectron(lowmass4); | |
91 | printf("add: %s\n",lowmass4->GetName()); | |
92 | /////////////////////////// | |
93 | ||
94 | AliDielectron *lowmass7=ConfigTakuLMEEPbPb2011(7,hasMC,enableCF); | |
95 | lowmass7->SetUseKF(kFALSE); | |
96 | task->AddDielectron(lowmass7); | |
97 | printf("add: %s\n",lowmass7->GetName()); | |
98 | ||
99 | /////////////////////////// | |
100 | ||
101 | AliDielectron *lowmass10=ConfigTakuLMEEPbPb2011(10,hasMC,enableCF); | |
102 | lowmass10->SetUseKF(kFALSE); | |
103 | task->AddDielectron(lowmass10); | |
104 | printf("add: %s\n",lowmass10->GetName()); | |
105 | ||
106 | /////////////////////////// | |
107 | ||
108 | AliDielectron *lowmass13=ConfigTakuLMEEPbPb2011(13,hasMC,enableCF); | |
109 | lowmass13->SetUseKF(kFALSE); | |
110 | task->AddDielectron(lowmass13); | |
111 | printf("add: %s\n",lowmass13->GetName()); | |
112 | ||
113 | } | |
114 | ||
115 | mgr->AddTask(task); | |
116 | ||
117 | //create output container | |
118 | AliAnalysisDataContainer *coutput1 = | |
119 | mgr->CreateContainer("taku_LMEEPbPb2011_tree", | |
120 | TTree::Class(), | |
121 | AliAnalysisManager::kExchangeContainer, | |
122 | "taku_LMEEPbPb2011_cent_default.root"); | |
123 | ||
124 | AliAnalysisDataContainer *cOutputHist1 = | |
125 | mgr->CreateContainer("taku_LMEEPbPb2011_out", | |
126 | TList::Class(), | |
127 | AliAnalysisManager::kOutputContainer, | |
128 | "taku_LMEEPbPb2011_cent_out.root"); | |
129 | ||
130 | AliAnalysisDataContainer *cOutputHist2 = 0x0; | |
131 | if (enableCF) { | |
132 | cOutputHist2 = | |
133 | mgr->CreateContainer("taku_LMEEPbPb2011_CF", | |
134 | TList::Class(), | |
135 | AliAnalysisManager::kOutputContainer, | |
136 | "taku_LMEEPbPb2011_cent_out.root"); | |
137 | ||
138 | } | |
139 | AliAnalysisDataContainer *cOutputHist3 = | |
140 | mgr->CreateContainer("taku_EventStatPbPb2011", | |
141 | TH1D::Class(), | |
142 | AliAnalysisManager::kOutputContainer, | |
143 | "taku_LMEEPbPb2011_cent_out.root"); | |
144 | ||
145 | ||
146 | mgr->ConnectInput(task, 0, mgr->GetCommonInputContainer()); | |
147 | mgr->ConnectOutput(task, 0, coutput1 ); | |
148 | mgr->ConnectOutput(task, 1, cOutputHist1); | |
149 | if (enableCF) { | |
150 | mgr->ConnectOutput(task, 2, cOutputHist2); | |
151 | } | |
152 | mgr->ConnectOutput(task, 3, cOutputHist3); | |
153 | ||
154 | return task; | |
155 | } |