19#include "BDSAcceleratorComponent.hh"
20#include "BDSColours.hh"
22#include "BDSExtent.hh"
27#include "G4LogicalVolume.hh"
29#include "G4UserLimits.hh"
30#include "G4VisAttributes.hh"
32#include "CLHEP/Units/SystemOfUnits.h"
36 G4double horizontalWidthIn,
39 horizontalWidth(horizontalWidthIn),
53 G4VisAttributes* dumpVis =
new G4VisAttributes(*reallyreallydarkgrey);
55 containerLogicalVolume->SetVisAttributes(dumpVis);
62 containerSolid =
new G4Tubs(
name +
"_solid",
71 containerSolid =
new G4Box(
name +
"_solid",
77 containerLogicalVolume =
new G4LogicalVolume(containerSolid,
91 std::numeric_limits<double>::max());
Abstract class that represents a component of an accelerator.
G4UserLimits * userLimits
Cache of user limits.
const G4String name
Const protected member variable that may not be changed by derived classes.
static G4Material * emptyMaterial
Useful variable often used in construction.
static G4double lengthSafetyLarge
G4double chordLength
Protected member variable that can be modified by derived classes.
static BDSColours * Instance()
singleton pattern
G4Colour * GetColour(const G4String &type, G4bool normaliseTo255=true)
Get colour from name.
BDSDump()=delete
No default constructor.
virtual void BuildContainerLogicalVolume() override
Build a simple box or cylinder.
virtual void Build() override
Call default build then override visualisation attributes.
virtual void BuildUserLimits() override
Customised user limits.
Holder for +- extents in 3 dimensions.
void RegisterUserLimits(G4UserLimits *userLimit)
void SetExtent(const BDSExtent &extIn)
Set extent.
void RegisterVisAttributes(G4VisAttributes *visAttribute)