////////////////////////////////////////////////////////////////////////
/// \class RAT::Classifiers::EarlyTime
///
/// \brief  Calculates the number of photons arriving before they
///         apparently can given the seed.
///
/// \author name Phil G Jones <p.g.jones@qmul.ac.uk>
/// \author Evelina Arushanova <e.arushanova@qmul.ac.uk> -- contact person
///
/// REVISION HISTORY:\n
///     26/06/2011 : P G Jones - New file \n
///
/// \details Returns the fraction of early to total.
///
////////////////////////////////////////////////////////////////////////

#ifndef __RAT_Classifiers_EarlyTime_
#define __RAT_Classifiers_EarlyTime_

#include <RAT/SeededClassifier.hh>
#include <RAT/DU/LightPathCalculator.hh>

namespace RAT
{
namespace DS
{
  class FitResult;
}

namespace Classifiers
{

class EarlyTime : public SeededClassifier
{
public:
  virtual std::string GetName() const { return EarlyTime::Name(); }

  static std::string Name() { return std::string( "earlyTime" ); }

  void Initialise( const std::string& ) { }

  void BeginOfRun( DS::Run& );

  void EndOfRun( DS::Run& ) { }

  virtual DS::ClassifierResult GetClassification();
  /// Set the seed to default
  void DefaultSeed();
  /// Set the seed to seed
  void SetSeed( const DS::FitResult& seed );
private:
  TVector3 fEventPos;
  double fEventTime;
  DU::LightPathCalculator fLightPath; ///< Light path calculator for a given run
};

} //::Classifier

} //::RAT

#endif