1 #ifndef _GEOMETRY_TWOC_H_
2 #define _GEOMETRY_TWOC_H_
13 // forward declaration
26 // end forward declaration
32 * \brief A Geometry for the Vertical eulerian 4 circle soleil generic diffractometer.
34 class Vertical
: public Geometry
38 Vertical(void); //!< Default constructor.
40 Vertical(Vertical
const & geometry
); //!< Copy Constructor.
45 * @param omega The value of the "omega" Axe.
46 * @param two_theta The value of the "2theta" Axe.
48 Vertical(double const & omega
, double const & two_theta
);
50 virtual ~Vertical(void); //!< Default destructor.
53 * \brief Assignation of the Geometry.
54 * \param geometry The Geometry to assign.
56 Vertical
& operator=(Vertical
const & geometry
);
59 * @brief Get the omega axe.
60 * @return A pointer on the omega axe.
68 * @brief Get the tth axe.
69 * @return A pointer on the tth axe.
77 * @brief Get the omega axe.
78 * @return A pointer on the omega axe.
80 Axe
* const & omega(void) const
86 * @brief Get the tth axe.
87 * @return A pointer on the tth axe.
89 Axe
* const & tth(void) const
95 * @brief Set the angles of the eulerian4CD::Vertical geometry.
97 * @param omega The value of the "omega" Axe.
98 * @param two_theta The value of the "2theta" Axe.
100 void setAngles(double const & omega
, double const & two_theta
);
103 * @brief Set a TwoC::Vertical Geometry from an other Geometry.
104 * @param geometry The Geometry.
105 * @param strict if stric geometry are equivalent, if not update only the necessary axes.
106 * @throw HKLException depending of the true type of the geometry.
108 * The stric parameter is use to specifi witch axxes must be update from the geometry
109 * and if exception must be throw depending of the value of the axes.
111 * eulerian4C::Vertical(omega = 30, chi = 10, phi = 15, two_theta = 60) -> throw an exception because chi <> phi <> 0
112 * but if stric = false no exception is throw.
114 void setFromGeometry(geometry::eulerian4C::Vertical
const & geometry
, bool const & strict
) throw (HKLException
);
117 * @brief Set a TwoC::Vertical Geometry from an other Geometry.
118 * @param geometry The Geometry.
119 * @param strict if stric geometry are equivalent, if not update only the necessary axes.
120 * @throw HKLException depending of the true type of the geometry.
122 * The stric parameter is use to specifi witch axxes must be update from the geometry
123 * and if exception must be throw depending of the value of the axes.
125 * eulerian4C::Vertical(omega = 30, chi = 10, phi = 15, two_theta = 60) -> throw an exception because chi <> phi <> 0
126 * but if stric = false no exception is throw.
128 void setFromGeometry(geometry::kappa4C::Vertical
const & geometry
, bool const & strict
) throw (HKLException
);
131 * @brief Set a TwoC::Vertical Geometry from an other Geometry.
132 * @param geometry The Geometry.
133 * @param strict if stric geometry are equivalent, if not update only the necessary axes.
134 * @throw HKLException depending of the true type of the geometry.
136 * The stric parameter is use to specifi witch axxes must be update from the geometry
137 * and if exception must be throw depending of the value of the axes.
139 * eulerian4C::Vertical(omega = 30, chi = 10, phi = 15, two_theta = 60) -> throw an exception because chi <> phi <> 0
140 * but if stric = false no exception is throw.
142 void setFromGeometry(geometry::Eulerian6C
const & geometry
, bool const & strict
) throw (HKLException
);
145 * @brief Set a TwoC::Vertical Geometry from an other Geometry.
146 * @param geometry The Geometry.
147 * @param strict if stric geometry are equivalent, if not update only the necessary axes.
148 * @throw HKLException depending of the true type of the geometry.
150 * The stric parameter is use to specifi witch axxes must be update from the geometry
151 * and if exception must be throw depending of the value of the axes.
153 * eulerian4C::Vertical(omega = 30, chi = 10, phi = 15, two_theta = 60) -> throw an exception because chi <> phi <> 0
154 * but if stric = false no exception is throw.
156 void setFromGeometry(geometry::Kappa6C
const & geometry
, bool const & strict
) throw (HKLException
);
159 Axe
* _omega
; //!< The omega Axe.
160 Axe
* _tth
; //!< The tth Axe.
163 } // namespace eulerian4C
164 } // namespace geometry
167 #endif // _GEOMETRY_TWOC_H_