]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGLF/SPECTRA/Nuclei/B2/macros/TrackCuts.C
Update of macros
[u/mrichter/AliRoot.git] / PWGLF / SPECTRA / Nuclei / B2 / macros / TrackCuts.C
CommitLineData
6b91e8c0 1/**************************************************************************
2 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
3 * *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
6 * *
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 **************************************************************************/
15
16// macro for a predefined set of track cuts
17// author: Eulogio Serradilla <eulogio.serradilla@cern.ch>
18
19void AddNSigmaCuts(AliESDtrackCuts* trkCuts, Float_t maxNSigma=3)
20{
21//
22// nsigma cuts
23//
24 trkCuts->SetRequireSigmaToVertex(kTRUE);
25 trkCuts->SetMaxNsigmaToVertex(maxNSigma);
26}
27
28void AddDCACuts(AliESDtrackCuts* trkCuts, Float_t maxDCAxy=1.5, Float_t maxDCAz=2)
29{
30//
31// DCA cuts
32//
33 trkCuts->SetMaxDCAToVertexXY(maxDCAxy);
34 trkCuts->SetMaxDCAToVertexZ(maxDCAz);
35}
36
37AliESDtrackCuts* TrackCuts(AliAnalysisTaskB2* task, const TString& trackselection, Double_t maxDCAxy, Double_t maxDCAz, Double_t maxNSigma, Int_t minTPCnCls, Double_t maxEta)
38{
39//
40// Create an AliESDtrackCuts from a predefined set
41//
42 AliESDtrackCuts* trkCuts = new AliESDtrackCuts("AliESDtrackCuts");
43
44 trkCuts->SetEtaRange(-maxEta, maxEta);
45 trkCuts->SetPtRange(0.15, 100.);
46 trkCuts->SetAcceptKinkDaughters(kFALSE);
47
48 // ITS
49 trkCuts->SetRequireITSRefit(kTRUE);
50 trkCuts->SetMinNClustersITS(2);
51 trkCuts->SetMaxChi2PerClusterITS(36);
52
53 // TPC
54 trkCuts->SetRequireTPCRefit(kTRUE);
55 trkCuts->SetMinNClustersTPC(minTPCnCls);
56 trkCuts->SetMaxChi2PerClusterTPC(4.);
57
58 TString tracksel = trackselection;
59 tracksel.ToLower();
60
61 if(tracksel == "its_tpc_nsigma")
62 {
63 AddNSigmaCuts(trkCuts, maxNSigma);
64 }
65
66 else if(tracksel == "its_tpc_nsigma_spd")
67 {
68 AddNSigmaCuts(trkCuts, maxNSigma);
69 trkCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD, AliESDtrackCuts::kFirst);
70 }
71
72 else if(tracksel == "its_tpc_dca")
73 {
74 AddDCACuts(trkCuts,maxDCAxy,maxDCAz);
75 }
76
77 else if(tracksel == "its_tpc_dca_spd")
78 {
79 AddDCACuts(trkCuts,maxDCAxy,maxDCAz);
80 trkCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD, AliESDtrackCuts::kFirst);
81 }
82
83 else if(tracksel == "its_tpc_tof_nsigma")
84 {
85 AddNSigmaCuts(trkCuts, maxNSigma);
86 task->SetTOFmatch(1);
87 }
88
89 else if(tracksel == "its_tpc_tof_nsigma_spd")
90 {
91 AddNSigmaCuts(trkCuts, maxNSigma);
92 task->SetTOFmatch(1);
93 trkCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD, AliESDtrackCuts::kFirst);
94 }
95
96 else if(tracksel == "its_tpc_tof_dca")
97 {
98 AddDCACuts(trkCuts,maxDCAxy,maxDCAz);
99 task->SetTOFmatch(1);
100 }
101
102 else if(tracksel == "its_tpc_tof_dca_spd")
103 {
104 AddDCACuts(trkCuts,maxDCAxy,maxDCAz);
105 task->SetTOFmatch(1);
106 trkCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD, AliESDtrackCuts::kFirst);
107 }
108
109 else if(tracksel == "std_its_tpc_2009") // pp data 2009
110 {
111 delete trkCuts;
112 return AliESDtrackCuts::GetStandardITSTPCTrackCuts2009(1);
113 }
114
115 else if(tracksel == "std_its_tpc_2010") // pp data 2010
116 {
117 delete trkCuts;
118 return AliESDtrackCuts::GetStandardITSTPCTrackCuts2010(1);
119 }
120
121 else
122 {
123 std::cerr << "Warning: no track selection criteria selected" << std::endl;
124 }
125
126 return trkCuts;
127}