]>
Commit | Line | Data |
---|---|---|
239a080a | 1 | #ifndef ALISPECTRABOTHTRACKCUTS_H |
2 | #define ALISPECTRABOTHTRACKCUTS_H | |
3 | ||
4 | /* See cxx source for full Copyright notice */ | |
5 | ||
6 | //------------------------------------------------------------------------- | |
7 | // AliSpectraBothTrackCuts | |
8 | // | |
9 | // | |
10 | // | |
11 | // | |
12 | // Authors: Michele Floris, CERN, Philip Versteeg, UU, Redmer Bertens, UU | |
13 | //------------------------------------------------------------------------- | |
14 | ||
15 | class AliAODEvent; | |
16 | //class AliSpectraBothHistoManager; | |
17 | class TH1I; | |
2d98dd91 | 18 | class TH3F; |
239a080a | 19 | class AliAODMCParticle; |
20 | class AliAODTrack; | |
21 | class AliESDtrackCuts; | |
22 | #include "AliSpectraBothHistoManager.h" | |
23 | #include "TNamed.h" | |
24 | #include "AliESDtrackCuts.h" | |
25 | ||
26 | using namespace AliSpectraNameSpaceBoth; | |
27 | ||
28 | class AliSpectraBothTrackCuts : public TNamed | |
29 | { | |
30 | public: | |
31 | ||
32 | enum { kTrkBit = 0, kTrkCuts, kTrkEta, kTrkDCA, kTrkP, kTrkPt,kTrkPtTOF,kTOFMatching,kTrTOFout,kTrTIME,kTrTOFpid,kAccepted,kNTrkCuts}; | |
33 | enum {kAODobject=0,kESDobject,kotherobject}; | |
34 | ||
8bb435b0 | 35 | AliSpectraBothTrackCuts() : TNamed(), fIsSelected(0), fTrackBits(0), fMinTPCcls(0), fEtaCutMin(0), fEtaCutMax(0),fDCACut(0) ,fPCut(0), fPtCut(0),fYCutMax(0),fYCutMin(0), fPtCutTOFMatching(0),fAODtrack(0), fHashitinSPD1(0),fusedadditionalcuts(kTRUE), |
34347952 | 36 | fPtCutTOFMatchingPion(-1.0),fPtCutTOFMatchingKaon(-1.0),fPtCutTOFMatchingProton(-1.0),fUseTypeDependedTOFCut(kFALSE),fMakeQAhisto(kFALSE), |
2d98dd91 | 37 | fHistoCuts(0), fHistoNSelectedPos(0), fHistoNSelectedNeg(0), fHistoNMatchedPos(0), fHistoNMatchedNeg(0), fHistoEtaPhiHighPt(0), fHistoNclustersITS(0), |
38 | fHistoDCAzQA(0),fHistoNclustersQA(0),fHistochi2perNDFQA(0), | |
39 | fTrack(0),fCuts(0) {} | |
239a080a | 40 | |
41 | AliSpectraBothTrackCuts(const char *name); | |
8fda510f | 42 | virtual ~AliSpectraBothTrackCuts(); |
239a080a | 43 | |
44 | Bool_t IsSelected(AliVTrack * track,Bool_t FillHistStat); | |
45 | ||
46 | void SetTrackType(UInt_t bit); | |
47 | Bool_t CheckTrackType(); | |
48 | Bool_t CheckTrackCuts(); | |
49 | Bool_t CheckEtaCut(); | |
50 | Bool_t CheckYCut(BothParticleSpecies_t specie); // not included in standard cuts | |
51 | Bool_t CheckDCACut(); | |
52 | Bool_t CheckPCut(); | |
53 | Bool_t CheckPtCut(); | |
54 | Bool_t CheckTOFMatching(Bool_t FillHistStat); | |
0ab8c127 | 55 | Bool_t CheckTOFMatchingParticleType(Int_t type); |
56 | ||
239a080a | 57 | void PrintCuts() const; |
58 | ||
59 | UInt_t GetTrackType() const { return fTrackBits;} | |
60 | TH1I * GetHistoCuts() { return fHistoCuts; } | |
61 | TH1F * GetHistoNSelectedPos() { return fHistoNSelectedPos; } | |
62 | TH1F * GetHistoNSelectedNeg() { return fHistoNSelectedNeg; } | |
63 | TH1F * GetHistoNMatchedPos() { return fHistoNMatchedPos; } | |
64 | TH1F * GetHistoNMatchedNeg() { return fHistoNMatchedNeg; } | |
65 | TH2F * GetHistoEtaPhiHighPt() { return fHistoEtaPhiHighPt; } | |
2d98dd91 | 66 | TH1F * GetHistoNclustersITS() {return fHistoNclustersITS;} |
67 | TH3F * GetHistoDCAzQA() {return fHistoDCAzQA;} | |
68 | TH3F * GetHistoNclustersQA() {return fHistoNclustersQA ;} | |
69 | TH3F * GetHistochi2perNDFQA() {return fHistochi2perNDFQA; } | |
0ab8c127 | 70 | Bool_t GetUseTypeDependedTOFCut () {return fUseTypeDependedTOFCut;} |
34347952 | 71 | Bool_t GetMakeQAhisto () {return fMakeQAhisto;} |
72 | ||
4954491e | 73 | AliESDtrackCuts* GetTrackCuts(){return fCuts;} |
74 | ||
75 | ||
239a080a | 76 | void SetEta(Float_t etamin,Float_t etamax) { fEtaCutMin = etamin;fEtaCutMax = etamax; } |
77 | void SetDCA(Float_t dca) { fDCACut = dca; } | |
78 | void SetP(Float_t p) { fPCut = p; } | |
79 | void SetPt(Float_t pt) { fPtCut = pt; } | |
b3ea73e1 | 80 | void SetY(Float_t ymax,Float_t ymin) { fYCutMax = ymax;fYCutMin=ymin;} |
0ab8c127 | 81 | void SetPtTOFMatching(Float_t pt) { fPtCutTOFMatching = pt; fUseTypeDependedTOFCut=kFALSE;} |
239a080a | 82 | void SetTrackBits(UInt_t TrackBits) {fTrackBits=TrackBits;} |
83 | void SetMinTPCcls(UInt_t MinTPCcls) {fMinTPCcls=MinTPCcls;} | |
84 | void SetHashitinSPD1 (Bool_t value) {fHashitinSPD1=value;} | |
0ab8c127 | 85 | void SetUsedAdditionalCuts (Bool_t value) {fusedadditionalcuts=value;} |
86 | void SetPtTOFMatchingPartDepended(Float_t pion,Float_t kaon,Float_t proton); | |
34347952 | 87 | void SetMakeQAhisto(Bool_t flag){fMakeQAhisto=flag;} |
4954491e | 88 | Float_t GetEtaMin() const { return fEtaCutMin; } |
239a080a | 89 | Float_t GetEtaMax() const { return fEtaCutMax; } |
b3ea73e1 | 90 | Float_t GetYMax() const { return fYCutMax; } |
91 | Float_t GetYMin() const { return fYCutMin; } | |
92 | Float_t GetY() const { return 0.5*(fYCutMax-fYCutMin); } | |
239a080a | 93 | Float_t GetDCA() const { return fDCACut; } |
94 | Float_t GetP() const { return fPCut; } | |
95 | Float_t GetPt() const { return fPtCut; } | |
96 | Float_t GetPtTOFMatching() const { return fPtCutTOFMatching; } | |
0ab8c127 | 97 | Float_t GetPtTOFMatchingPion() const { return fPtCutTOFMatchingPion; } |
98 | Float_t GetPtTOFMatchingKaon() const { return fPtCutTOFMatchingKaon; } | |
99 | Float_t GetPtTOFMatchingProton() const { return fPtCutTOFMatchingProton; } | |
100 | ||
239a080a | 101 | Long64_t Merge(TCollection* list); |
102 | void SetAliESDtrackCuts(AliESDtrackCuts* cuts ){fCuts=cuts;} | |
2d98dd91 | 103 | void InitHisto(); |
239a080a | 104 | private: |
105 | ||
106 | Bool_t fIsSelected; // True if cuts are selected | |
107 | UInt_t fTrackBits; // Type of track to be used | |
108 | UInt_t fMinTPCcls; // min number of clusters in the TPC | |
109 | Float_t fEtaCutMin; // Allowed absolute maximum value of Eta | |
110 | Float_t fEtaCutMax; // Allowed absolute maximum value of Eta | |
111 | Float_t fDCACut; // Maximum value of DCA | |
112 | Float_t fPCut; // Maximum value of P | |
113 | Float_t fPtCut; // Maximum value of Pt | |
b3ea73e1 | 114 | Float_t fYCutMax; // Maximum value of Y |
115 | Float_t fYCutMin; // Minimum value of Y | |
239a080a | 116 | Float_t fPtCutTOFMatching; // TOF Matching |
117 | Int_t fAODtrack; // 0 ESD track connected , 1 AOD track conected , else nothing | |
8bb435b0 | 118 | Bool_t fHashitinSPD1; // Check if SPD1 has a hit |
0ab8c127 | 119 | Bool_t fusedadditionalcuts; //If set to true the TPCrefit, ITSrefit, SPDany and Ncluster cut is check |
120 | Float_t fPtCutTOFMatchingPion; // TOF Matching cut for pions | |
121 | Float_t fPtCutTOFMatchingKaon; // TOF Matching cut for kaons | |
122 | Float_t fPtCutTOFMatchingProton; // TOF Matching cut for protons | |
34347952 | 123 | Bool_t fUseTypeDependedTOFCut; // if yes use particle depened tof cut |
124 | Bool_t fMakeQAhisto; //if true QA histo are made | |
239a080a | 125 | TH1I *fHistoCuts; // Cuts statistics |
126 | TH1F *fHistoNSelectedPos; // Selected positive tracks | |
127 | TH1F *fHistoNSelectedNeg; // Selected negative tracks | |
128 | TH1F *fHistoNMatchedPos; // Matched positive tracks | |
129 | TH1F *fHistoNMatchedNeg; // Matched negative tracks | |
130 | TH2F *fHistoEtaPhiHighPt; // EtaPhi distr at high pt (>1.5 GeV/c) | |
8bb435b0 | 131 | TH1F *fHistoNclustersITS; // Number of clusters in ITS |
2d98dd91 | 132 | TH3F *fHistoDCAzQA; //QA histo for DCZ monitoring histo |
133 | TH3F *fHistoNclustersQA; //QA histo for N clusters QA monitoring histo | |
134 | TH3F *fHistochi2perNDFQA; //QA histo for chi2/ndf | |
135 | ||
8bb435b0 | 136 | |
239a080a | 137 | AliVTrack *fTrack; //! Track pointer |
138 | AliESDtrackCuts *fCuts; //! cuts | |
139 | static const char * kBinLabel[]; // labels of stat histo | |
140 | ||
141 | ||
142 | AliSpectraBothTrackCuts(const AliSpectraBothTrackCuts&); | |
143 | AliSpectraBothTrackCuts& operator=(const AliSpectraBothTrackCuts&); | |
0ab8c127 | 144 | void ConfigurePtTOFCut(); |
145 | ||
34347952 | 146 | ClassDef(AliSpectraBothTrackCuts, 8); |
239a080a | 147 | }; |
148 | #endif |