BDSIM
BDSIM is a Geant4 extension toolkit for simulation of particle transport in accelerator beamlines.
Public Member Functions | Static Public Member Functions | Private Attributes | Friends
BDSBeamlineElement Class Reference

A class that holds a fully constructed BDSAcceleratorComponent as well as any information relevant to its position within the beamline. More...

#include <BDSBeamlineElement.hh>

Collaboration diagram for BDSBeamlineElement:
Collaboration graph

Public Member Functions

 BDSBeamlineElement (const BDSBeamlineElement &)=delete
 
BDSBeamlineElementoperator= (const BDSBeamlineElement &)=delete
 
 BDSBeamlineElement (BDSAcceleratorComponent *componentIn, const G4ThreeVector &positionStartIn, const G4ThreeVector &positionMiddleIn, const G4ThreeVector &positionEndIn, G4RotationMatrix *rotationStartIn, G4RotationMatrix *rotationMiddleIn, G4RotationMatrix *rotationEndIn, const G4ThreeVector &referencePositionStartIn, const G4ThreeVector &referencePositionMiddleIn, const G4ThreeVector &referencePositionEndIn, G4RotationMatrix *referenceRotationStartIn, G4RotationMatrix *referenceRotationMiddleIn, G4RotationMatrix *referenceRotationEndIn, G4double sPositionStartIn, G4double sPositionMiddleIn, G4double sPositionEndIn, BDSTiltOffset *tiltOffsetIn=nullptr, BDSSamplerInfo *samplerInfoIn=nullptr, G4int indexIn=-1)
 
std::set< G4VPhysicalVolume * > PlaceElement (const G4String &pvName, G4VPhysicalVolume *containerPV, G4bool useCLPlacementTransform, G4int copyNumber, G4bool checkOverlaps) const
 
BDSExtentGlobal GetExtentGlobal () const
 Create a global extent object from the extent of the component. More...
 
G4double GetTilt () const
 Convenience accessor. More...
 
void UpdateSamplerPlacementTransform (const G4Transform3D &tranfsormIn)
 
G4bool Overlaps (const BDSBeamlineElement *otherElement) const
 Whether this beam line element will overlaps in 3D Cartesian coordinates with another. More...
 
BDSAcceleratorComponentGetAcceleratorComponent () const
 Accessor. More...
 
G4String GetName () const
 Accessor. More...
 
G4String GetType () const
 Accessor. More...
 
G4double GetArcLength () const
 Accessor. More...
 
G4double GetChordLength () const
 Accessor. More...
 
G4double GetAngle () const
 Accessor. More...
 
BDSBeamPipeInfoGetBeamPipeInfo () const
 Accessor. More...
 
BDSExtent GetExtent () const
 Accessor. More...
 
G4String GetPlacementName () const
 Accessor. More...
 
G4int GetCopyNo () const
 Accessor. More...
 
G4ThreeVector GetPositionStart () const
 Accessor. More...
 
G4ThreeVector GetPositionMiddle () const
 Accessor. More...
 
G4ThreeVector GetPositionEnd () const
 Accessor. More...
 
G4RotationMatrix * GetRotationStart () const
 Accessor. More...
 
G4RotationMatrix * GetRotationMiddle () const
 Accessor. More...
 
G4RotationMatrix * GetRotationEnd () const
 Accessor. More...
 
G4ThreeVector GetReferencePositionStart () const
 Accessor. More...
 
G4ThreeVector GetReferencePositionMiddle () const
 Accessor. More...
 
G4ThreeVector GetReferencePositionEnd () const
 Accessor. More...
 
G4RotationMatrix * GetReferenceRotationStart () const
 Accessor. More...
 
G4RotationMatrix * GetReferenceRotationMiddle () const
 Accessor. More...
 
G4RotationMatrix * GetReferenceRotationEnd () const
 Accessor. More...
 
G4double GetSPositionStart () const
 Accessor. More...
 
G4double GetSPositionMiddle () const
 Accessor. More...
 
