//////////////////////////////////////////////////////////////////////// /// \class RAT::BucketConstructorParams /// /// \brief The struct of parameters needed to construct a bucket /// /// \author Phil Jones /// \author Aksel Hallin -- contact person /// /// REVISION HISTORY:\n /// 07/09 : P.Jones - First Revision, new file. \n /// 08/10 : P.Jones - New constructor. \n /// /// \details Stores the necessary parameters for a bucket /// /// //////////////////////////////////////////////////////////////////////// #ifndef __RAT_BucketConstructorParams__ #define __RAT_BucketConstructorParams__ #include #include class G4Material; class G4VisAttributes; namespace RAT { class BucketConstructorParams { public: BucketConstructorParams( const std::string& bucketType, G4VisAttributes* visAttributes ); BucketConstructorParams( const std::string& bucketType, const int numPetals, const double hexRadius, G4VisAttributes* visAttributes ); virtual ~BucketConstructorParams() {} void Construct(); std::vector fEdgeZCoord; ///< Z coords for the inner volume std::vector fInnerEdgeRhoCoord; ///< Rho coords for the inner volume std::vector fOuterEdgeRhoCoord; ///< Rho coords for the outer volume std::string fBucketType; ///< Bucket type in db double fTopHoleRadius; ///< Radius of the top circular hole in the bucket 0 if hex double fTopHoleDepth; ///< Depth of the hole, corresponds to 'lid' thickness double fBottomHoleRadius; ///< Radius of the bottom hole in the bucket double fBottomHoleDepth; ///< Depth of the hole, corresponds to 'base' thickness double fOffset; ///< Bucket offset in z from pmt equator int fNumPetals; ///< Number of concentrator Petals is 0 if circular top hole double fTopHexRadius; ///< Hex radius of the top hole in the bucket 0 if circular G4Material* fBulkMaterial; ///< Bucket Bulk (Plastic) material G4VisAttributes* fVisAttributes; ///< Visualisation attributes private: BucketConstructorParams(); }; } //::RAT #endif