1 ////////////////////////////////////////////////////////////////////////////////
3 // AliFemtoQAEventCut - the basic cut to check QA for event cuts. //
4 // Only cuts on event multiplicity and z-vertex position //
6 ////////////////////////////////////////////////////////////////////////////////
8 #ifndef ALIFEMTOQAEVENTCUT_H
9 #define ALIFEMTOQAEVENTCUT_H
11 // do I need these lines ?
13 //#include "StMaker.h"
16 #include "AliFemtoEventCut.h"
18 class AliFemtoQAEventCut : public AliFemtoEventCut {
23 AliFemtoQAEventCut(AliFemtoQAEventCut& c);
24 virtual ~AliFemtoQAEventCut();
26 void SetEventMult(const int& lo,const int& hi);
27 void SetEventMultQASwitch(const bool Switch);
28 void SetEventMultQAExclusionZone(const int& lo, const int& hi);
29 void SetVertZPos(const float& lo, const float& hi);
30 void SetEventZPosQASwitch(const bool Switch);
31 void SetEventZPosQAExclusionZone(const float& lo, const float& hi);
32 void SetAcceptBadVertex(bool b);
33 int NEventsPassed() const;
34 int NEventsFailed() const;
35 bool GetAcceptBadVertex();
37 virtual AliFemtoString Report();
38 virtual bool Pass(const AliFemtoEvent* event);
40 AliFemtoQAEventCut* Clone();
42 private: // here are the quantities I want to cut on...
44 int fEventMult[2]; // range of multiplicity
45 float fVertZPos[2]; // range of z-position of vertex
46 bool fAcceptBadVertex; // Set to true to accept events with bad vertex
47 long fNEventsPassed; // Number of events checked by this cut that passed
48 long fNEventsFailed; // Number of events checked by this cut that failed
50 int fHighOrLowSwitch; // if 1, then previous hbtEvent was high; if -1, then previous event was low.
51 bool fEventMultQASwitch; // Turn on multiplicity exclusion zone (true=on)
52 int fEventMultQAExclusionZone[2]; // Set limits of the multiplicity exclusion zone
53 bool fEventZPosQASwitch; // Turn on Zpos exclusion zone (true=on)
54 float fEventZPosQAExclusionZone[2]; // Set limits of the Zpos exclusion zone
57 ClassDef(AliFemtoQAEventCut, 1)
62 inline void AliFemtoQAEventCut::SetEventMult(const int& lo, const int& hi){fEventMult[0]=lo; fEventMult[1]=hi;}
63 inline void AliFemtoQAEventCut::SetEventMultQASwitch(const bool Switch) { fEventMultQASwitch = Switch; }
64 inline void AliFemtoQAEventCut::SetEventMultQAExclusionZone(const int& lo, const int& hi) { fEventMultQAExclusionZone[0]=lo; fEventMultQAExclusionZone[1]=hi; }
65 inline void AliFemtoQAEventCut::SetVertZPos(const float& lo, const float& hi){fVertZPos[0]=lo; fVertZPos[1]=hi;}
66 inline void AliFemtoQAEventCut::SetEventZPosQASwitch(const bool Switch) { fEventZPosQASwitch = Switch; }
67 inline void AliFemtoQAEventCut::SetEventZPosQAExclusionZone(const float& lo, const float& hi) { fEventZPosQAExclusionZone[0]=lo; fEventZPosQAExclusionZone[1]=hi; }
68 inline int AliFemtoQAEventCut::NEventsPassed() const {return fNEventsPassed;}
69 inline int AliFemtoQAEventCut::NEventsFailed() const {return fNEventsFailed;}
70 inline AliFemtoQAEventCut* AliFemtoQAEventCut::Clone() { AliFemtoQAEventCut* c = new AliFemtoQAEventCut(*this); return c;}
71 inline AliFemtoQAEventCut::AliFemtoQAEventCut(AliFemtoQAEventCut& c) : AliFemtoEventCut(c), fAcceptBadVertex(kFALSE), fNEventsPassed(0), fNEventsFailed(0), fHighOrLowSwitch(0), fEventMultQASwitch(kFALSE), fEventZPosQASwitch(kFALSE) {
72 fEventMult[0] = c.fEventMult[0];
73 fEventMult[1] = c.fEventMult[1];
74 fVertZPos[0] = c.fVertZPos[0];
75 fVertZPos[1] = c.fVertZPos[1];
77 fHighOrLowSwitch = c.fHighOrLowSwitch;
78 fEventMultQASwitch = c.fEventMultQASwitch;
79 fEventZPosQASwitch = c.fEventZPosQASwitch;
80 fEventMultQAExclusionZone[0] = c.fEventMultQAExclusionZone[0];
81 fEventMultQAExclusionZone[1] = c.fEventMultQAExclusionZone[1];
82 fEventZPosQAExclusionZone[0] = c.fEventZPosQAExclusionZone[0];
83 fEventZPosQAExclusionZone[1] = c.fEventZPosQAExclusionZone[1];