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