]>
Commit | Line | Data |
---|---|---|
9f00b65f | 1 | class LMEECutLib { |
2 | ||
3 | public: | |
4 | static enum LMMECutSet { | |
5 | kPbPb2011TPCandTOF, | |
b3a9b3e3 | 6 | kPbPb2011TPC, //TOF required, more relaxed cut on TPC |
4118e72c | 7 | kPbPb2011TPCandTOFwide, //TOF required, more relaxed cut on TPC |
9f00b65f | 8 | kPbPb2011TPCorTOF, |
9 | kpp2010TPCandTOF, | |
10 | kpp2010TPCorTOF, | |
11 | kCUTSETMAX | |
12 | }; | |
13 | ||
14 | static enum LMMECentSel { | |
15 | kPbPb2011Central, | |
16 | kPbPb2011SemiCentral, | |
17 | kPbPb2011Peripheral, | |
18 | kCENTSELMAX | |
19 | }; | |
20 | ||
21 | //char* LMEECutNames[kCUTSETMAX] = { "PbPb2011TPCandTOF","PbPb2011TPCorTOF"}; | |
22 | ||
23 | ||
24 | LMEECutLib() {} | |
25 | ||
26 | AliDielectronEventCuts* GetEventCuts(Int_t cutSet); | |
27 | AliAnalysisCuts* GetCentralityCuts(Int_t centSel); | |
28 | AliDielectronTrackRotator* GetTrackRotator(Int_t cutSet); | |
29 | AliDielectronMixingHandler* GetMixingHandler(Int_t cutSet); | |
30 | ||
31 | AliAnalysisCuts* GetPIDCutsAna(Int_t cutSet); | |
32 | AliAnalysisCuts* GetPIDCutsPre(Int_t cutSet); | |
33 | ||
4118e72c | 34 | AliAnalysisCuts* GetPairCuts2(Int_t cutSet,Bool_t tooglePC=kFALSE); |
9f00b65f | 35 | AliAnalysisCuts* GetPairCuts(Int_t cutSet); |
36 | ||
37 | AliAnalysisCuts* GetTrackCutsAna(Int_t cutSet); | |
38 | AliAnalysisCuts* GetTrackCutsPre(Int_t cutSet); | |
39 | ||
40 | ||
41 | ||
42 | ||
43 | AliDielectronEventCuts* GetEventCuts(Int_t cutSet) { | |
44 | AliDielectronEventCuts* eventCuts = 0x0; | |
45 | switch (cutSet) { | |
46 | case kPbPb2011TPCandTOF : | |
b3a9b3e3 | 47 | case kPbPb2011TPC : |
4118e72c | 48 | case kPbPb2011TPCandTOFwide : |
9f00b65f | 49 | case kPbPb2011TPCorTOF : |
50 | case kpp2010TPCandTOF : | |
51 | case kpp2010TPCorTOF : | |
52 | eventCuts=new AliDielectronEventCuts("eventCuts","Vertex Track && |vtxZ|<10 && ncontrib>0"); | |
c787ecdf | 53 | eventCuts->SetVertexType(AliDielectronEventCuts::kVtxSPD); // AOD |
840abc7f | 54 | //eventCuts->SetVertexType(AliDielectronEventCuts::kVtxTPC); // AOD |
ee00eb9d | 55 | // eventCuts->SetCentralityRange(0.0,80.0); |
9f00b65f | 56 | eventCuts->SetRequireVertex(); |
57 | eventCuts->SetMinVtxContributors(1); | |
58 | eventCuts->SetVertexZ(-10.,10.); | |
59 | break; | |
60 | default: cout << "No Event Cut defined" << endl; | |
61 | } | |
62 | return eventCuts; | |
63 | } | |
64 | ||
65 | AliAnalysisCuts* GetCentralityCuts(Int_t centSel) { | |
66 | AliDielectronVarCuts* centCuts = 0x0; | |
67 | switch (centSel) { | |
68 | case kPbPb2011Central: | |
69 | centCuts = new AliDielectronVarCuts("centCuts","CentralityPbPb2011Central"); | |
70 | centCuts->AddCut(AliDielectronVarManager::kCentrality,0.,10.); | |
71 | break; | |
72 | case kPbPb2011SemiCentral: | |
73 | centCuts = new AliDielectronVarCuts("centCuts","CentralityPbPb2011SemiCentral"); | |
74 | //Restrict to 50%, Trigger selction | |
4118e72c | 75 | centCuts->AddCut(AliDielectronVarManager::kCentrality,20.,50.); |
9f00b65f | 76 | break; |
77 | case kPbPb2011Peripheral: | |
78 | centCuts = new AliDielectronVarCuts("centCuts","CentralityPbPb2011Peripheral"); | |
79 | centCuts->AddCut(AliDielectronVarManager::kCentrality,50.,90.); | |
80 | break; | |
81 | default: cout << "No Centrality selected" << endl; | |
82 | } | |
83 | return centCuts; | |
84 | } | |
85 | ||
86 | ||
87 | AliDielectronTrackRotator* GetTrackRotator(Int_t cutSet) { | |
88 | AliDielectronTrackRotator* trackRotator = 0x0; | |
89 | switch (cutSet) { | |
90 | case kPbPb2011TPCandTOF : | |
b3a9b3e3 | 91 | case kPbPb2011TPC : |
4118e72c | 92 | case kPbPb2011TPCandTOFwide : |
9f00b65f | 93 | case kPbPb2011TPCorTOF : |
94 | case kpp2010TPCandTOF : | |
95 | case kpp2010TPCorTOF : | |
96 | trackRotator = new AliDielectronTrackRotator(); | |
97 | trackRotator->SetIterations(20); | |
98 | trackRotator->SetConeAnglePhi(TMath::Pi()/180*165); | |
99 | trackRotator->SetStartAnglePhi(TMath::Pi()); | |
100 | break; | |
101 | default: cout << "No Rotator defined" << endl; | |
102 | } | |
103 | return trackRotator; | |
104 | } | |
105 | ||
106 | ||
107 | AliDielectronMixingHandler* GetMixingHandler(Int_t cutSet) { | |
108 | AliDielectronMixingHandler* mixingHandler = 0x0; | |
109 | switch (cutSet) { | |
110 | case kPbPb2011TPCorTOF : | |
4118e72c | 111 | /* |
9f00b65f | 112 | mixingHandler = new AliDielectronMixingHandler; |
113 | mixingHandler->AddVariable(AliDielectronVarManager::kZvPrim,"-10,-5,0,5,10"); | |
114 | mixingHandler->AddVariable(AliDielectronVarManager::kCentrality,"0,5,10,20,40,80"); | |
115 | mixingHandler->SetDepth(25); | |
116 | mixingHandler->SetMixType(AliDielectronMixingHandler::kAll); | |
4118e72c | 117 | break; |
118 | */ | |
9f00b65f | 119 | case kPbPb2011TPCandTOF : |
b3a9b3e3 | 120 | case kPbPb2011TPC : |
4118e72c | 121 | case kPbPb2011TPCandTOFwide : |
9f00b65f | 122 | mixingHandler = new AliDielectronMixingHandler; |
123 | mixingHandler->AddVariable(AliDielectronVarManager::kZvPrim,"-10,-5,0,5,10"); | |
124 | mixingHandler->AddVariable(AliDielectronVarManager::kCentrality,"0,5,10,20,40,80"); | |
125 | mixingHandler->AddVariable(AliDielectronVarManager::kv0ACrpH2,"-6*(TMath::Pi()/6),-5*(TMath::Pi()/6),-4*(TMath::Pi()/6),-3*(TMath::Pi()/6),-2*(TMath::Pi()/6),-1*(TMath::Pi()/6),0,1*(TMath::Pi()/6),2*(TMath::Pi()/6),3*(TMath::Pi()/6),4*(TMath::Pi()/6),5*(TMath::Pi()/6),6*(TMath::Pi()/6)"); | |
126 | //mixingHandler->SetDepth(50); | |
4118e72c | 127 | mixingHandler->SetDepth(15); |
9f00b65f | 128 | mixingHandler->SetMixType(AliDielectronMixingHandler::kAll); |
129 | break; | |
130 | case kpp2010TPCandTOF : | |
131 | case kpp2010TPCorTOF : | |
132 | mixingHandler = new AliDielectronMixingHandler; | |
133 | mixingHandler->AddVariable(AliDielectronVarManager::kZvPrim,"-10,-5,0,5,10"); | |
134 | mixingHandler->AddVariable(AliDielectronVarManager::kNacc,"0,10000"); | |
135 | //might want to add multiplicity? | |
136 | mixingHandler->SetDepth(50); | |
137 | mixingHandler->SetMixType(AliDielectronMixingHandler::kAll); | |
138 | break; | |
139 | default: cout << "No Rotator defined" << endl; | |
140 | } | |
141 | return mixingHandler; | |
142 | } | |
143 | ||
144 | ||
145 | AliAnalysisCuts* GetPIDCutsAna(Int_t cutSet) { | |
146 | AliAnalysisCuts* anaCuts=0x0; | |
147 | ||
148 | // + [2] added for Dec2010 Cut! | |
149 | TF1 *lowerCut = new TF1("lowerCut", "[0] * TMath::Exp([1]*x) + [2]", 0, 20); | |
150 | /* until Nov2010 | |
151 | lowerCut->SetParameter(0, -2.7); | |
152 | lowerCut->SetParameter(1, -0.4357); | |
153 | */ | |
154 | /* 18.01.2011 ALiHFEpid.cxx */ | |
155 | lowerCut->SetParameter(0,-3.7); | |
156 | lowerCut->SetParameter(1,-0.8); | |
157 | lowerCut->SetParameter(2,-0.35); | |
158 | ||
159 | if (MCenabled) { //overwrite parameters | |
160 | lowerCut->SetParameter(0,-2.5); | |
161 | lowerCut->SetParameter(2,-2.2); | |
162 | } | |
163 | ||
164 | //--------------------------------------------- | |
165 | AliDielectronPID *pidTPCTOFeOnly = new AliDielectronPID("TPC-TOF","TPC-TOF"); | |
166 | pidTPCTOFeOnly->AddCut(AliDielectronPID::kTPC,AliPID::kElectron,-3,3.,0.0,100.,kFALSE); | |
167 | pidTPCTOFeOnly->AddCut(AliDielectronPID::kTOF ,AliPID::kElectron , -3. , 3. , 0.0 , 100., kFALSE ); | |
168 | ||
4118e72c | 169 | |
170 | AliDielectronPID *pidTPCandTOF = new AliDielectronPID("TPC-TOF-HFE","TPC-TOF-HFE"); | |
171 | pidTPCandTOF->AddCut(AliDielectronPID::kTPC,AliPID::kElectron,-3.,3.,0.0,100.,kFALSE); | |
172 | pidTPCandTOF->AddCut(AliDielectronPID::kTPC,AliPID::kPion,-3.,3.,0.,100.,kTRUE); | |
173 | pidTPCandTOF->AddCut(AliDielectronPID::kTOF ,AliPID::kElectron , -3. , 3. , 0.0 , 100., kFALSE ); | |
174 | ||
9f00b65f | 175 | AliDielectronPID *pidTPChardTOF = new AliDielectronPID("TPC-TOF-HFE","TPC-TOF-HFE"); |
176 | pidTPChardTOF->AddCut(AliDielectronPID::kTPC,AliPID::kElectron,lowerCut,3.,0.0,100.,kFALSE); | |
177 | pidTPChardTOF->AddCut(AliDielectronPID::kTPC,AliPID::kPion,-3,3.,0.,100.,kTRUE); | |
178 | pidTPChardTOF->AddCut(AliDielectronPID::kTPC,AliPID::kProton,-3.,3.,0.,100.,kTRUE); | |
179 | pidTPChardTOF->AddCut(AliDielectronPID::kTPC,AliPID::kKaon,-3.,3.,0.,100.,kTRUE); | |
180 | pidTPChardTOF->AddCut(AliDielectronPID::kTOF ,AliPID::kElectron , -3. , 3. , 0.0 , 100., kFALSE ); | |
181 | //___________________________________________ | |
182 | AliDielectronPID *pidTT = new AliDielectronPID("TPC-TOF","TPC-TOF"); | |
183 | pidTT->AddCut(AliDielectronPID::kTPC,AliPID::kElectron,-1.5,3.,0.2,0.4,kFALSE); | |
184 | pidTT->AddCut(AliDielectronPID::kTPC,AliPID::kElectron,-3,3.,0.4,100.,kFALSE); | |
4118e72c | 185 | pidTT->AddCut(AliDielectronPID::kTOF ,AliPID::kElectron , -3. , 3. , 0.2 , 100., kFALSE ); |
9f00b65f | 186 | |
187 | pidTT->AddCut(AliDielectronPID::kTPC,AliPID::kPion,-3,3.,0.,100.,kTRUE); | |
188 | pidTT->AddCut(AliDielectronPID::kTPC,AliPID::kProton,-3.,3.,0.,100.,kTRUE); | |
189 | pidTT->AddCut(AliDielectronPID::kTPC,AliPID::kKaon,-3.,3.,0.,100.,kTRUE); | |
190 | //___________________________________________ | |
191 | AliDielectronVarCuts *pidTPCsignal = new AliDielectronVarCuts("pidTPCsignal","cut on the TPC signal"); | |
4118e72c | 192 | if (MCenabled) { |
193 | pidTPCsignal->AddCut(AliDielectronVarManager::kTPCsignal,65.,85.); | |
194 | } | |
195 | else { | |
9f00b65f | 196 | pidTPCsignal->AddCut(AliDielectronVarManager::kTPCsignal,75.,90.); |
4118e72c | 197 | } |
9f00b65f | 198 | //___________________________________________ |
199 | ||
f88c2b26 | 200 | AliDielectronVarCuts *pidTPCsignalWide = new AliDielectronVarCuts("pidTPCsignalWide","cut on the TPC signal"); |
201 | pidTPCsignalWide->AddCut(AliDielectronVarManager::kTPCsignal,70.,90.); | |
4118e72c | 202 | |
203 | ||
9f00b65f | 204 | AliDielectronVarCuts *pTPC = new AliDielectronVarCuts("P>.4","P>.4"); |
4118e72c | 205 | pTPC->AddCut(AliDielectronVarManager::kPt,.4,5.); |
9f00b65f | 206 | |
207 | AliDielectronVarCuts *pMin = new AliDielectronVarCuts("P>.2","P>.2"); | |
4118e72c | 208 | pMin->AddCut(AliDielectronVarManager::kPt,.2,5.); |
9f00b65f | 209 | |
210 | switch (cutSet) { | |
211 | case kPbPb2011TPCandTOF : | |
212 | AliDielectronCutGroup* cgSecondTrackFilterPIDTPC1 = new AliDielectronCutGroup("cgPIDTPC1","cgPIDTPC1",AliDielectronCutGroup::kCompAND); | |
213 | cgSecondTrackFilterPIDTPC1->AddCut(pTPC); | |
214 | //cgSecondTrackFilterPIDTPC1->AddCut(pidTPChardTOF); | |
215 | cgSecondTrackFilterPIDTPC1->AddCut(pidTPCTOFeOnly); | |
216 | cgSecondTrackFilterPIDTPC1->AddCut(pidTPCsignal); | |
9f00b65f | 217 | anaCuts = cgSecondTrackFilterPIDTPC1; |
218 | break; | |
b3a9b3e3 | 219 | case kPbPb2011TPC : |
220 | AliDielectronCutGroup* cgSecondTrackFilterPIDTPC1 = new AliDielectronCutGroup("cgPIDTPC1","cgPIDTPC1",AliDielectronCutGroup::kCompAND); | |
221 | cgSecondTrackFilterPIDTPC1->AddCut(pTPC); | |
222 | cgSecondTrackFilterPIDTPC1->AddCut(pidTPCsignalWide); | |
b3a9b3e3 | 223 | anaCuts = cgSecondTrackFilterPIDTPC1; |
224 | break; | |
225 | ||
4118e72c | 226 | case kPbPb2011TPCandTOFwide : |
227 | AliDielectronCutGroup* cgSecondTrackFilterPIDTPC1 = new AliDielectronCutGroup("cgPIDTPC1","cgPIDTPC1",AliDielectronCutGroup::kCompAND); | |
228 | cgSecondTrackFilterPIDTPC1->AddCut(pTPC); | |
229 | cgSecondTrackFilterPIDTPC1->AddCut(pidTPCandTOF); | |
230 | cgSecondTrackFilterPIDTPC1->AddCut(pidTPCsignalWide); | |
4118e72c | 231 | anaCuts = cgSecondTrackFilterPIDTPC1; |
232 | break; | |
233 | ||
9f00b65f | 234 | case kPbPb2011TPCorTOF : |
235 | AliDielectronCutGroup* cgSecondTrackFilterPIDTPC2 = new AliDielectronCutGroup("cgPIDTPC2","cgPIDTPC2",AliDielectronCutGroup::kCompAND); | |
236 | cgSecondTrackFilterPIDTPC2->AddCut(pMin); | |
237 | cgSecondTrackFilterPIDTPC2->AddCut(pidTT); | |
238 | cgSecondTrackFilterPIDTPC2->AddCut(pidTPCsignal); | |
9f00b65f | 239 | anaCuts = cgSecondTrackFilterPIDTPC2; |
240 | break; | |
241 | case kpp2010TPCandTOF : | |
242 | AliDielectronCutGroup* cgSecondTrackFilterPIDTPC = new AliDielectronCutGroup("cgPIDTPC","cgPIDTPC",AliDielectronCutGroup::kCompAND); | |
243 | cgSecondTrackFilterPIDTPC->AddCut(pTPC); | |
244 | //cgSecondTrackFilterPIDTPC->AddCut(pidTPChardTOF); | |
245 | cgSecondTrackFilterPIDTPC->AddCut(pidTPCTOFeOnly); | |
246 | anaCuts = cgSecondTrackFilterPIDTPC; | |
247 | break; | |
248 | case kpp2010TPCorTOF : | |
249 | AliDielectronCutGroup* cgSecondTrackFilterPIDTPC = new AliDielectronCutGroup("cgPIDTPC","cgPIDTPC",AliDielectronCutGroup::kCompAND); | |
250 | cgSecondTrackFilterPIDTPC->AddCut(pMin); | |
251 | cgSecondTrackFilterPIDTPC->AddCut(pidTT); | |
252 | anaCuts = cgSecondTrackFilterPIDTPC; | |
253 | break; | |
254 | default: cout << "No Analysis PID Cut defined " << endl; | |
255 | } | |
256 | return anaCuts; | |
257 | } | |
258 | ||
259 | AliAnalysisCuts* GetPIDCutsPre(Int_t cutSet) { | |
260 | AliAnalysisCuts* anaCuts=0x0; | |
261 | switch (cutSet) { | |
262 | case kPbPb2011TPCandTOF : | |
b3a9b3e3 | 263 | case kPbPb2011TPC : |
4118e72c | 264 | case kPbPb2011TPCandTOFwide : |
9f00b65f | 265 | case kPbPb2011TPCorTOF : |
266 | case kpp2010TPCandTOF : | |
267 | case kpp2010TPCorTOF : | |
268 | AliDielectronCutGroup* cgSecondTrackFilterPIDTPC = new AliDielectronCutGroup("cgPIDTPC","cgPIDTPC",AliDielectronCutGroup::kCompAND); | |
269 | AliDielectronCutGroup* cgITSTPC = new AliDielectronCutGroup("cgITSTPC","cgITSTPC",AliDielectronCutGroup::kCompAND); | |
270 | AliDielectronPID *pidITSTPC = new AliDielectronPID("TPCpre","TPCpre"); | |
271 | pidITSTPC->AddCut(AliDielectronPID::kTPC,AliPID::kElectron,-3.,3.); | |
272 | cgITSTPC->AddCut(pidITSTPC); | |
f88c2b26 | 273 | |
9f00b65f | 274 | |
275 | AliDielectronCutGroup* cgITSSA = new AliDielectronCutGroup("cgITSSA","cgITSSA",AliDielectronCutGroup::kCompAND); | |
276 | AliDielectronPID *pidITSSA = new AliDielectronPID("pidITSSA","pidITSSA"); | |
277 | pidITSSA->AddCut(AliDielectronPID::kITS,AliPID::kElectron,-3.,3.); | |
278 | cgITSSA->AddCut(pidITSSA); | |
279 | // cgITSSA->AddCut(GetTrackCutsPre(cutSet)); | |
280 | ||
281 | AliDielectronCutGroup* cgInitialTrackFilter = new AliDielectronCutGroup("cgInitialTrackFilter","cgInitialTrackFilter",AliDielectronCutGroup::kCompOR); | |
282 | cgInitialTrackFilter->AddCut(cgITSTPC); | |
283 | cgInitialTrackFilter->AddCut(cgITSSA); | |
284 | anaCuts = cgInitialTrackFilter; | |
285 | break; | |
286 | default: cout << "No Pre-PID Cut defined " << endl; | |
287 | } | |
288 | return anaCuts; | |
289 | } | |
290 | ||
291 | ||
4118e72c | 292 | |
293 | AliAnalysisCuts* GetPairCuts2(Int_t cutSet, Bool_t togglePC /*=kFALSE*/) { | |
294 | AliAnalysisCuts* pairCuts=0x0; | |
295 | switch (cutSet) { | |
296 | case kPbPb2011TPCorTOF : | |
297 | case kpp2010TPCandTOF : | |
298 | AliDielectronVarCuts* pairCutsV= new AliDielectronVarCuts("InvMass","InvMass > 150 MeV"); | |
299 | pairCutsV->AddCut(AliDielectronVarManager::kM,0.15,100.,kTRUE); | |
300 | pairCuts = pairCutsV; | |
301 | break; | |
302 | case kPbPb2011TPCandTOF : | |
b3a9b3e3 | 303 | case kPbPb2011TPC : |
4118e72c | 304 | case kPbPb2011TPCandTOFwide : |
305 | case kpp2010TPCorTOF : | |
306 | if (!togglePC) { | |
307 | ||
308 | AliDielectronCutGroup* pairCutsCG2 =new AliDielectronCutGroup("pairCutsCG2","pairCutsCG2",AliDielectronCutGroup::kCompOR); | |
309 | AliDielectronCutGroup* pairCutsCG =new AliDielectronCutGroup("pairCutsCG","pairCutsCG",AliDielectronCutGroup::kCompAND); | |
310 | pairCutsPhiv =new AliDielectronVarCuts("Phiv Cuts","Phiv<2.0rad"); | |
311 | pairCutsPhiv->AddCut(AliDielectronVarManager::kPhivPair, 0.0, 2.0); | |
312 | pairCutsInvM =new AliDielectronVarCuts("InvM Cuts","InvM<0.3"); | |
313 | pairCutsInvM->AddCut(AliDielectronVarManager::kM, 0.0, 0.3); | |
314 | pairCutsInvMgood =new AliDielectronVarCuts("InvM Cuts good","InvM>0.3"); | |
315 | pairCutsInvMgood->AddCut(AliDielectronVarManager::kM, 0.3, 99999.); | |
316 | pairCutsCG->AddCut(pairCutsPhiv); | |
317 | pairCutsCG->AddCut(pairCutsInvM); | |
318 | pairCutsCG2->AddCut(pairCutsInvMgood); | |
319 | pairCutsCG2->AddCut(pairCutsCG); | |
320 | pairCuts = pairCutsCG2; | |
321 | } | |
322 | else { | |
323 | AliDielectronVarCuts* pairCutsV =new AliDielectronVarCuts("OpeningAngle","Opening angle > .035rad"); | |
324 | pairCutsV->AddCut(AliDielectronVarManager::kOpeningAngle, 0. , 0.035,kTRUE); | |
325 | pairCuts = pairCutsV; | |
326 | } | |
327 | break; | |
328 | default: cout << "No Pair Cuts defined " << endl; | |
329 | } | |
330 | return pairCuts; | |
331 | } | |
332 | ||
333 | ||
9f00b65f | 334 | AliAnalysisCuts* GetPairCuts(Int_t cutSet) { |
335 | AliDielectronVarCuts* pairCuts=0x0; | |
336 | switch (cutSet) { | |
337 | case kPbPb2011TPCorTOF : | |
338 | case kpp2010TPCandTOF : | |
339 | pairCuts = new AliDielectronVarCuts("InvMass","InvMass > 150 MeV"); | |
340 | pairCuts->AddCut(AliDielectronVarManager::kM,0.15,100.,kTRUE); | |
341 | break; | |
342 | case kPbPb2011TPCandTOF : | |
b3a9b3e3 | 343 | case kPbPb2011TPC : |
4118e72c | 344 | case kPbPb2011TPCandTOFwide : |
9f00b65f | 345 | case kpp2010TPCorTOF : |
346 | pairCuts =new AliDielectronVarCuts("OpeningAngle","Opening angle > .035rad"); | |
347 | pairCuts->AddCut(AliDielectronVarManager::kOpeningAngle, 0. , 0.035); | |
348 | break; | |
349 | default: cout << "No Pair Cuts defined " << endl; | |
350 | } | |
351 | return pairCuts; | |
352 | } | |
353 | ||
c787ecdf | 354 | AliAnalysisCuts* GetESDTrackCutsAna(Int_t cutSet) { |
355 | AliESDtrackCuts* esdTrackCutsH = 0x0; | |
356 | switch (cutSet) { | |
357 | case kPbPb2011TPCandTOF : | |
358 | case kPbPb2011TPC : | |
359 | case kPbPb2011TPCandTOFwide : | |
360 | case kPbPb2011TPCorTOF : | |
361 | case kpp2010TPCandTOF : | |
362 | case kpp2010TPCorTOF : | |
363 | // standard cuts with very loose DCA: Bit4 (Int: 16), AOD095&115 | |
364 | ||
365 | esdTrackCutsH = AliESDtrackCuts::GetStandardITSTPCTrackCuts2011(kFALSE); | |
366 | esdTrackCutsH->SetMaxDCAToVertexXY(2.4); | |
367 | esdTrackCutsH->SetMaxDCAToVertexZ(3.2); | |
368 | esdTrackCutsH->SetDCAToVertex2D(kTRUE); | |
369 | /* | |
370 | ||
371 | esdTrackCutsH = new AliESDtrackCuts(); | |
372 | esdTrackCutsH->SetAcceptKinkDaughters(kFALSE); | |
373 | //Not done so far via dielectron cuts: | |
374 | */ | |
375 | /* | |
376 | esdTrackCuts->SetDCAToVertex2D(kFALSE); | |
377 | esdTrackCuts->SetRequireSigmaToVertex(kFALSE); | |
378 | esdTrackCuts->SetMaxChi2PerClusterITS(36); | |
379 | */ | |
380 | ||
381 | break; | |
382 | default: cout << "No Analysis Track Cut defined " << endl; | |
383 | } | |
384 | return esdTrackCutsH; | |
385 | } | |
386 | ||
9f00b65f | 387 | AliAnalysisCuts* GetTrackCutsAna(Int_t cutSet) { |
388 | AliDielectronCutGroup* trackCuts=0x0; | |
389 | switch (cutSet) { | |
390 | case kPbPb2011TPCandTOF : | |
b3a9b3e3 | 391 | case kPbPb2011TPC : |
4118e72c | 392 | case kPbPb2011TPCandTOFwide : |
9f00b65f | 393 | case kPbPb2011TPCorTOF : |
394 | case kpp2010TPCandTOF : | |
395 | case kpp2010TPCorTOF : | |
396 | trackCuts = new AliDielectronCutGroup("cgPIDTPC1","cgPIDTPC1",AliDielectronCutGroup::kCompAND); | |
5520ccf0 | 397 | |
c787ecdf | 398 | trackCutsAOD =new AliDielectronVarCuts("trackCutsAOD","trackCutsAOD"); |
399 | trackCutsAOD->AddCut(AliDielectronVarManager::kPt,0.05,6.); | |
9f00b65f | 400 | trackCutsAOD->AddCut(AliDielectronVarManager::kEta,-0.84,0.84); |
c787ecdf | 401 | //DCA Cut |
9f00b65f | 402 | trackCutsAOD->AddCut(AliDielectronVarManager::kImpactParXY, -1.0, 1.0); |
403 | trackCutsAOD->AddCut(AliDielectronVarManager::kImpactParZ, -3.0, 3.0); | |
ee00eb9d | 404 | trackCutsAOD->AddCut(AliDielectronVarManager::kNclsITS, 3.0, 100.0); |
f88c2b26 | 405 | trackCutsAOD->AddCut(AliDielectronVarManager::kTPCchi2Cl, 0.0, 3.5); |
9f00b65f | 406 | AliDielectronTrackCuts *trackCutsDiel = new AliDielectronTrackCuts("trackCutsDiel","trackCutsDiel"); |
c787ecdf | 407 | trackCutsDiel->SetAODFilterBit(16); //does nothing for ESDs |
9f00b65f | 408 | trackCutsDiel->SetRequireITSRefit(kTRUE); |
409 | trackCutsDiel->SetRequireTPCRefit(kTRUE); | |
c787ecdf | 410 | |
0332d10a | 411 | trackCutsDiel->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kFirst); |
c787ecdf | 412 | // trackCutsAOD->AddCut(AliDielectronVarManager::kNclsTPC, 80., 140.0); |
b3a9b3e3 | 413 | trackCutsAOD->AddCut(AliDielectronVarManager::kNFclsTPCr, 110.0, 160.0); |
c787ecdf | 414 | trackCutsAOD->AddCut(AliDielectronVarManager::kNFclsTPCfCross, 0.8, 1.0);//tighter than before, |
415 | //due to AOD production | |
9f00b65f | 416 | trackCuts->AddCut(trackCutsDiel); |
417 | trackCuts->AddCut(trackCutsAOD); | |
9f00b65f | 418 | break; |
419 | default: cout << "No Analysis Track Cut defined " << endl; | |
420 | } | |
421 | return trackCuts; | |
422 | } | |
423 | ||
424 | AliAnalysisCuts* GetTrackCutsPre(Int_t cutSet) { | |
425 | AliESDtrackCuts* trackCuts=0x0; | |
426 | switch (cutSet) { | |
427 | case kPbPb2011TPCandTOF : | |
428 | case kPbPb2011TPCorTOF : | |
429 | case kpp2010TPCandTOF : | |
430 | case kpp2010TPCorTOF : | |
431 | /* | |
deb910b5 | 432 | trackCuts = new AliESDtrackCuts(); |
433 | trackCuts->SetDCAToVertex2D(kTRUE); | |
434 | trackCuts->SetMaxDCAToVertexZ(3.0); | |
435 | trackCuts->SetMaxDCAToVertexXY(1.0); | |
9f00b65f | 436 | trackCuts->SetEtaRange( -0.84 , 0.84 ); |
437 | trackCuts->SetPtRange( 0.05 , 0.5); | |
438 | trackCuts->SetAcceptKinkDaughters(kFALSE); | |
439 | trackCuts->SetRequireITSRefit(kTRUE); | |
440 | trackCuts->SetRequireITSStandAlone(kTRUE); | |
441 | trackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kFirst); | |
442 | trackCuts->SetMinNClustersITS(3); //PhotonGroup-Dalitz: 2?! | |
443 | */ | |
444 | cout << "No Pre-Track Cut defined for AODs at the moment " << endl; | |
445 | break; | |
446 | default: cout << "No Pre-Track Cut defined " << endl; | |
447 | } | |
448 | return trackCuts; | |
449 | } | |
450 | ||
451 | }; |