BDSIM
BDSIM is a Geant4 extension toolkit for simulation of particle transport in accelerator beamlines.
|
Holder class for all information required to describe a beam pipe model. More...
#include <BDSBeamPipeInfo.hh>
Public Member Functions | |
BDSBeamPipeInfo ()=delete | |
Deleted default constructor to ensure one of supplied constructors is used. | |
BDSBeamPipeInfo (BDSBeamPipeType beamPipeTypeIn, G4double aper1In, G4double aper2In, G4double aper3In, G4double aper4In, G4Material *vacuumMaterialIn, G4double beamPipeThicknessIn, G4Material *beamPipeMaterialIn, const G4ThreeVector &inputFaceNormalIn=G4ThreeVector(0, 0,-1), const G4ThreeVector &outputFaceNormalIn=G4ThreeVector(0, 0, 1), const G4String &pointsFileNameIn="", const G4String &pointsUnitIn="mm") | |
extra constructor to assign all members at once. | |
BDSBeamPipeInfo (const G4String &beamPipeTypeIn, G4double aper1In, G4double aper2In, G4double aper3In, G4double aper4In, const G4String &vacuumMaterialIn, G4double beamPipeThicknessIn, const G4String &beamPipeMaterialIn, const G4ThreeVector &inputFaceNormalIn=G4ThreeVector(0, 0,-1), const G4ThreeVector &outputFaceNormalIn=G4ThreeVector(0, 0, 1)) | |
BDSBeamPipeInfo (const BDSBeamPipeInfo *defaultInfo, const G4String &beamPipeTypeIn, G4double aper1In, G4double aper2In, G4double aper3In, G4double aper4In, const G4String &vacuumMaterialIn, G4double beamPipeThicknessIn, const G4String &beamPipeMaterialIn, const G4ThreeVector &inputFaceNormalIn=G4ThreeVector(0, 0,-1), const G4ThreeVector &outputFaceNormalIn=G4ThreeVector(0, 0, 1)) | |
void | CheckApertureInfo () |
BDSExtent | Extent () const |
BDSExtent | ExtentInner () const |
Return an extent for just the raw aperture. | |
G4double | IndicativeRadius () const |
Return an indicative extent of the beam pipe - typically the maximum of x or y extent. | |
G4double | IndicativeRadiusInner () const |
Return an indicative inner extent for the beam pipe vacuum. | |
Data Fields | |
BDSBeamPipeType | beamPipeType |
Public member for direct access. | |
G4double | aper1 |
Public member for direct access. | |
G4double | aper2 |
Public member for direct access. | |
G4double | aper3 |
Public member for direct access. | |
G4double | aper4 |
Public member for direct access. | |
G4double | aperOffsetX |
Public member for direct access. | |
G4double | aperOffsetY |
Public member for direct access. | |
G4Material * | vacuumMaterial |
Public member for direct access. | |
G4double | beamPipeThickness |
Public member for direct access. | |
G4Material * | beamPipeMaterial |
Public member for direct access. | |
G4ThreeVector | inputFaceNormal |
Public member for direct access. | |
G4ThreeVector | outputFaceNormal |
Public member for direct access. | |
G4String | pointsFileName |
Public member for direct access. | |
G4String | pointsUnit |
Public member for direct access. | |
Private Member Functions | |
void | CheckAndSetPointsInfo (const G4String &beamPipeTypeIn) |
Parse the type string to extract the file name and the optional units and assign to member variables. | |
void | CheckRequiredParametersSet (G4bool setAper1, G4bool setAper2, G4bool setAper3, G4bool setAper4) |
void | InfoOKForCircular () |
Aperture info check for circular aperture. | |
void | InfoOKForElliptical () |
Aperture info check for elliptical aperture. | |
void | InfoOKForRectangular () |
Aperture info check for rectangular aperture. | |
void | InfoOKForLHC () |
Aperture info check for lhc aperture. | |
void | InfoOKForLHCDetailed () |
Aperture info check for lhc detailed aperture. | |
void | InfoOKForRectEllipse () |
Aperture info check for rectellipse aperture. | |
void | InfoOKForRaceTrack () |
Aperture info check for racetrack aperture. | |
void | InfoOKForOctagonal () |
Aperture info check for octagonal aperture. | |
void | InfoOKForClicPCL () |
Aperture info check for CLIC PCL aperture. | |
void | InfoOKForRhombus () |
Aperture info check for Rhombus aperture. | |
Holder class for all information required to describe a beam pipe model.
This reduces the number of argument to all magnet constructors plus aggregates common tasks in the component factory.
Definition at line 40 of file BDSBeamPipeInfo.hh.
BDSBeamPipeInfo::BDSBeamPipeInfo | ( | BDSBeamPipeType | beamPipeTypeIn, |
G4double | aper1In, | ||
G4double | aper2In, | ||
G4double | aper3In, | ||
G4double | aper4In, | ||
G4Material * | vacuumMaterialIn, | ||
G4double | beamPipeThicknessIn, | ||
G4Material * | beamPipeMaterialIn, | ||
const G4ThreeVector & | inputFaceNormalIn = G4ThreeVector(0,0,-1) , |
||
const G4ThreeVector & | outputFaceNormalIn = G4ThreeVector(0,0,1) , |
||
const G4String & | pointsFileNameIn = "" , |
||
const G4String & | pointsUnitIn = "mm" |
||
) |
extra constructor to assign all members at once.
Definition at line 31 of file BDSBeamPipeInfo.cc.
References CheckApertureInfo().
BDSBeamPipeInfo::BDSBeamPipeInfo | ( | const G4String & | beamPipeTypeIn, |
G4double | aper1In, | ||
G4double | aper2In, | ||
G4double | aper3In, | ||
G4double | aper4In, | ||
const G4String & | vacuumMaterialIn, | ||
G4double | beamPipeThicknessIn, | ||
const G4String & | beamPipeMaterialIn, | ||
const G4ThreeVector & | inputFaceNormalIn = G4ThreeVector(0,0,-1) , |
||
const G4ThreeVector & | outputFaceNormalIn = G4ThreeVector(0,0,1) |
||
) |
Constructor with string descriptors of materials and type. Automatically determined using BDSBeamPipeType and BDSMaterials
Definition at line 57 of file BDSBeamPipeInfo.cc.
References beamPipeMaterial, beamPipeType, CheckAndSetPointsInfo(), CheckApertureInfo(), BDS::DetermineBeamPipeType(), BDSMaterials::GetMaterial(), BDSMaterials::Instance(), and vacuumMaterial.
BDSBeamPipeInfo::BDSBeamPipeInfo | ( | const BDSBeamPipeInfo * | defaultInfo, |
const G4String & | beamPipeTypeIn, | ||
G4double | aper1In, | ||
G4double | aper2In, | ||
G4double | aper3In, | ||
G4double | aper4In, | ||
const G4String & | vacuumMaterialIn, | ||
G4double | beamPipeThicknessIn, | ||
const G4String & | beamPipeMaterialIn, | ||
const G4ThreeVector & | inputFaceNormalIn = G4ThreeVector(0,0,-1) , |
||
const G4ThreeVector & | outputFaceNormalIn = G4ThreeVector(0,0,1) |
||
) |
Constructor that allows a default model to be used as backup. Checks on parameter validity are done after substituting unset values by values from defaultInfo.
Definition at line 84 of file BDSBeamPipeInfo.cc.
References aper1, aper2, aper3, aper4, beamPipeMaterial, beamPipeThickness, beamPipeType, CheckAndSetPointsInfo(), CheckApertureInfo(), BDS::DetermineBeamPipeType(), BDSMaterials::GetMaterial(), BDSMaterials::Instance(), BDS::IsFinite(), pointsFileName, pointsUnit, and vacuumMaterial.
|
private |
Parse the type string to extract the file name and the optional units and assign to member variables.
Definition at line 145 of file BDSBeamPipeInfo.cc.
References pointsFileName, pointsUnit, BDS::SplitOnColon(), and BDS::StrContains().
Referenced by BDSBeamPipeInfo().
void BDSBeamPipeInfo::CheckApertureInfo | ( | ) |
Function to check relevant aperture values are set. This is really a dispatch function for other aperture specific methods below
Definition at line 162 of file BDSBeamPipeInfo.cc.
References beamPipeType, InfoOKForCircular(), InfoOKForClicPCL(), InfoOKForElliptical(), InfoOKForLHC(), InfoOKForLHCDetailed(), InfoOKForOctagonal(), InfoOKForRaceTrack(), InfoOKForRectangular(), InfoOKForRectEllipse(), InfoOKForRhombus(), and BDSTypeSafeEnum< def, inner >::underlying().
Referenced by BDSBeamPipeInfo().
|
private |
Function to check whether a parameter is set (using BDSUtilities BDS::IsFinite() ). If the accompanying G4bool setAper1 (for example) is true, the parameter will be checked for being set. All parameters required to be checked are checked and appropriate warnings printed before exiting if any fail that test.
Definition at line 266 of file BDSBeamPipeInfo.cc.
References aper1, aper2, aper3, aper4, and BDS::IsFinite().
Referenced by InfoOKForCircular(), InfoOKForClicPCL(), InfoOKForElliptical(), InfoOKForLHC(), InfoOKForOctagonal(), InfoOKForRaceTrack(), InfoOKForRectangular(), InfoOKForRectEllipse(), and InfoOKForRhombus().
BDSExtent BDSBeamPipeInfo::Extent | ( | ) | const |
Return a BDSExtent instance for the transverse extents - extent in Z is 0 as this is only aperture information. Includes beam pipe thickness.
Definition at line 244 of file BDSBeamPipeInfo.cc.
References beamPipeThickness, ExtentInner(), BDSExtent::XPos(), and BDSExtent::YPos().
Referenced by BDSUndulator::BuildContainerLogicalVolume(), and IndicativeRadius().
BDSExtent BDSBeamPipeInfo::ExtentInner | ( | ) | const |
Return an extent for just the raw aperture.
Definition at line 191 of file BDSBeamPipeInfo.cc.
References aper1, aper2, aper3, aper4, beamPipeThickness, beamPipeType, and BDSTypeSafeEnum< def, inner >::underlying().
Referenced by Extent(), and IndicativeRadiusInner().
G4double BDSBeamPipeInfo::IndicativeRadius | ( | ) | const |
Return an indicative extent of the beam pipe - typically the maximum of x or y extent.
Definition at line 254 of file BDSBeamPipeInfo.cc.
References Extent(), and BDSExtent::MaximumAbsTransverse().
Referenced by BDSComponentFactory::PrepareMagnetOuterFieldInfo(), and BDSComponentFactory::PrepareMagnetOuterInfo().
G4double BDSBeamPipeInfo::IndicativeRadiusInner | ( | ) | const |
Return an indicative inner extent for the beam pipe vacuum.
Definition at line 260 of file BDSBeamPipeInfo.cc.
References ExtentInner(), and BDSExtent::MinimumAbsTransverse().
Referenced by BDSCollimatorCrystal::Build().
|
private |
Aperture info check for circular aperture.
Definition at line 300 of file BDSBeamPipeInfo.cc.
References CheckRequiredParametersSet().
Referenced by CheckApertureInfo().
|
private |
Aperture info check for CLIC PCL aperture.
Definition at line 353 of file BDSBeamPipeInfo.cc.
References CheckRequiredParametersSet().
Referenced by CheckApertureInfo().
|
private |
Aperture info check for elliptical aperture.
Definition at line 305 of file BDSBeamPipeInfo.cc.
References CheckRequiredParametersSet().
Referenced by CheckApertureInfo().
|
private |
Aperture info check for lhc aperture.
Definition at line 315 of file BDSBeamPipeInfo.cc.
References aper1, aper2, aper3, and CheckRequiredParametersSet().
Referenced by CheckApertureInfo(), and InfoOKForLHCDetailed().
|
private |
Aperture info check for lhc detailed aperture.
Definition at line 326 of file BDSBeamPipeInfo.cc.
References InfoOKForLHC().
Referenced by CheckApertureInfo().
|
private |
Aperture info check for octagonal aperture.
Definition at line 343 of file BDSBeamPipeInfo.cc.
References aper1, aper2, aper3, aper4, and CheckRequiredParametersSet().
Referenced by CheckApertureInfo().
|
private |
Aperture info check for racetrack aperture.
Definition at line 338 of file BDSBeamPipeInfo.cc.
References CheckRequiredParametersSet().
Referenced by CheckApertureInfo().
|
private |
Aperture info check for rectangular aperture.
Definition at line 310 of file BDSBeamPipeInfo.cc.
References CheckRequiredParametersSet().
Referenced by CheckApertureInfo().
|
private |
Aperture info check for rectellipse aperture.
Definition at line 331 of file BDSBeamPipeInfo.cc.
References CheckRequiredParametersSet().
Referenced by CheckApertureInfo().
|
private |
Aperture info check for Rhombus aperture.
Definition at line 358 of file BDSBeamPipeInfo.cc.
References aper1, aper2, aper3, and CheckRequiredParametersSet().
Referenced by CheckApertureInfo().
G4double BDSBeamPipeInfo::aper1 |
Public member for direct access.
Definition at line 105 of file BDSBeamPipeInfo.hh.
Referenced by BDSBeamPipeInfo(), BDSGlobalConstants::BDSGlobalConstants(), BDSShield::BuildBeamPipe(), BDSLaserWire::BuildContainerLogicalVolume(), CheckRequiredParametersSet(), ExtentInner(), BDSOutputROOTEventModel::Fill(), InfoOKForLHC(), InfoOKForOctagonal(), InfoOKForRhombus(), BDSComponentFactory::PrepareCavityModelInfoForElement(), BDSFieldFactory::PrepareFieldDefinitions(), and BDSSurvey::Write().
G4double BDSBeamPipeInfo::aper2 |
Public member for direct access.
Definition at line 106 of file BDSBeamPipeInfo.hh.
Referenced by BDSBeamPipeInfo(), BDSShield::BuildBeamPipe(), CheckRequiredParametersSet(), ExtentInner(), BDSOutputROOTEventModel::Fill(), InfoOKForLHC(), InfoOKForOctagonal(), InfoOKForRhombus(), and BDSSurvey::Write().
G4double BDSBeamPipeInfo::aper3 |
Public member for direct access.
Definition at line 107 of file BDSBeamPipeInfo.hh.
Referenced by BDSBeamPipeInfo(), CheckRequiredParametersSet(), ExtentInner(), BDSOutputROOTEventModel::Fill(), InfoOKForLHC(), InfoOKForOctagonal(), InfoOKForRhombus(), and BDSSurvey::Write().
G4double BDSBeamPipeInfo::aper4 |
Public member for direct access.
Definition at line 108 of file BDSBeamPipeInfo.hh.
Referenced by BDSBeamPipeInfo(), CheckRequiredParametersSet(), ExtentInner(), BDSOutputROOTEventModel::Fill(), InfoOKForOctagonal(), and BDSSurvey::Write().
G4double BDSBeamPipeInfo::aperOffsetX |
Public member for direct access.
Definition at line 109 of file BDSBeamPipeInfo.hh.
G4double BDSBeamPipeInfo::aperOffsetY |
Public member for direct access.
Definition at line 110 of file BDSBeamPipeInfo.hh.
G4Material* BDSBeamPipeInfo::beamPipeMaterial |
Public member for direct access.
Definition at line 113 of file BDSBeamPipeInfo.hh.
Referenced by BDSBeamPipeInfo(), BDSCollimatorCrystal::Material(), and BDSDrift::Material().
G4double BDSBeamPipeInfo::beamPipeThickness |
Public member for direct access.
Definition at line 112 of file BDSBeamPipeInfo.hh.
Referenced by BDSBeamPipeInfo(), BDSGlobalConstants::BDSGlobalConstants(), BDSShield::BuildBeamPipe(), BDSUndulator::BuildContainerLogicalVolume(), Extent(), ExtentInner(), and BDSComponentFactory::PrepareCavityModelInfoForElement().
BDSBeamPipeType BDSBeamPipeInfo::beamPipeType |
Public member for direct access.
Definition at line 104 of file BDSBeamPipeInfo.hh.
Referenced by BDSBeamPipeInfo(), BDSMagnet::BDSMagnet(), BDS::BuildDipoleFringe(), CheckApertureInfo(), ExtentInner(), BDSOutputROOTEventModel::Fill(), and BDSSurvey::Write().
G4ThreeVector BDSBeamPipeInfo::inputFaceNormal |
Public member for direct access.
Definition at line 114 of file BDSBeamPipeInfo.hh.
Referenced by BDSComponentFactory::PrepareBeamPipeInfo().
G4ThreeVector BDSBeamPipeInfo::outputFaceNormal |
Public member for direct access.
Definition at line 115 of file BDSBeamPipeInfo.hh.
Referenced by BDSComponentFactory::PrepareBeamPipeInfo().
G4String BDSBeamPipeInfo::pointsFileName |
Public member for direct access.
Definition at line 116 of file BDSBeamPipeInfo.hh.
Referenced by BDSBeamPipeInfo(), and CheckAndSetPointsInfo().
G4String BDSBeamPipeInfo::pointsUnit |
Public member for direct access.
Definition at line 117 of file BDSBeamPipeInfo.hh.
Referenced by BDSBeamPipeInfo(), and CheckAndSetPointsInfo().
G4Material* BDSBeamPipeInfo::vacuumMaterial |
Public member for direct access.
Definition at line 111 of file BDSBeamPipeInfo.hh.
Referenced by BDSBeamPipeInfo(), BDSMagnetOuterFactoryLHC::CreateLHCDipole(), and BDSMagnetOuterFactoryLHC::CreateQuadrupole().