//////////////////////////////////////////////////////////////////////////////
/// \class RAT::GeoN16SourceFactory
///
/// \brief N16 source geometry factory (with working PMT)
///
/// \author Phil G Jones
/// \author Matthew Mottram
/// \author Zachariah Barnard -- contact person
///
/// REVISION HISTORY:\n
/// 15/02/2012 : P. Jones - First version \n
/// 25/04/2017 : Z. Barnard - Updated with N16 measurements
///
/// \details Construct the N16 source. To load this
/// geometry into the simulation, use:
///
/// /rat/db/load geo/N16Source.geo
///
/// This geometry should be used with the N16 generator, for example:
///
/// /generator/add n16source
/// /generator/rate/set 1
///
/// 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["N16Source"] pos [x, y, z]
///
//////////////////////////////////////////////////////////////////////////////
#ifndef __RAT_GeoN16SourceFactory__
#define __RAT_GeoN16SourceFactory__
#include
#include
#include
namespace RAT
{
class GeoN16SourceFactory : public GeoFactory, public GeoPMTBuilderBase
{
public:
GeoN16SourceFactory() : GeoFactory("N16Builder") {};
/// Build and return the N16 source
/// @param[in] checkOverlaps when placing
virtual void Construct(DBLinkPtr table,
const bool checkOverlaps);
void LoadCalibCommon(std::string fCalInfo);
std::string fSourceType;
TVector3 fPosition;
TVector3 fOrientationVector;
int fOrientationCode;
};
} // namespace RAT
#endif