00001 //============================================================================= 00002 // 00003 // --------------------------- 00004 // | Doxygen File Information | 00005 // --------------------------- 00006 /** 00007 00008 \file MollerGlobalMagnetField.hh 00009 $Revision: 1.2 $ 00010 $Date: 2005/12/27 19:24:27 $ 00011 \author Klaus Hans Grimm 00012 00013 */ 00014 //============================================================================= 00015 // 00016 //============================================================================= 00017 // 00018 // --------------------------- 00019 // | Doxygen Class Information | 00020 // --------------------------- 00021 /** 00022 \class MollerGlobalMagnetField 00023 00024 \brief Set in MollerDetectorConstruction as the field manager. 00025 00026 MollerGlobalMagnetField::MollerGlobalMagnetField() sets the field map names, initializes 00027 the grid after setting the min and max r, z, phi, and reads in the maps. 00028 MollerGlobalMagnetField::GetFieldValue() adds the field value for the hybrid and upstream toroids 00029 from MollerMagnetFieldMap::GetFieldValue (which does the interpolation) during tracking. 00030 00031 00032 */ 00033 //============================================================================= 00034 // 00035 //============================================================================= 00036 // ----------------------- 00037 // | CVS File Information | 00038 // ----------------------- 00039 // 00040 // Last Update: $Author: grimm $ 00041 // Update Date: $Date: 2005/12/27 19:24:27 $ 00042 // CVS/RCS Revision: $Revision: 1.2 $ 00043 // Status: $State: Exp $ 00044 // 00045 // =================================== 00046 // CVS Revision Log at end of file !! 00047 // =================================== 00048 // 00049 //============================================================================= 00050 00051 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 00052 #ifndef MollerGlobalMagnetField_h 00053 #define MollerGlobalMagnetField_h 00054 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 00055 00056 // geant4 includes 00057 #include "Geant4_include.hh" 00058 00059 // user includes 00060 #include "MollerMagnetFieldMap.hh" 00061 #include "MollerGlobalMagnetFieldMessenger.hh" 00062 00063 // user classes 00064 //class MollerGlobalMagnetFieldMessenger; 00065 class MollerMagnetFieldMap; 00066 class MollerGlobalMagnetFieldMessenger; 00067 00068 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 00069 class MollerGlobalMagnetField : public G4MagneticField 00070 { 00071 public: 00072 00073 MollerGlobalMagnetField(); 00074 ~MollerGlobalMagnetField(); 00075 00076 00077 void SetHybridMapFile(const G4String&); 00078 void SetUpstreamMapFile(const G4String&); 00079 00080 void ReadMagneticField(); 00081 00082 void GetFieldValue( const G4double Point[4], G4double *Bfield ) const; 00083 00084 private: 00085 00086 //MollerGlobalMagnetFieldMessenger* fGlobalMagnetFieldMessenger; 00087 00088 MollerMagnetFieldMap* fMagneticField_MainMagnet; 00089 MollerMagnetFieldMap* fMagneticField_MiniMagnet; 00090 00091 MollerGlobalMagnetFieldMessenger* fieldMessenger; //messenger of this class 00092 00093 G4double BFieldScalingFactor_MainMagnet; 00094 G4double BFieldScalingFactor_MiniMagnet; 00095 00096 G4String upstreamFilename; 00097 G4String hybridFilename; 00098 00099 00100 }; 00101 00102 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 00103 00104 #endif 00105 00106 //======================================================================================= 00107 // ----------------------- 00108 // | CVS File Information | 00109 // ----------------------- 00110 // 00111 // $Revisions$ 00112 // $Log: MollerGlobalMagnetField.hh,v $ 00113 // Revision 1.2 2005/12/27 19:24:27 grimm 00114 // - Redesign of Doxygen header containing CVS info like revision and date 00115 // - Added CVS revision log at the end of file 00116 // 00117 //