OPAL (Object Oriented Parallel Accelerator Library)  2.2.0
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 getEntrance() const
Get entrance position.
virtual Euclid3D getTotalTransform() const
Get transform.
virtual double getElementLength() const
Get element length.
virtual ~BeamlineGeometry()
Implements the composite geometry of a beam line.
virtual Euclid3D getExitFrame() const
Get transform.
void operator=(const BeamlineGeometry &)
virtual Euclid3D getEntranceFrame() const
Get transform.
Abstract base class for accelerator geometry classes.
Definition: Geometry.h:43
virtual double getArcLength() const
Get arc length.
Displacement and rotation in space.
Definition: Euclid3D.h:68
virtual Euclid3D getTransform(double fromS, double toS) const
Get transform.
An abstract sequence of beam line components.
Definition: Beamline.h:37
virtual double getOrigin() const
Get origin position.
const Beamline & itsLine
virtual double getExit() const
Get exit position.