]>
Commit | Line | Data |
---|---|---|
c865cb1d | 1 | #ifndef ALIRSNCUTPIDNSIGMA_H |
2 | #define ALIRSNCUTPIDNSIGMA_H | |
3 | ||
4 | // | |
64129b35 | 5 | // Class for n-sigma PID cuts. |
6 | // --- | |
7 | // Requires: | |
c865cb1d | 8 | // |
64129b35 | 9 | // 1) the used detector, chosen from an enumeration |
10 | // 2) the reference charged particle species, chosen from AliPID enumeration | |
11 | // 3) a momentum range: outside it, the cut is never passed | |
12 | // | |
13 | ||
14 | #include <TMath.h> | |
b6ab153d | 15 | #include <TClonesArray.h> |
c865cb1d | 16 | |
17 | #include "AliPID.h" | |
b6ab153d | 18 | #include "AliESDtrack.h" |
c865cb1d | 19 | |
20 | #include "AliRsnCut.h" | |
b63dbf69 | 21 | #include "AliRsnPIDRange.h" |
c865cb1d | 22 | |
f34f960b | 23 | class AliVTrack; |
c865cb1d | 24 | class AliPIDResponse; |
25 | ||
26 | class AliRsnCutPIDNSigma : public AliRsnCut { | |
27 | public: | |
28 | ||
29 | enum EDetector { | |
30 | kITS, | |
31 | kTPC, | |
32 | kTOF, | |
33 | kDetectors | |
34 | }; | |
64129b35 | 35 | AliRsnCutPIDNSigma(); |
b6ab153d | 36 | AliRsnCutPIDNSigma(const char *name, AliPID::EParticleType species, EDetector det); |
61f275d1 | 37 | AliRsnCutPIDNSigma(const AliRsnCutPIDNSigma ©); |
38 | AliRsnCutPIDNSigma &operator=(const AliRsnCutPIDNSigma ©); | |
c865cb1d | 39 | virtual ~AliRsnCutPIDNSigma() { } |
40 | ||
c865cb1d | 41 | void SetSpecies(AliPID::EParticleType type) {fSpecies = type;} |
64129b35 | 42 | void SetDetector(EDetector det) {fDetector = det;} |
43 | void SetRejectUnmatched(Bool_t yn = kTRUE) {fRejectUnmatched = yn;} | |
61f275d1 | 44 | |
b6ab153d | 45 | AliPIDResponse *MyPID() {return fMyPID;} |
46 | void InitMyPID(Bool_t isMC, Bool_t isESD); | |
61f275d1 | 47 | |
b6ab153d | 48 | void SinglePIDRange(Double_t nsigma); |
49 | void AddPIDRange(Double_t nsigma, Double_t pmin = 0.0, Double_t pmax = 1E20); | |
61f275d1 | 50 | |
b6ab153d | 51 | Bool_t MatchITS(const AliVTrack *vtrack) const; |
52 | Bool_t MatchTPC(const AliVTrack *vtrack) const; | |
53 | Bool_t MatchTOF(const AliVTrack *vtrack) const; | |
54 | Bool_t MatchDetector(const AliVTrack *vtrack) const; | |
61f275d1 | 55 | |
c865cb1d | 56 | virtual Bool_t IsSelected(TObject *object); |
57 | virtual void Print(const Option_t *option = "") const; | |
58 | ||
59 | private: | |
60 | ||
61 | AliPID::EParticleType fSpecies; // particle species | |
62 | EDetector fDetector; // detector used for PID | |
c865cb1d | 63 | Bool_t fRejectUnmatched; // tracks not matched to this detector do pass the cut? |
b6ab153d | 64 | Double_t fTrackNSigma; //! tmp track number of sigmas w.r. to chosen detector |
65 | Double_t fTrackMom; //! track reference momentum | |
66 | AliPIDResponse *fMyPID; // PID response object to be configured manyally | |
67 | TClonesArray fRanges; // collection of ranges | |
c865cb1d | 68 | |
69 | ClassDef(AliRsnCutPIDNSigma, 1) | |
70 | }; | |
71 | ||
c865cb1d | 72 | #endif |