OPALX (Object Oriented Parallel Accelerator Library for Exascal) master (dc2a29eed580)
OPALX
Loading...
Searching...
No Matches
LaserRep.h
Go to the documentation of this file.
1#ifndef OPALX_LaserRep_HH
2#define OPALX_LaserRep_HH
3
4#include "AbsBeamline/Laser.h"
6#include "Fields/NullField.h"
7
8class LaserRep : public Laser {
9public:
10 explicit LaserRep(const std::string& name);
11 LaserRep();
12 LaserRep(const LaserRep&);
13 ~LaserRep() override;
14
15 ElementBase* clone() const override;
16 Channel* getChannel(const std::string& aKey, bool create = false) override;
17
18 NullField& getField() override;
19 const NullField& getField() const override;
20
21 StraightGeometry& getGeometry() override;
22 const StraightGeometry& getGeometry() const override;
23
24private:
27};
28
29#endif // OPALX_LaserRep_HH
Abstract interface for read/write access to variable.
Definition Channel.h:30
StraightGeometry & getGeometry() override
Get geometry.
Definition LaserRep.cpp:41
NullField & getField() override
Return field.
Definition LaserRep.cpp:37
ElementBase * clone() const override
Return clone.
Definition LaserRep.cpp:25
Channel * getChannel(const std::string &aKey, bool create=false) override
Construct a read/write channel.
Definition LaserRep.cpp:27
StraightGeometry geometry_m
Definition LaserRep.h:26
~LaserRep() override
Definition LaserRep.cpp:23
NullField field_m
Definition LaserRep.h:25
Passive OPALX laser element.
Definition Laser.h:25
A zero electromagnetic field.
Definition NullField.h:29
A geometry representing a straight line.