#ifndef gregsBPLCMSFrame3DCorrFctn_hh
#define gregsBPLCMSFrame3DCorrFctn_hh

#include "StHbtMaker/Base/StHbtCorrFctn.hh"
#include "StHbtMaker/Base/StHbtPairCut.h"

//_________________
class gregsBPLCMSFrame3DCorrFctn : public StHbtCorrFctn {

 public:
  gregsBPLCMSFrame3DCorrFctn(char *title, const int &nbins, const float &Qlo, 
			     const float &Qhi);
  virtual ~gregsBPLCMSFrame3DCorrFctn();

  virtual StHbtString Report();
  virtual void AddRealPair(const StHbtPair*);
  virtual void AddMixedPair(const StHbtPair*);

  virtual void Finish();
  void WriteOutHistos();

  StHbt3FHisto* Numerator();
  StHbt3FHisto* Denominator();
  StHbt3FHisto* QinvHisto();

 private:

  StHbt3FHisto *mNumerator;
  StHbt3FHisto *mDenominator;
  StHbt3FHisto *mQinvHisto;

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

inline StHbt3FHisto *gregsBPLCMSFrame3DCorrFctn::Numerator() {
  return mNumerator; }
inline StHbt3FHisto *gregsBPLCMSFrame3DCorrFctn::Denominator() {
  return mDenominator; }
inline StHbt3FHisto *gregsBPLCMSFrame3DCorrFctn::QinvHisto() {
  return mQinvHisto; }
#endif
