]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGLF/RESONANCES/AliRsnCutDaughterSigmaStar2010PP.cxx
Modified macros for TOF analysis of K* in pA for possibility to use daughter's pt...
[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)),
9d4bb6d8 22 fPIDCut(3.0),
92932daf 23 fMinTPCcluster(70),
65ddd3ef 24 //fDCARptFormula("0.0182+0.0350/pt^1.01")
25 fDCARmax(0.05)
bd74a0e6 26{
27//
28// Constructor
29// Initialize track quality cuts to 2010 defaults
30//
31
32 fCutQuality.SetPtRange(0.15, 1E+20);
33 fCutQuality.SetEtaRange(-0.8, 0.8);
65ddd3ef 34 fCutQuality.SetDCARmax(fDCARmax);
35 //fCutQuality.SetDCARPtFormula(fDCARptFormula);
bd74a0e6 36 fCutQuality.SetDCAZmax(2.0);
37 fCutQuality.SetSPDminNClusters(1);
38 fCutQuality.SetITSminNClusters(0);
39 fCutQuality.SetITSmaxChi2(1E+20);
9d4bb6d8 40 fCutQuality.SetTPCminNClusters(fMinTPCcluster);
bd74a0e6 41 fCutQuality.SetTPCmaxChi2(4.0);
42 fCutQuality.SetRejectKinkDaughters();
43 fCutQuality.SetAODTestFilterBit(5);
44}
45
46//__________________________________________________________________________________________________
47Bool_t AliRsnCutDaughterSigmaStar2010PP::IsSelected(TObject *obj)
48{
49//
50// Global check
51//
52
53 // coherence check
54 if (!TargetOK(obj)) return kFALSE;
61f275d1 55
bd74a0e6 56 // check track
57 AliVTrack *track = fDaughter->Ref2Vtrack();
58 if (!track) {
59 if (!fDaughter->GetRef()) AliWarning("NULL ref");
60 return kFALSE;
61 }
61f275d1 62
76d89202 63 AliDebugClass(2, "Checking status");
64
65
bd74a0e6 66 // check flags
67 if ((track->GetStatus() & AliESDtrack::kTPCin ) == 0) return kFALSE;
68 if ((track->GetStatus() & AliESDtrack::kTPCrefit) == 0) return kFALSE;
69 if ((track->GetStatus() & AliESDtrack::kITSrefit) == 0) return kFALSE;
61f275d1 70
76d89202 71 AliDebugClass(2, "Checking quality cuts");
72
bd74a0e6 73 // quality
74 if (!fCutQuality.IsSelected(obj)) return kFALSE;
61f275d1 75
76d89202 76 AliDebugClass(2, "...passed");
77
78
bd74a0e6 79 // check initialization of PID object
80 AliPIDResponse *pid = fEvent->GetPIDResponse();
81 if (!pid) {
82 AliFatal("NULL PID response");
83 return kFALSE;
84 }
61f275d1 85
bd74a0e6 86 // check if TOF is matched
87 // and computes all values used in the PID cut
88 //Bool_t isTOF = MatchTOF(track);
89 //Double_t pTPC = track->GetTPCmomentum();
90 //Double_t p = track->P();
3da8cef7 91 Double_t nsTPC = TMath::Abs(pid->NumberOfSigmasTPC(track, fPID));
bd74a0e6 92 //Double_t nsTOF = TMath::Abs(pid->NumberOfSigmasTOF(track, fPID));
3da8cef7 93 Double_t maxTPC = 1E20;
bd74a0e6 94 //Double_t maxTOF = 1E20;
61f275d1 95
bd74a0e6 96 // applies the cut differently depending on the PID and the momentum
97 //if (isTOF) {
61f275d1 98 // TPC: 5sigma cut for all
99 //if (nsTPC > 5.0) return kFALSE;
100 // TOF: 3sigma below 1.5 GeV, 2sigma above
101 //if (p < 1.5) maxTOF = 3.0; else maxTOF = 2.0;
102 //return (nsTOF <= maxTOF);
bd74a0e6 103 //} else {
61f275d1 104
bd74a0e6 105 //For the moment TOF is not used - PID ONLY WITH TPC - 3 sigmas in the whole range
61f275d1 106
107 // TPC:
92932daf 108
3da8cef7 109 maxTPC = fPIDCut;
110 return (nsTPC <= maxTPC);
61f275d1 111
bd74a0e6 112 AliDebugClass(2, "Good Pion (hallelujah)");
113 return kTRUE;
61f275d1 114}