ROOT logo
////////////////////////////////////////////////////////////////////////////////
//                                                                            //
// AliFemtoBasicEventCut - the basic cut for events.                          //
// Only cuts on event multiplicity and z-vertex position                      //
//                                                                            //
////////////////////////////////////////////////////////////////////////////////

#ifndef ALIFEMTOBASICEVENTCUT_H
#define ALIFEMTOBASICEVENTCUT_H

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

#include "AliFemtoEventCut.h"

class AliFemtoBasicEventCut : public AliFemtoEventCut {

public:

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

  void SetEventMult(const int& lo,const int& hi);
  void SetVertZPos(const float& lo, const float& hi);
  void SetAcceptBadVertex(bool b);
  int NEventsPassed() const;
  int NEventsFailed() const;
  bool GetAcceptBadVertex();
  /* bool GetAcceptOnlyPhysics(); */
  void SetTriggerSelection(int trig);

  void SetEPVZERO(const float& lo, const float& hi);

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

  AliFemtoBasicEventCut* 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
  float fPsiEP[2];     // range of vzero ep angle
  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
  bool fAcceptOnlyPhysics;// Accept only physics events
  int  fSelectTrigger;    // If set, only given trigger will be selected

#ifdef __ROOT__
  ClassDef(AliFemtoBasicEventCut, 1)
#endif

};

inline void AliFemtoBasicEventCut::SetEventMult(const int& lo, const int& hi){fEventMult[0]=lo; fEventMult[1]=hi;}
inline void AliFemtoBasicEventCut::SetVertZPos(const float& lo, const float& hi){fVertZPos[0]=lo; fVertZPos[1]=hi;}
inline void AliFemtoBasicEventCut::SetEPVZERO(const float& lo, const float& hi){fPsiEP[0]=lo; fPsiEP[1]=hi;}
inline int  AliFemtoBasicEventCut::NEventsPassed() const {return fNEventsPassed;}
inline int  AliFemtoBasicEventCut::NEventsFailed() const {return fNEventsFailed;}
inline void AliFemtoBasicEventCut::SetTriggerSelection(int trig) { fSelectTrigger = trig; }
inline AliFemtoBasicEventCut* AliFemtoBasicEventCut::Clone() { AliFemtoBasicEventCut* c = new AliFemtoBasicEventCut(*this); return c;}
inline AliFemtoBasicEventCut::AliFemtoBasicEventCut(AliFemtoBasicEventCut& c) : AliFemtoEventCut(c), fAcceptBadVertex(false), fNEventsPassed(0), fNEventsFailed(0), fAcceptOnlyPhysics(false), fSelectTrigger(0) {
  fEventMult[0] = c.fEventMult[0];
  fEventMult[1] = c.fEventMult[1];
  fVertZPos[0] = c.fVertZPos[0];
  fVertZPos[1] = c.fVertZPos[1];
  fPsiEP[0] = c.fPsiEP[0];
  fPsiEP[1] = c.fPsiEP[1];
}

inline AliFemtoBasicEventCut& AliFemtoBasicEventCut::operator=(AliFemtoBasicEventCut& c) {
  if (this != &c) {
    AliFemtoEventCut::operator=(c);
    fEventMult[0] = c.fEventMult[0];
    fEventMult[1] = c.fEventMult[1];
    fVertZPos[0] = c.fVertZPos[0];
    fVertZPos[1] = c.fVertZPos[1];
    fPsiEP[0] = c.fPsiEP[0];
    fPsiEP[1] = c.fPsiEP[1];
  }

  return *this;
}


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