|
Geant4 examples
|
00001 // 00002 // ******************************************************************** 00003 // * License and Disclaimer * 00004 // * * 00005 // * The Geant4 software is copyright of the Copyright Holders of * 00006 // * the Geant4 Collaboration. It is provided under the terms and * 00007 // * conditions of the Geant4 Software License, included in the file * 00008 // * LICENSE and available at http://cern.ch/geant4/license . These * 00009 // * include a list of copyright holders. * 00010 // * * 00011 // * Neither the authors of this software system, nor their employing * 00012 // * institutes,nor the agencies providing financial support for this * 00013 // * work make any representation or warranty, express or implied, * 00014 // * regarding this software system or assume any liability for its * 00015 // * use. Please see the license in the file LICENSE and URL above * 00016 // * for the full disclaimer and the limitation of liability. * 00017 // * * 00018 // * This code implementation is the result of the scientific and * 00019 // * technical work of the GEANT4 collaboration. * 00020 // * By using, copying, modifying or distributing the software (or * 00021 // * any work based on the software) you agree to acknowledge its * 00022 // * use in resulting scientific publications, and indicate your * 00023 // * acceptance of all terms of the Geant4 Software license. * 00024 // ******************************************************************** 00025 // 00026 // $Id$ 00027 // 00030 00031 #include "B4dDetectorMessenger.hh" 00032 #include "B4dDetectorConstruction.hh" 00033 00034 #include "G4UIdirectory.hh" 00035 #include "G4UIcmdWithAString.hh" 00036 #include "G4UIcmdWithAnInteger.hh" 00037 #include "G4UIcmdWithADoubleAndUnit.hh" 00038 #include "G4UIcmdWithoutParameter.hh" 00039 00040 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 00041 00042 B4dDetectorMessenger::B4dDetectorMessenger(B4dDetectorConstruction* Det) 00043 : G4UImessenger(), 00044 fDetectorConstruction(Det) 00045 { 00046 fB4Directory = new G4UIdirectory("/B4/"); 00047 fB4Directory->SetGuidance("UI commands of this example"); 00048 00049 fDetDirectory = new G4UIdirectory("/B4/det/"); 00050 fDetDirectory->SetGuidance("Detector construction control"); 00051 00052 fSetMagFieldCmd = new G4UIcmdWithADoubleAndUnit("/B4/det/setMagField",this); 00053 fSetMagFieldCmd->SetGuidance("Define magnetic field."); 00054 fSetMagFieldCmd->SetGuidance("Magnetic field will be in X direction."); 00055 fSetMagFieldCmd->SetParameterName("Bx",false); 00056 fSetMagFieldCmd->SetUnitCategory("Magnetic flux density"); 00057 fSetMagFieldCmd->AvailableForStates(G4State_PreInit, G4State_Idle); 00058 } 00059 00060 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 00061 00062 B4dDetectorMessenger::~B4dDetectorMessenger() 00063 { 00064 delete fSetMagFieldCmd; 00065 delete fDetDirectory; 00066 delete fB4Directory; 00067 } 00068 00069 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 00070 00071 void B4dDetectorMessenger::SetNewValue(G4UIcommand* command,G4String newValue) 00072 { 00073 if( command == fSetMagFieldCmd ) { 00074 fDetectorConstruction 00075 ->SetMagField(fSetMagFieldCmd->GetNewDoubleValue(newValue)); 00076 } 00077 } 00078 00079 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
1.7.4