#ifndef SIWEDGEHOLDER_HPP #define SIWEDGEHOLDER_HPP // // $Id: SiWedgeHolder.hpp,v 1.4 2001/02/03 22:53:36 hobbs Exp $ // // File: SiWedgeHolder.hpp // Purpose: // Created: 23-JAN-1998 Tom Trippe // // $Revision: 1.4 $ // // // Include files #include #include #include #include #include // Global definitions /** Given the different structure of F and H disks, a place holder is created to house the appropriate number of wedges, 1 (double-sided) for F disks and 2 (single-sided, glued back to back on a beryllium support) for H disks. */ class SiWedgeHolder: public dgs::ReferencePoint { public: /// Default constructor (empty wedgeholder). SiWedgeHolder(); /** Instantiate a standard wedgeholder. @param separation distance between the two wedges held by the wedgeholder. */ SiWedgeHolder(int nwedges, const SiWedge* prototype, float separation); /** Construct a wedgeholder containing the given wedges. @param separation distance between the two wedges held by the wedgeholder. */ SiWedgeHolder(int nwedges, const std::vector &wedges, float separation); /** Return the address of the children. Used within dgs::GeometryElement and ReferencePoint to do positioning. */ const std::list get_children(); // Accessors and some I/O /// Return the number of wedgeholders. int get_wedge_count() const; /// Return constant access to a wedgeholder. const SiWedge* get_wedge(int iwedge) const; /// Return modifiable access to a wedgeholder. SiWedge* get_mutable_wedge(int iwedge); /// Text dump a wedgeholder. friend std::ostream& operator <<(std::ostream& os, const SiWedgeHolder& me); friend bool operator <(const SiWedgeHolder& lhs, const SiWedgeHolder &rhs); friend bool operator ==(const SiWedgeHolder& lhs, const SiWedgeHolder &rhs); friend bool operator !=(const SiWedgeHolder& lhs, const SiWedgeHolder &rhs); private: /// Vector to hold the wedges. std::vector _wedges; public: D0_OBJECT_SETUP(SiWedgeHolder); }; // Inlines #include #endif //SIWEDGEHOLDER_HPP