00001 //! \file 00002 //! 00003 //! Header file for the Symmetric_Moeller class. 00004 //! 00005 //! The Symmetric_Moeller class is used to build the symmetric moeller / 00006 //! bhabha luminosity monitor for the OLYMPUS detector simulation. 00007 //! This file declares the Symmetric_Moeller 00008 //! class and the member routines which build the SM luminosity monitor. 00009 //! 00010 //! \author Y. Ma based on the sample provided by Olympus simulation package 00011 //! \version 1.0 00012 //! \date 2010-10-11 00013 //! 00014 //! \ingroup detector 00015 00016 // *+****1****+****2****+****3****+****4****+****5****+****6****+****7****+**** 00017 00018 // Include this file just once. 00019 00020 #ifndef SYMMETRIC_MOELLER_H 00021 #define SYMMETRIC_MOELLER_H 00022 00023 // Define the number of GT sensitive detectors. 00024 00025 #define N_SM 20 00026 00027 // Declare the classes referenced here. 00028 00029 class G4VPhysicalVolume; 00030 00031 // *+****1****+****2****+****3****+****4****+****5****+****6****+****7****+**** 00032 00033 //! Class used to create the Symmetric_Moeller class. 00034 //! 00035 //! This class builds the Symmetric_Moeller detector. It is 00036 //! instantiated by the OLYMPUS_Detector class memeber function Construct() 00037 //! and then the Build() member function builds the detector and places it in 00038 //! the world volume. The Build member function also creates an instance 00039 //! of the SM_SD class. 00040 00041 class Symmetric_Moeller { 00042 00043 public: 00044 00045 //! Constructor for the Symmetric_Moeller class. 00046 //! 00047 //! Called by OLYMPUS_Detector member Construct() to create an instance of 00048 //! this class. 00049 00050 Symmetric_Moeller(); 00051 00052 //! Destructor for the Symmetric_Moeller class. 00053 //! 00054 //! Called by OLYMPUS_Detector member Construct() to delete this instance. 00055 00056 ~Symmetric_Moeller(); 00057 00058 // Member functions. 00059 00060 //! Member function to build the the Symmetric_Moeller. 00061 //! 00062 //! Called by OLYMPUS_Detector member Construct() to build the detector. 00063 //! and place it in the world volume. This function also creates an 00064 //! instance of SM_SD, the Symmetric_Moeller sensitive detector class. 00065 00066 void Build( G4VPhysicalVolume * World_phys ); 00067 00068 private: 00069 00070 }; 00071 00072 #endif