|
BDSIM
BDSIM is a Geant4 extension toolkit for simulation of particle transport in accelerator beamlines.
|
A class for a beam mask collimator. More...
#include <BDSCollimatorBeamMask.hh>


Public Member Functions | |
| BDSCollimatorBeamMask (const G4String &name, G4double length, BDSBeamPipeInfo *beamPipeInfoIn, G4double horizontalWidth, G4Material *collimatorMaterial, G4Material *vacuumMaterial, G4double xApertureIn=0, G4double yApertureIn=0, G4double xApertureSlitIn=0, G4double yApertureSlitIn=0, G4double xOffsetIn=0, G4double yOffsetIn=0, G4double xOffsetSlitIn=0, G4double yOffsetSlitIn=0, G4double tiltSlitIn=0, G4Colour *colourIn=nullptr, G4bool circularOuterIn=false) | |
| virtual void | SetMinimumKineticEnergy (G4double minimumKineticEnergyIn) |
| virtual G4String | Material () const |
| Accessor. | |
| virtual G4double | XAperture () const |
| Accessor. | |
| virtual G4double | XApertureSlit () const |
| Accessor. | |
| virtual G4double | YAperture () const |
| Accessor. | |
| virtual G4double | YApertureSlit () const |
| Accessor. | |
Public Member Functions inherited from BDSAcceleratorComponent | |
| BDSAcceleratorComponent (const G4String &name, G4double arcLength, G4double angle, const G4String &type, BDSBeamPipeInfo *beamPipeInfo=nullptr, const G4ThreeVector &inputFaceNormalIn=G4ThreeVector(0, 0,-1), const G4ThreeVector &outputFaceNormalIn=G4ThreeVector(0, 0, 1), BDSFieldInfo *fieldInfoIn=nullptr) | |
| virtual void | Initialise () |
| virtual void | SetRegion (const G4String ®ionIn) |
| Set the region name for this component. | |
| void | SetField (BDSFieldInfo *fieldInfoIn) |
| Set the field definition for the whole component. | |
| virtual G4String | GetName () const |
| The name of the component without modification. | |
| G4double | GetAngle () const |
| G4double | Sagitta () const |
| Calculate the sagitta - ie the distance between the chord and the arc at the centre. | |
| G4String | GetType () const |
| Get a string describing the type of the component. | |
| G4String | GetRegion () const |
| Get the region name for this component. | |
| virtual G4bool | HasAField () const |
| Whether this component has a field or not (ie is active). Implicit cast of pointer to bool. | |
| virtual void | SetFieldUsePlacementWorldTransform () |
| BDSBeamPipeInfo * | GetBeamPipeInfo () const |
| virtual std::set< G4LogicalVolume * > | GetAcceleratorVacuumLogicalVolumes () const |
| Access the 'vacuum' volume(s) in this component if any. Default is empty set. | |
| virtual std::set< G4LogicalVolume * > | GetAcceleratorMaterialLogicalVolumes () const |
| Return a set of logical volumes excluding the ones in the 'vacuum' set. | |
| void | IncrementCopyNumber () |
| Increment (+1) the number of times this component has been copied. | |
| G4int | GetCopyNumber () const |
| Get the number of times this component has been copied. | |
| BDSSimpleComponent * | EndPieceBefore () const |
| BDSSimpleComponent * | EndPieceAfter () const |
| virtual void | SetBiasVacuumList (const std::list< std::string > &biasVacuumListIn) |
| Copy the bias list to this element. | |
| virtual void | SetBiasMaterialList (const std::list< std::string > &biasMaterialListIn) |
| Copy the bias list to this element. | |
| virtual void | SetBiasMaterialLVList (const std::list< std::string > &biasMaterialLVListIn) |
| Copy the bias list to this element. | |
| virtual G4double | GetArcLength () const |
| virtual G4double | GetChordLength () const |
| G4ThreeVector | InputFaceNormal () const |
| G4ThreeVector | OutputFaceNormal () const |
| G4bool | AngledInputFace () const |
| Whether the face normal is angled at all w.r.t. the incoming / outgoing reference trajectory. | |
| G4bool | AngledOutputFace () const |
| Whether the face normal is angled at all w.r.t. the incoming / outgoing reference trajectory. | |
| std::list< std::string > | GetBiasVacuumList () const |
| Access the bias list copied from parser. | |
| std::list< std::string > | GetBiasMaterialList () const |
| Access the bias list copied from parser. | |
| std::list< std::string > | GetBiasMaterialLVList () const |
| Access the bias list copied from parser. | |
| virtual void | SetInputFaceNormal (const G4ThreeVector &input) |
| Allow updating of face normals. Virtual so derived class may apply it to daughters. | |
| virtual void | SetOutputFaceNormal (const G4ThreeVector &output) |
| Allow updating of face normals. Virtual so derived class may apply it to daughters. | |
Public Member Functions inherited from BDSGeometryComponent | |
| BDSGeometryComponent (G4VSolid *containerSolidIn, G4LogicalVolume *containerLVIn, const BDSExtent &extentIn=BDSExtent(), const BDSExtent &innerExtentIn=BDSExtent(), const G4ThreeVector &placementOffsetIn=G4ThreeVector(0, 0, 0), G4RotationMatrix *placementRotationIn=nullptr) | |
| BDSGeometryComponent (G4AssemblyVolume *containerAssemblyIn, const BDSExtent &extentIn=BDSExtent(), const BDSExtent &innerExtentIn=BDSExtent(), const G4ThreeVector &placementOffsetIn=G4ThreeVector(0, 0, 0), G4RotationMatrix *placementRotationIn=nullptr) | |
| BDSGeometryComponent (const BDSGeometryComponent &component) | |
| Copy constructor (no copying of registered objects) | |
| BDSGeometryComponent & | operator= (const BDSGeometryComponent &)=delete |
| Assignment operator not used. | |
| G4bool | ContainerIsAssembly () const |
| Whether the container is an assembly. If not, it's a logical volume. | |
| void | SetPlacementOffset (const G4ThreeVector &offsetIn) |
| Set the offset from 0,0,0 that the object should ideally be placed in its parent. | |
| G4ThreeVector | GetExtentPositive () const |
| Get the extent of the object in the positive direction in all dimensions. | |
| G4ThreeVector | GetExtentNegative () const |
| Get the extent of the object in the negative direction in all dimensions. | |
| void | InheritExtents (BDSGeometryComponent const *const anotherComponent) |
| Update the extents of this object with those of another object. | |
| void | InheritExtents (BDSGeometryComponent const *const anotherComponent, const G4ThreeVector &offset) |
| void | RegisterDaughter (BDSGeometryComponent *anotherComponent) |
| void | RegisterSolid (G4VSolid *solid) |
| void | RegisterSolid (const std::set< G4VSolid * > &solids) |
| Similarly for a set of unique solids. | |
| void | RegisterLogicalVolume (G4LogicalVolume *logicalVolume) |
| void | RegisterLogicalVolume (const std::set< G4LogicalVolume * > &localVolumes) |
| Apply RegisterLogicalVolume() to a set of logical volumes. | |
| void | RegisterSensitiveVolume (G4LogicalVolume *sensitiveVolume, BDSSDType sensitivityType) |
| void | RegisterSensitiveVolume (const std::set< G4LogicalVolume * > &sensitiveVolumes, BDSSDType sensitivityType) |
| void | RegisterSensitiveVolume (const std::map< G4LogicalVolume *, BDSSDType > &sensitiveVolumes) |
| Copy in a mapping of sensitive volumes to sensitive detectors. | |
| void | RegisterPhysicalVolume (G4VPhysicalVolume *physicalVolume) |
| void | RegisterPhysicalVolume (const std::set< G4VPhysicalVolume * > &physicalVolumes) |
| Apply RegisterPhysicalVolume() to a set of physical volumes. | |
| void | RegisterRotationMatrix (G4RotationMatrix *rotationMatrix) |
| void | RegisterRotationMatrix (const std::set< G4RotationMatrix * > &rotationMatrices) |
| Apply Register RotationMatrix() to a set of rotation matrices. | |
| void | RegisterVisAttributes (G4VisAttributes *visAttribute) |
| void | RegisterVisAttributes (const std::set< G4VisAttributes * > &visAttributes) |
| Apply RegisterVisAttribute() to a set of visualisation attributes. | |
| void | RegisterUserLimits (G4UserLimits *userLimit) |
| void | RegisterUserLimits (const std::set< G4UserLimits * > &userLimits) |
| Apply RegisterUserLimit to a set of user limits. | |
| void | InheritObjects (BDSGeometryComponent *component) |
| virtual std::set< G4LogicalVolume * > | GetAllLogicalVolumes () const |
| Access all logical volumes belonging to this component. | |
| virtual std::set< G4LogicalVolume * > | GetAllBiasingVolumes () const |
| Return all logical volumes that should be used for biasing minus any that are in the excluded set. | |
| virtual std::map< G4LogicalVolume *, BDSSDType > | GetAllSensitiveVolumes () const |
| Access all sensitive volumes belonging to this component. | |
| void | MakeAllVolumesSensitive (BDSSDType stype=BDSSDType::energydep) |
| virtual void | AttachSensitiveDetectors () |
| Attach a sensitive detector class to all registered sensitive volumes in this component. | |
| virtual void | ExcludeLogicalVolumeFromBiasing (G4LogicalVolume *lv) |
| void | StripOuterAndMakeAssemblyVolume () |
| Change from a container logical volume to an assembly volume. | |
| G4VSolid * | GetContainerSolid () const |
| Accessor - see member for more info. | |
| G4LogicalVolume * | GetContainerLogicalVolume () const |
| Accessor - see member for more info. | |
| G4AssemblyVolume * | GetContainerAssemblyVolume () const |
| Accessor - see member for more info. | |
| G4Transform3D | GetPlacementTransform () const |
| Accessor - see member for more info. | |
| G4ThreeVector | GetPlacementOffset () const |
| Accessor - see member for more info. | |
| G4RotationMatrix * | GetPlacementRotation () const |
| Accessor - see member for more info. | |
| BDSExtent | GetExtent () const |
| Accessor - see member for more info. | |
| BDSExtent | GetInnerExtent () const |
| Accessor - see member for more info. | |
| std::pair< G4double, G4double > | GetExtentX () const |
| Accessor - see member for more info. | |
| std::pair< G4double, G4double > | GetExtentY () const |
| Accessor - see member for more info. | |
| std::pair< G4double, G4double > | GetExtentZ () const |
| Accessor - see member for more info. | |
| std::pair< G4double, G4double > | GetInnerExtentX () const |
| Accessor - see member for more info. | |
| std::pair< G4double, G4double > | GetInnerExtentY () const |
| Accessor - see member for more info. | |
| std::pair< G4double, G4double > | GetInnerExtentZ () const |
| Accessor - see member for more info. | |
| virtual std::set< G4VPhysicalVolume * > | GetAllPhysicalVolumes () const |
| Accessor - see member for more info. | |
| virtual std::set< G4RotationMatrix * > | GetAllRotationMatrices () const |
| Accessor - see member for more info. | |
| virtual std::set< G4VisAttributes * > | GetAllVisAttributes () const |
| Accessor - see member for more info. | |
| virtual std::set< G4UserLimits * > | GetAllUserLimits () const |
| Accessor - see member for more info. | |
| virtual std::set< BDSGeometryComponent * > | GetAllDaughters () const |
| Accessor - see member for more info. | |
| virtual std::set< G4VSolid * > | GetAllSolids () const |
| Accessor - see member for more info. | |
| void | SetExtent (const BDSExtent &extIn) |
| Set extent. | |
| void | SetInnerExtent (const BDSExtent &extIn) |
| Set extent. | |
Protected Member Functions | |
| virtual void | CheckParameters () |
| virtual void | BuildContainerLogicalVolume () |
| virtual void | BuildInner () |
| virtual void | Build () |
| G4UserLimits * | CollimatorUserLimits () |
| Return either default user limits or custom ones based on optional minimumKineticEnergy. | |
Protected Member Functions inherited from BDSAcceleratorComponent | |
| void | SetAcceleratorVacuumLogicalVolume (G4LogicalVolume *accVacLVIn) |
| void | SetAcceleratorVacuumLogicalVolume (const std::set< G4LogicalVolume * > &accVacLVIn) |
| virtual void | BuildUserLimits () |
| virtual void | AttachUserLimits () const |
| Doesn't change member variables, but may change their contents. | |
Protected Attributes | |
| G4double | horizontalWidth |
| Horizontal width. | |
| G4Material * | collimatorMaterial |
| Material. | |
| G4Material * | vacuumMaterial |
| Vacuum material. | |
| G4double | xAperture |
| Aperture of main slit in x dimension. | |
| G4double | yAperture |
| Aperture of main slit in y dimension. | |
| G4double | xApertureSlit |
| Aperture of side slit in x dimension. | |
| G4double | yApertureSlit |
| Aperture of side slit in y dimension. | |
| G4double | xOffset |
| Offset of the mask in the pipe in x. | |
| G4double | yOffset |
| Offset of the mask in the pipe in y. | |
| G4double | xOffsetSlit |
| Offset of the side slit wrt the main slit in x. | |
| G4double | yOffsetSlit |
| Offset of the side slit wrt the main slit in y. | |
| G4double | tiltSlit |
| Angle of the side slit. | |
| G4Colour * | colour |
| Colour of beam mask. | |
| G4double | minKineticEnergy |
| Optional minimum kinetic energy for collimator materials. | |
| G4bool | circularOuter |
| Shape of the outer solid. | |
| G4VSolid * | collimatorSolid |
| Geometrical objects: | |
| G4VSolid * | innerSolid |
| Geometrical objects: | |
| G4VSolid * | vacuumSolid |
| Geometrical objects: | |
Protected Attributes inherited from BDSAcceleratorComponent | |
| BDSBeamPipeInfo * | beamPipeInfo |
| Optional beam pipe recipe that is written out to the survey if it exists. | |
| std::set< G4LogicalVolume * > | acceleratorVacuumLV |
| A set of logical volumes we classify as 'vacuum' for biasing purposes. | |
| BDSSimpleComponent * | endPieceBefore |
| BDSSimpleComponent * | endPieceAfter |
| G4UserLimits * | userLimits |
| Cache of user limits. | |
| BDSFieldInfo * | fieldInfo |
| Recipe for field that could overlay this whole component. | |
| const G4String | name |
| Const protected member variable that may not be changed by derived classes. | |
| const G4double | arcLength |
| Const protected member variable that may not be changed by derived classes. | |
| const G4String | type |
| Const protected member variable that may not be changed by derived classes. | |
| G4double | chordLength |
| Protected member variable that can be modified by derived classes. | |
| G4double | angle |
| Protected member variable that can be modified by derived classes. | |
| G4String | region |
| Protected member variable that can be modified by derived classes. | |
Protected Attributes inherited from BDSGeometryComponent | |
| G4bool | containerIsAssembly |
| True if the 'container' is really an assembly; false if an LV. | |
| G4VSolid * | containerSolid |
| G4LogicalVolume * | containerLogicalVolume |
| G4AssemblyVolume * | containerAssembly |
| BDSExtent | outerExtent |
| BDSExtent | innerExtent |
| std::set< BDSGeometryComponent * > | allDaughters |
| registry of all daughter geometry components | |
| std::set< G4VSolid * > | allSolids |
| registry of all solids belonging to this component | |
| std::set< G4LogicalVolume * > | allLogicalVolumes |
| std::map< G4LogicalVolume *, BDSSDType > | sensitivity |
| G4bool | overrideSensitivity |
| std::set< G4VPhysicalVolume * > | allPhysicalVolumes |
| registry of all physical volumes belonging to this component | |
| std::set< G4RotationMatrix * > | allRotationMatrices |
| registry of all rotation matrices belonging to this component | |
| std::set< G4VisAttributes * > | allVisAttributes |
| registry of all visualisation attributes belonging to this component | |
| std::set< G4UserLimits * > | allUserLimits |
| registry of all user limits belonging to this component | |
| G4ThreeVector | placementOffset |
| G4RotationMatrix * | placementRotation |
| std::set< G4LogicalVolume * > * | lvsExcludedFromBiasing |
| Volumes that should not be included when return GetAllBiasingVolumes(). | |
Private Member Functions | |
| BDSCollimatorBeamMask () | |
| Private default constructor to force the use of the supplied one. | |
| BDSCollimatorBeamMask & | operator= (const BDSCollimatorBeamMask &)=delete |
| Assignment and copy constructor not implemented nor used. | |
| BDSCollimatorBeamMask (BDSCollimatorBeamMask &)=delete | |
| Assignment and copy constructor not implemented nor used. | |
Additional Inherited Members | |
Static Public Member Functions inherited from BDSGeometryComponent | |
| static void | AttachUserLimitsToAssembly (G4AssemblyVolume *av, G4UserLimits *ul) |
| Utility function to apply user limits to an assembly volume as there's not interface. | |
Static Public Attributes inherited from BDSAcceleratorComponent | |
| static G4double | lengthSafetyLarge = 0 |
Static Protected Attributes inherited from BDSAcceleratorComponent | |
| static G4double | lengthSafety = -1 |
| Useful variable often used in construction. | |
| static G4Material * | emptyMaterial = nullptr |
| Useful variable often used in construction. | |
| static G4Material * | worldMaterial = nullptr |
| Useful variable often used in construction. | |
| static G4bool | checkOverlaps = false |
| Useful variable often used in construction. | |
| static G4bool | sensitiveOuter = true |
| Useful variable often used in construction. | |
| static G4bool | sensitiveVacuum = false |
| Useful variable often used in construction. | |
| static G4VisAttributes * | containerVisAttr = nullptr |
| Useful variable often used in construction. | |
A class for a beam mask collimator.
Definition at line 35 of file BDSCollimatorBeamMask.hh.
| BDSCollimatorBeamMask::BDSCollimatorBeamMask | ( | const G4String & | name, |
| G4double | length, | ||
| BDSBeamPipeInfo * | beamPipeInfoIn, | ||
| G4double | horizontalWidth, | ||
| G4Material * | collimatorMaterial, | ||
| G4Material * | vacuumMaterial, | ||
| G4double | xApertureIn = 0, |
||
| G4double | yApertureIn = 0, |
||
| G4double | xApertureSlitIn = 0, |
||
| G4double | yApertureSlitIn = 0, |
||
| G4double | xOffsetIn = 0, |
||
| G4double | yOffsetIn = 0, |
||
| G4double | xOffsetSlitIn = 0, |
||
| G4double | yOffsetSlitIn = 0, |
||
| G4double | tiltSlitIn = 0, |
||
| G4Colour * | colourIn = nullptr, |
||
| G4bool | circularOuterIn = false |
||
| ) |
Definition at line 44 of file BDSCollimatorBeamMask.cc.
|
inlinevirtual |
Definition at line 55 of file BDSCollimatorBeamMask.hh.
|
protectedvirtual |
This calls BuildContainerLogicalVolume() and then sets the visual attributes of the container logical volume. This should be overridden by derived class to add more geometry apart from the container volume. The overridden Build() function can however, call make use of this function to call BuildContainerLogicalVolume() by calling BDSAcceleratorComponent::Build() at the beginning.
Reimplemented from BDSAcceleratorComponent.
Definition at line 181 of file BDSCollimatorBeamMask.cc.
References BDSAcceleratorComponent::Build(), BDSAcceleratorComponent::checkOverlaps, CheckParameters(), BDSAcceleratorComponent::chordLength, circularOuter, collimatorMaterial, collimatorSolid, CollimatorUserLimits(), colour, BDSAcceleratorComponent::containerVisAttr, horizontalWidth, innerSolid, BDS::IsFinite(), BDSAcceleratorComponent::lengthSafety, BDSAcceleratorComponent::name, BDSGeometryComponent::RegisterLogicalVolume(), BDSGeometryComponent::RegisterPhysicalVolume(), BDSGeometryComponent::RegisterSensitiveVolume(), BDSGeometryComponent::RegisterSolid(), BDSGeometryComponent::RegisterVisAttributes(), BDSAcceleratorComponent::sensitiveOuter, BDSAcceleratorComponent::sensitiveVacuum, BDSAcceleratorComponent::SetAcceleratorVacuumLogicalVolume(), BDSAcceleratorComponent::userLimits, vacuumMaterial, vacuumSolid, xAperture, xOffset, yAperture, and yOffset.

