OPAL (Object Oriented Parallel Accelerator Library)  2.2.0
OPAL
Configure.cpp
Go to the documentation of this file.
1 // ------------------------------------------------------------------------
2 // $RCSfile: Configure.cpp,v $
3 // ------------------------------------------------------------------------
4 // $Revision: 1.3 $
5 // ------------------------------------------------------------------------
6 // Copyright: see Copyright.readme
7 // ------------------------------------------------------------------------
8 //
9 // Namespace: Configure
10 // Contains methods for configuring the OPAL-9 program.
11 //
12 // ------------------------------------------------------------------------
13 //
14 // $Date: 2000/05/03 12:40:49 $
15 // $Author: opal $
16 //
17 // JMJ & JP adding Aperture and Split 18/4/2000
18 // ------------------------------------------------------------------------
19 
22 
24 
25 // Basic action commands.
26 #include "BasicActions/Call.h"
27 #include "BasicActions/Dump.h"
30 #include "BasicActions/Echo.h"
31 #include "BasicActions/Help.h"
32 #include "BasicActions/Option.h"
33 #include "BasicActions/Save.h"
34 #include "BasicActions/Select.h"
35 #include "BasicActions/Show.h"
36 #include "BasicActions/Stop.h"
37 #include "BasicActions/Quit.h"
38 #include "BasicActions/What.h"
39 #include "BasicActions/System.h"
40 #include "BasicActions/PSystem.h"
41 #include "BasicActions/Title.h"
42 #include "BasicActions/Value.h"
43 
44 // Macro command.
45 #include "OpalParser/MacroCmd.h"
46 
47 // Physics action commands.
48 #include "PhysicsActions/Dynamic.h"
51 #include "PhysicsActions/Static.h"
52 
53 // Commands introducing a special mode.
54 #include "Editor/EditCmd.h"
55 #include "Match/MatchCmd.h"
56 #include "Track/TrackCmd.h"
57 
58 // Table-related commands.
59 #include "Structure/Beam.h"
60 #include "Structure/FieldSolver.h"
62 #include "Structure/OpalWake.h"
64 #include "Utilities/OpalFilter.h"
65 #include "TrimCoils/OpalTrimCoil.h"
66 #include "Tables/AttList.h"
67 #include "Tables/Eigen.h"
68 #include "Tables/Envelope.h"
69 #include "Tables/Insertion.h"
70 #include "Tables/List.h"
71 #include "Tables/MatrixCmd.h"
72 #include "Tables/Micado.h"
73 #include "Tables/Period.h"
74 #include "Tables/Survey.h"
75 #include "Tables/ThreadAll.h"
76 #include "Tables/ThreadBpm.h"
77 #include "Tables/Twiss3.h"
78 #include "Aperture/Aperture.h"
79 #include "Aperture/Split.h"
80 
81 
82 // Value definitions commands.
88 
89 // Element commands.
91 #include "Elements/OpalCavity.h"
93 #include "Elements/OpalCyclotron.h"
94 #include "Elements/OpalDrift.h"
97 #include "Elements/OpalDegrader.h"
98 #include "Elements/OpalHKicker.h"
99 #include "Elements/OpalHMonitor.h"
100 #include "Elements/OpalInstrument.h"
101 #include "Elements/OpalKicker.h"
102 #include "Elements/OpalMarker.h"
103 #include "Elements/OpalMonitor.h"
104 #include "Elements/OpalMultipole.h"
105 #include "Elements/OpalMultipoleT.h"
109 #include "Elements/OpalOctupole.h"
114 #include "Elements/OpalPepperPot.h"
115 #include "Elements/OpalPatch.h"
116 #include "Elements/OpalProbe.h"
117 #include "Elements/OpalQuadrupole.h"
119 #include "Elements/OpalRBend.h"
120 #include "Elements/OpalRBend3D.h"
122 #include "Elements/OpalSBend.h"
123 #include "Elements/OpalSBend3D.h"
125 #include "Elements/OpalSeparator.h"
126 #include "Elements/OpalSeptum.h"
127 #include "Elements/OpalSextupole.h"
128 #include "Elements/OpalSlit.h"
129 #include "Elements/OpalSolenoid.h"
130 #include "Elements/OpalSource.h"
131 #include "Elements/OpalSRot.h"
133 #include "Elements/OpalVKicker.h"
134 #include "Elements/OpalVMonitor.h"
135 //#include "Elements/OpalWire.h"
136 #include "Elements/OpalYRot.h"
139 #include "Elements/OpalStripper.h"
144 
145 // Structure-related commands.
146 #include "Lines/Line.h"
147 #include "Lines/Sequence.h"
148 
149 // Optimize command
150 #include "Optimize/OptimizeCmd.h"
151 #include "Optimize/DVar.h"
152 #include "Optimize/Objective.h"
153 #include "Optimize/Constraint.h"
154 
155 // Sample command
156 #include "Sample/SampleCmd.h"
157 #include "Sample/OpalSample.h"
158 
159 #include "changes.h"
160 
161 // Modify these methods to add new commands.
162 // ------------------------------------------------------------------------
163 
164 namespace {
165 
166  void makeActions() {
168  opal->create(new Call());
169  opal->create(new Dump());
170  opal->create(new DumpFields());
171  opal->create(new DumpEMFields());
172  opal->create(new Echo());
173  opal->create(new Dynamic());
174  opal->create(new Eigen());
175  opal->create(new Envelope());
176  opal->create(new Help());
177  opal->create(new EditCmd());
178  opal->create(new List());
179  opal->create(new MakeSequence());
180  opal->create(new MatchCmd());
181  opal->create(new MatrixCmd());
182  opal->create(new Micado());
183  opal->create(new Option());
184  opal->create(new OptimizeCmd());
185  opal->create(new SampleCmd());
186  opal->create(new Save());
187  opal->create(new Select());
188  opal->create(new Show());
189  opal->create(new SetIntegrator());
190  opal->create(new Static());
191  opal->create(new Stop());
192  opal->create(new Quit());
193  opal->create(new PSystem());
194  opal->create(new System());
195  opal->create(new ThreadAll());
196  opal->create(new ThreadBpm());
197  opal->create(new Title());
198  opal->create(new TrackCmd());
199  opal->create(new Twiss3());
200  opal->create(new Aperture());
201  opal->create(new MSplit());
202  opal->create(new Value());
203  opal->create(new What());
204  }
205 
206 
207  void makeDefinitions() {
209  // Must create the value definitions first.
210  opal->create(new BoolConstant());
211  opal->create(new RealConstant());
212  opal->create(new RealVariable());
213  opal->create(new RealVector());
214  opal->create(new StringConstant());
215 
216  opal->create(new AttList());
217  opal->create(new Beam());
218  opal->create(new FieldSolver());
219  opal->create(new BoundaryGeometry());
220  opal->create(new OpalWake());
221  opal->create(new ParticleMatterInteraction());
222 
223  opal->create(new OpalFilter());
224  opal->create(new OpalTrimCoil());
225 
226  opal->create(new Distribution());
227 
228  opal->create(new MacroCmd());
229  opal->create(new Period());
230  opal->create(new Insertion());
231  opal->create(new Survey());
232 
233  opal->create(new DVar());
234  opal->create(new Objective());
235  opal->create(new Constraint());
236 
237  opal->create(new OpalSample());
238  }
239 
240 
241  void makeElements() {
243  opal->create(new OpalBeamStripping());
244  opal->create(new OpalCavity());
245  opal->create(new OpalCCollimator());
246  opal->create(new OpalCyclotron());
247  opal->create(new OpalDrift());
248  opal->create(new OpalECollimator());
249  opal->create(new OpalFlexibleCollimator());
250  opal->create(new OpalDegrader());
251  opal->create(new OpalHKicker());
252  opal->create(new OpalHMonitor());
253  opal->create(new OpalInstrument());
254  opal->create(new OpalKicker());
255  opal->create(new OpalMarker());
256  opal->create(new OpalMonitor());
257  opal->create(new OpalMultipole());
258  opal->create(new OpalMultipoleT());
259  opal->create(new OpalMultipoleTStraight());
262  opal->create(new OpalOctupole());
264 // opal->create(new OpalOffset::OpalLocalCylindricalOffset());
265 // opal->create(new OpalOffset::OpalGlobalCartesianOffset());
266 // opal->create(new OpalOffset::OpalGlobalCylindricalOffset());
267  opal->create(new OpalPatch());
268  opal->create(new OpalProbe());
269  opal->create(new OpalPepperPot());
271  opal->create(new OpalQuadrupole());
272  opal->create(new OpalRBend());
273  opal->create(new OpalRBend3D());
274  opal->create(new OpalRCollimator());
275  opal->create(new OpalSBend());
276  opal->create(new OpalSBend3D());
277  opal->create(new OpalScalingFFAMagnet());
278  opal->create(new OpalSeparator());
279  opal->create(new OpalSeptum());
280  opal->create(new OpalSextupole());
281  opal->create(new OpalSlit());
282  opal->create(new OpalSolenoid());
283  opal->create(new OpalSource());
284  opal->create(new OpalSRot());
285  opal->create(new OpalTravelingWave());
286  opal->create(new OpalVariableRFCavity());
288  opal->create(new OpalVerticalFFAMagnet());
289  opal->create(new OpalVKicker());
290  opal->create(new OpalVMonitor());
291  // opal->create(new OpalWire());
292  opal->create(new OpalYRot());
293  opal->create(new OpalParallelPlate());
294  opal->create(new OpalCyclotronValley());
295  opal->create(new OpalStripper());
296  opal->create(new Line());
297  opal->create(new Sequence());
298  opal->create(new OpalRingDefinition());
299  }
300 };
301 
302 namespace Configure {
303  void configure() {
304  makeDefinitions();
305  makeElements();
306  makeActions();
308  }
309 };
The REAL VECTOR definition.
Definition: RealVector.h:27
The EIGEN command.
Definition: Eigen.h:32
The SOURCE element.
Definition: OpalSource.h:11
The ATTLIST command.
Definition: AttList.h:31
The HMONITOR element.
Definition: OpalHMonitor.h:28
The STOP command.
Definition: Stop.h:28
The global OPAL structure.
Definition: OpalData.h:54
The OpalCyclotron element.
Definition: OpalCyclotron.h:29
The OPTION command.
Definition: Option.h:29
The QUADRUPOLE element.
void create(Object *newObject)
Create new object.
Definition: OpalData.cpp:524
The SAVE command.
Definition: Save.h:28
Definition: DVar.h:6
The FieldSolver definition.
Definition: FieldSolver.h:43
The VALUE command.
Definition: Value.h:28
The MONITOR element.
Definition: OpalMonitor.h:28
The SHOW command.
Definition: Show.h:28
The RCOLLIMATOR element.
The TRIMCOIL definition.
Definition: OpalTrimCoil.h:17
The TWISS command.
Definition: Period.h:28
The REAL VARIABLE definition.
Definition: RealVariable.h:26
The HKICKER element.
Definition: OpalHKicker.h:30
The SBEND element.
Definition: OpalSBend.h:30
The SYSTEM command.
Definition: System.h:28
The TWISS3 command.
Definition: Twiss3.h:32
The CCOLLIMATOR element.
The SEXTUPOLE element.
Definition: OpalSextupole.h:28
The YROT element.
Definition: OpalYRot.h:28
The Probe element.
Definition: OpalProbe.h:30
The ENVELOPE command.
Definition: Envelope.h:32
The WAKE definition.
Definition: OpalWake.h:34
The MULTIPOLE element.
Definition: OpalMultipole.h:28
The DUMP command.
Definition: Dump.h:28
The SOLENOID element.
Definition: OpalSolenoid.h:28
The MARKER element.
Definition: OpalMarker.h:28
static OpalData * getInstance()
Definition: OpalData.cpp:209
Class ThreadBpm.
Definition: ThreadBpm.h:29
The RFCAVITY element.
The KICKER element.
Definition: OpalKicker.h:30
The MATCH command.
Definition: MatchCmd.h:28
The SAMPLING definition.
Definition: OpalSample.h:15
The DEGRADER element.
Definition: OpalDegrader.h:29
The MAKESEQ command.
Definition: MakeSequence.h:28
The sequence editor SEQEDIT command.
Definition: EditCmd.h:28
Encapsulate the buffer for the ``archetypes'' of all macros.
Definition: MacroCmd.h:33
The LIST command.
Definition: List.h:32
The STRING CONSTANT definition.
The RBEND element.
Definition: OpalRBend3D.h:31
The SEQUENCE definition.
Definition: Sequence.h:38
The VMONITOR element.
Definition: OpalVMonitor.h:28
The TRACK command.
Definition: TrackCmd.h:28
The REAL CONSTANT definition.
Definition: RealConstant.h:27
The SAMPLE command.
Definition: SampleCmd.h:12
The ECOLLIMATOR element.
Class ThreadAll.
Definition: ThreadAll.h:30
The ParallelPlate element.
void configure()
Configure all commands.
Definition: Configure.cpp:303
Definition: Split.h:16
The Septum element.
Definition: OpalSeptum.h:29
The INSTRUMENT element.
The OPTIMIZE command.
Definition: OptimizeCmd.h:16
Class Micado.
Definition: Micado.h:33
The STATIC command.
Definition: Static.h:28
The QUIT command.
Definition: Quit.h:28
The PATCH element.
Definition: OpalPatch.h:28
The SELECT command.
Definition: Select.h:30
The BEAMSTRIPPING element.
The ECOLLIMATOR element.
Definition: OpalSlit.h:29
The BEAM definition.
Definition: Beam.h:35
The RBEND element.
Definition: OpalRBend.h:31
The SURVEY command.
Definition: Survey.h:38
The BOOL CONSTANT definition.
Definition: BoolConstant.h:27
The Stripper element.
Definition: OpalStripper.h:28
The ECHO command.
Definition: Echo.h:28
The MATRIX command.
Definition: MatrixCmd.h:32
The FILTER definition.
Definition: OpalFilter.h:32
The LINE definition.
Definition: Line.h:36
The ELSEPARATOR element.
Definition: OpalSeparator.h:28
The WHAT command.
Definition: What.h:28
The TWISSTRACK command.
Definition: Insertion.h:28
The HELP commands.
Definition: Help.h:28
The SETINT command.
Definition: SetIntegrator.h:27
The SYSTEM command.
Definition: PSystem.h:28
The ECOLLIMATOR element.
The TITLE command.
Definition: Title.h:28
The VKICKER element.
Definition: OpalVKicker.h:29
The DYNAMIC command.
Definition: Dynamic.h:28
The CALL command.
Definition: Call.h:28
void fillChanges()
Definition: changes.cpp:9
The SROT element.
Definition: OpalSRot.h:28
The OCTUPOLE element.
Definition: OpalOctupole.h:28