#ifndef fxtPairCutMonitor_hh
#define fxtPairCutMonitor_hh

class StHbtPair;

#include "StHbtMaker/Infrastructure/StHbtHisto.hh"
#include "StHbtMaker/Base/StHbtCutMonitor.hh"

class fxtPairCutMonitor : public StHbtCutMonitor {

private:
  StHbt1FHisto* mKt;
  StHbt3FHisto* mPt1Pt2Qinv;
  StHbt2FHisto* mFMRvsQinv;
  StHbt2FHisto* mSLvsQinv;
  StHbt2FHisto* mAveSepVsQinv;
  StHbt2FHisto* mRValueVsQinv;
  double mPartMass;

public:
  fxtPairCutMonitor(const char*);   // default constructor
  fxtPairCutMonitor( const  fxtPairCutMonitor& cutMoni);
  virtual ~fxtPairCutMonitor();

  virtual void Fill(const StHbtPair* pair);

  // These dummy Fill() functions were introduced to remove a compiler
  //   warning related to overloaded base-class Fill() functions being 
  //   hidden by a single version of Fill() in this derived class
  void Fill(const StHbtParticleCollection* d) {;}
  void Fill(const StHbtEvent *d1, const StHbtParticleCollection* d2) {;}
  void Fill(const StHbtTrack* d) {;}
  //void Fill(const StHbtPair* d) {;}
  void Fill(const StHbtKink* d) {;}
  void Fill(const StHbtV0* d) {;}
  void Fill(const StHbtEvent* d) {;}
  
  StHbt1FHisto* Kt() { return mKt; }
  StHbt3FHisto* Pt1Pt2Qinv() { return mPt1Pt2Qinv; }
  StHbt2FHisto* FMRvsQinv() { return mFMRvsQinv; }
  StHbt2FHisto* SLvsQinv() { return mSLvsQinv; }
  StHbt2FHisto* AveSepVsQinv() { return mAveSepVsQinv; }
  StHbt2FHisto* RValueVsQinv() { return mRValueVsQinv; }

  void SetParticleMass(double mass);

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

inline void fxtPairCutMonitor::SetParticleMass(double mass) { mPartMass = mass; }

#endif
