OPAL (Object Oriented Parallel Accelerator Library) 2024.2
OPAL
YCorrectorRep.cpp
Go to the documentation of this file.
1//
2// Class YCorrectorRep
3// Representation for an orbit corrector.
4// Acts on the vertical plane.
5//
6// Copyright (c) 200x - 2020, Paul Scherrer Institut, Villigen PSI, Switzerland
7// All rights reserved
8//
9// This file is part of OPAL.
10//
11// OPAL is free software: you can redistribute it and/or modify
12// it under the terms of the GNU General Public License as published by
13// the Free Software Foundation, either version 3 of the License, or
14// (at your option) any later version.
15//
16// You should have received a copy of the GNU General Public License
17// along with OPAL. If not, see <https://www.gnu.org/licenses/>.
18//
21
22namespace {
23 struct Entry {
24 const char *name;
25 double(YCorrectorRep::*get)() const;
26 void (YCorrectorRep::*set)(double);
27 };
28
29 const Entry entries[] = {
30 {
31 "L",
34 },
35 {
36 "BX",
39 },
40 { 0, 0, 0 }
41 };
42}
43
44
48
49
53
54
57{}
58
59
62
63
65 return new YCorrectorRep(*this);
66}
67
68
69Channel *YCorrectorRep::getChannel(const std::string &aKey, bool create) {
70 for(const Entry *entry = entries; entry->name != 0; ++entry) {
71 if(aKey == entry->name) {
72 return new IndirectChannel<YCorrectorRep>(*this, entry->get, entry->set);
73 }
74 }
75
76 return ElementBase::getChannel(aKey, create);
77}
78
79
83
84
85double YCorrectorRep::getBy() const {
86 return 0.0;
87}
88
89
91 // Do nothing.
92}
const std::string name
Plane
Plane selection.
Definition Corrector.h:40
@ Y
Corrector acts on y-plane.
Definition Corrector.h:46
virtual Channel * getChannel(const std::string &aKey, bool create=false)
Construct a read/write channel.
virtual double getElementLength() const
Get design length.
virtual void setElementLength(double length)
Set design length.
virtual double getBx() const
Get horizontal field component in Teslas.
virtual void setBx(double)
Set horizontal field component in Teslas.
virtual Channel * getChannel(const std::string &aKey, bool=false)
Construct a read/write channel.
virtual ElementBase * clone() const
Return clone.
virtual double getBy() const
Get field.
virtual void setBy(double)
Set field.
virtual ~YCorrectorRep()
virtual Plane getPlane() const
Get plane.
Abstract interface for read/write access to variable.
Definition Channel.h:32
Access to a [b]double[/b] data member.