]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGLF/SPECTRA/PiKaPr/TestAOD/AliSpectraBothTrackCuts.h
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGLF / SPECTRA / PiKaPr / TestAOD / AliSpectraBothTrackCuts.h
CommitLineData
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
15class AliAODEvent;
16//class AliSpectraBothHistoManager;
17class TH1I;
2d98dd91 18class TH3F;
239a080a 19class AliAODMCParticle;
20class AliAODTrack;
21class AliESDtrackCuts;
22#include "AliSpectraBothHistoManager.h"
23#include "TNamed.h"
24#include "AliESDtrackCuts.h"
25
26using namespace AliSpectraNameSpaceBoth;
27
28class 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 37fHistoCuts(0), fHistoNSelectedPos(0), fHistoNSelectedNeg(0), fHistoNMatchedPos(0), fHistoNMatchedNeg(0), fHistoEtaPhiHighPt(0), fHistoNclustersITS(0),
38fHistoDCAzQA(0),fHistoNclustersQA(0),fHistochi2perNDFQA(0),
39fTrack(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