OPAL (Object Oriented Parallel Accelerator Library)  2024.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 
25 class Beamline;
26 
27 
28 // Class BeamlineGeometry
29 // ------------------------------------------------------------------------
31 
33 
34 public:
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 
94 private:
95 
96  // Not implemented.
99  void operator=(const BeamlineGeometry &);
100 
101  // The beamline whose geometry [b]this[/b] represents.
103 };
104 
105 #endif // CLASSIC_BeamlineGeometry_HH
virtual double getExit() const
Get exit position.
Implements the composite geometry of a beam line.
virtual Euclid3D getTransform(double fromS, double toS) const
Get transform.
virtual Euclid3D getTotalTransform() const
Get transform.
virtual Euclid3D getEntranceFrame() const
Get transform.
Abstract base class for accelerator geometry classes.
Definition: Geometry.h:43
virtual double getElementLength() const
Get element length.
An abstract sequence of beam line components.
Definition: Beamline.h:34
virtual double getEntrance() const
Get entrance position.
virtual double getArcLength() const
Get arc length.
virtual ~BeamlineGeometry()
virtual Euclid3D getExitFrame() const
Get transform.
virtual double getOrigin() const
Get origin position.
Displacement and rotation in space.
Definition: Euclid3D.h:68
void operator=(const BeamlineGeometry &)
const Beamline & itsLine