////////////////////////////////////////////////////////////////////////
// $Id: HoughViewSR.h,v 1.7 2004/10/30 15:02:35 musser Exp $
//
// HoughViewSR
//
// Author:  R. Lee 2002.01.18
//
////////////////////////////////////////////////////////////////////////

#ifndef HOUGHVIEWSR_H
#define HOUGHVIEWSR_H

#include <vector>

#include "TObject.h"
#include "TObjArray.h"

#include "HoughTrackSR.h"

using namespace std;


class HoughViewSR  : public TObject
{

public:

  HoughViewSR();
  HoughViewSR(TObjArray candclusterhandlelist);
  ~HoughViewSR();

  Double_t GetX0();
  Double_t GetZ0();

  const HoughTrackSR *GetHoughTrack(Int_t);

  Int_t GetNPeak() const;
  Int_t GetNTrack() const;

  Int_t GetLargestTrackIndex() const;

  void SetPeakMin(Int_t);
  void SetPeakMinFrac(Double_t);
  void SetPeakMinFracZoom(Double_t);
  void SetMinInterBinSize(Double_t);

  void SetClusterList(TObjArray candclusterlist);
  void SetClusterList(TObjArray * candclusterlist, Double_t minPulseHeight);
  Int_t Iterate(Int_t imode = 0);
  void Print(Option_t* option="") const;

private:

  void Init();
  Int_t IterateSingle();

  Double_t fXZmean[2];
  Double_t fXZrms[2];
  TObjArray *fClusterList;

  Int_t fPeakMin;
  Double_t fPeakMinFrac;
  Double_t fPeakMinFracZoom;
  Double_t fMinInterBinSize;

  TObjArray fHoughTrackList;

ClassDef(HoughViewSR,1)

};


#endif                                                    // HOUGHVIEWSR_H