G4double GetSPositionEnd () const
 Accessor. More...
 
BDSTiltOffsetGetTiltOffset () const
 Accessor. More...
 
G4Transform3D * GetPlacementTransform () const
 Accessor. More...
 
G4Transform3D * GetPlacementTransformCL () const
 Accessor. More...
 
BDSSamplerInfoGetSamplerInfo () const
 Accessor. More...
 
BDSSamplerType GetSamplerType () const
 Accessor. More...
 
G4Transform3D * GetSamplerPlacementTransform () const
 Accessor. More...
 
G4int GetIndex () const
 Accessor. More...
 
G4String GetMaterial () const
 Accessor. More...
 
G4ThreeVector InputFaceNormal () const
 Return face normal accounting for placement tilt of this component. More...
 
G4ThreeVector OutputFaceNormal () const
 Return face normal accounting for placement tilt of this component. More...
 
G4bool AngledInputFace () const
 Whether the face normal is angled at all w.r.t. the incoming / outgoing reference trajectory. More...
 
G4bool AngledOutputFace () const
 Whether the face normal is angled at all w.r.t. the incoming / outgoing reference trajectory. More...
 
void SetReferencePositionEnd (G4ThreeVector newReferencePositionEnd)
 Reassign the end variable as required when applying a transform.
 
void SetReferenceRotationEnd (G4RotationMatrix *newReferenceRotatonEnd)
 Reassign the end variable as required when applying a transform.
 

Static Public Member Functions

static std::set< G4VPhysicalVolume * > GetPVsFromAssembly (G4AssemblyVolume *av)
 Utility method to account for the interface in G4AssemblyVolume. More...
 

Private Attributes

BDSAcceleratorComponentcomponent
 The accelerator component. More...
 
G4String placementName
 
G4int copyNumber
 identification number of AcceleratorComponent (0 for first volume of given type) More...
 
BDSTiltOffsettiltOffset
 The tilt and offset this element was constructed with. Default is nullptr. More...
 
G4Transform3D * placementTransform
 
G4Transform3D * placementTransformCL
 
BDSSamplerInfosamplerInfo
 
G4Transform3D * samplerPlacementTransform
 
G4int index
 Index of this item in the beamline - saves keeping track of iterators and conversion. More...
 
G4ThreeVector positionStart
 Global coordinates for the start, middle and end of this beamline element. More...
 
G4ThreeVector positionMiddle
 Global coordinates for the start, middle and end of this beamline element. More...
 
G4ThreeVector positionEnd
 Global coordinates for the start, middle and end of this beamline element. More...
 
G4RotationMatrix * rotationStart
 Global rotation matrices for the start, middle and end of this beamline element. More...
 
G4RotationMatrix * rotationMiddle
 Global rotation matrices for the start, middle and end of this beamline element. More...
 
G4RotationMatrix * rotationEnd
 Global rotation matrices for the start, middle and end of this beamline element. More...
 
G4ThreeVector referencePositionStart
 
G4ThreeVector referencePositionMiddle
 
G4ThreeVector referencePositionEnd
 
G4RotationMatrix * referenceRotationStart
 
G4RotationMatrix * referenceRotationMiddle
 
G4RotationMatrix * referenceRotationEnd
 
G4double sPositionStart
 S Positions for the start, middle and end of this beamline element. More...
 
G4double sPositionMiddle
 S Positions for the start, middle and end of this beamline element. More...
 
G4double sPositionEnd
 S Positions for the start, middle and end of this beamline element. More...
 

Friends

std::ostream & operator<< (std::ostream &out, BDSBeamlineElement const &element)
 Output stream. More...
 

Detailed Description

A class that holds a fully constructed BDSAcceleratorComponent as well as any information relevant to its position within the beamline.

For example, position information as curvilinear s position coordinate as these are only defined with respect to the components position in the beamline / lattice.

Each instance of this class owns the position vectors and rotation matrices BUT NOT the accelerator component - this is owned by the component registry.

