//////////////////////////////////////////////////////////////////////// /// \class RAT::ConcentratorConstructorParams /// /// \brief The struct of parameters needed to construct a concentrator /// /// \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 /// 01/11 : P.Jones - Added data input option \n /// /// \details Stores the necessary parameters for a concentrator /// /// //////////////////////////////////////////////////////////////////////// #ifndef __RAT_ConcentratorConsrtuctorParams__ #define __RAT_ConcentratorConsrtuctorParams__ #include #include class G4Material; class G4OpticalSurface; class G4VisAttributes; namespace RAT { class ConcentratorConstructorParams { public: enum EConcDefinition { eSNOMAN, eRAT }; ConcentratorConstructorParams( const std::string& concType, G4Material* motherMaterial, G4VisAttributes* visAttributes ); virtual ~ConcentratorConstructorParams() {} std::string fConcType; ///< String that defines the concentrator type in the db std::string fModelType; ///< Name of the Model, default is ConcentratorOpticalModel std::string fModelParams; ///< The Model Parameter set, e.g. Optics0 double fUpperRadius; ///< Radius of concentrator water adjacent face double fLowerRadius; ///< Radius of concentrator pmt adjacent face double fA; ///< As defined in Michael Lay thesis, Torus cross section ellipse minor axis double fB; ///< As defined in Michael Lay thesis, Torus cross section ellipse major axis double fD; ///< As defined in Michael Lay thesis, Radius of torus std::vector fZCoord; ///< If not using a fit (A, B, D) then measured position std::vector fRhoCoord; ///< If not using a fit (A, B, D) then measured position double fOffset; ///< Concentrator offset in z from pmt equator int fNumPetals; ///< Number of Petals double fPetalThickness; ///< Thickness of the petal double fPlasticThickness; ///< Thickness of the plastic double fLipZCoord; ///< The lip middle Z coord, lip is edge is above and below. double fLipOuterRadius; ///< The outer radius of the lip, inner radius is that of the plastic G4Material* fBulkMaterial; ///< Concentrator Bulk (Plastic) material G4Material* fPetalMaterial; ///< Concentrator Bulk (Petal) material G4Material* fMotherMaterial; ///< Material of the volume the petal is placed into G4OpticalSurface* fReflectiveSurface; ///< Reflective surface for petals G4VisAttributes* fVisAttributes; ///< Visualisation attributes EConcDefinition fConcDefinition; ///< Does concentrator use RAT or SNOMAN definition private: ConcentratorConstructorParams(); }; } //::RAT #endif