OPAL (Object Oriented Parallel Accelerator Library)
2024.1
OPAL
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
src
Elements
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
23
class
OpalWake
;
24
class
ParticleMatterInteraction
;
25
26
class
OpalRBend3D
:
public
OpalElement
{
27
28
public
:
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
42
OpalRBend3D
();
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
54
private
:
55
56
// Not implemented.
57
OpalRBend3D
(
const
OpalRBend3D
&);
58
void
operator=
(
const
OpalRBend3D
&);
59
60
// Clone constructor.
61
OpalRBend3D
(
const
std::string&
name
,
OpalRBend3D
* parent);
62
63
OpalWake
*
owk_m
;
64
ParticleMatterInteraction
*
parmatint_m
;
65
};
66
67
#endif // OPAL_OpalRBend3D_HH
OpalRBend3D
Definition:
OpalRBend3D.h:26
OpalRBend3D::HAPERT
Definition:
OpalRBend3D.h:36
OpalRBend3D::GAP
Definition:
OpalRBend3D.h:35
OpalRBend3D::clone
virtual OpalRBend3D * clone(const std::string &name)
Make clone.
Definition:
OpalRBend3D.cpp:67
OpalRBend3D::K0
Definition:
OpalRBend3D.h:32
OpalWake
Definition:
OpalWake.h:26
OpalRBend3D::OpalRBend3D
OpalRBend3D()
Exemplar constructor.
Definition:
OpalRBend3D.cpp:28
OpalRBend3D::operator=
void operator=(const OpalRBend3D &)
OpalElement
Definition:
OpalElement.h:28
OpalRBend3D::FMAPFN
Definition:
OpalRBend3D.h:34
OpalRBend3D::update
virtual void update()
Update the embedded CLASSIC bend.
Definition:
OpalRBend3D.cpp:72
OpalRBend3D::owk_m
OpalWake * owk_m
Definition:
OpalRBend3D.h:63
OpalRBend3D::E1
Definition:
OpalRBend3D.h:33
OpalRBend3D::ANGLE
Definition:
OpalRBend3D.h:31
OpalBend.h
OpalRBend3D::K0S
Definition:
OpalRBend3D.h:32
name
const std::string name
Definition:
MaxNormRadialPeak.cpp:32
OpalRBend3D::DESIGNENERGY
Definition:
OpalRBend3D.h:37
OpalRBend3D::parmatint_m
ParticleMatterInteraction * parmatint_m
Definition:
OpalRBend3D.h:64
ParticleMatterInteraction
Definition:
ParticleMatterInteraction.h:34
OpalRBend3D::SIZE
Definition:
OpalRBend3D.h:38
OpalElement::COMMON
Definition:
OpalElement.h:56
OpalRBend3D::~OpalRBend3D
virtual ~OpalRBend3D()
Definition:
OpalRBend3D.cpp:62
OpalRBend3D::print
virtual void print(std::ostream &) const
Print the object.
Definition:
OpalRBend3D.cpp:152
Generated on Tue Jul 2 2024 15:05:24 for OPAL (Object Oriented Parallel Accelerator Library) by
1.8.5