This also owns an instance of BDSTiltOffset that the instance of this class was prepared with for reference. This is optional so can be nullptr and therefore should ALWAYS be tested on.

Author
Laurie Nevay

Definition at line 63 of file BDSBeamlineElement.hh.

Constructor & Destructor Documentation

◆ BDSBeamlineElement()

BDSBeamlineElement::BDSBeamlineElement ( BDSAcceleratorComponent componentIn,
const G4ThreeVector &  positionStartIn,
const G4ThreeVector &  positionMiddleIn,
const G4ThreeVector &  positionEndIn,
G4RotationMatrix *  rotationStartIn,
G4RotationMatrix *  rotationMiddleIn,
G4RotationMatrix *  rotationEndIn,
const G4ThreeVector &  referencePositionStartIn,
const G4ThreeVector &  referencePositionMiddleIn,
const G4ThreeVector &  referencePositionEndIn,
G4RotationMatrix *  referenceRotationStartIn,
G4RotationMatrix *  referenceRotationMiddleIn,
G4RotationMatrix *  referenceRotationEndIn,
G4double  sPositionStartIn,
G4double  sPositionMiddleIn,
G4double  sPositionEndIn,
BDSTiltOffset tiltOffsetIn = nullptr,
BDSSamplerInfo samplerInfoIn = nullptr,
G4int  indexIn = -1 
)

◆ ~BDSBeamlineElement()

BDSBeamlineElement::~BDSBeamlineElement ( )

Definition at line 99 of file BDSBeamlineElement.cc.

Member Function Documentation

◆ AngledInputFace()

G4bool BDSBeamlineElement::AngledInputFace ( ) const
inline

Whether the face normal is angled at all w.r.t. the incoming / outgoing reference trajectory.

Definition at line 147 of file BDSBeamlineElement.hh.

References BDSAcceleratorComponent::AngledInputFace(), and component.

Here is the call graph for this function:

◆ AngledOutputFace()

G4bool BDSBeamlineElement::AngledOutputFace ( ) const
inline

Whether the face normal is angled at all w.r.t. the incoming / outgoing reference trajectory.

Definition at line 148 of file BDSBeamlineElement.hh.

References BDSAcceleratorComponent::AngledOutputFace(), and component.

Here is the call graph for this function:

◆ GetAcceleratorComponent()

BDSAcceleratorComponent * BDSBeamlineElement::GetAcceleratorComponent ( ) const
inline

◆ GetAngle()

G4double BDSBeamlineElement::GetAngle ( ) const
inline

Accessor.

Definition at line 108 of file BDSBeamlineElement.hh.

References component, and BDSAcceleratorComponent::GetAngle().

Referenced by BDSCurvilinearBuilder::Angled(), BDSCurvilinearBuilder::CurvilinearRadius(), and BDSParallelWorldSampler::Place().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetArcLength()

G4double BDSBeamlineElement::GetArcLength ( ) const
inline

Accessor.

Definition at line 106 of file BDSBeamlineElement.hh.

References component, and BDSAcceleratorComponent::GetArcLength().

Referenced by BDSCurvilinearBuilder::CurvilinearRadius(), and BDSCurvilinearBuilder::PreviousAndNext().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetBeamPipeInfo()

BDSBeamPipeInfo * BDSBeamlineElement::GetBeamPipeInfo ( ) const
inline

Accessor.

Definition at line 109 of file BDSBeamlineElement.hh.

References component, and BDSAcceleratorComponent::GetBeamPipeInfo().

Here is the call graph for this function:

◆ GetChordLength()

G4double BDSBeamlineElement::GetChordLength ( ) const
inline

Accessor.

Definition at line 107 of file BDSBeamlineElement.hh.

References component, and BDSAcceleratorComponent::GetChordLength().

Referenced by BDSBeamline::AddSingleComponent(), BDS::BuildEndPieceBeamline(), and BDSParallelWorldSampler::Place().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetCopyNo()

G4int BDSBeamlineElement::GetCopyNo ( ) const
inline

