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