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 "AliCentrality.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:zdcNAC/F:zdcNCC/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;
191 const Double_t * towZNC = esdZDC->GetZN1TowerEnergy();
192 const Double_t * towZPC = esdZDC->GetZP1TowerEnergy();
193 const Double_t * towZNA = esdZDC->GetZN2TowerEnergy();
194 const Double_t * towZPA = esdZDC->GetZP2TowerEnergy();
196 fGlobVars.zdcNC = (Float_t) (esdZDC->GetZDCN1Energy());
197 fGlobVars.zdcPC = (Float_t) (esdZDC->GetZDCP1Energy());
198 fGlobVars.zdcNA = (Float_t) (esdZDC->GetZDCN2Energy());
199 fGlobVars.zdcPA = (Float_t) (esdZDC->GetZDCP2Energy());
201 fGlobVars.zdcNCC = (Float_t) (towZNC[0]);
202 fGlobVars.zdcNAC = (Float_t) (towZNA[0]);
205 fGlobVars.zem1 = (Float_t) (esdZDC->GetZDCEMEnergy(0)) /8.;
206 fGlobVars.zem2 = (Float_t) (esdZDC->GetZDCEMEnergy(1)) /8.;
210 //-----------------------------------------------
212 // ---------------------- MC ONLY -------------------------------
213 AliMCEventHandler* eventHandler = (AliMCEventHandler*)anMan->GetMCtruthEventHandler();
215 AliMCEvent* mcEvent=0;
216 fGlobVars.mcdNdEta = 0;
217 fGlobVars.mcNPart = 0;
218 fGlobVars.mcNBColl = 0;
219 if (fUseMC && eventHandler && (mcEvent=eventHandler->MCEvent()) && (stack=mcEvent->Stack())) {
220 int ntr = stack->GetNtrack();
221 for (int itr=ntr;itr--;) {
222 if (!stack->IsPhysicalPrimary(itr)) continue;
223 AliMCParticle *part = (AliMCParticle*)mcEvent->GetTrack(itr);
224 if (!part || !part->Charge()) continue;
225 Float_t eta = part->Eta();
226 if (TMath::Abs(eta)>0.5) continue;
227 fGlobVars.mcdNdEta++;
230 AliGenEventHeader* mcGenH = mcEvent->GenEventHeader();
231 if (mcGenH->InheritsFrom(AliGenHijingEventHeader::Class())) {
232 AliGenHijingEventHeader* hHijing = (AliGenHijingEventHeader*)mcGenH;
233 fGlobVars.mcNPart = (hHijing->ProjectileParticipants()+hHijing->TargetParticipants())/2.;
234 fGlobVars.mcNBColl = hHijing->NN()+hHijing->NNw()+hHijing->NwN()+hHijing->NwNw();
236 else if (mcGenH->InheritsFrom(AliGenDPMjetEventHeader::Class())) {
237 AliGenDPMjetEventHeader* hDpmJet = (AliGenDPMjetEventHeader*)mcGenH;
238 fGlobVars.mcNPart = (hDpmJet->ProjectileParticipants()+hDpmJet->TargetParticipants())/2.;
239 fGlobVars.mcNBColl = hDpmJet->NN()+hDpmJet->NNw()+hDpmJet->NwN()+hDpmJet->NwNw();
241 else {} // unknown generator
244 mcGenH->PrimaryVertex(vtxMC);
245 fGlobVars.mcZV = vtxMC[2];
251 //________________________________________________________________________
252 void AliTaskGlobVar::Terminate(Option_t *)
255 Printf("Terminating...");
256 // AliAnalysisTaskSE::Terminate();
260 //________________________________________________________________________
261 Float_t AliTaskGlobVar::GetCorrV0(const AliESDEvent* esd, float &v0CorrResc) const
263 // correct V0 non-linearity, prepare a version rescaled to SPD2 corr
264 const Double_t par0[64] = { 6.71e-02 , 6.86e-02 , 7.06e-02 , 6.32e-02 ,
265 5.91e-02 , 6.07e-02 , 5.78e-02 , 5.73e-02 , 5.91e-02 , 6.22e-02 ,
266 5.90e-02 , 6.11e-02 , 5.55e-02 , 5.29e-02 , 5.19e-02 , 5.56e-02 ,
267 6.25e-02 , 7.03e-02 , 5.64e-02 , 5.81e-02 , 4.57e-02 , 5.30e-02 ,
268 5.13e-02 , 6.43e-02 , 6.27e-02 , 6.48e-02 , 6.07e-02 , 1.01e-01 ,
269 6.68e-02 , 7.16e-02 , 6.36e-02 , 5.95e-02 , 2.52e-02 , 2.82e-02 ,
270 2.56e-02 , 2.86e-02 , 2.82e-02 , 2.10e-02 , 2.13e-02 , 2.32e-02 ,
271 2.75e-02 , 4.34e-02 , 3.78e-02 , 4.52e-02 , 4.11e-02 , 3.89e-02 ,
272 4.10e-02 , 3.73e-02 , 4.51e-02 , 5.07e-02 , 5.42e-02 , 4.74e-02 ,
273 4.33e-02 , 4.44e-02 , 4.64e-02 , 3.01e-02 , 6.38e-02 , 5.26e-02 ,
274 4.99e-02 , 5.26e-02 , 5.47e-02 , 3.84e-02 , 5.00e-02 , 5.20e-02 };
275 const Double_t par1[64] = { -6.68e-05 , -7.78e-05 , -6.88e-05 , -5.92e-05 ,
276 -2.43e-05 , -3.54e-05 , -2.91e-05 , -1.99e-05 , -1.40e-05 , -4.01e-05 ,
277 -2.29e-05 , -3.68e-05 , -2.53e-05 , -2.44e-06 , -9.22e-06 , -1.51e-05 ,
278 -2.80e-05 , -2.34e-05 , -1.72e-05 , -1.81e-05 , -1.29e-05 , -2.65e-05 ,
279 -1.61e-05 , -2.86e-05 , -1.74e-05 , -4.23e-05 , -3.41e-05 , -1.05e-04 ,
280 -2.76e-05 , -4.71e-05 , -3.06e-05 , -2.32e-05 , -1.55e-06 , 2.15e-05 ,
281 1.40e-05 , 2.16e-05 , 1.21e-05 , 3.05e-06 , 1.67e-05 , -3.84e-06 ,
282 3.09e-06 , 1.50e-05 , 3.47e-06 , 4.87e-06 , -3.71e-07 , -1.75e-06 ,
283 -1.80e-06 , 9.99e-06 , -6.46e-06 , -4.91e-06 , 1.33e-05 , -2.52e-07 ,
284 -3.85e-06 , 4.94e-06 , -2.48e-07 , -1.20e-05 , 2.07e-06 , 6.12e-06 ,
285 -1.18e-06 , 4.54e-06 , -1.54e-05 , -1.25e-05 , 1.46e-06 , -6.67e-06 };
286 const Double_t par2[64] = { 1.29e-08 , 1.51e-08 , 1.43e-08 , 1.11e-08 ,
287 5.04e-09 , 6.99e-09 , 5.58e-09 , 4.15e-09 , 4.00e-09 , 8.22e-09 ,
288 4.97e-09 , 7.66e-09 , 4.91e-09 , 1.10e-09 , 2.64e-09 , 3.64e-09 ,
289 5.76e-09 , 5.46e-09 , 3.38e-09 , 3.47e-09 , 2.43e-09 , 4.13e-09 ,
290 2.80e-09 , 5.80e-09 , 3.86e-09 , 7.46e-09 , 5.98e-09 , 2.58e-08 ,
291 5.50e-09 , 8.72e-09 , 5.23e-09 , 4.37e-09 , 2.33e-09 , -6.01e-10 ,
292 3.99e-11 , -2.02e-10 , 7.67e-10 , 2.03e-09 , 1.17e-10 , 2.56e-09 ,
293 1.16e-09 , -4.75e-10 , 1.28e-09 , 1.23e-09 , 1.62e-09 , 1.61e-09 ,
294 1.93e-09 , 2.97e-10 , 2.21e-09 , 2.16e-09 , 5.22e-10 , 1.03e-09 ,
295 1.56e-09 , 5.00e-10 , 1.01e-09 , 2.93e-09 , 1.05e-09 , 9.96e-11 ,
296 1.21e-09 , 7.45e-10 , 3.07e-09 , 2.31e-09 , 6.70e-10 , 1.89e-09 };
298 Float_t multCorr = 0;
299 Float_t multCorr2 = 0;
300 Float_t multChCorr[64];
301 AliESDVZERO* esdV0 = esd->GetVZEROData();
302 for(Int_t i = 0; i < 64; ++i) {
303 Double_t b = (esdV0->GetMultiplicity(i)*par1[i]-par0[i]);
304 Double_t s = (b*b-4.*par2[i]*esdV0->GetMultiplicity(i)*esdV0->GetMultiplicity(i));
307 printf("FPE %d %.2f %.2f %.2e\n",i,esdV0->GetMultiplicity(i),b,(b*b-4.*par2[i]*esdV0->GetMultiplicity(i)*esdV0->GetMultiplicity(i)));
311 n = (-b + TMath::Sqrt(s));
313 multChCorr[i] = 2.*esdV0->GetMultiplicity(i)/n*par0[i];
314 multCorr += multChCorr[i];
315 multCorr2 += (multChCorr[i]/par0[i]/64.);
317 v0CorrResc = multCorr2;
321 //_________________________________________________________________
322 Bool_t AliTaskGlobVar::ZDCTimeTrigger(const AliESDEvent *aEsd) const
324 // This method implements a selection
325 // based on the timing in both sides of zdcN
326 // It can be used in order to eliminate
327 // parasitic collisions
328 Bool_t zdcAccept = kFALSE;
330 AliESDZDC *esdZDC = aEsd->GetESDZDC();
332 const Float_t refSum = -568.5;
333 const Float_t refDelta = -2.1;
334 const Float_t sigmaSum = 3.25;
335 const Float_t sigmaDelta = 2.25;
336 for(Int_t i = 0; i < 4; ++i) {
337 if (esdZDC->GetZDCTDCData(10,i) != 0) {
338 Float_t tdcC = 0.025*(esdZDC->GetZDCTDCData(10,i)-esdZDC->GetZDCTDCData(14,i));
339 for(Int_t j = 0; j < 4; ++j) {
340 if (esdZDC->GetZDCTDCData(12,j) != 0) {
341 Float_t tdcA = 0.025*(esdZDC->GetZDCTDCData(12,j)-esdZDC->GetZDCTDCData(14,j));
342 if (((tdcC-tdcA-refDelta)*(tdcC-tdcA-refDelta)/(sigmaDelta*sigmaDelta) +
343 (tdcC+tdcA-refSum)*(tdcC+tdcA-refSum)/(sigmaSum*sigmaSum))< 1.0)
353 AliESDtrackCuts* AliTaskGlobVar::CreatedNdPtTrackCuts(Int_t cutMode, Bool_t fieldOn)
355 // copy of PWG0/dNdPt/macros/CreatedNdPtTrackCuts.C
357 AliESDtrackCuts* esdTrackCuts = new AliESDtrackCuts("AliESDtrackCuts");
360 Double_t cov1, cov2, cov3, cov4, cov5;
362 Double_t maxDCAtoVertex, maxDCAtoVertexXY, maxDCAtoVertexZ;
363 Int_t minNClustersTPC;
364 Double_t maxChi2PerClusterTPC;
365 Double_t minPt, maxPt;
368 // default cuts for ITS+TPC
377 minNClustersTPC = 50;
378 maxChi2PerClusterTPC = 3.5;
380 esdTrackCuts->SetMaxCovDiagonalElements(cov1, cov2, cov3, cov4, cov5);
381 // esdTrackCuts->SetMinNsigmaToVertex(nSigma);
382 esdTrackCuts->SetRequireSigmaToVertex(kTRUE);
383 esdTrackCuts->SetRequireTPCRefit(kTRUE);
384 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
385 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
386 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
388 tag = "Global tracking";
391 // TPC-only cuts (vertex n sigma cut)
394 // beta cuts (still under investigation)
403 minNClustersTPC = 50;
404 maxChi2PerClusterTPC = 3.5;
406 esdTrackCuts->SetMaxCovDiagonalElements(cov1, cov2, cov3, cov4, cov5);
407 // esdTrackCuts->SetMinNsigmaToVertex(nSigma);
408 esdTrackCuts->SetRequireSigmaToVertex(kTRUE);
409 esdTrackCuts->SetRequireTPCRefit(kFALSE);
410 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
411 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
412 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
414 tag = "TPC-only tracking";
417 // TPC-only cuts (vertex maxDCAtoVertex cut)
420 // beta cuts (still under investigation)
421 maxDCAtoVertex = 3.0; // cm
422 minNClustersTPC = 50;
423 maxChi2PerClusterTPC = 3.5;
425 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
426 esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertex);
427 esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertex);
428 esdTrackCuts->SetRequireTPCRefit(kFALSE);
429 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
430 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
431 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
433 tag = "TPC-only tracking";
436 // TPC-only no vertex cuts
439 // beta cuts (still under investigation)
440 minNClustersTPC = 50;
441 maxChi2PerClusterTPC = 3.5;
443 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
444 esdTrackCuts->SetRequireTPCRefit(kFALSE);
445 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
446 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
447 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
449 tag = "TPC-only tracking";
452 // TPC-only no cuts at all
456 // beta cuts (still under investigation)
457 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
458 esdTrackCuts->SetRequireTPCRefit(kFALSE);
459 esdTrackCuts->SetAcceptKinkDaughters(kTRUE);
461 tag = "TPC-only tracking";
464 // TPC-only no kink removal no chi2
467 // beta cuts (still under investigation)
468 minNClustersTPC = 50;
469 //maxChi2PerClusterTPC = 3.5;
471 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
472 esdTrackCuts->SetRequireTPCRefit(kFALSE);
473 esdTrackCuts->SetAcceptKinkDaughters(kTRUE);
474 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
475 //esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
477 tag = "TPC-only tracking";
480 // TPC-only no kink removal
483 // beta cuts (still under investigation)
484 minNClustersTPC = 50;
485 maxChi2PerClusterTPC = 3.5;
487 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
488 esdTrackCuts->SetRequireTPCRefit(kFALSE);
489 esdTrackCuts->SetAcceptKinkDaughters(kTRUE);
490 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
491 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
493 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;
503 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
504 esdTrackCuts->SetRequireTPCRefit(kFALSE);
505 esdTrackCuts->SetAcceptKinkDaughters(kTRUE);
506 //esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
507 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
509 tag = "TPC-only tracking";
511 // TPC-only no kink removal no minNClustersTPC
514 // beta cuts (still under investigation)
515 //minNClustersTPC = 50;
516 maxChi2PerClusterTPC = 3.5;
517 maxDCAtoVertex = 3.0; // cm
519 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
520 esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertex);
521 esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertex);
522 esdTrackCuts->SetRequireTPCRefit(kFALSE);
523 esdTrackCuts->SetAcceptKinkDaughters(kTRUE);
524 //esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
525 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
527 tag = "TPC-only tracking";
530 // TPC-only no kink removal no minNClustersTPC no maxChi2PerClusterTPC
533 // beta cuts (still under investigation)
534 //minNClustersTPC = 50;
535 //maxChi2PerClusterTPC = 3.5;
536 maxDCAtoVertex = 3.0; // cm
538 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
539 esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertex);
540 esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertex);
541 esdTrackCuts->SetRequireTPCRefit(kFALSE);
542 esdTrackCuts->SetAcceptKinkDaughters(kTRUE);
543 //esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
544 //esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
546 tag = "TPC-only tracking";
549 // TPC-only (loose cuts, absolute DCA cut)
552 // beta cuts (still under investigation)
553 minNClustersTPC = 50;
554 maxChi2PerClusterTPC = 4.0;
555 maxDCAtoVertex = 2.8; // cm
559 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
560 esdTrackCuts->SetRequireTPCRefit(kFALSE);
561 esdTrackCuts->SetAcceptKinkDaughters(kTRUE);
562 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
563 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
564 esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertex);
565 esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertex);
566 esdTrackCuts->SetPtRange(minPt,maxPt);
568 tag = "TPC-only tracking";
572 // TPC-only (loose cuts, no DCA cut)
575 // beta cuts (still under investigation)
576 minNClustersTPC = 50;
577 maxChi2PerClusterTPC = 4.0;
578 maxDCAtoVertexXY = 1.e10; // cm
579 maxDCAtoVertexZ = 1.e10; // cm
583 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
584 esdTrackCuts->SetRequireTPCRefit(kFALSE);
585 esdTrackCuts->SetAcceptKinkDaughters(kTRUE);
586 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
587 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
588 esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
589 esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
590 esdTrackCuts->SetDCAToVertex2D(kTRUE);
591 esdTrackCuts->SetPtRange(minPt,maxPt);
593 tag = "TPC-only tracking";
596 // TPC-only (standard cuts, no DCA cut)
599 // beta cuts (still under investigation)
600 minNClustersTPC = 96;
601 maxChi2PerClusterTPC = 3.5;
602 maxDCAtoVertexXY = 1.e10; // cm
603 maxDCAtoVertexZ = 1.e10; // cm
607 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
608 esdTrackCuts->SetRequireTPCRefit(kFALSE);
609 esdTrackCuts->SetAcceptKinkDaughters(kTRUE);
610 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
611 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
612 esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
613 esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
614 esdTrackCuts->SetDCAToVertex2D(kTRUE);
615 esdTrackCuts->SetPtRange(minPt,maxPt);
617 tag = "TPC-only tracking";
620 // TPC-only (tight cuts, no DCA cut)
623 // beta cuts (still under investigation)
624 minNClustersTPC = 120;
625 maxChi2PerClusterTPC = 3.5;
626 maxDCAtoVertexXY = 1.e10; // cm
627 maxDCAtoVertexZ = 1.e10; // cm
631 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
632 esdTrackCuts->SetRequireTPCRefit(kFALSE);
633 esdTrackCuts->SetAcceptKinkDaughters(kTRUE);
634 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
635 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
636 esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
637 esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
638 esdTrackCuts->SetDCAToVertex2D(kTRUE);
639 esdTrackCuts->SetPtRange(minPt,maxPt);
641 tag = "TPC-only tracking";
644 // TPC-only (loose cuts, no pt cut)
647 // beta cuts (still under investigation)
648 minNClustersTPC = 50;
649 maxChi2PerClusterTPC = 4.0;
650 maxDCAtoVertexXY = 1.e10; // cm
651 maxDCAtoVertexZ = 1.e10; // cm
655 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
656 esdTrackCuts->SetRequireTPCRefit(kFALSE);
657 esdTrackCuts->SetAcceptKinkDaughters(kTRUE);
658 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
659 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
660 esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
661 esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
662 esdTrackCuts->SetDCAToVertex2D(kTRUE);
663 esdTrackCuts->SetPtRange(minPt,maxPt);
665 tag = "TPC-only tracking";
668 // TPC-only (standard cuts, no pt cut)
671 // beta cuts (still under investigation)
672 minNClustersTPC = 96;
673 maxChi2PerClusterTPC = 3.5;
674 maxDCAtoVertexXY = 1.e10; // cm
675 maxDCAtoVertexZ = 1.e10; // cm
679 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
680 esdTrackCuts->SetRequireTPCRefit(kFALSE);
681 esdTrackCuts->SetAcceptKinkDaughters(kTRUE);
682 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
683 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
684 esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
685 esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
686 esdTrackCuts->SetDCAToVertex2D(kTRUE);
687 esdTrackCuts->SetPtRange(minPt,maxPt);
689 tag = "TPC-only tracking";
692 // TPC-only (tight cuts, no pt cuts)
695 // beta cuts (still under investigation)
696 minNClustersTPC = 120;
697 maxChi2PerClusterTPC = 3.5;
698 maxDCAtoVertexXY = 1.e10; // cm
699 maxDCAtoVertexZ = 1.e10; // cm
703 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
704 esdTrackCuts->SetRequireTPCRefit(kFALSE);
705 esdTrackCuts->SetAcceptKinkDaughters(kTRUE);
706 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
707 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
708 esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
709 esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
710 esdTrackCuts->SetDCAToVertex2D(kTRUE);
711 esdTrackCuts->SetPtRange(minPt,maxPt);
713 tag = "TPC-only tracking";
715 // TPC-only (loose cuts)
718 // beta cuts (still under investigation)
719 minNClustersTPC = 50;
720 maxChi2PerClusterTPC = 4.0;
721 //maxDCAtoVertexXY = 2.4; // cm
722 //maxDCAtoVertexZ = 3.2; // cm
723 maxDCAtoVertexXY = 1.6; // cm
724 maxDCAtoVertexZ = 2.1; // cm
728 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
729 esdTrackCuts->SetRequireTPCRefit(kFALSE);
730 esdTrackCuts->SetAcceptKinkDaughters(kTRUE);
731 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
732 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
733 esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
734 esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
735 esdTrackCuts->SetDCAToVertex2D(kTRUE);
736 esdTrackCuts->SetPtRange(minPt,maxPt);
738 tag = "TPC-only tracking";
741 // TPC-only (standard cuts)
744 // beta cuts (still under investigation)
745 minNClustersTPC = 96;
746 maxChi2PerClusterTPC = 3.5;
747 //maxDCAtoVertexXY = 2.4; // cm
748 //maxDCAtoVertexZ = 3.2; // cm
749 maxDCAtoVertexXY = 1.4; // cm
750 maxDCAtoVertexZ = 1.8; // cm
754 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
755 esdTrackCuts->SetRequireTPCRefit(kFALSE);
756 esdTrackCuts->SetAcceptKinkDaughters(kTRUE);
757 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
758 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
759 esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
760 esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
761 esdTrackCuts->SetDCAToVertex2D(kTRUE);
762 esdTrackCuts->SetPtRange(minPt,maxPt);
764 tag = "TPC-only tracking";
767 // TPC-only (tight cuts)
770 // beta cuts (still under investigation)
771 minNClustersTPC = 120;
772 maxChi2PerClusterTPC = 3.0;
773 //maxDCAtoVertexXY = 2.4; // cm
774 //maxDCAtoVertexZ = 3.2; // cm
775 maxDCAtoVertexXY = 1.4; // cm
776 maxDCAtoVertexZ = 1.8; // cm
780 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
781 esdTrackCuts->SetRequireTPCRefit(kFALSE);
782 esdTrackCuts->SetAcceptKinkDaughters(kTRUE);
783 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
784 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
785 esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
786 esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
787 esdTrackCuts->SetDCAToVertex2D(kTRUE);
788 esdTrackCuts->SetPtRange(minPt,maxPt);
790 tag = "TPC-only tracking";
793 // TPC-only (arb. cuts, kink cuts included)
796 // beta cuts (still under investigation)
797 minNClustersTPC = 50;
798 maxChi2PerClusterTPC = 1.e10;
799 maxDCAtoVertexXY = 3.0; // cm
800 maxDCAtoVertexZ = 3.0; // cm
804 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
805 esdTrackCuts->SetRequireTPCRefit(kFALSE);
806 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
807 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
808 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
809 esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
810 esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
811 esdTrackCuts->SetDCAToVertex2D(kTRUE);
812 esdTrackCuts->SetPtRange(minPt,maxPt);
814 tag = "TPC-only tracking";
817 // TPC-only (arb. cuts, kink cuts excluded)
820 // beta cuts (still under investigation)
821 minNClustersTPC = 50;
822 maxChi2PerClusterTPC = 1.e10;
823 maxDCAtoVertexXY = 3.0; // cm
824 maxDCAtoVertexZ = 3.0; // cm
828 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
829 esdTrackCuts->SetRequireTPCRefit(kFALSE);
830 esdTrackCuts->SetAcceptKinkDaughters(kTRUE);
831 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
832 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
833 esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
834 esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
835 esdTrackCuts->SetDCAToVertex2D(kTRUE);
836 esdTrackCuts->SetPtRange(minPt,maxPt);
838 tag = "TPC-only tracking";
841 // TPC-only (arb. cuts, kink cuts excluded, no chi2, no DCA)
844 // beta cuts (still under investigation)
845 minNClustersTPC = 50;
846 maxChi2PerClusterTPC = 1.e10;
847 maxDCAtoVertexXY = 1.e10; // cm
848 maxDCAtoVertexZ = 1.e10; // cm
852 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
853 esdTrackCuts->SetRequireTPCRefit(kFALSE);
854 esdTrackCuts->SetAcceptKinkDaughters(kTRUE);
855 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
856 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
857 esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
858 esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
859 esdTrackCuts->SetDCAToVertex2D(kTRUE);
860 esdTrackCuts->SetPtRange(minPt,maxPt);
862 tag = "TPC-only tracking";
868 // beta cuts (still under investigation)
869 minNClustersTPC = 70;
870 maxChi2PerClusterTPC = 4.0;
871 maxDCAtoVertexXY = 2.4; // cm
872 maxDCAtoVertexZ = 3.2; // cm
874 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
875 esdTrackCuts->SetRequireTPCRefit(kFALSE);
876 esdTrackCuts->SetRequireTPCStandAlone(kTRUE);
877 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
878 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
879 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
880 esdTrackCuts->SetRequireITSRefit(kFALSE);
881 esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
882 esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
883 esdTrackCuts->SetDCAToVertex2D(kTRUE);
884 //esdTrackCuts->SetPtRange(minPt,maxPt);
885 //esdTrackCuts->SetEtaRange(minEta,maxEta);
887 tag = "TPC-only tracking";
890 // TPC-only (no pt cut, no eta cut)
893 // beta cuts (still under investigation)
894 minNClustersTPC = 50;
895 maxChi2PerClusterTPC = 4.0;
896 maxDCAtoVertexXY = 2.4; // cm
897 maxDCAtoVertexZ = 3.2; // cm
901 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
902 esdTrackCuts->SetRequireTPCRefit(kFALSE);
903 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
904 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
905 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
906 esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
907 esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
908 esdTrackCuts->SetDCAToVertex2D(kTRUE);
909 esdTrackCuts->SetPtRange(minPt,maxPt);
911 tag = "TPC-only tracking";
915 // systematic errors DCA cut studies
920 // beta cuts (still under investigation)
921 minNClustersTPC = 50;
922 maxChi2PerClusterTPC = 4.0;
923 maxDCAtoVertexXY = 1.4; // cm
924 maxDCAtoVertexZ = 2.2; // cm
928 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
929 esdTrackCuts->SetRequireTPCRefit(kFALSE);
930 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
931 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
932 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
933 esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
934 esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
935 esdTrackCuts->SetDCAToVertex2D(kTRUE);
936 esdTrackCuts->SetPtRange(minPt,maxPt);
938 tag = "TPC-only tracking";
943 // beta cuts (still under investigation)
944 minNClustersTPC = 50;
945 maxChi2PerClusterTPC = 4.0;
946 maxDCAtoVertexXY = 1.6; // cm
947 maxDCAtoVertexZ = 2.4; // cm
951 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
952 esdTrackCuts->SetRequireTPCRefit(kFALSE);
953 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
954 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
955 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
956 esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
957 esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
958 esdTrackCuts->SetDCAToVertex2D(kTRUE);
959 esdTrackCuts->SetPtRange(minPt,maxPt);
961 tag = "TPC-only tracking";
965 // systematic errors cut studies
970 // beta cuts (still under investigation)
971 minNClustersTPC = 50;
972 maxChi2PerClusterTPC = 4.0;
973 maxDCAtoVertexXY = 1.8; // cm
974 maxDCAtoVertexZ = 2.6; // cm
978 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
979 esdTrackCuts->SetRequireTPCRefit(kFALSE);
980 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
981 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
982 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
983 esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
984 esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
985 esdTrackCuts->SetDCAToVertex2D(kTRUE);
986 esdTrackCuts->SetPtRange(minPt,maxPt);
988 tag = "TPC-only tracking";
993 // beta cuts (still under investigation)
994 minNClustersTPC = 50;
995 maxChi2PerClusterTPC = 4.0;
996 maxDCAtoVertexXY = 2.0; // cm
997 maxDCAtoVertexZ = 2.8; // cm
1001 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1002 esdTrackCuts->SetRequireTPCRefit(kFALSE);
1003 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1004 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
1005 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
1006 esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
1007 esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
1008 esdTrackCuts->SetDCAToVertex2D(kTRUE);
1009 esdTrackCuts->SetPtRange(minPt,maxPt);
1011 tag = "TPC-only tracking";
1016 // beta cuts (still under investigation)
1017 minNClustersTPC = 50;
1018 maxChi2PerClusterTPC = 4.0;
1019 maxDCAtoVertexXY = 2.2; // cm
1020 maxDCAtoVertexZ = 3.0; // cm
1024 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1025 esdTrackCuts->SetRequireTPCRefit(kFALSE);
1026 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1027 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
1028 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
1029 esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
1030 esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
1031 esdTrackCuts->SetDCAToVertex2D(kTRUE);
1032 esdTrackCuts->SetPtRange(minPt,maxPt);
1034 tag = "TPC-only tracking";
1039 // beta cuts (still under investigation)
1040 minNClustersTPC = 50;
1041 maxChi2PerClusterTPC = 4.0;
1042 maxDCAtoVertexXY = 2.4; // cm
1043 maxDCAtoVertexZ = 3.2; // cm
1047 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1048 esdTrackCuts->SetRequireTPCRefit(kFALSE);
1049 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1050 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
1051 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
1052 esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
1053 esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
1054 esdTrackCuts->SetDCAToVertex2D(kTRUE);
1055 esdTrackCuts->SetPtRange(minPt,maxPt);
1057 tag = "TPC-only tracking";
1062 // beta cuts (still under investigation)
1063 minNClustersTPC = 50;
1064 maxChi2PerClusterTPC = 4.0;
1065 maxDCAtoVertexXY = 2.6; // cm
1066 maxDCAtoVertexZ = 3.4; // cm
1070 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1071 esdTrackCuts->SetRequireTPCRefit(kFALSE);
1072 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1073 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
1074 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
1075 esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
1076 esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
1077 esdTrackCuts->SetDCAToVertex2D(kTRUE);
1078 esdTrackCuts->SetPtRange(minPt,maxPt);
1080 tag = "TPC-only tracking";
1086 // beta cuts (still under investigation)
1087 minNClustersTPC = 50;
1088 maxChi2PerClusterTPC = 4.0;
1089 maxDCAtoVertexXY = 2.8; // cm
1090 maxDCAtoVertexZ = 3.6; // cm
1094 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1095 esdTrackCuts->SetRequireTPCRefit(kFALSE);
1096 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1097 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
1098 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
1099 esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
1100 esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
1101 esdTrackCuts->SetDCAToVertex2D(kTRUE);
1102 esdTrackCuts->SetPtRange(minPt,maxPt);
1104 tag = "TPC-only tracking";
1109 // beta cuts (still under investigation)
1110 minNClustersTPC = 50;
1111 maxChi2PerClusterTPC = 4.0;
1112 maxDCAtoVertexXY = 3.0; // cm
1113 maxDCAtoVertexZ = 3.8; // cm
1117 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1118 esdTrackCuts->SetRequireTPCRefit(kFALSE);
1119 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1120 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
1121 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
1122 esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
1123 esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
1124 esdTrackCuts->SetDCAToVertex2D(kTRUE);
1125 esdTrackCuts->SetPtRange(minPt,maxPt);
1127 tag = "TPC-only tracking";
1132 // beta cuts (still under investigation)
1133 minNClustersTPC = 50;
1134 maxChi2PerClusterTPC = 4.0;
1135 maxDCAtoVertexXY = 3.2; // cm
1136 maxDCAtoVertexZ = 4.0; // cm
1140 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1141 esdTrackCuts->SetRequireTPCRefit(kFALSE);
1142 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1143 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
1144 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
1145 esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
1146 esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
1147 esdTrackCuts->SetDCAToVertex2D(kTRUE);
1148 esdTrackCuts->SetPtRange(minPt,maxPt);
1150 tag = "TPC-only tracking";
1155 // beta cuts (still under investigation)
1156 minNClustersTPC = 50;
1157 maxChi2PerClusterTPC = 4.0;
1158 maxDCAtoVertexXY = 3.4; // cm
1159 maxDCAtoVertexZ = 4.2; // cm
1163 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1164 esdTrackCuts->SetRequireTPCRefit(kFALSE);
1165 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1166 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
1167 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
1168 esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
1169 esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
1170 esdTrackCuts->SetDCAToVertex2D(kTRUE);
1171 esdTrackCuts->SetPtRange(minPt,maxPt);
1173 tag = "TPC-only tracking";
1177 // cut stability systematics
1182 // beta cuts (still under investigation)
1183 minNClustersTPC = 70;
1184 maxChi2PerClusterTPC = 4.0;
1185 maxDCAtoVertexXY = 2.4; // cm
1186 maxDCAtoVertexZ = 3.2; // cm
1190 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1191 esdTrackCuts->SetRequireTPCRefit(kFALSE);
1192 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1193 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
1194 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
1195 esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
1196 esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
1197 esdTrackCuts->SetDCAToVertex2D(kTRUE);
1198 esdTrackCuts->SetPtRange(minPt,maxPt);
1200 tag = "TPC-only tracking";
1205 // beta cuts (still under investigation)
1206 minNClustersTPC = 90;
1207 maxChi2PerClusterTPC = 4.0;
1208 maxDCAtoVertexXY = 2.4; // cm
1209 maxDCAtoVertexZ = 3.2; // cm
1213 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1214 esdTrackCuts->SetRequireTPCRefit(kFALSE);
1215 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1216 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
1217 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
1218 esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
1219 esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
1220 esdTrackCuts->SetDCAToVertex2D(kTRUE);
1221 esdTrackCuts->SetPtRange(minPt,maxPt);
1223 tag = "TPC-only tracking";
1228 // beta cuts (still under investigation)
1229 minNClustersTPC = 50;
1230 maxChi2PerClusterTPC = 3.0;
1231 maxDCAtoVertexXY = 2.4; // cm
1232 maxDCAtoVertexZ = 3.2; // cm
1236 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1237 esdTrackCuts->SetRequireTPCRefit(kFALSE);
1238 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1239 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
1240 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
1241 esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
1242 esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
1243 esdTrackCuts->SetDCAToVertex2D(kTRUE);
1244 esdTrackCuts->SetPtRange(minPt,maxPt);
1246 tag = "TPC-only tracking";
1251 // beta cuts (still under investigation)
1252 minNClustersTPC = 50;
1253 maxChi2PerClusterTPC = 5.0;
1254 maxDCAtoVertexXY = 2.4; // cm
1255 maxDCAtoVertexZ = 3.2; // cm
1259 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1260 esdTrackCuts->SetRequireTPCRefit(kFALSE);
1261 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1262 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
1263 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
1264 esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
1265 esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
1266 esdTrackCuts->SetDCAToVertex2D(kTRUE);
1267 esdTrackCuts->SetPtRange(minPt,maxPt);
1269 tag = "TPC-only tracking";
1274 // beta cuts (still under investigation)
1275 minNClustersTPC = 50;
1276 maxChi2PerClusterTPC = 4.0;
1277 maxDCAtoVertexXY = 1.4; // cm
1278 maxDCAtoVertexZ = 2.2; // cm
1282 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1283 esdTrackCuts->SetRequireTPCRefit(kFALSE);
1284 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1285 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
1286 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
1287 esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
1288 esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
1289 esdTrackCuts->SetDCAToVertex2D(kTRUE);
1290 esdTrackCuts->SetPtRange(minPt,maxPt);
1292 tag = "TPC-only tracking";
1297 // beta cuts (still under investigation)
1298 minNClustersTPC = 50;
1299 maxChi2PerClusterTPC = 4.0;
1300 maxDCAtoVertexXY = 3.4; // cm
1301 maxDCAtoVertexZ = 4.2; // cm
1305 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1306 esdTrackCuts->SetRequireTPCRefit(kFALSE);
1307 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1308 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
1309 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
1310 esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
1311 esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
1312 esdTrackCuts->SetDCAToVertex2D(kTRUE);
1313 esdTrackCuts->SetPtRange(minPt,maxPt);
1315 tag = "TPC-only tracking";
1320 // beta cuts (still under investigation)
1321 minNClustersTPC = 50;
1322 maxChi2PerClusterTPC = 4.0;
1323 maxDCAtoVertexXY = 2.4; // cm
1324 maxDCAtoVertexZ = 3.2; // cm
1328 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1329 esdTrackCuts->SetRequireTPCRefit(kFALSE);
1330 //esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1331 esdTrackCuts->SetAcceptKinkDaughters(kTRUE);
1332 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
1333 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
1334 esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
1335 esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
1336 esdTrackCuts->SetDCAToVertex2D(kTRUE);
1337 esdTrackCuts->SetPtRange(minPt,maxPt);
1339 tag = "TPC-only tracking";
1344 // beta cuts (still under investigation)
1345 minNClustersTPC = 50;
1346 maxChi2PerClusterTPC = 4.0;
1347 //maxDCAtoVertexXY = 2.4; // cm
1348 //maxDCAtoVertexZ = 3.2; // cm
1352 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1353 esdTrackCuts->SetRequireTPCRefit(kFALSE);
1354 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1355 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
1356 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
1357 //esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
1358 //esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
1359 //esdTrackCuts->SetDCAToVertex2D(kTRUE);
1360 //esdTrackCuts->SetPtRange(minPt,maxPt);
1361 //esdTrackCuts->SetEtaRange(minEta,maxEta);
1363 tag = "TPC-only tracking";
1366 // TPC-only + pt cut + eta cut
1369 // beta cuts (still under investigation)
1370 //minNClustersTPC = 50;
1371 //maxChi2PerClusterTPC = 4.0;
1372 maxDCAtoVertexXY = 2.4; // cm
1373 maxDCAtoVertexZ = 3.2; // cm
1377 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1378 esdTrackCuts->SetRequireTPCRefit(kFALSE);
1379 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1380 //esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
1381 //esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
1382 esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
1383 esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
1384 esdTrackCuts->SetDCAToVertex2D(kTRUE);
1385 //esdTrackCuts->SetPtRange(minPt,maxPt);
1386 //esdTrackCuts->SetEtaRange(minEta,maxEta);
1388 tag = "TPC-only tracking";
1391 // TPC-tracks + SPD point + ITS refit
1395 Double_t maxchi2perTPCcl=4.;
1396 //Double_t maxEtaInAcc=0.8;
1397 Double_t maxdcaxyITSTPC=0.2;
1398 Double_t maxdcazITSTPC=1.e9;
1400 esdTrackCuts->SetMaxDCAToVertexXY(maxdcaxyITSTPC);
1401 esdTrackCuts->SetMaxDCAToVertexZ(maxdcazITSTPC);
1402 esdTrackCuts->SetDCAToVertex2D(kFALSE);
1403 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1404 esdTrackCuts->SetRequireITSRefit(kTRUE);
1405 esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
1406 esdTrackCuts->SetRequireTPCStandAlone(kTRUE);
1407 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1408 esdTrackCuts->SetMinNClustersTPC(minclsTPC);
1409 esdTrackCuts->SetMaxChi2PerClusterTPC(maxchi2perTPCcl);
1410 //esdTrackCuts->SetEtaRange(-maxEtaInAcc,maxEtaInAcc);
1412 tag = "TPC-tracks + ITS refit + >1 SPD cluster";
1415 // TPC-tracks + SPD point + ITS refit
1420 Double_t maxchi2perTPCcl=4.;
1421 Double_t maxdcaxyITSTPC=0.2;
1422 Double_t maxdcazITSTPC=1.e9;
1424 esdTrackCuts->SetMaxDCAToVertexXY(maxdcaxyITSTPC);
1425 esdTrackCuts->SetMaxDCAToVertexZ(maxdcazITSTPC);
1426 esdTrackCuts->SetDCAToVertex2D(kFALSE);
1427 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1428 esdTrackCuts->SetRequireITSRefit(kTRUE);
1429 esdTrackCuts->SetMinNClustersITS(minclsITS);
1430 esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
1431 //esdTrackCuts->SetRequireTPCStandAlone(kTRUE);
1432 esdTrackCuts->SetRequireTPCRefit(kTRUE);
1433 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1434 esdTrackCuts->SetMinNClustersTPC(minclsTPC);
1435 esdTrackCuts->SetMaxChi2PerClusterTPC(maxchi2perTPCcl);
1437 tag = "Global tracking: TPC refit + ITS refit + >3 ITS clusters + >=1 SPD cluster";
1441 // TPC-tracks + SPD point + ITS refit + DCAr(pt)
1445 Double_t maxchi2perTPCcl=4.;
1446 Double_t maxdcaxyITSTPC=1.e9;
1447 Double_t maxdcazITSTPC=1.e9;
1449 esdTrackCuts->SetMaxDCAToVertexXY(maxdcaxyITSTPC);
1450 esdTrackCuts->SetMaxDCAToVertexZ(maxdcazITSTPC);
1451 esdTrackCuts->SetDCAToVertex2D(kFALSE);
1452 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1453 esdTrackCuts->SetRequireITSRefit(kTRUE);
1454 esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
1455 esdTrackCuts->SetRequireTPCStandAlone(kTRUE);
1456 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1457 esdTrackCuts->SetMinNClustersTPC(minclsTPC);
1458 esdTrackCuts->SetMaxChi2PerClusterTPC(maxchi2perTPCcl);
1460 tag = "TPC-tracks + ITS refit + >1 SPD cluster + DCAr(Pt)";
1464 // TPC-tracks + SPD point + ITS refit + DCAr(pt)
1468 Double_t maxchi2perTPCcl=4.;
1469 Double_t maxdcazITSTPC=1.e9;
1474 esdTrackCuts->SetRequireTPCStandAlone(kTRUE);
1475 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1476 esdTrackCuts->SetMinNClustersTPC(minclsTPC);
1477 esdTrackCuts->SetMaxChi2PerClusterTPC(maxchi2perTPCcl);
1481 esdTrackCuts->SetRequireITSRefit(kTRUE);
1482 esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
1484 // primary selection
1486 esdTrackCuts->SetDCAToVertex2D(kFALSE);
1487 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1488 esdTrackCuts->SetMaxDCAToVertexZ(maxdcazITSTPC);
1490 // 7*(0.0050+0.0060/pt^0.9)
1491 esdTrackCuts->SetMaxDCAToVertexXYPtDep("0.0350+0.0420/pt^0.9");
1493 tag = "TPC-tracks + ITS refit + >1 SPD cluster + DCAr(Pt)";
1496 // TPC+ITS combine tracking + DCAr(pt) + DCAz(pt)
1500 Double_t maxchi2perTPCcl=4.;
1501 Double_t maxdcazITSTPC=1.e9;
1506 esdTrackCuts->SetRequireTPCRefit(kTRUE);
1507 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1508 esdTrackCuts->SetMinNClustersTPC(minclsTPC);
1509 esdTrackCuts->SetMaxChi2PerClusterTPC(maxchi2perTPCcl);
1513 esdTrackCuts->SetRequireITSRefit(kTRUE);
1514 esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
1516 // primary selection
1518 esdTrackCuts->SetDCAToVertex2D(kFALSE);
1519 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1520 esdTrackCuts->SetMaxDCAToVertexZ(maxdcazITSTPC);
1522 // DCArphi parametrization (LHC10c pass2)
1523 // 7*(0.0026+0.0050/pt^1.01)
1524 esdTrackCuts->SetMaxDCAToVertexXYPtDep("0.0182+0.0350/pt^1.01");
1526 // DCArphi parametrization (LHC10c pass2)
1527 // 7*(0.01+0.011/pt^0.72)
1528 esdTrackCuts->SetMaxDCAToVertexZPtDep("0.07+0.077/pt^0.72");
1530 tag = "TPC+ITS combine tracking + DCAr(pt) + DCAz(pt)";
1533 // TPC+ITS combine tracking + DCAr(pt) (2010)
1537 Double_t maxchi2perTPCcl=4.;
1538 Double_t maxdcazITSTPC=2.0;
1543 esdTrackCuts->SetRequireTPCRefit(kTRUE);
1544 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1545 esdTrackCuts->SetMinNClustersTPC(minclsTPC);
1546 esdTrackCuts->SetMaxChi2PerClusterTPC(maxchi2perTPCcl);
1550 esdTrackCuts->SetRequireITSRefit(kTRUE);
1551 esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
1553 // primary selection
1555 esdTrackCuts->SetDCAToVertex2D(kFALSE);
1556 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1557 esdTrackCuts->SetMaxDCAToVertexZ(maxdcazITSTPC);
1559 // DCArphi parametrization (LHC10c pass2)
1560 // 7*(0.0026+0.0050/pt^1.01)
1561 esdTrackCuts->SetMaxDCAToVertexXYPtDep("0.0182+0.0350/pt^1.01");
1563 tag = "TPC+ITS combine tracking + DCAr(pt) (2010)";
1566 // TPC-tracks + SPD point + ITS refit + DCAr(pt) 4-sigma
1570 Double_t maxchi2perTPCcl=4.;
1571 Double_t maxdcazITSTPC=1.e9;
1576 esdTrackCuts->SetRequireTPCStandAlone(kTRUE);
1577 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1578 esdTrackCuts->SetMinNClustersTPC(minclsTPC);
1579 esdTrackCuts->SetMaxChi2PerClusterTPC(maxchi2perTPCcl);
1583 esdTrackCuts->SetRequireITSRefit(kTRUE);
1584 esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
1586 // primary selection
1588 esdTrackCuts->SetDCAToVertex2D(kFALSE);
1589 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1590 esdTrackCuts->SetMaxDCAToVertexZ(maxdcazITSTPC);
1592 // 4*(0.0050+0.0060/pt^0.9)
1593 esdTrackCuts->SetMaxDCAToVertexXYPtDep("0.02+0.024/pt^0.9");
1595 tag = "TPC-tracks + ITS refit + >1 SPD cluster + DCAr(Pt) 4-sigma";
1598 // TPC-tracks + SPD point + ITS refit + DCAr(pt) 10-sigma
1602 Double_t maxchi2perTPCcl=4.;
1603 Double_t maxdcazITSTPC=1.e9;
1608 esdTrackCuts->SetRequireTPCStandAlone(kTRUE);
1609 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1610 esdTrackCuts->SetMinNClustersTPC(minclsTPC);
1611 esdTrackCuts->SetMaxChi2PerClusterTPC(maxchi2perTPCcl);
1615 esdTrackCuts->SetRequireITSRefit(kTRUE);
1616 esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
1618 // primary selection
1620 esdTrackCuts->SetDCAToVertex2D(kFALSE);
1621 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1622 esdTrackCuts->SetMaxDCAToVertexZ(maxdcazITSTPC);
1624 // 10*(0.0050+0.0060/pt^0.9)
1625 esdTrackCuts->SetMaxDCAToVertexXYPtDep("0.05+0.06/pt^0.9");
1627 tag = "TPC-tracks + ITS refit + >1 SPD cluster + DCAr(Pt) 10 sigma";
1630 // TPC-tracks + SPD point + ITS refit + DCAr(pt) + 60 TPCclust
1634 Double_t maxchi2perTPCcl=4.;
1635 Double_t maxdcazITSTPC=1.e9;
1640 esdTrackCuts->SetRequireTPCStandAlone(kTRUE);
1641 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1642 esdTrackCuts->SetMinNClustersTPC(minclsTPC);
1643 esdTrackCuts->SetMaxChi2PerClusterTPC(maxchi2perTPCcl);
1647 esdTrackCuts->SetRequireITSRefit(kTRUE);
1648 esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
1650 // primary selection
1652 esdTrackCuts->SetDCAToVertex2D(kFALSE);
1653 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1654 esdTrackCuts->SetMaxDCAToVertexZ(maxdcazITSTPC);
1656 // 7*(0.0050+0.0060/pt^0.9)
1657 esdTrackCuts->SetMaxDCAToVertexXYPtDep("0.0350+0.0420/pt^0.9");
1659 tag = "TPC-tracks + ITS refit + >1 SPD cluster + DCAr(Pt) + 60 TPCclust";
1662 // TPC-tracks + SPD point + ITS refit + DCAr(pt) + 80 clusters
1666 Double_t maxchi2perTPCcl=4.;
1667 Double_t maxdcazITSTPC=1.e9;
1672 esdTrackCuts->SetRequireTPCStandAlone(kTRUE);
1673 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1674 esdTrackCuts->SetMinNClustersTPC(minclsTPC);
1675 esdTrackCuts->SetMaxChi2PerClusterTPC(maxchi2perTPCcl);
1679 esdTrackCuts->SetRequireITSRefit(kTRUE);
1680 esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
1682 // primary selection
1684 esdTrackCuts->SetDCAToVertex2D(kFALSE);
1685 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1686 esdTrackCuts->SetMaxDCAToVertexZ(maxdcazITSTPC);
1688 // 7*(0.0050+0.0060/pt^0.9)
1689 esdTrackCuts->SetMaxDCAToVertexXYPtDep("0.0350+0.0420/pt^0.9");
1691 tag = "TPC-tracks + ITS refit + >1 SPD cluster + DCAr(Pt) + 80 TPCclust";
1694 // TPC-tracks + SPD point + ITS refit + DCAr(pt) + TPCchi2=3.5
1698 Double_t maxchi2perTPCcl=3.5;
1699 Double_t maxdcazITSTPC=1.e9;
1704 esdTrackCuts->SetRequireTPCStandAlone(kTRUE);
1705 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1706 esdTrackCuts->SetMinNClustersTPC(minclsTPC);
1707 esdTrackCuts->SetMaxChi2PerClusterTPC(maxchi2perTPCcl);
1711 esdTrackCuts->SetRequireITSRefit(kTRUE);
1712 esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
1714 // primary selection
1716 esdTrackCuts->SetDCAToVertex2D(kFALSE);
1717 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1718 esdTrackCuts->SetMaxDCAToVertexZ(maxdcazITSTPC);
1720 // 7*(0.0050+0.0060/pt^0.9)
1721 esdTrackCuts->SetMaxDCAToVertexXYPtDep("0.0350+0.0420/pt^0.9");
1723 tag = "TPC-tracks + ITS refit + >1 SPD cluster + DCAr(Pt) + TPCchi2 3.5";
1726 // TPC-tracks + SPD point + ITS refit + DCAr(pt) + TPCchi2=4.5
1730 Double_t maxchi2perTPCcl=4.5;
1731 Double_t maxdcazITSTPC=1.e9;
1736 esdTrackCuts->SetRequireTPCStandAlone(kTRUE);
1737 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1738 esdTrackCuts->SetMinNClustersTPC(minclsTPC);
1739 esdTrackCuts->SetMaxChi2PerClusterTPC(maxchi2perTPCcl);
1743 esdTrackCuts->SetRequireITSRefit(kTRUE);
1744 esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
1746 // primary selection
1748 esdTrackCuts->SetDCAToVertex2D(kFALSE);
1749 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1750 esdTrackCuts->SetMaxDCAToVertexZ(maxdcazITSTPC);
1752 // 7*(0.0050+0.0060/pt^0.9)
1753 esdTrackCuts->SetMaxDCAToVertexXYPtDep("0.0350+0.0420/pt^0.9");
1755 tag = "TPC-tracks + ITS refit + >1 SPD cluster + DCAr(Pt) + TPCchi2 4.5";
1762 minNClustersTPC = 70;
1763 maxChi2PerClusterTPC = 4.0;
1764 maxDCAtoVertexXY = 1.e9; // cm
1765 maxDCAtoVertexZ = 1.e9; // cm
1767 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1768 esdTrackCuts->SetRequireTPCRefit(kFALSE);
1769 esdTrackCuts->SetRequireTPCStandAlone(kTRUE);
1770 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1771 esdTrackCuts->SetMinNClustersTPC(minNClustersTPC);
1772 esdTrackCuts->SetMaxChi2PerClusterTPC(maxChi2PerClusterTPC);
1773 esdTrackCuts->SetMaxDCAToVertexXY(maxDCAtoVertexXY);
1774 esdTrackCuts->SetMaxDCAToVertexZ(maxDCAtoVertexZ);
1775 esdTrackCuts->SetDCAToVertex2D(kTRUE);
1777 tag = "TPC-tracks loose criteria";
1781 // TPC-tracks + SPD point + ITS refit + DCAr(pt) + 50 TPCclust
1785 Double_t maxchi2perTPCcl=4.;
1786 Double_t maxdcazITSTPC=1.e9;
1791 esdTrackCuts->SetRequireTPCStandAlone(kTRUE);
1792 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1793 esdTrackCuts->SetMinNClustersTPC(minclsTPC);
1794 esdTrackCuts->SetMaxChi2PerClusterTPC(maxchi2perTPCcl);
1798 esdTrackCuts->SetRequireITSRefit(kTRUE);
1799 esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
1801 // primary selection
1803 esdTrackCuts->SetDCAToVertex2D(kFALSE);
1804 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1805 esdTrackCuts->SetMaxDCAToVertexZ(maxdcazITSTPC);
1807 // 7*(0.0050+0.0060/pt^0.9)
1808 esdTrackCuts->SetMaxDCAToVertexXYPtDep("0.0350+0.0420/pt^0.9");
1810 tag = "TPC-tracks + ITS refit + >1 SPD cluster + DCAr(Pt) + 60 TPCclust";
1813 // TPC-tracks + SPD point + ITS refit + DCAr(pt) + 70 TPCclust + accept kink daughters
1817 Double_t maxchi2perTPCcl=4.;
1818 Double_t maxdcazITSTPC=1.e9;
1823 esdTrackCuts->SetRequireTPCStandAlone(kTRUE);
1824 esdTrackCuts->SetAcceptKinkDaughters(kTRUE);
1825 esdTrackCuts->SetMinNClustersTPC(minclsTPC);
1826 esdTrackCuts->SetMaxChi2PerClusterTPC(maxchi2perTPCcl);
1830 esdTrackCuts->SetRequireITSRefit(kTRUE);
1831 esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
1833 // primary selection
1835 esdTrackCuts->SetDCAToVertex2D(kFALSE);
1836 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1837 esdTrackCuts->SetMaxDCAToVertexZ(maxdcazITSTPC);
1839 // 7*(0.0050+0.0060/pt^0.9)
1840 esdTrackCuts->SetMaxDCAToVertexXYPtDep("0.0350+0.0420/pt^0.9");
1842 tag = "TPC-tracks + ITS refit + >1 SPD cluster + DCAr(Pt) + 60 TPCclust";
1845 // TPC-tracks + SPD point + ITS refit + DCAr(pt) + 30 TPCclust + accept kink daughters
1849 Double_t maxchi2perTPCcl=4.;
1850 Double_t maxdcazITSTPC=1.e9;
1855 esdTrackCuts->SetRequireTPCStandAlone(kTRUE);
1856 esdTrackCuts->SetAcceptKinkDaughters(kTRUE);
1857 esdTrackCuts->SetMinNClustersTPC(minclsTPC);
1858 esdTrackCuts->SetMaxChi2PerClusterTPC(maxchi2perTPCcl);
1862 esdTrackCuts->SetRequireITSRefit(kTRUE);
1863 esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
1865 // primary selection
1867 esdTrackCuts->SetDCAToVertex2D(kFALSE);
1868 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1869 esdTrackCuts->SetMaxDCAToVertexZ(maxdcazITSTPC);
1871 // 7*(0.0050+0.0060/pt^0.9)
1872 esdTrackCuts->SetMaxDCAToVertexXYPtDep("0.0350+0.0420/pt^0.9");
1874 tag = "TPC-tracks + ITS refit + >1 SPD cluster + DCAr(Pt) + 60 TPCclust";
1877 // Adam Kisiel track selectiion
1881 Double_t maxchi2perTPCcl=4.;
1882 Double_t maxdcazITSTPC=0.25;
1883 Double_t maxdcaxyITSTPC=0.2;
1888 //esdTrackCuts->SetRequireTPCStandAlone(kTRUE);
1889 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1890 esdTrackCuts->SetMinNClustersTPC(minclsTPC);
1891 esdTrackCuts->SetMaxChi2PerClusterTPC(maxchi2perTPCcl);
1895 esdTrackCuts->SetRequireITSRefit(kTRUE);
1896 //esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
1898 // primary selection
1900 //esdTrackCuts->SetDCAToVertex2D(kFALSE);
1901 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
1902 esdTrackCuts->SetMaxDCAToVertexZ(maxdcazITSTPC);
1903 esdTrackCuts->SetMaxDCAToVertexXY(maxdcaxyITSTPC);
1905 // 7*(0.0050+0.0060/pt^0.9)
1906 //esdTrackCuts->SetMaxDCAToVertexXYPtDep("0.0350+0.0420/pt^0.9");
1908 tag = "Adam Kisiel track selection";
1918 esdTrackCuts->SetRequireTPCRefit(kTRUE);
1919 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1923 esdTrackCuts->SetRequireITSRefit(kTRUE);
1924 esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
1927 tag = "TPC+ITS refit required - for cut studies";
1937 esdTrackCuts->SetRequireTPCRefit(kTRUE);
1938 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1942 //esdTrackCuts->SetRequireITSRefit(kTRUE);
1943 //esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
1946 tag = "TPC refit required - for cut studies";
1956 esdTrackCuts->SetRequireTPCRefit(kFALSE);
1957 esdTrackCuts->SetRequireITSRefit(kFALSE);
1958 esdTrackCuts->SetRequireTPCStandAlone(kTRUE);
1959 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
1963 //esdTrackCuts->SetRequireITSRefit(kTRUE);
1964 //esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
1967 tag = "TPC stand alone - for cut studies";
1975 // cuts for data without field
1979 tag += " without field";
1982 Printf("Created track cuts for: %s", tag.Data());
1984 return esdTrackCuts;