OPALX (Object Oriented Parallel Accelerator Library for Exascal) MINIorX
OPALX
Beamline.h
Go to the documentation of this file.
1#ifndef CLASSIC_Beamline_HH
2#define CLASSIC_Beamline_HH
3
4// ------------------------------------------------------------------------
5// $RCSfile: Beamline.h,v $
6// ------------------------------------------------------------------------
7// $Revision: 1.1.1.1 $
8// ------------------------------------------------------------------------
9// Copyright: see Copyright.readme
10// ------------------------------------------------------------------------
11//
12// Class: Beamline
13//
14// ------------------------------------------------------------------------
15// Class category: Beamlines
16// ------------------------------------------------------------------------
17//
18// $Date: 2000/03/27 09:32:34 $
19// $Author: fci $
20//
21// ------------------------------------------------------------------------
22
24
26
27// Class Beamline
28// ------------------------------------------------------------------------
30// A beam line is built as a list of objects derived from ElmPtr. Each
31// ElmPtr (``element pointer'') points to a ElementBase, and may contain
32// additional data describing the position, like lattice functions etc.
33
34class Beamline : public ElementBase {
35public:
37 explicit Beamline(const std::string& name);
38
39 Beamline();
40 Beamline(const Beamline&);
41 virtual ~Beamline();
42
44 // If the parameter [b]reverse[/b] is true, theline is traversed in
45 // reverse direction. If any error occurs, this method may throw an
46 // exception.
47 virtual void iterate(BeamlineVisitor&, bool reverse) const = 0;
48
49 virtual Vector_t<double, 3> getOrigin3D() const;
50 virtual Quaternion getInitialDirection() const;
51 virtual bool getRelativeFlag() const;
52
53private:
54 // Not implemented.
55 void operator=(const Beamline&);
56};
57
58#endif // CLASSIC_Beamline_HH
ippl::Vector< T, Dim > Vector_t
ElementBase(const std::string &name)
Constructor with given name.
virtual ~Beamline()
Definition Beamline.cpp:46
virtual bool getRelativeFlag() const
Definition Beamline.cpp:57
virtual void iterate(BeamlineVisitor &, bool reverse) const =0
Apply visitor to all elements of the line.
virtual Quaternion getInitialDirection() const
Definition Beamline.cpp:53
void operator=(const Beamline &)
Beamline(const std::string &name)
Constructor with given name.
Definition Beamline.cpp:40
virtual Vector_t< double, 3 > getOrigin3D() const
Definition Beamline.cpp:49