]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGCF/FEMTOSCOPY/macros/Train/KchKch_MC_ESD/ConfigFemtoAnalysis.C
kaon train updates
[u/mrichter/AliRoot.git] / PWGCF / FEMTOSCOPY / macros / Train / KchKch_MC_ESD / ConfigFemtoAnalysis.C
CommitLineData
1e1dd217 1\r
2/*********************************************************************\r
3 * *\r
4 * ConfigFemtoAnalysis.C - configuration macro for the femtoscopic *\r
5 * analysis, meant as a QA process for two-particle effects *\r
6 * *\r
7 * Author: Adam Kisiel (Adam.Kisiel@cern.ch) *\r
8 * *\r
9 *********************************************************************/\r
10\r
11#if !defined(__CINT__) || defined(__MAKECINT_)\r
12#include "AliFemtoManager.h"\r
13#include "AliFemtoEventReaderESDChain.h"\r
14#include "AliFemtoEventReaderESDChainKine.h"\r
15#include "AliFemtoEventReaderAODChain.h"\r
16#include "AliFemtoSimpleAnalysis.h"\r
17#include "AliFemtoBasicEventCut.h"\r
18#include "AliFemtoESDTrackCut.h"\r
19#include "AliFemtoCorrFctn.h"\r
20#include "AliFemtoCutMonitorParticleYPt.h"\r
21#include "AliFemtoCutMonitorParticleVertPos.h"\r
22#include "AliFemtoCutMonitorParticleMomRes.h"\r
23#include "AliFemtoCutMonitorParticlePID.h"\r
24#include "AliFemtoCutMonitorEventMult.h"\r
25#include "AliFemtoCutMonitorEventVertex.h"\r
26#include "AliFemtoShareQualityTPCEntranceSepPairCut.h"\r
27#include "AliFemtoPairCutAntiGamma.h"\r
28#include "AliFemtoPairCutRadialDistance.h"\r
29#include "AliFemtoQinvCorrFctn.h"\r
30#include "AliFemtoShareQualityCorrFctn.h"\r
31#include "AliFemtoTPCInnerCorrFctn.h"\r
32#include "AliFemtoVertexMultAnalysis.h"\r
33#include "AliFemtoCorrFctn3DSpherical.h"\r
34#include "AliFemtoChi2CorrFctn.h"\r
35#include "AliFemtoCorrFctnTPCNcls.h"\r
36#include "AliFemtoBPLCMS3DCorrFctn.h"\r
37#include "AliFemtoCorrFctn3DLCMSSym.h"\r
38#include "AliFemtoModelBPLCMSCorrFctn.h"\r
39#include "AliFemtoModelCorrFctn3DSpherical.h"\r
40#include "AliFemtoModelGausLCMSFreezeOutGenerator.h"\r
41#include "AliFemtoModelGausRinvFreezeOutGenerator.h"\r
42#include "AliFemtoModelManager.h"\r
43#include "AliFemtoModelWeightGeneratorBasic.h"\r
44#include "AliFemtoModelWeightGeneratorLednicky.h"\r
45#include "AliFemtoCorrFctnDirectYlm.h"\r
46#include "AliFemtoModelCorrFctnDirectYlm.h"\r
47#include "AliFemtoModelCorrFctnSource.h"\r
48#include "AliFemtoModelCorrFctn.h"\r
49#include "AliFemtoCutMonitorParticlePtPDG.h"\r
50#include "AliFemtoKTPairCut.h"\r
51#include "AliFemtoCutMonitorCollections.h"\r
52#endif\r
53\r
54//_ 6 fm pure kaons _(0.2-0.4)______________________________________________________________________\r
55AliFemtoManager* ConfigFemtoAnalysis() {\r
56\r
57 double PionMass = 0.13956995;\r
58 double KaonMass = 0.493677;\r
59 double ProtonMass = 0.938272013;\r
60\r
61 //multiplicity bins\r
62 int runmults[10] = {1, 0, 0, 0, 0, 0, 0, 0, 0, 0};\r
63 int multbins[11] = {0.01, 200000, 400, 600, 900, 950, 500, 600, 700, 800, 900};\r
64\r
65 int runch[3] = {1, 1, 0};\r
66 const char *chrgs[3] = { "kk", "akak", "kak" };\r
67\r
68 int runktdep = 1;\r
69 // double ktrng[8] = {0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 1.0};\r
70 double ktrng[4] = {0.2, 0.4, 0.6, 1.0};
71\r
72 int run3d = 0; // Do 3D cartesian analysis?\r
73 int runshlcms = 1;\r
74\r
75 int nbinssh = 100;\r
76 double shqmax = 0.5;\r
77\r
78\r
79 AliFemtoEventReaderESDChainKine *Reader = new AliFemtoEventReaderESDChainKine();\r
80 Reader->SetKaonAnalysis(kTRUE);
81 //Reader->SetUseMultiplicity(AliFemtoEventReaderESDChainKine::kCentrality);\r
82 //Reader->SetReadTrackType(AliFemtoEventReaderESDChainKine::kGlobal);\r
83\r
84 // AliFemtoEventReaderKinematicsChain *Reader = new AliFemtoEventReaderKinematicsChain();\r
85 // Reader->SetUseMultiplicity(AliFemtoEventReaderKinematicsChain::kGlobalCount);\r
86 // // // Reader->SetReadTrackType(AliFemtoEventReaderESDChainKine::kGlobal);\r
87\r
88 AliFemtoModelGausRinvFreezeOutGenerator *tFreeze = new AliFemtoModelGausRinvFreezeOutGenerator();\r
89 tFreeze->SetSizeInv(5.0);\r
90\r
91 // AliFemtoModelWeightGeneratorLednicky *tWeight = new AliFemtoModelWeightGeneratorLednicky();\r
92 // tWeight->SetPairType(AliFemtoModelWeightGenerator::KaonPlusKaonPlus());
93
94 AliFemtoModelWeightGeneratorBasic *tWeight = new AliFemtoModelWeightGeneratorBasic();
95 tWeight->SetPairType(AliFemtoModelWeightGenerator::KaonPlusKaonPlus());
96
97 //////// tWeight->SetPairType(5);\r
98 //tWeight->SetPairType(1);\r
99\r
100 AliFemtoModelManager *tModelManager = new AliFemtoModelManager();\r
101 tModelManager->AcceptFreezeOutGenerator(tFreeze);\r
102 tModelManager->AcceptWeightGenerator(tWeight);\r
103 tModelManager->CreateCopyHiddenInfo(kFALSE);\r
104 //tModelManager->CreateCopyHiddenInfo(kTRUE);\r
105\r
106 AliFemtoManager* Manager=new AliFemtoManager();\r
107 Manager->SetEventReader(Reader);\r
108\r
109 AliFemtoVertexMultAnalysis *anetaphitpc[30];\r
110 AliFemtoBasicEventCut *mecetaphitpc[30];\r
111 AliFemtoCutMonitorEventMult *cutPassEvMetaphitpc[30];\r
112 AliFemtoCutMonitorEventMult *cutFailEvMetaphitpc[30];\r
113 AliFemtoCutMonitorEventVertex *cutPassEvVetaphitpc[30];\r
114 AliFemtoCutMonitorEventVertex *cutFailEvVetaphitpc[30];\r
115 AliFemtoCutMonitorCollections *cutPassColletaphitpc[30];\r
116 AliFemtoCutMonitorCollections *cutFailColletaphitpc[30];\r
117 AliFemtoESDTrackCut *dtc1etaphitpc[30];\r
118 AliFemtoESDTrackCut *dtc2etaphitpc[30];\r
119 AliFemtoCutMonitorParticleYPt *cutPass1YPtetaphitpc[30];\r
120 AliFemtoCutMonitorParticleYPt *cutFail1YPtetaphitpc[30];\r
121 AliFemtoCutMonitorParticlePID *cutPass1PIDetaphitpc[30];\r
122 AliFemtoCutMonitorParticlePID *cutFail1PIDetaphitpc[30];\r
123 AliFemtoCutMonitorParticleYPt *cutPass2YPtetaphitpc[30];\r
124 AliFemtoCutMonitorParticleYPt *cutFail2YPtetaphitpc[30];\r
125 AliFemtoCutMonitorParticlePID *cutPass2PIDetaphitpc[30];\r
126 AliFemtoCutMonitorParticlePID *cutFail2PIDetaphitpc[30];\r
127 // AliFemtoPairCutAntiGamma *sqpcetaphitpc[30];\r
128 AliFemtoShareQualityPairCut *sqpcetaphitpc[30];\r
129 //AliFemtoPairCutRadialDistance *sqpcetaphitpc[30];\r
130 AliFemtoModelCorrFctnDirectYlm *cylmetaphitpc[30];\r
131 AliFemtoCorrFctnDEtaDPhi *cdedpetaphi[30];\r
132 AliFemtoChi2CorrFctn *cchiqinvetaphitpc[30];\r
133 AliFemtoKTPairCut *ktpcuts[30*7];\r
134 AliFemtoModelCorrFctnDirectYlm *cylmkttpc[30*7];\r
135 //AliFemtoModelQinvCorrFctn *cqinvkttpc[30*7];\r
136 AliFemtoModelCorrFctnSource *cqinvkttpc[30*7];\r
137// AliFemtoModelCorrFctn *cqinvkttpc[30*7];\r
138 //AliFemtoModelCorrFctn3DLCMSSym *cq3dlcmskttpc[30*7];\r
139 AliFemtoCorrFctnTPCNcls *cqinvnclstpc[30];\r
140 AliFemtoShareQualityCorrFctn *cqinvsqtpc[30*10];\r
141 AliFemtoChi2CorrFctn *cqinvchi2tpc[30];\r
142 AliFemtoTPCInnerCorrFctn *cqinvinnertpc[30*10];\r
143\r
144\r
145 // *** Begin pion-pion analysis ***\r
146 int aniter = 0;\r
147\r
148 for (int imult=0; imult<10; imult++) {\r
149 if (runmults[imult]) {\r
150 for (int ichg=0; ichg<3; ichg++) {\r
151 if (runch[ichg]) {\r
152 aniter = ichg*10+imult;\r
153\r
154 anetaphitpc[aniter] = new AliFemtoVertexMultAnalysis(10, -8.0, 8.0, 4, multbins[imult], multbins[imult+1]);\r
155 anetaphitpc[aniter]->SetNumEventsToMix(5);\r
156 anetaphitpc[aniter]->SetMinSizePartCollection(1);\r
157\r
158 mecetaphitpc[aniter] = new AliFemtoBasicEventCut();\r
159 mecetaphitpc[aniter]->SetEventMult(0,200000);\r
160 mecetaphitpc[aniter]->SetVertZPos(-8,8);\r
161\r
162\r
163 dtc1etaphitpc[aniter] = new AliFemtoESDTrackCut();\r
164 dtc2etaphitpc[aniter] = new AliFemtoESDTrackCut();\r
165
166
167
168 if (ichg == 0) {\r
169 dtc1etaphitpc[aniter]->SetCharge(1.0);\r
170 dtc1etaphitpc[aniter]->SetPt(0.2,1.5);\r
171 }\r
172 else if (ichg == 1) {\r
173 dtc1etaphitpc[aniter]->SetCharge(-1.0);\r
174 dtc1etaphitpc[aniter]->SetPt(0.2,1.5);\r
175 }\r
176 else if (ichg == 2) {\r
177 dtc1etaphitpc[aniter]->SetCharge(-1.0);\r
178 dtc2etaphitpc[aniter]->SetCharge(1.0);\r
179 dtc1etaphitpc[aniter]->SetPt(0.2,1.5);\r
180 dtc2etaphitpc[aniter]->SetPt(0.2,1.5);\r
181 }\r
182\r
183 dtc1etaphitpc[aniter]->SetEta(-0.8,0.8);\r
184 dtc1etaphitpc[aniter]->SetMass(KaonMass);\r
185//test dtc1etaphitpc[aniter]->SetMostProbableKaon();\r
186//test dtc1etaphitpc[aniter]->SetNsigma(3.0);\r
187 //dtc1etaphitpc[aniter]->SetNsigma(2.0);\r
188//test dtc1etaphitpc[aniter]->SetNsigmaTPCTOF(kTRUE);\r
189 //dtc1etaphitpc[aniter]->SetNsigmaTPConly(kTRUE);\r
190\r
191 if (ichg == 2) {\r
192 dtc2etaphitpc[aniter]->SetEta(-0.8,0.8);\r
193 dtc2etaphitpc[aniter]->SetMass(KaonMass);\r
194//test dtc2etaphitpc[aniter]->SetMostProbableKaon();\r
195//test dtc2etaphitpc[aniter]->SetNsigma(3.0);\r
196 //dtc2etaphitpc[aniter]->SetNsigma(2.0);\r
197//test dtc2etaphitpc[aniter]->SetNsigmaTPCTOF(kTRUE);\r
198 //dtc2etaphitpc[aniter]->SetNsigmaTPConly(kTRUE);\r
199\r
200 }\r
201\r
202\r
203 dtc1etaphitpc[aniter]->SetStatus(AliESDtrack::kTPCin);\r
204 dtc1etaphitpc[aniter]->SetminTPCncls(80);\r
205 dtc1etaphitpc[aniter]->SetRemoveKinks(kTRUE);\r
206 dtc1etaphitpc[aniter]->SetLabel(kFALSE);\r
207 dtc1etaphitpc[aniter]->SetMaxTPCChiNdof(4.0);\r
208 dtc1etaphitpc[aniter]->SetMaxImpactXY(2.4); // 2.4 0.1\r
209 dtc1etaphitpc[aniter]->SetMaxImpactZ(3.2); // 2.0 0.1\r
210
211 AliFemtoCutMonitorParticleYPt *cutPassYPtkp = new AliFemtoCutMonitorParticleYPt("cutPasskp", 0.493677);
212 AliFemtoCutMonitorParticleYPt *cutFailYPtkp = new AliFemtoCutMonitorParticleYPt("cutFailkp", 0.493677);
213 dtc1etaphitpc[aniter]->AddCutMonitor(cutPassYPtkp, cutFailYPtkp);
214
215 AliFemtoCutMonitorParticlePtPDG *cutPassPidkp = new AliFemtoCutMonitorParticlePtPDG("cutPasskp", 0.493677);
216 AliFemtoCutMonitorParticlePtPDG *cutFailPidkp = new AliFemtoCutMonitorParticlePtPDG("cutFailkp", 0.493677);
217 dtc1etaphitpc[aniter]->AddCutMonitor(cutPassPidkp, cutFailPidkp);
218
219 AliFemtoCutMonitorParticleMomRes *cutPassMRkp = new AliFemtoCutMonitorParticleMomRes("cutPasskp");
220 AliFemtoCutMonitorParticleMomRes *cutFailMRkp = new AliFemtoCutMonitorParticleMomRes("cutFailkp");
221 dtc1etaphitpc[aniter]->AddCutMonitor(cutPassMRkp, cutFailMRkp);
222
223
224 sqpcetaphitpc[aniter] = new AliFemtoShareQualityPairCut();\r
225 //sqpcetaphitpc[aniter] = new AliFemtoPairCutRadialDistance();\r
226 sqpcetaphitpc[aniter]->SetShareQualityMax(1.0);\r
227 sqpcetaphitpc[aniter]->SetShareFractionMax(0.05);\r
228 sqpcetaphitpc[aniter]->SetRemoveSameLabel(kFALSE);\r
229
230\r
231 anetaphitpc[aniter]->SetEventCut(mecetaphitpc[aniter]);\r
232 if (ichg == 2) {\r
233 anetaphitpc[aniter]->SetFirstParticleCut(dtc1etaphitpc[aniter]);\r
234 anetaphitpc[aniter]->SetSecondParticleCut(dtc2etaphitpc[aniter]);\r
235 }\r
236 else {\r
237 anetaphitpc[aniter]->SetFirstParticleCut(dtc1etaphitpc[aniter]);\r
238 anetaphitpc[aniter]->SetSecondParticleCut(dtc1etaphitpc[aniter]);\r
239 }\r
240\r
241 anetaphitpc[aniter]->SetPairCut(sqpcetaphitpc[aniter]);\r
242\r
243\r
244 //Qinv (without kT bins)\r
245 cqinvkttpc[aniter] = new AliFemtoModelCorrFctnSource(Form("cqinv%stpcM%i", chrgs[ichg], imult),nbinssh,0.0,shqmax);\r
246 //cqinvkttpc[aniter] = new AliFemtoModelCorrFctn(Form("cqinv%stpcM%i", chrgs[ichg], imult),nbinssh,0.0,shqmax);\r
247 // ktpcuts[0] = new AliFemtoKTPairCut(0.2,0.4);\r
248 // cqinvkttpc[aniter]->SetPairSelectionCut(ktpcuts[0]);\r
249 cqinvkttpc[aniter]->ConnectToManager(tModelManager);\r
250 anetaphitpc[aniter]->AddCorrFctn(cqinvkttpc[aniter]);\r
251\r
252\r
253 if (runktdep) {\r
254 int ktm;\r
255 for (int ikt=0; ikt<3; ikt++) {\r
256 ktm = aniter*3 + ikt;\r
257 ktpcuts[ktm] = new AliFemtoKTPairCut(ktrng[ikt], ktrng[ikt+1]);\r
258
259 cqinvkttpc[ktm] = new AliFemtoModelCorrFctnSource(Form("cqinv%stpcM%ikT%i", chrgs[ichg], imult, ikt),nbinssh,0.0, shqmax);\r
260 cqinvkttpc[ktm]->SetPairSelectionCut(ktpcuts[ktm]);\r
261 cqinvkttpc[ktm]->ConnectToManager(tModelManager);\r
262 anetaphitpc[aniter]->AddCorrFctn(cqinvkttpc[ktm]);\r
263
264 //if (run3d) {\r
265 // cq3dlcmskttpc[ktm] = new AliFemtoCorrFctn3DLCMSSym(Form("cq3d%stpcM%ikT%i", chrgs[ichg], imult, ikt),60,(imult>3)?((imult>6)?((imult>7)?0.6:0.4):0.25):0.15);\r
266 //cq3dlcmskttpc[ktm] = new AliFemtoModelCorrFctn3DLCMSSym(Form("cq3d%stpcM%ikT%i", chrgs[ichg], imult, ikt),60,0.5);\r
267 //cq3dlcmskttpc[ktm]->SetPairSelectionCut(ktpcuts[ktm]);\r
268 //anetaphitpc[aniter]->AddCorrFctn(cq3dlcmskttpc[ktm]);\r
269 //}\r
270 }\r
271 }\r
272\r
273 //cdedpetaphi[aniter] = new AliFemtoCorrFctnDEtaDPhi(Form("cdedp%stpcM%i", chrgs[ichg], imult),39, 39);\r
274 //anetaphitpc[aniter]->AddCorrFctn(cdedpetaphi[aniter]);\r
275\r
276 Manager->AddAnalysis(anetaphitpc[aniter]);\r
277 }\r
278 }\r
279 }\r
280 }\r
281 // *** End pion-pion analysis\r
282\r
283 return Manager;\r
284}\r