OPAL (Object Oriented Parallel Accelerator Library)  2.2.0
OPAL
OpalMultipole.h
Go to the documentation of this file.
1 #ifndef OPAL_OpalMultipole_HH
2 #define OPAL_OpalMultipole_HH
3 
4 // ------------------------------------------------------------------------
5 // $RCSfile: OpalMultipole.h,v $
6 // ------------------------------------------------------------------------
7 // $Revision: 1.1.1.1 $
8 // ------------------------------------------------------------------------
9 // Copyright: see Copyright.readme
10 // ------------------------------------------------------------------------
11 //
12 // Class: OpalMultipole
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 
24 // Class OpalMultipole
25 // ------------------------------------------------------------------------
27 
28 class OpalMultipole: public OpalElement {
29 
30 public:
31 
33  enum {
34  KN = COMMON, // The normal field components.
35  DKN, // The normal field component errors.
36  KS, // The skewed field components.
37  DKS, // The skewed field component errors.
39  };
40 
42  OpalMultipole();
43 
44  virtual ~OpalMultipole();
45 
47  virtual OpalMultipole *clone(const std::string &name);
48 
50  // Handle printing in OPAL-8 format.
51  virtual void print(std::ostream &) const;
52 
54  virtual void fillRegisteredAttributes(const ElementBase &, ValueFlag);
55 
57  virtual void update();
58 
59 private:
60 
61  // Not implemented.
63  void operator=(const OpalMultipole &);
64 
65  // Clone constructor.
66  OpalMultipole(const std::string &name, OpalMultipole *parent);
67 };
68 
69 #endif // OPAL_OpalMultipole_HH
Interface for basic beam line object.
Definition: ElementBase.h:128
ValueFlag
Switch for value desired on ATTLIST command.
Definition: OpalElement.h:71
void operator=(const OpalMultipole &)
The MULTIPOLE element.
Definition: OpalMultipole.h:28
Base class for all beam line elements.
Definition: OpalElement.h:41
OpalMultipole()
Exemplar constructor.
virtual OpalMultipole * clone(const std::string &name)
Make clone.
virtual ~OpalMultipole()
const std::string name
virtual void print(std::ostream &) const
Print the object.
virtual void update()
Update the embedded CLASSIC multipole.
virtual void fillRegisteredAttributes(const ElementBase &, ValueFlag)
Fill in all registered attributes.