OPAL (Object Oriented Parallel Accelerator Library)  2021.1.99
OPAL
Marker.h
Go to the documentation of this file.
1 #ifndef CLASSIC_Marker_HH
2 #define CLASSIC_Marker_HH
3 
4 // ------------------------------------------------------------------------
5 // $RCSfile: Marker.h,v $
6 // ------------------------------------------------------------------------
7 // $Revision: 1.1.1.1 $
8 // ------------------------------------------------------------------------
9 // Copyright: see Copyright.readme
10 // ------------------------------------------------------------------------
11 //
12 // Class: Marker
13 // Defines the abstract interface for a marker element.
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 Marker
28 // ------------------------------------------------------------------------
30 // Class Marker defines the abstract interface for a marker element.
31 
32 class Marker: public Component {
33 
34 public:
35 
37  explicit Marker(const std::string &name);
38 
39  Marker();
40  Marker(const Marker &);
41  virtual ~Marker();
42 
44  virtual void accept(BeamlineVisitor &) const override;
45 
46  virtual void initialise(PartBunchBase<double, 3> *bunch, double &startField, double &endField) override;
47 
48  virtual void finalise() override;
49 
50  virtual bool bends() const override;
51 
52  virtual ElementBase::ElementType getType() const override;
53 
54  virtual void getDimensions(double &zBegin, double &zEnd) const override;
55 
56  virtual int getRequiredNumberOfTimeSteps() const override;
57 
58 private:
59 
60  // Not implemented.
61  void operator=(const Marker &);
62 };
63 
64 inline
66 {
67  return 1;
68 }
69 
70 #endif // CLASSIC_Marker_HH
const std::string name
Interface for a single beam element.
Definition: Component.h:50
Interface for a marker.
Definition: Marker.h:32
virtual ElementBase::ElementType getType() const override
Get element type std::string.
Definition: Marker.cpp:67
virtual bool bends() const override
Definition: Marker.cpp:59
virtual void initialise(PartBunchBase< double, 3 > *bunch, double &startField, double &endField) override
Definition: Marker.cpp:52
virtual void finalise() override
Definition: Marker.cpp:56
virtual int getRequiredNumberOfTimeSteps() const override
Definition: Marker.h:65
void operator=(const Marker &)
virtual void getDimensions(double &zBegin, double &zEnd) const override
Definition: Marker.cpp:64
virtual void accept(BeamlineVisitor &) const override
Apply visitor to Marker.
Definition: Marker.cpp:48
Marker()
Definition: Marker.cpp:29
virtual ~Marker()
Definition: Marker.cpp:44