////////////////////////////////////////////////////////////////////////////// /// \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