1 /*************************************************************************
2 * Copyright(c) 1998-2008, ALICE Experiment at CERN, All rights reserved. *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
7 * Permission to use, copy, modify and distribute this software and its *
8 * documentation strictly for non-commercial purposes is hereby granted *
9 * without fee, provided that the above copyright notice appears in all *
10 * copies and that both the copyright notice and this permission notice *
11 * appear in the supporting documentation. The authors make no claims *
12 * about the suitability of this software for any purpose. It is *
13 * provided "as is" without express or implied warranty. *
14 **************************************************************************/
16 ///////////////////////////////////////////////////////////////////////////
17 // Analysis task to extract global variables to the tree //
18 ///////////////////////////////////////////////////////////////////////////
25 #include <TObjArray.h>
26 #include "AliAnalysisManager.h"
27 #include "AliMultiplicity.h"
28 #include "AliESDEvent.h"
29 #include "AliESDInputHandler.h"
30 #include "AliESDVZERO.h"
31 #include "AliESDZDC.h"
32 #include "AliMCEventHandler.h"
33 #include "AliMCEvent.h"
34 #include "AliMCParticle.h"
36 #include "AliGenEventHeader.h"
38 #include "AliPhysicsSelection.h"
39 #include "AliESDCentrality.h"
40 #include "AliESDtrackCuts.h"
41 #include "AliTaskGlobVar.h"
42 #include "AliGenEventHeader.h"
43 #include "AliGenHijingEventHeader.h"
44 #include "AliGenDPMjetEventHeader.h"
45 #include "AliTriggerAnalysis.h"
48 ClassImp(AliTaskGlobVar)
51 //________________________________________________________________________
52 AliTaskGlobVar::AliTaskGlobVar(const char *name)
53 : AliAnalysisTaskSE(name),
63 DefineOutput(1, TList::Class());
67 //________________________________________________________________________
68 AliTaskGlobVar::~AliTaskGlobVar()
71 // histograms are in the output list and deleted when the output
72 // list is deleted by the TSelector dtor
73 if (fOutput && !AliAnalysisManager::GetAnalysisManager()->IsProofMode()) { //RRR
74 printf("Deleteing output\n");
80 //________________________________________________________________________
81 void AliTaskGlobVar::UserCreateOutputObjects()
84 fOutput = new TList();
87 fOutTree = new TTree("globTree","globTree");
88 fOutTree->Branch("g",&fGlobVars,"runID/I:timeStamp/i:zdcNA/F:zdcPA/F:zdcNC/F:zdcPC/F:zem1/F:zem2/F:zvSPD/F:zvTPC/F:chunk/S:flags/S"
89 ":spd1/S:spd2/S:ncontSPDV/S:ncontTPCV/S:nTrTPC/S:nTrTPCITS/S:nTracklets/S:v0A/S:v0C/S:v0Corr/S", 16777216);
92 fOutTree->Branch("gmc",&fGlobVars.mcZV,"mcZV/F:mcdNdEta/S:mcNPart/S:mcNBColl/S", 16777216);
94 fOutput->Add(fOutTree);
96 // fTrackCuts = AliESDtrackCuts::GetStandardTPCOnlyTrackCuts();
97 fTrackCuts = CreatedNdPtTrackCuts(23);
98 fTrackCuts->SetEtaRange(-0.8,0.8);
99 fTrackCuts1 = CreatedNdPtTrackCuts(72);
100 fTrackCuts1->SetEtaRange(-0.8,0.8);
102 PostData(1, fOutput);
103 printf("CreatingXXX\n");
107 //________________________________________________________________________
108 void AliTaskGlobVar::UserExec(Option_t *)
112 AliAnalysisManager* anMan = AliAnalysisManager::GetAnalysisManager();
113 AliESDInputHandler *hand = (AliESDInputHandler*)anMan->GetInputEventHandler();
114 if (!hand) { printf("No ESD handler\n"); return; }
115 AliESDEvent *esd = hand->GetEvent();
116 if (!esd) { printf("No AliESDEvent\n"); return; }
118 if (!fUseMC && !ZDCTimeTrigger(esd)) return;
120 const AliESDVertex* vtxESD = esd->GetPrimaryVertexSPD();
121 Bool_t vtxOK = kTRUE;
122 if (vtxESD->GetNContributors()<1) vtxOK = kFALSE; //return;
123 if (vtxESD->GetDispersion()>0.04) vtxOK = kFALSE; //return;
124 if (vtxESD->GetZRes()>0.25) vtxOK = kFALSE; //return;
125 const AliMultiplicity* multESD = esd->GetMultiplicity();
126 const AliESDVertex* vtxESDTPC = esd->GetPrimaryVertexTPC();
127 // if (vtxESDTPC->GetNContributors()<1) return;
128 // if (vtxESDTPC->GetNContributors()<(-10.+0.25*multESD->GetNumberOfITSClusters(0))) return;
130 fGlobVars.runID = esd->GetRunNumber();
132 rid += fGlobVars.runID;
133 TString flname = hand->GetTree()->GetCurrentFile()->GetName();
136 while ( (id=flname.Index(rid))>=0 ) flname = flname.Data()+id+rid.Length();
137 id = flname.First('.');
139 flname = flname.Data() + id+1;
140 fGlobVars.chunk = (Short_t)flname.Atoi();
142 // printf("%d %s\n",fGlobVars.chunk,hand->GetTree()->GetCurrentFile()->GetName());
144 fGlobVars.timeStamp = esd->GetTimeStamp();
145 fGlobVars.timeStamp = esd->GetTimeStamp();
146 fGlobVars.zvSPD = vtxESD->GetZ();
147 fGlobVars.zvTPC = vtxESDTPC->GetZ();
148 fGlobVars.ncontSPDV = (Short_t)vtxESD->GetNContributors();
149 fGlobVars.ncontTPCV = (Short_t)vtxESDTPC->GetNContributors();
150 // fGlobVars.nTrTPC = fTrackCuts ? (Short_t)fTrackCuts->GetReferenceMultiplicity(esd,kTRUE):-1;
151 fGlobVars.nTrTPC = fTrackCuts ? (Short_t)fTrackCuts->CountAcceptedTracks(esd):-1;
152 fGlobVars.nTrTPCITS = fTrackCuts1 ? (Short_t)fTrackCuts1->CountAcceptedTracks(esd):-1;
153 fGlobVars.nTracklets = multESD->GetNumberOfTracklets();
155 AliESDVZERO* esdV0 = esd->GetVZEROData();
157 fGlobVars.v0A = (Short_t)esdV0->GetMTotV0A();
158 fGlobVars.v0C = (Short_t)esdV0->GetMTotV0C();
160 else fGlobVars.v0A = fGlobVars.v0C = 0;
162 fGlobVars.spd1 = (Short_t)multESD->GetNumberOfITSClusters(0);
163 fGlobVars.spd2 = (Short_t)multESD->GetNumberOfITSClusters(1);
165 float v0Corr,v0CorrR;
166 // v0Corr = GetCorrV0(esd,v0CorrR); MF: Deprecated: V0corr isnot needed any more
167 v0corr = esdV0->GetMTotV0A() + esdV0->GetMTotV0C();
168 fGlobVars.v0Corr = (Short_t)v0Corr;
169 // fGlobVars.v0CorrResc = (Short_t)v0CorrR;
171 //---------------------------------------------
172 AliESDZDC *esdZDC = esd->GetESDZDC();
173 // --- ZDC offline trigger ---
174 // Returns if ZDC triggered, based on TDC information
175 Bool_t tdc[32] = {kFALSE};
176 for(Int_t itdc=0; itdc<32; itdc++){
177 for(Int_t i=0; i<4; i++){
178 if (0.025*esdZDC->GetZDCTDCData(itdc, i) != 0){
184 if ( tdc[12] ) fGlobVars.flags |= GloVars_t::kTDCNA; // Bool_t zdcNA = tdc[12];
185 if ( tdc[10] ) fGlobVars.flags |= GloVars_t::kTDCNC; // Bool_t zdcNC = tdc[10];
186 if ( tdc[13] ) fGlobVars.flags |= GloVars_t::kTDCPA; // Bool_t zdcPA = tdc[13];
187 if ( tdc[11] ) fGlobVars.flags |= GloVars_t::kTDCPC; // Bool_t zdcPC = tdc[11];
188 if ( vtxOK ) fGlobVars.flags |= GloVars_t::kSPDVTXOK;
190 fGlobVars.zdcNC = (Float_t) (esdZDC->GetZDCN1Energy()) /8.;
191 fGlobVars.zdcPC = (Float_t) (esdZDC->GetZDCP1Energy()) /8.;
192 fGlobVars.zdcNA = (Float_t) (esdZDC->GetZDCN2Energy()) /8.;
193 fGlobVars.zdcPA = (Float_t) (esdZDC->GetZDCP2Energy()) /8.;
194 fGlobVars.zem1 = (Float_t) (esdZDC->GetZDCEMEnergy(0)) /8.;
195 fGlobVars.zem2 = (Float_t) (esdZDC->GetZDCEMEnergy(1)) /8.;
196 //-----------------------------------------------
198 // ---------------------- MC ONLY -------------------------------
199 AliMCEventHandler* eventHandler = (AliMCEventHandler*)anMan->GetMCtruthEventHandler();
201 AliMCEvent* mcEvent=0;
202 fGlobVars.mcdNdEta = 0;
203 fGlobVars.mcNPart = 0;
204 fGlobVars.mcNBColl = 0;
205 if (fUseMC && eventHandler && (mcEvent=eventHandler->MCEvent()) && (stack=mcEvent->Stack())) {
206 int ntr = stack->GetNtrack();
207 for (int itr=ntr;itr--;) {
208 if (!stack->IsPhysicalPrimary(itr)) continue;
209 AliMCParticle *part = (AliMCParticle*)mcEvent->GetTrack(itr);
210 if (!part || !part->Charge()) continue;
211 Float_t eta = part->Eta();
212 if (TMath::Abs(eta)>0.5) continue;
213 fGlobVars.mcdNdEta++;
216 AliGenEventHeader* mcGenH = mcEvent->GenEventHeader();
217 if (mcGenH->InheritsFrom(AliGenHijingEventHeader::Class())) {
218 AliGenHijingEventHeader* hHijing = (AliGenHijingEventHeader*)mcGenH;
219 fGlobVars.mcNPart = (hHijing->ProjectileParticipants()+hHijing->TargetParticipants())/2.;
220 fGlobVars.mcNBColl = hHijing->NN()+hHijing->NNw()+hHijing->NwN()+hHijing->NwNw();
222 else if (mcGenH->InheritsFrom(AliGenDPMjetEventHeader::Class())) {
223 AliGenDPMjetEventHeader* hDpmJet = (AliGenDPMjetEventHeader*)mcGenH;
224 fGlobVars.mcNPart = (hDpmJet->ProjectileParticipants()+hDpmJet->TargetParticipants())/2.;
225 fGlobVars.mcNBColl = hDpmJet->NN()+hDpmJet->NNw()+hDpmJet->NwN()+hDpmJet->NwNw();
227 else {} // unknown generator
230 mcGenH->PrimaryVertex(vtxMC);
231 fGlobVars.mcZV = vtxMC[2];
237 //________________________________________________________________________
238 void AliTaskGlobVar::Terminate(Option_t *)
241 Printf("Terminating...");
242 // AliAnalysisTaskSE::Terminate();
246 //________________________________________________________________________
247 Float_t AliTaskGlobVar::GetCorrV0(const AliESDEvent* esd, float &v0CorrResc) const
249 // correct V0 non-linearity, prepare a version rescaled to SPD2 corr
250 const Double_t par0[64] = { 6.71e-02 , 6.86e-02 , 7.06e-02 , 6.32e-02 ,
251 5.91e-02 , 6.07e-02 , 5.78e-02 , 5.73e-02 , 5.91e-02 , 6.22e-02 ,
252 5.90e-02 , 6.11e-02 , 5.55e-02 , 5.29e-02 , 5.19e-02 , 5.56e-02 ,
253 6.25e-02 , 7.03e-02 , 5.64e-02 , 5.81e-02 , 4.57e-02 , 5.30e-02 ,
254 5.13e-02 , 6.43e-02 , 6.27e-02 , 6.48e-02 , 6.07e-02 , 1.01e-01 ,
255 6.68e-02 , 7.16e-02 , 6.36e-02 , 5.95e-02 , 2.52e-02 , 2.82e-02 ,
256 2.56e-02 , 2.86e-02 , 2.82e-02 , 2.10e-02 , 2.13e-02 , 2.32e-02 ,
257 2.75e-02 , 4.34e-02 , 3.78e-02 , 4.52e-02 , 4.11e-02 , 3.89e-02 ,
258 4.10e-02 , 3.73e-02 , 4.51e-02 , 5.07e-02 , 5.42e-02 , 4.74e-02 ,
259 4.33e-02 , 4.44e-02 , 4.64e-02 , 3.01e-02 , 6.38e-02 , 5.26e-02 ,
260 4.99e-02 , 5.26e-02 , 5.47e-02 , 3.84e-02 , 5.00e-02 , 5.20e-02 };
261 const Double_t par1[64] = { -6.68e-05 , -7.78e-05 , -6.88e-05 , -5.92e-05 ,
262 -2.43e-05 , -3.54e-05 , -2.91e-05 , -1.99e-05 , -1.40e-05 , -4.01e-05 ,
263 -2.29e-05 , -3.68e-05 , -2.53e-05 , -2.44e-06 , -9.22e-06 , -1.51e-05 ,
264 -2.80e-05 , -2.34e-05 , -1.72e-05 , -1.81e-05 , -1.29e-05 , -2.65e-05 ,
265 -1.61e-05 , -2.86e-05 , -1.74e-05 , -4.23e-05 , -3.41e-05 , -1.05e-04 ,
266 -2.76e-05 , -4.71e-05 , -3.06e-05 , -2.32e-05 , -1.55e-06 , 2.15e-05 ,
267 1.40e-05 , 2.16e-05 , 1.21e-05 , 3.05e-06 , 1.67e-05 , -3.84e-06 ,
268 3.09e-06 , 1.50e-05 , 3.47e-06 , 4.87e-06 , -3.71e-07 , -1.75e-06 ,
269 -1.80e-06 , 9.99e-06 , -6.46e-06 , -4.91e-06 , 1.33e-05 , -2.52e-07 ,
270 -3.85e-06 , 4.94e-06 , -2.48e-07 , -1.20e-05 , 2.07e-06 , 6.12e-06 ,
271 -1.18e-06 , 4.54e-06 , -1.54e-05 , -1.25e-05 , 1.46e-06 , -6.67e-06 };
272 const Double_t par2[64] = { 1.29e-08 , 1.51e-08 , 1.43e-08 , 1.11e-08 ,
273 5.04e-09 , 6.99e-09 , 5.58e-09 , 4.15e-09 , 4.00e-09 , 8.22e-09 ,
274 4.97e-09 , 7.66e-09 , 4.91e-09 , 1.10e-09 , 2.64e-09 , 3.64e-09 ,
275 5.76e-09 , 5.46e-09 , 3.38e-09 , 3.47e-09 , 2.43e-09 , 4.13e-09 ,
276 2.80e-09 , 5.80e-09 , 3.86e-09 , 7.46e-09 , 5.98e-09 , 2.58e-08 ,
277 5.50e-09 , 8.72e-09 , 5.23e-09 , 4.37e-09 , 2.33e-09 , -6.01e-10 ,
278 3.99e-11 , -2.02e-10 , 7.67e-10 , 2.03e-09 , 1.17e-10 , 2.56e-09 ,
279 1.16e-09 , -4.75e-10 , 1.28e-09 , 1.23e-09 , 1.62e-09 , 1.61e-09 ,
280 1.93e-09 , 2.97e-10 , 2.21e-09 , 2.16e-09 , 5.22e-10 , 1.03e-09 ,
281 1.56e-09 , 5.00e-10 , 1.01e-09 , 2.93e-09 , 1.05e-09 , 9.96e-11 ,
282 1.21e-09 , 7.45e-10 , 3.07e-09 , 2.31e-09 , 6.70e-10 , 1.89e-09 };
284 Float_t multCorr = 0;
285 Float_t multCorr2 = 0;
286 Float_t multChCorr[64];
287 AliESDVZERO* esdV0 = esd->GetVZEROData();
288 for(Int_t i = 0; i < 64; ++i) {
289 Double_t b = (esdV0->GetMultiplicity(i)*par1[i]-par0[i]);
290 Double_t s = (b*b-4.*par2[i]*esdV0->GetMultiplicity(i)*esdV0->GetMultiplicity(i));
293 printf("FPE %d %.2f %.2f %.2e\n",i,esdV0->GetMultiplicity(i),b,(b*b-4.*par2[i]*esdV0->GetMultiplicity(i)*esdV0->GetMultiplicity(i)));
297 n = (-b + TMath::Sqrt(s));
299 multChCorr[i] = 2.*esdV0->GetMultiplicity(i)/n*par0[i];
300 multCorr += multChCorr[i];
301 multCorr2 += (multChCorr[i]/par0[i]/64.);
303 v0CorrResc = multCorr2;
307 //_________________________________________________________________
308 Bool_t AliTaskGlobVar::ZDCTimeTrigger(const AliESDEvent *aEsd) const
310 // This method implements a selection
311 // based on the timing in both sides of zdcN
312 // It can be used in order to eliminate
313 // parasitic collisions
314 Bool_t zdcAccept = kFALSE;
316 AliESDZDC *esdZDC = aEsd->GetESDZDC();
318 const Float_t refSum = -568.5;
319 const Float_t refDelta = -2.1;
320 const Float_t sigmaSum = 3.25;
321 const Float_t sigmaDelta = 2.25;
322 for(Int_t i = 0; i < 4; ++i) {
323 if (esdZDC->GetZDCTDCData(10,i) != 0) {
324 Float_t tdcC = 0.025*(esdZDC->GetZDCTDCData(10,i)-esdZDC->GetZDCTDCData(14,i));
325 for(Int_t j = 0; j < 4; ++j) {
326 if (esdZDC->GetZDCTDCData(12,j) != 0) {
327 Float_t tdcA = 0.025*(esdZDC->GetZDCTDCData(12,j)-esdZDC->GetZDCTDCData(14,j));
328 if (((tdcC-tdcA-refDelta)*(tdcC-tdcA-refDelta)/(sigmaDelta*sigmaDelta) +
329 (tdcC+tdcA-refSum)*(tdcC+tdcA-refSum)/(sigmaSum*sigmaSum))< 1.0)
339 AliESDtrackCuts* AliTaskGlobVar::CreatedNdPtTrackCuts(Int_t cutMode, Bool_t fieldOn)
341 // copy of PWG0/dNdPt/macros/CreatedNdPtTrackCuts.C
343 AliESDtrackCuts* esdTrackCuts = new AliESDtrackCuts("AliESDtrackCuts");
346 Double_t cov1, cov2, cov3, cov4, cov5;
348 Double_t maxDCAtoVertex, maxDCAtoVertexXY, maxDCAtoVertexZ;
349 Int_t minNClustersTPC;
350 Double_t maxChi2PerClusterTPC;
351 Double_t minPt, maxPt;
354 // default cuts for ITS+TPC
363 minNClustersTPC = 50;
364 maxChi2PerClusterTPC = 3.5;
366 esdTrackCuts->SetMaxCovDiagonalElements(cov1, cov2, cov3, cov4, cov5);
367 // esdTrackCuts->SetMinNsigmaToVertex(nSigma);
368 esdTrackCuts->SetRequireSigmaToVertex(kTRUE);
369 esdTrackCuts->SetRequireTPCRefit(kTRUE);
370 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
371 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
372 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
374 tag = "Global tracking";
377 // TPC-only cuts (vertex n sigma cut)
380 // beta cuts (still under investigation)
389 minNClustersTPC = 50;
390 maxChi2PerClusterTPC = 3.5;
392 esdTrackCuts->SetMaxCovDiagonalElements(cov1, cov2, cov3, cov4, cov5);
393 // esdTrackCuts->SetMinNsigmaToVertex(nSigma);
394 esdTrackCuts->SetRequireSigmaToVertex(kTRUE);
395 esdTrackCuts->SetRequireTPCRefit(kFALSE);
396 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
397 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
398 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
400 tag = "TPC-only tracking";
403 // TPC-only cuts (vertex maxDCAtoVertex cut)
406 // beta cuts (still under investigation)
407 maxDCAtoVertex = 3.0; // cm
408 minNClustersTPC = 50;
409 maxChi2PerClusterTPC = 3.5;
411 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
412 esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertex);
413 esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertex);
414 esdTrackCuts->SetRequireTPCRefit(kFALSE);
415 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
416 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
417 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
419 tag = "TPC-only tracking";
422 // TPC-only no vertex cuts
425 // beta cuts (still under investigation)
426 minNClustersTPC = 50;
427 maxChi2PerClusterTPC = 3.5;
429 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
430 esdTrackCuts->SetRequireTPCRefit(kFALSE);
431 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
432 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
433 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
435 tag = "TPC-only tracking";
438 // TPC-only no cuts at all
442 // beta cuts (still under investigation)
443 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
444 esdTrackCuts->SetRequireTPCRefit(kFALSE);
445 esdTrackCuts->SetAcceptKinkDaughters(kTRUE);
447 tag = "TPC-only tracking";
450 // TPC-only no kink removal no chi2
453 // beta cuts (still under investigation)
454 minNClustersTPC = 50;
455 //maxChi2PerClusterTPC = 3.5;
457 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
458 esdTrackCuts->SetRequireTPCRefit(kFALSE);
459 esdTrackCuts->SetAcceptKinkDaughters(kTRUE);
460 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
461 //esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
463 tag = "TPC-only tracking";
466 // TPC-only no kink removal
469 // beta cuts (still under investigation)
470 minNClustersTPC = 50;
471 maxChi2PerClusterTPC = 3.5;
473 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
474 esdTrackCuts->SetRequireTPCRefit(kFALSE);
475 esdTrackCuts->SetAcceptKinkDaughters(kTRUE);
476 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
477 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
479 tag = "TPC-only tracking";
482 // TPC-only no kink removal no minNClustersTPC
485 // beta cuts (still under investigation)
486 //minNClustersTPC = 50;
487 maxChi2PerClusterTPC = 3.5;
489 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
490 esdTrackCuts->SetRequireTPCRefit(kFALSE);
491 esdTrackCuts->SetAcceptKinkDaughters(kTRUE);
492 //esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
493 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
495 tag = "TPC-only tracking";
497 // TPC-only no kink removal no minNClustersTPC
500 // beta cuts (still under investigation)
501 //minNClustersTPC = 50;
502 maxChi2PerClusterTPC = 3.5;
503 maxDCAtoVertex = 3.0; // cm
505 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
506 esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertex);
507 esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertex);
508 esdTrackCuts->SetRequireTPCRefit(kFALSE);
509 esdTrackCuts->SetAcceptKinkDaughters(kTRUE);
510 //esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
511 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
513 tag = "TPC-only tracking";
516 // TPC-only no kink removal no minNClustersTPC no maxChi2PerClusterTPC
519 // beta cuts (still under investigation)
520 //minNClustersTPC = 50;
521 //maxChi2PerClusterTPC = 3.5;
522 maxDCAtoVertex = 3.0; // cm
524 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
525 esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertex);
526 esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertex);
527 esdTrackCuts->SetRequireTPCRefit(kFALSE);
528 esdTrackCuts->SetAcceptKinkDaughters(kTRUE);
529 //esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
530 //esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
532 tag = "TPC-only tracking";
535 // TPC-only (loose cuts, absolute DCA cut)
538 // beta cuts (still under investigation)
539 minNClustersTPC = 50;
540 maxChi2PerClusterTPC = 4.0;
541 maxDCAtoVertex = 2.8; // cm
545 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
546 esdTrackCuts->SetRequireTPCRefit(kFALSE);
547 esdTrackCuts->SetAcceptKinkDaughters(kTRUE);
548 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
549 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
550 esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertex);
551 esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertex);
552 esdTrackCuts->SetPtRange(minPt,maxPt);
554 tag = "TPC-only tracking";
558 // TPC-only (loose cuts, no DCA cut)
561 // beta cuts (still under investigation)
562 minNClustersTPC = 50;
563 maxChi2PerClusterTPC = 4.0;
564 maxDCAtoVertexXY = 1.e10; // cm
565 maxDCAtoVertexZ = 1.e10; // cm
569 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
570 esdTrackCuts->SetRequireTPCRefit(kFALSE);
571 esdTrackCuts->SetAcceptKinkDaughters(kTRUE);
572 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
573 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
574 esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
575 esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
576 esdTrackCuts->SetDCAToVertex2D(kTRUE);
577 esdTrackCuts->SetPtRange(minPt,maxPt);
579 tag = "TPC-only tracking";
582 // TPC-only (standard cuts, no DCA cut)
585 // beta cuts (still under investigation)
586 minNClustersTPC = 96;
587 maxChi2PerClusterTPC = 3.5;
588 maxDCAtoVertexXY = 1.e10; // cm
589 maxDCAtoVertexZ = 1.e10; // cm
593 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
594 esdTrackCuts->SetRequireTPCRefit(kFALSE);
595 esdTrackCuts->SetAcceptKinkDaughters(kTRUE);
596 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
597 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
598 esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
599 esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
600 esdTrackCuts->SetDCAToVertex2D(kTRUE);
601 esdTrackCuts->SetPtRange(minPt,maxPt);
603 tag = "TPC-only tracking";
606 // TPC-only (tight cuts, no DCA cut)
609 // beta cuts (still under investigation)
610 minNClustersTPC = 120;
611 maxChi2PerClusterTPC = 3.5;
612 maxDCAtoVertexXY = 1.e10; // cm
613 maxDCAtoVertexZ = 1.e10; // cm
617 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
618 esdTrackCuts->SetRequireTPCRefit(kFALSE);
619 esdTrackCuts->SetAcceptKinkDaughters(kTRUE);
620 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
621 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
622 esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
623 esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
624 esdTrackCuts->SetDCAToVertex2D(kTRUE);
625 esdTrackCuts->SetPtRange(minPt,maxPt);
627 tag = "TPC-only tracking";
630 // TPC-only (loose cuts, no pt cut)
633 // beta cuts (still under investigation)
634 minNClustersTPC = 50;
635 maxChi2PerClusterTPC = 4.0;
636 maxDCAtoVertexXY = 1.e10; // cm
637 maxDCAtoVertexZ = 1.e10; // cm
641 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
642 esdTrackCuts->SetRequireTPCRefit(kFALSE);
643 esdTrackCuts->SetAcceptKinkDaughters(kTRUE);
644 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
645 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
646 esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
647 esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
648 esdTrackCuts->SetDCAToVertex2D(kTRUE);
649 esdTrackCuts->SetPtRange(minPt,maxPt);
651 tag = "TPC-only tracking";
654 // TPC-only (standard cuts, no pt cut)
657 // beta cuts (still under investigation)
658 minNClustersTPC = 96;
659 maxChi2PerClusterTPC = 3.5;
660 maxDCAtoVertexXY = 1.e10; // cm
661 maxDCAtoVertexZ = 1.e10; // cm
665 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
666 esdTrackCuts->SetRequireTPCRefit(kFALSE);
667 esdTrackCuts->SetAcceptKinkDaughters(kTRUE);
668 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
669 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
670 esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
671 esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
672 esdTrackCuts->SetDCAToVertex2D(kTRUE);
673 esdTrackCuts->SetPtRange(minPt,maxPt);
675 tag = "TPC-only tracking";
678 // TPC-only (tight cuts, no pt cuts)
681 // beta cuts (still under investigation)
682 minNClustersTPC = 120;
683 maxChi2PerClusterTPC = 3.5;
684 maxDCAtoVertexXY = 1.e10; // cm
685 maxDCAtoVertexZ = 1.e10; // cm
689 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
690 esdTrackCuts->SetRequireTPCRefit(kFALSE);
691 esdTrackCuts->SetAcceptKinkDaughters(kTRUE);
692 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
693 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
694 esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
695 esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
696 esdTrackCuts->SetDCAToVertex2D(kTRUE);
697 esdTrackCuts->SetPtRange(minPt,maxPt);
699 tag = "TPC-only tracking";
701 // TPC-only (loose cuts)
704 // beta cuts (still under investigation)
705 minNClustersTPC = 50;
706 maxChi2PerClusterTPC = 4.0;
707 //maxDCAtoVertexXY = 2.4; // cm
708 //maxDCAtoVertexZ = 3.2; // cm
709 maxDCAtoVertexXY = 1.6; // cm
710 maxDCAtoVertexZ = 2.1; // cm
714 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
715 esdTrackCuts->SetRequireTPCRefit(kFALSE);
716 esdTrackCuts->SetAcceptKinkDaughters(kTRUE);
717 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
718 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
719 esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
720 esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
721 esdTrackCuts->SetDCAToVertex2D(kTRUE);
722 esdTrackCuts->SetPtRange(minPt,maxPt);
724 tag = "TPC-only tracking";
727 // TPC-only (standard cuts)
730 // beta cuts (still under investigation)
731 minNClustersTPC = 96;
732 maxChi2PerClusterTPC = 3.5;
733 //maxDCAtoVertexXY = 2.4; // cm
734 //maxDCAtoVertexZ = 3.2; // cm
735 maxDCAtoVertexXY = 1.4; // cm
736 maxDCAtoVertexZ = 1.8; // cm
740 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
741 esdTrackCuts->SetRequireTPCRefit(kFALSE);
742 esdTrackCuts->SetAcceptKinkDaughters(kTRUE);
743 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
744 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
745 esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
746 esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
747 esdTrackCuts->SetDCAToVertex2D(kTRUE);
748 esdTrackCuts->SetPtRange(minPt,maxPt);
750 tag = "TPC-only tracking";
753 // TPC-only (tight cuts)
756 // beta cuts (still under investigation)
757 minNClustersTPC = 120;
758 maxChi2PerClusterTPC = 3.0;
759 //maxDCAtoVertexXY = 2.4; // cm
760 //maxDCAtoVertexZ = 3.2; // cm
761 maxDCAtoVertexXY = 1.4; // cm
762 maxDCAtoVertexZ = 1.8; // cm
766 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
767 esdTrackCuts->SetRequireTPCRefit(kFALSE);
768 esdTrackCuts->SetAcceptKinkDaughters(kTRUE);
769 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
770 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
771 esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
772 esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
773 esdTrackCuts->SetDCAToVertex2D(kTRUE);
774 esdTrackCuts->SetPtRange(minPt,maxPt);
776 tag = "TPC-only tracking";
779 // TPC-only (arb. cuts, kink cuts included)
782 // beta cuts (still under investigation)
783 minNClustersTPC = 50;
784 maxChi2PerClusterTPC = 1.e10;
785 maxDCAtoVertexXY = 3.0; // cm
786 maxDCAtoVertexZ = 3.0; // cm
790 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
791 esdTrackCuts->SetRequireTPCRefit(kFALSE);
792 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
793 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
794 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
795 esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
796 esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
797 esdTrackCuts->SetDCAToVertex2D(kTRUE);
798 esdTrackCuts->SetPtRange(minPt,maxPt);
800 tag = "TPC-only tracking";
803 // TPC-only (arb. cuts, kink cuts excluded)
806 // beta cuts (still under investigation)
807 minNClustersTPC = 50;
808 maxChi2PerClusterTPC = 1.e10;
809 maxDCAtoVertexXY = 3.0; // cm
810 maxDCAtoVertexZ = 3.0; // cm
814 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
815 esdTrackCuts->SetRequireTPCRefit(kFALSE);
816 esdTrackCuts->SetAcceptKinkDaughters(kTRUE);
817 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
818 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
819 esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
820 esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
821 esdTrackCuts->SetDCAToVertex2D(kTRUE);
822 esdTrackCuts->SetPtRange(minPt,maxPt);
824 tag = "TPC-only tracking";
827 // TPC-only (arb. cuts, kink cuts excluded, no chi2, no DCA)
830 // beta cuts (still under investigation)
831 minNClustersTPC = 50;
832 maxChi2PerClusterTPC = 1.e10;
833 maxDCAtoVertexXY = 1.e10; // cm
834 maxDCAtoVertexZ = 1.e10; // cm
838 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
839 esdTrackCuts->SetRequireTPCRefit(kFALSE);
840 esdTrackCuts->SetAcceptKinkDaughters(kTRUE);
841 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
842 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
843 esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
844 esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
845 esdTrackCuts->SetDCAToVertex2D(kTRUE);
846 esdTrackCuts->SetPtRange(minPt,maxPt);
848 tag = "TPC-only tracking";
854 // beta cuts (still under investigation)
855 minNClustersTPC = 70;
856 maxChi2PerClusterTPC = 4.0;
857 maxDCAtoVertexXY = 2.4; // cm
858 maxDCAtoVertexZ = 3.2; // cm
860 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
861 esdTrackCuts->SetRequireTPCRefit(kFALSE);
862 esdTrackCuts->SetRequireTPCStandAlone(kTRUE);
863 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
864 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
865 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
866 esdTrackCuts->SetRequireITSRefit(kFALSE);
867 esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
868 esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
869 esdTrackCuts->SetDCAToVertex2D(kTRUE);
870 //esdTrackCuts->SetPtRange(minPt,maxPt);
871 //esdTrackCuts->SetEtaRange(minEta,maxEta);
873 tag = "TPC-only tracking";
876 // TPC-only (no pt cut, no eta cut)
879 // beta cuts (still under investigation)
880 minNClustersTPC = 50;
881 maxChi2PerClusterTPC = 4.0;
882 maxDCAtoVertexXY = 2.4; // cm
883 maxDCAtoVertexZ = 3.2; // cm
887 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
888 esdTrackCuts->SetRequireTPCRefit(kFALSE);
889 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
890 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
891 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
892 esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
893 esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
894 esdTrackCuts->SetDCAToVertex2D(kTRUE);
895 esdTrackCuts->SetPtRange(minPt,maxPt);
897 tag = "TPC-only tracking";
901 // systematic errors DCA cut studies
906 // beta cuts (still under investigation)
907 minNClustersTPC = 50;
908 maxChi2PerClusterTPC = 4.0;
909 maxDCAtoVertexXY = 1.4; // cm
910 maxDCAtoVertexZ = 2.2; // cm
914 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
915 esdTrackCuts->SetRequireTPCRefit(kFALSE);
916 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
917 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
918 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
919 esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
920 esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
921 esdTrackCuts->SetDCAToVertex2D(kTRUE);
922 esdTrackCuts->SetPtRange(minPt,maxPt);
924 tag = "TPC-only tracking";
929 // beta cuts (still under investigation)
930 minNClustersTPC = 50;
931 maxChi2PerClusterTPC = 4.0;
932 maxDCAtoVertexXY = 1.6; // cm
933 maxDCAtoVertexZ = 2.4; // cm
937 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
938 esdTrackCuts->SetRequireTPCRefit(kFALSE);
939 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
940 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
941 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
942 esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
943 esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
944 esdTrackCuts->SetDCAToVertex2D(kTRUE);
945 esdTrackCuts->SetPtRange(minPt,maxPt);
947 tag = "TPC-only tracking";
951 // systematic errors cut studies
956 // beta cuts (still under investigation)
957 minNClustersTPC = 50;
958 maxChi2PerClusterTPC = 4.0;
959 maxDCAtoVertexXY = 1.8; // cm
960 maxDCAtoVertexZ = 2.6; // cm
964 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
965 esdTrackCuts->SetRequireTPCRefit(kFALSE);
966 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
967 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
968 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
969 esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
970 esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
971 esdTrackCuts->SetDCAToVertex2D(kTRUE);
972 esdTrackCuts->SetPtRange(minPt,maxPt);
974 tag = "TPC-only tracking";
979 // beta cuts (still under investigation)
980 minNClustersTPC = 50;
981 maxChi2PerClusterTPC = 4.0;
982 maxDCAtoVertexXY = 2.0; // cm
983 maxDCAtoVertexZ = 2.8; // cm
987 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
988 esdTrackCuts->SetRequireTPCRefit(kFALSE);
989 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
990 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
991 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
992 esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
993 esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
994 esdTrackCuts->SetDCAToVertex2D(kTRUE);
995 esdTrackCuts->SetPtRange(minPt,maxPt);
997 tag = "TPC-only tracking";
1002 // beta cuts (still under investigation)
1003 minNClustersTPC = 50;
1004 maxChi2PerClusterTPC = 4.0;
1005 maxDCAtoVertexXY = 2.2; // cm
1006 maxDCAtoVertexZ = 3.0; // cm
1010 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1011 esdTrackCuts->SetRequireTPCRefit(kFALSE);
1012 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1013 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
1014 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
1015 esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
1016 esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
1017 esdTrackCuts->SetDCAToVertex2D(kTRUE);
1018 esdTrackCuts->SetPtRange(minPt,maxPt);
1020 tag = "TPC-only tracking";
1025 // beta cuts (still under investigation)
1026 minNClustersTPC = 50;
1027 maxChi2PerClusterTPC = 4.0;
1028 maxDCAtoVertexXY = 2.4; // cm
1029 maxDCAtoVertexZ = 3.2; // cm
1033 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1034 esdTrackCuts->SetRequireTPCRefit(kFALSE);
1035 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1036 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
1037 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
1038 esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
1039 esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
1040 esdTrackCuts->SetDCAToVertex2D(kTRUE);
1041 esdTrackCuts->SetPtRange(minPt,maxPt);
1043 tag = "TPC-only tracking";
1048 // beta cuts (still under investigation)
1049 minNClustersTPC = 50;
1050 maxChi2PerClusterTPC = 4.0;
1051 maxDCAtoVertexXY = 2.6; // cm
1052 maxDCAtoVertexZ = 3.4; // cm
1056 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1057 esdTrackCuts->SetRequireTPCRefit(kFALSE);
1058 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1059 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
1060 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
1061 esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
1062 esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
1063 esdTrackCuts->SetDCAToVertex2D(kTRUE);
1064 esdTrackCuts->SetPtRange(minPt,maxPt);
1066 tag = "TPC-only tracking";
1072 // beta cuts (still under investigation)
1073 minNClustersTPC = 50;
1074 maxChi2PerClusterTPC = 4.0;
1075 maxDCAtoVertexXY = 2.8; // cm
1076 maxDCAtoVertexZ = 3.6; // cm
1080 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1081 esdTrackCuts->SetRequireTPCRefit(kFALSE);
1082 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1083 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
1084 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
1085 esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
1086 esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
1087 esdTrackCuts->SetDCAToVertex2D(kTRUE);
1088 esdTrackCuts->SetPtRange(minPt,maxPt);
1090 tag = "TPC-only tracking";
1095 // beta cuts (still under investigation)
1096 minNClustersTPC = 50;
1097 maxChi2PerClusterTPC = 4.0;
1098 maxDCAtoVertexXY = 3.0; // cm
1099 maxDCAtoVertexZ = 3.8; // cm
1103 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1104 esdTrackCuts->SetRequireTPCRefit(kFALSE);
1105 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1106 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
1107 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
1108 esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
1109 esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
1110 esdTrackCuts->SetDCAToVertex2D(kTRUE);
1111 esdTrackCuts->SetPtRange(minPt,maxPt);
1113 tag = "TPC-only tracking";
1118 // beta cuts (still under investigation)
1119 minNClustersTPC = 50;
1120 maxChi2PerClusterTPC = 4.0;
1121 maxDCAtoVertexXY = 3.2; // cm
1122 maxDCAtoVertexZ = 4.0; // cm
1126 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1127 esdTrackCuts->SetRequireTPCRefit(kFALSE);
1128 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1129 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
1130 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
1131 esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
1132 esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
1133 esdTrackCuts->SetDCAToVertex2D(kTRUE);
1134 esdTrackCuts->SetPtRange(minPt,maxPt);
1136 tag = "TPC-only tracking";
1141 // beta cuts (still under investigation)
1142 minNClustersTPC = 50;
1143 maxChi2PerClusterTPC = 4.0;
1144 maxDCAtoVertexXY = 3.4; // cm
1145 maxDCAtoVertexZ = 4.2; // cm
1149 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1150 esdTrackCuts->SetRequireTPCRefit(kFALSE);
1151 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1152 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
1153 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
1154 esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
1155 esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
1156 esdTrackCuts->SetDCAToVertex2D(kTRUE);
1157 esdTrackCuts->SetPtRange(minPt,maxPt);
1159 tag = "TPC-only tracking";
1163 // cut stability systematics
1168 // beta cuts (still under investigation)
1169 minNClustersTPC = 70;
1170 maxChi2PerClusterTPC = 4.0;
1171 maxDCAtoVertexXY = 2.4; // cm
1172 maxDCAtoVertexZ = 3.2; // cm
1176 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1177 esdTrackCuts->SetRequireTPCRefit(kFALSE);
1178 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1179 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
1180 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
1181 esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
1182 esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
1183 esdTrackCuts->SetDCAToVertex2D(kTRUE);
1184 esdTrackCuts->SetPtRange(minPt,maxPt);
1186 tag = "TPC-only tracking";
1191 // beta cuts (still under investigation)
1192 minNClustersTPC = 90;
1193 maxChi2PerClusterTPC = 4.0;
1194 maxDCAtoVertexXY = 2.4; // cm
1195 maxDCAtoVertexZ = 3.2; // cm
1199 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1200 esdTrackCuts->SetRequireTPCRefit(kFALSE);
1201 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1202 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
1203 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
1204 esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
1205 esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
1206 esdTrackCuts->SetDCAToVertex2D(kTRUE);
1207 esdTrackCuts->SetPtRange(minPt,maxPt);
1209 tag = "TPC-only tracking";
1214 // beta cuts (still under investigation)
1215 minNClustersTPC = 50;
1216 maxChi2PerClusterTPC = 3.0;
1217 maxDCAtoVertexXY = 2.4; // cm
1218 maxDCAtoVertexZ = 3.2; // cm
1222 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1223 esdTrackCuts->SetRequireTPCRefit(kFALSE);
1224 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1225 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
1226 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
1227 esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
1228 esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
1229 esdTrackCuts->SetDCAToVertex2D(kTRUE);
1230 esdTrackCuts->SetPtRange(minPt,maxPt);
1232 tag = "TPC-only tracking";
1237 // beta cuts (still under investigation)
1238 minNClustersTPC = 50;
1239 maxChi2PerClusterTPC = 5.0;
1240 maxDCAtoVertexXY = 2.4; // cm
1241 maxDCAtoVertexZ = 3.2; // cm
1245 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1246 esdTrackCuts->SetRequireTPCRefit(kFALSE);
1247 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1248 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
1249 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
1250 esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
1251 esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
1252 esdTrackCuts->SetDCAToVertex2D(kTRUE);
1253 esdTrackCuts->SetPtRange(minPt,maxPt);
1255 tag = "TPC-only tracking";
1260 // beta cuts (still under investigation)
1261 minNClustersTPC = 50;
1262 maxChi2PerClusterTPC = 4.0;
1263 maxDCAtoVertexXY = 1.4; // cm
1264 maxDCAtoVertexZ = 2.2; // cm
1268 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1269 esdTrackCuts->SetRequireTPCRefit(kFALSE);
1270 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1271 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
1272 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
1273 esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
1274 esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
1275 esdTrackCuts->SetDCAToVertex2D(kTRUE);
1276 esdTrackCuts->SetPtRange(minPt,maxPt);
1278 tag = "TPC-only tracking";
1283 // beta cuts (still under investigation)
1284 minNClustersTPC = 50;
1285 maxChi2PerClusterTPC = 4.0;
1286 maxDCAtoVertexXY = 3.4; // cm
1287 maxDCAtoVertexZ = 4.2; // cm
1291 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1292 esdTrackCuts->SetRequireTPCRefit(kFALSE);
1293 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1294 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
1295 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
1296 esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
1297 esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
1298 esdTrackCuts->SetDCAToVertex2D(kTRUE);
1299 esdTrackCuts->SetPtRange(minPt,maxPt);
1301 tag = "TPC-only tracking";
1306 // beta cuts (still under investigation)
1307 minNClustersTPC = 50;
1308 maxChi2PerClusterTPC = 4.0;
1309 maxDCAtoVertexXY = 2.4; // cm
1310 maxDCAtoVertexZ = 3.2; // cm
1314 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1315 esdTrackCuts->SetRequireTPCRefit(kFALSE);
1316 //esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1317 esdTrackCuts->SetAcceptKinkDaughters(kTRUE);
1318 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
1319 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
1320 esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
1321 esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
1322 esdTrackCuts->SetDCAToVertex2D(kTRUE);
1323 esdTrackCuts->SetPtRange(minPt,maxPt);
1325 tag = "TPC-only tracking";
1330 // beta cuts (still under investigation)
1331 minNClustersTPC = 50;
1332 maxChi2PerClusterTPC = 4.0;
1333 //maxDCAtoVertexXY = 2.4; // cm
1334 //maxDCAtoVertexZ = 3.2; // cm
1338 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1339 esdTrackCuts->SetRequireTPCRefit(kFALSE);
1340 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1341 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
1342 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
1343 //esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
1344 //esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
1345 //esdTrackCuts->SetDCAToVertex2D(kTRUE);
1346 //esdTrackCuts->SetPtRange(minPt,maxPt);
1347 //esdTrackCuts->SetEtaRange(minEta,maxEta);
1349 tag = "TPC-only tracking";
1352 // TPC-only + pt cut + eta cut
1355 // beta cuts (still under investigation)
1356 //minNClustersTPC = 50;
1357 //maxChi2PerClusterTPC = 4.0;
1358 maxDCAtoVertexXY = 2.4; // cm
1359 maxDCAtoVertexZ = 3.2; // cm
1363 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1364 esdTrackCuts->SetRequireTPCRefit(kFALSE);
1365 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1366 //esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
1367 //esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
1368 esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
1369 esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
1370 esdTrackCuts->SetDCAToVertex2D(kTRUE);
1371 //esdTrackCuts->SetPtRange(minPt,maxPt);
1372 //esdTrackCuts->SetEtaRange(minEta,maxEta);
1374 tag = "TPC-only tracking";
1377 // TPC-tracks + SPD point + ITS refit
1381 Double_t maxchi2perTPCcl=4.;
1382 //Double_t maxEtaInAcc=0.8;
1383 Double_t maxdcaxyITSTPC=0.2;
1384 Double_t maxdcazITSTPC=1.e9;
1386 esdTrackCuts->SetMaxDCAToVertexXY(maxdcaxyITSTPC);
1387 esdTrackCuts->SetMaxDCAToVertexZ(maxdcazITSTPC);
1388 esdTrackCuts->SetDCAToVertex2D(kFALSE);
1389 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1390 esdTrackCuts->SetRequireITSRefit(kTRUE);
1391 esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
1392 esdTrackCuts->SetRequireTPCStandAlone(kTRUE);
1393 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1394 esdTrackCuts->SetMinNClustersTPC(minclsTPC);
1395 esdTrackCuts->SetMaxChi2PerClusterTPC(maxchi2perTPCcl);
1396 //esdTrackCuts->SetEtaRange(-maxEtaInAcc,maxEtaInAcc);
1398 tag = "TPC-tracks + ITS refit + >1 SPD cluster";
1401 // TPC-tracks + SPD point + ITS refit
1406 Double_t maxchi2perTPCcl=4.;
1407 Double_t maxdcaxyITSTPC=0.2;
1408 Double_t maxdcazITSTPC=1.e9;
1410 esdTrackCuts->SetMaxDCAToVertexXY(maxdcaxyITSTPC);
1411 esdTrackCuts->SetMaxDCAToVertexZ(maxdcazITSTPC);
1412 esdTrackCuts->SetDCAToVertex2D(kFALSE);
1413 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1414 esdTrackCuts->SetRequireITSRefit(kTRUE);
1415 esdTrackCuts->SetMinNClustersITS(minclsITS);
1416 esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
1417 //esdTrackCuts->SetRequireTPCStandAlone(kTRUE);
1418 esdTrackCuts->SetRequireTPCRefit(kTRUE);
1419 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1420 esdTrackCuts->SetMinNClustersTPC(minclsTPC);
1421 esdTrackCuts->SetMaxChi2PerClusterTPC(maxchi2perTPCcl);
1423 tag = "Global tracking: TPC refit + ITS refit + >3 ITS clusters + >=1 SPD cluster";
1427 // TPC-tracks + SPD point + ITS refit + DCAr(pt)
1431 Double_t maxchi2perTPCcl=4.;
1432 Double_t maxdcaxyITSTPC=1.e9;
1433 Double_t maxdcazITSTPC=1.e9;
1435 esdTrackCuts->SetMaxDCAToVertexXY(maxdcaxyITSTPC);
1436 esdTrackCuts->SetMaxDCAToVertexZ(maxdcazITSTPC);
1437 esdTrackCuts->SetDCAToVertex2D(kFALSE);
1438 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1439 esdTrackCuts->SetRequireITSRefit(kTRUE);
1440 esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
1441 esdTrackCuts->SetRequireTPCStandAlone(kTRUE);
1442 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1443 esdTrackCuts->SetMinNClustersTPC(minclsTPC);
1444 esdTrackCuts->SetMaxChi2PerClusterTPC(maxchi2perTPCcl);
1446 tag = "TPC-tracks + ITS refit + >1 SPD cluster + DCAr(Pt)";
1450 // TPC-tracks + SPD point + ITS refit + DCAr(pt)
1454 Double_t maxchi2perTPCcl=4.;
1455 Double_t maxdcazITSTPC=1.e9;
1460 esdTrackCuts->SetRequireTPCStandAlone(kTRUE);
1461 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1462 esdTrackCuts->SetMinNClustersTPC(minclsTPC);
1463 esdTrackCuts->SetMaxChi2PerClusterTPC(maxchi2perTPCcl);
1467 esdTrackCuts->SetRequireITSRefit(kTRUE);
1468 esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
1470 // primary selection
1472 esdTrackCuts->SetDCAToVertex2D(kFALSE);
1473 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1474 esdTrackCuts->SetMaxDCAToVertexZ(maxdcazITSTPC);
1476 // 7*(0.0050+0.0060/pt^0.9)
1477 esdTrackCuts->SetMaxDCAToVertexXYPtDep("0.0350+0.0420/pt^0.9");
1479 tag = "TPC-tracks + ITS refit + >1 SPD cluster + DCAr(Pt)";
1482 // TPC+ITS combine tracking + DCAr(pt) + DCAz(pt)
1486 Double_t maxchi2perTPCcl=4.;
1487 Double_t maxdcazITSTPC=1.e9;
1492 esdTrackCuts->SetRequireTPCRefit(kTRUE);
1493 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1494 esdTrackCuts->SetMinNClustersTPC(minclsTPC);
1495 esdTrackCuts->SetMaxChi2PerClusterTPC(maxchi2perTPCcl);
1499 esdTrackCuts->SetRequireITSRefit(kTRUE);
1500 esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
1502 // primary selection
1504 esdTrackCuts->SetDCAToVertex2D(kFALSE);
1505 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1506 esdTrackCuts->SetMaxDCAToVertexZ(maxdcazITSTPC);
1508 // DCArphi parametrization (LHC10c pass2)
1509 // 7*(0.0026+0.0050/pt^1.01)
1510 esdTrackCuts->SetMaxDCAToVertexXYPtDep("0.0182+0.0350/pt^1.01");
1512 // DCArphi parametrization (LHC10c pass2)
1513 // 7*(0.01+0.011/pt^0.72)
1514 esdTrackCuts->SetMaxDCAToVertexZPtDep("0.07+0.077/pt^0.72");
1516 tag = "TPC+ITS combine tracking + DCAr(pt) + DCAz(pt)";
1519 // TPC+ITS combine tracking + DCAr(pt) (2010)
1523 Double_t maxchi2perTPCcl=4.;
1524 Double_t maxdcazITSTPC=2.0;
1529 esdTrackCuts->SetRequireTPCRefit(kTRUE);
1530 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1531 esdTrackCuts->SetMinNClustersTPC(minclsTPC);
1532 esdTrackCuts->SetMaxChi2PerClusterTPC(maxchi2perTPCcl);
1536 esdTrackCuts->SetRequireITSRefit(kTRUE);
1537 esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
1539 // primary selection
1541 esdTrackCuts->SetDCAToVertex2D(kFALSE);
1542 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1543 esdTrackCuts->SetMaxDCAToVertexZ(maxdcazITSTPC);
1545 // DCArphi parametrization (LHC10c pass2)
1546 // 7*(0.0026+0.0050/pt^1.01)
1547 esdTrackCuts->SetMaxDCAToVertexXYPtDep("0.0182+0.0350/pt^1.01");
1549 tag = "TPC+ITS combine tracking + DCAr(pt) (2010)";
1552 // TPC-tracks + SPD point + ITS refit + DCAr(pt) 4-sigma
1556 Double_t maxchi2perTPCcl=4.;
1557 Double_t maxdcazITSTPC=1.e9;
1562 esdTrackCuts->SetRequireTPCStandAlone(kTRUE);
1563 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1564 esdTrackCuts->SetMinNClustersTPC(minclsTPC);
1565 esdTrackCuts->SetMaxChi2PerClusterTPC(maxchi2perTPCcl);
1569 esdTrackCuts->SetRequireITSRefit(kTRUE);
1570 esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
1572 // primary selection
1574 esdTrackCuts->SetDCAToVertex2D(kFALSE);
1575 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1576 esdTrackCuts->SetMaxDCAToVertexZ(maxdcazITSTPC);
1578 // 4*(0.0050+0.0060/pt^0.9)
1579 esdTrackCuts->SetMaxDCAToVertexXYPtDep("0.02+0.024/pt^0.9");
1581 tag = "TPC-tracks + ITS refit + >1 SPD cluster + DCAr(Pt) 4-sigma";
1584 // TPC-tracks + SPD point + ITS refit + DCAr(pt) 10-sigma
1588 Double_t maxchi2perTPCcl=4.;
1589 Double_t maxdcazITSTPC=1.e9;
1594 esdTrackCuts->SetRequireTPCStandAlone(kTRUE);
1595 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1596 esdTrackCuts->SetMinNClustersTPC(minclsTPC);
1597 esdTrackCuts->SetMaxChi2PerClusterTPC(maxchi2perTPCcl);
1601 esdTrackCuts->SetRequireITSRefit(kTRUE);
1602 esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
1604 // primary selection
1606 esdTrackCuts->SetDCAToVertex2D(kFALSE);
1607 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1608 esdTrackCuts->SetMaxDCAToVertexZ(maxdcazITSTPC);
1610 // 10*(0.0050+0.0060/pt^0.9)
1611 esdTrackCuts->SetMaxDCAToVertexXYPtDep("0.05+0.06/pt^0.9");
1613 tag = "TPC-tracks + ITS refit + >1 SPD cluster + DCAr(Pt) 10 sigma";
1616 // TPC-tracks + SPD point + ITS refit + DCAr(pt) + 60 TPCclust
1620 Double_t maxchi2perTPCcl=4.;
1621 Double_t maxdcazITSTPC=1.e9;
1626 esdTrackCuts->SetRequireTPCStandAlone(kTRUE);
1627 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1628 esdTrackCuts->SetMinNClustersTPC(minclsTPC);
1629 esdTrackCuts->SetMaxChi2PerClusterTPC(maxchi2perTPCcl);
1633 esdTrackCuts->SetRequireITSRefit(kTRUE);
1634 esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
1636 // primary selection
1638 esdTrackCuts->SetDCAToVertex2D(kFALSE);
1639 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1640 esdTrackCuts->SetMaxDCAToVertexZ(maxdcazITSTPC);
1642 // 7*(0.0050+0.0060/pt^0.9)
1643 esdTrackCuts->SetMaxDCAToVertexXYPtDep("0.0350+0.0420/pt^0.9");
1645 tag = "TPC-tracks + ITS refit + >1 SPD cluster + DCAr(Pt) + 60 TPCclust";
1648 // TPC-tracks + SPD point + ITS refit + DCAr(pt) + 80 clusters
1652 Double_t maxchi2perTPCcl=4.;
1653 Double_t maxdcazITSTPC=1.e9;
1658 esdTrackCuts->SetRequireTPCStandAlone(kTRUE);
1659 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1660 esdTrackCuts->SetMinNClustersTPC(minclsTPC);
1661 esdTrackCuts->SetMaxChi2PerClusterTPC(maxchi2perTPCcl);
1665 esdTrackCuts->SetRequireITSRefit(kTRUE);
1666 esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
1668 // primary selection
1670 esdTrackCuts->SetDCAToVertex2D(kFALSE);
1671 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1672 esdTrackCuts->SetMaxDCAToVertexZ(maxdcazITSTPC);
1674 // 7*(0.0050+0.0060/pt^0.9)
1675 esdTrackCuts->SetMaxDCAToVertexXYPtDep("0.0350+0.0420/pt^0.9");
1677 tag = "TPC-tracks + ITS refit + >1 SPD cluster + DCAr(Pt) + 80 TPCclust";
1680 // TPC-tracks + SPD point + ITS refit + DCAr(pt) + TPCchi2=3.5
1684 Double_t maxchi2perTPCcl=3.5;
1685 Double_t maxdcazITSTPC=1.e9;
1690 esdTrackCuts->SetRequireTPCStandAlone(kTRUE);
1691 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1692 esdTrackCuts->SetMinNClustersTPC(minclsTPC);
1693 esdTrackCuts->SetMaxChi2PerClusterTPC(maxchi2perTPCcl);
1697 esdTrackCuts->SetRequireITSRefit(kTRUE);
1698 esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
1700 // primary selection
1702 esdTrackCuts->SetDCAToVertex2D(kFALSE);
1703 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1704 esdTrackCuts->SetMaxDCAToVertexZ(maxdcazITSTPC);
1706 // 7*(0.0050+0.0060/pt^0.9)
1707 esdTrackCuts->SetMaxDCAToVertexXYPtDep("0.0350+0.0420/pt^0.9");
1709 tag = "TPC-tracks + ITS refit + >1 SPD cluster + DCAr(Pt) + TPCchi2 3.5";
1712 // TPC-tracks + SPD point + ITS refit + DCAr(pt) + TPCchi2=4.5
1716 Double_t maxchi2perTPCcl=4.5;
1717 Double_t maxdcazITSTPC=1.e9;
1722 esdTrackCuts->SetRequireTPCStandAlone(kTRUE);
1723 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1724 esdTrackCuts->SetMinNClustersTPC(minclsTPC);
1725 esdTrackCuts->SetMaxChi2PerClusterTPC(maxchi2perTPCcl);
1729 esdTrackCuts->SetRequireITSRefit(kTRUE);
1730 esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
1732 // primary selection
1734 esdTrackCuts->SetDCAToVertex2D(kFALSE);
1735 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1736 esdTrackCuts->SetMaxDCAToVertexZ(maxdcazITSTPC);
1738 // 7*(0.0050+0.0060/pt^0.9)
1739 esdTrackCuts->SetMaxDCAToVertexXYPtDep("0.0350+0.0420/pt^0.9");
1741 tag = "TPC-tracks + ITS refit + >1 SPD cluster + DCAr(Pt) + TPCchi2 4.5";
1748 minNClustersTPC = 70;
1749 maxChi2PerClusterTPC = 4.0;
1750 maxDCAtoVertexXY = 1.e9; // cm
1751 maxDCAtoVertexZ = 1.e9; // cm
1753 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1754 esdTrackCuts->SetRequireTPCRefit(kFALSE);
1755 esdTrackCuts->SetRequireTPCStandAlone(kTRUE);
1756 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1757 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
1758 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
1759 esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
1760 esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
1761 esdTrackCuts->SetDCAToVertex2D(kTRUE);
1763 tag = "TPC-tracks loose criteria";
1767 // TPC-tracks + SPD point + ITS refit + DCAr(pt) + 50 TPCclust
1771 Double_t maxchi2perTPCcl=4.;
1772 Double_t maxdcazITSTPC=1.e9;
1777 esdTrackCuts->SetRequireTPCStandAlone(kTRUE);
1778 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1779 esdTrackCuts->SetMinNClustersTPC(minclsTPC);
1780 esdTrackCuts->SetMaxChi2PerClusterTPC(maxchi2perTPCcl);
1784 esdTrackCuts->SetRequireITSRefit(kTRUE);
1785 esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
1787 // primary selection
1789 esdTrackCuts->SetDCAToVertex2D(kFALSE);
1790 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1791 esdTrackCuts->SetMaxDCAToVertexZ(maxdcazITSTPC);
1793 // 7*(0.0050+0.0060/pt^0.9)
1794 esdTrackCuts->SetMaxDCAToVertexXYPtDep("0.0350+0.0420/pt^0.9");
1796 tag = "TPC-tracks + ITS refit + >1 SPD cluster + DCAr(Pt) + 60 TPCclust";
1799 // TPC-tracks + SPD point + ITS refit + DCAr(pt) + 70 TPCclust + accept kink daughters
1803 Double_t maxchi2perTPCcl=4.;
1804 Double_t maxdcazITSTPC=1.e9;
1809 esdTrackCuts->SetRequireTPCStandAlone(kTRUE);
1810 esdTrackCuts->SetAcceptKinkDaughters(kTRUE);
1811 esdTrackCuts->SetMinNClustersTPC(minclsTPC);
1812 esdTrackCuts->SetMaxChi2PerClusterTPC(maxchi2perTPCcl);
1816 esdTrackCuts->SetRequireITSRefit(kTRUE);
1817 esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
1819 // primary selection
1821 esdTrackCuts->SetDCAToVertex2D(kFALSE);
1822 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1823 esdTrackCuts->SetMaxDCAToVertexZ(maxdcazITSTPC);
1825 // 7*(0.0050+0.0060/pt^0.9)
1826 esdTrackCuts->SetMaxDCAToVertexXYPtDep("0.0350+0.0420/pt^0.9");
1828 tag = "TPC-tracks + ITS refit + >1 SPD cluster + DCAr(Pt) + 60 TPCclust";
1831 // TPC-tracks + SPD point + ITS refit + DCAr(pt) + 30 TPCclust + accept kink daughters
1835 Double_t maxchi2perTPCcl=4.;
1836 Double_t maxdcazITSTPC=1.e9;
1841 esdTrackCuts->SetRequireTPCStandAlone(kTRUE);
1842 esdTrackCuts->SetAcceptKinkDaughters(kTRUE);
1843 esdTrackCuts->SetMinNClustersTPC(minclsTPC);
1844 esdTrackCuts->SetMaxChi2PerClusterTPC(maxchi2perTPCcl);
1848 esdTrackCuts->SetRequireITSRefit(kTRUE);
1849 esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
1851 // primary selection
1853 esdTrackCuts->SetDCAToVertex2D(kFALSE);
1854 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1855 esdTrackCuts->SetMaxDCAToVertexZ(maxdcazITSTPC);
1857 // 7*(0.0050+0.0060/pt^0.9)
1858 esdTrackCuts->SetMaxDCAToVertexXYPtDep("0.0350+0.0420/pt^0.9");
1860 tag = "TPC-tracks + ITS refit + >1 SPD cluster + DCAr(Pt) + 60 TPCclust";
1863 // Adam Kisiel track selectiion
1867 Double_t maxchi2perTPCcl=4.;
1868 Double_t maxdcazITSTPC=0.25;
1869 Double_t maxdcaxyITSTPC=0.2;
1874 //esdTrackCuts->SetRequireTPCStandAlone(kTRUE);
1875 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1876 esdTrackCuts->SetMinNClustersTPC(minclsTPC);
1877 esdTrackCuts->SetMaxChi2PerClusterTPC(maxchi2perTPCcl);
1881 esdTrackCuts->SetRequireITSRefit(kTRUE);
1882 //esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
1884 // primary selection
1886 //esdTrackCuts->SetDCAToVertex2D(kFALSE);
1887 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1888 esdTrackCuts->SetMaxDCAToVertexZ(maxdcazITSTPC);
1889 esdTrackCuts->SetMaxDCAToVertexXY(maxdcaxyITSTPC);
1891 // 7*(0.0050+0.0060/pt^0.9)
1892 //esdTrackCuts->SetMaxDCAToVertexXYPtDep("0.0350+0.0420/pt^0.9");
1894 tag = "Adam Kisiel track selection";
1904 esdTrackCuts->SetRequireTPCRefit(kTRUE);
1905 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1909 esdTrackCuts->SetRequireITSRefit(kTRUE);
1910 esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
1913 tag = "TPC+ITS refit required - for cut studies";
1923 esdTrackCuts->SetRequireTPCRefit(kTRUE);
1924 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1928 //esdTrackCuts->SetRequireITSRefit(kTRUE);
1929 //esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
1932 tag = "TPC refit required - for cut studies";
1942 esdTrackCuts->SetRequireTPCRefit(kFALSE);
1943 esdTrackCuts->SetRequireITSRefit(kFALSE);
1944 esdTrackCuts->SetRequireTPCStandAlone(kTRUE);
1945 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1949 //esdTrackCuts->SetRequireITSRefit(kTRUE);
1950 //esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
1953 tag = "TPC stand alone - for cut studies";
1961 // cuts for data without field
1965 tag += " without field";
1968 Printf("Created track cuts for: %s", tag.Data());
1970 return esdTrackCuts;