Accessor.

Definition at line 112 of file BDSBeamlineElement.hh.

References copyNumber.

Referenced by BDSLinkDetectorConstruction::PlaceOneComponent().

Here is the caller graph for this function:

◆ GetExtent()

BDSExtent BDSBeamlineElement::GetExtent ( ) const
inline

Accessor.

Definition at line 110 of file BDSBeamlineElement.hh.

References component, and BDSGeometryComponent::GetExtent().

Referenced by BDSParallelWorldSampler::Place().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetExtentGlobal()

BDSExtentGlobal BDSBeamlineElement::GetExtentGlobal ( ) const

Create a global extent object from the extent of the component.

Definition at line 163 of file BDSBeamlineElement.cc.

References component, BDSGeometryComponent::GetExtent(), and GetPlacementTransform().

Referenced by BDSBeamline::UpdateExtents().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetIndex()

G4int BDSBeamlineElement::GetIndex ( ) const
inline

Accessor.

Definition at line 134 of file BDSBeamlineElement.hh.

References index.

Referenced by BDSSamplerPlacementRecord::BeamlineIndex(), BDSCurvilinearBuilder::CreateBonusSectionEnd(), and BDSBeamline::GetIndicesOfElementsOfType().

Here is the caller graph for this function:

◆ GetMaterial()

G4String BDSBeamlineElement::GetMaterial ( ) const
inline

Accessor.

Definition at line 135 of file BDSBeamlineElement.hh.

References component, and BDSAcceleratorComponent::Material().

Here is the call graph for this function:

◆ GetName()

G4String BDSBeamlineElement::GetName ( ) const
inline

Accessor.

Definition at line 104 of file BDSBeamlineElement.hh.

References component, and BDSAcceleratorComponent::GetName().

Referenced by BDSOutputStructures::PrepareCollimatorInformation(), and BDSBeamline::RegisterElement().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetPlacementName()

G4String BDSBeamlineElement::GetPlacementName ( ) const
inline

◆ GetPlacementTransform()

G4Transform3D * BDSBeamlineElement::GetPlacementTransform ( ) const
inline

Accessor.

Definition at line 129 of file BDSBeamlineElement.hh.

References placementTransform.

Referenced by GetExtentGlobal(), Overlaps(), PlaceElement(), and BDSLinkDetectorConstruction::PlaceOneComponent().

Here is the caller graph for this function:

◆ GetPlacementTransformCL()

G4Transform3D * BDSBeamlineElement::GetPlacementTransformCL ( ) const
inline

Accessor.

Definition at line 130 of file BDSBeamlineElement.hh.

References placementTransformCL.

Referenced by PlaceElement().

Here is the caller graph for this function:

◆ GetPositionEnd()

G4ThreeVector BDSBeamlineElement::GetPositionEnd ( ) const
inline

Accessor.

Definition at line 115 of file BDSBeamlineElement.hh.

References positionEnd.

Referenced by BDSBeamline::ProvideEndPieceElementAfter().

Here is the caller graph for this function:

◆ GetPositionMiddle()

G4ThreeVector BDSBeamlineElement::GetPositionMiddle ( ) const
inline

Accessor.

Definition at line 114 of file BDSBeamlineElement.hh.

References positionMiddle.

Referenced by BDSBeamline::GetTransformForElement(), and BDSSurvey::Write().

Here is the caller graph for this function:

◆ GetPositionStart()

G4ThreeVector BDSBeamlineElement::GetPositionStart ( ) const
inline

Accessor.

Definition at line 113 of file BDSBeamlineElement.hh.

References positionStart.

◆ GetPVsFromAssembly()

std::set< G4VPhysicalVolume * > BDSBeamlineElement::GetPVsFromAssembly ( G4AssemblyVolume *  av)
static

Utility method to account for the interface in G4AssemblyVolume.

Definition at line 113 of file BDSBeamlineElement.cc.

Referenced by PlaceElement().

Here is the caller graph for this function:

