]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG0/dNdPt/AlidNdPtEventCuts.h
Set of patches for report #61429: PID: Separating response functions from ESD (Marco)
[u/mrichter/AliRoot.git] / PWG0 / dNdPt / AlidNdPtEventCuts.h
CommitLineData
0aaa8b91 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
0aaa8b91 11\r
12class AliESDEvent;\r
13class AliESDVertex;\r
14class AliMCEvent;\r
15class AliHeader;\r
16class AliGenEventHeader;\r
17\r
bad4ba69 18#include "AliPWG0Helper.h"\r
19#include "AlidNdPtHelper.h"\r
20\r
0aaa8b91 21class AlidNdPtEventCuts : public AliAnalysisCuts\r
22{\r
23public:\r
24 AlidNdPtEventCuts(const Char_t* name ="AlidNdPtEventCuts", const Char_t *title ="");\r
25 virtual ~AlidNdPtEventCuts(); \r
26 \r
27 // setters \r
bad4ba69 28 void SetTriggerRequired(const Bool_t bFlag=kTRUE) {fTriggerRequired=bFlag;}\r
0aaa8b91 29 void SetRecVertexRequired(const Bool_t bFlag=kTRUE) {fRecVertexRequired=bFlag;}\r
bad4ba69 30 void SetEventProcessType(AliPWG0Helper::MCProcessType type=AliPWG0Helper::kInvalidProcess) {fEventProcessType=type;}\r
0aaa8b91 31 void SetNContributorsRange(const Float_t min=0.,const Float_t max=1e99) {fMinNContributors=min; fMaxNContributors=max;}\r
32 void SetMaxR(const Float_t max=1e99) {fMaxR=max;}\r
33 void SetZvRange(const Float_t min=-1e99, const Float_t max=1e99) {fMinZv=min; fMaxZv=max;}\r
34\r
35 void SetMeanXYZv(const Float_t xv=0.0, const Float_t yv=0.0, const Float_t zv=0.0) {\r
36 fMeanXv = xv; fMeanYv = yv; fMeanZv = zv;\r
37 }\r
38\r
39 void SetSigmaMeanXYZv(const Float_t sxv=1.0, const Float_t syv=1.0, const Float_t szv=10.0) {\r
40 fSigmaMeanXv = sxv; fSigmaMeanYv = syv; fSigmaMeanZv = szv;\r
41 }\r
42\r
bad4ba69 43 void SetRedoTPCVertex(const Bool_t redo = kTRUE) {fRedoTPCVertex = redo;}\r
44 void SetUseBeamSpotConstraint(const Bool_t useConstr = kTRUE) {fUseBeamSpotConstraint = useConstr;}\r
45\r
0aaa8b91 46 // getters \r
bad4ba69 47 Bool_t IsTriggerRequired() const {return fTriggerRequired;}\r
0aaa8b91 48 Bool_t IsRecVertexRequired() const {return fRecVertexRequired;}\r
49 Int_t GetEventProcessType() const {return fEventProcessType;} \r
50 Float_t GetMinNContributors() const {return fMinNContributors;}\r
51 Float_t GetMaxNContributors() const {return fMaxNContributors;}\r
52 Float_t GetMaxR() const {return fMaxR;}\r
53 Float_t GetMinZv() const {return fMinZv;}\r
54 Float_t GetMaxZv() const {return fMaxZv;}\r
55\r
56 Float_t GetMeanXv() const {return fMeanXv;}\r
57 Float_t GetMeanYv() const {return fMeanYv;}\r
58 Float_t GetMeanZv() const {return fMeanZv;}\r
59\r
60 Float_t GetSigmaMeanXv() const {return fSigmaMeanXv;}\r
61 Float_t GetSigmaMeanYv() const {return fSigmaMeanYv;}\r
62 Float_t GetSigmaMeanZv() const {return fSigmaMeanZv;}\r
63 \r
bad4ba69 64 Bool_t IsRedoTPCVertex() const {return fRedoTPCVertex;}\r
65 Bool_t IsUseBeamSpotConstraint() const {return fUseBeamSpotConstraint;}\r
66\r
0aaa8b91 67 // cuts init function\r
68 void Init();\r
69\r
70 // check MC tracks\r
9ebbddd4 71 Bool_t IsSelected(TObject *, TObject * /*event */ = 0) {return kTRUE;}\r
72 //Bool_t IsSelected(TList *) {return kTRUE;}\r
0aaa8b91 73\r
74 // accept event\r
75 Bool_t AcceptEvent(AliESDEvent *event=0, AliMCEvent *mcEvent=0, const AliESDVertex *vtx=0);\r
76 Bool_t AcceptMCEvent(AliMCEvent *mcEvent=0);\r
77\r
78 // Merge output objects (needed by PROOF) \r
79 virtual Long64_t Merge(TCollection* list);\r
80\r
81private:\r
bad4ba69 82 Bool_t fTriggerRequired; // trigger required \r
0aaa8b91 83 Bool_t fRecVertexRequired; // reconstructed event vertex required \r
84 Int_t fEventProcessType; // select MC event process type (ND, SD, DD)\r
85 Float_t fMinNContributors; // min. number of contributing vertex tracks\r
86 Float_t fMaxNContributors; // max. number of contributing vertex tracks\r
87 Float_t fMaxR; // max. vertex radii (R = sqrt(Xv^2+Yv^2) \r
88 Float_t fMinZv; // min. Zv vertex\r
89 Float_t fMaxZv; // max. Zv vertex\r
90\r
91 // interaction spot constraint\r
92 Float_t fMeanXv; // mean Xv position\r
93 Float_t fMeanYv; // mean Yv position\r
94 Float_t fMeanZv; // mean Zv position\r
95\r
96 Float_t fSigmaMeanXv; // sigma mean Xv position \r
97 Float_t fSigmaMeanYv; // sigma mean Yv position\r
98 Float_t fSigmaMeanZv; // sigma mean Zv position\r
99 \r
bad4ba69 100 Bool_t fRedoTPCVertex; // redo vertex\r
101 Bool_t fUseBeamSpotConstraint; // use beam spot contraints \r
102\r
0aaa8b91 103 AlidNdPtEventCuts(const AlidNdPtEventCuts&); // not implemented\r
104 AlidNdPtEventCuts& operator=(const AlidNdPtEventCuts&); // not implemented\r
105\r
106 ClassDef(AlidNdPtEventCuts, 1)\r
107};\r
108\r
109#endif // ALIDNDPTEVENTCUTS_H\r