//////////////////////////////////////////////////////////////////////////////
/// \class RAT::GeoN16SNOMANSourceFactory
///
/// \brief  N16 SNOMAN source geometry factory (with working PMT)
///
/// \author M Mottram <m.mottram@qmul.ac.uk> -- contact person
///
/// REVISION HISTORY:\n
///   2014/08/04 : M Mottram - First version \n
///
/// \details Construct the SNOMAN N16 source. To load this
///         geometry into the simulation, use:
///
///              /rat/db/load geo/N16SNOMANSource.geo
///
///         This geometry should be used with the N16 generator, for example:
///
///              /generator/add n16source
///              /generator/rate/set 1
///
///         For the SNOMAN source to be loaded, the following DB command MUST be used:
///
///              /rat/db/set GEO[N16Source] factory "N16SNOMANbuilder"
///
///         If you want to shift the position of the can source from the centre
///         of the detector, then use the command:
///
///              /rat/db/set GEO["N16SNOMANSource"] pos [x, y, z]
///
//////////////////////////////////////////////////////////////////////////////

#ifndef __RAT_GeoN16SNOMANSourceFactory__
#define __RAT_GeoN16SNOMANSourceFactory__

#include <RAT/GeoFactory.hh>

namespace RAT
{

class GeoN16SNOMANSourceFactory : public GeoFactory
{
public:
  GeoN16SNOMANSourceFactory() : GeoFactory("N16SNOMANbuilder") {};
  /// Build and return the N16 source
  /// @param[in] checkOverlaps when placing
  virtual void Construct(DBLinkPtr table,
                         const bool checkOverlaps);
  };

} // namespace RAT

#endif