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