2 // All cuts for single pions in Sigma* analysis 2010,
3 // based on track quality and particle identification
5 // Author: Massimo Venaruzzo.
12 #include "AliPIDResponse.h"
13 #include "AliRsnCutDaughterSigmaStar2010PP.h"
15 ClassImp(AliRsnCutDaughterSigmaStar2010PP)
17 //__________________________________________________________________________________________________
18 AliRsnCutDaughterSigmaStar2010PP::AliRsnCutDaughterSigmaStar2010PP(const char *name, AliPID::EParticleType pid) :
19 AliRsnCut(name, AliRsnTarget::kDaughter),
21 fCutQuality(Form("%sQuality", name)),
28 // Initialize track quality cuts to 2010 defaults
31 fCutQuality.SetPtRange(0.15, 1E+20);
32 fCutQuality.SetEtaRange(-0.8, 0.8);
33 fCutQuality.SetDCARPtFormula(fDCARptFormula);
34 fCutQuality.SetDCAZmax(2.0);
35 fCutQuality.SetSPDminNClusters(1);
36 fCutQuality.SetITSminNClusters(0);
37 fCutQuality.SetITSmaxChi2(1E+20);
38 fCutQuality.SetTPCminNClusters(fMinTPCcluster);
39 fCutQuality.SetTPCmaxChi2(4.0);
40 fCutQuality.SetRejectKinkDaughters();
41 fCutQuality.SetAODTestFilterBit(5);
44 //__________________________________________________________________________________________________
45 Bool_t AliRsnCutDaughterSigmaStar2010PP::IsSelected(TObject *obj)
52 if (!TargetOK(obj)) return kFALSE;
55 AliVTrack *track = fDaughter->Ref2Vtrack();
57 if (!fDaughter->GetRef()) AliWarning("NULL ref");
61 AliDebugClass(2, "Checking status");
65 if ((track->GetStatus() & AliESDtrack::kTPCin ) == 0) return kFALSE;
66 if ((track->GetStatus() & AliESDtrack::kTPCrefit) == 0) return kFALSE;
67 if ((track->GetStatus() & AliESDtrack::kITSrefit) == 0) return kFALSE;
69 AliDebugClass(2, "Checking quality cuts");
72 if (!fCutQuality.IsSelected(obj)) return kFALSE;
74 AliDebugClass(2, "...passed");
77 // check initialization of PID object
78 AliPIDResponse *pid = fEvent->GetPIDResponse();
80 AliFatal("NULL PID response");
84 // check if TOF is matched
85 // and computes all values used in the PID cut
86 //Bool_t isTOF = MatchTOF(track);
87 //Double_t pTPC = track->GetTPCmomentum();
88 //Double_t p = track->P();
89 Double_t nsTPC = TMath::Abs(pid->NumberOfSigmasTPC(track, fPID));
90 //Double_t nsTOF = TMath::Abs(pid->NumberOfSigmasTOF(track, fPID));
91 Double_t maxTPC = 1E20;
92 //Double_t maxTOF = 1E20;
94 // applies the cut differently depending on the PID and the momentum
96 // TPC: 5sigma cut for all
97 //if (nsTPC > 5.0) return kFALSE;
98 // TOF: 3sigma below 1.5 GeV, 2sigma above
99 //if (p < 1.5) maxTOF = 3.0; else maxTOF = 2.0;
100 //return (nsTOF <= maxTOF);
103 //For the moment TOF is not used - PID ONLY WITH TPC - 3 sigmas in the whole range
108 return (nsTPC <= maxTPC);
110 AliDebugClass(2, "Good Pion (hallelujah)");