]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGCF/FEMTOSCOPY/AliFemto/AliFemtoBasicEventCut.h
Reaction Plane analysis updates
[u/mrichter/AliRoot.git] / PWGCF / FEMTOSCOPY / AliFemto / AliFemtoBasicEventCut.h
1 ////////////////////////////////////////////////////////////////////////////////
2 //                                                                            //
3 // AliFemtoBasicEventCut - the basic cut for events.                          //
4 // Only cuts on event multiplicity and z-vertex position                      //
5 //                                                                            //
6 ////////////////////////////////////////////////////////////////////////////////
7
8 #ifndef ALIFEMTOBASICEVENTCUT_H
9 #define ALIFEMTOBASICEVENTCUT_H
10
11 // do I need these lines ?
12 //#ifndef StMaker_H
13 //#include "StMaker.h"
14 //#endif
15
16 #include "AliFemtoEventCut.h"
17
18 class AliFemtoBasicEventCut : public AliFemtoEventCut {
19
20 public:
21
22   AliFemtoBasicEventCut();
23   AliFemtoBasicEventCut(AliFemtoBasicEventCut& c);
24   virtual ~AliFemtoBasicEventCut();
25   AliFemtoBasicEventCut& operator=(AliFemtoBasicEventCut& c);
26
27   void SetEventMult(const int& lo,const int& hi);
28   void SetVertZPos(const float& lo, const float& hi);
29   void SetAcceptBadVertex(bool b);
30   void SetAcceptOnlyPhysics(bool b);
31   int NEventsPassed() const;
32   int NEventsFailed() const;
33   bool GetAcceptBadVertex();
34   bool GetAcceptOnlyPhysics();
35   void SetTriggerSelection(int trig);
36
37   void SetEPVZERO(const float& lo, const float& hi);
38
39   virtual AliFemtoString Report();
40   virtual bool Pass(const AliFemtoEvent* event);
41
42   AliFemtoBasicEventCut* Clone();
43
44 private:   // here are the quantities I want to cut on...
45
46   int fEventMult[2];      // range of multiplicity
47   float fVertZPos[2];     // range of z-position of vertex
48   float fPsiEP[2];     // range of vzero ep angle
49   bool fAcceptBadVertex;  // Set to true to accept events with bad vertex
50   long fNEventsPassed;    // Number of events checked by this cut that passed
51   long fNEventsFailed;    // Number of events checked by this cut that failed
52   bool fAcceptOnlyPhysics;// Accept only physics events
53   int  fSelectTrigger;    // If set, only given trigger will be selected
54
55 #ifdef __ROOT__
56   ClassDef(AliFemtoBasicEventCut, 1)
57 #endif
58
59 };
60
61 inline void AliFemtoBasicEventCut::SetEventMult(const int& lo, const int& hi){fEventMult[0]=lo; fEventMult[1]=hi;}
62 inline void AliFemtoBasicEventCut::SetVertZPos(const float& lo, const float& hi){fVertZPos[0]=lo; fVertZPos[1]=hi;}
63 inline void AliFemtoBasicEventCut::SetEPVZERO(const float& lo, const float& hi){fPsiEP[0]=lo; fPsiEP[1]=hi;}
64 inline int  AliFemtoBasicEventCut::NEventsPassed() const {return fNEventsPassed;}
65 inline int  AliFemtoBasicEventCut::NEventsFailed() const {return fNEventsFailed;}
66 inline void AliFemtoBasicEventCut::SetTriggerSelection(int trig) { fSelectTrigger = trig; }
67 inline AliFemtoBasicEventCut* AliFemtoBasicEventCut::Clone() { AliFemtoBasicEventCut* c = new AliFemtoBasicEventCut(*this); return c;}
68 inline AliFemtoBasicEventCut::AliFemtoBasicEventCut(AliFemtoBasicEventCut& c) : AliFemtoEventCut(c), fAcceptBadVertex(false), fNEventsPassed(0), fNEventsFailed(0), fAcceptOnlyPhysics(false), fSelectTrigger(0) {
69   fEventMult[0] = c.fEventMult[0];
70   fEventMult[1] = c.fEventMult[1];
71   fVertZPos[0] = c.fVertZPos[0];
72   fVertZPos[1] = c.fVertZPos[1];
73   fPsiEP[0] = c.fPsiEP[0];
74   fPsiEP[1] = c.fPsiEP[1];
75 }
76
77 inline AliFemtoBasicEventCut& AliFemtoBasicEventCut::operator=(AliFemtoBasicEventCut& c) {   
78   if (this != &c) {
79     AliFemtoEventCut::operator=(c);
80     fEventMult[0] = c.fEventMult[0];
81     fEventMult[1] = c.fEventMult[1];
82     fVertZPos[0] = c.fVertZPos[0];
83     fVertZPos[1] = c.fVertZPos[1];
84     fPsiEP[0] = c.fPsiEP[0];
85     fPsiEP[1] = c.fPsiEP[1];
86   }
87
88   return *this;
89 }
90
91
92 #endif