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 27 #include "DetectorConstructionMessenger.hh" 28 29 #include "DetectorConstruction.hh" 30 31 #include "G4RunManager.hh" 32 #include "G4UIcmdWith3Vector.hh" 33 #include "G4UIcmdWith3VectorAndUnit.hh" 34 #include "G4UIcmdWithABool.hh" 35 #include "G4UIcmdWithADouble.hh" 36 #include "G4UIcmdWithADoubleAndUnit.hh" 37 #include "G4UIcmdWithAString.hh" 38 #include "G4UIdirectory.hh" 39 #include "G4ios.hh" 40 41 DetectorConstructionMessenger::DetectorConstru 42 : fTarget(mpga) 43 { 44 fMyXtalDirectory = new G4UIdirectory("/xtal/ 45 fMyXtalDirectory->SetGuidance("Crystal setup 46 47 fXtalMaterialCmd = new G4UIcmdWithAString("/ 48 fXtalMaterialCmd->SetGuidance("Set crystal m 49 fXtalMaterialCmd->SetParameterName("xMat", t 50 fXtalMaterialCmd->SetDefaultValue("G4_Si"); 51 52 fXtalSizeCmd = new G4UIcmdWith3VectorAndUnit 53 fXtalSizeCmd->SetGuidance("Set crystal size. 54 fXtalSizeCmd->SetParameterName("xtalSizeX", 55 fXtalSizeCmd->SetDefaultValue(G4ThreeVector( 56 fXtalSizeCmd->SetDefaultUnit("mm"); 57 58 fXtalBRCmd = new G4UIcmdWith3VectorAndUnit(" 59 fXtalBRCmd->SetGuidance("Set crystal bending 60 fXtalBRCmd->SetParameterName("xtalBRX", "xta 61 fXtalBRCmd->SetDefaultValue(G4ThreeVector(0. 62 fXtalBRCmd->SetDefaultUnit("m"); 63 64 fXtalAngleCmd = new G4UIcmdWith3VectorAndUni 65 fXtalAngleCmd->SetGuidance("Set crystal angl 66 fXtalAngleCmd->SetParameterName("xtalAngleX" 67 fXtalAngleCmd->SetDefaultValue(G4ThreeVector 68 fXtalAngleCmd->SetDefaultUnit("rad"); 69 70 fXtalECCmd = new G4UIcmdWithAString("/xtal/s 71 fXtalECCmd->SetGuidance("Set crystal EC."); 72 fXtalECCmd->SetParameterName("xEC", true); 73 fXtalECCmd->SetDefaultValue("data/Si220pl"); 74 } 75 76 //....oooOO0OOooo........oooOO0OOooo........oo 77 78 DetectorConstructionMessenger::~DetectorConstr 79 { 80 delete fXtalMaterialCmd; 81 delete fXtalSizeCmd; 82 delete fXtalAngleCmd; 83 delete fXtalECCmd; 84 delete fXtalBRCmd; 85 } 86 87 //....oooOO0OOooo........oooOO0OOooo........oo 88 89 void DetectorConstructionMessenger::SetNewValu 90 { 91 if (command == fXtalMaterialCmd) { 92 fTarget->SetMaterial(newValue); 93 } 94 if (command == fXtalSizeCmd) { 95 fTarget->SetSizes(fXtalSizeCmd->GetNew3Vec 96 } 97 if (command == fXtalBRCmd) { 98 fTarget->SetBR(fXtalBRCmd->GetNew3VectorVa 99 } 100 if (command == fXtalAngleCmd) { 101 fTarget->SetAngles(fXtalAngleCmd->GetNew3V 102 } 103 if (command == fXtalECCmd) { 104 fTarget->SetEC(newValue); 105 } 106 } 107 108 //....oooOO0OOooo........oooOO0OOooo........oo 109 110 G4String DetectorConstructionMessenger::GetCur 111 { 112 G4String cv; 113 114 if (command == fXtalMaterialCmd) { 115 cv = fTarget->GetMaterial(); 116 } 117 if (command == fXtalSizeCmd) { 118 cv = fXtalSizeCmd->ConvertToString(fTarget 119 } 120 if (command == fXtalBRCmd) { 121 cv = fXtalBRCmd->ConvertToString(fTarget-> 122 } 123 if (command == fXtalAngleCmd) { 124 cv = fXtalAngleCmd->ConvertToString(fTarge 125 } 126 if (command == fXtalECCmd) { 127 cv = fTarget->GetEC(); 128 } 129 return cv; 130 } 131 132 //....oooOO0OOooo........oooOO0OOooo........oo 133