ROOT logo
////////////////////////////////////////////////////////////////////////////////
//                                                                            //
// AliFemtoSpherocityEventCut - the basic cut for events.                     //
//                                                                            //
////////////////////////////////////////////////////////////////////////////////

#ifndef AliFemtoSpherocityEventCUT_H
#define AliFemtoSpherocityEventCUT_H

#include "AliFemtoEventCut.h"

class AliFemtoSpherocityEventCut : public AliFemtoEventCut {

public:

  AliFemtoSpherocityEventCut();
  AliFemtoSpherocityEventCut(AliFemtoSpherocityEventCut& c);
  virtual ~AliFemtoSpherocityEventCut();
  AliFemtoSpherocityEventCut& operator=(AliFemtoSpherocityEventCut& 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 SetSoMin(double soMin );
  void SetSoMax(double soMax );
  void SetTriggerSelection(int trig);

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

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

  AliFemtoSpherocityEventCut* 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
  double fSoCutMin;       // transverse sphericity minimum
  double fSoCutMax;       // transverse sphericity maximum
  int  fSelectTrigger;    // If set, only given trigger will be selected

#ifdef __ROOT__
  ClassDef(AliFemtoSpherocityEventCut, 1)
#endif

};

inline void AliFemtoSpherocityEventCut::SetEventMult(const int& lo, const int& hi){fEventMult[0]=lo; fEventMult[1]=hi;}
inline void AliFemtoSpherocityEventCut::SetVertZPos(const float& lo, const float& hi){fVertZPos[0]=lo; fVertZPos[1]=hi;}
inline void AliFemtoSpherocityEventCut::SetEPVZERO(const float& lo, const float& hi){fPsiEP[0]=lo; fPsiEP[1]=hi;}
inline int  AliFemtoSpherocityEventCut::NEventsPassed() const {return fNEventsPassed;}
inline int  AliFemtoSpherocityEventCut::NEventsFailed() const {return fNEventsFailed;}
inline void  AliFemtoSpherocityEventCut::SetSoMin(double soMin ) {fSoCutMin=soMin;}
inline void  AliFemtoSpherocityEventCut::SetSoMax(double soMax ) {fSoCutMax=soMax;}
inline void AliFemtoSpherocityEventCut::SetTriggerSelection(int trig) { fSelectTrigger = trig; }
inline AliFemtoSpherocityEventCut* AliFemtoSpherocityEventCut::Clone() { AliFemtoSpherocityEventCut* c = new AliFemtoSpherocityEventCut(*this); return c;}
inline AliFemtoSpherocityEventCut::AliFemtoSpherocityEventCut(AliFemtoSpherocityEventCut& c) : AliFemtoEventCut(c), fAcceptBadVertex(false), fNEventsPassed(0), fNEventsFailed(0), fAcceptOnlyPhysics(false), fSoCutMin(0), fSoCutMax(1), 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 AliFemtoSpherocityEventCut& AliFemtoSpherocityEventCut::operator=(AliFemtoSpherocityEventCut& 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
 AliFemtoSpherocityEventCut.h:1
 AliFemtoSpherocityEventCut.h:2
 AliFemtoSpherocityEventCut.h:3
 AliFemtoSpherocityEventCut.h:4
 AliFemtoSpherocityEventCut.h:5
 AliFemtoSpherocityEventCut.h:6
 AliFemtoSpherocityEventCut.h:7
 AliFemtoSpherocityEventCut.h:8
 AliFemtoSpherocityEventCut.h:9
 AliFemtoSpherocityEventCut.h:10
 AliFemtoSpherocityEventCut.h:11
 AliFemtoSpherocityEventCut.h:12
 AliFemtoSpherocityEventCut.h:13
 AliFemtoSpherocityEventCut.h:14
 AliFemtoSpherocityEventCut.h:15
 AliFemtoSpherocityEventCut.h:16
 AliFemtoSpherocityEventCut.h:17
 AliFemtoSpherocityEventCut.h:18
 AliFemtoSpherocityEventCut.h:19
 AliFemtoSpherocityEventCut.h:20
 AliFemtoSpherocityEventCut.h:21
 AliFemtoSpherocityEventCut.h:22
 AliFemtoSpherocityEventCut.h:23
 AliFemtoSpherocityEventCut.h:24
 AliFemtoSpherocityEventCut.h:25
 AliFemtoSpherocityEventCut.h:26
 AliFemtoSpherocityEventCut.h:27
 AliFemtoSpherocityEventCut.h:28
 AliFemtoSpherocityEventCut.h:29
 AliFemtoSpherocityEventCut.h:30
 AliFemtoSpherocityEventCut.h:31
 AliFemtoSpherocityEventCut.h:32
 AliFemtoSpherocityEventCut.h:33
 AliFemtoSpherocityEventCut.h:34
 AliFemtoSpherocityEventCut.h:35
 AliFemtoSpherocityEventCut.h:36
 AliFemtoSpherocityEventCut.h:37
 AliFemtoSpherocityEventCut.h:38
 AliFemtoSpherocityEventCut.h:39
 AliFemtoSpherocityEventCut.h:40
 AliFemtoSpherocityEventCut.h:41
 AliFemtoSpherocityEventCut.h:42
 AliFemtoSpherocityEventCut.h:43
 AliFemtoSpherocityEventCut.h:44
 AliFemtoSpherocityEventCut.h:45
 AliFemtoSpherocityEventCut.h:46
 AliFemtoSpherocityEventCut.h:47
 AliFemtoSpherocityEventCut.h:48
 AliFemtoSpherocityEventCut.h:49
 AliFemtoSpherocityEventCut.h:50
 AliFemtoSpherocityEventCut.h:51
 AliFemtoSpherocityEventCut.h:52
 AliFemtoSpherocityEventCut.h:53
 AliFemtoSpherocityEventCut.h:54
 AliFemtoSpherocityEventCut.h:55
 AliFemtoSpherocityEventCut.h:56
 AliFemtoSpherocityEventCut.h:57
 AliFemtoSpherocityEventCut.h:58
 AliFemtoSpherocityEventCut.h:59
 AliFemtoSpherocityEventCut.h:60
 AliFemtoSpherocityEventCut.h:61
 AliFemtoSpherocityEventCut.h:62
 AliFemtoSpherocityEventCut.h:63
 AliFemtoSpherocityEventCut.h:64
 AliFemtoSpherocityEventCut.h:65
 AliFemtoSpherocityEventCut.h:66
 AliFemtoSpherocityEventCut.h:67
 AliFemtoSpherocityEventCut.h:68
 AliFemtoSpherocityEventCut.h:69
 AliFemtoSpherocityEventCut.h:70
 AliFemtoSpherocityEventCut.h:71
 AliFemtoSpherocityEventCut.h:72
 AliFemtoSpherocityEventCut.h:73
 AliFemtoSpherocityEventCut.h:74
 AliFemtoSpherocityEventCut.h:75
 AliFemtoSpherocityEventCut.h:76
 AliFemtoSpherocityEventCut.h:77
 AliFemtoSpherocityEventCut.h:78
 AliFemtoSpherocityEventCut.h:79
 AliFemtoSpherocityEventCut.h:80
 AliFemtoSpherocityEventCut.h:81
 AliFemtoSpherocityEventCut.h:82
 AliFemtoSpherocityEventCut.h:83
 AliFemtoSpherocityEventCut.h:84
 AliFemtoSpherocityEventCut.h:85
 AliFemtoSpherocityEventCut.h:86
 AliFemtoSpherocityEventCut.h:87
 AliFemtoSpherocityEventCut.h:88
 AliFemtoSpherocityEventCut.h:89
 AliFemtoSpherocityEventCut.h:90
 AliFemtoSpherocityEventCut.h:91