]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGLF/RESONANCES/AliRsnCutSetDaughterParticle.cxx
Removed obsolete classes + added cut set for kstar analysis
[u/mrichter/AliRoot.git] / PWGLF / RESONANCES / AliRsnCutSetDaughterParticle.cxx
CommitLineData
9cdd5474 1//
2// Author: Francesca Bellini (fbellini@cern.ch)
3//
4//
5
6#include <Riostream.h>
7
8#include "AliPID.h"
9#include "AliPIDResponse.h"
10#include "AliRsnCutSetDaughterParticle.h"
11
12class AliRsnCutPIDNSigma;
13class AliRsnPIDRange;
14
15ClassImp(AliRsnCutSetDaughterParticle)
16
17//__________________________________________________________________________________________________
18AliRsnCutSetDaughterParticle::AliRsnCutSetDaughterParticle() :
19 AliRsnCutSet("AliRsnCutSetDaughterParticle", AliRsnTarget::kDaughter),
20 fPID(AliPID::kPion),
21 fAppliedCutSetID(AliRsnCutSetDaughterParticle::kNDaughterCuts),
22 fNsigmaTPC(1E20),
23 fNsigmaTOF(1E20)
24{
25 //
26 // Default constructor
27}
28
29//__________________________________________________________________________________________________
30AliRsnCutSetDaughterParticle::AliRsnCutSetDaughterParticle(const char *name, AliRsnCutSetDaughterParticle::ERsnDaughterCutSet cutSetID, AliPID::EParticleType pid, Float_t nSigmaFast = -1.0) :
31 AliRsnCutSet(name, AliRsnTarget::kDaughter),
32 fPID(pid),
33 fAppliedCutSetID(cutSetID),
34 fNsigmaTPC(1E20),
35 fNsigmaTOF(1E20)
36{
37 //
38 // Constructor
39 //
40 if ( (nSigmaFast<=0) &&
41 ((cutSetID == AliRsnCutSetDaughterParticle::kFastTPCpidNsigma) || (cutSetID == AliRsnCutSetDaughterParticle::kFastTOFpidNsigma)) ) {
42 AliError("Requested fast n-sigma PID with invalid value for n. Setting n = 1E20");
43 } else {
44 if (cutSetID == AliRsnCutSetDaughterParticle::kFastTPCpidNsigma){
45 fNsigmaTPC = nSigmaFast;
46 }
47 if ( (cutSetID == AliRsnCutSetDaughterParticle::kFastTOFpidNsigma) ||
48 (cutSetID == AliRsnCutSetDaughterParticle::kTOFpidKstarPbPb2010) ) {
49 fNsigmaTOF = nSigmaFast;
50 }
51 }
52
53 Init();
54}
55
56//__________________________________________________________________________________________________
57AliRsnCutSetDaughterParticle::AliRsnCutSetDaughterParticle(const AliRsnCutSetDaughterParticle &copy) :
58 AliRsnCutSet(copy),
59 fPID(copy.fPID),
60 fAppliedCutSetID(copy.fAppliedCutSetID),
61 fNsigmaTPC(copy.fNsigmaTPC),
62 fNsigmaTOF(copy.fNsigmaTOF)
63{
64 //
65 // copy constructor
66}
67
68//__________________________________________________________________________________________________
69AliRsnCutSetDaughterParticle &AliRsnCutSetDaughterParticle::operator=(const AliRsnCutSetDaughterParticle &copy)
70 {
71 //
72 // operator =
73 //
74 AliRsnCutSet::operator=(copy);
75 if (this == &copy)
76 return *this;
77 fPID=copy.fPID;
78 fAppliedCutSetID=copy.fAppliedCutSetID;
79 fNsigmaTPC=copy.fNsigmaTPC;
80 fNsigmaTOF=copy.fNsigmaTOF;
81 return (*this);
82}
83
84//----------------------------------------------------------------------------
85void AliRsnCutSetDaughterParticle::Init()
86{
87 //
88 // init cut sets by setting variable params
89 //
90 AliRsnCutTrackQuality * iCutQualityStd2010 = new AliRsnCutTrackQuality("CutQualityStd2010");
91 iCutQualityStd2010->SetDefaults2010();
92 /*
93 requires ITS refit ,TPC refit, TPC in
94 iCutQualityStd2010->SetPtRange(0.15, 1E+20);
95 iCutQualityStd2010->SetEtaRange(-0.8, 0.8);
96 iCutQualityStd2010->SetDCARPtFormula("0.0182+0.0350/pt^1.01");
97 iCutQualityStd2010->SetDCAZmax(2.0);
98 iCutQualityStd2010->SetSPDminNClusters(1);
99 iCutQualityStd2010->SetITSminNClusters(0);
100 iCutQualityStd2010->SetITSmaxChi2(36);
101 iCutQualityStd2010->SetTPCminNClusters(70);
102 iCutQualityStd2010->SetTPCmaxChi2(4.0);
103 iCutQualityStd2010->SetRejectKinkDaughters();
104 iCutQualityStd2010->SetAODTestFilterBit(5);
105 */
106
107 AliRsnCutTOFMatch *iCutTOFMatch = new AliRsnCutTOFMatch("CutTOFMatch");
108 AliRsnCutPIDNSigma *iCutTPCNSigma = new AliRsnCutPIDNSigma("CutTPCNSigma", fPID, AliRsnCutPIDNSigma::kTPC);//, AliRsnCutPIDNSigma::kTPCinnerP );
109 AliRsnCutPIDNSigma *iCutTPCTOFNSigma = new AliRsnCutPIDNSigma("CutTPCTOFNSigma", fPID, AliRsnCutPIDNSigma::kTPC);//, AliRsnCutPIDNSigma::kTPCinnerP );
110 AliRsnCutPIDNSigma *iCutTOFNSigma = new AliRsnCutPIDNSigma("CutTOFNSigma", fPID, AliRsnCutPIDNSigma::kTOF);//, AliRsnCutPIDNSigma::kP );
111
112 switch (fAppliedCutSetID)
113 {
114 case AliRsnCutSetDaughterParticle::kNoCuts :
115 AliInfo("No cuts applied to daughter particle");
116 break;
117
118 case AliRsnCutSetDaughterParticle::kQualityStd2010 :
119 AddCut(iCutQualityStd2010);
120 SetCutScheme(iCutQualityStd2010->GetName());
121 break;
122
123 case AliRsnCutSetDaughterParticle::kQualityStd2011:
124 //these are also golden cuts for PbPb 2010
125 //AliESDtrackCuts::GetStandardITSTPCTrackCuts2011()
126 // select golden cut for ESD -> to be implemented
127 //select golden cut for AOD
128 iCutQualityStd2010->SetAODTestFilterBit(10); //1024
129 AddCut(iCutQualityStd2010);
130 SetCutScheme(iCutQualityStd2010->GetName());
131 break;
132
133 case AliRsnCutSetDaughterParticle::kTOFMatch :
134 AddCut(iCutQualityStd2010);
135 AddCut(iCutTOFMatch);
136 SetCutScheme( Form("%s&(%s)",iCutQualityStd2010->GetName(), iCutTOFMatch->GetName()) );
137 break;
138
139 case AliRsnCutSetDaughterParticle::kFastTPCpidNsigma :
140 if (fNsigmaTPC <= 0.0) {
141 AliWarning(Form("Invalid number of sigmas required for %s. Setting default nSigma = 10",iCutTPCNSigma->GetName()));
142 SetNsigmaForFastTPCpid(10.0);
143 }
144 iCutTPCNSigma->SinglePIDRange(fNsigmaTPC);
145 AddCut(iCutQualityStd2010);
146 AddCut(iCutTPCNSigma);
147 SetCutScheme( Form("%s&%s",iCutQualityStd2010->GetName(), iCutTPCNSigma->GetName()) );
148 break;
149
150 case AliRsnCutSetDaughterParticle::kFastTOFpidNsigma :
151 if (fNsigmaTOF <= 0.0) {
152 AliWarning(Form("Invalid number of sigmas required for %s. Setting default nSigma = 10",iCutTOFNSigma->GetName()));
153 SetNsigmaForFastTOFpid(10.0);
154 }
155 iCutTOFNSigma->SinglePIDRange(fNsigmaTOF);
156 //iCutTOFNSigma->AddPIDRange(3.0, 0.35, 1E20);
157 AddCut(iCutQualityStd2010);
158 AddCut(iCutTOFNSigma);
159 SetCutScheme( Form("%s&%s",iCutQualityStd2010->GetName(), iCutTOFNSigma->GetName()) );
160 break;
161
162 case AliRsnCutSetDaughterParticle::kTPCTOFpidKstarPP2010 :
163 /* Set TPC PID (if no TOF)*/
164 // all below 350 MeV: 5sigma
165 // all between 350 and 500 MeV: 3sigma
166 // pios above 500 MeV: 2sigma
167 // kaons between 500 and 700 MeV: 2sigma
168 // kaons above 700 MeV: rejected
169 iCutTPCNSigma->AddPIDRange(5.0, 0.0, 0.35);
170 iCutTPCNSigma->AddPIDRange(3.0, 0.35, 0.5);
171 if (fPID==AliPID::kPion)
172 iCutTPCNSigma->AddPIDRange(2.0, 0.5, 1E20);
173 if (fPID==AliPID::kKaon)
174 iCutTPCNSigma->AddPIDRange(2.0, 0.5, 0.7);
175
176 AddCut(iCutQualityStd2010);
177 AddCut(iCutTOFMatch);
178 AddCut(iCutTPCNSigma);
179
180 /* set TPC+TOF PID*/
181 iCutTPCTOFNSigma->SinglePIDRange(5.0);
182 iCutTOFNSigma->AddPIDRange(3.0, 0.0, 1.5);
183 iCutTOFNSigma->AddPIDRange(2.0, 1.5, 1E20);
184
185 AddCut(iCutTPCTOFNSigma);
186 AddCut(iCutTOFNSigma);
187
188 // scheme:
189 // quality & [ (TOF & TPCTOF) || (!TOFmatch & TPConly) ]
190 SetCutScheme( Form("%s&((%s&%s)|((!%s)&%s))",iCutQualityStd2010->GetName(), iCutTPCTOFNSigma->GetName(), iCutTOFNSigma->GetName(), iCutTOFMatch->GetName(), iCutTPCNSigma->GetName()) ) ;
191 break;
192
193 case AliRsnCutSetDaughterParticle::kTOFpidKstarPbPb2010:
194 if (fNsigmaTOF <= 0.0) {
195 AliWarning(Form("Invalid number of sigmas required for %s. Setting default nSigma = 10",iCutTOFNSigma->GetName()));
196 SetNsigmaForFastTOFpid(10.0);
197 }
198 iCutTOFNSigma->SinglePIDRange(fNsigmaTOF);
199 //iCutTOFNSigma->AddPIDRange(3.0, 0.35, 1E20);
200 iCutTPCTOFNSigma->SinglePIDRange(5.0); //5-sigma veto on tpc signal
201 /* requires ITS refit ,TPC refit, TPC in*/
202 iCutQualityStd2010->SetPtRange(0.15, 1E+20);
203 iCutQualityStd2010->SetEtaRange(-0.8, 0.8);
204 iCutQualityStd2010->SetDCARPtFormula("0.0182+0.0350/pt^1.01");
205 iCutQualityStd2010->SetDCAZmax(2.0);
206 iCutQualityStd2010->SetSPDminNClusters(1);
207 iCutQualityStd2010->SetITSminNClusters(0);
208 iCutQualityStd2010->SetITSmaxChi2(36);
209 iCutQualityStd2010->SetTPCminNClusters(70);
210 iCutQualityStd2010->SetTPCmaxChi2(4.0);
211 iCutQualityStd2010->SetRejectKinkDaughters();
212 //iCutQualityStd2010->SetAODTestFilterBit(10); //AOD086
213 iCutQualityStd2010->SetAODTestFilterBit(5); //AOD049 no golden cuts
214 AddCut(iCutQualityStd2010);
215 AddCut(iCutTOFNSigma);
216 AddCut(iCutTPCTOFNSigma);
217 SetCutScheme( Form("%s&%s&%s",iCutQualityStd2010->GetName(), iCutTOFNSigma->GetName(), iCutTPCTOFNSigma->GetName()) );
218 break;
219
220 default :
221 break;
222 }
223
224}
225
226
227