]>
Commit | Line | Data |
---|---|---|
c88234ad | 1 | #ifndef ALISPECTRAAODTRACKCUTS_H |
2 | #define ALISPECTRAAODTRACKCUTS_H | |
3 | ||
4 | /* See cxx source for full Copyright notice */ | |
5 | ||
6 | //------------------------------------------------------------------------- | |
7 | // AliSpectraAODTrackCuts | |
8 | // | |
9 | // | |
10 | // | |
11 | // | |
12 | // Authors: Michele Floris, CERN, Philip Versteeg, UU, Redmer Bertens, UU | |
13 | //------------------------------------------------------------------------- | |
14 | ||
15 | class AliAODEvent; | |
16 | class AliSpectraAODHistoManager; | |
e8b0fe64 | 17 | #include "AliAODMCParticle.h" |
18 | #include "AliSpectraAODHistoManager.h" | |
c88234ad | 19 | #include "TNamed.h" |
20 | ||
e8b0fe64 | 21 | using namespace AliSpectraNameSpace; |
00221bed | 22 | |
23 | const char * kBinLabel[] ={"TrkBit", | |
24 | "TrkEta", | |
25 | "TrkDCA", | |
26 | "TrkP", | |
27 | "TrkPt", | |
28 | "TrkPtTOF", | |
29 | "TOFMatching", | |
30 | "kTOFout", | |
31 | "kTIME", | |
32 | "kTOFpid", | |
33 | "Accepted"}; | |
e8b0fe64 | 34 | |
c88234ad | 35 | class AliSpectraAODTrackCuts : public TNamed |
36 | { | |
00221bed | 37 | public: |
38 | ||
39 | enum { kTrkBit = 0, kTrkEta, kTrkDCA, kTrkP, kTrkPt,kTrkPtTOF,kTOFMatching,kTrTOFout,kTrTIME,kTrTOFpid,kAccepted,kNTrkCuts}; | |
40 | ||
41 | ||
ae0fdd7d | 42 | AliSpectraAODTrackCuts() : TNamed(), fIsSelected(0), fTrackBits(0), fEtaCut(0), fPCut(0), fPtCut(0), fPtCutTOFMatching(0), fQvecCutMin(0), fQvecCutMax(0), fHistoCuts(0), fHistoNSelectedPos(0), fHistoNSelectedNeg(0), fHistoNMatchedPos(0), fHistoNMatchedNeg(0), fHistoEtaPhiHighPt(0), fTrack(0) {} |
00221bed | 43 | |
44 | AliSpectraAODTrackCuts(const char *name); | |
45 | virtual ~AliSpectraAODTrackCuts() {} // To be implemented | |
46 | ||
e8b0fe64 | 47 | Bool_t IsSelected(AliAODTrack * track); |
00221bed | 48 | |
49 | void SetTrackType(UInt_t bit); | |
50 | Bool_t CheckTrackType(); | |
51 | Bool_t CheckEtaCut(); | |
52 | Bool_t CheckYCut(AODParticleSpecies_t specie); // not included in standard cuts | |
53 | Bool_t CheckDCACut(); | |
54 | Bool_t CheckPCut(); | |
c88234ad | 55 | Bool_t CheckPtCut(); |
823864bf | 56 | Bool_t CheckTOFMatching(); |
c88234ad | 57 | void PrintCuts() const; |
58 | ||
59 | UInt_t GetTrackType() const { return fTrackBits; } | |
60 | TH1I * GetHistoCuts() { return fHistoCuts; } | |
3d1f02f9 | 61 | TH1F * GetHistoNSelectedPos() { return fHistoNSelectedPos; } |
62 | TH1F * GetHistoNSelectedNeg() { return fHistoNSelectedNeg; } | |
63 | TH1F * GetHistoNMatchedPos() { return fHistoNMatchedPos; } | |
64 | TH1F * GetHistoNMatchedNeg() { return fHistoNMatchedNeg; } | |
ae0fdd7d | 65 | TH2F * GetHistoEtaPhiHighPt() { return fHistoEtaPhiHighPt; } |
c88234ad | 66 | void SetEta(Float_t eta) { fEtaCut = eta; } |
67 | void SetDCA(Float_t dca) { fDCACut = dca; } | |
68 | void SetP(Float_t p) { fPCut = p; } | |
69 | void SetPt(Float_t pt) { fPtCut = pt; } | |
e8b0fe64 | 70 | void SetY(Float_t y) { fYCut = y;} |
823864bf | 71 | void SetPtTOFMatching(Float_t pt) { fPtCutTOFMatching = pt; } |
72 | void SetQvecMin(Float_t qvecmin) { fQvecCutMin = qvecmin; } | |
73 | void SetQvecMax(Float_t qvecmax) { fQvecCutMax = qvecmax; } | |
c88234ad | 74 | Float_t GetEta() const { return fEtaCut; } |
e8b0fe64 | 75 | Float_t GetY() const { return fYCut; } |
c88234ad | 76 | Float_t GetDCA() const { return fDCACut; } |
77 | Float_t GetP() const { return fPCut; } | |
78 | Float_t GetPt() const { return fPtCut; } | |
823864bf | 79 | Float_t GetPtTOFMatching() const { return fPtCutTOFMatching; } |
80 | Float_t GetQvecMin() const { return fQvecCutMin; } | |
81 | Float_t GetQvecMax() const { return fQvecCutMax; } | |
82 | ||
83 | Long64_t Merge(TCollection* list); | |
84 | ||
85 | ||
86 | private: | |
87 | ||
e8b0fe64 | 88 | Bool_t fIsSelected; // True if cuts are selected |
89 | UInt_t fTrackBits; // Type of track to be used | |
90 | Float_t fEtaCut; // Allowed absolute maximum value of Eta | |
91 | Float_t fDCACut; // Maximum value of DCA | |
92 | Float_t fPCut; // Maximum value of P | |
93 | Float_t fPtCut; // Maximum value of Pt | |
94 | Float_t fYCut; // Maximum value of Y | |
95 | Float_t fPtCutTOFMatching; // TOF Matching | |
96 | Float_t fQvecCutMin; // Minimum value of Qvec | |
97 | Float_t fQvecCutMax; // Minimum value of Qvec | |
e8b0fe64 | 98 | TH1I *fHistoCuts; // Cuts statistics |
3d1f02f9 | 99 | TH1F *fHistoNSelectedPos; // Selected positive tracks |
100 | TH1F *fHistoNSelectedNeg; // Selected negative tracks | |
101 | TH1F *fHistoNMatchedPos; // Matched positive tracks | |
102 | TH1F *fHistoNMatchedNeg; // Matched negative tracks | |
ae0fdd7d | 103 | TH2F *fHistoEtaPhiHighPt; // EtaPhi distr at high pt (>1.5 GeV/c) |
e8b0fe64 | 104 | AliAODTrack *fTrack; //! Track pointer |
c88234ad | 105 | |
106 | AliSpectraAODTrackCuts(const AliSpectraAODTrackCuts&); | |
107 | AliSpectraAODTrackCuts& operator=(const AliSpectraAODTrackCuts&); | |
823864bf | 108 | |
c88234ad | 109 | ClassDef(AliSpectraAODTrackCuts, 1); |
110 | }; | |
111 | #endif | |
112 |