2 // *** Configuration script for phi->KK analysis with 2010 runs ***
4 // A configuration script for RSN package needs to define the followings:
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
11 Bool_t ConfigPhiRAApPb
13 AliRsnMiniAnalysisTask *task,
17 AliRsnCutSet *cutsPair,
18 AliRsnCutSet *cutsPair2
22 if (strlen(suffix) > 0) suffix = Form("_%s", suffix);
25 // -- Define track cuts -------------------------------------------------------------------------
29 gROOT->LoadMacro("AliRsnCutPhiRAA.cxx++g");
31 AliRsnCutPhiRAA *cut = new AliRsnCutPhiRAA("cut1");
32 cut->SetMode(AliRsnCutPhiRAA::k2011_1);
36 AliRsnCutPIDNSigma *cutKTPC3 = new AliRsnCutPIDNSigma("cut3SigmaTPCK",AliPID::kKaon,AliRsnCutPIDNSigma::kTPC);
37 cutKTPC3->SinglePIDRange(3.0);
39 AliRsnCutPIDNSigma *cutKTPC2 = new AliRsnCutPIDNSigma("cut2SigmaTPCK",AliPID::kKaon,AliRsnCutPIDNSigma::kTPC);
40 cutKTPC2->SinglePIDRange(2.0);
42 AliRsnCutPIDNSigma *cutKTPC4 = new AliRsnCutPIDNSigma("cut4SigmaTPCK",AliPID::kKaon,AliRsnCutPIDNSigma::kTPC);
43 cutKTPC4->SinglePIDRange(4.0);
45 AliRsnCutPIDNSigma *cutKTPC5 = new AliRsnCutPIDNSigma("cut5SigmaTPCK",AliPID::kKaon,AliRsnCutPIDNSigma::kTPC);
46 cutKTPC5->SinglePIDRange(5.0);
48 AliRsnCutPIDNSigma *cutKTPC6 = new AliRsnCutPIDNSigma("cut6SigmaTPCK",AliPID::kKaon,AliRsnCutPIDNSigma::kTPC);
49 cutKTPC6->SinglePIDRange(6.0);
51 ////////////////////////// Cut Sets ///////////////////////////////////////////////
53 AliRsnCutSet *cutSet = new AliRsnCutSet("set_NoPID", AliRsnTarget::kDaughter);
54 AliRsnCutSet *cutSet5 = new AliRsnCutSet("set_2sigmaTPC", AliRsnTarget::kDaughter);
55 AliRsnCutSet *cutSet7 = new AliRsnCutSet("set_3sigmaTPC", AliRsnTarget::kDaughter);
56 AliRsnCutSet *cutSet12 = new AliRsnCutSet("set_4sigmaTPC", AliRsnTarget::kDaughter);
57 AliRsnCutSet *cutSet13 = new AliRsnCutSet("set_5sigmaTPC", AliRsnTarget::kDaughter);
58 AliRsnCutSet *cutSet14 = new AliRsnCutSet("set_6sigmaTPC", AliRsnTarget::kDaughter);
60 ////////////////////////////////////////////////////////////////////////////////////
61 // no PID (only standard cuts)
63 cutSet->SetCutScheme(cut->GetName());
67 cutSet5->AddCut(cutKTPC2);
68 cutSet5->SetCutScheme("cut1&cut2SigmaTPCK");
72 cutSet7->AddCut(cutKTPC3);
73 cutSet7->SetCutScheme("cut1&cut3SigmaTPCK");
76 cutSet12->AddCut(cut);
77 cutSet12->AddCut(cutKTPC4);
78 cutSet12->SetCutScheme("cut1&cut4SigmaTPCK");
81 cutSet13->AddCut(cut);
82 cutSet13->AddCut(cutKTPC5);
83 cutSet13->SetCutScheme("cut1&cut5SigmaTPCK");
86 cutSet14->AddCut(cut);
87 cutSet14->AddCut(cutKTPC6);
88 cutSet14->SetCutScheme("cut1&cut6SigmaTPCK");
91 //////////////////////////////////////////////////////////////////////////////
96 Int_t icut = task->AddTrackCuts(cutSet);
97 Int_t icut5 = task->AddTrackCuts(cutSet5);
98 Int_t icut7 = task->AddTrackCuts(cutSet7);
99 Int_t icut12 = task->AddTrackCuts(cutSet12);
100 Int_t icut13 = task->AddTrackCuts(cutSet13);
101 Int_t icut14 = task->AddTrackCuts(cutSet14);
103 Printf("======== Monitoring cut AliRsnCutSetDaughterParticle enabled");
104 gROOT->LoadMacro("$ALICE_ROOT/PWGLF/RESONANCES/macros/mini/AddMonitorOutput.C");
105 AddMonitorOutput(isMC, cutSet->GetMonitorOutput());
108 // -- Values ------------------------------------------------------------------------------------
111 /* invariant mass */ Int_t imID = task->CreateValue(AliRsnMiniValue::kInvMass, kFALSE);
112 /* IM resolution */ Int_t resID = task->CreateValue(AliRsnMiniValue::kInvMassRes, kTRUE);
113 /* IM resolution */ Int_t resID = task->CreateValue(AliRsnMiniValue::kInvMassRes, kFALSE);
114 /* transv. momentum */ Int_t ptID = task->CreateValue(AliRsnMiniValue::kPt, kFALSE);
115 /* centrality */ Int_t centID = task->CreateValue(AliRsnMiniValue::kMult, kFALSE);
118 // -- Create all needed outputs -----------------------------------------------------------------
121 // use an array for more compact writing, which are different on mixing and charges
127 /////////////////// NoPID 03 ///////////////////////////////////////////////////////////////
129 Bool_t use [4] = { 1 , 1 , 1 , 1 };
130 Bool_t useIM [4] = { 1 , 1 , 1 , 1 };
131 TString name [4] = {"UnlikeNoPID_03", "MixingNoPID_03", "LikePPNoPID_03", "LikeMMNoPID_03"};
132 TString comp [4] = {"PAIR" , "MIX" , "PAIR" , "PAIR" };
133 TString output [4] = {"HIST" , "HIST" , "HIST" , "HIST" };
134 Char_t charge1 [4] = {'+' , '+' , '+' , '-' };
135 Char_t charge2 [4] = {'-' , '-' , '+' , '-' };
136 Int_t cutID [4] = { icut , icut , icut , icut };
138 for (Int_t i = 0; i < 4; i++) {
139 if (!use[i]) continue;
141 AliRsnMiniOutput *out = task->CreateOutput(Form("phi_%s%s", name[i].Data(), suffix), output[i].Data(), comp[i].Data());
142 // selection settings
143 out->SetCutID(0, cutID[i]);
144 out->SetCutID(1, cutID[i]);
145 out->SetDaughter(0, AliRsnDaughter::kKaon);
146 out->SetDaughter(1, AliRsnDaughter::kKaon);
147 out->SetCharge(0, charge1[i]);
148 out->SetCharge(1, charge2[i]);
149 out->SetMotherPDG(333);
150 out->SetMotherMass(1.019455);
152 out->SetPairCuts(cutsPair);
153 // axis X: invmass (or resolution)
155 out->AddAxis(imID, 500, 0.9, 1.4);
157 out->AddAxis(resID, 200, -0.02, 0.02);
158 // axis Y: transverse momentum
159 out->AddAxis(ptID, 400, 0.0, 40.0);
160 // axis Z: centrality
161 // out->AddAxis(centID, 100, 0.0, 100.0);
164 /////////////////// NoPID 05 ///////////////////////////////////////////////////////////////
166 TString name_1 [4] = {"UnlikeNoPID_05", "MixingNoPID_05", "LikePPNoPID_05", "LikeMMNoPID_05"};
168 for (Int_t i = 0; i < 4; i++) {
169 if (!use[i]) continue;
171 AliRsnMiniOutput *out = task->CreateOutput(Form("phi_%s%s", name_1[i].Data(), suffix), output[i].Data(), comp[i].Data());
172 // selection settings
173 out->SetCutID(0, cutID[i]);
174 out->SetCutID(1, cutID[i]);
175 out->SetDaughter(0, AliRsnDaughter::kKaon);
176 out->SetDaughter(1, AliRsnDaughter::kKaon);
177 out->SetCharge(0, charge1[i]);
178 out->SetCharge(1, charge2[i]);
179 out->SetMotherPDG(333);
180 out->SetMotherMass(1.019455);
182 out->SetPairCuts(cutsPair2);
183 // axis X: invmass (or resolution)
185 out->AddAxis(imID, 500, 0.9, 1.4);
187 out->AddAxis(resID, 200, -0.02, 0.02);
188 // axis Y: transverse momentum
189 out->AddAxis(ptID, 400, 0.0, 40.0);
190 // axis Z: centrality
191 // out->AddAxis(centID, 100, 0.0, 100.0);
194 ////////////////////// 2s TPC 03 /////////////////////////////////////////////////
196 TString name5 [4] = {"Unlike2sigmaTPC_03", "Mixing2sigmaTPC_03", "LikePP2sigmaTPC_03", "LikeMM2sigmaTPC_03"};
197 Int_t cutID5 [4] = { icut5 , icut5 , icut5 , icut5 };
199 for (Int_t i = 0; i < 4; i++) {
200 if (!use[i]) continue;
202 AliRsnMiniOutput *out = task->CreateOutput(Form("phi_%s%s", name5[i].Data(), suffix), output[i].Data(), comp[i].Data());
203 // selection settings
204 out->SetCutID(0, cutID5[i]);
205 out->SetCutID(1, cutID5[i]);
206 out->SetDaughter(0, AliRsnDaughter::kKaon);
207 out->SetDaughter(1, AliRsnDaughter::kKaon);
208 out->SetCharge(0, charge1[i]);
209 out->SetCharge(1, charge2[i]);
210 out->SetMotherPDG(333);
211 out->SetMotherMass(1.019455);
213 out->SetPairCuts(cutsPair);
214 // axis X: invmass (or resolution)
216 out->AddAxis(imID, 500, 0.9, 1.4);
218 out->AddAxis(resID, 200, -0.02, 0.02);
219 // axis Y: transverse momentum
220 out->AddAxis(ptID, 400, 0.0, 40.0);
221 // axis Z: centrality
222 // out->AddAxis(centID, 100, 0.0, 100.0);
225 ////////////////////// 2s TPC 05 /////////////////////////////////////////////////
227 TString name5_1 [4] = {"Unlike2sigmaTPC_05", "Mixing2sigmaTPC_05", "LikePP2sigmaTPC_05", "LikeMM2sigmaTPC_05"};
229 for (Int_t i = 0; i < 4; i++) {
230 if (!use[i]) continue;
232 AliRsnMiniOutput *out = task->CreateOutput(Form("phi_%s%s", name5_1[i].Data(), suffix), output[i].Data(), comp[i].Data());
233 // selection settings
234 out->SetCutID(0, cutID5[i]);
235 out->SetCutID(1, cutID5[i]);
236 out->SetDaughter(0, AliRsnDaughter::kKaon);
237 out->SetDaughter(1, AliRsnDaughter::kKaon);
238 out->SetCharge(0, charge1[i]);
239 out->SetCharge(1, charge2[i]);
240 out->SetMotherPDG(333);
241 out->SetMotherMass(1.019455);
243 out->SetPairCuts(cutsPair2);
244 // axis X: invmass (or resolution)
246 out->AddAxis(imID, 500, 0.9, 1.4);
248 out->AddAxis(resID, 200, -0.02, 0.02);
249 // axis Y: transverse momentum
250 out->AddAxis(ptID, 400, 0.0, 40.0);
251 // axis Z: centrality
252 // out->AddAxis(centID, 100, 0.0, 100.0);
255 ////////////////////// 3s TPC 03 //////////////////////////////////////////////////////////
257 TString name7 [4] = {"Unlike3sigmTPC_03", "Mixing3sigmTPC_03", "LikePP3sigmTPC_03", "LikeMM3sigmTPC_03"};
258 Int_t cutID7 [4] = { icut7 , icut7 , icut7 , icut7 };
260 for (Int_t i = 0; i < 4; i++) {
261 if (!use[i]) continue;
263 AliRsnMiniOutput *out = task->CreateOutput(Form("phi_%s%s", name7[i].Data(), suffix), output[i].Data(), comp[i].Data());
264 // selection settings
265 out->SetCutID(0, cutID7[i]);
266 out->SetCutID(1, cutID7[i]);
267 out->SetDaughter(0, AliRsnDaughter::kKaon);
268 out->SetDaughter(1, AliRsnDaughter::kKaon);
269 out->SetCharge(0, charge1[i]);
270 out->SetCharge(1, charge2[i]);
271 out->SetMotherPDG(333);
272 out->SetMotherMass(1.019455);
274 out->SetPairCuts(cutsPair);
275 // axis X: invmass (or resolution)
277 out->AddAxis(imID, 500, 0.9, 1.4);
279 out->AddAxis(resID, 200, -0.02, 0.02);
280 // axis Y: transverse momentum
281 out->AddAxis(ptID, 400, 0.0, 40.0);
282 // axis Z: centrality
283 // out->AddAxis(centID, 100, 0.0, 100.0);
286 ////////////////////// 3s TPC 05 //////////////////////////////////////////////////////////
288 TString name7_1 [4] = {"Unlike3sigmTPC_05", "Mixing3sigmTPC_05", "LikePP3sigmTPC_05", "LikeMM3sigmTPC_05"};
290 for (Int_t i = 0; i < 4; i++) {
291 if (!use[i]) continue;
293 AliRsnMiniOutput *out = task->CreateOutput(Form("phi_%s%s", name7_1[i].Data(), suffix), output[i].Data(), comp[i].Data());
294 // selection settings
295 out->SetCutID(0, cutID7[i]);
296 out->SetCutID(1, cutID7[i]);
297 out->SetDaughter(0, AliRsnDaughter::kKaon);
298 out->SetDaughter(1, AliRsnDaughter::kKaon);
299 out->SetCharge(0, charge1[i]);
300 out->SetCharge(1, charge2[i]);
301 out->SetMotherPDG(333);
302 out->SetMotherMass(1.019455);
304 out->SetPairCuts(cutsPair2);
305 // axis X: invmass (or resolution)
307 out->AddAxis(imID, 500, 0.9, 1.4);
309 out->AddAxis(resID, 200, -0.02, 0.02);
310 // axis Y: transverse momentum
311 out->AddAxis(ptID, 400, 0.0, 40.0);
312 // axis Z: centrality
313 // out->AddAxis(centID, 100, 0.0, 100.0);
317 ////////////////////// 4s TPC 03/////////////////////////////////////////////////
319 TString name12 [4] = {"Unlike4sigmaTPC_03", "Mixing4sigmaTPC_03", "LikePP4sigmaTPC_03", "LikeMM4sigmaTPC_03"};
320 Int_t cutID12 [4] = { icut12 , icut12 , icut12 , icut12 };
322 for (Int_t i = 0; i < 4; i++) {
323 if (!use[i]) continue;
325 AliRsnMiniOutput *out = task->CreateOutput(Form("phi_%s%s", name12[i].Data(), suffix), output[i].Data(), comp[i].Data());
326 // selection settings
327 out->SetCutID(0, cutID12[i]);
328 out->SetCutID(1, cutID12[i]);
329 out->SetDaughter(0, AliRsnDaughter::kKaon);
330 out->SetDaughter(1, AliRsnDaughter::kKaon);
331 out->SetCharge(0, charge1[i]);
332 out->SetCharge(1, charge2[i]);
333 out->SetMotherPDG(333);
334 out->SetMotherMass(1.019455);
336 out->SetPairCuts(cutsPair);
337 // axis X: invmass (or resolution)
339 out->AddAxis(imID, 500, 0.9, 1.4);
341 out->AddAxis(resID, 200, -0.02, 0.02);
342 // axis Y: transverse momentum
343 out->AddAxis(ptID, 400, 0.0, 40.0);
344 // axis Z: centrality
345 // out->AddAxis(centID, 100, 0.0, 100.0);
348 ////////////////////// 4s TPC 05 /////////////////////////////////////////////////
350 TString name12_1 [4] = {"Unlike4sigmaTPC_05", "Mixing4sigmaTPC_05", "LikePP4sigmaTPC_05", "LikeMM4sigmaTPC_05"};
352 for (Int_t i = 0; i < 4; i++) {
353 if (!use[i]) continue;
355 AliRsnMiniOutput *out = task->CreateOutput(Form("phi_%s%s", name12_1[i].Data(), suffix), output[i].Data(), comp[i].Data());
356 // selection settings
357 out->SetCutID(0, cutID12[i]);
358 out->SetCutID(1, cutID12[i]);
359 out->SetDaughter(0, AliRsnDaughter::kKaon);
360 out->SetDaughter(1, AliRsnDaughter::kKaon);
361 out->SetCharge(0, charge1[i]);
362 out->SetCharge(1, charge2[i]);
363 out->SetMotherPDG(333);
364 out->SetMotherMass(1.019455);
366 out->SetPairCuts(cutsPair2);
367 // axis X: invmass (or resolution)
369 out->AddAxis(imID, 500, 0.9, 1.4);
371 out->AddAxis(resID, 200, -0.02, 0.02);
372 // axis Y: transverse momentum
373 out->AddAxis(ptID, 400, 0.0, 40.0);
374 // axis Z: centrality
375 // out->AddAxis(centID, 100, 0.0, 100.0);
378 ////////////////////// 5s TPC 03/////////////////////////////////////////////////
380 TString name13 [4] = {"Unlike5sigmaTPC_03", "Mixing5sigmaTPC_03", "LikePP5sigmaTPC_03", "LikeMM5sigmaTPC_03"};
381 Int_t cutID13 [4] = { icut13 , icut13 , icut13 , icut13 };
383 for (Int_t i = 0; i < 4; i++) {
384 if (!use[i]) continue;
386 AliRsnMiniOutput *out = task->CreateOutput(Form("phi_%s%s", name13[i].Data(), suffix), output[i].Data(), comp[i].Data());
387 // selection settings
388 out->SetCutID(0, cutID13[i]);
389 out->SetCutID(1, cutID13[i]);
390 out->SetDaughter(0, AliRsnDaughter::kKaon);
391 out->SetDaughter(1, AliRsnDaughter::kKaon);
392 out->SetCharge(0, charge1[i]);
393 out->SetCharge(1, charge2[i]);
394 out->SetMotherPDG(333);
395 out->SetMotherMass(1.019455);
397 out->SetPairCuts(cutsPair);
398 // axis X: invmass (or resolution)
400 out->AddAxis(imID, 500, 0.9, 1.4);
402 out->AddAxis(resID, 200, -0.02, 0.02);
403 // axis Y: transverse momentum
404 out->AddAxis(ptID, 400, 0.0, 40.0);
405 // axis Z: centrality
406 // out->AddAxis(centID, 100, 0.0, 100.0);
409 ////////////////////// 5s TPC 05 /////////////////////////////////////////////////
411 TString name13_1 [4] = {"Unlike5sigmaTPC_05", "Mixing5sigmaTPC_05", "LikePP5sigmaTPC_05", "LikeMM5sigmaTPC_05"};
413 for (Int_t i = 0; i < 4; i++) {
414 if (!use[i]) continue;
416 AliRsnMiniOutput *out = task->CreateOutput(Form("phi_%s%s", name13_1[i].Data(), suffix), output[i].Data(), comp[i].Data());
417 // selection settings
418 out->SetCutID(0, cutID13[i]);
419 out->SetCutID(1, cutID13[i]);
420 out->SetDaughter(0, AliRsnDaughter::kKaon);
421 out->SetDaughter(1, AliRsnDaughter::kKaon);
422 out->SetCharge(0, charge1[i]);
423 out->SetCharge(1, charge2[i]);
424 out->SetMotherPDG(333);
425 out->SetMotherMass(1.019455);
427 out->SetPairCuts(cutsPair2);
428 // axis X: invmass (or resolution)
430 out->AddAxis(imID, 500, 0.9, 1.4);
432 out->AddAxis(resID, 200, -0.02, 0.02);
433 // axis Y: transverse momentum
434 out->AddAxis(ptID, 400, 0.0, 40.0);
435 // axis Z: centrality
436 // out->AddAxis(centID, 100, 0.0, 100.0);
440 ////////////////////// 6s TPC 03/////////////////////////////////////////////////
442 TString name14 [4] = {"Unlike6sigmaTPC_03", "Mixing6sigmaTPC_03", "LikePP6sigmaTPC_03", "LikeMM6sigmaTPC_03"};
443 Int_t cutID14 [4] = { icut14 , icut14 , icut14 , icut14 };
445 for (Int_t i = 0; i < 4; i++) {
446 if (!use[i]) continue;
448 AliRsnMiniOutput *out = task->CreateOutput(Form("phi_%s%s", name14[i].Data(), suffix), output[i].Data(), comp[i].Data());
449 // selection settings
450 out->SetCutID(0, cutID14[i]);
451 out->SetCutID(1, cutID14[i]);
452 out->SetDaughter(0, AliRsnDaughter::kKaon);
453 out->SetDaughter(1, AliRsnDaughter::kKaon);
454 out->SetCharge(0, charge1[i]);
455 out->SetCharge(1, charge2[i]);
456 out->SetMotherPDG(333);
457 out->SetMotherMass(1.019455);
459 out->SetPairCuts(cutsPair);
460 // axis X: invmass (or resolution)
462 out->AddAxis(imID, 500, 0.9, 1.4);
464 out->AddAxis(resID, 200, -0.02, 0.02);
465 // axis Y: transverse momentum
466 out->AddAxis(ptID, 400, 0.0, 40.0);
467 // axis Z: centrality
468 // out->AddAxis(centID, 100, 0.0, 100.0);
471 ////////////////////// 6s TPC 05 /////////////////////////////////////////////////
473 TString name14_1 [4] = {"Unlike6sigmaTPC_05", "Mixing6sigmaTPC_05", "LikePP6sigmaTPC_05", "LikeMM6sigmaTPC_05"};
475 for (Int_t i = 0; i < 4; i++) {
476 if (!use[i]) continue;
478 AliRsnMiniOutput *out = task->CreateOutput(Form("phi_%s%s", name14_1[i].Data(), suffix), output[i].Data(), comp[i].Data());
479 // selection settings
480 out->SetCutID(0, cutID14[i]);
481 out->SetCutID(1, cutID14[i]);
482 out->SetDaughter(0, AliRsnDaughter::kKaon);
483 out->SetDaughter(1, AliRsnDaughter::kKaon);
484 out->SetCharge(0, charge1[i]);
485 out->SetCharge(1, charge2[i]);
486 out->SetMotherPDG(333);
487 out->SetMotherMass(1.019455);
489 out->SetPairCuts(cutsPair2);
490 // axis X: invmass (or resolution)
492 out->AddAxis(imID, 500, 0.9, 1.4);
494 out->AddAxis(resID, 200, -0.02, 0.02);
495 // axis Y: transverse momentum
496 out->AddAxis(ptID, 400, 0.0, 40.0);
497 // axis Z: centrality
498 // out->AddAxis(centID, 100, 0.0, 100.0);
501 ////////////////////// THE END! ////////////////////////////////////////////////////////