README Update
[u/mrichter/AliRoot.git] / PWGPP / AliFilteredTreeAcceptanceCuts.h
1 #ifndef ALIFILTEREDTREEACCEPTANCECUTS_H
2 #define ALIFILTEREDTREEACCEPTANCECUTS_H
3
4 //------------------------------------------------------------------------------
5 // Class to keep selection cuts for MC tracks. 
6 // 
7 // Author: J.Otwinowski 03/11/2008 
8 // last change: 2011-04-04 by M.Knichel
9 //------------------------------------------------------------------------------
10
11 class TParticle;
12 class AliESDtrack;
13 class AliExternalTrackParam;
14
15 #include "AliAnalysisCuts.h"
16
17 class AliFilteredTreeAcceptanceCuts : public AliAnalysisCuts
18 {
19 public:
20   AliFilteredTreeAcceptanceCuts(const Char_t* name ="AliFilteredTreeAcceptanceCuts", const Char_t *title ="");
21   virtual ~AliFilteredTreeAcceptanceCuts(); 
22  
23   // setters 
24   void SetEtaRange(Float_t min=-1e99, Float_t max=1e99)  { fMinEta=min; fMaxEta=max; }
25   void SetPhiRange(Float_t min=-1e99, Float_t max=1e99)  { fMinPhi=min; fMaxPhi=max;}
26   void SetPtRange(Float_t min=-1e99, Float_t max=1e99)   { fMinPt=min;  fMaxPt=max;}
27   void SetExcludeEtaPhiRange(Float_t etaMin, Float_t etaMax, Float_t phiMin, Float_t phiMax)
28         { fExcludeMinEta = etaMin; fExcludeMaxEta = etaMax; fExcludeMinPhi = phiMin; fExcludeMaxPhi = phiMax; fCheckRange=kTRUE; }
29   void SetExcludeEtaPhiRange2(Float_t etaMin, Float_t etaMax, Float_t phiMin, Float_t phiMax)
30         { fExcludeMinEta2 = etaMin; fExcludeMaxEta2 = etaMax; fExcludeMinPhi2 = phiMin; fExcludeMaxPhi2 = phiMax; fCheckRange=kTRUE; }          
31
32   void SetMaxDCAr(Float_t max=1e99) { fMaxDCAr=max;}
33   void SetMaxDCAz(Float_t max=1e99) { fMaxDCAz=max;}
34
35   // getters 
36   Float_t GetMinEta() const {return fMinEta;}
37   Float_t GetMaxEta() const {return fMaxEta;}
38   Float_t GetMinPhi() const {return fMinPhi;}
39   Float_t GetMaxPhi() const {return fMaxPhi;}
40   Float_t GetMinPt() const {return fMinPt;}
41   Float_t GetMaxPt() const {return fMaxPt;}
42   
43   Bool_t  GetCheckRange() const { return fCheckRange; }
44   Float_t GetExcludeMinEta() const { return fExcludeMinEta; }
45   Float_t GetExcludeMaxEta() const { return fExcludeMaxEta; }
46   Float_t GetExcludeMinPhi() const { return fExcludeMinPhi; }
47   Float_t GetExcludeMaxPhi() const { return fExcludeMaxPhi; }  
48
49   Float_t GetMaxDCAr() const {return fMaxDCAr;}
50   Float_t GetMaxDCAz() const {return fMaxDCAz;}
51
52   // cuts init function
53   void Init();
54
55   // check MC tracks
56   virtual Bool_t IsSelected(TObject *) {return kTRUE;}
57   virtual Bool_t IsSelected(TList *) {return kTRUE;}
58
59   //
60   Bool_t AcceptTrack(AliESDtrack *track);
61   Bool_t AcceptTrackLocalTPC(AliESDtrack *track);
62   Bool_t AcceptTrack(AliExternalTrackParam *track);
63   Bool_t AcceptTrack(TParticle *particle);
64   
65   // Merge output objects (needed by PROOF) 
66   virtual Long64_t Merge(TCollection* list);
67
68 private:
69   Float_t fMinEta; // min pseudorapidity 
70   Float_t fMaxEta; // max pseudorapidity
71   Float_t fMinPhi; // min azimuthal angle (rad)
72   Float_t fMaxPhi; // max azimuthal angle (rad)
73   Float_t fMinPt;  // min pt
74   Float_t fMaxPt;  // max pt
75   
76   Float_t fExcludeMinEta;
77   Float_t fExcludeMaxEta;
78   Float_t fExcludeMinPhi;
79   Float_t fExcludeMaxPhi;
80   Float_t fExcludeMinEta2;
81   Float_t fExcludeMaxEta2;
82   Float_t fExcludeMinPhi2;
83   Float_t fExcludeMaxPhi2;  
84   Bool_t  fCheckRange;
85
86   // max DCAr and DCAz with respect
87   // to nominal vertex position
88   Float_t fMaxDCAr; // min DCAr
89   Float_t fMaxDCAz; // max DCAz
90  
91   AliFilteredTreeAcceptanceCuts(const AliFilteredTreeAcceptanceCuts&); // not implemented
92   AliFilteredTreeAcceptanceCuts& operator=(const AliFilteredTreeAcceptanceCuts&); // not implemented
93
94   ClassDef(AliFilteredTreeAcceptanceCuts, 1)
95 };
96
97 #endif //