OPALX (Object Oriented Parallel Accelerator Library for Exascal) master (dc2a29eed580)
OPALX
Loading...
Searching...
No Matches
OpalBend.h
Go to the documentation of this file.
1#ifndef OPAL_OpalBend_HH
2#define OPAL_OpalBend_HH
3
4// ------------------------------------------------------------------------
5// $RCSfile: OpalBend.h,v $
6// ------------------------------------------------------------------------
7// $Revision: 1.1.1.1.4.1 $
8// ------------------------------------------------------------------------
9// Copyright: see Copyright.readme
10// ------------------------------------------------------------------------
11//
12// Class: OpalBend
13//
14// ------------------------------------------------------------------------
15//
16// $Date: 2004/11/12 20:10:11 $
17// $Author: adelmann $
18//
19// ------------------------------------------------------------------------
20
22
23// Class OpalBend
24// ------------------------------------------------------------------------
26// This class factors out the special behaviour for the DOOM interface
27// and the printing in OPAL format, as well as the bend attributes.
28
29class OpalBend : public OpalElement {
30public:
32 enum {
33 ANGLE = COMMON, // The bend angle.
35 K0S, // The multipole coefficients; must be in this order.
43 E2, // The edge angles.
45 H2, // The pole face curvatures.
47 FINT, // The fringing field parameters.
49 STEPSIZE, // Parameters used to determine slicing.
50 FMAPFN, // File name containing on-axis field.
51 GAP, // Full gap of magnet.
52 HAPERT, // Horizontal aperture of magnet.
53 ROTATION, // Magnet rotation about z axis.
54 DESIGNENERGY, // the design energy of the particles
55 GREATERTHANPI, // Boolean flag set to true if bend angle is greater
56 // than 180 degrees.
57 NSLICES, // The number of slices / steps per element for map tracking
58 SIZE // Total number of attributes.
59 };
60
62 OpalBend(const char* name, const char* help);
63
64 virtual ~OpalBend();
65
67 // Handle printing in OPAL-8 format.
68 virtual void print(std::ostream&) const;
69
70protected:
72 OpalBend(const std::string& name, OpalBend* parent);
73
74private:
75 // Not implemented.
77 void operator=(const OpalBend&);
78};
79
80#endif // OPAL_OpalBend_HH
Base class for all bending magnets.
Definition OpalBend.h:29
OpalBend(const OpalBend &)
@ GREATERTHANPI
Definition OpalBend.h:55
@ NSLICES
Definition OpalBend.h:57
@ ROTATION
Definition OpalBend.h:53
@ STEPSIZE
Definition OpalBend.h:49
@ DESIGNENERGY
Definition OpalBend.h:54
virtual ~OpalBend()
Definition OpalBend.cpp:61
void operator=(const OpalBend &)
virtual void print(std::ostream &) const
Print the bend magnet.
Definition OpalBend.cpp:63