2 // *** Class AliRsnCutESD2010 ***
4 // This class implements all cuts which have to be used for the 2010 runs
5 // for phi and generic resonance analysis.
6 // It contains an AliESDtrackCuts object for track quality selection
7 // and some criteria for particle identification with ITS, TPC and TOF.
9 // authors: Martin Vala (martin.vala@cern.ch)
10 // Alberto Pulvirenti (alberto.pulvirenti@ct.infn.it)
13 #ifndef ALIRSNCUTESD2010_H
14 #define ALIRSNCUTESD2010_H
17 #include "AliESDtrack.h"
18 #include "AliESDtrackCuts.h"
19 #include "AliESDpid.h"
20 #include "AliRsnCut.h"
24 class AliRsnCutESD2010 : public AliRsnCut {
27 AliRsnCutESD2010(const char *name = "cutESD2010", Bool_t isMC = kFALSE);
28 AliRsnCutESD2010(const AliRsnCutESD2010& copy);
29 AliRsnCutESD2010& operator=(const AliRsnCutESD2010& copy);
30 virtual ~AliRsnCutESD2010() {;};
32 AliESDpid* GetESDpid() {return &fESDpid;}
33 AliESDtrackCuts* GetCutsTPC() {return &fESDtrackCutsTPC;}
34 AliESDtrackCuts* GetCutsITS() {return &fESDtrackCutsITS;}
35 void CopyCutsTPC(const AliESDtrackCuts *cuts) {fESDtrackCutsTPC = (*cuts);}
36 void CopyCutsITS(const AliESDtrackCuts *cuts) {fESDtrackCutsITS = (*cuts);}
37 void CopyCutsTPC(AliESDtrackCuts cuts) {fESDtrackCutsTPC = cuts;}
38 void CopyCutsITS(AliESDtrackCuts cuts) {fESDtrackCutsITS = cuts;}
39 virtual Bool_t IsSelected(TObject *object);
40 virtual void Print(const Option_t *option = "") const;
42 void SetMC(Bool_t yn = kTRUE);
43 void SetCheckITS(Bool_t yn = kTRUE) {fCheckITS = yn;}
44 void SetCheckTPC(Bool_t yn = kTRUE) {fCheckTPC = yn;}
45 void SetCheckTOF(Bool_t yn = kTRUE) {fCheckTOF = yn;}
46 void SetUseITSTPC(Bool_t yn = kTRUE) {fUseITSTPC = yn;}
47 void SetUseITSSA(Bool_t yn = kTRUE) {fUseITSSA = yn;}
48 void SetPID(AliPID::EParticleType t) {fPID = t;}
50 void SetMaxITSPIDmom(Double_t v) {fMaxITSPIDmom = v;}
51 void SetITSband(Double_t v) {fMaxITSband = v;}
53 void SetTPCpLimit(Double_t v) {fTPCpLimit = v;}
54 void SetTPCrange(Double_t min, Double_t max) {fMinTPCband = min; fMaxTPCband = max;}
55 void SetTPCpar(Double_t p0, Double_t p1, Double_t p2, Double_t p3, Double_t p4)
56 {fTPCpar[0] = p0; fTPCpar[1] = p1; fTPCpar[2] = p2; fTPCpar[3] = p3; fTPCpar[4] = p4;}
58 void SetTOFrange(Double_t v1, Double_t v2) {fMinTOF = v1; fMaxTOF = v2;}
62 Bool_t OkQuality(AliESDtrack *d); // check track quality parameters and DCA
63 Bool_t OkITSPID(AliESDtrack *d); // check ITS PID
64 Bool_t OkTPCPID(AliESDtrack *d); // check TPC PID
65 Bool_t OkTOFPID(AliESDtrack *d); // check TOF PID
66 Bool_t IsITSTPC(AliESDtrack *d); // check that the track is TPC+ITS
67 Bool_t IsITSSA(AliESDtrack *d); // check that the track is ITS standalone
68 Bool_t MatchTOF(AliESDtrack *d); // check that the track matches the TOF
70 Bool_t fIsMC; // switch for MC analysis
71 Bool_t fCheckITS; // switch for ITS dE/dx check
72 Bool_t fCheckTPC; // switch for TPC dE/dx check
73 Bool_t fCheckTOF; // switch for TOF time check
74 Bool_t fUseITSTPC; // switch to use TPC global tracks
75 Bool_t fUseITSSA; // switch to use ITS standalone tracks
76 AliPID::EParticleType fPID; // PID reference type used for checks
78 Double_t fMaxITSPIDmom; // maximum momentum where ITS PID is used for TPC+ITS tracks
79 Double_t fMaxITSband; // range for ITS de/dx band
81 Double_t fTPCpLimit; // limit to choose what band to apply
82 Double_t fTPCpar[5]; // parameters for TPC bethe-Bloch
83 Double_t fMinTPCband; // range for TPC de/dx band - min
84 Double_t fMaxTPCband; // range for TPC de/dx band - max
86 AliESDpid fESDpid; // ESD PID object
87 AliESDtrackCuts fESDtrackCutsTPC; // ESD standard defined track cuts for TPC tracks
88 AliESDtrackCuts fESDtrackCutsITS; // ESD standard defined track cuts for ITS-SA tracks
89 Double_t fMinTOF; // range for TOF PID (min)
90 Double_t fMaxTOF; // range for TOF PID (max)
92 ClassDef(AliRsnCutESD2010, 1)
95 inline Bool_t AliRsnCutESD2010::IsITSTPC(AliESDtrack *vtrack)
98 // Checks if the track has the status flags required for a global track
102 AliWarning("NULL argument: impossible to check status");
106 return vtrack->IsOn(AliESDtrack::kTPCin);
111 inline Bool_t AliRsnCutESD2010::IsITSSA(AliESDtrack *vtrack)
114 // Checks if the track has the status flags required for an ITS standalone track
118 AliWarning("NULL argument: impossible to check status");
122 Bool_t isTPCin = vtrack->IsOn(AliESDtrack::kTPCin);
123 Bool_t isITSrefit = vtrack->IsOn(AliESDtrack::kITSrefit);
124 Bool_t isITSpureSA = vtrack->IsOn(AliESDtrack::kITSpureSA);
125 Bool_t isITSpid = vtrack->IsOn(AliESDtrack::kITSpid);
127 return ((!isTPCin) && isITSrefit && (!isITSpureSA) && isITSpid);
133 inline Bool_t AliRsnCutESD2010::MatchTOF(AliESDtrack *vtrack)
136 // Checks if the track has matched the TOF detector
140 AliWarning("NULL argument: impossible to check status");
144 // require a minimum length to have meaningful match
145 if (vtrack->GetIntegratedLength() < 350.) return kFALSE;
147 Bool_t isTOFout = vtrack->IsOn(AliESDtrack::kTOFout);
148 Bool_t isTIME = vtrack->IsOn(AliESDtrack::kTIME);
150 return (isTOFout && isTIME);