3650fde3e74960911548557d5536221bcfc69da7
[u/mrichter/AliRoot.git] / PWG0 / dNdPt / AlidNdPtEventCuts.h
1 #ifndef ALIDNDPTEVENTCUTS_H\r
2 #define ALIDNDPTEVENTCUTS_H\r
3 \r
4 //------------------------------------------------------------------------------\r
5 // Class to keep event selection cuts for dNdPt analysis. \r
6 // \r
7 // Author: J.Otwinowski 01/11/2008 \r
8 //------------------------------------------------------------------------------\r
9 \r
10 #include "AliAnalysisCuts.h"\r
11 #include "dNdPt/AlidNdPtHelper.h"\r
12 \r
13 class AliESDEvent;\r
14 class AliESDVertex;\r
15 class AliMCEvent;\r
16 class AliHeader;\r
17 class AliGenEventHeader;\r
18 \r
19 class AlidNdPtEventCuts : public AliAnalysisCuts\r
20 {\r
21 public:\r
22   AlidNdPtEventCuts(const Char_t* name ="AlidNdPtEventCuts", const Char_t *title ="");\r
23   virtual ~AlidNdPtEventCuts(); \r
24  \r
25   // setters \r
26   void SetRecVertexRequired(const Bool_t bFlag=kTRUE)  {fRecVertexRequired=bFlag;}\r
27   void SetEventProcessType(AlidNdPtHelper::MCProcessType type=AlidNdPtHelper::kInvalidProcess)  {fEventProcessType=type;}\r
28   void SetNContributorsRange(const Float_t min=0.,const Float_t max=1e99) {fMinNContributors=min; fMaxNContributors=max;}\r
29   void SetMaxR(const Float_t max=1e99) {fMaxR=max;}\r
30   void SetZvRange(const Float_t min=-1e99, const Float_t max=1e99) {fMinZv=min; fMaxZv=max;}\r
31 \r
32   void SetMeanXYZv(const Float_t xv=0.0, const Float_t yv=0.0, const Float_t zv=0.0) {\r
33     fMeanXv = xv; fMeanYv = yv; fMeanZv = zv;\r
34   }\r
35 \r
36   void SetSigmaMeanXYZv(const Float_t sxv=1.0, const Float_t syv=1.0, const Float_t szv=10.0) {\r
37     fSigmaMeanXv = sxv; fSigmaMeanYv = syv; fSigmaMeanZv = szv;\r
38   }\r
39 \r
40   // getters \r
41   Bool_t  IsRecVertexRequired() const {return fRecVertexRequired;}\r
42   Int_t   GetEventProcessType() const {return fEventProcessType;}  \r
43   Float_t GetMinNContributors() const {return fMinNContributors;}\r
44   Float_t GetMaxNContributors() const {return fMaxNContributors;}\r
45   Float_t GetMaxR() const {return fMaxR;}\r
46   Float_t GetMinZv() const {return fMinZv;}\r
47   Float_t GetMaxZv() const {return fMaxZv;}\r
48 \r
49   Float_t GetMeanXv() const {return fMeanXv;}\r
50   Float_t GetMeanYv() const {return fMeanYv;}\r
51   Float_t GetMeanZv() const {return fMeanZv;}\r
52 \r
53   Float_t GetSigmaMeanXv() const {return fSigmaMeanXv;}\r
54   Float_t GetSigmaMeanYv() const {return fSigmaMeanYv;}\r
55   Float_t GetSigmaMeanZv() const {return fSigmaMeanZv;}\r
56  \r
57   // cuts init function\r
58   void Init();\r
59 \r
60   // check MC tracks\r
61   Bool_t IsSelected(TObject *) {return kTRUE;}\r
62   Bool_t IsSelected(TList *) {return kTRUE;}\r
63 \r
64   // accept event\r
65   Bool_t AcceptEvent(AliESDEvent *event=0, AliMCEvent *mcEvent=0, const AliESDVertex *vtx=0);\r
66   Bool_t AcceptMCEvent(AliMCEvent *mcEvent=0);\r
67 \r
68   // Merge output objects (needed by PROOF) \r
69   virtual Long64_t Merge(TCollection* list);\r
70 \r
71 private:\r
72   Bool_t fRecVertexRequired; // reconstructed event vertex required  \r
73   Int_t fEventProcessType;   // select MC event process type (ND, SD, DD)\r
74   Float_t fMinNContributors; // min. number of contributing vertex tracks\r
75   Float_t fMaxNContributors; // max. number of contributing vertex tracks\r
76   Float_t fMaxR;             // max. vertex radii (R = sqrt(Xv^2+Yv^2) \r
77   Float_t fMinZv;            // min. Zv vertex\r
78   Float_t fMaxZv;            // max. Zv vertex\r
79 \r
80   // interaction spot constraint\r
81   Float_t fMeanXv; // mean Xv position\r
82   Float_t fMeanYv; // mean Yv position\r
83   Float_t fMeanZv; // mean Zv position\r
84 \r
85   Float_t fSigmaMeanXv; // sigma mean Xv position \r
86   Float_t fSigmaMeanYv; // sigma mean Yv position\r
87   Float_t fSigmaMeanZv; // sigma mean Zv position\r
88  \r
89   AlidNdPtEventCuts(const AlidNdPtEventCuts&); // not implemented\r
90   AlidNdPtEventCuts& operator=(const AlidNdPtEventCuts&); // not implemented\r
91 \r
92   ClassDef(AlidNdPtEventCuts, 1)\r
93 };\r
94 \r
95 #endif // ALIDNDPTEVENTCUTS_H\r