]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGCF/FEMTOSCOPY/macros/Train/DEtaDPhi/PID/AOD/NonId/PIP/ConfigFemtoAnalysis.C
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGCF / FEMTOSCOPY / macros / Train / DEtaDPhi / PID / AOD / NonId / PIP / ConfigFemtoAnalysis.C
CommitLineData
773e74de 1/*********************************************************************
2 * *
3 * Configfemtoanalysis.C - configuration macro for the femtoscopic *
4a847c65 4 * analysis, meant as a QA process for two-particle effects *
773e74de 5 * *
6 * Author: Adam Kisiel (Adam.Kisiel@cern.ch) *
7 * *
8 *********************************************************************/
9
10#if !defined(__CINT__) || defined(__MAKECINT_)
11#include "AliFemtoManager.h"
12#include "AliFemtoEventReaderESDChain.h"
13#include "AliFemtoEventReaderESDChainKine.h"
14#include "AliFemtoEventReaderAODChain.h"
15#include "AliFemtoSimpleAnalysis.h"
16#include "AliFemtoBasicEventCut.h"
17#include "AliFemtoESDTrackCut.h"
18#include "AliFemtoCorrFctn.h"
19#include "AliFemtoCutMonitorParticleYPt.h"
20//#include "AliFemtoCutMonitorParticleVertPos.h"
21//#include "AliFemtoCutMonitorParticleMomRes.h"
22#include "AliFemtoCutMonitorParticlePID.h"
23//#include "AliFemtoCutMonitorEventMult.h"
24//#include "AliFemtoCutMonitorEventVertex.h"
25#include "AliFemtoShareQualityTPCEntranceSepPairCut.h"
26#include "AliFemtoPairCutAntiGamma.h"
27#include "AliFemtoPairCutRadialDistance.h"
28#include "AliFemtoQinvCorrFctn.h"
29//#include "AliFemtoTPCInnerCorrFctn.h"
30#include "AliFemtoVertexMultAnalysis.h"
31//#include "AliFemtoCutMonitorParticlePtPDG.h"
32#include "AliFemtoPairCutPt.h"
33//#include "AliFemtoCorrFctnMassInvMonitor.h"
34#endif
35
36//________________________________________________________________________
37AliFemtoManager* ConfigFemtoAnalysis() {
38
39 double PionMass = 0.13956995;
40 double KaonMass = 0.493677;
41 double ProtonMass = 0.938272013;
42
43 const int numOfMultBins = 5;
44 const int numOfChTypes = 12;
45 const int numOfkTbins = 2;
46
47 int runmults[numOfMultBins] = {1, 1, 1, 0, 1};
48 int multbins[numOfMultBins+1] = {0, 20, 50, 150, 2, 150};
49
50 int runch[numOfChTypes] = {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1};
51 const char *chrgs[numOfChTypes] = {"PIpPp","PImPm","PIpPm","PImPp"};
52
53 int runktdep = 0;
54 double ktrng[numOfkTbins+1] = {0.0, 0.7, 100.0};
55
56 int runtype = 0; // Types 0 - global, 1 - ITS only, 2 - TPC Inner //global tracks ->mfit ITS+TPC
57
58 int gammacut = 0; // cut na ee z gamma
59
60
61 //AliFemtoEventReaderESDChainKine* Reader=new AliFemtoEventReaderESDChainKine();
62 //Reader->SetUseMultiplicity(AliFemtoEventReaderESDChainKine::kReferenceITSTPC);
63 //Reader->SetMagneticFieldSign(1.0);
64 //AliFemtoEventReaderESDChain *Reader = new AliFemtoEventReaderESDChain();
65 //Reader->SetUseMultiplicity(AliFemtoEventReaderESDChain::kReferenceITSTPC);
66
67 AliFemtoEventReaderAODChain *Reader = new AliFemtoEventReaderAODChain();
68 Reader->SetFilterBit(0);
69 Reader->SetUseMultiplicity(AliFemtoEventReaderAOD::kReference);
70
71 // //Reader->SetCentralityPreSelection(0.001, 910);
72
73 AliFemtoManager* Manager = new AliFemtoManager();
74 Manager->SetEventReader(Reader);
75
76 AliFemtoVertexMultAnalysis *anetaphitpc[numOfMultBins*numOfChTypes];
77 AliFemtoBasicEventCut *mecetaphitpc[numOfMultBins*numOfChTypes];
78/* AliFemtoCutMonitorEventMult *cutPassEvMetaphitpc[numOfMultBins*numOfChTypes];
79 AliFemtoCutMonitorEventMult *cutFailEvMetaphitpc[numOfMultBins*numOfChTypes];
80 AliFemtoCutMonitorEventVertex *cutPassEvVetaphitpc[numOfMultBins*numOfChTypes];
81 AliFemtoCutMonitorEventVertex *cutFailEvVetaphitpc[numOfMultBins*numOfChTypes];
82*/ AliFemtoESDTrackCut *dtc1etaphitpc[numOfMultBins*numOfChTypes];
83 AliFemtoESDTrackCut *dtc2etaphitpc[numOfMultBins*numOfChTypes];
84
85 // AliFemtoPairCutAntiGamma *sqpcetaphitpcdiff[numOfMultBins*numOfChTypes];
86 // AliFemtoShareQualityTPCEntranceSepPairCut *sqpcetaphitpcsame[numOfMultBins*numOfChTypes];
87 AliFemtoPairCutAntiGamma *sqpcetaphitpc[numOfMultBins*numOfChTypes];
88 // AliFemtoPairCutRadialDistance *sqpcetaphitpc[numOfMultBins*numOfChTypes];
89 // AliFemtoChi2CorrFctn *cchiqinvetaphitpc[numOfMultBins*numOfChTypes];
90 AliFemtoPairCutPt *ktpcuts[numOfMultBins*numOfChTypes];
91 AliFemtoQinvCorrFctn *cqinvkttpc[numOfMultBins*numOfChTypes];
92 AliFemtoQinvCorrFctn *cqinvtpc[numOfMultBins*numOfChTypes];
93 AliFemtoCorrFctnDEtaDPhi *cdedpetaphi[numOfMultBins*numOfChTypes];
94 //AliFemtoCorrFctnMassInvMonitor *cMinvMonitor[numOfMultBins*numOfChTypes];
95
96
97 // *** Third QA task - HBT analysis with all pair cuts off, TPC only ***
98 // *** Begin pion-pion (positive) analysis ***
99 int aniter = 0;
100
101 for (int imult = 0; imult < numOfMultBins; imult++)
102 {
103 if (runmults[imult])
104 {
105 for (int ichg = 0; ichg < numOfChTypes; ichg++)
106 {
107 if (runch[ichg])
108 {
109
110 aniter = ichg * numOfMultBins + imult;
111 anetaphitpc[aniter] = new AliFemtoVertexMultAnalysis(8, -8.0, 8.0, 6, multbins[imult], multbins[imult+1]);
112 anetaphitpc[aniter]->SetNumEventsToMix(10);
113 anetaphitpc[aniter]->SetMinSizePartCollection(1);
114
115 mecetaphitpc[aniter] = new AliFemtoBasicEventCut();
116 mecetaphitpc[aniter]->SetEventMult(0.001,100000);
117 mecetaphitpc[aniter]->SetVertZPos(-8,8);//cm
118
119 /* cutPassEvMetaphitpc[aniter] = new AliFemtoCutMonitorEventMult(Form("cutPass%stpcM%i", chrgs[ichg], imult));
120 cutFailEvMetaphitpc[aniter] = new AliFemtoCutMonitorEventMult(Form("cutFail%stpcM%i", chrgs[ichg], imult));
121 mecetaphitpc[aniter]->AddCutMonitor(cutPassEvMetaphitpc[aniter], cutFailEvMetaphitpc[aniter]);
122
123 cutPassEvVetaphitpc[aniter] = new AliFemtoCutMonitorEventVertex(Form("cutPass%stpcM%i", chrgs[ichg], imult));
124 cutFailEvVetaphitpc[aniter] = new AliFemtoCutMonitorEventVertex(Form("cutFail%stpcM%i", chrgs[ichg], imult));
125 mecetaphitpc[aniter]->AddCutMonitor(cutPassEvVetaphitpc[aniter], cutFailEvVetaphitpc[aniter]);
126 */
127 dtc1etaphitpc[aniter] = new AliFemtoESDTrackCut();
128 dtc2etaphitpc[aniter] = new AliFemtoESDTrackCut();
129
130 dtc1etaphitpc[aniter]->SetEta(-1.0,1.0);
131 dtc2etaphitpc[aniter]->SetEta(-1.0,1.0);
c4dd1710 132 if (ichg == 0) // PIpPp
773e74de 133 {
134 dtc1etaphitpc[aniter]->SetCharge(1.0);
135 dtc1etaphitpc[aniter]->SetPt(0.2,20);
136 dtc1etaphitpc[aniter]->SetMass(PionMass);
137 dtc1etaphitpc[aniter]->SetMostProbablePion();
138 dtc2etaphitpc[aniter]->SetCharge(1.0);
139 dtc2etaphitpc[aniter]->SetPt(0.5,20);
140 dtc2etaphitpc[aniter]->SetMass(ProtonMass);
141 dtc2etaphitpc[aniter]->SetMostProbableProton();
142 }
c4dd1710 143 if (ichg == 1) // PImPm
773e74de 144 {
145 dtc1etaphitpc[aniter]->SetCharge(-1.0);
146 dtc1etaphitpc[aniter]->SetPt(0.2,20);
147 dtc1etaphitpc[aniter]->SetMass(PionMass);
148 dtc1etaphitpc[aniter]->SetMostProbablePion();
149 dtc2etaphitpc[aniter]->SetCharge(-1.0);
150 dtc2etaphitpc[aniter]->SetPt(0.5,20);
151 dtc2etaphitpc[aniter]->SetMass(ProtonMass);
152 dtc2etaphitpc[aniter]->SetMostProbableProton();
153 }
c4dd1710 154 if (ichg == 2) // PIpPm
773e74de 155 {
156 dtc1etaphitpc[aniter]->SetCharge(1.0);
157 dtc1etaphitpc[aniter]->SetPt(0.2,20);
158 dtc1etaphitpc[aniter]->SetMass(PionMass);
159 dtc1etaphitpc[aniter]->SetMostProbablePion();
160 dtc2etaphitpc[aniter]->SetCharge(-1.0);
161 dtc2etaphitpc[aniter]->SetPt(0.5,20);
162 dtc2etaphitpc[aniter]->SetMass(ProtonMass);
163 dtc2etaphitpc[aniter]->SetMostProbableProton();
164 }
c4dd1710 165 if (ichg == 3) // PImPp
773e74de 166 {
167 dtc1etaphitpc[aniter]->SetCharge(-1.0);
168 dtc1etaphitpc[aniter]->SetPt(0.2,20);
169 dtc1etaphitpc[aniter]->SetMass(PionMass);
170 dtc1etaphitpc[aniter]->SetMostProbablePion();
171 dtc2etaphitpc[aniter]->SetCharge(1.0);
172 dtc2etaphitpc[aniter]->SetPt(0.5,20);
173 dtc2etaphitpc[aniter]->SetMass(ProtonMass);
174 dtc2etaphitpc[aniter]->SetMostProbableProton();
175 }
c4dd1710 176
773e74de 177 // Track quality cuts
178
179 if (runtype == 0)
180 {
181 dtc1etaphitpc[aniter]->SetStatus(AliESDtrack::kTPCrefit|AliESDtrack::kITSrefit);
182 dtc1etaphitpc[aniter]->SetminTPCncls(70);
183 dtc1etaphitpc[aniter]->SetRemoveKinks(kTRUE);
184 dtc1etaphitpc[aniter]->SetLabel(kFALSE);
185 // dtc1etaphitpc[aniter]->SetMaxITSChiNdof(6.0);
186 dtc1etaphitpc[aniter]->SetMaxTPCChiNdof(4.0);
187 dtc1etaphitpc[aniter]->SetMaxImpactXYPtDep(0.018, 0.035, -1.01); // DCA xy
188 dtc1etaphitpc[aniter]->SetMaxImpactZ(2); //DCA Z
189 // dtc1etaphitpc[aniter]->SetMaxSigmaToVertex(6.0);
190 dtc2etaphitpc[aniter]->SetStatus(AliESDtrack::kTPCrefit|AliESDtrack::kITSrefit);
191 dtc2etaphitpc[aniter]->SetminTPCncls(70);
192 dtc2etaphitpc[aniter]->SetRemoveKinks(kTRUE);
193 dtc2etaphitpc[aniter]->SetLabel(kFALSE);
194 // dtc2etaphitpc[aniter]->SetMaxITSChiNdof(6.0);
195 dtc2etaphitpc[aniter]->SetMaxTPCChiNdof(4.0);
196 dtc2etaphitpc[aniter]->SetMaxImpactXYPtDep(0.018, 0.035, -1.01) ;
197 dtc2etaphitpc[aniter]->SetMaxImpactZ(2);
198 // dtc2etaphitpc[aniter]->SetMaxSigmaToVertex(6.0);
199 }
200 else if (runtype == 1)
201 {
202 ;
203 }
204 else if (runtype == 2)
205 {
206 ;
207 }
208
209 sqpcetaphitpc[aniter] = new AliFemtoPairCutAntiGamma();
210
211 if (runtype == 0)
212 {
213 sqpcetaphitpc[aniter]->SetShareQualityMax(1.0); // two track cuts on splitting and merging
214 sqpcetaphitpc[aniter]->SetShareFractionMax(0.05); // ile moga miec wspolnych klastrow
215 sqpcetaphitpc[aniter]->SetRemoveSameLabel(kFALSE);
216 // sqpcetaphitpc[aniter]->SetMaxEEMinv(0.0);
217 // sqpcetaphitpc[aniter]->SetMaxThetaDiff(0.0);
218 // sqpcetaphitpc[aniter]->SetTPCEntranceSepMinimum(1.5);
219 // sqpcetaphitpc[aniter]->SetRadialDistanceMinimum(0.12, 0.03);
220 // sqpcetaphitpc[aniter]->SetEtaDifferenceMinimum(0.02);
221 }
222 else if (runtype == 1)
223 {
224
225 }
226 else if (runtype == 2)
227 {
228
229 }
230
231 anetaphitpc[aniter]->SetEventCut(mecetaphitpc[aniter]);
232
233 anetaphitpc[aniter]->SetFirstParticleCut(dtc1etaphitpc[aniter]);
234 anetaphitpc[aniter]->SetSecondParticleCut(dtc2etaphitpc[aniter]);
235 //cMinvMonitor[aniter] = new AliFemtoCorrFctnMassInvMonitor(Form("%sM%i",chrgs[ichg], imult),500,ProtonMass);
236 //anetaphitpc[aniter]->AddCorrFctn(cMinvMonitor[aniter]);
237
238 anetaphitpc[aniter]->SetPairCut(sqpcetaphitpc[aniter]);
239 cdedpetaphi[aniter] = new AliFemtoCorrFctnDEtaDPhi(Form("cdedp%stpcM%i", chrgs[ichg], imult),35, 35);
240 anetaphitpc[aniter]->AddCorrFctn(cdedpetaphi[aniter]);
241
242 if (runktdep)
243 {
244 int ktm;
245 for (int ikt=0; ikt<numOfkTbins; ikt++)
246 {
247 ktm = aniter * numOfkTbins + ikt;
248 ktpcuts[ktm] = new AliFemtoPairCutPt(ktrng[ikt], ktrng[ikt+1]);
249
250 //cqinvkttpc[ktm] = new AliFemtoQinvCorrFctn(Form("cqinv%stpcM%ikT%i", chrgs[ichg], imult, ikt),nbinssh,0.0,(imult>6)?shqmax*2.5:shqmax);
251 //cqinvkttpc[ktm]->SetPairSelectionCut(ktpcuts[ktm]);
252 //anetaphitpc[aniter]->AddCorrFctn(cqinvkttpc[ktm]);
253
254 cdedpetaphi[ktm] = new AliFemtoCorrFctnDEtaDPhi(Form("cdedp%stpcM%ipT%i", chrgs[ichg], imult,ikt),35, 35);
255 cdedpetaphi[ktm]->SetPairSelectionCut(ktpcuts[ktm]);
256 anetaphitpc[aniter]->AddCorrFctn(cdedpetaphi[ktm]);
257 }
258 }
259 Manager->AddAnalysis(anetaphitpc[aniter]);
260 }
261 }
262 }
263 }
264
265 return Manager;
266}