update to AOD analysis
[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 AliAODEvent;
16 class AliSpectraAODHistoManager;
17
18 #include "TNamed.h"
19
20 class AliSpectraAODTrackCuts : public TNamed
21 {
22 public:
23
24    enum { kTrkBit = 0, kTrkEta, kTrkDCA, kTrkP, kTrkPt, kNTrkCuts};
25
26
27    AliSpectraAODTrackCuts() : TNamed(), fIsSelected(0), fTrackBits(0), fEtaCut(0), fPCut(0), fPtCut(0), fPtCutTOFMatching(0), fQvecCutMin(0), fQvecCutMax(0), fHistoCuts(0), fTrack(0) {}
28
29    AliSpectraAODTrackCuts(const char *name);
30    virtual  ~AliSpectraAODTrackCuts() {} // To be implemented
31
32    Bool_t IsSelected(AliAODTrack * track);
33
34    void SetTrackType(UInt_t bit);
35    Bool_t CheckTrackType();
36    Bool_t CheckEtaCut();
37    Bool_t CheckDCACut();
38    Bool_t CheckPCut();
39    Bool_t CheckPtCut();
40    Bool_t CheckTOFMatching();
41    void PrintCuts() const;
42
43    UInt_t GetTrackType()  const    { return fTrackBits; }
44    TH1I * GetHistoCuts()      { return fHistoCuts; }
45    void SetEta(Float_t eta)   { fEtaCut = eta; }
46    void SetDCA(Float_t dca)   { fDCACut = dca; }
47    void SetP(Float_t p)       { fPCut = p; }
48    void SetPt(Float_t pt)     { fPtCut = pt; }
49    void SetPtTOFMatching(Float_t pt)     { fPtCutTOFMatching = pt; }
50    void SetQvecMin(Float_t qvecmin)     { fQvecCutMin = qvecmin; }
51    void SetQvecMax(Float_t qvecmax)     { fQvecCutMax = qvecmax; }
52    Float_t GetEta()       const    { return fEtaCut; }
53    Float_t GetDCA()       const    { return fDCACut; }
54    Float_t GetP()         const    { return fPCut; }
55    Float_t GetPt()        const    { return fPtCut; }
56    Float_t GetPtTOFMatching()        const    { return fPtCutTOFMatching; }
57    Float_t GetQvecMin()        const    { return fQvecCutMin; }
58    Float_t GetQvecMax()        const    { return fQvecCutMax; }
59     
60    Long64_t Merge(TCollection* list);
61    
62    
63  private:
64    
65    Bool_t         fIsSelected;      // True if cuts are selected
66    UInt_t         fTrackBits;       // Type of track to be used
67    Float_t        fEtaCut;          // Allowed absolute maximum value of Eta
68    Float_t        fDCACut;          // Maximum value of DCA
69    Float_t        fPCut;            // Maximum value of P
70    Float_t        fPtCut;           // Maximum value of Pt
71    Float_t        fPtCutTOFMatching;           // TOF Matching
72    Float_t        fQvecCutMin;           // Minimum value of Qvec, done in the analysis task
73    Float_t        fQvecCutMax;           // Minimum value of Qvec, done in the analysis task
74    
75    TH1I *         fHistoCuts;       // Cuts statistics
76    AliAODTrack *  fTrack;           //! Track pointer
77    
78    AliSpectraAODTrackCuts(const AliSpectraAODTrackCuts&);
79    AliSpectraAODTrackCuts& operator=(const AliSpectraAODTrackCuts&);
80    
81    ClassDef(AliSpectraAODTrackCuts, 1);
82 };
83 #endif
84