19#include "BDSGeometryComponent.hh"
20#include "BDSGeometryExternal.hh"
21#include "BDSMagnetOuter.hh"
22#include "BDSSimpleComponent.hh"
24#include "G4ThreeVector.hh"
26BDSMagnetOuter::BDSMagnetOuter(G4VSolid* containerSolidIn,
27 G4LogicalVolume* containerLVIn,
30 const G4ThreeVector& placementOffsetIn,
33 const G4ThreeVector& inputFaceNormalIn,
34 const G4ThreeVector& outputFaceNormalIn):
37 magnetContainer(magnetContainerIn),
38 endPieceBefore(endPieceBeforeIn),
39 endPieceAfter(endPieceAfterIn),
40 inputFaceNormal(inputFaceNormalIn),
41 outputFaceNormal(outputFaceNormalIn),
42 externalGeometry(nullptr)
49 const G4ThreeVector& inputFaceNormalIn,
50 const G4ThreeVector& outputFaceNormalIn):
52 magnetContainer(magnetContainerIn),
53 endPieceBefore(endPieceBeforeIn),
54 endPieceAfter(endPieceAfterIn),
55 inputFaceNormal(inputFaceNormalIn),
56 outputFaceNormal(outputFaceNormalIn),
57 externalGeometry(nullptr)
63 magnetContainer(magnetContainerIn),
64 endPieceBefore(nullptr),
65 endPieceAfter(nullptr),
66 inputFaceNormal(G4ThreeVector(0,0,-1)),
67 outputFaceNormal(G4ThreeVector(0,0,1)),
68 externalGeometry(external)
71BDSMagnetOuter::~BDSMagnetOuter()
81 delete magnetContainer;
82 magnetContainer =
nullptr;
88 if (endPieceAfter && (endPieceAfter != endPieceBefore))
89 {
delete endPieceAfter; endPieceAfter =
nullptr;}
91 {
delete endPieceBefore; endPieceBefore =
nullptr;}
96 inputFaceNormal = input;
103 outputFaceNormal = output;
virtual void SetInputFaceNormal(const G4ThreeVector &input)
Allow updating of face normals. Virtual so derived class may apply it to daughters.
Holder for +- extents in 3 dimensions.
A generic geometry component for a bdsim model.
A loaded piece of externally provided geometry.
void ClearMagnetContainer()
Clear the memory of the now unneeded magnet container object.
void ClearEndPieces()
Clear the memory of the possibly unneeded end piece objects.
void SetInputFaceNormal(const G4ThreeVector &input)
Setter for face normals.
void SetOutputFaceNormal(const G4ThreeVector &output)
Setter for face normals.
A BDSAcceleratorComponent wrapper for BDSGeometryComponent.