////////////////////////////////////////////////////////////////////////
/// \class RAT::PDFs::PDF
///
/// \brief All pdf classes derive from this
///
/// \author name Phil G Jones
/// \author Matt Mottram < m.mottram@qmul.ac.uk> -- contact person
///
/// REVISION HISTORY:\n
/// 26/04/2011 : P G Jones - New file \n
/// 24/01/2013 : P G Jones - Changed to derive from the FitterComponent
/// class. Allows variable setting.\n
/// 2014-03-29 : P G Jones - Updated lifetime, added BeginOfRun method\n
///
/// \details Base class for PDFs
///
////////////////////////////////////////////////////////////////////////
#ifndef __RAT_PDF_PDF_
#define __RAT_PDF_PDF_
#include
#include
namespace RAT
{
class FitterPMT;
namespace DS
{
class FitVertex;
}
namespace PDFs
{
class PDF : public FitterComponent
{
public:
/// Primary PDF function
///
/// @param[in] pmt Observed PMT hit
/// @param[in] vertex The proposed vertex
virtual double GetProbability( const FitterPMT& pmt, const DS::FitVertex& vertex ) = 0;
/// Initialise the PDF, using a init stream
virtual void Initialise( const std::string& param ) = 0;
};
} //::PDFs
} //::RAT
#endif