Fix for setting minimum nr of TPC clusters
[u/mrichter/AliRoot.git] / PWGLF / RESONANCES / AliRsnCutDaughterSigmaStar2010PP.cxx
CommitLineData
bd74a0e6 1//
2// All cuts for single pions in Sigma* analysis 2010,
3// based on track quality and particle identification
4// with TPC and TOF.
5// Author: Massimo Venaruzzo.
6//
7//
8
9#include <Riostream.h>
10
11#include "AliPID.h"
12#include "AliPIDResponse.h"
13#include "AliRsnCutDaughterSigmaStar2010PP.h"
14
15ClassImp(AliRsnCutDaughterSigmaStar2010PP)
16
17//__________________________________________________________________________________________________
18AliRsnCutDaughterSigmaStar2010PP::AliRsnCutDaughterSigmaStar2010PP(const char *name, AliPID::EParticleType pid) :
19 AliRsnCut(name, AliRsnTarget::kDaughter),
20 fPID(pid),
3da8cef7 21 fCutQuality(Form("%sQuality", name)),
22 fPIDCut(3.0)
bd74a0e6 23{
24//
25// Constructor
26// Initialize track quality cuts to 2010 defaults
27//
28
29 fCutQuality.SetPtRange(0.15, 1E+20);
30 fCutQuality.SetEtaRange(-0.8, 0.8);
31 fCutQuality.SetDCARmax(0.05);
32 //fCutQuality.SetDCARPtFormula("0.0182+0.0350/pt^1.01");
33 fCutQuality.SetDCAZmax(2.0);
34 fCutQuality.SetSPDminNClusters(1);
35 fCutQuality.SetITSminNClusters(0);
36 fCutQuality.SetITSmaxChi2(1E+20);
37 fCutQuality.SetTPCminNClusters(70);
38 fCutQuality.SetTPCmaxChi2(4.0);
39 fCutQuality.SetRejectKinkDaughters();
40 fCutQuality.SetAODTestFilterBit(5);
41}
42
43//__________________________________________________________________________________________________
44Bool_t AliRsnCutDaughterSigmaStar2010PP::IsSelected(TObject *obj)
45{
46//
47// Global check
48//
49
50 // coherence check
51 if (!TargetOK(obj)) return kFALSE;
61f275d1 52
bd74a0e6 53 // check track
54 AliVTrack *track = fDaughter->Ref2Vtrack();
55 if (!track) {
56 if (!fDaughter->GetRef()) AliWarning("NULL ref");
57 return kFALSE;
58 }
61f275d1 59
76d89202 60 AliDebugClass(2, "Checking status");
61
62
bd74a0e6 63 // check flags
64 if ((track->GetStatus() & AliESDtrack::kTPCin ) == 0) return kFALSE;
65 if ((track->GetStatus() & AliESDtrack::kTPCrefit) == 0) return kFALSE;
66 if ((track->GetStatus() & AliESDtrack::kITSrefit) == 0) return kFALSE;
61f275d1 67
76d89202 68 AliDebugClass(2, "Checking quality cuts");
69
bd74a0e6 70 // quality
71 if (!fCutQuality.IsSelected(obj)) return kFALSE;
61f275d1 72
76d89202 73 AliDebugClass(2, "...passed");
74
75
bd74a0e6 76 // check initialization of PID object
77 AliPIDResponse *pid = fEvent->GetPIDResponse();
78 if (!pid) {
79 AliFatal("NULL PID response");
80 return kFALSE;
81 }
61f275d1 82
bd74a0e6 83 // check if TOF is matched
84 // and computes all values used in the PID cut
85 //Bool_t isTOF = MatchTOF(track);
86 //Double_t pTPC = track->GetTPCmomentum();
87 //Double_t p = track->P();
3da8cef7 88 Double_t nsTPC = TMath::Abs(pid->NumberOfSigmasTPC(track, fPID));
bd74a0e6 89 //Double_t nsTOF = TMath::Abs(pid->NumberOfSigmasTOF(track, fPID));
3da8cef7 90 Double_t maxTPC = 1E20;
bd74a0e6 91 //Double_t maxTOF = 1E20;
61f275d1 92
bd74a0e6 93 // applies the cut differently depending on the PID and the momentum
94 //if (isTOF) {
61f275d1 95 // TPC: 5sigma cut for all
96 //if (nsTPC > 5.0) return kFALSE;
97 // TOF: 3sigma below 1.5 GeV, 2sigma above
98 //if (p < 1.5) maxTOF = 3.0; else maxTOF = 2.0;
99 //return (nsTOF <= maxTOF);
bd74a0e6 100 //} else {
61f275d1 101
bd74a0e6 102 //For the moment TOF is not used - PID ONLY WITH TPC - 3 sigmas in the whole range
61f275d1 103
104 // TPC:
105 // below 350 MeV: 5sigma
106 // between 350 and 500 MeV: 3sigma
107 // pions above 500 MeV: 2sigma
108 // kaons between 500 and 700 MeV: 2sigma
109 // kaons above 700 MeV: rejected
110 /*if (pTPC <= 0.35)
111 maxTPC = 5.0;
112 else if (pTPC <= 0.5)
113 maxTPC = 3.0;
114 else if (pTPC > 0.5 && fPID == AliPID::kPion)
115 maxTPC = 2.0;
116 else if (pTPC > 0.5 && pTPC <= 0.7 && fPID == AliPID::kKaon)
117 maxTPC = 2.0;
118 else
119 return kFALSE;*/
3da8cef7 120 //maxTPC = 3.0;
121 maxTPC = fPIDCut;
122 return (nsTPC <= maxTPC);
61f275d1 123
bd74a0e6 124 AliDebugClass(2, "Good Pion (hallelujah)");
125 return kTRUE;
61f275d1 126}