|
protectedvirtual |
Build the container solid and logical volume that all parts of the component will contained within - must be provided by derived class.
Implements BDSAcceleratorComponent.
Definition at line 122 of file BDSCollimatorBeamMask.cc.
References BDSAcceleratorComponent::beamPipeInfo, BDSAcceleratorComponent::chordLength, BDSGeometryComponent::GetContainerLogicalVolume(), BDSGeometryComponent::GetContainerSolid(), BDSBeamPipe::GetVacuumLogicalVolume(), BDSGeometryComponent::InheritExtents(), BDSBeamPipe::InputFaceNormal(), BDSBeamPipeFactory::Instance(), BDSAcceleratorComponent::name, BDSBeamPipe::OutputFaceNormal(), BDSGeometryComponent::RegisterDaughter(), BDSAcceleratorComponent::SetAcceleratorVacuumLogicalVolume(), BDSAcceleratorComponent::SetInputFaceNormal(), and BDSAcceleratorComponent::SetOutputFaceNormal().

|
protectedvirtual |
Definition at line 145 of file BDSCollimatorBeamMask.cc.
|
protectedvirtual |
Check and update parameters before construction. Called at the start of Build() as we can't call a virtual function in a constructor.
Definition at line 82 of file BDSCollimatorBeamMask.cc.
References colour, BDSColours::GetColour(), horizontalWidth, BDSColours::Instance(), BDS::IsFinite(), BDSAcceleratorComponent::name, xAperture, xApertureSlit, yAperture, and yApertureSlit.
Referenced by Build().


