00001 #ifndef MagVolume6Faces_h 00002 #define MagVolume6Faces_h 00003 00017 #include "MagneticField/VolumeGeometry/interface/MagVolume.h" 00018 #include "MagneticField/VolumeGeometry/interface/VolumeSide.h" 00019 00020 #include <vector> 00021 00022 //-- FIXME 00023 #include <string> 00024 //-- 00025 00026 template <class T> 00027 class MagneticFieldProvider; 00028 00029 class MagVolume6Faces : public MagVolume { 00030 public: 00031 00032 MagVolume6Faces( const PositionType& pos, const RotationType& rot, 00033 DDSolidShape shape, const std::vector<VolumeSide>& faces, 00034 const MagneticFieldProvider<float> * mfp, 00035 double sf=1.); 00036 00037 using MagVolume::inside; 00038 virtual bool inside( const GlobalPoint& gp, double tolerance=0.) const; 00039 00041 virtual const std::vector<VolumeSide>& faces() const {return theFaces;} 00042 00043 //--> These are used for debugging purposes only 00044 std::string name; 00045 char copyno; 00046 //<-- 00047 00048 private: 00049 00050 std::vector<VolumeSide> theFaces; 00051 00052 }; 00053 00054 #endif