OPAL (Object Oriented Parallel Accelerator Library)  2.2.0
OPAL
OpalRBend3D.h
Go to the documentation of this file.
1 #ifndef OPAL_OpalRBend3D_HH
2 #define OPAL_OpalRBend3D_HH
3 
4 // ------------------------------------------------------------------------
5 // $RCSfile: OpalRBend3D.h,v $
6 // ------------------------------------------------------------------------
7 // $Revision: 1.3 $
8 // ------------------------------------------------------------------------
9 // Copyright: see Copyright.readme
10 // ------------------------------------------------------------------------
11 //
12 // Class: OpalRBend3D
13 //
14 // ------------------------------------------------------------------------
15 //
16 // $Date: 2001/08/24 19:35:09 $
17 // $Author: jsberg $
18 //
19 // ------------------------------------------------------------------------
20 
21 #include "Elements/OpalBend.h"
22 
23 class OpalWake;
25 
26 //
27 // Class OpalRBend3D
28 // ------------------------------------------------------------------------
30 
31 class OpalRBend3D: public OpalElement {
32 
33 public:
34 
35  enum {
36  ANGLE = COMMON, // The bend angle.
37  K0, K0S, // The multipole coefficients; must be in this order.
38  E1, // The edge angles.
39  FMAPFN, // File name containing on-axis field.
40  GAP, // Full gap of magnet.
41  HAPERT, // Horizontal aperture of magnet.
42  DESIGNENERGY, // the design energy of the particles
43  SIZE // Total number of attributes.
44  };
45 
47  OpalRBend3D();
48 
49  virtual ~OpalRBend3D();
50 
52  virtual OpalRBend3D *clone(const std::string &name);
53 
55  virtual void fillRegisteredAttributes(const ElementBase &, ValueFlag);
56 
58  virtual void update();
59 
60  virtual void print(std::ostream &) const;
61 
62 private:
63 
64  // Not implemented.
65  OpalRBend3D(const OpalRBend3D &);
66  void operator=(const OpalRBend3D &);
67 
68  // Clone constructor.
69  OpalRBend3D(const std::string &name, OpalRBend3D *parent);
70 
73 };
74 
75 #endif // OPAL_OpalRBend3D_HH
Interface for basic beam line object.
Definition: ElementBase.h:128
OpalRBend3D()
Exemplar constructor.
Definition: OpalRBend3D.cpp:30
ValueFlag
Switch for value desired on ATTLIST command.
Definition: OpalElement.h:71
virtual void print(std::ostream &) const
Print the object.
The WAKE definition.
Definition: OpalWake.h:34
OpalWake * owk_m
Definition: OpalRBend3D.h:71
virtual ~OpalRBend3D()
Definition: OpalRBend3D.cpp:74
The RBEND element.
Definition: OpalRBend3D.h:31
Base class for all beam line elements.
Definition: OpalElement.h:41
virtual void fillRegisteredAttributes(const ElementBase &, ValueFlag)
Fill in all registered attributes.
Definition: OpalRBend3D.cpp:87
void operator=(const OpalRBend3D &)
const std::string name
ParticleMatterInteraction * parmatint_m
Definition: OpalRBend3D.h:72
virtual OpalRBend3D * clone(const std::string &name)
Make clone.
Definition: OpalRBend3D.cpp:81
virtual void update()
Update the embedded CLASSIC bend.
Definition: OpalRBend3D.cpp:91