DLG4::VolumeBuilders
A fluent interface for Geant4 geometry definition.
Loading...
Searching...
No Matches
Namespaces | Classes | Typedefs | Functions
DLG4::VolumeBuilders Namespace Reference

Namespaces

namespace  _internals_
 
namespace  BuilderCores
 
namespace  Helpers
 

Classes

struct  RZPlane
 
struct  RZPlaneUnitless
 
class  ThreeVecDimensioner
 

Typedefs

using RZBuilder = _internals_::RZBuilder
 
using BoxBuilder = _internals_::BoxBuilder
 
using Assembly = _internals_::Assembly
 
using FromG4VSolid = _internals_::FromG4VSolid
 
template<typename T >
using VolumeBuilder = _internals_::VolumeBuilderBase< T >
 
using BuilderView = _internals_::VolumeBuilder
 
using BuilderViewList = _internals_::BuilderViewList
 
using StructureView = _internals_::StructureBuilder
 
using StructureViewList = _internals_::StructureViewList
 
using Length3Vec = DLG4::Units::Unit3Vec
 
template<class T >
using Unit = DLG4::Units::Unit< T >
 
using Length = DLG4::Units::Length
 
using Volume = DLG4::Units::Volume
 
using Density = DLG4::Units::Density
 

Functions

Assembly CreateAssembly (G4String name)
 
BoxBuilder CreateBoxBuilder (const G4String &name)
 
BoxBuilder CreateBoxBuilder (const G4String &name, Length unit)
 
BoxBuilder CreateDeltasBoxBuilder (Length unit, const G4String &name, G4double edge_x, G4double x_delta, G4double edge_y, G4double y_delta, G4double edge_z, G4double z_delta)
 
BoxBuilder CreateDeltasBoxBuilder (const G4String &name, G4double edge_x, G4double x_delta, G4double edge_y, G4double y_delta, G4double edge_z, G4double z_delta)
 
BoxBuilder CreateZDeltaBoxBuilder (Length unit, const G4String &name, G4double x_full_size, G4double y_full_size, G4double edge_z, G4double z_delta)
 
BoxBuilder CreateZDeltaBoxBuilder (const G4String &name, G4double x_full_size, G4double y_full_size, G4double edge_z, G4double z_delta)
 
BoxBuilder CreateCenteredBoxBuilder (Length unit, const G4String &name, G4double x_full_size, G4double y_full_size, G4double z_full_size)
 
BoxBuilder CreateCenteredBoxBuilder (const G4String &name, G4double x_full_size, G4double y_full_size, G4double z_full_size)
 
BoxBuilder CreateEdgesBoxBuilder (const G4String &name, G4double x_edge1, G4double x_edge2, G4double y_edge1, G4double y_edge2, G4double z_edge1, G4double z_edge2)
 
BoxBuilder CreateEdgesBoxBuilder (Length unit, const G4String &name, G4double x_edge1, G4double x_edge2, G4double y_edge1, G4double y_edge2, G4double z_edge1, G4double z_edge2)
 
FromG4VSolid CreateFromG4VSolid (G4VSolid *solid)
 
RZBuilder CreatePolyconeBuilder (const G4String &name, G4double phi_start=0., G4double phi_tot=360)
 
RZBuilder CreatePolyhedraBuilder (const G4String &name, int sides, G4double phi_start=0., G4double phi_tot=360)
 
RZBuilder CreateCylinderBuilder (Length unit, const G4String &name, G4double endz, G4double height, G4double OR, G4double IR=0)
 
RZBuilder CreateCylinderBuilder (const G4String &name, G4double endz, G4double height, G4double OR, G4double IR=0)
 

Detailed Description

Class by D.

S. Leonard to define (offset) box solids Internally just a normal solid, but offset is carried around and added to the transform stack. Inherits ability to configure and make the logical volume too. ... and to add/subtract volumes.

S. Leonard to help define z-r planes to build poly-objects Applies units from GeantPlane automatically. Inherits ability to configure and make the logical volume too. ... and to add/subtract volumes.

Typedef Documentation

◆ Assembly

Pointer to Assembly type to hold Structures, ie other assemblies or buidlers.

See _internals_::Assembly.

Definition at line 138 of file VolumeBuildersTypes.hh.

◆ BoxBuilder

Shared pointer to _internals_::BoxBuilderCore.

Definition at line 136 of file VolumeBuildersTypes.hh.

◆ BuilderView

Definition at line 145 of file VolumeBuildersTypes.hh.

◆ BuilderViewList

a user type to hold many builders

You can add to them directly with ->AddTo(yourlist) But you should be able myBuilder->AddTo(myList) to a vector of, for example, G4LogicalVolume * as well since type converting operators are defined.!!!

Definition at line 147 of file VolumeBuildersTypes.hh.

◆ Density

Definition at line 23 of file VolumeBuildersUnitTypes.hh.

◆ FromG4VSolid

Shared pointer to _internals_::FromG4VSolidCore.

Definition at line 140 of file VolumeBuildersTypes.hh.

◆ Length

Definition at line 19 of file VolumeBuildersUnitTypes.hh.

◆ Length3Vec

A 3 vector that is scalable with/to Units.

Definition at line 14 of file VolumeBuildersUnitTypes.hh.

◆ RZBuilder

Shared pointer to _internals_::RZBuilderCore.

Definition at line 134 of file VolumeBuildersTypes.hh.

◆ StructureView

Definition at line 149 of file VolumeBuildersTypes.hh.

◆ StructureViewList

a user type to hold many structures

You can add to them directly with ->AddTo(yourlist) But you should be able myStructure->AddTo(myList) to a vector of, for example, G4LogicalVolume * as well since type converting operators are defined.!!!

Definition at line 151 of file VolumeBuildersTypes.hh.

◆ Unit

template<class T >
using Unit = DLG4::Units::Unit<T>

CRTP base methods for Unit classes.

Template Parameters
T

Definition at line 17 of file VolumeBuildersUnitTypes.hh.

◆ Volume

Definition at line 21 of file VolumeBuildersUnitTypes.hh.

◆ VolumeBuilder

template<typename T >
using VolumeBuilder = _internals_::VolumeBuilderBase<T>

Definition at line 143 of file VolumeBuildersTypes.hh.