◆ GetReferencePositionEnd()

G4ThreeVector BDSBeamlineElement::GetReferencePositionEnd ( ) const
inline

◆ GetReferencePositionMiddle()

G4ThreeVector BDSBeamlineElement::GetReferencePositionMiddle ( ) const
inline

Accessor.

Definition at line 120 of file BDSBeamlineElement.hh.

References referencePositionMiddle.

Referenced by BDSCurvilinearBuilder::CreateElementFromComponent().

Here is the caller graph for this function:

◆ GetReferencePositionStart()

G4ThreeVector BDSBeamlineElement::GetReferencePositionStart ( ) const
inline

Accessor.

Definition at line 119 of file BDSBeamlineElement.hh.

References referencePositionStart.

Referenced by BDSBeamline::AddComponent(), BDSCurvilinearBuilder::CreateBonusSectionStart(), and BDSCurvilinearBuilder::CreateElementFromComponent().

Here is the caller graph for this function:

◆ GetReferenceRotationEnd()

G4RotationMatrix * BDSBeamlineElement::GetReferenceRotationEnd ( ) const
inline

◆ GetReferenceRotationMiddle()

G4RotationMatrix * BDSBeamlineElement::GetReferenceRotationMiddle ( ) const
inline

Accessor.

Definition at line 123 of file BDSBeamlineElement.hh.

References referenceRotationMiddle.

Referenced by BDSCurvilinearBuilder::CreateElementFromComponent().

Here is the caller graph for this function:

◆ GetReferenceRotationStart()

G4RotationMatrix * BDSBeamlineElement::GetReferenceRotationStart ( ) const
inline

Accessor.

Definition at line 122 of file BDSBeamlineElement.hh.

References referenceRotationStart.

Referenced by BDSBeamline::AddComponent(), BDSCurvilinearBuilder::CreateBonusSectionStart(), and BDSCurvilinearBuilder::CreateElementFromComponent().

Here is the caller graph for this function:

◆ GetRotationEnd()

G4RotationMatrix * BDSBeamlineElement::GetRotationEnd ( ) const
inline

Accessor.

Definition at line 118 of file BDSBeamlineElement.hh.

References rotationEnd.

Referenced by BDSCurvilinearBuilder::CreateElementFromComponent().

Here is the caller graph for this function:

◆ GetRotationMiddle()

G4RotationMatrix * BDSBeamlineElement::GetRotationMiddle ( ) const
inline

Accessor.

Definition at line 117 of file BDSBeamlineElement.hh.

References rotationMiddle.

Referenced by BDSCurvilinearBuilder::CreateElementFromComponent(), BDSBeamline::GetTransformForElement(), BDSBeamline::ProvideEndPieceElementAfter(), and BDSSurvey::Write().

Here is the caller graph for this function:

◆ GetRotationStart()

G4RotationMatrix * BDSBeamlineElement::GetRotationStart ( ) const
inline

Accessor.

Definition at line 116 of file BDSBeamlineElement.hh.

References rotationStart.

Referenced by BDSCurvilinearBuilder::CreateElementFromComponent().

Here is the caller graph for this function:

◆ GetSamplerInfo()

BDSSamplerInfo * BDSBeamlineElement::GetSamplerInfo ( ) const
inline

Accessor.

Definition at line 131 of file BDSBeamlineElement.hh.

Referenced by BDSBeamline::AddComponent(), and BDSParallelWorldSampler::Place().

Here is the caller graph for this function:

◆ GetSamplerPlacementTransform()

G4Transform3D * BDSBeamlineElement::GetSamplerPlacementTransform ( ) const
inline

Accessor.

Definition at line 133 of file BDSBeamlineElement.hh.

References samplerPlacementTransform.

Referenced by BDSParallelWorldSampler::Place().

Here is the caller graph for this function:

◆ GetSamplerType()

BDSSamplerType BDSBeamlineElement::GetSamplerType ( ) const
inline

Accessor.

Definition at line 132 of file BDSBeamlineElement.hh.