|
protected |
Return either default user limits or custom ones based on optional minimumKineticEnergy.
Definition at line 277 of file BDSCollimatorBeamMask.cc.
References BDS::IsFinite(), minKineticEnergy, BDSGeometryComponent::RegisterUserLimits(), and BDSAcceleratorComponent::userLimits.
Referenced by Build().


|
virtual |
Accessor.
Reimplemented from BDSAcceleratorComponent.
Definition at line 114 of file BDSCollimatorBeamMask.cc.
References collimatorMaterial.
|
inlinevirtual |
Set a minimum kinetic energy for a component by component level cut. By default does nothing - only certain components implement a response or user limits to this.
Reimplemented from BDSAcceleratorComponent.
Definition at line 65 of file BDSCollimatorBeamMask.hh.
References minKineticEnergy.
|
inlinevirtual |
|
inlinevirtual |
|
inlinevirtual |
|
inlinevirtual |
|
protected |
Shape of the outer solid.
Definition at line 99 of file BDSCollimatorBeamMask.hh.
Referenced by Build().
|
protected |
Material.
Definition at line 86 of file BDSCollimatorBeamMask.hh.
Referenced by Build(), and Material().
|
protected |
|
protected |
Colour of beam mask.
Definition at line 97 of file BDSCollimatorBeamMask.hh.
Referenced by Build(), and CheckParameters().
|
protected |
Horizontal width.
Definition at line 85 of file BDSCollimatorBeamMask.hh.
Referenced by Build(), and CheckParameters().
|
protected |
|
protected |
Optional minimum kinetic energy for collimator materials.
Definition at line 98 of file BDSCollimatorBeamMask.hh.
Referenced by CollimatorUserLimits(), and SetMinimumKineticEnergy().
|
protected |
Angle of the side slit.
Definition at line 96 of file BDSCollimatorBeamMask.hh.
|
protected |
|
protected |
|
protected |
Aperture of main slit in x dimension.
Definition at line 88 of file BDSCollimatorBeamMask.hh.
Referenced by Build(), CheckParameters(), and XAperture().
|
protected |
Aperture of side slit in x dimension.
Definition at line 90 of file BDSCollimatorBeamMask.hh.
Referenced by CheckParameters(), and XApertureSlit().
|
protected |
Offset of the mask in the pipe in x.
Definition at line 92 of file BDSCollimatorBeamMask.hh.
Referenced by Build().
|
protected |
Offset of the side slit wrt the main slit in x.
Definition at line 94 of file BDSCollimatorBeamMask.hh.
|
protected |
Aperture of main slit in y dimension.
Definition at line 89 of file BDSCollimatorBeamMask.hh.
Referenced by Build(), CheckParameters(), and YAperture().
|
protected |
Aperture of side slit in y dimension.
Definition at line 91 of file BDSCollimatorBeamMask.hh.
Referenced by CheckParameters(), and YApertureSlit().
|
protected |
Offset of the mask in the pipe in y.
Definition at line 93 of file BDSCollimatorBeamMask.hh.
Referenced by Build().
|
protected |
Offset of the side slit wrt the main slit in y.
Definition at line 95 of file BDSCollimatorBeamMask.hh.