ROOT logo
////////////////////////////////////////////////////////////////////////////////
//                                                                            //
// AliFemtoQAEventCut - the basic cut to check QA for event cuts.             //
// Only cuts on event multiplicity and z-vertex position                      //
//                                                                            //
////////////////////////////////////////////////////////////////////////////////

#ifndef ALIFEMTOQAEVENTCUT_H
#define ALIFEMTOQAEVENTCUT_H

// do I need these lines ?
//#ifndef StMaker_H
//#include "StMaker.h"
//#endif

#include "AliFemtoEventCut.h"

class AliFemtoQAEventCut : public AliFemtoEventCut {

public:

  AliFemtoQAEventCut();
  AliFemtoQAEventCut(AliFemtoQAEventCut& c);
  virtual ~AliFemtoQAEventCut();
  AliFemtoQAEventCut& operator=(AliFemtoQAEventCut& c);


  void SetEventMult(const int& lo,const int& hi);
  void SetEventMultQASwitch(const bool Switch);
  void SetEventMultQAExclusionZone(const int& lo, const int& hi);
  void SetVertZPos(const float& lo, const float& hi);
  void SetEventZPosQASwitch(const bool Switch);
  void SetEventZPosQAExclusionZone(const float& lo, const float& hi);
  void SetAcceptBadVertex(bool b);
  int NEventsPassed() const;
  int NEventsFailed() const;
  bool GetAcceptBadVertex();

  virtual AliFemtoString Report();
  virtual bool Pass(const AliFemtoEvent* event);

  AliFemtoQAEventCut* Clone();

private:   // here are the quantities I want to cut on...

  int   fEventMult[2];     // range of multiplicity
  float fVertZPos[2];      // range of z-position of vertex
  bool  fAcceptBadVertex;  // Set to true to accept events with bad vertex
  long  fNEventsPassed;    // Number of events checked by this cut that passed
  long  fNEventsFailed;    // Number of events checked by this cut that failed
  
  int   fHighOrLowSwitch;             // if 1, then previous hbtEvent was high; if -1, then previous event was low.
  bool  fEventMultQASwitch;           // Turn on multiplicity exclusion zone (true=on)
  int   fEventMultQAExclusionZone[2]; // Set limits of the multiplicity exclusion zone
  bool  fEventZPosQASwitch;           // Turn on Zpos exclusion zone (true=on)
  float fEventZPosQAExclusionZone[2]; // Set limits of the Zpos exclusion zone

#ifdef __ROOT__
  ClassDef(AliFemtoQAEventCut, 1)
#endif

};

inline void AliFemtoQAEventCut::SetEventMult(const int& lo, const int& hi){fEventMult[0]=lo; fEventMult[1]=hi;}
inline void AliFemtoQAEventCut::SetEventMultQASwitch(const bool Switch) { fEventMultQASwitch = Switch; }
inline void AliFemtoQAEventCut::SetEventMultQAExclusionZone(const int& lo, const int& hi) { fEventMultQAExclusionZone[0]=lo; fEventMultQAExclusionZone[1]=hi; }
inline void AliFemtoQAEventCut::SetVertZPos(const float& lo, const float& hi){fVertZPos[0]=lo; fVertZPos[1]=hi;}
inline void AliFemtoQAEventCut::SetEventZPosQASwitch(const bool Switch) { fEventZPosQASwitch = Switch; }
inline void AliFemtoQAEventCut::SetEventZPosQAExclusionZone(const float& lo, const float& hi)  { fEventZPosQAExclusionZone[0]=lo; fEventZPosQAExclusionZone[1]=hi; }
inline int  AliFemtoQAEventCut::NEventsPassed() const {return fNEventsPassed;}
inline int  AliFemtoQAEventCut::NEventsFailed() const {return fNEventsFailed;}
inline AliFemtoQAEventCut* AliFemtoQAEventCut::Clone() { AliFemtoQAEventCut* c = new AliFemtoQAEventCut(*this); return c;}
inline AliFemtoQAEventCut::AliFemtoQAEventCut(AliFemtoQAEventCut& c) : AliFemtoEventCut(c), fAcceptBadVertex(kFALSE), fNEventsPassed(0), fNEventsFailed(0), fHighOrLowSwitch(0), fEventMultQASwitch(kFALSE), fEventZPosQASwitch(kFALSE) {
  fEventMult[0] = c.fEventMult[0];
  fEventMult[1] = c.fEventMult[1];
  fVertZPos[0] = c.fVertZPos[0];
  fVertZPos[1] = c.fVertZPos[1];
  
  fHighOrLowSwitch = c.fHighOrLowSwitch;
  fEventMultQASwitch = c.fEventMultQASwitch;
  fEventZPosQASwitch = c.fEventZPosQASwitch;
  fEventMultQAExclusionZone[0] = c.fEventMultQAExclusionZone[0];
  fEventMultQAExclusionZone[1] = c.fEventMultQAExclusionZone[1];
  fEventZPosQAExclusionZone[0] = c.fEventZPosQAExclusionZone[0];
  fEventZPosQAExclusionZone[1] = c.fEventZPosQAExclusionZone[1];
}