Referenced by BDSBeamlineElement(), and BDSLinkDetectorConstruction::PlaceOneComponent().

Here is the caller graph for this function:

◆ GetSPositionEnd()

G4double BDSBeamlineElement::GetSPositionEnd ( ) const
inline

◆ GetSPositionMiddle()

G4double BDSBeamlineElement::GetSPositionMiddle ( ) const
inline

Accessor.

Definition at line 126 of file BDSBeamlineElement.hh.

References sPositionMiddle.

Referenced by BDSCurvilinearBuilder::CreateElementFromComponent(), BDSDetectorConstruction::CreatePlacementTransform(), and BDSSurvey::Write().

Here is the caller graph for this function:

◆ GetSPositionStart()

G4double BDSBeamlineElement::GetSPositionStart ( ) const
inline

◆ GetTilt()

G4double BDSBeamlineElement::GetTilt ( ) const
inline

Convenience accessor.

Definition at line 152 of file BDSBeamlineElement.hh.

References BDSTiltOffset::GetTilt(), and tiltOffset.

Referenced by BDS::BuildEndPieceBeamline().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetTiltOffset()

BDSTiltOffset * BDSBeamlineElement::GetTiltOffset ( ) const
inline

Accessor.

Definition at line 128 of file BDSBeamlineElement.hh.

References tiltOffset.

Referenced by BDSCurvilinearBuilder::CreateBridgeElementFromComponent(), and BDSBeamline::ProvideEndPieceElementAfter().

Here is the caller graph for this function:

◆ GetType()

G4String BDSBeamlineElement::GetType ( ) const
inline

Accessor.

Definition at line 105 of file BDSBeamlineElement.hh.

References component, and BDSAcceleratorComponent::GetType().

Referenced by BDSBeamline::AddSingleComponent(), BDS::BuildEndPieceBeamline(), and BDSBeamline::GetIndicesOfElementsOfType().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ InputFaceNormal()

G4ThreeVector BDSBeamlineElement::InputFaceNormal ( ) const

Return face normal accounting for placement tilt of this component.

Definition at line 170 of file BDSBeamlineElement.cc.

References component, BDSTiltOffset::GetTilt(), BDSAcceleratorComponent::InputFaceNormal(), and tiltOffset.

Here is the call graph for this function:

◆ OutputFaceNormal()

G4ThreeVector BDSBeamlineElement::OutputFaceNormal ( ) const

Return face normal accounting for placement tilt of this component.

Definition at line 182 of file BDSBeamlineElement.cc.

References component, BDSTiltOffset::GetTilt(), BDSAcceleratorComponent::OutputFaceNormal(), and tiltOffset.

Here is the call graph for this function:

◆ Overlaps()

G4bool BDSBeamlineElement::Overlaps ( const BDSBeamlineElement otherElement) const

Whether this beam line element will overlaps in 3D Cartesian coordinates with another.

Definition at line 213 of file BDSBeamlineElement.cc.

References component, GetAcceleratorComponent(), BDSGeometryComponent::GetExtent(), and GetPlacementTransform().

Here is the call graph for this function:

◆ PlaceElement()

std::set< G4VPhysicalVolume * > BDSBeamlineElement::PlaceElement ( const G4String &  pvName,
G4VPhysicalVolume *  containerPV,
G4bool  useCLPlacementTransform,
G4int  copyNumber,
G4bool  checkOverlaps 
) const

Make a placement of the element with the desired name and copy number. In the case of an assembly, a set of pvs is returned.

Definition at line 124 of file BDSBeamlineElement.cc.

References component, BDSGeometryComponent::ContainerIsAssembly(), BDSGeometryComponent::GetContainerAssemblyVolume(), BDSGeometryComponent::GetContainerLogicalVolume(), GetPlacementTransform(), GetPlacementTransformCL(), and GetPVsFromAssembly().

Referenced by BDSLinkDetectorConstruction::PlaceOneComponent().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ UpdateSamplerPlacementTransform()

