OPALX (Object Oriented Parallel Accelerator Library for Exascal) master (dc2a29eed580)
OPALX
Loading...
Searching...
No Matches
Marker.h
Go to the documentation of this file.
1#ifndef OPALX_Marker_HH
2#define OPALX_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
25
26// Class Marker
27// ------------------------------------------------------------------------
29// Class Marker defines the abstract interface for a marker element.
30
31class Marker : public Component {
32public:
34 explicit Marker(const std::string& name);
35
36 Marker();
37 Marker(const Marker&);
38 virtual ~Marker();
39
41 virtual void accept(BeamlineVisitor&) const override;
42
43 virtual void initialise(PartBunch_t* bunch, double& startField, double& endField) override;
44
45 virtual void finalise() override;
46
47 virtual bool bends() const override;
48
49 virtual ElementType getType() const override;
50
51 virtual void getFieldExtend(double& zBegin, double& zEnd) const override;
52
53 virtual int getRequiredNumberOfTimeSteps() const override;
54
55private:
56 // Not implemented.
57 void operator=(const Marker&);
58};
59
60inline int Marker::getRequiredNumberOfTimeSteps() const { return 1; }
61
62#endif // OPALX_Marker_HH
Defines the abstract interface for a single beamline component in the accelerator model.
ElementType
Definition ElementBase.h:94
Interface for a marker.
Definition Marker.h:31
virtual bool bends() const override
Definition Marker.cpp:43
virtual void finalise() override
Definition Marker.cpp:41
virtual int getRequiredNumberOfTimeSteps() const override
Definition Marker.h:60
void operator=(const Marker &)
virtual ElementType getType() const override
Get element type std::string.
Definition Marker.cpp:47
virtual void initialise(PartBunch_t *bunch, double &startField, double &endField) override
Definition Marker.cpp:37
virtual void accept(BeamlineVisitor &) const override
Apply visitor to Marker.
Definition Marker.cpp:35
Marker()
Definition Marker.cpp:27
virtual void getFieldExtend(double &zBegin, double &zEnd) const override
Return the field-support extent of the component.
Definition Marker.cpp:45
virtual ~Marker()
Definition Marker.cpp:33