#endif
 AliFemtoQAEventCut.h:1
 AliFemtoQAEventCut.h:2
 AliFemtoQAEventCut.h:3
 AliFemtoQAEventCut.h:4
 AliFemtoQAEventCut.h:5
 AliFemtoQAEventCut.h:6
 AliFemtoQAEventCut.h:7
 AliFemtoQAEventCut.h:8
 AliFemtoQAEventCut.h:9
 AliFemtoQAEventCut.h:10
 AliFemtoQAEventCut.h:11
 AliFemtoQAEventCut.h:12
 AliFemtoQAEventCut.h:13
 AliFemtoQAEventCut.h:14
 AliFemtoQAEventCut.h:15
 AliFemtoQAEventCut.h:16
 AliFemtoQAEventCut.h:17
 AliFemtoQAEventCut.h:18
 AliFemtoQAEventCut.h:19
 AliFemtoQAEventCut.h:20
 AliFemtoQAEventCut.h:21
 AliFemtoQAEventCut.h:22
 AliFemtoQAEventCut.h:23
 AliFemtoQAEventCut.h:24
 AliFemtoQAEventCut.h:25
 AliFemtoQAEventCut.h:26
 AliFemtoQAEventCut.h:27
 AliFemtoQAEventCut.h:28
 AliFemtoQAEventCut.h:29
 AliFemtoQAEventCut.h:30
 AliFemtoQAEventCut.h:31
 AliFemtoQAEventCut.h:32
 AliFemtoQAEventCut.h:33
 AliFemtoQAEventCut.h:34
 AliFemtoQAEventCut.h:35
 AliFemtoQAEventCut.h:36
 AliFemtoQAEventCut.h:37
 AliFemtoQAEventCut.h:38
 AliFemtoQAEventCut.h:39
 AliFemtoQAEventCut.h:40
 AliFemtoQAEventCut.h:41
 AliFemtoQAEventCut.h:42
 AliFemtoQAEventCut.h:43
 AliFemtoQAEventCut.h:44
 AliFemtoQAEventCut.h:45
 AliFemtoQAEventCut.h:46
 AliFemtoQAEventCut.h:47
 AliFemtoQAEventCut.h:48
 AliFemtoQAEventCut.h:49
 AliFemtoQAEventCut.h:50
 AliFemtoQAEventCut.h:51
 AliFemtoQAEventCut.h:52
 AliFemtoQAEventCut.h:53
 AliFemtoQAEventCut.h:54
 AliFemtoQAEventCut.h:55
 AliFemtoQAEventCut.h:56
 AliFemtoQAEventCut.h:57
 AliFemtoQAEventCut.h:58
 AliFemtoQAEventCut.h:59
 AliFemtoQAEventCut.h:60
 AliFemtoQAEventCut.h:61
 AliFemtoQAEventCut.h:62
 AliFemtoQAEventCut.h:63
 AliFemtoQAEventCut.h:64
 AliFemtoQAEventCut.h:65
 AliFemtoQAEventCut.h:66
 AliFemtoQAEventCut.h:67
 AliFemtoQAEventCut.h:68
 AliFemtoQAEventCut.h:69
 AliFemtoQAEventCut.h:70
 AliFemtoQAEventCut.h:71
 AliFemtoQAEventCut.h:72
 AliFemtoQAEventCut.h:73
 AliFemtoQAEventCut.h:74
 AliFemtoQAEventCut.h:75
 AliFemtoQAEventCut.h:76
 AliFemtoQAEventCut.h:77
 AliFemtoQAEventCut.h:78
 AliFemtoQAEventCut.h:79
 AliFemtoQAEventCut.h:80
 AliFemtoQAEventCut.h:81
 AliFemtoQAEventCut.h:82
 AliFemtoQAEventCut.h:83
 AliFemtoQAEventCut.h:84
 AliFemtoQAEventCut.h:85
 AliFemtoQAEventCut.h:86
 AliFemtoQAEventCut.h:87
 AliFemtoQAEventCut.h:88
 AliFemtoQAEventCut.h:89