void BDSBeamlineElement::UpdateSamplerPlacementTransform ( const G4Transform3D &  tranfsormIn)

Delete the previous sampler placement transform owned by this object and create a new one based on this input object.

Definition at line 194 of file BDSBeamlineElement.cc.

References samplerPlacementTransform.

Referenced by BDSBeamline::AddComponent().

Here is the caller graph for this function:

Friends And Related Function Documentation

◆ operator<<

std::ostream & operator<< ( std::ostream &  out,
BDSBeamlineElement const &  element 
)
friend

Output stream.

Definition at line 200 of file BDSBeamlineElement.cc.

Field Documentation

◆ component

BDSAcceleratorComponent* BDSBeamlineElement::component
private

◆ copyNumber

G4int BDSBeamlineElement::copyNumber
private

identification number of AcceleratorComponent (0 for first volume of given type)

Definition at line 180 of file BDSBeamlineElement.hh.

Referenced by BDSBeamlineElement(), and GetCopyNo().

◆ index

G4int BDSBeamlineElement::index
private

Index of this item in the beamline - saves keeping track of iterators and conversion.

Definition at line 238 of file BDSBeamlineElement.hh.

Referenced by GetIndex().

◆ placementName

G4String BDSBeamlineElement::placementName
private

A unique name for placement with "_pv" suffix created for each element when added to the beamline which is made by interrogating how many times the BDSAcceleratorComponent has been placed (increments the accelerator component placement counter).

Definition at line 177 of file BDSBeamlineElement.hh.

Referenced by BDSBeamlineElement(), and GetPlacementName().

◆ placementTransform

G4Transform3D* BDSBeamlineElement::placementTransform
private

Transform made from positionMiddle and rotationMiddle. By using them as a transform, the rotation matrix is the correct way around (inversion).

Definition at line 219 of file BDSBeamlineElement.hh.

Referenced by BDSBeamlineElement(), and GetPlacementTransform().

◆ placementTransformCL

G4Transform3D* BDSBeamlineElement::placementTransformCL
private

Transform made from the referencePositionMiddle and referenceRottationMiddle. The read out (curvilinear) geometry should always align with the reference trajectory and not the possibly offset position of the mass geometry, hence have a separate transform for it.

Definition at line 225 of file BDSBeamlineElement.hh.

Referenced by BDSBeamlineElement(), and GetPlacementTransformCL().

◆ positionEnd

G4ThreeVector BDSBeamlineElement::positionEnd
private

Global coordinates for the start, middle and end of this beamline element.

Definition at line 185 of file BDSBeamlineElement.hh.

Referenced by GetPositionEnd().

◆ positionMiddle

G4ThreeVector BDSBeamlineElement::positionMiddle
private

Global coordinates for the start, middle and end of this beamline element.

Definition at line 184 of file BDSBeamlineElement.hh.

Referenced by BDSBeamlineElement(), and GetPositionMiddle().

◆ positionStart

G4ThreeVector BDSBeamlineElement::positionStart
private

Global coordinates for the start, middle and end of this beamline element.

Definition at line 183 of file BDSBeamlineElement.hh.

Referenced by GetPositionStart().

◆ referencePositionEnd

G4ThreeVector BDSBeamlineElement::referencePositionEnd
private

Global coordinates for the start, middle and end of this beamline element along the reference trajectory without any component offsets / displacements

Definition at line 198 of file BDSBeamlineElement.hh.

Referenced by BDSBeamlineElement(), and GetReferencePositionEnd().

◆ referencePositionMiddle

G4ThreeVector BDSBeamlineElement::referencePositionMiddle
private

Global coordinates for the start, middle and end of this beamline element along the reference trajectory without any component offsets / displacements

Definition at line 197 of file BDSBeamlineElement.hh.

Referenced by BDSBeamlineElement(), and GetReferencePositionMiddle().

◆ referencePositionStart

G4ThreeVector BDSBeamlineElement::referencePositionStart
private

