]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGLF/SPECTRA/Nuclei/B2/macros/TrackCuts.C
Updated macros for K* analysis (S.Singha): extended pt range + trigger selection...
[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
47bb775c 66 else if(tracksel == "its_tpc_nsigma_spd1")
6b91e8c0 67 {
68 AddNSigmaCuts(trkCuts, maxNSigma);
69 trkCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD, AliESDtrackCuts::kFirst);
70 }
71
47bb775c 72 else if(tracksel == "its_tpc_nsigma_spd")
73 {
74 AddNSigmaCuts(trkCuts, maxNSigma);
75 trkCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD, AliESDtrackCuts::kAny);
76 }
77
6b91e8c0 78 else if(tracksel == "its_tpc_dca")
79 {
80 AddDCACuts(trkCuts,maxDCAxy,maxDCAz);
81 }
82
47bb775c 83 else if(tracksel == "its_tpc_dca_spd1")
6b91e8c0 84 {
85 AddDCACuts(trkCuts,maxDCAxy,maxDCAz);
86 trkCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD, AliESDtrackCuts::kFirst);
87 }
88
47bb775c 89 else if(tracksel == "its_tpc_dca_spd")
90 {
91 AddDCACuts(trkCuts,maxDCAxy,maxDCAz);
92 trkCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD, AliESDtrackCuts::kAny);
93 }
94
6b91e8c0 95 else if(tracksel == "its_tpc_tof_nsigma")
96 {
97 AddNSigmaCuts(trkCuts, maxNSigma);
98 task->SetTOFmatch(1);
99 }
100
47bb775c 101 else if(tracksel == "its_tpc_tof_nsigma_spd1")
6b91e8c0 102 {
103 AddNSigmaCuts(trkCuts, maxNSigma);
104 task->SetTOFmatch(1);
105 trkCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD, AliESDtrackCuts::kFirst);
106 }
107
47bb775c 108 else if(tracksel == "its_tpc_tof_nsigma_spd")
109 {
110 AddNSigmaCuts(trkCuts, maxNSigma);
111 task->SetTOFmatch(1);
112 trkCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD, AliESDtrackCuts::kAny);
113 }
114
6b91e8c0 115 else if(tracksel == "its_tpc_tof_dca")
116 {
117 AddDCACuts(trkCuts,maxDCAxy,maxDCAz);
118 task->SetTOFmatch(1);
119 }
120
47bb775c 121 else if(tracksel == "its_tpc_tof_dca_spd1")
6b91e8c0 122 {
123 AddDCACuts(trkCuts,maxDCAxy,maxDCAz);
124 task->SetTOFmatch(1);
125 trkCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD, AliESDtrackCuts::kFirst);
126 }
127
47bb775c 128 else if(tracksel == "its_tpc_tof_dca_spd")
129 {
130 AddDCACuts(trkCuts,maxDCAxy,maxDCAz);
131 task->SetTOFmatch(1);
132 trkCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD, AliESDtrackCuts::kAny);
133 }
134
6b91e8c0 135 else if(tracksel == "std_its_tpc_2009") // pp data 2009
136 {
137 delete trkCuts;
138 return AliESDtrackCuts::GetStandardITSTPCTrackCuts2009(1);
139 }
140
141 else if(tracksel == "std_its_tpc_2010") // pp data 2010
142 {
143 delete trkCuts;
144 return AliESDtrackCuts::GetStandardITSTPCTrackCuts2010(1);
145 }
146
147 else
148 {
149 std::cerr << "Warning: no track selection criteria selected" << std::endl;
150 }
151
152 return trkCuts;
153}