OPAL (Object Oriented Parallel Accelerator Library) 2022.1
OPAL
OpalRBend3D.h
Go to the documentation of this file.
1//
2// Class OpalRBend
3// The parent class of all OPAL bending magnets.
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_OpalRBend3D_HH
19#define OPAL_OpalRBend3D_HH
20
21#include "Elements/OpalBend.h"
22
23class OpalWake;
25
26class OpalRBend3D: public OpalElement {
27
28public:
29
30 enum {
31 ANGLE = COMMON, // The bend angle.
32 K0, K0S, // The multipole coefficients; must be in this order.
33 E1, // The edge angles.
34 FMAPFN, // File name containing on-axis field.
35 GAP, // Full gap of magnet.
36 HAPERT, // Horizontal aperture of magnet.
37 DESIGNENERGY, // the design energy of the particles
38 SIZE // Total number of attributes.
39 };
40
43
44 virtual ~OpalRBend3D();
45
47 virtual OpalRBend3D* clone(const std::string& name);
48
50 virtual void update();
51
52 virtual void print(std::ostream&) const;
53
54private:
55
56 // Not implemented.
58 void operator=(const OpalRBend3D&);
59
60 // Clone constructor.
61 OpalRBend3D(const std::string& name, OpalRBend3D* parent);
62
65};
66
67#endif // OPAL_OpalRBend3D_HH
const std::string name
OpalWake * owk_m
Definition: OpalRBend3D.h:63
virtual void update()
Update the embedded CLASSIC bend.
Definition: OpalRBend3D.cpp:72
virtual void print(std::ostream &) const
Print the object.
void operator=(const OpalRBend3D &)
OpalRBend3D(const OpalRBend3D &)
virtual OpalRBend3D * clone(const std::string &name)
Make clone.
Definition: OpalRBend3D.cpp:67
OpalRBend3D()
Exemplar constructor.
Definition: OpalRBend3D.cpp:28
ParticleMatterInteraction * parmatint_m
Definition: OpalRBend3D.h:64
virtual ~OpalRBend3D()
Definition: OpalRBend3D.cpp:62