BDSIM
BDSIM is a Geant4 extension toolkit for simulation of particle transport in accelerator beamlines.
Loading...
Searching...
No Matches
elementtype.cc
1/*
2Beam Delivery Simulation (BDSIM) Copyright (C) BDSIM Collaboration, 2001 - 2026.
3
4This file is part of BDSIM.
5
6BDSIM is free software: you can redistribute it and/or modify
7it under the terms of the GNU General Public License as published
8by the Free Software Foundation version 3 of the License.
9
10BDSIM is distributed in the hope that it will be useful, but
11WITHOUT ANY WARRANTY; without even the implied warranty of
12MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13GNU General Public License for more details.
14
15You should have received a copy of the GNU General Public License
16along with BDSIM. If not, see <http://www.gnu.org/licenses/>.
17*/
18#include "elementtype.h"
19#include <string>
20
21using namespace GMAD;
22
23std::ostream& GMAD::operator << (std::ostream& out, ElementType type)
24{
25 return out << typestr(type);
26}
27
28std::string GMAD::typestr(ElementType type)
29{
30 switch(type)
31 {
32 case ElementType::_MARKER:
33 {return "marker"; break;}
34 case ElementType::_DRIFT:
35 {return "drift"; break;}
36 case ElementType::_RF:
37 {return "rf"; break;}
38 case ElementType::_SBEND:
39 {return "sbend"; break;}
40 case ElementType::_QUAD:
41 {return "quadrupole"; break;}
42 case ElementType::_SEXTUPOLE:
43 {return "sextupole"; break;}
44 case ElementType::_OCTUPOLE:
45 {return "octupole"; break;}
46 case ElementType::_DECAPOLE:
47 {return "decapole"; break;}
48 case ElementType::_MULT:
49 {return "multipole"; break;}
50 case ElementType::_SOLENOID:
51 {return "solenoid"; break;}
52 case ElementType::_LINE:
53 {return "line"; break;}
54 case ElementType::_REV_LINE:
55 {return "rev_line"; break;}
56 case ElementType::_ECOL:
57 {return "ecol"; break;}
58 case ElementType::_RCOL:
59 {return "rcol"; break;}
60 case ElementType::_BMCOL:
61 {return "bmcol"; break;}
62 case ElementType::_GASCAP:
63 {return "gascap"; break;}
64 case ElementType::_GASJET:
65 {return "gasjet"; break;}
66 case ElementType::_MATERIAL:
67 {return "material"; break;}
68 case ElementType::_RBEND:
69 {return "rbend"; break;}
70 case ElementType::_ELEMENT:
71 {return "element"; break;}
72 case ElementType::_SCREEN:
73 {return "screen"; break;}
74 case ElementType::_AWAKESCREEN:
75 {return "awakescreen"; break;}
76 case ElementType::_AWAKESPECTROMETER:
77 {return "awakespectrometer"; break;}
78 case ElementType::_SHIELD:
79 {return "shield"; break;}
80 case ElementType::_VKICKER:
81 {return "vkicker"; break;}
82 case ElementType::_HKICKER:
83 {return "hkicker"; break;}
84 case ElementType::_KICKER:
85 {return "kicker"; break;}
86 case ElementType::_TKICKER:
87 {return "tkicker"; break;}
88 case ElementType::_LASERWIREOLD:
89 {return "laserwireold"; break;}
90 case ElementType::_TRANSFORM3D:
91 {return "transform3d"; break;}
92 case ElementType::_WIRESCANNER:
93 {return "wirescanner"; break;}
94 case ElementType::_MUONSPOILER:
95 {return "muonspoiler"; break;}
96 case ElementType::_DEGRADER:
97 {return "degrader"; break;}
98 case ElementType::_THINMULT:
99 {return "thinmultipole"; break;}
100 case ElementType::_GAP:
101 {return "gap"; break;}
102 case ElementType::_THINRMATRIX:
103 {return "thinrmatrix"; break;}
104 case ElementType::_PARALLELTRANSPORTER:
105 {return "paralleltransporter"; break;}
106 case ElementType::_RMATRIX:
107 {return "rmatrix"; break;}
108 case ElementType::_CRYSTALCOL:
109 {return "crystalcol"; break;}
110 case ElementType::_UNDULATOR:
111 {return "undulator"; break;}
112 case ElementType::_JCOL:
113 {return "jcol"; break;}
114 case ElementType::_JCOLTIP:
115 {return "jcoltip"; break;}
116 case ElementType::_USERCOMPONENT:
117 {return "usercomponent"; break;}
118 case ElementType::_DUMP:
119 {return "dump"; break;}
120 case ElementType::_MUONCOOLER:
121 {return "muoncoolier"; break;}
122 case ElementType::_LASERWIRE:
123 {return "laserwire"; break;}
124 case ElementType::_CT:
125 {return "ct"; break;}
126 case ElementType::_TARGET:
127 {return "target"; break;}
128 case ElementType::_RFX:
129 {return "rfx"; break;}
130 case ElementType::_RFY:
131 {return "rfy"; break;}
132 case ElementType::_GABORLENS:
133 {return "gaborlens"; break;}
134 default:
135 {return "none"; break;}
136 }
137}
Parser namespace for GMAD language. Combination of Geant4 and MAD.
ElementType
types of elements
Definition elementtype.h:27
std::ostream & operator<<(std::ostream &out, ElementType type)
output operator
std::string typestr(ElementType type)
conversion from enum to string