]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG0/dNdPt/AlidNdPtAcceptanceCuts.h
4d248e67e283990d75da3f67c02c0303e1050491
[u/mrichter/AliRoot.git] / PWG0 / 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 \r
30   void SetMaxDCAr(const Float_t max=1e99) { fMaxDCAr=max;}\r
31   void SetMaxDCAz(const Float_t max=1e99) { fMaxDCAz=max;}\r
32 \r
33   // getters \r
34   Float_t GetMinEta() const {return fMinEta;}\r
35   Float_t GetMaxEta() const {return fMaxEta;}\r
36   Float_t GetMinPhi() const {return fMinPhi;}\r
37   Float_t GetMaxPhi() const {return fMaxPhi;}\r
38   Float_t GetMinPt() const {return fMinPt;}\r
39   Float_t GetMaxPt() const {return fMaxPt;}\r
40   \r
41   Bool_t  GetCheckRange() const { return fCheckRange; }\r
42   Float_t GetExcludeMinEta() const { return fExcludeMinEta; }\r
43   Float_t GetExcludeMaxEta() const { return fExcludeMaxEta; }\r
44   Float_t GetExcludeMinPhi() const { return fExcludeMinPhi; }\r
45   Float_t GetExcludeMaxPhi() const { return fExcludeMaxPhi; }  \r
46 \r
47   Float_t GetMaxDCAr() const {return fMaxDCAr;}\r
48   Float_t GetMaxDCAz() const {return fMaxDCAz;}\r
49 \r
50   // cuts init function\r
51   void Init();\r
52 \r
53   // check MC tracks\r
54   virtual Bool_t IsSelected(TObject *) {return kTRUE;}\r
55   virtual Bool_t IsSelected(TList *) {return kTRUE;}\r
56 \r
57   //\r
58   Bool_t AcceptTrack(AliESDtrack *track);\r
59   Bool_t AcceptTrackLocalTPC(AliESDtrack *track);\r
60   Bool_t AcceptTrack(AliExternalTrackParam *track);\r
61   Bool_t AcceptTrack(TParticle *particle);\r
62   \r
63   // Merge output objects (needed by PROOF) \r
64   virtual Long64_t Merge(TCollection* list);\r
65 \r
66 private:\r
67   Float_t fMinEta; // min pseudorapidity \r
68   Float_t fMaxEta; // max pseudorapidity\r
69   Float_t fMinPhi; // min azimuthal angle (rad)\r
70   Float_t fMaxPhi; // max azimuthal angle (rad)\r
71   Float_t fMinPt;  // min pt\r
72   Float_t fMaxPt;  // max pt\r
73   \r
74   Float_t fExcludeMinEta;\r
75   Float_t fExcludeMaxEta;\r
76   Float_t fExcludeMinPhi;\r
77   Float_t fExcludeMaxPhi;\r
78   Bool_t  fCheckRange;\r
79 \r
80   // max DCAr and DCAz with respect\r
81   // to nominal vertex position\r
82   Float_t fMaxDCAr; // min DCAr\r
83   Float_t fMaxDCAz; // max DCAz\r
84  \r
85   AlidNdPtAcceptanceCuts(const AlidNdPtAcceptanceCuts&); // not implemented\r
86   AlidNdPtAcceptanceCuts& operator=(const AlidNdPtAcceptanceCuts&); // not implemented\r
87 \r
88   ClassDef(AlidNdPtAcceptanceCuts, 2)\r
89 };\r
90 \r
91 #endif // \r