00001 //! \file 00002 //! 00003 //! Header file for the Time_of_Flight class. 00004 //! 00005 //! The Time_of_Flight class is used to build the Time of Flight detector 00006 //! for the OLYMPUS detector simulation. 00007 //! 00008 //! \author D.K. Hasell 00009 //! \version 1.0 00010 //! \date 2010-10-30 00011 //! 00012 //! \ingroup detector 00013 00014 // *+****1****+****2****+****3****+****4****+****5****+****6****+****7****+**** 00015 00016 // Include this file just once. 00017 00018 #ifndef Time_of_Flight_H 00019 #define Time_of_Flight_H 00020 00021 // Define the number of TF sensitive detectors (NB also used in TF_SD). 00022 00023 #define N_TF 34 00024 00025 // Declare classes used in this file. 00026 00027 class G4VPhysicalVolume; 00028 00029 // *+****1****+****2****+****3****+****4****+****5****+****6****+****7****+**** 00030 00031 //! Time_of_Flight class. 00032 //! 00033 //! This class builds the Time_of_Flight detector. It is 00034 //! instantiated by the OLYMPUS Detector class memeber function Construct() 00035 //! and then the Build() member function builds the detector and places it in 00036 //! the world volume. The Build member function also creates an 00037 //! instantiation the TF_SD class. 00038 00039 class Time_of_Flight { 00040 00041 public: 00042 00043 //! Constructor for the Time_of_Flight class. 00044 //! 00045 //! Called by OLYMPUS_Detector member Construct() to create an instance of 00046 //! this class. 00047 00048 Time_of_Flight(); 00049 00050 //! Destructor for the Time_of_Flight class. 00051 //! 00052 //! Called by OLYMPUS_Detector member Construct() to delete this instance. 00053 00054 ~Time_of_Flight(); 00055 00056 // Member functions. 00057 00058 //! Member function to build the the Time_of_Flight. 00059 //! 00060 //! Called by OLYMPUS Detector member Construct() to build the detector 00061 //! and place it in the world volume. This function also creates an 00062 //! instance of GT_SD, the Gem_Tracker sensitive detector class. 00063 00064 void Build( G4VPhysicalVolume * World_phys ); 00065 00066 private: 00067 00068 }; 00069 00070 #endif