Global coordinates for the start, middle and end of this beamline element along the reference trajectory without any component offsets / displacements

Definition at line 196 of file BDSBeamlineElement.hh.

Referenced by GetReferencePositionStart().

◆ referenceRotationEnd

G4RotationMatrix* BDSBeamlineElement::referenceRotationEnd
private

Global rotation matrices for the start, middle and end of this beamline element along the reference trajectory without any tilt or rotation from the component

Definition at line 205 of file BDSBeamlineElement.hh.

Referenced by BDSBeamlineElement(), and GetReferenceRotationEnd().

◆ referenceRotationMiddle

G4RotationMatrix* BDSBeamlineElement::referenceRotationMiddle
private

Global rotation matrices for the start, middle and end of this beamline element along the reference trajectory without any tilt or rotation from the component

Definition at line 204 of file BDSBeamlineElement.hh.

Referenced by BDSBeamlineElement(), and GetReferenceRotationMiddle().

◆ referenceRotationStart

G4RotationMatrix* BDSBeamlineElement::referenceRotationStart
private

Global rotation matrices for the start, middle and end of this beamline element along the reference trajectory without any tilt or rotation from the component

Definition at line 203 of file BDSBeamlineElement.hh.

Referenced by GetReferenceRotationStart().

◆ rotationEnd

G4RotationMatrix* BDSBeamlineElement::rotationEnd
private

Global rotation matrices for the start, middle and end of this beamline element.

Definition at line 191 of file BDSBeamlineElement.hh.

Referenced by GetRotationEnd().

◆ rotationMiddle

G4RotationMatrix* BDSBeamlineElement::rotationMiddle
private

Global rotation matrices for the start, middle and end of this beamline element.

Definition at line 190 of file BDSBeamlineElement.hh.

Referenced by BDSBeamlineElement(), and GetRotationMiddle().

◆ rotationStart

G4RotationMatrix* BDSBeamlineElement::rotationStart
private

Global rotation matrices for the start, middle and end of this beamline element.

Definition at line 189 of file BDSBeamlineElement.hh.

Referenced by GetRotationStart().

◆ samplerInfo

BDSSamplerInfo* BDSBeamlineElement::samplerInfo
private

Definition at line 227 of file BDSBeamlineElement.hh.

◆ samplerPlacementTransform

G4Transform3D* BDSBeamlineElement::samplerPlacementTransform
private

The transform for where the sampler 'attached' to this element should be placed. Note this would normally overlap in the real 'mass' world, but this will be used in the sampler parallel world, so a transform to coordinates that lie within the accelerator component are valid. This transform places the sampler just at the end of the element overlapping with the outgoing boundary as defined by the reference position at the end and the reference rotation at the end.

Definition at line 235 of file BDSBeamlineElement.hh.

Referenced by BDSBeamlineElement(), GetSamplerPlacementTransform(), and UpdateSamplerPlacementTransform().

◆ sPositionEnd

G4double BDSBeamlineElement::sPositionEnd
private

S Positions for the start, middle and end of this beamline element.

Definition at line 211 of file BDSBeamlineElement.hh.

Referenced by GetSPositionEnd().

◆ sPositionMiddle

G4double BDSBeamlineElement::sPositionMiddle
private

S Positions for the start, middle and end of this beamline element.

Definition at line 210 of file BDSBeamlineElement.hh.

Referenced by GetSPositionMiddle().

◆ sPositionStart

G4double BDSBeamlineElement::sPositionStart
private

S Positions for the start, middle and end of this beamline element.

Definition at line 209 of file BDSBeamlineElement.hh.

Referenced by GetSPositionStart().

◆ tiltOffset

BDSTiltOffset* BDSBeamlineElement::tiltOffset
private

The tilt and offset this element was constructed with. Default is nullptr.

Definition at line 215 of file BDSBeamlineElement.hh.

Referenced by GetTilt(), GetTiltOffset(), InputFaceNormal(), and OutputFaceNormal().


The documentation for this class was generated from the following files: