#ifndef SLANTEDTUBESECTION_HH #define SLANTEDTUBESECTION_HH //============================================================================ // // Class : SlantedTubeSection // Created : 13-FEB-1998 by Stephen Kahn // Purpose : Slanted Tube Section type GeometryElement. To be used // to descibe cells in the OH calorimeter. // Local coordinates in this volume are r, phi, and zeta. // Zeta = z - (r - r_centoid)*tan(slant_angle) // //============================================================================ #include #include #include #include namespace dgs { class CylindricalCoordinate; /** A slanted tube section. Slanted Tube Section type GeometryElement. To be used to descibe cells in the OH calorimeter. Local coordinates in this volume are r, phi, and zeta. Zeta = z - (r - r\_centoid)*tan(slant\_angle) */ class SlantedTubeSection : public TubularSection { private: /// Slant angle. double _slant_angle; /// tan(slant angle) double _tan_slant_angle; /// RCS version std::string _cvers; // Replaced at checkout public : /// Default constructor. SlantedTubeSection(): _cvers("$Revision: 1.5 $"){} /// Fill slanted tube section. void fill_SlantedTubeSection( const double, const double, const double, const double, const double, const double) ; /// Get slant angle. double get_slant_angle() { return _slant_angle;} /// Get inner radius. double get_inner_radius() { return TubularShell::get_inner_radius();} /// Get outer radius. double get_outer_radius() { return TubularShell::get_outer_radius();} /// Get zhalf. double get_zhalf() { return TubularShell::get_zhalf();} /// Get phi lower. double get_phi_lower() { return TubularSection::get_phi_lower();} /// Get phi upper. double get_phi_upper() { return TubularSection::get_phi_upper();} /// zeta from cylinder double zeta_from_cylind( double, double); /// Local to cartesian. CartesianCoordinate local_to_cartesian( double, double, double); /// Get center. CartesianCoordinate get_center() { return TubularSection::get_center(); } /// Get source code version. Kept to allow following code changes const std::string& code_version() const { return _cvers; } D0_OBJECT_SETUP(SlantedTubeSection); // persistent class }; } #endif // SLANTEDTUBESECTION_HH