OPAL (Object Oriented Parallel Accelerator Library) 2022.1
OPAL
OpalCyclotron.h
Go to the documentation of this file.
1//
2// Class OpalCyclotron
3// The OpalCyclotron element.
4//
5// Copyright (c) 200x - 2020, Paul Scherrer Institut, Villigen PSI, Switzerland
6// All rights reserved
7//
8// This file is part of OPAL.
9//
10// OPAL is free software: you can redistribute it and/or modify
11// it under the terms of the GNU General Public License as published by
12// the Free Software Foundation, either version 3 of the License, or
13// (at your option) any later version.
14//
15// You should have received a copy of the GNU General Public License
16// along with OPAL. If not, see <https://www.gnu.org/licenses/>.
17//
18#ifndef OPAL_OpalCyclotron_HH
19#define OPAL_OpalCyclotron_HH
20
22
24
26
27public:
28
30 enum {
31 GEOMETRY = COMMON, // geometry of boundary
32 CYHARMON, // The harmonic number of the cyclotron
33 SYMMETRY, // The symetry of the field
34 RINIT, // The initial radius [mm]
35 PRINIT, // The initial radial momentum [pr/p0] []
36 PHIINIT, // The initial phase [deg]
37 ZINIT, // The initial z coordinate [mm]
38 PZINIT, // The initial vertical momentum [pz/p0] []
39 RFFREQ, // First hamonic of the RF system [MHz]
40 FMAPFN, // The filename of the mid-plane fieldmap
41 RFMAPFN, // The filename(s) of the RF fieldmap
42 RFFCFN, // The filename(s) of coefficients for RF frequency function f(t)
43 RFVCFN, // The filename(s) of coefficients for RF voltage function v(t)
44 BSCALE, // A scalar to scale the B-field
45 ESCALE, // A scalar to scale the RF field
46 RFPHI, // the initial phase of RF field
47 SUPERPOSE, // whether the electric field map are superposed or not
48 MINZ, // minimal vertical extend of the machine
49 MAXZ, // maximal vertical extend of the machine
50 MINR, // minimal radial extend of the machine
51 MAXR, // maximal radial extend of the machine
52 FMLOWE, // minimal energy of the field map
53 FMHIGHE, // maximal energy of the field map
54 SPIRAL, // flag whether or not this is a spiral inflector simulation
55 TRIMCOILTHRESHOLD, // minimum B-field for which trim coils are applied
56 TRIMCOIL, // list of trim coils
57 SIZE
58 };
59
61
62 virtual ~OpalCyclotron();
63
65 virtual OpalCyclotron* clone(const std::string& name);
66
68 virtual void update();
69
70private:
71
72 // Not implemented.
75
76 // Clone constructor.
77 OpalCyclotron(const std::string& name, OpalCyclotron* parent);
78
80
81};
82
83#endif // OPAL_OpalCyclotron_HH
const std::string name
void operator=(const OpalCyclotron &)
virtual void update()
Update the embedded CLASSIC cavity.
virtual ~OpalCyclotron()
BoundaryGeometry * obgeo_m
Definition: OpalCyclotron.h:79
OpalCyclotron(const OpalCyclotron &)
virtual OpalCyclotron * clone(const std::string &name)
Make clone.