19#include "BDSFieldClassType.hh"
27 new std::map<BDSFieldClassType, std::string> ({
28 {BDSFieldClassType::magnetic,
"magnetic"},
29 {BDSFieldClassType::electric,
"electric"},
30 {BDSFieldClassType::electromagnetic,
"electromagnetic"},
31 {BDSFieldClassType::irregular,
"irregular"}
38 case BDSFieldType::bfieldzero:
39 case BDSFieldType::bmap1d:
40 case BDSFieldType::bmap2d:
41 case BDSFieldType::bmap3d:
42 case BDSFieldType::bmap4d:
43 case BDSFieldType::mokka:
44 case BDSFieldType::solenoid:
45 case BDSFieldType::solenoidsheet:
46 case BDSFieldType::dipole:
47 case BDSFieldType::dipole3d:
48 case BDSFieldType::quadrupole:
49 case BDSFieldType::dipolequadrupole:
50 case BDSFieldType::sextupole:
51 case BDSFieldType::octupole:
52 case BDSFieldType::decapole:
53 case BDSFieldType::multipole:
54 case BDSFieldType::muonspoiler:
55 case BDSFieldType::skewquadrupole:
56 case BDSFieldType::skewsextupole:
57 case BDSFieldType::skewoctupole:
58 case BDSFieldType::skewdecapole:
59 case BDSFieldType::undulator:
60 case BDSFieldType::multipoleouterdipole:
61 case BDSFieldType::multipoleouterquadrupole:
62 case BDSFieldType::multipoleoutersextupole:
63 case BDSFieldType::multipoleouteroctupole:
64 case BDSFieldType::multipoleouterdecapole:
65 case BDSFieldType::skewmultipoleouterquadrupole:
66 case BDSFieldType::skewmultipoleoutersextupole:
67 case BDSFieldType::skewmultipoleouteroctupole:
68 case BDSFieldType::skewmultipoleouterdecapole:
69 case BDSFieldType::multipoleouterdipole3d:
70 case BDSFieldType::multipoleouterdipolelhc:
71 case BDSFieldType::multipoleouterquadrupolelhc:
72 case BDSFieldType::multipoleoutersextupolelhc:
73 {
return BDSFieldClassType::magnetic;}
74 case BDSFieldType::efieldzero:
75 case BDSFieldType::emap1d:
76 case BDSFieldType::emap2d:
77 case BDSFieldType::emap3d:
78 case BDSFieldType::emap4d:
79 case BDSFieldType::rfconstantinx:
80 case BDSFieldType::rfconstantiny:
81 case BDSFieldType::rfconstantinz:
82 {
return BDSFieldClassType::electric;}
83 case BDSFieldType::none:
84 case BDSFieldType::ebfieldzero:
85 case BDSFieldType::ebmap1d:
86 case BDSFieldType::ebmap2d:
87 case BDSFieldType::ebmap3d:
88 case BDSFieldType::ebmap4d:
89 case BDSFieldType::rfpillbox:
90 {
return BDSFieldClassType::electromagnetic;}
91 case BDSFieldType::teleporter:
92 case BDSFieldType::rmatrix:
93 case BDSFieldType::cavityfringe:
94 case BDSFieldType::paralleltransporter:
95 {
return BDSFieldClassType::irregular;}
97 {
return BDSFieldClassType::electromagnetic;}
Improve type-safety of native enum data type in C++.
static std::map< BDSTypeSafeEnum< def, inner >, std::string > * dictionary
type underlying() const
return underlying value (can be used in switch statement)
BDSFieldClassType DetermineFieldClassType(BDSFieldType fieldType)
Function that gives the corresponding enum value for a field type enum.