Geant4 Cross Reference |
1 // 1 2 // ******************************************* 3 // * License and Disclaimer 4 // * 5 // * The Geant4 software is copyright of th 6 // * the Geant4 Collaboration. It is provided 7 // * conditions of the Geant4 Software License 8 // * LICENSE and available at http://cern.ch/ 9 // * include a list of copyright holders. 10 // * 11 // * Neither the authors of this software syst 12 // * institutes,nor the agencies providing fin 13 // * work make any representation or warran 14 // * regarding this software system or assum 15 // * use. Please see the license in the file 16 // * for the full disclaimer and the limitatio 17 // * 18 // * This code implementation is the result 19 // * technical work of the GEANT4 collaboratio 20 // * By using, copying, modifying or distri 21 // * any work based on the software) you ag 22 // * use in resulting scientific publicati 23 // * acceptance of all terms of the Geant4 Sof 24 // ******************************************* 25 // 26 /// \file electromagnetic/TestEm16/src/Detecto 27 /// \brief Implementation of the DetectorMesse 28 // 29 // 30 //....oooOO0OOooo........oooOO0OOooo........oo 31 //....oooOO0OOooo........oooOO0OOooo........oo 32 33 #include "DetectorMessenger.hh" 34 35 #include "DetectorConstruction.hh" 36 37 #include "G4UIcmdWithADoubleAndUnit.hh" 38 #include "G4UIcmdWithAString.hh" 39 #include "G4UIcmdWithoutParameter.hh" 40 #include "G4UIdirectory.hh" 41 42 //....oooOO0OOooo........oooOO0OOooo........oo 43 44 DetectorMessenger::DetectorMessenger(DetectorC 45 { 46 fTestemDir = new G4UIdirectory("/testem/"); 47 fTestemDir->SetGuidance(" detector control." 48 49 fDetDir = new G4UIdirectory("/testem/det/"); 50 fDetDir->SetGuidance("detector construction 51 52 fMaterCmd = new G4UIcmdWithAString("/testem/ 53 fMaterCmd->SetGuidance("Select material of t 54 fMaterCmd->SetParameterName("choice", false) 55 fMaterCmd->AvailableForStates(G4State_PreIni 56 57 fSizeCmd = new G4UIcmdWithADoubleAndUnit("/t 58 fSizeCmd->SetGuidance("Set size of the box") 59 fSizeCmd->SetParameterName("Size", false); 60 fSizeCmd->SetRange("Size>0."); 61 fSizeCmd->SetUnitCategory("Length"); 62 fSizeCmd->AvailableForStates(G4State_PreInit 63 64 fGeomFileCmd = new G4UIcmdWithAString("/test 65 fGeomFileCmd->SetGuidance("Give sgml input f 66 fGeomFileCmd->SetParameterName("choice", fal 67 fGeomFileCmd->AvailableForStates(G4State_Pre 68 69 fMaxStepCmd = new G4UIcmdWithADoubleAndUnit( 70 fMaxStepCmd->SetGuidance("Set max allowed st 71 fMaxStepCmd->SetParameterName("Size", false) 72 fMaxStepCmd->SetRange("Size>0."); 73 fMaxStepCmd->SetUnitCategory("Length"); 74 fMaxStepCmd->AvailableForStates(G4State_Idle 75 76 fTrackdir = new G4UIdirectory("/testem/track 77 fTrackdir->SetGuidance("step length"); 78 fMaxStepLength = new G4UIcmdWithADoubleAndUn 79 fMaxStepLength->SetGuidance("Set the maximum 80 fMaxStepLength->SetGuidance("when integratin 81 fMaxStepLength->SetParameterName("Size", fal 82 fMaxStepLength->SetRange("Size>0."); 83 fMaxStepLength->SetUnitCategory("Length"); 84 fMaxStepLength->AvailableForStates(G4State_I 85 } 86 87 //....oooOO0OOooo........oooOO0OOooo........oo 88 89 void DetectorMessenger::SetNewValue(G4UIcomman 90 { 91 if (command == fMaterCmd) { 92 fDetector->SetMaterial(newValue); 93 } 94 95 if (command == fSizeCmd) { 96 fDetector->SetSize(fSizeCmd->GetNewDoubleV 97 } 98 99 if (command == fMaxStepCmd) { 100 fDetector->SetMaxStepSize(fMaxStepCmd->Get 101 } 102 103 if (command == fMaxStepLength) { 104 fDetector->SetMaxStepLength(fMaxStepLength 105 } 106 107 if (command == fGeomFileCmd) { 108 fDetector->SetGeomFileName(newValue); 109 } 110 } 111 112 //....oooOO0OOooo........oooOO0OOooo........oo 113