OPAL (Object Oriented Parallel Accelerator Library)  2.2.0
OPAL
OpalCyclotron.h
Go to the documentation of this file.
1 #ifndef OPAL_OpalCyclotron_HH
2 #define OPAL_OpalCyclotron_HH
3 
4 // ------------------------------------------------------------------------
5 // $RCSfile: OpalCyclotron.h,v $
6 // ------------------------------------------------------------------------
7 // $Revision: 1.1.1.1 $
8 // ------------------------------------------------------------------------
9 // Copyright: see Copyright.readme
10 // ------------------------------------------------------------------------
11 //
12 // Class: OpalCyclotron
13 //
14 // ------------------------------------------------------------------------
15 //
16 // $Date: 2000/03/27 09:33:39 $
17 // $Author: Andreas Adelmann $
18 //
19 // ------------------------------------------------------------------------
20 
21 #include "Elements/OpalElement.h"
22 
23 class BoundaryGeometry;
24 
25 // Class OpalCyclotron
26 // ------------------------------------------------------------------------
28 
29 class OpalCyclotron: public OpalElement {
30 
31 public:
32 
36  enum {
38  GEOMETRY, // geometry of boundary
39  CYHARMON, // The harmonic number of the cyclotron
40  SYMMETRY, // The symetry of the field
41  RINIT, // The initial radius [mm]
42  PRINIT, // The initial radial momentum [pr/p0] []
43  PHIINIT, // The initial phase [deg]
44  ZINIT, // The initial z coordinate [mm]
45  PZINIT, // The initial vertical momentum [pz/p0] []
46  RFFREQ, // First hamonic of the RF system [MHz]
47  FMAPFN, // The filename of the mid-plane fieldmap
48  RFMAPFN, // The filename(s) of the RF fieldmap
49  RFFCFN, // The filename(s) of coefficients for RF frequency function f(t)
50  RFVCFN, // The filename(s) of coefficients for RF voltage function v(t)
51  BSCALE, // A scalar to scale the B-field
52  ESCALE, // A scalar to scale the RF field
53  RFPHI, // the initial phase of RF field
54  SUPERPOSE, // whether the electric field map are superposed or not
55  MINZ, // minimal vertical extend of the machine
56  MAXZ, // maximal vertical extend of the machine
57  MINR, // minimal radial extend of the machine
58  MAXR, // maximal radial extend of the machine
59  FMLOWE, // minimal energy of the field map
60  FMHIGHE, // maximal energy of the field map
61  SPIRAL, // flag whether or not this is a spiral inflector simulation
62  TRIMCOILTHRESHOLD, // minimum B-field for which trim coils are applied
63  TRIMCOIL, // list of trim coils
65  };
66 
67 
68 
70  OpalCyclotron();
71 
72  virtual ~OpalCyclotron();
73 
75  virtual OpalCyclotron *clone(const std::string &name);
76 
78  virtual void fillRegisteredAttributes(const ElementBase &, ValueFlag);
79 
81  virtual void update();
82 
83 private:
84 
85  // Not implemented.
87  void operator=(const OpalCyclotron &);
88 
89  // Clone constructor.
90  OpalCyclotron(const std::string &name, OpalCyclotron *parent);
91 
93 
94 };
95 
96 #endif // OPAL_OpalCyclotron_HH
BoundaryGeometry * obgeo_m
Definition: OpalCyclotron.h:92
The OpalCyclotron element.
Definition: OpalCyclotron.h:29
Interface for basic beam line object.
Definition: ElementBase.h:128
virtual void update()
Update the embedded CLASSIC cavity.
ValueFlag
Switch for value desired on ATTLIST command.
Definition: OpalElement.h:71
virtual ~OpalCyclotron()
Base class for all beam line elements.
Definition: OpalElement.h:41
virtual OpalCyclotron * clone(const std::string &name)
Make clone.
OpalCyclotron()
Exemplar constructor.
const std::string name
virtual void fillRegisteredAttributes(const ElementBase &, ValueFlag)
Fill in all registered attributes.
void operator=(const OpalCyclotron &)