1 ////////////////////////////////////////////////////////////////////////////////
3 // AliFemtoSphericityEventCut - the basic cut for events. //
5 ////////////////////////////////////////////////////////////////////////////////
7 #ifndef AliFemtoSphericityEventCUT_H
8 #define AliFemtoSphericityEventCUT_H
10 #include "AliFemtoEventCut.h"
12 class AliFemtoSphericityEventCut : public AliFemtoEventCut {
16 AliFemtoSphericityEventCut();
17 AliFemtoSphericityEventCut(AliFemtoSphericityEventCut& c);
18 virtual ~AliFemtoSphericityEventCut();
19 AliFemtoSphericityEventCut& operator=(AliFemtoSphericityEventCut& c);
21 void SetEventMult(const int& lo,const int& hi);
22 void SetVertZPos(const float& lo, const float& hi);
23 void SetAcceptBadVertex(bool b);
24 int NEventsPassed() const;
25 int NEventsFailed() const;
26 bool GetAcceptBadVertex();
27 bool GetAcceptOnlyPhysics();
28 void SetStMin(double stMin );
29 void SetStMax(double stMax );
30 void SetTriggerSelection(int trig);
32 void SetEPVZERO(const float& lo, const float& hi);
34 virtual AliFemtoString Report();
35 virtual bool Pass(const AliFemtoEvent* event);
37 AliFemtoSphericityEventCut* Clone();
39 private: // here are the quantities I want to cut on...
41 int fEventMult[2]; // range of multiplicity
42 float fVertZPos[2]; // range of z-position of vertex
43 float fPsiEP[2]; // range of vzero ep angle
44 bool fAcceptBadVertex; // Set to true to accept events with bad vertex
45 long fNEventsPassed; // Number of events checked by this cut that passed
46 long fNEventsFailed; // Number of events checked by this cut that failed
47 bool fAcceptOnlyPhysics;// Accept only physics events
48 double fStCutMin; // transverse sphericity minimum
49 double fStCutMax; // transverse sphericity maximum
50 int fSelectTrigger; // If set, only given trigger will be selected
53 ClassDef(AliFemtoSphericityEventCut, 1)
58 inline void AliFemtoSphericityEventCut::SetEventMult(const int& lo, const int& hi){fEventMult[0]=lo; fEventMult[1]=hi;}
59 inline void AliFemtoSphericityEventCut::SetVertZPos(const float& lo, const float& hi){fVertZPos[0]=lo; fVertZPos[1]=hi;}
60 inline void AliFemtoSphericityEventCut::SetEPVZERO(const float& lo, const float& hi){fPsiEP[0]=lo; fPsiEP[1]=hi;}
61 inline int AliFemtoSphericityEventCut::NEventsPassed() const {return fNEventsPassed;}
62 inline int AliFemtoSphericityEventCut::NEventsFailed() const {return fNEventsFailed;}
63 inline void AliFemtoSphericityEventCut::SetStMin(double stMin ) {fStCutMin=stMin;}
64 inline void AliFemtoSphericityEventCut::SetStMax(double stMax ) {fStCutMax=stMax;}
65 inline void AliFemtoSphericityEventCut::SetTriggerSelection(int trig) { fSelectTrigger = trig; }
66 inline AliFemtoSphericityEventCut* AliFemtoSphericityEventCut::Clone() { AliFemtoSphericityEventCut* c = new AliFemtoSphericityEventCut(*this); return c;}
67 inline AliFemtoSphericityEventCut::AliFemtoSphericityEventCut(AliFemtoSphericityEventCut& c) : AliFemtoEventCut(c), fAcceptBadVertex(false), fNEventsPassed(0), fNEventsFailed(0), fAcceptOnlyPhysics(false),fStCutMin(0),fStCutMax(1), fSelectTrigger(0) {
68 fEventMult[0] = c.fEventMult[0];
69 fEventMult[1] = c.fEventMult[1];
70 fVertZPos[0] = c.fVertZPos[0];
71 fVertZPos[1] = c.fVertZPos[1];
72 fPsiEP[0] = c.fPsiEP[0];
73 fPsiEP[1] = c.fPsiEP[1];
74 fStCutMin = c.fStCutMin;
75 fStCutMax = c.fStCutMax;
79 inline AliFemtoSphericityEventCut& AliFemtoSphericityEventCut::operator=(AliFemtoSphericityEventCut& c) {
81 AliFemtoEventCut::operator=(c);
82 fEventMult[0] = c.fEventMult[0];
83 fEventMult[1] = c.fEventMult[1];
84 fVertZPos[0] = c.fVertZPos[0];
85 fVertZPos[1] = c.fVertZPos[1];
86 fPsiEP[0] = c.fPsiEP[0];
87 fPsiEP[1] = c.fPsiEP[1];
88 fStCutMin = c.fStCutMin;
89 fStCutMax = c.fStCutMax;