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 ConfigPhiRAAPbPb
13 AliRsnMiniAnalysisTask *task,
17 AliRsnCutSet *cutsPair,
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");
33 cut->SetMode(AliRsnCutPhiRAA::k2011_1_075);
36 cut->SetMode(AliRsnCutPhiRAA::k2011_1_05);
41 AliRsnCutPIDNSigma *cutKTPC2 = new AliRsnCutPIDNSigma("cut2SigmaTPCK",AliPID::kKaon,AliRsnCutPIDNSigma::kTPC);
42 cutKTPC2->SinglePIDRange(2.0);
44 AliRsnCutPIDNSigma *cutKTPC3 = new AliRsnCutPIDNSigma("cut3SigmaTPCK",AliPID::kKaon,AliRsnCutPIDNSigma::kTPC);
45 cutKTPC3->SinglePIDRange(3.0);
47 AliRsnCutPIDNSigma *cutKTPC4 = new AliRsnCutPIDNSigma("cut4SigmaTPCK",AliPID::kKaon,AliRsnCutPIDNSigma::kTPC);
48 cutKTPC4->SinglePIDRange(4.0);
50 AliRsnCutPIDNSigma *cutKTPC5 = new AliRsnCutPIDNSigma("cut5SigmaTPCK",AliPID::kKaon,AliRsnCutPIDNSigma::kTPC);
51 cutKTPC5->SinglePIDRange(5.0);
53 AliRsnCutPIDNSigma *cutKTPC6 = new AliRsnCutPIDNSigma("cut6SigmaTPCK",AliPID::kKaon,AliRsnCutPIDNSigma::kTPC);
54 cutKTPC6->SinglePIDRange(6.0);
56 ////////////////////////// Cut Sets ///////////////////////////////////////////////
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);
65 ////////////////////////////////////////////////////////////////////////////////////
66 // no PID (only standard cuts)
68 cutSet->SetCutScheme(cut->GetName());
72 cutSet2->AddCut(cutKTPC2);
73 cutSet2->SetCutScheme("cut1&cut2SigmaTPCK");
77 cutSet3->AddCut(cutKTPC3);
78 cutSet3->SetCutScheme("cut1&cut3SigmaTPCK");
82 cutSet4->AddCut(cutKTPC4);
83 cutSet4->SetCutScheme("cut1&cut4SigmaTPCK");
87 cutSet5->AddCut(cutKTPC5);
88 cutSet5->SetCutScheme("cut1&cut5SigmaTPCK");
92 cutSet6->AddCut(cutKTPC6);
93 cutSet6->SetCutScheme("cut1&cut6SigmaTPCK");
96 //////////////////////////////////////////////////////////////////////////////
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);
108 // Printf("======== Monitoring cut AliRsnCutSetDaughterParticle enabled");
109 // gROOT->LoadMacro("$ALICE_ROOT/PWGLF/RESONANCES/macros/mini/AddMonitorOutput.C");
110 // AddMonitorOutput(isMC, cutSet->GetMonitorOutput());
113 // -- Values ------------------------------------------------------------------------------------
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);
123 // -- Create all needed outputs -----------------------------------------------------------------
126 // use an array for more compact writing, which are different on mixing and charges
132 /////////////////// NoPID 03 ///////////////////////////////////////////////////////////////
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 };
143 for (Int_t i = 0; i < 4; i++) {
144 if (!use[i]) continue;
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);
157 out->SetPairCuts(cutsPair);
158 // axis X: invmass (or resolution)
160 out->AddAxis(imID, 150, 0.9, 1.23);
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);
169 ////////////////////// 2s TPC 03 /////////////////////////////////////////////////
171 TString name2 [4] = {"Unlike2sigmaTPC", "Mixing2sigmaTPC", "LikePP2sigmaTPC", "LikeMM2sigmaTPC"};
172 Int_t cutID2 [4] = { icut2 , icut2 , icut2 , icut2 };
174 for (Int_t i = 0; i < 4; i++) {
175 if (!use[i]) continue;
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);
188 out->SetPairCuts(cutsPair);
189 // axis X: invmass (or resolution)
191 out->AddAxis(imID, 150, 0.9, 1.23);
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);
200 ////////////////////// 3s TPC 03 //////////////////////////////////////////////////////////
202 TString name3 [4] = {"Unlike3sigmTPC", "Mixing3sigmTPC", "LikePP3sigmTPC", "LikeMM3sigmTPC"};
203 Int_t cutID3 [4] = { icut3 , icut3 , icut3 , icut3 };
205 for (Int_t i = 0; i < 4; i++) {
206 if (!use[i]) continue;
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);
219 out->SetPairCuts(cutsPair);
220 // axis X: invmass (or resolution)
222 out->AddAxis(imID, 150, 0.9, 1.23);
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);
231 ////////////////////// 4s TPC 03/////////////////////////////////////////////////
233 TString name4 [4] = {"Unlike4sigmaTPC", "Mixing4sigmaTPC", "LikePP4sigmaTPC", "LikeMM4sigmaTPC"};
234 Int_t cutID4 [4] = { icut4 , icut4 , icut4 , icut4 };
236 for (Int_t i = 0; i < 4; i++) {
237 if (!use[i]) continue;
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);
250 out->SetPairCuts(cutsPair);
251 // axis X: invmass (or resolution)
253 out->AddAxis(imID, 150, 0.9, 1.23);
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);
262 ////////////////////// 5s TPC 03/////////////////////////////////////////////////
264 TString name5 [4] = {"Unlike5sigmaTPC", "Mixing5sigmaTPC", "LikePP5sigmaTPC", "LikeMM5sigmaTPC"};
265 Int_t cutID5 [4] = { icut5 , icut5 , icut5 , icut5 };
267 for (Int_t i = 0; i < 4; i++) {
268 if (!use[i]) continue;
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);
281 out->SetPairCuts(cutsPair);
282 // axis X: invmass (or resolution)
284 out->AddAxis(imID, 150, 0.9, 1.23);
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);
293 ////////////////////// 6s TPC 03/////////////////////////////////////////////////
295 TString name6 [4] = {"Unlike6sigmaTPC", "Mixing6sigmaTPC", "LikePP6sigmaTPC", "LikeMM6sigmaTPC"};
296 Int_t cutID6 [4] = { icut6 , icut6 , icut6 , icut6 };
298 for (Int_t i = 0; i < 4; i++) {
299 if (!use[i]) continue;
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);
312 out->SetPairCuts(cutsPair);
313 // axis X: invmass (or resolution)
315 out->AddAxis(imID, 150, 0.9, 1.23);
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);
324 ////////////////////// THE END! ////////////////////////////////////////////////////////