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"
47 ClassImp(AliTaskGlobVar)
52 //________________________________________________________________________
53 AliTaskGlobVar::AliTaskGlobVar(const char *name)
54 : 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");
81 //________________________________________________________________________
82 void AliTaskGlobVar::UserCreateOutputObjects()
85 fOutput = new TList();
88 fOutTree = new TTree("globTree","globTree");
89 fOutTree->Branch("g",&globVars,"runID/I:timeStamp/i:zdcNA/F:zdcPA/F:zdcNC/F:zdcPC/F:zem1/F:zem2/F:zvSPD/F:zvTPC/F:chunk/S:flags/S"
90 ":spd1/S:spd2/S:ncontSPDV/S:ncontTPCV/S:nTrTPC/S:nTrTPCITS/S:nTracklets/S:v0A/S:v0C/S:v0Corr/S", 16777216);
93 fOutTree->Branch("gmc",&globVars.mcZV,"mcZV/F:mcdNdEta/S:mcNPart/S:mcNBColl/S", 16777216);
95 fOutput->Add(fOutTree);
97 // fTrackCuts = AliESDtrackCuts::GetStandardTPCOnlyTrackCuts();
98 fTrackCuts = CreatedNdPtTrackCuts(23);
99 fTrackCuts->SetEtaRange(-0.8,0.8);
100 fTrackCuts1 = CreatedNdPtTrackCuts(72);
101 fTrackCuts1->SetEtaRange(-0.8,0.8);
103 PostData(1, fOutput);
104 printf("CreatingXXX\n");
108 //________________________________________________________________________
109 void AliTaskGlobVar::UserExec(Option_t *)
113 AliAnalysisManager* anMan = AliAnalysisManager::GetAnalysisManager();
114 AliESDInputHandler *hand = (AliESDInputHandler*)anMan->GetInputEventHandler();
115 if (!hand) { printf("No ESD handler\n"); return; }
116 AliESDEvent *esd = hand->GetEvent();
117 if (!esd) { printf("No AliESDEvent\n"); return; }
119 if (!fUseMC && !ZDCTimeTrigger(esd)) return;
121 const AliESDVertex* vtxESD = esd->GetPrimaryVertexSPD();
122 Bool_t vtxOK = kTRUE;
123 if (vtxESD->GetNContributors()<1) vtxOK = kFALSE; //return;
124 if (vtxESD->GetDispersion()>0.04) vtxOK = kFALSE; //return;
125 if (vtxESD->GetZRes()>0.25) vtxOK = kFALSE; //return;
126 const AliMultiplicity* multESD = esd->GetMultiplicity();
127 const AliESDVertex* vtxESDTPC = esd->GetPrimaryVertexTPC();
128 // if (vtxESDTPC->GetNContributors()<1) return;
129 // if (vtxESDTPC->GetNContributors()<(-10.+0.25*multESD->GetNumberOfITSClusters(0))) return;
131 globVars.runID = esd->GetRunNumber();
133 rid += globVars.runID;
134 TString flname = hand->GetTree()->GetCurrentFile()->GetName();
137 while ( (id=flname.Index(rid))>=0 ) flname = flname.Data()+id+rid.Length();
138 id = flname.First('.');
140 flname = flname.Data() + id+1;
141 globVars.chunk = (Short_t)flname.Atoi();
143 // printf("%d %s\n",globVars.chunk,hand->GetTree()->GetCurrentFile()->GetName());
145 globVars.timeStamp = esd->GetTimeStamp();
146 globVars.timeStamp = esd->GetTimeStamp();
147 globVars.zvSPD = vtxESD->GetZ();
148 globVars.zvTPC = vtxESDTPC->GetZ();
149 globVars.ncontSPDV = (Short_t)vtxESD->GetNContributors();
150 globVars.ncontTPCV = (Short_t)vtxESDTPC->GetNContributors();
151 // globVars.nTrTPC = fTrackCuts ? (Short_t)fTrackCuts->GetReferenceMultiplicity(esd,kTRUE):-1;
152 globVars.nTrTPC = fTrackCuts ? (Short_t)fTrackCuts->CountAcceptedTracks(esd):-1;
153 globVars.nTrTPCITS = fTrackCuts1 ? (Short_t)fTrackCuts1->CountAcceptedTracks(esd):-1;
154 globVars.nTracklets = multESD->GetNumberOfTracklets();
156 AliESDVZERO* esdV0 = esd->GetVZEROData();
158 globVars.v0A = (Short_t)esdV0->GetMTotV0A();
159 globVars.v0C = (Short_t)esdV0->GetMTotV0C();
161 else globVars.v0A = globVars.v0C = 0;
163 globVars.spd1 = (Short_t)multESD->GetNumberOfITSClusters(0);
164 globVars.spd2 = (Short_t)multESD->GetNumberOfITSClusters(1);
166 float v0Corr,v0CorrR;
167 v0Corr = GetCorrV0(esd,v0CorrR);
168 globVars.v0Corr = (Short_t)v0Corr;
169 // globVars.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] ) globVars.flags |= GloVars_t::kTDCNA; // Bool_t zdcNA = tdc[12];
185 if ( tdc[10] ) globVars.flags |= GloVars_t::kTDCNC; // Bool_t zdcNC = tdc[10];
186 if ( tdc[13] ) globVars.flags |= GloVars_t::kTDCPA; // Bool_t zdcPA = tdc[13];
187 if ( tdc[11] ) globVars.flags |= GloVars_t::kTDCPC; // Bool_t zdcPC = tdc[11];
188 if ( vtxOK ) globVars.flags |= GloVars_t::kSPDVTXOK;
190 globVars.zdcNC = (Float_t) (esdZDC->GetZDCN1Energy()) /8.;
191 globVars.zdcPC = (Float_t) (esdZDC->GetZDCP1Energy()) /8.;
192 globVars.zdcNA = (Float_t) (esdZDC->GetZDCN2Energy()) /8.;
193 globVars.zdcPA = (Float_t) (esdZDC->GetZDCP2Energy()) /8.;
194 globVars.zem1 = (Float_t) (esdZDC->GetZDCEMEnergy(0)) /8.;
195 globVars.zem2 = (Float_t) (esdZDC->GetZDCEMEnergy(1)) /8.;
196 //-----------------------------------------------
198 // ---------------------- MC ONLY -------------------------------
199 AliMCEventHandler* eventHandler = (AliMCEventHandler*)anMan->GetMCtruthEventHandler();
201 AliMCEvent* mcEvent=0;
202 globVars.mcdNdEta = 0;
203 globVars.mcNPart = 0;
204 globVars.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;
216 AliGenEventHeader* mcGenH = mcEvent->GenEventHeader();
217 if (mcGenH->InheritsFrom(AliGenHijingEventHeader::Class())) {
218 AliGenHijingEventHeader* hHijing = (AliGenHijingEventHeader*)mcGenH;
219 globVars.mcNPart = (hHijing->ProjectileParticipants()+hHijing->TargetParticipants())/2.;
220 globVars.mcNBColl = hHijing->NN()+hHijing->NNw()+hHijing->NwN()+hHijing->NwNw();
222 else if (mcGenH->InheritsFrom(AliGenDPMjetEventHeader::Class())) {
223 AliGenDPMjetEventHeader* hDpmJet = (AliGenDPMjetEventHeader*)mcGenH;
224 globVars.mcNPart = (hDpmJet->ProjectileParticipants()+hDpmJet->TargetParticipants())/2.;
225 globVars.mcNBColl = hDpmJet->NN()+hDpmJet->NNw()+hDpmJet->NwN()+hDpmJet->NwNw();
227 else {} // unknown generator
230 mcGenH->PrimaryVertex(vtxMC);
231 globVars.mcZV = vtxMC[2];
237 //________________________________________________________________________
238 void AliTaskGlobVar::Terminate(Option_t *)
240 Printf("Terminating...");
241 // AliAnalysisTaskSE::Terminate();
245 //________________________________________________________________________
246 Float_t AliTaskGlobVar::GetCorrV0(const AliESDEvent* esd, float &v0CorrResc) const
248 // correct V0 non-linearity, prepare a version rescaled to SPD2 corr
249 const Double_t par0[64] = { 6.71e-02 , 6.86e-02 , 7.06e-02 , 6.32e-02 ,
250 5.91e-02 , 6.07e-02 , 5.78e-02 , 5.73e-02 , 5.91e-02 , 6.22e-02 ,
251 5.90e-02 , 6.11e-02 , 5.55e-02 , 5.29e-02 , 5.19e-02 , 5.56e-02 ,
252 6.25e-02 , 7.03e-02 , 5.64e-02 , 5.81e-02 , 4.57e-02 , 5.30e-02 ,
253 5.13e-02 , 6.43e-02 , 6.27e-02 , 6.48e-02 , 6.07e-02 , 1.01e-01 ,
254 6.68e-02 , 7.16e-02 , 6.36e-02 , 5.95e-02 , 2.52e-02 , 2.82e-02 ,
255 2.56e-02 , 2.86e-02 , 2.82e-02 , 2.10e-02 , 2.13e-02 , 2.32e-02 ,
256 2.75e-02 , 4.34e-02 , 3.78e-02 , 4.52e-02 , 4.11e-02 , 3.89e-02 ,
257 4.10e-02 , 3.73e-02 , 4.51e-02 , 5.07e-02 , 5.42e-02 , 4.74e-02 ,
258 4.33e-02 , 4.44e-02 , 4.64e-02 , 3.01e-02 , 6.38e-02 , 5.26e-02 ,
259 4.99e-02 , 5.26e-02 , 5.47e-02 , 3.84e-02 , 5.00e-02 , 5.20e-02 };
260 const Double_t par1[64] = { -6.68e-05 , -7.78e-05 , -6.88e-05 , -5.92e-05 ,
261 -2.43e-05 , -3.54e-05 , -2.91e-05 , -1.99e-05 , -1.40e-05 , -4.01e-05 ,
262 -2.29e-05 , -3.68e-05 , -2.53e-05 , -2.44e-06 , -9.22e-06 , -1.51e-05 ,
263 -2.80e-05 , -2.34e-05 , -1.72e-05 , -1.81e-05 , -1.29e-05 , -2.65e-05 ,
264 -1.61e-05 , -2.86e-05 , -1.74e-05 , -4.23e-05 , -3.41e-05 , -1.05e-04 ,
265 -2.76e-05 , -4.71e-05 , -3.06e-05 , -2.32e-05 , -1.55e-06 , 2.15e-05 ,
266 1.40e-05 , 2.16e-05 , 1.21e-05 , 3.05e-06 , 1.67e-05 , -3.84e-06 ,
267 3.09e-06 , 1.50e-05 , 3.47e-06 , 4.87e-06 , -3.71e-07 , -1.75e-06 ,
268 -1.80e-06 , 9.99e-06 , -6.46e-06 , -4.91e-06 , 1.33e-05 , -2.52e-07 ,
269 -3.85e-06 , 4.94e-06 , -2.48e-07 , -1.20e-05 , 2.07e-06 , 6.12e-06 ,
270 -1.18e-06 , 4.54e-06 , -1.54e-05 , -1.25e-05 , 1.46e-06 , -6.67e-06 };
271 const Double_t par2[64] = { 1.29e-08 , 1.51e-08 , 1.43e-08 , 1.11e-08 ,
272 5.04e-09 , 6.99e-09 , 5.58e-09 , 4.15e-09 , 4.00e-09 , 8.22e-09 ,
273 4.97e-09 , 7.66e-09 , 4.91e-09 , 1.10e-09 , 2.64e-09 , 3.64e-09 ,
274 5.76e-09 , 5.46e-09 , 3.38e-09 , 3.47e-09 , 2.43e-09 , 4.13e-09 ,
275 2.80e-09 , 5.80e-09 , 3.86e-09 , 7.46e-09 , 5.98e-09 , 2.58e-08 ,
276 5.50e-09 , 8.72e-09 , 5.23e-09 , 4.37e-09 , 2.33e-09 , -6.01e-10 ,
277 3.99e-11 , -2.02e-10 , 7.67e-10 , 2.03e-09 , 1.17e-10 , 2.56e-09 ,
278 1.16e-09 , -4.75e-10 , 1.28e-09 , 1.23e-09 , 1.62e-09 , 1.61e-09 ,
279 1.93e-09 , 2.97e-10 , 2.21e-09 , 2.16e-09 , 5.22e-10 , 1.03e-09 ,
280 1.56e-09 , 5.00e-10 , 1.01e-09 , 2.93e-09 , 1.05e-09 , 9.96e-11 ,
281 1.21e-09 , 7.45e-10 , 3.07e-09 , 2.31e-09 , 6.70e-10 , 1.89e-09 };
283 Float_t multCorr = 0;
284 Float_t multCorr2 = 0;
285 Float_t multChCorr[64];
286 AliESDVZERO* esdV0 = esd->GetVZEROData();
287 for(Int_t i = 0; i < 64; ++i) {
288 Double_t b = (esdV0->GetMultiplicity(i)*par1[i]-par0[i]);
289 Double_t s = (b*b-4.*par2[i]*esdV0->GetMultiplicity(i)*esdV0->GetMultiplicity(i));
292 printf("FPE %d %.2f %.2f %.2e\n",i,esdV0->GetMultiplicity(i),b,(b*b-4.*par2[i]*esdV0->GetMultiplicity(i)*esdV0->GetMultiplicity(i)));
296 n = (-b + TMath::Sqrt(s));
298 multChCorr[i] = 2.*esdV0->GetMultiplicity(i)/n*par0[i];
299 multCorr += multChCorr[i];
300 multCorr2 += (multChCorr[i]/par0[i]/64.);
302 v0CorrResc = multCorr2;
306 //_________________________________________________________________
307 Bool_t AliTaskGlobVar::ZDCTimeTrigger(const AliESDEvent *aEsd) const
309 // This method implements a selection
310 // based on the timing in both sides of zdcN
311 // It can be used in order to eliminate
312 // parasitic collisions
313 Bool_t zdcAccept = kFALSE;
315 AliESDZDC *esdZDC = aEsd->GetESDZDC();
317 const Float_t refSum = -568.5;
318 const Float_t refDelta = -2.1;
319 const Float_t sigmaSum = 3.25;
320 const Float_t sigmaDelta = 2.25;
321 for(Int_t i = 0; i < 4; ++i) {
322 if (esdZDC->GetZDCTDCData(10,i) != 0) {
323 Float_t tdcC = 0.025*(esdZDC->GetZDCTDCData(10,i)-esdZDC->GetZDCTDCData(14,i));
324 for(Int_t j = 0; j < 4; ++j) {
325 if (esdZDC->GetZDCTDCData(12,j) != 0) {
326 Float_t tdcA = 0.025*(esdZDC->GetZDCTDCData(12,j)-esdZDC->GetZDCTDCData(14,j));
327 if (((tdcC-tdcA-refDelta)*(tdcC-tdcA-refDelta)/(sigmaDelta*sigmaDelta) +
328 (tdcC+tdcA-refSum)*(tdcC+tdcA-refSum)/(sigmaSum*sigmaSum))< 1.0)
338 AliESDtrackCuts* AliTaskGlobVar::CreatedNdPtTrackCuts(Int_t cutMode, Bool_t fieldOn)
340 // copy of PWG0/dNdPt/macros/CreatedNdPtTrackCuts.C
342 AliESDtrackCuts* esdTrackCuts = new AliESDtrackCuts("AliESDtrackCuts");
345 Double_t cov1, cov2, cov3, cov4, cov5;
347 Double_t maxDCAtoVertex, maxDCAtoVertexXY, maxDCAtoVertexZ;
348 Int_t minNClustersTPC;
349 Double_t maxChi2PerClusterTPC;
350 Double_t minPt, maxPt;
353 // default cuts for ITS+TPC
362 minNClustersTPC = 50;
363 maxChi2PerClusterTPC = 3.5;
365 esdTrackCuts->SetMaxCovDiagonalElements(cov1, cov2, cov3, cov4, cov5);
366 // esdTrackCuts->SetMinNsigmaToVertex(nSigma);
367 esdTrackCuts->SetRequireSigmaToVertex(kTRUE);
368 esdTrackCuts->SetRequireTPCRefit(kTRUE);
369 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
370 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
371 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
373 tag = "Global tracking";
376 // TPC-only cuts (vertex n sigma cut)
379 // beta cuts (still under investigation)
388 minNClustersTPC = 50;
389 maxChi2PerClusterTPC = 3.5;
391 esdTrackCuts->SetMaxCovDiagonalElements(cov1, cov2, cov3, cov4, cov5);
392 // esdTrackCuts->SetMinNsigmaToVertex(nSigma);
393 esdTrackCuts->SetRequireSigmaToVertex(kTRUE);
394 esdTrackCuts->SetRequireTPCRefit(kFALSE);
395 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
396 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
397 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
399 tag = "TPC-only tracking";
402 // TPC-only cuts (vertex maxDCAtoVertex cut)
405 // beta cuts (still under investigation)
406 maxDCAtoVertex = 3.0; // cm
407 minNClustersTPC = 50;
408 maxChi2PerClusterTPC = 3.5;
410 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
411 esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertex);
412 esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertex);
413 esdTrackCuts->SetRequireTPCRefit(kFALSE);
414 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
415 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
416 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
418 tag = "TPC-only tracking";
421 // TPC-only no vertex cuts
424 // beta cuts (still under investigation)
425 minNClustersTPC = 50;
426 maxChi2PerClusterTPC = 3.5;
428 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
429 esdTrackCuts->SetRequireTPCRefit(kFALSE);
430 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
431 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
432 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
434 tag = "TPC-only tracking";
437 // TPC-only no cuts at all
441 // beta cuts (still under investigation)
442 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
443 esdTrackCuts->SetRequireTPCRefit(kFALSE);
444 esdTrackCuts->SetAcceptKinkDaughters(kTRUE);
446 tag = "TPC-only tracking";
449 // TPC-only no kink removal no chi2
452 // beta cuts (still under investigation)
453 minNClustersTPC = 50;
454 //maxChi2PerClusterTPC = 3.5;
456 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
457 esdTrackCuts->SetRequireTPCRefit(kFALSE);
458 esdTrackCuts->SetAcceptKinkDaughters(kTRUE);
459 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
460 //esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
462 tag = "TPC-only tracking";
465 // TPC-only no kink removal
468 // beta cuts (still under investigation)
469 minNClustersTPC = 50;
470 maxChi2PerClusterTPC = 3.5;
472 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
473 esdTrackCuts->SetRequireTPCRefit(kFALSE);
474 esdTrackCuts->SetAcceptKinkDaughters(kTRUE);
475 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
476 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
478 tag = "TPC-only tracking";
481 // TPC-only no kink removal no minNClustersTPC
484 // beta cuts (still under investigation)
485 //minNClustersTPC = 50;
486 maxChi2PerClusterTPC = 3.5;
488 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
489 esdTrackCuts->SetRequireTPCRefit(kFALSE);
490 esdTrackCuts->SetAcceptKinkDaughters(kTRUE);
491 //esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
492 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
494 tag = "TPC-only tracking";
496 // TPC-only no kink removal no minNClustersTPC
499 // beta cuts (still under investigation)
500 //minNClustersTPC = 50;
501 maxChi2PerClusterTPC = 3.5;
502 maxDCAtoVertex = 3.0; // cm
504 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
505 esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertex);
506 esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertex);
507 esdTrackCuts->SetRequireTPCRefit(kFALSE);
508 esdTrackCuts->SetAcceptKinkDaughters(kTRUE);
509 //esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
510 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
512 tag = "TPC-only tracking";
515 // TPC-only no kink removal no minNClustersTPC no maxChi2PerClusterTPC
518 // beta cuts (still under investigation)
519 //minNClustersTPC = 50;
520 //maxChi2PerClusterTPC = 3.5;
521 maxDCAtoVertex = 3.0; // cm
523 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
524 esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertex);
525 esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertex);
526 esdTrackCuts->SetRequireTPCRefit(kFALSE);
527 esdTrackCuts->SetAcceptKinkDaughters(kTRUE);
528 //esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
529 //esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
531 tag = "TPC-only tracking";
534 // TPC-only (loose cuts, absolute DCA cut)
537 // beta cuts (still under investigation)
538 minNClustersTPC = 50;
539 maxChi2PerClusterTPC = 4.0;
540 maxDCAtoVertex = 2.8; // cm
544 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
545 esdTrackCuts->SetRequireTPCRefit(kFALSE);
546 esdTrackCuts->SetAcceptKinkDaughters(kTRUE);
547 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
548 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
549 esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertex);
550 esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertex);
551 esdTrackCuts->SetPtRange(minPt,maxPt);
553 tag = "TPC-only tracking";
557 // TPC-only (loose cuts, no DCA cut)
560 // beta cuts (still under investigation)
561 minNClustersTPC = 50;
562 maxChi2PerClusterTPC = 4.0;
563 maxDCAtoVertexXY = 1.e10; // cm
564 maxDCAtoVertexZ = 1.e10; // cm
568 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
569 esdTrackCuts->SetRequireTPCRefit(kFALSE);
570 esdTrackCuts->SetAcceptKinkDaughters(kTRUE);
571 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
572 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
573 esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
574 esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
575 esdTrackCuts->SetDCAToVertex2D(kTRUE);
576 esdTrackCuts->SetPtRange(minPt,maxPt);
578 tag = "TPC-only tracking";
581 // TPC-only (standard cuts, no DCA cut)
584 // beta cuts (still under investigation)
585 minNClustersTPC = 96;
586 maxChi2PerClusterTPC = 3.5;
587 maxDCAtoVertexXY = 1.e10; // cm
588 maxDCAtoVertexZ = 1.e10; // cm
592 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
593 esdTrackCuts->SetRequireTPCRefit(kFALSE);
594 esdTrackCuts->SetAcceptKinkDaughters(kTRUE);
595 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
596 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
597 esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
598 esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
599 esdTrackCuts->SetDCAToVertex2D(kTRUE);
600 esdTrackCuts->SetPtRange(minPt,maxPt);
602 tag = "TPC-only tracking";
605 // TPC-only (tight cuts, no DCA cut)
608 // beta cuts (still under investigation)
609 minNClustersTPC = 120;
610 maxChi2PerClusterTPC = 3.5;
611 maxDCAtoVertexXY = 1.e10; // cm
612 maxDCAtoVertexZ = 1.e10; // cm
616 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
617 esdTrackCuts->SetRequireTPCRefit(kFALSE);
618 esdTrackCuts->SetAcceptKinkDaughters(kTRUE);
619 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
620 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
621 esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
622 esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
623 esdTrackCuts->SetDCAToVertex2D(kTRUE);
624 esdTrackCuts->SetPtRange(minPt,maxPt);
626 tag = "TPC-only tracking";
629 // TPC-only (loose cuts, no pt cut)
632 // beta cuts (still under investigation)
633 minNClustersTPC = 50;
634 maxChi2PerClusterTPC = 4.0;
635 maxDCAtoVertexXY = 1.e10; // cm
636 maxDCAtoVertexZ = 1.e10; // cm
640 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
641 esdTrackCuts->SetRequireTPCRefit(kFALSE);
642 esdTrackCuts->SetAcceptKinkDaughters(kTRUE);
643 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
644 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
645 esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
646 esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
647 esdTrackCuts->SetDCAToVertex2D(kTRUE);
648 esdTrackCuts->SetPtRange(minPt,maxPt);
650 tag = "TPC-only tracking";
653 // TPC-only (standard cuts, no pt cut)
656 // beta cuts (still under investigation)
657 minNClustersTPC = 96;
658 maxChi2PerClusterTPC = 3.5;
659 maxDCAtoVertexXY = 1.e10; // cm
660 maxDCAtoVertexZ = 1.e10; // cm
664 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
665 esdTrackCuts->SetRequireTPCRefit(kFALSE);
666 esdTrackCuts->SetAcceptKinkDaughters(kTRUE);
667 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
668 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
669 esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
670 esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
671 esdTrackCuts->SetDCAToVertex2D(kTRUE);
672 esdTrackCuts->SetPtRange(minPt,maxPt);
674 tag = "TPC-only tracking";
677 // TPC-only (tight cuts, no pt cuts)
680 // beta cuts (still under investigation)
681 minNClustersTPC = 120;
682 maxChi2PerClusterTPC = 3.5;
683 maxDCAtoVertexXY = 1.e10; // cm
684 maxDCAtoVertexZ = 1.e10; // cm
688 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
689 esdTrackCuts->SetRequireTPCRefit(kFALSE);
690 esdTrackCuts->SetAcceptKinkDaughters(kTRUE);
691 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
692 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
693 esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
694 esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
695 esdTrackCuts->SetDCAToVertex2D(kTRUE);
696 esdTrackCuts->SetPtRange(minPt,maxPt);
698 tag = "TPC-only tracking";
700 // TPC-only (loose cuts)
703 // beta cuts (still under investigation)
704 minNClustersTPC = 50;
705 maxChi2PerClusterTPC = 4.0;
706 //maxDCAtoVertexXY = 2.4; // cm
707 //maxDCAtoVertexZ = 3.2; // cm
708 maxDCAtoVertexXY = 1.6; // cm
709 maxDCAtoVertexZ = 2.1; // cm
713 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
714 esdTrackCuts->SetRequireTPCRefit(kFALSE);
715 esdTrackCuts->SetAcceptKinkDaughters(kTRUE);
716 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
717 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
718 esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
719 esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
720 esdTrackCuts->SetDCAToVertex2D(kTRUE);
721 esdTrackCuts->SetPtRange(minPt,maxPt);
723 tag = "TPC-only tracking";
726 // TPC-only (standard cuts)
729 // beta cuts (still under investigation)
730 minNClustersTPC = 96;
731 maxChi2PerClusterTPC = 3.5;
732 //maxDCAtoVertexXY = 2.4; // cm
733 //maxDCAtoVertexZ = 3.2; // cm
734 maxDCAtoVertexXY = 1.4; // cm
735 maxDCAtoVertexZ = 1.8; // cm
739 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
740 esdTrackCuts->SetRequireTPCRefit(kFALSE);
741 esdTrackCuts->SetAcceptKinkDaughters(kTRUE);
742 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
743 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
744 esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
745 esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
746 esdTrackCuts->SetDCAToVertex2D(kTRUE);
747 esdTrackCuts->SetPtRange(minPt,maxPt);
749 tag = "TPC-only tracking";
752 // TPC-only (tight cuts)
755 // beta cuts (still under investigation)
756 minNClustersTPC = 120;
757 maxChi2PerClusterTPC = 3.0;
758 //maxDCAtoVertexXY = 2.4; // cm
759 //maxDCAtoVertexZ = 3.2; // cm
760 maxDCAtoVertexXY = 1.4; // cm
761 maxDCAtoVertexZ = 1.8; // cm
765 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
766 esdTrackCuts->SetRequireTPCRefit(kFALSE);
767 esdTrackCuts->SetAcceptKinkDaughters(kTRUE);
768 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
769 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
770 esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
771 esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
772 esdTrackCuts->SetDCAToVertex2D(kTRUE);
773 esdTrackCuts->SetPtRange(minPt,maxPt);
775 tag = "TPC-only tracking";
778 // TPC-only (arb. cuts, kink cuts included)
781 // beta cuts (still under investigation)
782 minNClustersTPC = 50;
783 maxChi2PerClusterTPC = 1.e10;
784 maxDCAtoVertexXY = 3.0; // cm
785 maxDCAtoVertexZ = 3.0; // cm
789 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
790 esdTrackCuts->SetRequireTPCRefit(kFALSE);
791 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
792 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
793 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
794 esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
795 esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
796 esdTrackCuts->SetDCAToVertex2D(kTRUE);
797 esdTrackCuts->SetPtRange(minPt,maxPt);
799 tag = "TPC-only tracking";
802 // TPC-only (arb. cuts, kink cuts excluded)
805 // beta cuts (still under investigation)
806 minNClustersTPC = 50;
807 maxChi2PerClusterTPC = 1.e10;
808 maxDCAtoVertexXY = 3.0; // cm
809 maxDCAtoVertexZ = 3.0; // cm
813 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
814 esdTrackCuts->SetRequireTPCRefit(kFALSE);
815 esdTrackCuts->SetAcceptKinkDaughters(kTRUE);
816 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
817 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
818 esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
819 esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
820 esdTrackCuts->SetDCAToVertex2D(kTRUE);
821 esdTrackCuts->SetPtRange(minPt,maxPt);
823 tag = "TPC-only tracking";
826 // TPC-only (arb. cuts, kink cuts excluded, no chi2, no DCA)
829 // beta cuts (still under investigation)
830 minNClustersTPC = 50;
831 maxChi2PerClusterTPC = 1.e10;
832 maxDCAtoVertexXY = 1.e10; // cm
833 maxDCAtoVertexZ = 1.e10; // cm
837 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
838 esdTrackCuts->SetRequireTPCRefit(kFALSE);
839 esdTrackCuts->SetAcceptKinkDaughters(kTRUE);
840 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
841 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
842 esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
843 esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
844 esdTrackCuts->SetDCAToVertex2D(kTRUE);
845 esdTrackCuts->SetPtRange(minPt,maxPt);
847 tag = "TPC-only tracking";
853 // beta cuts (still under investigation)
854 minNClustersTPC = 70;
855 maxChi2PerClusterTPC = 4.0;
856 maxDCAtoVertexXY = 2.4; // cm
857 maxDCAtoVertexZ = 3.2; // cm
859 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
860 esdTrackCuts->SetRequireTPCRefit(kFALSE);
861 esdTrackCuts->SetRequireTPCStandAlone(kTRUE);
862 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
863 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
864 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
865 esdTrackCuts->SetRequireITSRefit(kFALSE);
866 esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
867 esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
868 esdTrackCuts->SetDCAToVertex2D(kTRUE);
869 //esdTrackCuts->SetPtRange(minPt,maxPt);
870 //esdTrackCuts->SetEtaRange(minEta,maxEta);
872 tag = "TPC-only tracking";
875 // TPC-only (no pt cut, no eta cut)
878 // beta cuts (still under investigation)
879 minNClustersTPC = 50;
880 maxChi2PerClusterTPC = 4.0;
881 maxDCAtoVertexXY = 2.4; // cm
882 maxDCAtoVertexZ = 3.2; // cm
886 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
887 esdTrackCuts->SetRequireTPCRefit(kFALSE);
888 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
889 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
890 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
891 esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
892 esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
893 esdTrackCuts->SetDCAToVertex2D(kTRUE);
894 esdTrackCuts->SetPtRange(minPt,maxPt);
896 tag = "TPC-only tracking";
900 // systematic errors DCA cut studies
905 // beta cuts (still under investigation)
906 minNClustersTPC = 50;
907 maxChi2PerClusterTPC = 4.0;
908 maxDCAtoVertexXY = 1.4; // cm
909 maxDCAtoVertexZ = 2.2; // cm
913 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
914 esdTrackCuts->SetRequireTPCRefit(kFALSE);
915 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
916 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
917 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
918 esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
919 esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
920 esdTrackCuts->SetDCAToVertex2D(kTRUE);
921 esdTrackCuts->SetPtRange(minPt,maxPt);
923 tag = "TPC-only tracking";
928 // beta cuts (still under investigation)
929 minNClustersTPC = 50;
930 maxChi2PerClusterTPC = 4.0;
931 maxDCAtoVertexXY = 1.6; // cm
932 maxDCAtoVertexZ = 2.4; // cm
936 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
937 esdTrackCuts->SetRequireTPCRefit(kFALSE);
938 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
939 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
940 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
941 esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
942 esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
943 esdTrackCuts->SetDCAToVertex2D(kTRUE);
944 esdTrackCuts->SetPtRange(minPt,maxPt);
946 tag = "TPC-only tracking";
950 // systematic errors cut studies
955 // beta cuts (still under investigation)
956 minNClustersTPC = 50;
957 maxChi2PerClusterTPC = 4.0;
958 maxDCAtoVertexXY = 1.8; // cm
959 maxDCAtoVertexZ = 2.6; // cm
963 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
964 esdTrackCuts->SetRequireTPCRefit(kFALSE);
965 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
966 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
967 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
968 esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
969 esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
970 esdTrackCuts->SetDCAToVertex2D(kTRUE);
971 esdTrackCuts->SetPtRange(minPt,maxPt);
973 tag = "TPC-only tracking";
978 // beta cuts (still under investigation)
979 minNClustersTPC = 50;
980 maxChi2PerClusterTPC = 4.0;
981 maxDCAtoVertexXY = 2.0; // cm
982 maxDCAtoVertexZ = 2.8; // cm
986 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
987 esdTrackCuts->SetRequireTPCRefit(kFALSE);
988 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
989 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
990 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
991 esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
992 esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
993 esdTrackCuts->SetDCAToVertex2D(kTRUE);
994 esdTrackCuts->SetPtRange(minPt,maxPt);
996 tag = "TPC-only tracking";
1001 // beta cuts (still under investigation)
1002 minNClustersTPC = 50;
1003 maxChi2PerClusterTPC = 4.0;
1004 maxDCAtoVertexXY = 2.2; // cm
1005 maxDCAtoVertexZ = 3.0; // cm
1009 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1010 esdTrackCuts->SetRequireTPCRefit(kFALSE);
1011 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1012 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
1013 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
1014 esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
1015 esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
1016 esdTrackCuts->SetDCAToVertex2D(kTRUE);
1017 esdTrackCuts->SetPtRange(minPt,maxPt);
1019 tag = "TPC-only tracking";
1024 // beta cuts (still under investigation)
1025 minNClustersTPC = 50;
1026 maxChi2PerClusterTPC = 4.0;
1027 maxDCAtoVertexXY = 2.4; // cm
1028 maxDCAtoVertexZ = 3.2; // cm
1032 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1033 esdTrackCuts->SetRequireTPCRefit(kFALSE);
1034 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1035 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
1036 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
1037 esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
1038 esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
1039 esdTrackCuts->SetDCAToVertex2D(kTRUE);
1040 esdTrackCuts->SetPtRange(minPt,maxPt);
1042 tag = "TPC-only tracking";
1047 // beta cuts (still under investigation)
1048 minNClustersTPC = 50;
1049 maxChi2PerClusterTPC = 4.0;
1050 maxDCAtoVertexXY = 2.6; // cm
1051 maxDCAtoVertexZ = 3.4; // cm
1055 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1056 esdTrackCuts->SetRequireTPCRefit(kFALSE);
1057 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1058 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
1059 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
1060 esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
1061 esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
1062 esdTrackCuts->SetDCAToVertex2D(kTRUE);
1063 esdTrackCuts->SetPtRange(minPt,maxPt);
1065 tag = "TPC-only tracking";
1071 // beta cuts (still under investigation)
1072 minNClustersTPC = 50;
1073 maxChi2PerClusterTPC = 4.0;
1074 maxDCAtoVertexXY = 2.8; // cm
1075 maxDCAtoVertexZ = 3.6; // cm
1079 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1080 esdTrackCuts->SetRequireTPCRefit(kFALSE);
1081 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1082 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
1083 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
1084 esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
1085 esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
1086 esdTrackCuts->SetDCAToVertex2D(kTRUE);
1087 esdTrackCuts->SetPtRange(minPt,maxPt);
1089 tag = "TPC-only tracking";
1094 // beta cuts (still under investigation)
1095 minNClustersTPC = 50;
1096 maxChi2PerClusterTPC = 4.0;
1097 maxDCAtoVertexXY = 3.0; // cm
1098 maxDCAtoVertexZ = 3.8; // cm
1102 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1103 esdTrackCuts->SetRequireTPCRefit(kFALSE);
1104 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1105 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
1106 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
1107 esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
1108 esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
1109 esdTrackCuts->SetDCAToVertex2D(kTRUE);
1110 esdTrackCuts->SetPtRange(minPt,maxPt);
1112 tag = "TPC-only tracking";
1117 // beta cuts (still under investigation)
1118 minNClustersTPC = 50;
1119 maxChi2PerClusterTPC = 4.0;
1120 maxDCAtoVertexXY = 3.2; // cm
1121 maxDCAtoVertexZ = 4.0; // cm
1125 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1126 esdTrackCuts->SetRequireTPCRefit(kFALSE);
1127 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1128 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
1129 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
1130 esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
1131 esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
1132 esdTrackCuts->SetDCAToVertex2D(kTRUE);
1133 esdTrackCuts->SetPtRange(minPt,maxPt);
1135 tag = "TPC-only tracking";
1140 // beta cuts (still under investigation)
1141 minNClustersTPC = 50;
1142 maxChi2PerClusterTPC = 4.0;
1143 maxDCAtoVertexXY = 3.4; // cm
1144 maxDCAtoVertexZ = 4.2; // cm
1148 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1149 esdTrackCuts->SetRequireTPCRefit(kFALSE);
1150 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1151 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
1152 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
1153 esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
1154 esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
1155 esdTrackCuts->SetDCAToVertex2D(kTRUE);
1156 esdTrackCuts->SetPtRange(minPt,maxPt);
1158 tag = "TPC-only tracking";
1162 // cut stability systematics
1167 // beta cuts (still under investigation)
1168 minNClustersTPC = 70;
1169 maxChi2PerClusterTPC = 4.0;
1170 maxDCAtoVertexXY = 2.4; // cm
1171 maxDCAtoVertexZ = 3.2; // cm
1175 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1176 esdTrackCuts->SetRequireTPCRefit(kFALSE);
1177 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1178 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
1179 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
1180 esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
1181 esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
1182 esdTrackCuts->SetDCAToVertex2D(kTRUE);
1183 esdTrackCuts->SetPtRange(minPt,maxPt);
1185 tag = "TPC-only tracking";
1190 // beta cuts (still under investigation)
1191 minNClustersTPC = 90;
1192 maxChi2PerClusterTPC = 4.0;
1193 maxDCAtoVertexXY = 2.4; // cm
1194 maxDCAtoVertexZ = 3.2; // cm
1198 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1199 esdTrackCuts->SetRequireTPCRefit(kFALSE);
1200 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1201 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
1202 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
1203 esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
1204 esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
1205 esdTrackCuts->SetDCAToVertex2D(kTRUE);
1206 esdTrackCuts->SetPtRange(minPt,maxPt);
1208 tag = "TPC-only tracking";
1213 // beta cuts (still under investigation)
1214 minNClustersTPC = 50;
1215 maxChi2PerClusterTPC = 3.0;
1216 maxDCAtoVertexXY = 2.4; // cm
1217 maxDCAtoVertexZ = 3.2; // cm
1221 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1222 esdTrackCuts->SetRequireTPCRefit(kFALSE);
1223 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1224 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
1225 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
1226 esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
1227 esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
1228 esdTrackCuts->SetDCAToVertex2D(kTRUE);
1229 esdTrackCuts->SetPtRange(minPt,maxPt);
1231 tag = "TPC-only tracking";
1236 // beta cuts (still under investigation)
1237 minNClustersTPC = 50;
1238 maxChi2PerClusterTPC = 5.0;
1239 maxDCAtoVertexXY = 2.4; // cm
1240 maxDCAtoVertexZ = 3.2; // cm
1244 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1245 esdTrackCuts->SetRequireTPCRefit(kFALSE);
1246 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1247 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
1248 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
1249 esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
1250 esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
1251 esdTrackCuts->SetDCAToVertex2D(kTRUE);
1252 esdTrackCuts->SetPtRange(minPt,maxPt);
1254 tag = "TPC-only tracking";
1259 // beta cuts (still under investigation)
1260 minNClustersTPC = 50;
1261 maxChi2PerClusterTPC = 4.0;
1262 maxDCAtoVertexXY = 1.4; // cm
1263 maxDCAtoVertexZ = 2.2; // cm
1267 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1268 esdTrackCuts->SetRequireTPCRefit(kFALSE);
1269 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1270 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
1271 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
1272 esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
1273 esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
1274 esdTrackCuts->SetDCAToVertex2D(kTRUE);
1275 esdTrackCuts->SetPtRange(minPt,maxPt);
1277 tag = "TPC-only tracking";
1282 // beta cuts (still under investigation)
1283 minNClustersTPC = 50;
1284 maxChi2PerClusterTPC = 4.0;
1285 maxDCAtoVertexXY = 3.4; // cm
1286 maxDCAtoVertexZ = 4.2; // cm
1290 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1291 esdTrackCuts->SetRequireTPCRefit(kFALSE);
1292 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1293 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
1294 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
1295 esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
1296 esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
1297 esdTrackCuts->SetDCAToVertex2D(kTRUE);
1298 esdTrackCuts->SetPtRange(minPt,maxPt);
1300 tag = "TPC-only tracking";
1305 // beta cuts (still under investigation)
1306 minNClustersTPC = 50;
1307 maxChi2PerClusterTPC = 4.0;
1308 maxDCAtoVertexXY = 2.4; // cm
1309 maxDCAtoVertexZ = 3.2; // cm
1313 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1314 esdTrackCuts->SetRequireTPCRefit(kFALSE);
1315 //esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1316 esdTrackCuts->SetAcceptKinkDaughters(kTRUE);
1317 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
1318 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
1319 esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
1320 esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
1321 esdTrackCuts->SetDCAToVertex2D(kTRUE);
1322 esdTrackCuts->SetPtRange(minPt,maxPt);
1324 tag = "TPC-only tracking";
1329 // beta cuts (still under investigation)
1330 minNClustersTPC = 50;
1331 maxChi2PerClusterTPC = 4.0;
1332 //maxDCAtoVertexXY = 2.4; // cm
1333 //maxDCAtoVertexZ = 3.2; // cm
1337 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1338 esdTrackCuts->SetRequireTPCRefit(kFALSE);
1339 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1340 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
1341 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
1342 //esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
1343 //esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
1344 //esdTrackCuts->SetDCAToVertex2D(kTRUE);
1345 //esdTrackCuts->SetPtRange(minPt,maxPt);
1346 //esdTrackCuts->SetEtaRange(minEta,maxEta);
1348 tag = "TPC-only tracking";
1351 // TPC-only + pt cut + eta cut
1354 // beta cuts (still under investigation)
1355 //minNClustersTPC = 50;
1356 //maxChi2PerClusterTPC = 4.0;
1357 maxDCAtoVertexXY = 2.4; // cm
1358 maxDCAtoVertexZ = 3.2; // cm
1362 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1363 esdTrackCuts->SetRequireTPCRefit(kFALSE);
1364 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1365 //esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
1366 //esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
1367 esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
1368 esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
1369 esdTrackCuts->SetDCAToVertex2D(kTRUE);
1370 //esdTrackCuts->SetPtRange(minPt,maxPt);
1371 //esdTrackCuts->SetEtaRange(minEta,maxEta);
1373 tag = "TPC-only tracking";
1376 // TPC-tracks + SPD point + ITS refit
1380 Double_t maxchi2perTPCcl=4.;
1381 //Double_t maxEtaInAcc=0.8;
1382 Double_t maxdcaxyITSTPC=0.2;
1383 Double_t maxdcazITSTPC=1.e9;
1385 esdTrackCuts->SetMaxDCAToVertexXY(maxdcaxyITSTPC);
1386 esdTrackCuts->SetMaxDCAToVertexZ(maxdcazITSTPC);
1387 esdTrackCuts->SetDCAToVertex2D(kFALSE);
1388 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1389 esdTrackCuts->SetRequireITSRefit(kTRUE);
1390 esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
1391 esdTrackCuts->SetRequireTPCStandAlone(kTRUE);
1392 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1393 esdTrackCuts->SetMinNClustersTPC(minclsTPC);
1394 esdTrackCuts->SetMaxChi2PerClusterTPC(maxchi2perTPCcl);
1395 //esdTrackCuts->SetEtaRange(-maxEtaInAcc,maxEtaInAcc);
1397 tag = "TPC-tracks + ITS refit + >1 SPD cluster";
1400 // TPC-tracks + SPD point + ITS refit
1405 Double_t maxchi2perTPCcl=4.;
1406 Double_t maxdcaxyITSTPC=0.2;
1407 Double_t maxdcazITSTPC=1.e9;
1409 esdTrackCuts->SetMaxDCAToVertexXY(maxdcaxyITSTPC);
1410 esdTrackCuts->SetMaxDCAToVertexZ(maxdcazITSTPC);
1411 esdTrackCuts->SetDCAToVertex2D(kFALSE);
1412 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1413 esdTrackCuts->SetRequireITSRefit(kTRUE);
1414 esdTrackCuts->SetMinNClustersITS(minclsITS);
1415 esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
1416 //esdTrackCuts->SetRequireTPCStandAlone(kTRUE);
1417 esdTrackCuts->SetRequireTPCRefit(kTRUE);
1418 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1419 esdTrackCuts->SetMinNClustersTPC(minclsTPC);
1420 esdTrackCuts->SetMaxChi2PerClusterTPC(maxchi2perTPCcl);
1422 tag = "Global tracking: TPC refit + ITS refit + >3 ITS clusters + >=1 SPD cluster";
1426 // TPC-tracks + SPD point + ITS refit + DCAr(pt)
1430 Double_t maxchi2perTPCcl=4.;
1431 Double_t maxdcaxyITSTPC=1.e9;
1432 Double_t maxdcazITSTPC=1.e9;
1434 esdTrackCuts->SetMaxDCAToVertexXY(maxdcaxyITSTPC);
1435 esdTrackCuts->SetMaxDCAToVertexZ(maxdcazITSTPC);
1436 esdTrackCuts->SetDCAToVertex2D(kFALSE);
1437 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1438 esdTrackCuts->SetRequireITSRefit(kTRUE);
1439 esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
1440 esdTrackCuts->SetRequireTPCStandAlone(kTRUE);
1441 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1442 esdTrackCuts->SetMinNClustersTPC(minclsTPC);
1443 esdTrackCuts->SetMaxChi2PerClusterTPC(maxchi2perTPCcl);
1445 tag = "TPC-tracks + ITS refit + >1 SPD cluster + DCAr(Pt)";
1449 // TPC-tracks + SPD point + ITS refit + DCAr(pt)
1453 Double_t maxchi2perTPCcl=4.;
1454 Double_t maxdcazITSTPC=1.e9;
1459 esdTrackCuts->SetRequireTPCStandAlone(kTRUE);
1460 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1461 esdTrackCuts->SetMinNClustersTPC(minclsTPC);
1462 esdTrackCuts->SetMaxChi2PerClusterTPC(maxchi2perTPCcl);
1466 esdTrackCuts->SetRequireITSRefit(kTRUE);
1467 esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
1469 // primary selection
1471 esdTrackCuts->SetDCAToVertex2D(kFALSE);
1472 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1473 esdTrackCuts->SetMaxDCAToVertexZ(maxdcazITSTPC);
1475 // 7*(0.0050+0.0060/pt^0.9)
1476 esdTrackCuts->SetMaxDCAToVertexXYPtDep("0.0350+0.0420/pt^0.9");
1478 tag = "TPC-tracks + ITS refit + >1 SPD cluster + DCAr(Pt)";
1481 // TPC+ITS combine tracking + DCAr(pt) + DCAz(pt)
1485 Double_t maxchi2perTPCcl=4.;
1486 Double_t maxdcazITSTPC=1.e9;
1491 esdTrackCuts->SetRequireTPCRefit(kTRUE);
1492 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1493 esdTrackCuts->SetMinNClustersTPC(minclsTPC);
1494 esdTrackCuts->SetMaxChi2PerClusterTPC(maxchi2perTPCcl);
1498 esdTrackCuts->SetRequireITSRefit(kTRUE);
1499 esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
1501 // primary selection
1503 esdTrackCuts->SetDCAToVertex2D(kFALSE);
1504 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1505 esdTrackCuts->SetMaxDCAToVertexZ(maxdcazITSTPC);
1507 // DCArphi parametrization (LHC10c pass2)
1508 // 7*(0.0026+0.0050/pt^1.01)
1509 esdTrackCuts->SetMaxDCAToVertexXYPtDep("0.0182+0.0350/pt^1.01");
1511 // DCArphi parametrization (LHC10c pass2)
1512 // 7*(0.01+0.011/pt^0.72)
1513 esdTrackCuts->SetMaxDCAToVertexZPtDep("0.07+0.077/pt^0.72");
1515 tag = "TPC+ITS combine tracking + DCAr(pt) + DCAz(pt)";
1518 // TPC+ITS combine tracking + DCAr(pt) (2010)
1522 Double_t maxchi2perTPCcl=4.;
1523 Double_t maxdcazITSTPC=2.0;
1528 esdTrackCuts->SetRequireTPCRefit(kTRUE);
1529 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1530 esdTrackCuts->SetMinNClustersTPC(minclsTPC);
1531 esdTrackCuts->SetMaxChi2PerClusterTPC(maxchi2perTPCcl);
1535 esdTrackCuts->SetRequireITSRefit(kTRUE);
1536 esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
1538 // primary selection
1540 esdTrackCuts->SetDCAToVertex2D(kFALSE);
1541 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1542 esdTrackCuts->SetMaxDCAToVertexZ(maxdcazITSTPC);
1544 // DCArphi parametrization (LHC10c pass2)
1545 // 7*(0.0026+0.0050/pt^1.01)
1546 esdTrackCuts->SetMaxDCAToVertexXYPtDep("0.0182+0.0350/pt^1.01");
1548 tag = "TPC+ITS combine tracking + DCAr(pt) (2010)";
1551 // TPC-tracks + SPD point + ITS refit + DCAr(pt) 4-sigma
1555 Double_t maxchi2perTPCcl=4.;
1556 Double_t maxdcazITSTPC=1.e9;
1561 esdTrackCuts->SetRequireTPCStandAlone(kTRUE);
1562 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1563 esdTrackCuts->SetMinNClustersTPC(minclsTPC);
1564 esdTrackCuts->SetMaxChi2PerClusterTPC(maxchi2perTPCcl);
1568 esdTrackCuts->SetRequireITSRefit(kTRUE);
1569 esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
1571 // primary selection
1573 esdTrackCuts->SetDCAToVertex2D(kFALSE);
1574 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1575 esdTrackCuts->SetMaxDCAToVertexZ(maxdcazITSTPC);
1577 // 4*(0.0050+0.0060/pt^0.9)
1578 esdTrackCuts->SetMaxDCAToVertexXYPtDep("0.02+0.024/pt^0.9");
1580 tag = "TPC-tracks + ITS refit + >1 SPD cluster + DCAr(Pt) 4-sigma";
1583 // TPC-tracks + SPD point + ITS refit + DCAr(pt) 10-sigma
1587 Double_t maxchi2perTPCcl=4.;
1588 Double_t maxdcazITSTPC=1.e9;
1593 esdTrackCuts->SetRequireTPCStandAlone(kTRUE);
1594 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1595 esdTrackCuts->SetMinNClustersTPC(minclsTPC);
1596 esdTrackCuts->SetMaxChi2PerClusterTPC(maxchi2perTPCcl);
1600 esdTrackCuts->SetRequireITSRefit(kTRUE);
1601 esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
1603 // primary selection
1605 esdTrackCuts->SetDCAToVertex2D(kFALSE);
1606 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1607 esdTrackCuts->SetMaxDCAToVertexZ(maxdcazITSTPC);
1609 // 10*(0.0050+0.0060/pt^0.9)
1610 esdTrackCuts->SetMaxDCAToVertexXYPtDep("0.05+0.06/pt^0.9");
1612 tag = "TPC-tracks + ITS refit + >1 SPD cluster + DCAr(Pt) 10 sigma";
1615 // TPC-tracks + SPD point + ITS refit + DCAr(pt) + 60 TPCclust
1619 Double_t maxchi2perTPCcl=4.;
1620 Double_t maxdcazITSTPC=1.e9;
1625 esdTrackCuts->SetRequireTPCStandAlone(kTRUE);
1626 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1627 esdTrackCuts->SetMinNClustersTPC(minclsTPC);
1628 esdTrackCuts->SetMaxChi2PerClusterTPC(maxchi2perTPCcl);
1632 esdTrackCuts->SetRequireITSRefit(kTRUE);
1633 esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
1635 // primary selection
1637 esdTrackCuts->SetDCAToVertex2D(kFALSE);
1638 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1639 esdTrackCuts->SetMaxDCAToVertexZ(maxdcazITSTPC);
1641 // 7*(0.0050+0.0060/pt^0.9)
1642 esdTrackCuts->SetMaxDCAToVertexXYPtDep("0.0350+0.0420/pt^0.9");
1644 tag = "TPC-tracks + ITS refit + >1 SPD cluster + DCAr(Pt) + 60 TPCclust";
1647 // TPC-tracks + SPD point + ITS refit + DCAr(pt) + 80 clusters
1651 Double_t maxchi2perTPCcl=4.;
1652 Double_t maxdcazITSTPC=1.e9;
1657 esdTrackCuts->SetRequireTPCStandAlone(kTRUE);
1658 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1659 esdTrackCuts->SetMinNClustersTPC(minclsTPC);
1660 esdTrackCuts->SetMaxChi2PerClusterTPC(maxchi2perTPCcl);
1664 esdTrackCuts->SetRequireITSRefit(kTRUE);
1665 esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
1667 // primary selection
1669 esdTrackCuts->SetDCAToVertex2D(kFALSE);
1670 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1671 esdTrackCuts->SetMaxDCAToVertexZ(maxdcazITSTPC);
1673 // 7*(0.0050+0.0060/pt^0.9)
1674 esdTrackCuts->SetMaxDCAToVertexXYPtDep("0.0350+0.0420/pt^0.9");
1676 tag = "TPC-tracks + ITS refit + >1 SPD cluster + DCAr(Pt) + 80 TPCclust";
1679 // TPC-tracks + SPD point + ITS refit + DCAr(pt) + TPCchi2=3.5
1683 Double_t maxchi2perTPCcl=3.5;
1684 Double_t maxdcazITSTPC=1.e9;
1689 esdTrackCuts->SetRequireTPCStandAlone(kTRUE);
1690 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1691 esdTrackCuts->SetMinNClustersTPC(minclsTPC);
1692 esdTrackCuts->SetMaxChi2PerClusterTPC(maxchi2perTPCcl);
1696 esdTrackCuts->SetRequireITSRefit(kTRUE);
1697 esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
1699 // primary selection
1701 esdTrackCuts->SetDCAToVertex2D(kFALSE);
1702 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1703 esdTrackCuts->SetMaxDCAToVertexZ(maxdcazITSTPC);
1705 // 7*(0.0050+0.0060/pt^0.9)
1706 esdTrackCuts->SetMaxDCAToVertexXYPtDep("0.0350+0.0420/pt^0.9");
1708 tag = "TPC-tracks + ITS refit + >1 SPD cluster + DCAr(Pt) + TPCchi2 3.5";
1711 // TPC-tracks + SPD point + ITS refit + DCAr(pt) + TPCchi2=4.5
1715 Double_t maxchi2perTPCcl=4.5;
1716 Double_t maxdcazITSTPC=1.e9;
1721 esdTrackCuts->SetRequireTPCStandAlone(kTRUE);
1722 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1723 esdTrackCuts->SetMinNClustersTPC(minclsTPC);
1724 esdTrackCuts->SetMaxChi2PerClusterTPC(maxchi2perTPCcl);
1728 esdTrackCuts->SetRequireITSRefit(kTRUE);
1729 esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
1731 // primary selection
1733 esdTrackCuts->SetDCAToVertex2D(kFALSE);
1734 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1735 esdTrackCuts->SetMaxDCAToVertexZ(maxdcazITSTPC);
1737 // 7*(0.0050+0.0060/pt^0.9)
1738 esdTrackCuts->SetMaxDCAToVertexXYPtDep("0.0350+0.0420/pt^0.9");
1740 tag = "TPC-tracks + ITS refit + >1 SPD cluster + DCAr(Pt) + TPCchi2 4.5";
1747 minNClustersTPC = 70;
1748 maxChi2PerClusterTPC = 4.0;
1749 maxDCAtoVertexXY = 1.e9; // cm
1750 maxDCAtoVertexZ = 1.e9; // cm
1752 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1753 esdTrackCuts->SetRequireTPCRefit(kFALSE);
1754 esdTrackCuts->SetRequireTPCStandAlone(kTRUE);
1755 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1756 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
1757 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
1758 esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
1759 esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
1760 esdTrackCuts->SetDCAToVertex2D(kTRUE);
1762 tag = "TPC-tracks loose criteria";
1766 // TPC-tracks + SPD point + ITS refit + DCAr(pt) + 50 TPCclust
1770 Double_t maxchi2perTPCcl=4.;
1771 Double_t maxdcazITSTPC=1.e9;
1776 esdTrackCuts->SetRequireTPCStandAlone(kTRUE);
1777 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1778 esdTrackCuts->SetMinNClustersTPC(minclsTPC);
1779 esdTrackCuts->SetMaxChi2PerClusterTPC(maxchi2perTPCcl);
1783 esdTrackCuts->SetRequireITSRefit(kTRUE);
1784 esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
1786 // primary selection
1788 esdTrackCuts->SetDCAToVertex2D(kFALSE);
1789 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1790 esdTrackCuts->SetMaxDCAToVertexZ(maxdcazITSTPC);
1792 // 7*(0.0050+0.0060/pt^0.9)
1793 esdTrackCuts->SetMaxDCAToVertexXYPtDep("0.0350+0.0420/pt^0.9");
1795 tag = "TPC-tracks + ITS refit + >1 SPD cluster + DCAr(Pt) + 60 TPCclust";
1798 // TPC-tracks + SPD point + ITS refit + DCAr(pt) + 70 TPCclust + accept kink daughters
1802 Double_t maxchi2perTPCcl=4.;
1803 Double_t maxdcazITSTPC=1.e9;
1808 esdTrackCuts->SetRequireTPCStandAlone(kTRUE);
1809 esdTrackCuts->SetAcceptKinkDaughters(kTRUE);
1810 esdTrackCuts->SetMinNClustersTPC(minclsTPC);
1811 esdTrackCuts->SetMaxChi2PerClusterTPC(maxchi2perTPCcl);
1815 esdTrackCuts->SetRequireITSRefit(kTRUE);
1816 esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
1818 // primary selection
1820 esdTrackCuts->SetDCAToVertex2D(kFALSE);
1821 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1822 esdTrackCuts->SetMaxDCAToVertexZ(maxdcazITSTPC);
1824 // 7*(0.0050+0.0060/pt^0.9)
1825 esdTrackCuts->SetMaxDCAToVertexXYPtDep("0.0350+0.0420/pt^0.9");
1827 tag = "TPC-tracks + ITS refit + >1 SPD cluster + DCAr(Pt) + 60 TPCclust";
1830 // TPC-tracks + SPD point + ITS refit + DCAr(pt) + 30 TPCclust + accept kink daughters
1834 Double_t maxchi2perTPCcl=4.;
1835 Double_t maxdcazITSTPC=1.e9;
1840 esdTrackCuts->SetRequireTPCStandAlone(kTRUE);
1841 esdTrackCuts->SetAcceptKinkDaughters(kTRUE);
1842 esdTrackCuts->SetMinNClustersTPC(minclsTPC);
1843 esdTrackCuts->SetMaxChi2PerClusterTPC(maxchi2perTPCcl);
1847 esdTrackCuts->SetRequireITSRefit(kTRUE);
1848 esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
1850 // primary selection
1852 esdTrackCuts->SetDCAToVertex2D(kFALSE);
1853 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1854 esdTrackCuts->SetMaxDCAToVertexZ(maxdcazITSTPC);
1856 // 7*(0.0050+0.0060/pt^0.9)
1857 esdTrackCuts->SetMaxDCAToVertexXYPtDep("0.0350+0.0420/pt^0.9");
1859 tag = "TPC-tracks + ITS refit + >1 SPD cluster + DCAr(Pt) + 60 TPCclust";
1862 // Adam Kisiel track selectiion
1866 Double_t maxchi2perTPCcl=4.;
1867 Double_t maxdcazITSTPC=0.25;
1868 Double_t maxdcaxyITSTPC=0.2;
1873 //esdTrackCuts->SetRequireTPCStandAlone(kTRUE);
1874 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1875 esdTrackCuts->SetMinNClustersTPC(minclsTPC);
1876 esdTrackCuts->SetMaxChi2PerClusterTPC(maxchi2perTPCcl);
1880 esdTrackCuts->SetRequireITSRefit(kTRUE);
1881 //esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
1883 // primary selection
1885 //esdTrackCuts->SetDCAToVertex2D(kFALSE);
1886 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1887 esdTrackCuts->SetMaxDCAToVertexZ(maxdcazITSTPC);
1888 esdTrackCuts->SetMaxDCAToVertexXY(maxdcaxyITSTPC);
1890 // 7*(0.0050+0.0060/pt^0.9)
1891 //esdTrackCuts->SetMaxDCAToVertexXYPtDep("0.0350+0.0420/pt^0.9");
1893 tag = "Adam Kisiel track selection";
1903 esdTrackCuts->SetRequireTPCRefit(kTRUE);
1904 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1908 esdTrackCuts->SetRequireITSRefit(kTRUE);
1909 esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
1912 tag = "TPC+ITS refit required - for cut studies";
1922 esdTrackCuts->SetRequireTPCRefit(kTRUE);
1923 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1927 //esdTrackCuts->SetRequireITSRefit(kTRUE);
1928 //esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
1931 tag = "TPC refit required - for cut studies";
1941 esdTrackCuts->SetRequireTPCRefit(kFALSE);
1942 esdTrackCuts->SetRequireITSRefit(kFALSE);
1943 esdTrackCuts->SetRequireTPCStandAlone(kTRUE);
1944 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1948 //esdTrackCuts->SetRequireITSRefit(kTRUE);
1949 //esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
1952 tag = "TPC stand alone - for cut studies";
1960 // cuts for data without field
1964 tag += " without field";
1967 Printf("Created track cuts for: %s", tag.Data());
1969 return esdTrackCuts;