////////////////////////////////////////////////////////////////////////
/// \class RAT::Classifiers::SeededClassifier
///
/// \brief  All seeded classifiers derive from this
///
/// \author Phil G Jones <p.g.jones@qmul.ac.uk>
/// \author Evelina Arushanova <e.arushanova@qmul.ac.uk> -- contact person
/// \author Matt Mottram <m.mottram@qmul.ac.uk> -- contact person
///
/// REVISION HISTORY:\n
///     27/04/2012 : P G Jones - New file \n
///
/// \details Adds seed functionality.
///
////////////////////////////////////////////////////////////////////////

#ifndef __RAT_Classifiers_SeededClassifier_
#define __RAT_Classifiers_SeededClassifier_

#include <RAT/Classifier.hh>

namespace RAT
{

namespace DS
{
  class FitResult;
}

namespace Classifiers
{

//Note virtual inheritance.
class SeededClassifier : public virtual Classifier
{
public:
  /// Constructor
  SeededClassifier() {}
  /// Empty virtual destructor
  virtual ~SeededClassifier() {}

  /// Set the seed to the default
  virtual void DefaultSeed() = 0;

  /// Set the seed, must be implemented by daughter classes
  virtual void SetSeed( const DS::FitResult& seed ) = 0;
};

} //::Classifier

} //::RAT

#endif