]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGLF/RESONANCES/macros/mini/ConfigPhiRAAPbPb.C
Merge branch 'master' of https://git.cern.ch/reps/AliRoot
[u/mrichter/AliRoot.git] / PWGLF / RESONANCES / macros / mini / ConfigPhiRAAPbPb.C
CommitLineData
4b2c784b 1//
2// *** Configuration script for phi->KK analysis with 2010 runs ***
3//
4// A configuration script for RSN package needs to define the followings:
5//
6// (1) decay tree of each resonance to be studied, which is needed to select
7// true pairs and to assign the right mass to all candidate daughters
8// (2) cuts at all levels: single daughters, tracks, events
9// (3) output objects: histograms or trees
10//
11Bool_t ConfigPhiRAAPbPb
12(
13 AliRsnMiniAnalysisTask *task,
14 Bool_t isMC,
15 Bool_t isESD,
16 const char *suffix,
17 AliRsnCutSet *cutsPair,
18 Int_t centr
19)
20{
21 // manage suffix
22 if (strlen(suffix) > 0) suffix = Form("_%s", suffix);
23
24 //
25 // -- Define track cuts -------------------------------------------------------------------------
26 //
27
28
29 gROOT->LoadMacro("AliRsnCutPhiRAA.cxx++g");
30 // standard kaon cut
31 AliRsnCutPhiRAA *cut = new AliRsnCutPhiRAA("cut1");
32 if (centr == 1) {
33 cut->SetMode(AliRsnCutPhiRAA::k2011_1_075);
34 }
35 else {
36 cut->SetMode(AliRsnCutPhiRAA::k2011_1_05);
37 }
38
39
40 // TPC 2 sigma pid
41 AliRsnCutPIDNSigma *cutKTPC2 = new AliRsnCutPIDNSigma("cut2SigmaTPCK",AliPID::kKaon,AliRsnCutPIDNSigma::kTPC);
42 cutKTPC2->SinglePIDRange(2.0);
43 // TPC 3 sigma pid
44 AliRsnCutPIDNSigma *cutKTPC3 = new AliRsnCutPIDNSigma("cut3SigmaTPCK",AliPID::kKaon,AliRsnCutPIDNSigma::kTPC);
45 cutKTPC3->SinglePIDRange(3.0);
46 // TPC 4 sigma pid
47 AliRsnCutPIDNSigma *cutKTPC4 = new AliRsnCutPIDNSigma("cut4SigmaTPCK",AliPID::kKaon,AliRsnCutPIDNSigma::kTPC);
48 cutKTPC4->SinglePIDRange(4.0);
49 // TPC 5 sigma pid
50 AliRsnCutPIDNSigma *cutKTPC5 = new AliRsnCutPIDNSigma("cut5SigmaTPCK",AliPID::kKaon,AliRsnCutPIDNSigma::kTPC);
51 cutKTPC5->SinglePIDRange(5.0);
52 // TPC 6 sigma pid
53 AliRsnCutPIDNSigma *cutKTPC6 = new AliRsnCutPIDNSigma("cut6SigmaTPCK",AliPID::kKaon,AliRsnCutPIDNSigma::kTPC);
54 cutKTPC6->SinglePIDRange(6.0);
55
56////////////////////////// Cut Sets ///////////////////////////////////////////////
57
58 AliRsnCutSet *cutSet = new AliRsnCutSet("set_NoPID", AliRsnTarget::kDaughter);
59 AliRsnCutSet *cutSet2 = new AliRsnCutSet("set_2sigmaTPC", AliRsnTarget::kDaughter);
60 AliRsnCutSet *cutSet3 = new AliRsnCutSet("set_3sigmaTPC", AliRsnTarget::kDaughter);
61 AliRsnCutSet *cutSet4 = new AliRsnCutSet("set_4sigmaTPC", AliRsnTarget::kDaughter);
62 AliRsnCutSet *cutSet5 = new AliRsnCutSet("set_5sigmaTPC", AliRsnTarget::kDaughter);
63 AliRsnCutSet *cutSet6 = new AliRsnCutSet("set_6sigmaTPC", AliRsnTarget::kDaughter);
64
65////////////////////////////////////////////////////////////////////////////////////
66 // no PID (only standard cuts)
67 cutSet->AddCut(cut);
68 cutSet->SetCutScheme(cut->GetName());
69
70 // TPC 2 sigma cut
71 cutSet2->AddCut(cut);
72 cutSet2->AddCut(cutKTPC2);
73 cutSet2->SetCutScheme("cut1&cut2SigmaTPCK");
74
75 // TPC 3 sigma cut
76 cutSet3->AddCut(cut);
77 cutSet3->AddCut(cutKTPC3);
78 cutSet3->SetCutScheme("cut1&cut3SigmaTPCK");
79
80 // TPC 4 sigma cut
81 cutSet4->AddCut(cut);
82 cutSet4->AddCut(cutKTPC4);
83 cutSet4->SetCutScheme("cut1&cut4SigmaTPCK");
84
85 // TPC 5 sigma cut
86 cutSet5->AddCut(cut);
87 cutSet5->AddCut(cutKTPC5);
88 cutSet5->SetCutScheme("cut1&cut5SigmaTPCK");
89
90 // TPC 6 sigma cut
91 cutSet6->AddCut(cut);
92 cutSet6->AddCut(cutKTPC6);
93 cutSet6->SetCutScheme("cut1&cut6SigmaTPCK");
94
95
96//////////////////////////////////////////////////////////////////////////////
97
98
99
100 // add to task
101 Int_t icut = task->AddTrackCuts(cutSet);
102 Int_t icut2 = task->AddTrackCuts(cutSet2);
103 Int_t icut3 = task->AddTrackCuts(cutSet3);
104 Int_t icut4 = task->AddTrackCuts(cutSet4);
105 Int_t icut5 = task->AddTrackCuts(cutSet5);
106 Int_t icut6 = task->AddTrackCuts(cutSet6);
107
108// Printf("======== Monitoring cut AliRsnCutSetDaughterParticle enabled");
109// gROOT->LoadMacro("$ALICE_ROOT/PWGLF/RESONANCES/macros/mini/AddMonitorOutput.C");
110// AddMonitorOutput(isMC, cutSet->GetMonitorOutput());
111
112 //
113 // -- Values ------------------------------------------------------------------------------------
114 //
115
116 /* invariant mass */ Int_t imID = task->CreateValue(AliRsnMiniValue::kInvMass, kFALSE);
117 /* IM resolution */ Int_t resID = task->CreateValue(AliRsnMiniValue::kInvMassRes, kTRUE);
118 /* IM resolution */ Int_t resID = task->CreateValue(AliRsnMiniValue::kInvMassRes, kFALSE);
119 /* transv. momentum */ Int_t ptID = task->CreateValue(AliRsnMiniValue::kPt, kFALSE);
120 /* centrality */ Int_t centID = task->CreateValue(AliRsnMiniValue::kMult, kFALSE);
121
122 //
123 // -- Create all needed outputs -----------------------------------------------------------------
124 //
125
126 // use an array for more compact writing, which are different on mixing and charges
127 // [0] = unlike
128 // [1] = mixing
129 // [2] = like ++
130 // [3] = like --
131
132/////////////////// NoPID 03 ///////////////////////////////////////////////////////////////
133
134 Bool_t use [4] = { 1 , 1 , 1 , 1 };
135 Bool_t useIM [4] = { 1 , 1 , 1 , 1 };
136 TString name [4] = {"UnlikeNoPID", "MixingNoPID", "LikePPNoPID", "LikeMMNoPID"};
137 TString comp [4] = {"PAIR" , "MIX" , "PAIR" , "PAIR" };
138 TString output [4] = {"SPARSE" , "SPARSE" , "SPARSE" , "SPARSE" };
139 Char_t charge1 [4] = {'+' , '+' , '+' , '-' };
140 Char_t charge2 [4] = {'-' , '-' , '+' , '-' };
141 Int_t cutID [4] = { icut , icut , icut , icut };
142
143 for (Int_t i = 0; i < 4; i++) {
144 if (!use[i]) continue;
145 // create output
146 AliRsnMiniOutput *out = task->CreateOutput(Form("phi_%s%s", name[i].Data(), suffix), output[i].Data(), comp[i].Data());
147 // selection settings
148 out->SetCutID(0, cutID[i]);
149 out->SetCutID(1, cutID[i]);
150 out->SetDaughter(0, AliRsnDaughter::kKaon);
151 out->SetDaughter(1, AliRsnDaughter::kKaon);
152 out->SetCharge(0, charge1[i]);
153 out->SetCharge(1, charge2[i]);
154 out->SetMotherPDG(333);
155 out->SetMotherMass(1.019455);
156 // pair cuts
157 out->SetPairCuts(cutsPair);
158 // axis X: invmass (or resolution)
159 if (useIM)
160 out->AddAxis(imID, 150, 0.9, 1.23);
161 else
162 out->AddAxis(resID, 200, -0.02, 0.02);
163 // axis Y: transverse momentum
164 out->AddAxis(ptID, 300, 0.0, 30.0);
165 // axis Z: centrality
166 out->AddAxis(centID, 100, 0.0, 100.0);
167 }
168
169////////////////////// 2s TPC 03 /////////////////////////////////////////////////
170
171 TString name2 [4] = {"Unlike2sigmaTPC", "Mixing2sigmaTPC", "LikePP2sigmaTPC", "LikeMM2sigmaTPC"};
172 Int_t cutID2 [4] = { icut2 , icut2 , icut2 , icut2 };
173
174 for (Int_t i = 0; i < 4; i++) {
175 if (!use[i]) continue;
176 // create output
177 AliRsnMiniOutput *out = task->CreateOutput(Form("phi_%s%s", name2[i].Data(), suffix), output[i].Data(), comp[i].Data());
178 // selection settings
179 out->SetCutID(0, cutID2[i]);
180 out->SetCutID(1, cutID2[i]);
181 out->SetDaughter(0, AliRsnDaughter::kKaon);
182 out->SetDaughter(1, AliRsnDaughter::kKaon);
183 out->SetCharge(0, charge1[i]);
184 out->SetCharge(1, charge2[i]);
185 out->SetMotherPDG(333);
186 out->SetMotherMass(1.019455);
187 // pair cuts
188 out->SetPairCuts(cutsPair);
189 // axis X: invmass (or resolution)
190 if (useIM)
191 out->AddAxis(imID, 150, 0.9, 1.23);
192 else
193 out->AddAxis(resID, 200, -0.02, 0.02);
194 // axis Y: transverse momentum
195 out->AddAxis(ptID, 300, 0.0, 30.0);
196 // axis Z: centrality
197 out->AddAxis(centID, 100, 0.0, 100.0);
198 }
199
200////////////////////// 3s TPC 03 //////////////////////////////////////////////////////////
201
202 TString name3 [4] = {"Unlike3sigmTPC", "Mixing3sigmTPC", "LikePP3sigmTPC", "LikeMM3sigmTPC"};
203 Int_t cutID3 [4] = { icut3 , icut3 , icut3 , icut3 };
204
205 for (Int_t i = 0; i < 4; i++) {
206 if (!use[i]) continue;
207 // create output
208 AliRsnMiniOutput *out = task->CreateOutput(Form("phi_%s%s", name3[i].Data(), suffix), output[i].Data(), comp[i].Data());
209 // selection settings
210 out->SetCutID(0, cutID3[i]);
211 out->SetCutID(1, cutID3[i]);
212 out->SetDaughter(0, AliRsnDaughter::kKaon);
213 out->SetDaughter(1, AliRsnDaughter::kKaon);
214 out->SetCharge(0, charge1[i]);
215 out->SetCharge(1, charge2[i]);
216 out->SetMotherPDG(333);
217 out->SetMotherMass(1.019455);
218 // pair cuts
219 out->SetPairCuts(cutsPair);
220 // axis X: invmass (or resolution)
221 if (useIM)
222 out->AddAxis(imID, 150, 0.9, 1.23);
223 else
224 out->AddAxis(resID, 200, -0.02, 0.02);
225 // axis Y: transverse momentum
226 out->AddAxis(ptID, 300, 0.0, 30.0);
227 // axis Z: centrality
228 out->AddAxis(centID, 100, 0.0, 100.0);
229 }
230
231////////////////////// 4s TPC 03/////////////////////////////////////////////////
232
233 TString name4 [4] = {"Unlike4sigmaTPC", "Mixing4sigmaTPC", "LikePP4sigmaTPC", "LikeMM4sigmaTPC"};
234 Int_t cutID4 [4] = { icut4 , icut4 , icut4 , icut4 };
235
236 for (Int_t i = 0; i < 4; i++) {
237 if (!use[i]) continue;
238 // create output
239 AliRsnMiniOutput *out = task->CreateOutput(Form("phi_%s%s", name4[i].Data(), suffix), output[i].Data(), comp[i].Data());
240 // selection settings
241 out->SetCutID(0, cutID4[i]);
242 out->SetCutID(1, cutID4[i]);
243 out->SetDaughter(0, AliRsnDaughter::kKaon);
244 out->SetDaughter(1, AliRsnDaughter::kKaon);
245 out->SetCharge(0, charge1[i]);
246 out->SetCharge(1, charge2[i]);
247 out->SetMotherPDG(333);
248 out->SetMotherMass(1.019455);
249 // pair cuts
250 out->SetPairCuts(cutsPair);
251 // axis X: invmass (or resolution)
252 if (useIM)
253 out->AddAxis(imID, 150, 0.9, 1.23);
254 else
255 out->AddAxis(resID, 200, -0.02, 0.02);
256 // axis Y: transverse momentum
257 out->AddAxis(ptID, 300, 0.0, 30.0);
258 // axis Z: centrality
259 out->AddAxis(centID, 100, 0.0, 100.0);
260 }
261
262////////////////////// 5s TPC 03/////////////////////////////////////////////////
263
264 TString name5 [4] = {"Unlike5sigmaTPC", "Mixing5sigmaTPC", "LikePP5sigmaTPC", "LikeMM5sigmaTPC"};
265 Int_t cutID5 [4] = { icut5 , icut5 , icut5 , icut5 };
266
267 for (Int_t i = 0; i < 4; i++) {
268 if (!use[i]) continue;
269 // create output
270 AliRsnMiniOutput *out = task->CreateOutput(Form("phi_%s%s", name5[i].Data(), suffix), output[i].Data(), comp[i].Data());
271 // selection settings
272 out->SetCutID(0, cutID5[i]);
273 out->SetCutID(1, cutID5[i]);
274 out->SetDaughter(0, AliRsnDaughter::kKaon);
275 out->SetDaughter(1, AliRsnDaughter::kKaon);
276 out->SetCharge(0, charge1[i]);
277 out->SetCharge(1, charge2[i]);
278 out->SetMotherPDG(333);
279 out->SetMotherMass(1.019455);
280 // pair cuts
281 out->SetPairCuts(cutsPair);
282 // axis X: invmass (or resolution)
283 if (useIM)
284 out->AddAxis(imID, 150, 0.9, 1.23);
285 else
286 out->AddAxis(resID, 200, -0.02, 0.02);
287 // axis Y: transverse momentum
288 out->AddAxis(ptID, 300, 0.0, 30.0);
289 // axis Z: centrality
290 out->AddAxis(centID, 100, 0.0, 100.0);
291 }
292
293////////////////////// 6s TPC 03/////////////////////////////////////////////////
294
295 TString name6 [4] = {"Unlike6sigmaTPC", "Mixing6sigmaTPC", "LikePP6sigmaTPC", "LikeMM6sigmaTPC"};
296 Int_t cutID6 [4] = { icut6 , icut6 , icut6 , icut6 };
297
298 for (Int_t i = 0; i < 4; i++) {
299 if (!use[i]) continue;
300 // create output
301 AliRsnMiniOutput *out = task->CreateOutput(Form("phi_%s%s", name6[i].Data(), suffix), output[i].Data(), comp[i].Data());
302 // selection settings
303 out->SetCutID(0, cutID6[i]);
304 out->SetCutID(1, cutID6[i]);
305 out->SetDaughter(0, AliRsnDaughter::kKaon);
306 out->SetDaughter(1, AliRsnDaughter::kKaon);
307 out->SetCharge(0, charge1[i]);
308 out->SetCharge(1, charge2[i]);
309 out->SetMotherPDG(333);
310 out->SetMotherMass(1.019455);
311 // pair cuts
312 out->SetPairCuts(cutsPair);
313 // axis X: invmass (or resolution)
314 if (useIM)
315 out->AddAxis(imID, 150, 0.9, 1.23);
316 else
317 out->AddAxis(resID, 200, -0.02, 0.02);
318 // axis Y: transverse momentum
319 out->AddAxis(ptID, 300, 0.0, 30.0);
320 // axis Z: centrality
321 out->AddAxis(centID, 100, 0.0, 100.0);
322 }
323
324////////////////////// THE END! ////////////////////////////////////////////////////////
325
326 return kTRUE;
327}