#ifndef PLANARSHELL_HPP #define PLANARSHELL_HPP // // $Id: PlanarShell.hpp,v 1.4 2004/04/08 20:08:55 snyder Exp $ // // File: PlanarShell.hpp // Purpose: Represents a thin plane of material // Created: 03-DEC-1998 John D. Hobbs (cut-and-paste of Harry L. Melanson code) // // $Revision: 1.4 $ // // // Include files #include #include #include /** A thin cylindrical shell. A {\bf PlanarShell} represents a thin shelled cylinder which has a given thickness (in cm) and is associated with a given {\bf Material}. In addition, a {\bf PlanarShell} contains a reference to a {\bf templated geometry component}, which contains maintains all position / rotation information for the cylinder. */ template class PlanarShell; template std::ostream& operator<< (std::ostream&, const PlanarShell*); template std::ostream& operator<< (std::ostream&, const PlanarShell&); template class PlanarShell { //------------------ Public Methods -------------------// public: /** Constructor. Builds a {\bf PlanarShell} given a {\bf Handle} to {\bf Plane}, a {\bf Material} and a thickness. */ PlanarShell(dgs::Handle surface, const float thickness, const D0Material::Material& material); /// Returns point to {\bf Material}. const D0Material::Material* get_Material() const; /** Returns the fraction of a radiation length. This method returns the perpendicular thickness of the material associated with this shell, in fractions of a radiation length. */ /// Returns Handle to positioning Plane. dgs::Handle< const T> get_Surface() const; float get_X0_frac() const; /// Returns perpendicular thickness of material in cm. float get_Thickness() const; /// Stream insertion operator. friend std::ostream& operator<< <> (std::ostream&, const PlanarShell*); /// Stream insertion operator. friend std::ostream& operator<< <> (std::ostream&, const PlanarShell&); //------------------ Private Data Members -------------------// private: /// Handle to the geometry component, dgs::Handle d_surface; /// The material type. const D0Material::Material d_material; /// The material thickness, in cm. const float d_thickness; }; #include #endif //PLANARSHELL_HPP