OPAL (Object Oriented Parallel Accelerator Library)
2024.2
OPAL
OpalRingDefinition.h
Go to the documentation of this file.
1
//
2
// Class OpalRingDefinition
3
// The Opal Ring element.
4
//
5
// Copyright (c) 2012 - 2023, Chris Rogers, STFC Rutherford Appleton Laboratory, Didcot, UK
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_OpalRingDefinition_HH
19
#define OPAL_OpalRingDefinition_HH
20
21
#include "
Elements/OpalElement.h
"
22
23
class
Ring
;
24
30
31
class
OpalRingDefinition
:
public
OpalElement
{
32
public
:
34
enum
{
35
LAT_RINIT
=
COMMON
,
36
LAT_PHIINIT
,
37
LAT_THETAINIT
,
38
BEAM_RINIT
,
39
BEAM_PHIINIT
,
40
BEAM_THETAINIT
,
41
BEAM_PRINIT
,
42
HARMONIC_NUMBER
,
43
SYMMETRY
,
44
SCALE
,
45
RFFREQ
,
46
IS_CLOSED
,
47
MIN_R
,
48
MAX_R
,
49
SIZE
// size of the enum
50
};
51
53
OpalRingDefinition
();
54
56
virtual
~OpalRingDefinition
();
57
59
virtual
OpalRingDefinition
*
clone
(
const
std::string&
name
);
60
62
void
update
();
63
65
virtual
void
print
(std::ostream&)
const
;
66
67
private
:
68
// Not implemented.
69
OpalRingDefinition
(
const
OpalRingDefinition
&);
70
void
operator=
(
const
OpalRingDefinition
&);
71
72
// Clone constructor.
73
OpalRingDefinition
(
const
std::string&
name
,
OpalRingDefinition
* parent);
74
};
75
76
#endif
// OPAL_OpalRingDefinition_HH
OpalElement.h
name
const std::string name
Definition
MaxNormRadialPeak.cpp:32
Ring
Ring describes a ring type geometry for tracking.
Definition
Ring.h:53
OpalElement::COMMON
@ COMMON
Definition
OpalElement.h:56
OpalElement::OpalElement
OpalElement(int size, const char *name, const char *help)
Exemplar constructor.
Definition
OpalElement.cpp:40
OpalRingDefinition
Definition
OpalRingDefinition.h:31
OpalRingDefinition::HARMONIC_NUMBER
@ HARMONIC_NUMBER
Definition
OpalRingDefinition.h:42
OpalRingDefinition::SIZE
@ SIZE
Definition
OpalRingDefinition.h:49
OpalRingDefinition::BEAM_PHIINIT
@ BEAM_PHIINIT
Definition
OpalRingDefinition.h:39
OpalRingDefinition::SCALE
@ SCALE
Definition
OpalRingDefinition.h:44
OpalRingDefinition::LAT_THETAINIT
@ LAT_THETAINIT
Definition
OpalRingDefinition.h:37
OpalRingDefinition::RFFREQ
@ RFFREQ
Definition
OpalRingDefinition.h:45
OpalRingDefinition::IS_CLOSED
@ IS_CLOSED
Definition
OpalRingDefinition.h:46
OpalRingDefinition::BEAM_THETAINIT
@ BEAM_THETAINIT
Definition
OpalRingDefinition.h:40
OpalRingDefinition::LAT_RINIT
@ LAT_RINIT
Definition
OpalRingDefinition.h:35
OpalRingDefinition::LAT_PHIINIT
@ LAT_PHIINIT
Definition
OpalRingDefinition.h:36
OpalRingDefinition::BEAM_RINIT
@ BEAM_RINIT
Definition
OpalRingDefinition.h:38
OpalRingDefinition::SYMMETRY
@ SYMMETRY
Definition
OpalRingDefinition.h:43
OpalRingDefinition::MIN_R
@ MIN_R
Definition
OpalRingDefinition.h:47
OpalRingDefinition::MAX_R
@ MAX_R
Definition
OpalRingDefinition.h:48
OpalRingDefinition::BEAM_PRINIT
@ BEAM_PRINIT
Definition
OpalRingDefinition.h:41
OpalRingDefinition::print
virtual void print(std::ostream &) const
Definition
OpalRingDefinition.cpp:86
OpalRingDefinition::operator=
void operator=(const OpalRingDefinition &)
OpalRingDefinition::~OpalRingDefinition
virtual ~OpalRingDefinition()
Definition
OpalRingDefinition.cpp:95
OpalRingDefinition::OpalRingDefinition
OpalRingDefinition()
Definition
OpalRingDefinition.cpp:28
OpalRingDefinition::clone
virtual OpalRingDefinition * clone(const std::string &name)
Definition
OpalRingDefinition.cpp:82
OpalRingDefinition::update
void update()
Definition
OpalRingDefinition.cpp:97
OpalRingDefinition::OpalRingDefinition
OpalRingDefinition(const OpalRingDefinition &)