BDSIM
BDSIM is a Geant4 extension toolkit for simulation of particle transport in accelerator beamlines.
|
Parameters - Element class with booleans. More...
#include <parameters.h>
Public Member Functions | |
void | flush () |
Reset the parameters to defaults and setMap. | |
void | inherit_properties (const Element &e) |
template<typename T > | |
void | set_value (std::string property, T value) |
Set method by property name and value. | |
Parameters () | |
Constructor. | |
![]() | |
void | print (int ident=0) const |
print method | |
void | flush () |
flush method | |
bool | isSpecial () const |
check if element is of a special type | |
double | property_lookup (std::string property_name) const |
void | setSamplerInfo (std::string samplerType, std::string samplerName, double samplerRadius, int samplerParticleSetIDIn=-1) |
set sampler info | |
template<typename T > | |
void | set_value (std::string property, T value) |
Element () | |
constructor | |
void | set (const Parameters ¶ms) |
set method from Parameters structure | |
void | set (const Parameters ¶ms, std::string nameIn, ElementType typeIn) |
set method from Parameters structure | |
![]() | |
bool | NameExists (const std::string &name) const |
Published< Element >::template AttributeMap< T > & | attribute_map () const |
Data Fields | |
std::map< std::string, bool > | setMap |
Map that holds booleans for every member of element. | |
![]() | |
ElementType | type |
element enum | |
std::string | name |
std::string | userTypeName |
User component element type name. | |
std::string | userParameters |
String for passing user parameters through. | |
double | l |
length in metres | |
double | scaling |
Overall scaling of field strength. | |
double | scalingFieldOuter |
Extra arbitrary scaling for outer field - compounded with 'scaling'. | |
double | ks |
solenoid | |
double | k1 |
quadrupole | |
double | k2 |
sextupole | |
double | k3 |
octupole | |
double | k4 |
decapole | |
double | angle |
bending angle | |
double | B |
magnetic field | |
double | e1 |
input pole face rotation for bends | |
double | e2 |
output pole face rotation for bends | |
double | fint |
fringe field integral at the dipole entrance | |
double | fintx |
fringe field integral at the dipole exit | |
double | fintK2 |
second fringe field integral at the dipole entrance - for TRANSPORT matching | |
double | fintxK2 |
second fringe field integral at the dipole exit - for TRANSPORT matching | |
double | hgap |
half distance of pole separation for purposes of fringe fields - 'half gap' | |
double | h1 |
input pole face curvature for bends | |
double | h2 |
output pole face curvature for bends | |
double | kick |
fractional delta p for either h or v kicker | |
double | hkick |
fractional delta px for hkicker | |
double | vkick |
fractional delta py for vkicker | |
std::list< double > | knl |
multipole expansion coefficients | |
std::list< double > | ksl |
skew multipole expansion | |
double | gradient |
for rf cavities in V / m | |
double | E |
voltage for rf cavities in V that will be assumed over length l | |
double | frequency |
frequency for rf cavity in Hz | |
double | phase |
phase of rf cavity (rad) | |
double | tOffset |
time offset used for phase calculation (ns) | |
std::string | fieldModulator |
std::string | magnetGeometryType |
double | horizontalWidth |
bool | yokeOnInside |
int | hStyle |
-1 = unset; 0 = false (ie c style); 1 = true, use hstyle | |
double | vhRatio |
ratio of vertial to horizontal for some magnets | |
double | coilWidthFraction |
Fraction of available h space the coil will take up. | |
double | coilHeightFraction |
Fraction of availalbe v space the coil will take up. | |
double | tilt |
tilt | |
double | xsize |
double | ysize |
collimator aperture or laser spotsize for laser | |
double | xsizeOut |
double | ysizeOut |
collimator aperture or laser spotsize for laser | |
double | xsizeLeft |
double | xsizeRight |
individual collimator jaw half widths | |
double | jawTiltLeft |
double | jawTiltRight |
jaw collimator jaw tilts (angle in x-z plane) | |
double | offsetX |
offset X | |
double | offsetY |
offset Y | |
double | tscint |
thickness of scintillating part of screen | |
double | twindow |
thickness of window | |
double | tmount |
thickness of the screen mount | |
double | windowScreenGap |
air gap between window and screen | |
double | screenXSize |
double | screenYSize |
double | waveLength |
for laser wire and 3d transforms | |
double | phi |
double | theta |
double | psi |
for 3d transforms | |
double | axisX |
double | axisY |
double | axisZ |
bool | axisAngle |
std::list< std::string > | biasMaterialList |
std::list< std::string > | biasVacuumList |
physics biasing list for the vacuum | |
double | minimumKineticEnergy |
minimum kinetic energy for user limits - respected on element by element basis | |
std::string | samplerName |
name of sampler (default empty) | |
std::string | samplerType |
element has a sampler of this type (default "none") | |
double | samplerRadius |
int | samplerParticleSetID |
std::string | region |
region with range cuts | |
std::string | fieldOuter |
Outer field. | |
std::string | fieldVacuum |
Vacuum field. | |
std::string | fieldAll |
Field for everything. | |
std::string | geometryFile |
For Element. File for external geometry. | |
bool | stripOuterVolume |
For Element. Make it an assembly. | |
bool | autoColour |
Automagically colour the external geometry. | |
bool | elementLengthIsArcLength |
For Element. Treat the length as arc length, if not chord. | |
std::string | material |
std::string | namedVacuumVolumes |
For imported geometry - identify vacuum volumes. | |
bool | markAsCollimator |
std::string | spec |
Arbitrary specification to pass to beamline builder. | |
std::string | cavityModel |
Name of geometry model object for rfconstantinz cavities. | |
std::string | cavityFieldType |
Name for type of field to use in a cavity. | |
std::string | dicomDataPath |
for CT, file for DICOM construction data | |
std::string | dicomDataFile |
for CT, file for DICOM construction data | |
std::string | colour |
Override colour for certain items. | |
std::string | crystalLeft |
std::string | crystalRight |
std::string | crystalBoth |
double | crystalAngleYAxisLeft |
double | crystalAngleYAxisRight |
bool | angleSet |
bool | scalingFieldOuterSet |
std::list< Element > * | lst |
in case the element is a list itself (line) | |
double | kick1 |
rmatrix elements, only 4x4 | |
double | kick2 |
rmatrix elements, only 4x4 | |
double | kick3 |
rmatrix elements, only 4x4 | |
double | kick4 |
rmatrix elements, only 4x4 | |
double | rmat11 |
rmatrix elements, only 4x4 | |
double | rmat12 |
rmatrix elements, only 4x4 | |
double | rmat13 |
rmatrix elements, only 4x4 | |
double | rmat14 |
rmatrix elements, only 4x4 | |
double | rmat21 |
rmatrix elements, only 4x4 | |
double | rmat22 |
rmatrix elements, only 4x4 | |
double | rmat23 |
rmatrix elements, only 4x4 | |
double | rmat24 |
rmatrix elements, only 4x4 | |
double | rmat31 |
rmatrix elements, only 4x4 | |
double | rmat32 |
rmatrix elements, only 4x4 | |
double | rmat33 |
rmatrix elements, only 4x4 | |
double | rmat34 |
rmatrix elements, only 4x4 | |
double | rmat41 |
rmatrix elements, only 4x4 | |
double | rmat42 |
rmatrix elements, only 4x4 | |
double | rmat43 |
rmatrix elements, only 4x4 | |
double | rmat44 |
rmatrix elements, only 4x4 | |
double | beampipeThickness |
beampipe information, new aperture model | |
double | aper1 |
beampipe information, new aperture model | |
double | aper2 |
beampipe information, new aperture model | |
double | aper3 |
beampipe information, new aperture model | |
double | aper4 |
beampipe information, new aperture model | |
std::string | apertureType |
beampipe information, new aperture model | |
std::string | beampipeMaterial |
beampipe information, new aperture model | |
std::string | vacuumMaterial |
beampipe information, new aperture model | |
std::list< double > | layerThicknesses |
for screen | |
std::list< std::string > | layerMaterials |
for screen | |
std::list< int > | layerIsSampler |
for screen | |
double | screenPSize |
for AWAKE spectrometer | |
double | screenEndZ |
for AWAKE spectrometer | |
double | poleStartZ |
for AWAKE spectrometer | |
double | screenWidth |
for AWAKE spectrometer | |
double | awakeMagnetOffsetX |
for AWAKE spectrometer | |
std::string | windowmaterial |
for AWAKE spectrometer | |
std::string | scintmaterial |
for AWAKE spectrometer | |
std::string | mountmaterial |
for AWAKE spectrometer | |
double | xdir |
for 3d transform and laser | |
double | ydir |
for 3d transform and laser | |
double | zdir |
for 3d transform and laser | |
int | numberWedges |
for degrader | |
double | wedgeLength |
for degrader | |
double | degraderHeight |
for degrader | |
double | materialThickness |
for degrader | |
double | degraderOffset |
for degrader | |
double | wireDiameter |
for wirescanner | |
double | wireLength |
for wirescanner | |
double | wireOffsetX |
for wirescanner | |
double | wireOffsetY |
for wirescanner | |
double | wireOffsetZ |
for wirescanner | |
double | wireAngle |
for wirescanner | |
double | undulatorPeriod |
for undulator | |
double | undulatorGap |
for undulator | |
double | undulatorMagnetHeight |
for undulator | |
std::string | bias |
temporary string for bias setting | |
std::string | biasMaterial |
temporary string for bias setting | |
std::string | biasVacuum |
temporary string for bias setting | |
Additional Inherited Members | |
![]() | |
using | AttributeMap = typename std::unordered_map< std::string, T C::* > |
Define AttributeMap of string and class member pointer. | |
![]() | |
std::string | getPublishedName (const std::string &name) const |
returns 'official' member name for property | |
![]() | |
void | publish (const std::string &name, T C::*mp) |
Make pointer to member from class C and type T with accessible with a name. | |
void | set (Element *instance, const Element *instance2, const std::string &name) |
Set member with name of class instance to value of second instance. | |
AttributeMap< T > & | attribute_map () const |
Access method to static map for type T and class C. | |
T | get (const Element *instance, const std::string &name) const |
Get method for class C. | |
void | set (Element *instance, const std::string &name, double value) |
void | set (Element *instance, const std::string &name, GMAD::Array *const &value) |
void | set (Element *instance, const std::string &name, const T &value) |
Parameters - Element class with booleans.
This is a temporary storage class of the parameters before the actual Element is created. The booleans are needed for inheritance and extension of already created Elements. The class is a singleton.
Definition at line 44 of file parameters.h.
Parameters::Parameters | ( | ) |
void Parameters::flush | ( | ) |
Reset the parameters to defaults and setMap.
Definition at line 205 of file parameters.cc.
References GMAD::Element::flush(), and setMap.
Referenced by GMAD::Parser::ClearParams(), and GMAD::Parser::Initialise().
void Parameters::inherit_properties | ( | const Element & | e | ) |
Copy parameters into temporary buffer params from element e Parameters already set in params have priority and are not overridden
Definition at line 213 of file parameters.cc.
References GMAD::Published< C >::set(), and setMap.
Referenced by GMAD::Parser::copy_element_to_params().
void GMAD::Parameters::set_value | ( | std::string | property, |
T | value | ||
) |
Set method by property name and value.
Definition at line 65 of file parameters.h.
References GMAD::Element::getPublishedName(), GMAD::Published< C >::set(), and setMap.
std::map<std::string,bool> GMAD::Parameters::setMap |
Map that holds booleans for every member of element.
Definition at line 47 of file parameters.h.
Referenced by flush(), inherit_properties(), Parameters(), GMAD::Element::set(), and set_value().