00001 //! \file 00002 //! 00003 //! Header file for Toroid_Magnet class. 00004 //! 00005 //! The Toroid_Magnet class is used to build the toroid magnet for the OLYMPUS 00006 //! detector simulation. This file declares the Toroid_Magnet class and the 00007 //! member routines which construct the OLYMPUS toroid magnet. 00008 //! 00009 //! \author D.K. Hasell 00010 //! \version 1.0 00011 //! \date 2010-10-14 00012 //! 00013 //! \ingroup detector 00014 00015 // *+****1****+****2****+****3****+****4****+****5****+****6****+****7****+**** 00016 00017 // Ensure this header file is only included once. 00018 00019 #ifndef TOROID_MAGNET_H 00020 #define TOROID_MAGNET_H 00021 00022 // Declare the classes referenced here. 00023 00024 class G4VPhysicalVolume; 00025 00026 // Include the required C++ header files. 00027 00028 #include <string> 00029 00030 // Use the std namespace. 00031 00032 using namespace std; 00033 00034 //! Class used to build the OLYMPUS toroid magnet. 00035 //! 00036 //! Instatiated by OLYMPUS_Detector class member function Construct(). 00037 00038 class Toroid_Magnet { 00039 00040 public: 00041 00042 //! Constructor for the Toroid_Magnet class. 00043 //! 00044 //! Called by OLYMPUS_Detector member Construct() to create an instance of 00045 //! Toroid_Magnet class. 00046 00047 Toroid_Magnet(); 00048 00049 //! Destructor for the Toroid_Magnet class. 00050 //! 00051 //! Called by OLYMPUS_Detector member Construct() to delete the instance. 00052 00053 ~Toroid_Magnet(); 00054 00055 // Member functions. 00056 00057 //! Member function to build the the Toroid_Magnet. 00058 //! 00059 //! Called by OLYMPUS_Detector member Construct() to build the 00060 //! toroid magnet. 00061 00062 void Build( G4VPhysicalVolume * World_phys ); 00063 00064 private: 00065 00066 }; 00067 00068 //! Function which reads the data file defining the toroid. 00069 //! 00070 //! Called by member Build(). 00071 00072 void Build_Toroid( string & ); 00073 00074 #endif