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