]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG2/FEMTOSCOPY/macros/Train/Train3/ConfigFemtoAnalysis.C
Lines getting the matched track moved to a method in AliCalorimeterUtils. Lines copie...
[u/mrichter/AliRoot.git] / PWG2 / FEMTOSCOPY / macros / Train / Train3 / ConfigFemtoAnalysis.C
CommitLineData
ce84bcfa 1/*********************************************************************
2 * *
3 * ConfigFemtoAnalysis.C - configuration macro for the femtoscopic *
4 * analysis, to be run in the analysis train. *
5 * Assumed input data: large (>10M) sample of MC pp events *
6 * Inluded analysis: *
7 * - positive pion HBT, 3 kt bins, 1D+3D functions *
8 * - negative pion HBT, 3 kt bins, 1D+3D functions *
9 * - positive kaon HBT, 1 kt bin, 1D+3D functions *
10 * *
11 * Author: Adam Kisiel (Adam.Kisiel@cern.ch) *
12 * *
13 *********************************************************************/
14
15#if !defined(__CINT__) || defined(__MAKECINT_)
16#include "AliFemtoManager.h"
17#include "AliFemtoEventReaderESDChain.h"
18#include "AliFemtoEventReaderESDChainKine.h"
19#include "AliFemtoSimpleAnalysis.h"
20#include "AliFemtoBasicEventCut.h"
21#include "AliFemtoESDTrackCut.h"
22#include "AliFemtoCorrFctn.h"
23#include "AliFemtoCutMonitorParticleYPt.h"
24#include "AliFemtoCutMonitorParticleVertPos.h"
25#include "AliFemtoCutMonitorParticleMomRes.h"
26#include "AliFemtoCutMonitorEventMult.h"
27#include "AliFemtoCutMonitorEventVertex.h"
28#include "AliFemtoShareQualityTPCEntranceSepPairCut.h"
29#include "AliFemtoQinvCorrFctn.h"
30#include "AliFemtoShareQualityCorrFctn.h"
31#include "AliFemtoTPCInnerCorrFctn.h"
32#include "AliFemtoVertexMultAnalysis.h"
33#include "AliFemtoCorrFctn3DSpherical.h"
34#include "AliFemtoChi2CorrFctn.h"
35#include "AliFemtoCorrFctnTPCNcls.h"
36#include "AliFemtoModelBPLCMSCorrFctn.h"
37#include "AliFemtoModelCorrFctn3DSpherical.h"
38#include "AliFemtoModelGausLCMSFreezeOutGenerator.h"
39#include "AliFemtoModelGausRinvFreezeOutGenerator.h"
40#include "AliFemtoModelManager.h"
41#include "AliFemtoModelWeightGeneratorBasic.h"
42#include "AliFemtoModelWeightGeneratorLednicky.h"
43#include "AliFemtoCorrFctnDirectYlm.h"
44#include "AliFemtoModelCorrFctnDirectYlm.h"
45#include "AliFemtoModelCorrFctnSource.h"
46#include "AliFemtoCutMonitorParticlePtPDG.h"
47#include "AliFemtoKTPairCut.h"
48#endif
49
50//________________________________________________________________________
51AliFemtoManager* ConfigFemtoAnalysis() {
52
53 double PionMass = 0.13956995;
54 double KaonMass = 0.493677;
55
56 AliFemtoEventReaderESDChainKine* Reader=new AliFemtoEventReaderESDChainKine();
57 Reader->SetConstrained(true);
58 Reader->SetUseTPCOnly(false);
59
60 AliFemtoManager* Manager=new AliFemtoManager();
61 Manager->SetEventReader(Reader);
62
63 int runPositivePions = 1;
64 int runNegativePions = 1;
65 int runPositiveKaons = 1;
66 int runNegativeKaons = 1;
3b33b4fa 67 int runPositiveNegativeKaons = 1;
ce84bcfa 68
69 if (runPositivePions) {
70 // *** Begin pion-pion (positive) analysis ***
71 AliFemtoVertexMultAnalysis *anpip = new AliFemtoVertexMultAnalysis(3, -15.6, 15.6, 1, 2, 200000);
72 anpip->SetNumEventsToMix(10);
73 anpip->SetMinSizePartCollection(2);
74
75 AliFemtoBasicEventCut* mecpip = new AliFemtoBasicEventCut();
76 mecpip->SetEventMult(2,100000);
77 mecpip->SetVertZPos(-1000,1000);
78
79 AliFemtoESDTrackCut* dtcpip = new AliFemtoESDTrackCut();
80 dtcpip->SetPidProbPion(0.2,1.001);
81 dtcpip->SetPidProbMuon(0.0,1.0);
82 dtcpip->SetPidProbKaon(0.0,1.0);
83 dtcpip->SetPidProbProton(0.0,1.0);
84 dtcpip->SetCharge(1.0);
85 dtcpip->SetPt(0.15,0.5);
86 dtcpip->SetRapidity(-0.8,0.8);
87 dtcpip->SetMass(PionMass);
88 // Track quality cuts
89 dtcpip->SetStatus(AliESDtrack::kTPCrefit|AliESDtrack::kITSrefit);
90 // dtcpip->SetStatus(AliESDtrack::kTPCrefit);
91 dtcpip->SetminTPCncls(50);
92 dtcpip->SetRemoveKinks(kTRUE);
93 dtcpip->SetLabel(kFALSE);
94 dtcpip->SetMaxITSChiNdof(2.5);
95 dtcpip->SetMaxTPCChiNdof(3.0);
96 dtcpip->SetMaxImpactXY(3.0);
97 dtcpip->SetMaxImpactZ(3.0);
98
99 // Track monitors
100 AliFemtoCutMonitorParticleYPt *cutPassYPtpip = new AliFemtoCutMonitorParticleYPt("cutPasspip", 0.13957);
101 AliFemtoCutMonitorParticleYPt *cutFailYPtpip = new AliFemtoCutMonitorParticleYPt("cutFailpip", 0.13957);
102 dtcpip->AddCutMonitor(cutPassYPtpip, cutFailYPtpip);
103
104 AliFemtoCutMonitorEventMult *cutPassEvMpip = new AliFemtoCutMonitorEventMult("cutPasspip");
105 AliFemtoCutMonitorEventMult *cutFailEvMpip = new AliFemtoCutMonitorEventMult("cutFailpip");
106 mecpip->AddCutMonitor(cutPassEvMpip, cutFailEvMpip);
107
108 AliFemtoCutMonitorEventVertex *cutPassEvVpip = new AliFemtoCutMonitorEventVertex("cutPasspip");
109 AliFemtoCutMonitorEventVertex *cutFailEvVpip = new AliFemtoCutMonitorEventVertex("cutFailpip");
110 mecpip->AddCutMonitor(cutPassEvVpip, cutFailEvVpip);
111
112 // Pair cut
113 AliFemtoShareQualityTPCEntranceSepPairCut *sqpcpip = new AliFemtoShareQualityTPCEntranceSepPairCut();
114 sqpcpip->SetShareQualityMax(0.0);
115 sqpcpip->SetShareFractionMax(0.02);
116 sqpcpip->SetRemoveSameLabel(kFALSE);
117 sqpcpip->SetTPCEntranceSepMinimum(2.0);
118
119 anpip->SetEventCut(mecpip);
120 anpip->SetFirstParticleCut(dtcpip);
121 anpip->SetSecondParticleCut(dtcpip);
122 anpip->SetPairCut(sqpcpip);
123
124 // Two-track quality monitoring
125 AliFemtoShareQualityCorrFctn *csqqinvpip= new AliFemtoShareQualityCorrFctn("sqqinvcfpip",40,0.0,0.4);
126 AliFemtoChi2CorrFctn *cchiqinvpip= new AliFemtoChi2CorrFctn("chicfpip",40,0.0,0.4);
127 AliFemtoCorrFctnTPCNcls *cqtpcnclspip = new AliFemtoCorrFctnTPCNcls("cqtpcnclspip",40,0.0,0.4);
128
129 // Intrdouce kT binning
130 AliFemtoKTPairCut *ktpairkT1pip = new AliFemtoKTPairCut(0.1,0.27);
131 AliFemtoKTPairCut *ktpairkT2pip = new AliFemtoKTPairCut(0.27,0.37);
132 AliFemtoKTPairCut *ktpairkT3pip = new AliFemtoKTPairCut(0.37,0.52);
133
134 // Purely experimental correlation function
135 AliFemtoCorrFctnDirectYlm *cylmkT1pip = new AliFemtoCorrFctnDirectYlm("cylmkT1pip",3,80,0.0,0.8,1);
136 cylmkT1pip->SetPairSelectionCut(ktpairkT1pip);
137 anpip->AddCorrFctn(cylmkT1pip);
138
139 AliFemtoCorrFctnDirectYlm *cylmkT2pip = new AliFemtoCorrFctnDirectYlm("cylmkT2pip",3,80,0.0,0.8,1);
140 cylmkT2pip->SetPairSelectionCut(ktpairkT2pip);
141 anpip->AddCorrFctn(cylmkT2pip);
142
143 AliFemtoCorrFctnDirectYlm *cylmkT3pip = new AliFemtoCorrFctnDirectYlm("cylmkT3pip",3,80,0.0,0.8,1);
144 cylmkT3pip->SetPairSelectionCut(ktpairkT3pip);
145 anpip->AddCorrFctn(cylmkT3pip);
146
147 AliFemtoQinvCorrFctn *cqinvkt1pip = new AliFemtoQinvCorrFctn("qinvcfkt1pip", 100,0.0,1.0);
148 cqinvkt1pip->SetPairSelectionCut(ktpairkT1pip);
149 anpip->AddCorrFctn(cqinvkt1pip);
150
151 AliFemtoQinvCorrFctn *cqinvkt2pip = new AliFemtoQinvCorrFctn("qinvcfkt2pip", 100,0.0,1.0);
152 cqinvkt2pip->SetPairSelectionCut(ktpairkT2pip);
153 anpip->AddCorrFctn(cqinvkt2pip);
154
155 AliFemtoQinvCorrFctn *cqinvkt3pip = new AliFemtoQinvCorrFctn("qinvcfkt3pip", 100,0.0,1.0);
156 cqinvkt3pip->SetPairSelectionCut(ktpairkT3pip);
157 anpip->AddCorrFctn(cqinvkt3pip);
158
159 // Setting up the model calculation
160 // First create the freeze-out generator
161 AliFemtoModelGausLCMSFreezeOutGenerator *tFreezepip = new AliFemtoModelGausLCMSFreezeOutGenerator();
162 tFreezepip->SetSizeOut(1.8*TMath::Sqrt(2.0));
163 tFreezepip->SetSizeSide(1.3*TMath::Sqrt(2.0));
164 tFreezepip->SetSizeLong(1.6*TMath::Sqrt(2.0));
165
166 // And the weight generator
167 AliFemtoModelWeightGeneratorBasic *tWeightpip = new AliFemtoModelWeightGeneratorBasic();
168 tWeightpip->SetPairType(AliFemtoModelWeightGenerator::PionPlusPionPlus());
169
170 // Create a manager that will connect it
171 AliFemtoModelManager *tModelManagerpip = new AliFemtoModelManager();
172 tModelManagerpip->AcceptFreezeOutGenerator(tFreezepip);
173 tModelManagerpip->AcceptWeightGenerator(tWeightpip);
174 tModelManagerpip->CreateCopyHiddenInfo(kFALSE);
175
176 // Model correlation functions
177 AliFemtoModelCorrFctn *c1dpipip;
178 AliFemtoModelBPLCMSCorrFctn *c3dsmallkt1pip;
179 AliFemtoModelBPLCMSCorrFctn *c3dsmallkt2pip;
180 AliFemtoModelBPLCMSCorrFctn *c3dsmallkt3pip;
181
182 c1dpipip = new AliFemtoModelCorrFctn("c1dpipip",100,0.0,1.0);
183 c1dpipip->ConnectToManager(tModelManagerpip);
184
185 c3dsmallkt1pip = new AliFemtoModelBPLCMSCorrFctn("c3dsmallkt1pip",40, -0.4, 0.4);
186 c3dsmallkt1pip->SetSpecificPairCut(ktpairkT1pip);
187 c3dsmallkt1pip->ConnectToManager(tModelManagerpip);
188
189 c3dsmallkt2pip = new AliFemtoModelBPLCMSCorrFctn("c3dsmallkt2pip",40, -0.4, 0.4);
190 c3dsmallkt2pip->SetSpecificPairCut(ktpairkT2pip);
191 c3dsmallkt2pip->ConnectToManager(tModelManagerpip);
192
193 c3dsmallkt3pip = new AliFemtoModelBPLCMSCorrFctn("c3dsmallkt3pip",40, -0.4, 0.4);
194 c3dsmallkt3pip->SetSpecificPairCut(ktpairkT3pip);
195 c3dsmallkt3pip->ConnectToManager(tModelManagerpip);
196
197 AliFemtoModelCorrFctnDirectYlm *cmylmkt1pip = new AliFemtoModelCorrFctnDirectYlm("mcylmkt1pip",3,80,0.0,0.8,1);
198 cmylmkt1pip->SetPairSelectionCut(ktpairkT1pip);
199 cmylmkt1pip->ConnectToManager(tModelManagerpip);
200
201 AliFemtoModelCorrFctnDirectYlm *cmylmkt2pip = new AliFemtoModelCorrFctnDirectYlm("mcylmkt2pip",3,80,0.0,0.8,1);
202 cmylmkt2pip->SetPairSelectionCut(ktpairkT2pip);
203 cmylmkt2pip->ConnectToManager(tModelManagerpip);
204
205 AliFemtoModelCorrFctnDirectYlm *cmylmkt3pip = new AliFemtoModelCorrFctnDirectYlm("mcylmkt3pip",3,80,0.0,0.8,1);
206 cmylmkt3pip->SetPairSelectionCut(ktpairkT3pip);
207 cmylmkt3pip->ConnectToManager(tModelManagerpip);
208
209 // Add correlation functions to the analysis
210 anpip->AddCorrFctn(csqqinvpip);
211 anpip->AddCorrFctn(cchiqinvpip);
212 anpip->AddCorrFctn(cqtpcnclspip);
213 anpip->AddCorrFctn(c3dsmallkt1pip);
214 anpip->AddCorrFctn(c3dsmallkt2pip);
215 anpip->AddCorrFctn(c3dsmallkt3pip);
216 anpip->AddCorrFctn(c1dpipip);
217 anpip->AddCorrFctn(cmylmkt1pip);
218 anpip->AddCorrFctn(cmylmkt2pip);
219 anpip->AddCorrFctn(cmylmkt3pip);
220
221 Manager->AddAnalysis(anpip);
222
223 // *** End pion-pion (positive) analysis
224 }
225
226 if (runNegativePions) {
227 // *** Begin pion-pion (negative) analysis ***
228 AliFemtoVertexMultAnalysis *anpim = new AliFemtoVertexMultAnalysis(3, -15.6, 15.6, 1, 2, 200000);
229 anpim->SetNumEventsToMix(10);
230 anpim->SetMinSizePartCollection(2);
231
232 AliFemtoBasicEventCut* mecpim = new AliFemtoBasicEventCut();
233 mecpim->SetEventMult(2,100000);
234 mecpim->SetVertZPos(-1000,1000);
235
236 AliFemtoESDTrackCut* dtcpim = new AliFemtoESDTrackCut();
237 dtcpim->SetPidProbPion(0.2,1.001);
238 dtcpim->SetPidProbMuon(0.0,1.0);
239 dtcpim->SetPidProbKaon(0.0,1.0);
240 dtcpim->SetPidProbProton(0.0,1.0);
241 dtcpim->SetCharge(1.0);
242 dtcpim->SetPt(0.15,0.5);
243 dtcpim->SetRapidity(-0.8,0.8);
244 dtcpim->SetMass(PionMass);
245 // Track quality cuts
246 dtcpim->SetStatus(AliESDtrack::kTPCrefit|AliESDtrack::kITSrefit);
247 // dtcpim->SetStatus(AliESDtrack::kTPCrefit);
248 dtcpim->SetminTPCncls(50);
249 dtcpim->SetRemoveKinks(kTRUE);
250 dtcpim->SetLabel(kFALSE);
251 dtcpim->SetMaxITSChiNdof(2.5);
252 dtcpim->SetMaxTPCChiNdof(3.0);
253 dtcpim->SetMaxImpactXY(3.0);
254 dtcpim->SetMaxImpactZ(3.0);
255
256 // Track monitors
257 AliFemtoCutMonitorParticleYPt *cutPassYPtpim = new AliFemtoCutMonitorParticleYPt("cutPasspim", 0.13957);
258 AliFemtoCutMonitorParticleYPt *cutFailYPtpim = new AliFemtoCutMonitorParticleYPt("cutFailpim", 0.13957);
259 dtcpim->AddCutMonitor(cutPassYPtpim, cutFailYPtpim);
260
261 AliFemtoCutMonitorEventMult *cutPassEvMpim = new AliFemtoCutMonitorEventMult("cutPasspim");
262 AliFemtoCutMonitorEventMult *cutFailEvMpim = new AliFemtoCutMonitorEventMult("cutFailpim");
263 mecpim->AddCutMonitor(cutPassEvMpim, cutFailEvMpim);
264
265 AliFemtoCutMonitorEventVertex *cutPassEvVpim = new AliFemtoCutMonitorEventVertex("cutPasspim");
266 AliFemtoCutMonitorEventVertex *cutFailEvVpim = new AliFemtoCutMonitorEventVertex("cutFailpim");
267 mecpim->AddCutMonitor(cutPassEvVpim, cutFailEvVpim);
268
269 // Pair cut
270 AliFemtoShareQualityTPCEntranceSepPairCut *sqpcpim = new AliFemtoShareQualityTPCEntranceSepPairCut();
271 sqpcpim->SetShareQualityMax(0.0);
272 sqpcpim->SetShareFractionMax(0.02);
273 sqpcpim->SetRemoveSameLabel(kFALSE);
274 sqpcpim->SetTPCEntranceSepMinimum(2.0);
275
276 anpim->SetEventCut(mecpim);
277 anpim->SetFirstParticleCut(dtcpim);
278 anpim->SetSecondParticleCut(dtcpim);
279 anpim->SetPairCut(sqpcpim);
280
281 // Two-track quality monitoring
282 AliFemtoShareQualityCorrFctn *csqqinvpim= new AliFemtoShareQualityCorrFctn("sqqinvcfpim",40,0.0,0.4);
283 AliFemtoChi2CorrFctn *cchiqinvpim= new AliFemtoChi2CorrFctn("chicfpim",40,0.0,0.4);
284 AliFemtoCorrFctnTPCNcls *cqtpcnclspim = new AliFemtoCorrFctnTPCNcls("cqtpcnclspim",40,0.0,0.4);
285
286 // Intrdouce kT binning
287 AliFemtoKTPairCut *ktpairkT1pim = new AliFemtoKTPairCut(0.1,0.27);
288 AliFemtoKTPairCut *ktpairkT2pim = new AliFemtoKTPairCut(0.27,0.37);
289 AliFemtoKTPairCut *ktpairkT3pim = new AliFemtoKTPairCut(0.37,0.52);
290
291 // Purely experimental correlation function
292 AliFemtoCorrFctnDirectYlm *cylmkT1pim = new AliFemtoCorrFctnDirectYlm("cylmkT1pim",3,80,0.0,0.8,1);
293 cylmkT1pim->SetPairSelectionCut(ktpairkT1pim);
294 anpim->AddCorrFctn(cylmkT1pim);
295
296 AliFemtoCorrFctnDirectYlm *cylmkT2pim = new AliFemtoCorrFctnDirectYlm("cylmkT2pim",3,80,0.0,0.8,1);
297 cylmkT2pim->SetPairSelectionCut(ktpairkT2pim);
298 anpim->AddCorrFctn(cylmkT2pim);
299
300 AliFemtoCorrFctnDirectYlm *cylmkT3pim = new AliFemtoCorrFctnDirectYlm("cylmkT3pim",3,80,0.0,0.8,1);
301 cylmkT3pim->SetPairSelectionCut(ktpairkT3pim);
302 anpim->AddCorrFctn(cylmkT3pim);
303
304 AliFemtoQinvCorrFctn *cqinvkt1pim = new AliFemtoQinvCorrFctn("qinvcfkt1pim", 100,0.0,1.0);
305 cqinvkt1pim->SetPairSelectionCut(ktpairkT1pim);
306 anpim->AddCorrFctn(cqinvkt1pim);
307
308 AliFemtoQinvCorrFctn *cqinvkt2pim = new AliFemtoQinvCorrFctn("qinvcfkt2pim", 100,0.0,1.0);
309 cqinvkt2pim->SetPairSelectionCut(ktpairkT2pim);
310 anpim->AddCorrFctn(cqinvkt2pim);
311
312 AliFemtoQinvCorrFctn *cqinvkt3pim = new AliFemtoQinvCorrFctn("qinvcfkt3pim", 100,0.0,1.0);
313 cqinvkt3pim->SetPairSelectionCut(ktpairkT3pim);
314 anpim->AddCorrFctn(cqinvkt3pim);
315
316 // Setting up the model calculation
317 // First create the freeze-out generator
318 AliFemtoModelGausLCMSFreezeOutGenerator *tFreezepim = new AliFemtoModelGausLCMSFreezeOutGenerator();
319 tFreezepim->SetSizeOut(1.8*TMath::Sqrt(2.0));
320 tFreezepim->SetSizeSide(1.3*TMath::Sqrt(2.0));
321 tFreezepim->SetSizeLong(1.6*TMath::Sqrt(2.0));
322
323 // And the weight generator
324 AliFemtoModelWeightGeneratorBasic *tWeightpim = new AliFemtoModelWeightGeneratorBasic();
325 tWeightpim->SetPairType(AliFemtoModelWeightGenerator::PionPlusPionPlus());
326
327 // Create a manager that will connect it
328 AliFemtoModelManager *tModelManagerpim = new AliFemtoModelManager();
329 tModelManagerpim->AcceptFreezeOutGenerator(tFreezepim);
330 tModelManagerpim->AcceptWeightGenerator(tWeightpim);
331 tModelManagerpim->CreateCopyHiddenInfo(kFALSE);
332
333 // Model correlation functions
334 AliFemtoModelCorrFctn *c1dpipim;
335 AliFemtoModelBPLCMSCorrFctn *c3dsmallkt1pim;
336 AliFemtoModelBPLCMSCorrFctn *c3dsmallkt2pim;
337 AliFemtoModelBPLCMSCorrFctn *c3dsmallkt3pim;
338
339 c1dpipim = new AliFemtoModelCorrFctn("c1dpipim",100,0.0,1.0);
340 c1dpipim->ConnectToManager(tModelManagerpim);
341
342 c3dsmallkt1pim = new AliFemtoModelBPLCMSCorrFctn("c3dsmallkt1pim",40, -0.4, 0.4);
343 c3dsmallkt1pim->SetSpecificPairCut(ktpairkT1pim);
344 c3dsmallkt1pim->ConnectToManager(tModelManagerpim);
345
346 c3dsmallkt2pim = new AliFemtoModelBPLCMSCorrFctn("c3dsmallkt2pim",40, -0.4, 0.4);
347 c3dsmallkt2pim->SetSpecificPairCut(ktpairkT2pim);
348 c3dsmallkt2pim->ConnectToManager(tModelManagerpim);
349
350 c3dsmallkt3pim = new AliFemtoModelBPLCMSCorrFctn("c3dsmallkt3pim",40, -0.4, 0.4);
351 c3dsmallkt3pim->SetSpecificPairCut(ktpairkT3pim);
352 c3dsmallkt3pim->ConnectToManager(tModelManagerpim);
353
354 AliFemtoModelCorrFctnDirectYlm *cmylmkt1pim = new AliFemtoModelCorrFctnDirectYlm("mcylmkt1pim",3,80,0.0,0.8,1);
355 cmylmkt1pim->SetPairSelectionCut(ktpairkT1pim);
356 cmylmkt1pim->ConnectToManager(tModelManagerpim);
357
358 AliFemtoModelCorrFctnDirectYlm *cmylmkt2pim = new AliFemtoModelCorrFctnDirectYlm("mcylmkt2pim",3,80,0.0,0.8,1);
359 cmylmkt2pim->SetPairSelectionCut(ktpairkT2pim);
360 cmylmkt2pim->ConnectToManager(tModelManagerpim);
361
362 AliFemtoModelCorrFctnDirectYlm *cmylmkt3pim = new AliFemtoModelCorrFctnDirectYlm("mcylmkt3pim",3,80,0.0,0.8,1);
363 cmylmkt3pim->SetPairSelectionCut(ktpairkT3pim);
364 cmylmkt3pim->ConnectToManager(tModelManagerpim);
365
366 // Add correlation functions to the analysis
367 anpim->AddCorrFctn(csqqinvpim);
368 anpim->AddCorrFctn(cchiqinvpim);
369 anpim->AddCorrFctn(cqtpcnclspim);
370 anpim->AddCorrFctn(c3dsmallkt1pim);
371 anpim->AddCorrFctn(c3dsmallkt2pim);
372 anpim->AddCorrFctn(c3dsmallkt3pim);
373 anpim->AddCorrFctn(c1dpipim);
374 anpim->AddCorrFctn(cmylmkt1pim);
375 anpim->AddCorrFctn(cmylmkt2pim);
376 anpim->AddCorrFctn(cmylmkt3pim);
377
378 Manager->AddAnalysis(anpim);
379
380 // *** End pion-pion (negative) analysis
381 }
382
383 if (runPositiveKaons) {
384 // *** Begin Kaon-Kaon (positive) analysis
3b33b4fa 385 AliFemtoVertexMultAnalysis *ankp = new AliFemtoVertexMultAnalysis(18, -15.6, 15.6, 1, 2, 20000);
386 ankp->SetNumEventsToMix(5);
ce84bcfa 387 ankp->SetMinSizePartCollection(2);
388
389 AliFemtoBasicEventCut* meckp = new AliFemtoBasicEventCut();
390 meckp->SetEventMult(1,100000);
391 meckp->SetVertZPos(-1000,1000);
392
393 AliFemtoESDTrackCut* dtckp = new AliFemtoESDTrackCut();
394 dtckp->SetPidProbKaon(0.7,1.001);
395 dtckp->SetPidProbMuon(0.0,0.5);
396 dtckp->SetPidProbPion(0.0,0.5);
397 dtckp->SetPidProbProton(0.0,0.5);
398 dtckp->SetCharge(1.0);
399 dtckp->SetMostProbableKaon();
3b33b4fa 400 dtckp->SetMomRangeTOFpidIs(0.6,10000.);
ce84bcfa 401 dtckp->SetPt(0.15,2.0);
402 dtckp->SetMass(KaonMass);
ce84bcfa 403 // Track quality cuts
404 dtckp->SetStatus(AliESDtrack::kTPCrefit|AliESDtrack::kITSrefit);
ce84bcfa 405 dtckp->SetminTPCncls(50);
406 dtckp->SetRemoveKinks(kTRUE);
407 dtckp->SetLabel(kFALSE);
408 dtckp->SetMaxITSChiNdof(2.5);
409 dtckp->SetMaxTPCChiNdof(3.0);
ce84bcfa 410 dtckp->SetMaxImpactXY(3.0);
411 dtckp->SetMaxImpactZ(3.0);
412
413 AliFemtoCutMonitorParticleYPt *cutPassYPtkp = new AliFemtoCutMonitorParticleYPt("cutPasskp", 0.493677);
414 AliFemtoCutMonitorParticleYPt *cutFailYPtkp = new AliFemtoCutMonitorParticleYPt("cutFailkp", 0.493677);
415 dtckp->AddCutMonitor(cutPassYPtkp, cutFailYPtkp);
416
417 AliFemtoCutMonitorParticlePtPDG *cutPassPidkp = new AliFemtoCutMonitorParticlePtPDG("cutPasskp", 0.493677);
418 AliFemtoCutMonitorParticlePtPDG *cutFailPidkp = new AliFemtoCutMonitorParticlePtPDG("cutFailkp", 0.493677);
419 dtckp->AddCutMonitor(cutPassPidkp, cutFailPidkp);
420
421 AliFemtoCutMonitorParticleMomRes *cutPassMRkp = new AliFemtoCutMonitorParticleMomRes("cutPasskp");
422 AliFemtoCutMonitorParticleMomRes *cutFailMRkp = new AliFemtoCutMonitorParticleMomRes("cutFailkp");
423 dtckp->AddCutMonitor(cutPassMRkp, cutFailMRkp);
424
425 AliFemtoCutMonitorParticleVertPos *cutPassVPkp = new AliFemtoCutMonitorParticleVertPos("cutPasskp");
426 AliFemtoCutMonitorParticleVertPos *cutFailVPkp = new AliFemtoCutMonitorParticleVertPos("cutFailkp");
427 dtckp->AddCutMonitor(cutPassVPkp, cutFailVPkp);
428
429 AliFemtoCutMonitorEventMult *cutPassEvMkp = new AliFemtoCutMonitorEventMult("cutPasskp");
430 AliFemtoCutMonitorEventMult *cutFailEvMkp = new AliFemtoCutMonitorEventMult("cutFailkp");
431 meckp->AddCutMonitor(cutPassEvMkp, cutFailEvMkp);
432
433 AliFemtoCutMonitorEventVertex *cutPassEvVkp = new AliFemtoCutMonitorEventVertex("cutPasskp");
434 AliFemtoCutMonitorEventVertex *cutFailEvVkp = new AliFemtoCutMonitorEventVertex("cutFailkp");
435 meckp->AddCutMonitor(cutPassEvVkp, cutFailEvVkp);
436
437 AliFemtoShareQualityTPCEntranceSepPairCut *sqpckp = new AliFemtoShareQualityTPCEntranceSepPairCut();
438 sqpckp->SetShareQualityMax(0.0);
439 sqpckp->SetShareFractionMax(0.02);
440 sqpckp->SetRemoveSameLabel(kFALSE);
441 sqpckp->SetTPCEntranceSepMinimum(3.0);
442
443 ankp->SetEventCut(meckp);
444 ankp->SetFirstParticleCut(dtckp);
445 ankp->SetSecondParticleCut(dtckp);
446 ankp->SetPairCut(sqpckp);
447
448 AliFemtoQinvCorrFctn *cqinvkp= new AliFemtoQinvCorrFctn("qinvcf",100,0.0,1.0);
449
450 AliFemtoModelBPLCMSCorrFctn *c3dsmallkp;
451 AliFemtoModelCorrFctn *c1dpikp;
452
453 // Setting up the model calculation
454 // First create the freeze-out generator
455 AliFemtoModelGausRinvFreezeOutGenerator *tFreezekp = new AliFemtoModelGausRinvFreezeOutGenerator();
456 tFreezekp->SetSizeInv(1.8*TMath::Sqrt(2.0));
457 tFreezekp->SetSelectPrimaryFromHidden(false);
458
459 // And the weight generator
460 // AliFemtoModelWeightGeneratorBasic *tWeightkp = new AliFemtoModelWeightGeneratorBasic();
461 // tWeightkp->SetPairType(AliFemtoModelWeightGenerator::KaonPlusKaonPlus());
462 AliFemtoModelWeightGeneratorLednicky *tWeightkp = new AliFemtoModelWeightGeneratorLednicky();
463 tWeightkp->SetPairType(AliFemtoModelWeightGenerator::KaonPlusKaonPlus());
464 tWeightkp->SetCoulOn();
465 tWeightkp->SetQuantumOn();
466 tWeightkp->SetStrongOff();
467 tWeightkp->Set3BodyOff();
468
469 // Create a manager that will connect it
470 AliFemtoModelManager *tModelManagerkp = new AliFemtoModelManager();
471 tModelManagerkp->AcceptFreezeOutGenerator(tFreezekp);
472 tModelManagerkp->AcceptWeightGenerator(tWeightkp);
473 tModelManagerkp->CreateCopyHiddenInfo(kFALSE);
474
475 c3dsmallkp = new AliFemtoModelBPLCMSCorrFctn("c3dsmallkp",30, 0.0, 0.6);
476 c3dsmallkp->ConnectToManager(tModelManagerkp);
477
478 c1dpikp = new AliFemtoModelCorrFctn("c1dpikp",100,0.0,1.0);
479 c1dpikp->ConnectToManager(tModelManagerkp);
480
481 //###
482 ankp->AddCorrFctn(cqinvkp);
483
484 ankp->AddCorrFctn(c3dsmallkp);
485 ankp->AddCorrFctn(c1dpikp);
486
487 Manager->AddAnalysis(ankp);
488
489 // *** End Kaon-Kaon (positive) analysis
490 }
491
492 if (runNegativeKaons) {
493 // *** Begin Kaon-Kaon (negative) analysis
3b33b4fa 494 AliFemtoVertexMultAnalysis *ankm = new AliFemtoVertexMultAnalysis(18, -15.6, 15.6, 1, 2, 20000);
495 ankm->SetNumEventsToMix(5);
ce84bcfa 496 ankm->SetMinSizePartCollection(2);
497
498 AliFemtoBasicEventCut* meckm = new AliFemtoBasicEventCut();
499 meckm->SetEventMult(1,100000);
500 meckm->SetVertZPos(-1000,1000);
501
502 AliFemtoESDTrackCut* dtckm = new AliFemtoESDTrackCut();
503 dtckm->SetPidProbKaon(0.7,1.001);
504 dtckm->SetPidProbMuon(0.0,0.5);
505 dtckm->SetPidProbPion(0.0,0.5);
506 dtckm->SetPidProbProton(0.0,0.5);
3b33b4fa 507 dtckp->SetMomRangeTOFpidIs(0.6,10000.);
508 dtckm->SetCharge(-1.0);
ce84bcfa 509 dtckm->SetMostProbableKaon();
510 dtckm->SetPt(0.15,2.0);
511 dtckm->SetMass(KaonMass);
ce84bcfa 512 // Track quality cuts
513 dtckm->SetStatus(AliESDtrack::kTPCrefit|AliESDtrack::kITSrefit);
ce84bcfa 514 dtckm->SetminTPCncls(50);
515 dtckm->SetRemoveKinks(kTRUE);
516 dtckm->SetLabel(kFALSE);
517 dtckm->SetMaxITSChiNdof(2.5);
518 dtckm->SetMaxTPCChiNdof(3.0);
ce84bcfa 519 dtckm->SetMaxImpactXY(3.0);
520 dtckm->SetMaxImpactZ(3.0);
521
522 AliFemtoCutMonitorParticleYPt *cutPassYPtkm = new AliFemtoCutMonitorParticleYPt("cutPasskm", 0.493677);
523 AliFemtoCutMonitorParticleYPt *cutFailYPtkm = new AliFemtoCutMonitorParticleYPt("cutFailkm", 0.493677);
524 dtckm->AddCutMonitor(cutPassYPtkm, cutFailYPtkm);
525
526 AliFemtoCutMonitorParticlePtPDG *cutPassPidkm = new AliFemtoCutMonitorParticlePtPDG("cutPasskm", 0.493677);
527 AliFemtoCutMonitorParticlePtPDG *cutFailPidkm = new AliFemtoCutMonitorParticlePtPDG("cutFailkm", 0.493677);
528 dtckm->AddCutMonitor(cutPassPidkm, cutFailPidkm);
529
530 AliFemtoCutMonitorParticleMomRes *cutPassMRkm = new AliFemtoCutMonitorParticleMomRes("cutPasskm");
531 AliFemtoCutMonitorParticleMomRes *cutFailMRkm = new AliFemtoCutMonitorParticleMomRes("cutFailkm");
532 dtckm->AddCutMonitor(cutPassMRkm, cutFailMRkm);
533
534 AliFemtoCutMonitorParticleVertPos *cutPassVPkm = new AliFemtoCutMonitorParticleVertPos("cutPasskm");
535 AliFemtoCutMonitorParticleVertPos *cutFailVPkm = new AliFemtoCutMonitorParticleVertPos("cutFailkm");
536 dtckm->AddCutMonitor(cutPassVPkm, cutFailVPkm);
537
538 AliFemtoCutMonitorEventMult *cutPassEvMkm = new AliFemtoCutMonitorEventMult("cutPasskm");
539 AliFemtoCutMonitorEventMult *cutFailEvMkm = new AliFemtoCutMonitorEventMult("cutFailkm");
540 meckm->AddCutMonitor(cutPassEvMkm, cutFailEvMkm);
541
542 AliFemtoCutMonitorEventVertex *cutPassEvVkm = new AliFemtoCutMonitorEventVertex("cutPasskm");
543 AliFemtoCutMonitorEventVertex *cutFailEvVkm = new AliFemtoCutMonitorEventVertex("cutFailkm");
544 meckm->AddCutMonitor(cutPassEvVkm, cutFailEvVkm);
545
546 AliFemtoShareQualityTPCEntranceSepPairCut *sqpckm = new AliFemtoShareQualityTPCEntranceSepPairCut();
547 sqpckm->SetShareQualityMax(0.0);
548 sqpckm->SetShareFractionMax(0.02);
549 sqpckm->SetRemoveSameLabel(kFALSE);
550 sqpckm->SetTPCEntranceSepMinimum(3.0);
551
552 ankm->SetEventCut(meckm);
553 ankm->SetFirstParticleCut(dtckm);
554 ankm->SetSecondParticleCut(dtckm);
555 ankm->SetPairCut(sqpckm);
556
557 AliFemtoQinvCorrFctn *cqinvkm= new AliFemtoQinvCorrFctn("qinvcf",100,0.0,1.0);
558
559 AliFemtoModelBPLCMSCorrFctn *c3dsmallkm;
560 AliFemtoModelCorrFctn *c1dpikm;
561
562 // Setting up the model calculation
563 // First create the freeze-out generator
564 AliFemtoModelGausRinvFreezeOutGenerator *tFreezekm = new AliFemtoModelGausRinvFreezeOutGenerator();
565 tFreezekm->SetSizeInv(1.8*TMath::Sqrt(2.0));
566 tFreezekm->SetSelectPrimaryFromHidden(false);
567
568 // And the weight generator
3b33b4fa 569 // AliFemtoModelWeightGeneratorBasic *tWeightkp = new AliFemtoModelWeightGeneratorBasic();
570 // tWeightkp->SetPairType(AliFemtoModelWeightGenerator::KaonPlusKaonPlus());
ce84bcfa 571 AliFemtoModelWeightGeneratorLednicky *tWeightkm = new AliFemtoModelWeightGeneratorLednicky();
5c5f502e 572 tWeightkm->SetPairType(AliFemtoModelWeightGenerator::KaonPlusKaonPlus());
ce84bcfa 573 tWeightkm->SetCoulOn();
574 tWeightkm->SetQuantumOn();
575 tWeightkm->SetStrongOff();
576 tWeightkm->Set3BodyOff();
577
578 // Create a manager that will connect it
579 AliFemtoModelManager *tModelManagerkm = new AliFemtoModelManager();
3b33b4fa 580 tModelManagerkm->AcceptFreezeOutGenerator(tFreezekp);
581 tModelManagerkm->AcceptWeightGenerator(tWeightkp);
ce84bcfa 582 tModelManagerkm->CreateCopyHiddenInfo(kFALSE);
583
584 c3dsmallkm = new AliFemtoModelBPLCMSCorrFctn("c3dsmallkm",30, 0.0, 0.6);
585 c3dsmallkm->ConnectToManager(tModelManagerkm);
586
587 c1dpikm = new AliFemtoModelCorrFctn("c1dpikm",100,0.0,1.0);
588 c1dpikm->ConnectToManager(tModelManagerkm);
589
590 //###
591 ankm->AddCorrFctn(cqinvkm);
592
593 ankm->AddCorrFctn(c3dsmallkm);
594 ankm->AddCorrFctn(c1dpikm);
595
596 Manager->AddAnalysis(ankm);
597
3b33b4fa 598 // *** End Kaon-Kaon (negative) analysis
599 }
600
601 if (runPositiveNegativeKaons) {
602 // *** Begin Kaon+Kaon- analysis
603 AliFemtoVertexMultAnalysis *ankpkm = new AliFemtoVertexMultAnalysis(18, -15.6, 15.6, 1, 2, 20000);
604 ankpkm->SetNumEventsToMix(5);
605 ankpkm->SetMinSizePartCollection(2);
606
607 AliFemtoBasicEventCut* meckpkm = new AliFemtoBasicEventCut();
608 meckpkm->SetEventMult(1,100000);
609 meckpkm->SetVertZPos(-1000,1000);
610
611 AliFemtoESDTrackCut* dtckp = new AliFemtoESDTrackCut();
612 dtckp->SetPidProbKaon(0.7,1.001);
613 dtckp->SetPidProbMuon(0.0,0.5);
614 dtckp->SetPidProbPion(0.0,0.5);
615 dtckp->SetPidProbProton(0.0,0.5);
616 dtckp->SetMomRangeTOFpidIs(0.6,10000.);
617 dtckp->SetCharge(1.0);
618 dtckp->SetMostProbableKaon();
619 dtckp->SetPt(0.15,2.0);
620 dtckp->SetMass(KaonMass);
621 // Track quality cuts
622 dtckp->SetStatus(AliESDtrack::kTPCrefit|AliESDtrack::kITSrefit);
623 dtckp->SetminTPCncls(50);
624 dtckp->SetRemoveKinks(kTRUE);
625 dtckp->SetLabel(kFALSE);
626 dtckp->SetMaxITSChiNdof(2.5);
627 dtckp->SetMaxTPCChiNdof(3.0);
628 dtckp->SetMaxImpactXY(3.0);
629 dtckp->SetMaxImpactZ(3.0);
630
631 AliFemtoESDTrackCut* dtckm = new AliFemtoESDTrackCut();
632 dtckm->SetPidProbKaon(0.7,1.001);
633 dtckm->SetPidProbMuon(0.0,0.5);
634 dtckm->SetPidProbPion(0.0,0.5);
635 dtckm->SetPidProbProton(0.0,0.5);
636 dtckm->SetMomRangeTOFpidIs(0.6,10000.);
637 dtckm->SetCharge(-1.0);
638 dtckm->SetMostProbableKaon();
639 dtckm->SetPt(0.15,2.0);
640 dtckm->SetMass(KaonMass);
641 // Track quality cuts
642 dtckm->SetStatus(AliESDtrack::kTPCrefit|AliESDtrack::kITSrefit);
643 dtckm->SetminTPCncls(50);
644 dtckm->SetRemoveKinks(kTRUE);
645 dtckm->SetLabel(kFALSE);
646 dtckm->SetMaxITSChiNdof(2.5);
647 dtckm->SetMaxTPCChiNdof(3.0);
648 dtckm->SetMaxImpactXY(3.0);
649 dtckm->SetMaxImpactZ(3.0);
650
651
652 AliFemtoCutMonitorParticleYPt *cutPassYPtkp = new AliFemtoCutMonitorParticleYPt("cutPasskp", 0.493677);
653 AliFemtoCutMonitorParticleYPt *cutFailYPtkp = new AliFemtoCutMonitorParticleYPt("cutFailkp", 0.493677);
654 dtckp->AddCutMonitor(cutPassYPtkp, cutFailYPtkp);
655
656 AliFemtoCutMonitorParticleYPt *cutPassYPtkm = new AliFemtoCutMonitorParticleYPt("cutPasskm", 0.493677);
657 AliFemtoCutMonitorParticleYPt *cutFailYPtkm = new AliFemtoCutMonitorParticleYPt("cutFailkm", 0.493677);
658 dtckm->AddCutMonitor(cutPassYPtkm, cutFailYPtkm);
659
660 AliFemtoCutMonitorParticlePtPDG *cutPassPidkp = new AliFemtoCutMonitorParticlePtPDG("cutPasskp", 0.493677);
661 AliFemtoCutMonitorParticlePtPDG *cutFailPidkp = new AliFemtoCutMonitorParticlePtPDG("cutFailkp", 0.493677);
662 dtckp->AddCutMonitor(cutPassPidkp, cutFailPidkp);
663
664 AliFemtoCutMonitorParticlePtPDG *cutPassPidkm = new AliFemtoCutMonitorParticlePtPDG("cutPasskm", 0.493677);
665 AliFemtoCutMonitorParticlePtPDG *cutFailPidkm = new AliFemtoCutMonitorParticlePtPDG("cutFailkm", 0.493677);
666 dtckm->AddCutMonitor(cutPassPidkm, cutFailPidkm);
667
668 AliFemtoCutMonitorParticleMomRes *cutPassMRkp = new AliFemtoCutMonitorParticleMomRes("cutPasskp");
669 AliFemtoCutMonitorParticleMomRes *cutFailMRkp = new AliFemtoCutMonitorParticleMomRes("cutFailkp");
670 dtckp->AddCutMonitor(cutPassMRkp, cutFailMRkp);
671
672 AliFemtoCutMonitorParticleMomRes *cutPassMRkm = new AliFemtoCutMonitorParticleMomRes("cutPasskm");
673 AliFemtoCutMonitorParticleMomRes *cutFailMRkm = new AliFemtoCutMonitorParticleMomRes("cutFailkm");
674 dtckm->AddCutMonitor(cutPassMRkm, cutFailMRkm);
675
676 AliFemtoCutMonitorParticleVertPos *cutPassVPkp = new AliFemtoCutMonitorParticleVertPos("cutPasskp");
677 AliFemtoCutMonitorParticleVertPos *cutFailVPkp = new AliFemtoCutMonitorParticleVertPos("cutFailkp");
678 dtckp->AddCutMonitor(cutPassVPkp, cutFailVPkp);
679
680 AliFemtoCutMonitorParticleVertPos *cutPassVPkm = new AliFemtoCutMonitorParticleVertPos("cutPasskm");
681 AliFemtoCutMonitorParticleVertPos *cutFailVPkm = new AliFemtoCutMonitorParticleVertPos("cutFailkm");
682 dtckm->AddCutMonitor(cutPassVPkm, cutFailVPkm);
683
684 AliFemtoCutMonitorEventMult *cutPassEvMkpkm = new AliFemtoCutMonitorEventMult("cutPasskpkm");
685 AliFemtoCutMonitorEventMult *cutFailEvMkpkm = new AliFemtoCutMonitorEventMult("cutFailkpkm");
686 meckpkm->AddCutMonitor(cutPassEvMkpkm, cutFailEvMkpkm);
687
688 AliFemtoCutMonitorEventVertex *cutPassEvVkpkm = new AliFemtoCutMonitorEventVertex("cutPasskpkm");
689 AliFemtoCutMonitorEventVertex *cutFailEvVkpkm = new AliFemtoCutMonitorEventVertex("cutFailkpkm");
690 meckpkm->AddCutMonitor(cutPassEvVkpkm, cutFailEvVkpkm);
691
692 AliFemtoShareQualityTPCEntranceSepPairCut *sqpckpkm = new AliFemtoShareQualityTPCEntranceSepPairCut();
693 sqpckpkm->SetShareQualityMax(0.0);
694 sqpckpkm->SetShareFractionMax(0.02);
695 sqpckpkm->SetRemoveSameLabel(kFALSE);
696 sqpckpkm->SetTPCEntranceSepMinimum(3.0);
697
698 ankpkm->SetEventCut(meckpkm);
699 ankpkm->SetFirstParticleCut(dtckp);
700 ankpkm->SetSecondParticleCut(dtckm);
701 ankpkm->SetPairCut(sqpckpkm);
702
703 AliFemtoQinvCorrFctn *cqinvkpkm= new AliFemtoQinvCorrFctn("qinvcf",100,0.0,1.0);
704
705 AliFemtoModelBPLCMSCorrFctn *c3dsmallkpkm;
706 AliFemtoModelCorrFctn *c1dpikpkm;
707
708 // Setting up the model calculation
709 // First create the freeze-out generator
710 AliFemtoModelGausRinvFreezeOutGenerator *tFreezekpkm = new AliFemtoModelGausRinvFreezeOutGenerator();
711 tFreezekpkm->SetSizeInv(1.8*TMath::Sqrt(2.0));
712 tFreezekpkm->SetSelectPrimaryFromHidden(false);
713
714 // And the weight generator
715 AliFemtoModelWeightGeneratorLednicky *tWeightkpkm = new AliFemtoModelWeightGeneratorLednicky();
716 tWeightkpkm->SetPairType(AliFemtoModelWeightGenerator::KaonPlusKaonMinus());
717 tWeightkpkm->SetCoulOn();
718 tWeightkpkm->SetQuantumOn();
719 tWeightkpkm->SetStrongOff();
720 tWeightkpkm->Set3BodyOff();
721
722 // Create a manager that will connect it
723 AliFemtoModelManager *tModelManagerkpkm = new AliFemtoModelManager();
724 tModelManagerkpkm->AcceptFreezeOutGenerator(tFreezekpkm);
725 tModelManagerkpkm->AcceptWeightGenerator(tWeightkpkm);
726 tModelManagerkpkm->CreateCopyHiddenInfo(kFALSE);
727
728 c3dsmallkpkm = new AliFemtoModelBPLCMSCorrFctn("c3dsmallkpkm",30, 0.0, 0.6);
729 c3dsmallkpkm->ConnectToManager(tModelManagerkpkm);
730
731 c1dpikpkm = new AliFemtoModelCorrFctn("c1dpikpkm",100,0.0,1.0);
732 c1dpikpkm->ConnectToManager(tModelManagerkpkm);
733
734 //###
735 ankpkm->AddCorrFctn(cqinvkpkm);
736
737 ankpkm->AddCorrFctn(c3dsmallkpkm);
738 ankpkm->AddCorrFctn(c1dpikpkm);
739
740 Manager->AddAnalysis(ankpkm);
741
742 // *** End Kaon+Kaon- analysis
ce84bcfa 743 }
3b33b4fa 744 // if (runPositiveKaons) {
745 // // *** Begin Kaon-Kaon (positive) analysis
746 // AliFemtoVertexMultAnalysis *ankp = new AliFemtoVertexMultAnalysis(10, -15.6, 15.6, 1, 2, 20000);
747 // ankp->SetNumEventsToMix(10);
748 // ankp->SetMinSizePartCollection(2);
749
750 // AliFemtoBasicEventCut* meckp = new AliFemtoBasicEventCut();
751 // meckp->SetEventMult(1,100000);
752 // meckp->SetVertZPos(-1000,1000);
753
754 // AliFemtoESDTrackCut* dtckp = new AliFemtoESDTrackCut();
755 // dtckp->SetPidProbKaon(0.7,1.001);
756 // dtckp->SetPidProbMuon(0.0,0.5);
757 // dtckp->SetPidProbPion(0.0,0.5);
758 // dtckp->SetPidProbProton(0.0,0.5);
759 // dtckp->SetCharge(1.0);
760 // dtckp->SetMostProbableKaon();
761 // dtckp->SetPt(0.15,2.0);
762 // dtckp->SetMass(KaonMass);
763 // dtckp->SetRapidity(-0.8,0.8);
764 // // Track quality cuts
765 // dtckp->SetStatus(AliESDtrack::kTPCrefit|AliESDtrack::kITSrefit);
766 // //dtckp->SetStatus(AliESDtrack::kTPCrefit);
767 // // dtckp->SetminTPCclsF(95);
768 // dtckp->SetminTPCncls(50);
769 // dtckp->SetRemoveKinks(kTRUE);
770 // dtckp->SetLabel(kFALSE);
771 // dtckp->SetMaxITSChiNdof(2.5);
772 // dtckp->SetMaxTPCChiNdof(3.0);
773 // // dtckp->SetMaxSigmaToVertex(3.0);
774 // dtckp->SetMaxImpactXY(3.0);
775 // dtckp->SetMaxImpactZ(3.0);
776
777 // AliFemtoCutMonitorParticleYPt *cutPassYPtkp = new AliFemtoCutMonitorParticleYPt("cutPasskp", 0.493677);
778 // AliFemtoCutMonitorParticleYPt *cutFailYPtkp = new AliFemtoCutMonitorParticleYPt("cutFailkp", 0.493677);
779 // dtckp->AddCutMonitor(cutPassYPtkp, cutFailYPtkp);
780
781 // AliFemtoCutMonitorParticlePtPDG *cutPassPidkp = new AliFemtoCutMonitorParticlePtPDG("cutPasskp", 0.493677);
782 // AliFemtoCutMonitorParticlePtPDG *cutFailPidkp = new AliFemtoCutMonitorParticlePtPDG("cutFailkp", 0.493677);
783 // dtckp->AddCutMonitor(cutPassPidkp, cutFailPidkp);
784
785 // AliFemtoCutMonitorParticleMomRes *cutPassMRkp = new AliFemtoCutMonitorParticleMomRes("cutPasskp");
786 // AliFemtoCutMonitorParticleMomRes *cutFailMRkp = new AliFemtoCutMonitorParticleMomRes("cutFailkp");
787 // dtckp->AddCutMonitor(cutPassMRkp, cutFailMRkp);
788
789 // AliFemtoCutMonitorParticleVertPos *cutPassVPkp = new AliFemtoCutMonitorParticleVertPos("cutPasskp");
790 // AliFemtoCutMonitorParticleVertPos *cutFailVPkp = new AliFemtoCutMonitorParticleVertPos("cutFailkp");
791 // dtckp->AddCutMonitor(cutPassVPkp, cutFailVPkp);
792
793 // AliFemtoCutMonitorEventMult *cutPassEvMkp = new AliFemtoCutMonitorEventMult("cutPasskp");
794 // AliFemtoCutMonitorEventMult *cutFailEvMkp = new AliFemtoCutMonitorEventMult("cutFailkp");
795 // meckp->AddCutMonitor(cutPassEvMkp, cutFailEvMkp);
796
797 // AliFemtoCutMonitorEventVertex *cutPassEvVkp = new AliFemtoCutMonitorEventVertex("cutPasskp");
798 // AliFemtoCutMonitorEventVertex *cutFailEvVkp = new AliFemtoCutMonitorEventVertex("cutFailkp");
799 // meckp->AddCutMonitor(cutPassEvVkp, cutFailEvVkp);
800
801 // AliFemtoShareQualityTPCEntranceSepPairCut *sqpckp = new AliFemtoShareQualityTPCEntranceSepPairCut();
802 // sqpckp->SetShareQualityMax(0.0);
803 // sqpckp->SetShareFractionMax(0.02);
804 // sqpckp->SetRemoveSameLabel(kFALSE);
805 // sqpckp->SetTPCEntranceSepMinimum(3.0);
806
807 // ankp->SetEventCut(meckp);
808 // ankp->SetFirstParticleCut(dtckp);
809 // ankp->SetSecondParticleCut(dtckp);
810 // ankp->SetPairCut(sqpckp);
811
812 // AliFemtoQinvCorrFctn *cqinvkp= new AliFemtoQinvCorrFctn("qinvcf",100,0.0,1.0);
813
814 // AliFemtoModelBPLCMSCorrFctn *c3dsmallkp;
815 // AliFemtoModelCorrFctn *c1dpikp;
816
817 // // Setting up the model calculation
818 // // First create the freeze-out generator
819 // AliFemtoModelGausRinvFreezeOutGenerator *tFreezekp = new AliFemtoModelGausRinvFreezeOutGenerator();
820 // tFreezekp->SetSizeInv(1.8*TMath::Sqrt(2.0));
821 // tFreezekp->SetSelectPrimaryFromHidden(false);
822
823 // // And the weight generator
824 // // AliFemtoModelWeightGeneratorBasic *tWeightkp = new AliFemtoModelWeightGeneratorBasic();
825 // // tWeightkp->SetPairType(AliFemtoModelWeightGenerator::KaonPlusKaonPlus());
826 // AliFemtoModelWeightGeneratorLednicky *tWeightkp = new AliFemtoModelWeightGeneratorLednicky();
827 // tWeightkp->SetPairType(AliFemtoModelWeightGenerator::KaonPlusKaonPlus());
828 // tWeightkp->SetCoulOn();
829 // tWeightkp->SetQuantumOn();
830 // tWeightkp->SetStrongOff();
831 // tWeightkp->Set3BodyOff();
832
833 // // Create a manager that will connect it
834 // AliFemtoModelManager *tModelManagerkp = new AliFemtoModelManager();
835 // tModelManagerkp->AcceptFreezeOutGenerator(tFreezekp);
836 // tModelManagerkp->AcceptWeightGenerator(tWeightkp);
837 // tModelManagerkp->CreateCopyHiddenInfo(kFALSE);
838
839 // c3dsmallkp = new AliFemtoModelBPLCMSCorrFctn("c3dsmallkp",30, 0.0, 0.6);
840 // c3dsmallkp->ConnectToManager(tModelManagerkp);
841
842 // c1dpikp = new AliFemtoModelCorrFctn("c1dpikp",100,0.0,1.0);
843 // c1dpikp->ConnectToManager(tModelManagerkp);
844
845 // //###
846 // ankp->AddCorrFctn(cqinvkp);
847
848 // ankp->AddCorrFctn(c3dsmallkp);
849 // ankp->AddCorrFctn(c1dpikp);
850
851 // Manager->AddAnalysis(ankp);
852
853 // // *** End Kaon-Kaon (positive) analysis
854 // }
855
856 // if (runNegativeKaons) {
857 // // *** Begin Kaon-Kaon (negative) analysis
858 // AliFemtoVertexMultAnalysis *ankm = new AliFemtoVertexMultAnalysis(10, -15.6, 15.6, 1, 2, 20000);
859 // ankm->SetNumEventsToMix(10);
860 // ankm->SetMinSizePartCollection(2);
861
862 // AliFemtoBasicEventCut* meckm = new AliFemtoBasicEventCut();
863 // meckm->SetEventMult(1,100000);
864 // meckm->SetVertZPos(-1000,1000);
865
866 // AliFemtoESDTrackCut* dtckm = new AliFemtoESDTrackCut();
867 // dtckm->SetPidProbKaon(0.7,1.001);
868 // dtckm->SetPidProbMuon(0.0,0.5);
869 // dtckm->SetPidProbPion(0.0,0.5);
870 // dtckm->SetPidProbProton(0.0,0.5);
871 // dtckm->SetCharge(1.0);
872 // dtckm->SetMostProbableKaon();
873 // dtckm->SetPt(0.15,2.0);
874 // dtckm->SetMass(KaonMass);
875 // dtckm->SetRapidity(-0.8,0.8);
876 // // Track quality cuts
877 // dtckm->SetStatus(AliESDtrack::kTPCrefit|AliESDtrack::kITSrefit);
878 // //dtckm->SetStatus(AliESDtrack::kTPCrefit);
879 // // dtckm->SetminTPCclsF(95);
880 // dtckm->SetminTPCncls(50);
881 // dtckm->SetRemoveKinks(kTRUE);
882 // dtckm->SetLabel(kFALSE);
883 // dtckm->SetMaxITSChiNdof(2.5);
884 // dtckm->SetMaxTPCChiNdof(3.0);
885 // // dtckm->SetMaxSigmaToVertex(3.0);
886 // dtckm->SetMaxImpactXY(3.0);
887 // dtckm->SetMaxImpactZ(3.0);
888
889 // AliFemtoCutMonitorParticleYPt *cutPassYPtkm = new AliFemtoCutMonitorParticleYPt("cutPasskm", 0.493677);
890 // AliFemtoCutMonitorParticleYPt *cutFailYPtkm = new AliFemtoCutMonitorParticleYPt("cutFailkm", 0.493677);
891 // dtckm->AddCutMonitor(cutPassYPtkm, cutFailYPtkm);
892
893 // AliFemtoCutMonitorParticlePtPDG *cutPassPidkm = new AliFemtoCutMonitorParticlePtPDG("cutPasskm", 0.493677);
894 // AliFemtoCutMonitorParticlePtPDG *cutFailPidkm = new AliFemtoCutMonitorParticlePtPDG("cutFailkm", 0.493677);
895 // dtckm->AddCutMonitor(cutPassPidkm, cutFailPidkm);
896
897 // AliFemtoCutMonitorParticleMomRes *cutPassMRkm = new AliFemtoCutMonitorParticleMomRes("cutPasskm");
898 // AliFemtoCutMonitorParticleMomRes *cutFailMRkm = new AliFemtoCutMonitorParticleMomRes("cutFailkm");
899 // dtckm->AddCutMonitor(cutPassMRkm, cutFailMRkm);
900
901 // AliFemtoCutMonitorParticleVertPos *cutPassVPkm = new AliFemtoCutMonitorParticleVertPos("cutPasskm");
902 // AliFemtoCutMonitorParticleVertPos *cutFailVPkm = new AliFemtoCutMonitorParticleVertPos("cutFailkm");
903 // dtckm->AddCutMonitor(cutPassVPkm, cutFailVPkm);
904
905 // AliFemtoCutMonitorEventMult *cutPassEvMkm = new AliFemtoCutMonitorEventMult("cutPasskm");
906 // AliFemtoCutMonitorEventMult *cutFailEvMkm = new AliFemtoCutMonitorEventMult("cutFailkm");
907 // meckm->AddCutMonitor(cutPassEvMkm, cutFailEvMkm);
908
909 // AliFemtoCutMonitorEventVertex *cutPassEvVkm = new AliFemtoCutMonitorEventVertex("cutPasskm");
910 // AliFemtoCutMonitorEventVertex *cutFailEvVkm = new AliFemtoCutMonitorEventVertex("cutFailkm");
911 // meckm->AddCutMonitor(cutPassEvVkm, cutFailEvVkm);
912
913 // AliFemtoShareQualityTPCEntranceSepPairCut *sqpckm = new AliFemtoShareQualityTPCEntranceSepPairCut();
914 // sqpckm->SetShareQualityMax(0.0);
915 // sqpckm->SetShareFractionMax(0.02);
916 // sqpckm->SetRemoveSameLabel(kFALSE);
917 // sqpckm->SetTPCEntranceSepMinimum(3.0);
918
919 // ankm->SetEventCut(meckm);
920 // ankm->SetFirstParticleCut(dtckm);
921 // ankm->SetSecondParticleCut(dtckm);
922 // ankm->SetPairCut(sqpckm);
923
924 // AliFemtoQinvCorrFctn *cqinvkm= new AliFemtoQinvCorrFctn("qinvcf",100,0.0,1.0);
925
926 // AliFemtoModelBPLCMSCorrFctn *c3dsmallkm;
927 // AliFemtoModelCorrFctn *c1dpikm;
928
929 // // Setting up the model calculation
930 // // First create the freeze-out generator
931 // AliFemtoModelGausRinvFreezeOutGenerator *tFreezekm = new AliFemtoModelGausRinvFreezeOutGenerator();
932 // tFreezekm->SetSizeInv(1.8*TMath::Sqrt(2.0));
933 // tFreezekm->SetSelectPrimaryFromHidden(false);
934
935 // // And the weight generator
936 // // AliFemtoModelWeightGeneratorBasic *tWeightkm = new AliFemtoModelWeightGeneratorBasic();
937 // // tWeightkm->SetPairType(AliFemtoModelWeightGenerator::KaonPlusKaonPlus());
938 // AliFemtoModelWeightGeneratorLednicky *tWeightkm = new AliFemtoModelWeightGeneratorLednicky();
939 // tWeightkm->SetPairType(AliFemtoModelWeightGenerator::KaonPlusKaonPlus());
940 // tWeightkm->SetCoulOn();
941 // tWeightkm->SetQuantumOn();
942 // tWeightkm->SetStrongOff();
943 // tWeightkm->Set3BodyOff();
944
945 // // Create a manager that will connect it
946 // AliFemtoModelManager *tModelManagerkm = new AliFemtoModelManager();
947 // tModelManagerkm->AcceptFreezeOutGenerator(tFreezekm);
948 // tModelManagerkm->AcceptWeightGenerator(tWeightkm);
949 // tModelManagerkm->CreateCopyHiddenInfo(kFALSE);
950
951 // c3dsmallkm = new AliFemtoModelBPLCMSCorrFctn("c3dsmallkm",30, 0.0, 0.6);
952 // c3dsmallkm->ConnectToManager(tModelManagerkm);
953
954 // c1dpikm = new AliFemtoModelCorrFctn("c1dpikm",100,0.0,1.0);
955 // c1dpikm->ConnectToManager(tModelManagerkm);
956
957 // //###
958 // ankm->AddCorrFctn(cqinvkm);
959
960 // ankm->AddCorrFctn(c3dsmallkm);
961 // ankm->AddCorrFctn(c1dpikm);
962
963 // Manager->AddAnalysis(ankm);
964
965 // // *** End Kaon-Kaon (positive) analysis
966 // }
967
ce84bcfa 968 return Manager;
969}
970