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 medical/dna/AuNP/src/DetectorMesseng 27 /// \brief Implementation of the DetectorMesse 28 // 29 // $Id: DetectorMessenger.cc 78723 2014-01-20 30 // 31 //....oooOO0OOooo........oooOO0OOooo........oo 32 //....oooOO0OOooo........oooOO0OOooo........oo 33 34 #include "DetectorMessenger.hh" 35 36 #include "DetectorConstruction.hh" 37 38 #include "G4UIcmdWithADoubleAndUnit.hh" 39 #include "G4UIcmdWithAString.hh" 40 #include "G4UIcmdWithAnInteger.hh" 41 #include "G4UIdirectory.hh" 42 43 //....oooOO0OOooo........oooOO0OOooo........oo 44 45 DetectorMessenger::DetectorMessenger(DetectorC 46 : G4UImessenger(), 47 fDetector(Det), 48 fTestemDir(0), 49 fDetDir(0), 50 fNPMaterCmd(0), 51 fNReplicaRCmd(0), 52 fNReplicaAzmCmd(0), 53 fAbsRadiusCmd(0), 54 fNPRadiusCmd(0), 55 fTrackingCutCmd(0) 56 { 57 fTestemDir = new G4UIdirectory("/AuNP/"); 58 fTestemDir->SetGuidance("Detector control.") 59 60 fDetDir = new G4UIdirectory("/AuNP/det/"); 61 fDetDir->SetGuidance("Detector construction 62 63 fNPMaterCmd = new G4UIcmdWithAString("/AuNP/ 64 fNPMaterCmd->SetGuidance("Select material of 65 fNPMaterCmd->SetParameterName("choice", fals 66 fNPMaterCmd->AvailableForStates(G4State_PreI 67 fNPMaterCmd->SetToBeBroadcasted(false); 68 69 fNReplicaRCmd = new G4UIcmdWithAnInteger("/A 70 fNReplicaRCmd->SetGuidance("Set Number of Re 71 fNReplicaRCmd->SetParameterName("NR", false) 72 fNReplicaRCmd->SetRange("NR>0"); 73 fNReplicaRCmd->AvailableForStates(G4State_Pr 74 fNReplicaRCmd->SetToBeBroadcasted(false); 75 76 fNReplicaAzmCmd = new G4UIcmdWithAnInteger(" 77 fNReplicaAzmCmd->SetGuidance("Set Number of 78 fNReplicaAzmCmd->SetParameterName("NAzm", fa 79 fNReplicaAzmCmd->SetRange("NAzm>0"); 80 fNReplicaAzmCmd->AvailableForStates(G4State_ 81 fNReplicaAzmCmd->SetToBeBroadcasted(false); 82 83 fAbsRadiusCmd = new G4UIcmdWithADoubleAndUni 84 fAbsRadiusCmd->SetGuidance("Set radius of th 85 fAbsRadiusCmd->SetParameterName("Radius", fa 86 fAbsRadiusCmd->SetRange("Radius>0."); 87 fAbsRadiusCmd->SetUnitCategory("Length"); 88 fAbsRadiusCmd->AvailableForStates(G4State_Pr 89 fAbsRadiusCmd->SetToBeBroadcasted(false); 90 91 fNPRadiusCmd = new G4UIcmdWithADoubleAndUnit 92 fNPRadiusCmd->SetGuidance("Set radius of the 93 fNPRadiusCmd->SetParameterName("Radius", fal 94 fNPRadiusCmd->SetRange("Radius>0."); 95 fNPRadiusCmd->SetUnitCategory("Length"); 96 fNPRadiusCmd->AvailableForStates(G4State_Pre 97 fNPRadiusCmd->SetToBeBroadcasted(false); 98 99 fTrackingCutCmd = new G4UIcmdWithADoubleAndU 100 fTrackingCutCmd->SetGuidance("Set tracking c 101 fTrackingCutCmd->SetParameterName("Cut", fal 102 fTrackingCutCmd->SetRange("Cut>0."); 103 fTrackingCutCmd->SetUnitCategory("Energy"); 104 fTrackingCutCmd->AvailableForStates(G4State_ 105 fTrackingCutCmd->SetToBeBroadcasted(false); 106 } 107 108 //....oooOO0OOooo........oooOO0OOooo........oo 109 110 DetectorMessenger::~DetectorMessenger() 111 { 112 delete fNPMaterCmd; 113 delete fNReplicaRCmd; 114 delete fNReplicaAzmCmd; 115 delete fAbsRadiusCmd; 116 delete fNPRadiusCmd; 117 delete fTrackingCutCmd; 118 delete fDetDir; 119 delete fTestemDir; 120 } 121 122 //....oooOO0OOooo........oooOO0OOooo........oo 123 124 void DetectorMessenger::SetNewValue(G4UIcomman 125 { 126 if (command == fNPMaterCmd) { 127 fDetector->SetNPMaterial(newValue); 128 } 129 130 if (command == fNReplicaRCmd) { 131 fDetector->SetNReplicaR(fNReplicaRCmd->Get 132 } 133 134 if (command == fNReplicaAzmCmd) { 135 fDetector->SetNReplicaAzm(fNReplicaAzmCmd- 136 } 137 138 if (command == fAbsRadiusCmd) { 139 fDetector->SetAbsRadius(fAbsRadiusCmd->Get 140 } 141 142 if (command == fNPRadiusCmd) { 143 fDetector->SetNPRadius(fNPRadiusCmd->GetNe 144 } 145 146 if (command == fTrackingCutCmd) { 147 fDetector->SetTrackingCut(fTrackingCutCmd- 148 } 149 } 150 151 //....oooOO0OOooo........oooOO0OOooo........oo 152