#include #include #include #include using namespace RAT; using namespace RAT::geo; #include #include using namespace CLHEP; using namespace std; G4VSolid* NeckBoss::Construct( const std::string& name, DBLinkPtr table ) const { const double rMin1 = table->GetD( "r_min1" ); const double rMin2 = table->GetD( "r_min2" ); const double rMax1 = table->GetD( "r_max1" ); const double rMax2 = table->GetD( "r_max2" ); const double halfHeight1 = table->GetD( "half_height1" ); const double halfHeight2 = table->GetD( "half_height2" ); const double offset = halfHeight2 - halfHeight1; G4Tubs* inner = new G4Tubs( name + "_inner_solid", rMin1, rMax1, halfHeight1, 0.0, twopi ); G4Tubs* outer = new G4Tubs( name + "_outer_solid", rMin2, rMax2, halfHeight2, 0.0, twopi ); return new G4UnionSolid( name + "_solid", inner, outer, NULL, G4ThreeVector( 0.0, 0.0, offset ) ); }