OPAL (Object Oriented Parallel Accelerator Library)  2.2.0
OPAL
SolenoidRep.h
Go to the documentation of this file.
1 #ifndef CLASSIC_SolenoidRep_HH
2 #define CLASSIC_SolenoidRep_HH
3 
4 // ------------------------------------------------------------------------
5 // $RCSfile: SolenoidRep.h,v $
6 // ------------------------------------------------------------------------
7 // $Revision: 1.1.1.1 $
8 // ------------------------------------------------------------------------
9 // Copyright: see Copyright.readme
10 // ------------------------------------------------------------------------
11 //
12 // Class: SolenoidRep
13 //
14 // ------------------------------------------------------------------------
15 // Class category: BeamlineCore
16 // ------------------------------------------------------------------------
17 //
18 // $Date: 2000/03/27 09:32:34 $
19 // $Author: fci $
20 //
21 // ------------------------------------------------------------------------
22 
23 #include "AbsBeamline/Solenoid.h"
25 #include "Fields/ConstBzField.h"
26 
27 
28 // Class SolenoidRep
29 // ------------------------------------------------------------------------
31 
32 class SolenoidRep: public Solenoid {
33 
34 public:
35 
37  explicit SolenoidRep(const std::string &name);
38 
39  SolenoidRep();
40  SolenoidRep(const SolenoidRep &);
41  virtual ~SolenoidRep();
42 
44  // Return an identical deep copy of the element.
45  virtual ElementBase *clone() const;
46 
48  // This method constructs a Channel permitting read/write access to
49  // the attribute [b]aKey[/b] and returns it.
50  // If the attribute does not exist, it returns NULL.
51  virtual Channel *getChannel(const std::string &aKey, bool = false);
52 
54  // Version for non-constant object.
55  virtual ConstBzField &getField();
56 
58  // Version for constant object.
59  virtual const ConstBzField &getField() const;
60 
62  // Version for non-constant object.
63  virtual StraightGeometry &getGeometry();
64 
66  // Version for constant object.
67  virtual const StraightGeometry &getGeometry() const;
68 
70  // Return the image of the element, containing the name and type string
71  // of the element, and a copy of the user-defined attributes.
72  virtual ElementImage *getImage() const;
73 
75  // Return the solenoid field in Teslas.
76  virtual double getBz() const;
77 
79  // Assign the solenoid field in Teslas.
80  virtual void setBz(double Bz);
81 
82 private:
83 
84  // Not implemented.
85  void operator=(const SolenoidRep &);
86 
89 
92 };
93 
94 #endif // CLASSIC_SolenoidRep_HH
virtual Channel * getChannel(const std::string &aKey, bool=false)
Construct a read/write channel.
Definition: SolenoidRep.cpp:83
void operator=(const SolenoidRep &)
Interface for basic beam line object.
Definition: ElementBase.h:128
virtual ElementImage * getImage() const
Construct an image.
virtual void setBz(double Bz)
Set field.
virtual ConstBzField & getField()
Get field.
Definition: SolenoidRep.cpp:94
Tepresentation for a solenoid magnet.
Definition: SolenoidRep.h:32
StraightGeometry geometry
The solenoid geometry.
Definition: SolenoidRep.h:88
An image of an element.
Definition: ElementImage.h:35
ConstBzField field
The solenoid field.
Definition: SolenoidRep.h:91
Interface for solenoids.
Definition: Solenoid.h:36
virtual ElementBase * clone() const
Return clone.
Definition: SolenoidRep.cpp:78
A geometry representing a straight line.
Abstract interface for read/write access to variable.
Definition: Channel.h:32
virtual double getBz() const
Get field.
const std::string name
A homogeneous magnetostatic field in z-direction.
Definition: ConstBzField.h:30
virtual StraightGeometry & getGeometry()
Get geometry.
virtual ~SolenoidRep()
Definition: SolenoidRep.cpp:74