OPAL (Object Oriented Parallel Accelerator Library)  2.2.0
OPAL
Separator.h
Go to the documentation of this file.
1 #ifndef CLASSIC_Separator_HH
2 #define CLASSIC_Separator_HH
3 
4 // ------------------------------------------------------------------------
5 // $RCSfile: Separator.h,v $
6 // ------------------------------------------------------------------------
7 // $Revision: 1.1.1.1 $
8 // ------------------------------------------------------------------------
9 // Copyright: see Copyright.readme
10 // ------------------------------------------------------------------------
11 //
12 // Class: Separator
13 // Defines the abstract interface for an separator.
14 //
15 // ------------------------------------------------------------------------
16 // Class category: AbsBeamline
17 // ------------------------------------------------------------------------
18 //
19 // $Date: 2000/03/27 09:32:31 $
20 // $Author: fci $
21 //
22 // ------------------------------------------------------------------------
23 
24 #include "AbsBeamline/Component.h"
25 
26 
27 // Class Separator
28 // ------------------------------------------------------------------------
30 // Class Separator defines the abstract interface for electrostatic
31 // separators.
32 
33 class Separator: public Component {
34 
35 public:
36 
38  explicit Separator(const std::string &name);
39 
40  Separator();
41  Separator(const Separator &);
42  virtual ~Separator();
43 
45  virtual void accept(BeamlineVisitor &) const override;
46 
48  virtual double getEx() const = 0;
49 
51  virtual double getEy() const = 0;
52 
53  virtual void initialise(PartBunchBase<double, 3> *bunch, double &startField, double &endField) override;
54 
55  virtual void finalise() override;
56 
57  virtual bool bends() const override;
58 
59  virtual ElementBase::ElementType getType() const override;
60 
61  virtual void getDimensions(double &zBegin, double &zEnd) const override;
62 
63 private:
64 
65  // Not implemented.
66  void operator=(const Separator &);
67 };
68 
69 #endif // CLASSIC_Separator_HH
virtual ElementBase::ElementType getType() const override
Get element type std::string.
Definition: Separator.cpp:67
virtual void finalise() override
Definition: Separator.cpp:55
Interface for electrostatic separator.
Definition: Separator.h:33
virtual void getDimensions(double &zBegin, double &zEnd) const override
Definition: Separator.cpp:62
virtual bool bends() const override
Definition: Separator.cpp:58
virtual double getEx() const =0
Get horizontal component Ex of field in V/m.
virtual double getEy() const =0
Get vertical component Ey of field in V/m.
virtual ~Separator()
Definition: Separator.cpp:43
const std::string name
Interface for a single beam element.
Definition: Component.h:51
virtual void initialise(PartBunchBase< double, 3 > *bunch, double &startField, double &endField) override
Definition: Separator.cpp:51
Abstract algorithm.
void operator=(const Separator &)
virtual void accept(BeamlineVisitor &) const override
Apply visitor to Separator.
Definition: Separator.cpp:47