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 "AliRsnCut.h"
25 class AliRsnCutESD2010 : public AliRsnCut
29 AliRsnCutESD2010(const char *name = "cutESD2010", Bool_t isMC = kFALSE);
30 AliRsnCutESD2010(const AliRsnCutESD2010& copy);
31 AliRsnCutESD2010& operator=(const AliRsnCutESD2010& copy);
32 virtual ~AliRsnCutESD2010() {;};
34 const AliESDtrackCuts* GetCutsTPC() const {return &fESDtrackCutsTPC;}
35 const AliESDtrackCuts* GetCutsITS() const {return &fESDtrackCutsITS;}
36 virtual Bool_t IsSelected(TObject *object);
38 void SetMC (Bool_t yn = kTRUE);
39 void SetCheckITS (Bool_t yn = kTRUE) {fCheckITS = yn;}
40 void SetCheckTPC (Bool_t yn = kTRUE) {fCheckTPC = yn;}
41 void SetCheckTOF (Bool_t yn = kTRUE) {fCheckTOF = yn;}
42 void SetUseITSTPC(Bool_t yn = kTRUE) {fUseITSTPC = yn;}
43 void SetUseITSSA (Bool_t yn = kTRUE) {fUseITSSA = yn;}
44 void SetPID (AliPID::EParticleType t) {fPID = t;}
46 void SetMaxITSPIDmom(Double_t v) {fMaxITSPIDmom = v;}
47 void SetITSband(Double_t v) {fMaxITSband = v;}
49 void SetTPCpLimit(Double_t v) {fTPCpLimit = v;}
50 void SetTPCrange(Double_t min, Double_t max) {fMinTPCband = min; fMaxTPCband = max;}
51 void SetTPCpar(Double_t p0, Double_t p1, Double_t p2, Double_t p3, Double_t p4)
52 {fTPCpar[0]=p0;fTPCpar[1]=p1;fTPCpar[2]=p2;fTPCpar[3]=p3;fTPCpar[4]=p4;}
54 void SetTOFcalibrateESD(Bool_t yn = kTRUE) {fTOFcalibrateESD = yn;}
55 void SetTOFcorrectTExp (Bool_t yn = kTRUE) {fTOFcorrectTExp = yn;}
56 void SetTOFuseT0 (Bool_t yn = kTRUE) {fTOFuseT0 = yn;}
57 void SetTOFtuneMC (Bool_t yn = kTRUE) {fTOFtuneMC = yn;}
58 void SetTOFresolution (Double_t v = 100.0) {fTOFresolution = v;}
59 void SetTOFrange (Double_t v1, Double_t v2) {fMinTOF = v1; fMaxTOF = v2;}
61 virtual void SetEvent(AliRsnEvent *event);
65 Bool_t OkQuality(AliESDtrack *d); // check track quality parameters and DCA
66 Bool_t OkITSPID (AliESDtrack *d); // check ITS PID
67 Bool_t OkTPCPID (AliESDtrack *d); // check TPC PID
68 Bool_t OkTOFPID (AliESDtrack *d); // check TOF PID
69 Bool_t IsITSTPC (AliESDtrack *d); // check that the track is TPC+ITS
70 Bool_t IsITSSA (AliESDtrack *d); // check that the track is ITS standalone
71 Bool_t MatchTOF (AliESDtrack *d); // check that the track matches the TOF
73 Bool_t fIsMC; // switch for MC analysis
74 Bool_t fCheckITS; // switch for ITS dE/dx check
75 Bool_t fCheckTPC; // switch for TPC dE/dx check
76 Bool_t fCheckTOF; // switch for TOF time check
77 Bool_t fUseITSTPC; // switch to use TPC global tracks
78 Bool_t fUseITSSA; // switch to use ITS standalone tracks
79 AliPID::EParticleType fPID; // PID reference type used for checks
81 Double_t fMaxITSPIDmom; // maximum momentum where ITS PID is used for TPC+ITS tracks
82 Double_t fMaxITSband; // range for ITS de/dx band
84 Double_t fTPCpLimit; // limit to choose what band to apply
85 Double_t fTPCpar[5]; // parameters for TPC bethe-Bloch
86 Double_t fMinTPCband; // range for TPC de/dx band - min
87 Double_t fMaxTPCband; // range for TPC de/dx band - max
89 AliESDpid *fESDpid; // ESD PID object
90 AliESDtrackCuts fESDtrackCutsTPC; // ESD standard defined track cuts for TPC tracks
91 AliESDtrackCuts fESDtrackCutsITS; // ESD standard defined track cuts for ITS-SA tracks
92 AliTOFT0maker *fTOFmaker; //! TOF time0 computator
93 AliTOFcalib *fTOFcalib; //! TOF calibration
94 Bool_t fTOFcalibrateESD; // TOF settings
95 Bool_t fTOFcorrectTExp; // TOF settings
96 Bool_t fTOFuseT0; // TOF settings
97 Bool_t fTOFtuneMC; // TOF settings
98 Double_t fTOFresolution; // TOF settings
99 Double_t fMinTOF; // range for TOF PID (min)
100 Double_t fMaxTOF; // range for TOF PID (max)
102 static Int_t fgLastRun; //! last run number
104 ClassDef(AliRsnCutESD2010, 1)
107 inline Bool_t AliRsnCutESD2010::IsITSTPC(AliESDtrack *vtrack)
110 // Checks if the track has the status flags required for a global track
115 AliWarning("NULL argument: impossible to check status");
119 ULong_t status = (ULong_t)vtrack->GetStatus();
120 ULong_t sTPCin = status & AliESDtrack::kTPCin;
122 if (sTPCin == 0) return kFALSE;
127 inline Bool_t AliRsnCutESD2010::IsITSSA(AliESDtrack *vtrack)
130 // Checks if the track has the status flags required for an ITS standalone track
135 AliWarning("NULL argument: impossible to check status");
139 ULong_t status = (ULong_t)vtrack->GetStatus();
140 ULong_t sTPCin = status & AliESDtrack::kTPCin;
141 ULong_t sITSrefit = status & AliESDtrack::kITSrefit;
142 ULong_t sITSpureSA = status & AliESDtrack::kITSpureSA;
143 ULong_t sITSpid = status & AliESDtrack::kITSpid;
145 if (sTPCin != 0) return kFALSE;
146 if (sITSrefit == 0) return kFALSE;
147 if (sITSpureSA != 0) return kFALSE;
148 if (sITSpid == 0) return kFALSE;
154 inline Bool_t AliRsnCutESD2010::MatchTOF(AliESDtrack *vtrack)
157 // Checks if the track has matched the TOF detector
162 AliWarning("NULL argument: impossible to check status");
166 ULong_t status = (ULong_t)vtrack->GetStatus();
167 ULong_t sTOFout = status & AliESDtrack::kTOFout;
168 ULong_t sTIME = status & AliESDtrack::kTIME;
170 if (sTOFout == 0) return kFALSE;
171 if (sTIME == 0) return kFALSE;