#ifndef gregsFemtoDstEventCut_h
#define gregsFemtoDstEventCut_h

#include "StHbtMaker/Base/StHbtEventCut.h"

//_________________
class gregsFemtoDstEventCut : public StHbtEventCut {

 public:
  gregsFemtoDstEventCut();
  gregsFemtoDstEventCut(const gregsFemtoDstEventCut& copy);
  gregsFemtoDstEventCut *Clone(void);
  ~gregsFemtoDstEventCut();

  //Setters
  void SetEventMult(const int& lo, const int& hi) {mRefMult[0]=lo;mRefMult[1]=hi;}
  void SetVertXPos(const float& lo, const float& hi) {mVtxX[0]=lo; mVtxX[1]=hi;}
  void SetVertYPos(const float& lo, const float& hi) {mVtxY[0]=lo; mVtxY[1]=hi;}
  void SetVertZPos(const float& lo, const float& hi) {mVtxZ[0]=lo; mVtxZ[1]=hi;}
  void SetVertXYShift(const float& xShift, const float& yShift) {mVtxXShift=xShift;mVtxYShift=yShift;}
  void SetVertRPos(const float& v) {mVtxR=v;}
  void SetCollisionType(const int& type) {mCollisionType=type;}  //0-pp; 1-AuAu
  void SetVzVpdVzDiff(const float& lo, const float& hi) {mVzVpdVzDiff[0]=lo;mVzVpdVzDiff[1]=hi;}
  //The values from StRefMultCorr
  void SetEventCentralityBins(const int& lo, const int& hi) {mCentralityBinRange[0]=lo;mCentralityBinRange[1]=hi;}
  void SetCentralityDefinition(const int& nCentralityBins) {mNumberOfCentralityBins=nCentralityBins;}

  //Getters
  int NEventsPassed() {return mNEventsPassed;}
  int NEventsFailed() {return mNEventsFailed;}

  virtual string Report();
  virtual bool Pass(const StHbtEvent*);

 private:

  int	  mRefMult[2];
  float   mVtxX[2];
  float   mVtxY[2];
  float   mVtxZ[2];
  float   mVtxR;
  float   mVzVpdVzDiff[2];
  int     mCollisionType;  //0-pp; 1-AuAu
  float   mVtxXShift;
  float   mVtxYShift;

  //Centrality definitions for AuAu
  int     mNumberOfCentralityBins;   //9 or 16 centrality bins
  int     mCentralityBinRange[2];

  long    mNEventsPassed;
  long    mNEventsFailed;

#ifdef __ROOT__
  ClassDef(gregsFemtoDstEventCut, 1)
#endif
};

inline gregsFemtoDstEventCut* gregsFemtoDstEventCut::Clone() { 
  gregsFemtoDstEventCut *c = new gregsFemtoDstEventCut(*this);
  return c;
}
#endif
