OPALX (Object Oriented Parallel Accelerator Library for Exascal) master (dc2a29eed580)
OPALX
Loading...
Searching...
No Matches
BeamlineGeometry.h
Go to the documentation of this file.
1#ifndef OPALX_BeamlineGeometry_HH
2#define OPALX_BeamlineGeometry_HH
3
4// ------------------------------------------------------------------------
5// $RCSfile: BeamlineGeometry.h,v $
6// ------------------------------------------------------------------------
7// $Revision: 1.1.1.1 $
8// ------------------------------------------------------------------------
9// Copyright: see Copyright.readme
10// ------------------------------------------------------------------------
11//
12// Class: BeamlineGeometry
13//
14// ------------------------------------------------------------------------
15// Class category: Beamlines
16// ------------------------------------------------------------------------
17//
18// $Date: 2000/03/27 09:32:34 $
19// $Author: fci $
20//
21// ------------------------------------------------------------------------
22
24
25class Beamline;
26
27// Class BeamlineGeometry
28// ------------------------------------------------------------------------
30
32public:
34 // The geometry is linked to th beamline [b]line[/b].
35 explicit BeamlineGeometry(const Beamline& line);
36
37 virtual ~BeamlineGeometry();
38
40 // Return the length of the geometry, measured along the design orbit.
41 virtual double getArcLength() const;
42
44 // Return the length of the geometry, measured along the design polygone.
45 virtual double getElementLength() const;
46
48 // Return the arc length from the entrance to the origin of the
49 // geometry (non-negative).
50 virtual double getOrigin() const;
51
53 // Return the arc length from the origin to the entrance of the
54 // geometry (non-positive0)
55 virtual double getEntrance() const;
56
58 // Return the arc length from the origin to the exit of the
59 // geometry (non-negative).
60 virtual double getExit() const;
61
63 // Return the transform of the local coordinate system from the
64 // position [b]fromS[/b] to the position [b]toS[/b].
65 virtual Euclid3D getTransform(double fromS, double toS) const;
66
68 // Equivalent to getTransform(0.0, s).
69 // Return the transform of the local coordinate system from the
70 // origin and [b]s[/b].
71 virtual Euclid3D getTransform(double s) const;
72
74 // Equivalent to getTransform(getEntrance(), getExit()).
75 // Return the transform of the local coordinate system from the
76 // entrance to the exit of the element.
77 virtual Euclid3D getTotalTransform() const;
78
80 // Equivalent to getTransform(0.0, getEntrance()).
81 // Return the transform of the local coordinate system from the
82 // origin to the entrance of the element.
83 virtual Euclid3D getEntranceFrame() const;
84
86 // Equivalent to getTransform(0.0, getExit()).
87 // Return the transform of the local coordinate system from the
88 // origin to the exit of the element.
89 virtual Euclid3D getExitFrame() const;
90
91private:
92 // Not implemented.
96
97 // The beamline whose geometry [b]this[/b] represents.
99};
100
101#endif // OPALX_BeamlineGeometry_HH
Abstract base class for accelerator geometry classes.
Definition Geometry.h:42
Implements the composite geometry of a beam line.
const Beamline & itsLine
BeamlineGeometry(const BeamlineGeometry &)
void operator=(const BeamlineGeometry &)
virtual double getExit() const
Get exit position.
virtual Euclid3D getTransform(double fromS, double toS) const
Get transform.
virtual Euclid3D getEntranceFrame() const
Get transform.
virtual double getArcLength() const
Get arc length.
virtual double getElementLength() const
Get element length.
virtual Euclid3D getTotalTransform() const
Get transform.
virtual Euclid3D getExitFrame() const
Get transform.
virtual double getOrigin() const
Get origin position.
virtual double getEntrance() const
Get entrance position.
An abstract sequence of beam line components.
Definition Beamline.h:34
Displacement and rotation in space.
Definition Euclid3D.h:67