]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGLF/SPECTRA/PiKaPr/TestAOD/AliSpectraAODTrackCuts.h
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGLF / SPECTRA / PiKaPr / TestAOD / AliSpectraAODTrackCuts.h
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 TH1I;
16 class AliAODEvent;
17 class AliPIDResponse;  
18 class AliAODMCParticle;
19 class AliAODTrack;
20 class TH2F;
21 class TH1F;
22
23 #include "TNamed.h"
24
25 class AliSpectraAODTrackCuts : public TNamed
26 {
27  public:
28   
29   enum { kTrkBit = 0, kTrkCuts, kTrkEta, kTrkDCA, kTrkP, kTrkPt,kTrkPtTOF,kTOFMatching,kTrTOFout,kTrTIME,kTrTOFpid,kAccepted,kNTrkCuts};
30   
31   
32  AliSpectraAODTrackCuts() : TNamed(), fIsSelected(0), fTrackBits(0), fMinTPCcls(0), fRequestSPDcls(0), fEtaCutMin(0), fEtaCutMax(0),fDCACut(0), fPCut(0), fPtCut(0),fYCut(0), fPtCutTOFMatching(0), fHistoCuts(0), fHistoNSelectedPos(0), fHistoNSelectedNeg(0), fHistoNMatchedPos(0), fHistoNMatchedNeg(0), fHistoEtaPhiHighPt(0), fTrack(0), fPIDResponse(0) {}
33   
34   AliSpectraAODTrackCuts(const char *name);
35   virtual  ~AliSpectraAODTrackCuts() {} // To be implemented
36   
37   Bool_t IsSelected(AliAODTrack * track,Bool_t FillHistStat);
38   
39   void SetEta(Float_t etamin,Float_t etamax)   { fEtaCutMin = etamin;fEtaCutMax = etamax; }
40   void SetDCA(Float_t dca)   { fDCACut = dca; }
41   void SetP(Float_t p)       { fPCut = p; }
42   void SetPt(Float_t pt)     { fPtCut = pt; }
43   void SetY(Float_t y) { fYCut = y;}
44   void SetPtTOFMatching(Float_t pt)     { fPtCutTOFMatching = pt; }
45   void SetTrackType(UInt_t bit);
46   void SetTrackBits(UInt_t TrackBits) {fTrackBits=TrackBits;}
47   void SetMinTPCcls(UInt_t MinTPCcls) {fMinTPCcls=MinTPCcls;}
48   void SetRequestSPDcls(Bool_t RequestSPDcls) {fRequestSPDcls=RequestSPDcls;}
49   
50   UInt_t GetTrackType()  const    { return fTrackBits;}
51   TH1I * GetHistoCuts()      { return fHistoCuts; }
52   TH1F * GetHistoNSelectedPos()      { return fHistoNSelectedPos; } 
53   TH1F * GetHistoNSelectedNeg()      { return fHistoNSelectedNeg; }
54   TH1F * GetHistoNMatchedPos()      { return fHistoNMatchedPos; }
55   TH1F * GetHistoNMatchedNeg()      { return fHistoNMatchedNeg; }
56   TH2F * GetHistoEtaPhiHighPt()      { return fHistoEtaPhiHighPt; }
57   Float_t GetEtaMin()       const    { return fEtaCutMin; }
58   Float_t GetEtaMax()       const    { return fEtaCutMax; }
59   Float_t GetY()         const    { return fYCut; }
60   Float_t GetDCA()       const    { return fDCACut; }
61   Float_t GetP()         const    { return fPCut; }
62   Float_t GetPt()        const    { return fPtCut; }
63   Float_t GetPtTOFMatching()        const    { return fPtCutTOFMatching; }
64   
65   Bool_t CheckTrackType();
66   Bool_t CheckTrackCuts();
67   Bool_t CheckEtaCut();
68   Bool_t CheckYCut(Double_t mass); // not included in standard cuts
69   Bool_t CheckDCACut();
70   Bool_t CheckPCut();
71   Bool_t CheckPtCut();
72   Bool_t CheckTOFMatching(Bool_t FillHistStat);
73   void PrintCuts() const;
74   
75   Long64_t Merge(TCollection* list);
76    
77    
78  private:
79   
80   Bool_t           fIsSelected;      // True if cuts are selected
81   UInt_t           fTrackBits;       // Type of track to be used
82   UInt_t           fMinTPCcls;       // min number of clusters in the TPC
83   Bool_t           fRequestSPDcls;         // request a hit in the SPD
84   Float_t          fEtaCutMin;          // Allowed absolute maximum value of Eta
85   Float_t          fEtaCutMax;          // Allowed absolute maximum value of Eta
86   Float_t          fDCACut;          // Maximum value of DCA
87   Float_t          fPCut;            // Maximum value of P
88   Float_t          fPtCut;           // Maximum value of Pt
89   Float_t          fYCut;           // Maximum value of Y
90   Float_t          fPtCutTOFMatching;           // TOF Matching
91   TH1I             *fHistoCuts;       // Cuts statistics
92   TH1F             *fHistoNSelectedPos;       // Selected positive tracks
93   TH1F             *fHistoNSelectedNeg;       // Selected negative tracks
94   TH1F             *fHistoNMatchedPos;       // Matched positive tracks
95   TH1F             *fHistoNMatchedNeg;       // Matched negative tracks
96   TH2F             *fHistoEtaPhiHighPt;       // EtaPhi distr at high pt (>1.5 GeV/c)
97   AliAODTrack      *fTrack;           //! Track pointer
98   AliPIDResponse   *fPIDResponse;     // ! PID response object
99   static const char * kBinLabel[]; // labels of stat histo
100
101    
102   AliSpectraAODTrackCuts(const AliSpectraAODTrackCuts&);
103   AliSpectraAODTrackCuts& operator=(const AliSpectraAODTrackCuts&);
104    
105   ClassDef(AliSpectraAODTrackCuts, 3);
106 };
107 #endif
108