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