OPAL (Object Oriented Parallel Accelerator Library) 2022.1
OPAL
BeamlineGeometry.h
Go to the documentation of this file.
1#ifndef CLASSIC_BeamlineGeometry_HH
2#define CLASSIC_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
28// Class BeamlineGeometry
29// ------------------------------------------------------------------------
31
33
34public:
35
37 // The geometry is linked to th beamline [b]line[/b].
38 explicit BeamlineGeometry(const Beamline &line);
39
40 virtual ~BeamlineGeometry();
41
43 // Return the length of the geometry, measured along the design orbit.
44 virtual double getArcLength() const;
45
47 // Return the length of the geometry, measured along the design polygone.
48 virtual double getElementLength() const;
49
51 // Return the arc length from the entrance to the origin of the
52 // geometry (non-negative).
53 virtual double getOrigin() const;
54
56 // Return the arc length from the origin to the entrance of the
57 // geometry (non-positive0)
58 virtual double getEntrance() const;
59
61 // Return the arc length from the origin to the exit of the
62 // geometry (non-negative).
63 virtual double getExit() const;
64
66 // Return the transform of the local coordinate system from the
67 // position [b]fromS[/b] to the position [b]toS[/b].
68 virtual Euclid3D getTransform(double fromS, double toS) const;
69
71 // Equivalent to getTransform(0.0, s).
72 // Return the transform of the local coordinate system from the
73 // origin and [b]s[/b].
74 virtual Euclid3D getTransform(double s) const;
75
77 // Equivalent to getTransform(getEntrance(), getExit()).
78 // Return the transform of the local coordinate system from the
79 // entrance to the exit of the element.
80 virtual Euclid3D getTotalTransform() const;
81
83 // Equivalent to getTransform(0.0, getEntrance()).
84 // Return the transform of the local coordinate system from the
85 // origin to the entrance of the element.
86 virtual Euclid3D getEntranceFrame() const;
87
89 // Equivalent to getTransform(0.0, getExit()).
90 // Return the transform of the local coordinate system from the
91 // origin to the exit of the element.
92 virtual Euclid3D getExitFrame() const;
93
94private:
95
96 // Not implemented.
100
101 // The beamline whose geometry [b]this[/b] represents.
103};
104
105#endif // CLASSIC_BeamlineGeometry_HH
Displacement and rotation in space.
Definition: Euclid3D.h:68
Abstract base class for accelerator geometry classes.
Definition: Geometry.h:43
An abstract sequence of beam line components.
Definition: Beamline.h:34
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 ~BeamlineGeometry()
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.