Geant4 Cross Reference |
1 // 1 // 2 // ******************************************* 2 // ******************************************************************** 3 // * License and Disclaimer 3 // * License and Disclaimer * 4 // * 4 // * * 5 // * The Geant4 software is copyright of th 5 // * The Geant4 software is copyright of the Copyright Holders of * 6 // * the Geant4 Collaboration. It is provided 6 // * the Geant4 Collaboration. It is provided under the terms and * 7 // * conditions of the Geant4 Software License 7 // * conditions of the Geant4 Software License, included in the file * 8 // * LICENSE and available at http://cern.ch/ 8 // * LICENSE and available at http://cern.ch/geant4/license . These * 9 // * include a list of copyright holders. 9 // * include a list of copyright holders. * 10 // * 10 // * * 11 // * Neither the authors of this software syst 11 // * Neither the authors of this software system, nor their employing * 12 // * institutes,nor the agencies providing fin 12 // * institutes,nor the agencies providing financial support for this * 13 // * work make any representation or warran 13 // * work make any representation or warranty, express or implied, * 14 // * regarding this software system or assum 14 // * regarding this software system or assume any liability for its * 15 // * use. Please see the license in the file 15 // * use. Please see the license in the file LICENSE and URL above * 16 // * for the full disclaimer and the limitatio 16 // * for the full disclaimer and the limitation of liability. * 17 // * 17 // * * 18 // * This code implementation is the result 18 // * This code implementation is the result of the scientific and * 19 // * technical work of the GEANT4 collaboratio 19 // * technical work of the GEANT4 collaboration. * 20 // * By using, copying, modifying or distri 20 // * By using, copying, modifying or distributing the software (or * 21 // * any work based on the software) you ag 21 // * any work based on the software) you agree to acknowledge its * 22 // * use in resulting scientific publicati 22 // * use in resulting scientific publications, and indicate your * 23 // * acceptance of all terms of the Geant4 Sof 23 // * acceptance of all terms of the Geant4 Software license. * 24 // ******************************************* 24 // ******************************************************************** 25 // 25 // 26 /// \file SAXSDetectorConstructionMessenger.cc 26 /// \file SAXSDetectorConstructionMessenger.cc 27 /// \brief Implementation of the SAXSDetectorC 27 /// \brief Implementation of the SAXSDetectorConstructionMessenger class 28 // 28 // 29 //....oooOO0OOooo........oooOO0OOooo........oo 29 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 30 30 31 #include "SAXSDetectorConstructionMessenger.hh 31 #include "SAXSDetectorConstructionMessenger.hh" 32 << 33 #include "SAXSDetectorConstruction.hh" 32 #include "SAXSDetectorConstruction.hh" 34 33 35 #include "G4RunManager.hh" << 34 #include "G4UIdirectory.hh" >> 35 #include "G4UIcmdWithADoubleAndUnit.hh" >> 36 #include "G4UIcmdWithADouble.hh" >> 37 #include "G4UIcmdWithAnInteger.hh" 36 #include "G4UIcmdWith3VectorAndUnit.hh" 38 #include "G4UIcmdWith3VectorAndUnit.hh" 37 #include "G4UIcmdWithABool.hh" 39 #include "G4UIcmdWithABool.hh" 38 #include "G4UIcmdWithADouble.hh" << 39 #include "G4UIcmdWithADoubleAndUnit.hh" << 40 #include "G4UIcmdWithAString.hh" 40 #include "G4UIcmdWithAString.hh" 41 #include "G4UIcmdWithAnInteger.hh" << 41 42 #include "G4UIdirectory.hh" << 42 #include "G4RunManager.hh" 43 #include "G4ios.hh" 43 #include "G4ios.hh" 44 44 45 //....oooOO0OOooo........oooOO0OOooo........oo 45 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 46 46 47 SAXSDetectorConstructionMessenger::SAXSDetecto << 47 SAXSDetectorConstructionMessenger::SAXSDetectorConstructionMessenger 48 SAXSDetectorConstruction* detconstr) << 48 (SAXSDetectorConstruction* detconstr): 49 : G4UImessenger(), fDetector(detconstr) << 49 G4UImessenger(), fDetector(detconstr) 50 { 50 { 51 fCmdDir = new G4UIdirectory("/det/"); 51 fCmdDir = new G4UIdirectory("/det/"); 52 fCmdDir->SetGuidance("Detector Control"); 52 fCmdDir->SetGuidance("Detector Control"); 53 53 54 fSetCustomMatFFfilename = new G4UIcmdWithASt << 54 fSetCustomMatFFfilename = new G4UIcmdWithAString("/det/SetCustomMatFF",this); 55 fSetCustomMatFFfilename->SetGuidance("Set Cu 55 fSetCustomMatFFfilename->SetGuidance("Set CustomMat FF filename"); 56 fSetCustomMatFFfilename->SetParameterName("m << 56 fSetCustomMatFFfilename->SetParameterName("mmff",false); 57 fSetCustomMatFFfilename->AvailableForStates( 57 fSetCustomMatFFfilename->AvailableForStates(G4State_PreInit); 58 58 59 fSetCustomMatDensityCmd = new G4UIcmdWithADo << 59 fSetCustomMatDensityCmd = new G4UIcmdWithADouble("/det/setCustomMatDensity", >> 60 this); 60 fSetCustomMatDensityCmd->SetGuidance("Set de 61 fSetCustomMatDensityCmd->SetGuidance("Set density for custom material"); 61 fSetCustomMatDensityCmd->SetParameterName("c << 62 fSetCustomMatDensityCmd->SetParameterName("cmden",false); 62 fSetCustomMatDensityCmd->SetRange("cmden>0." 63 fSetCustomMatDensityCmd->SetRange("cmden>0."); 63 fSetCustomMatDensityCmd->AvailableForStates( << 64 fSetCustomMatDensityCmd->AvailableForStates(G4State_PreInit,G4State_Idle); 64 65 65 fSetCustomMatHmassfractCmd = new G4UIcmdWith << 66 fSetCustomMatHmassfractCmd = new G4UIcmdWithADouble 66 fSetCustomMatHmassfractCmd->SetGuidance("Set << 67 ("/det/setCustomMatHmassfract",this); 67 fSetCustomMatHmassfractCmd->SetParameterName << 68 fSetCustomMatHmassfractCmd-> >> 69 SetGuidance("Set H mass fraction for custom material"); >> 70 fSetCustomMatHmassfractCmd->SetParameterName("cmHmf",false); 68 fSetCustomMatHmassfractCmd->SetRange("cmHmf> 71 fSetCustomMatHmassfractCmd->SetRange("cmHmf>=0."); 69 fSetCustomMatHmassfractCmd->AvailableForStat << 72 fSetCustomMatHmassfractCmd->AvailableForStates(G4State_PreInit,G4State_Idle); 70 73 71 fSetCustomMatCmassfractCmd = new G4UIcmdWith << 74 fSetCustomMatCmassfractCmd = new G4UIcmdWithADouble 72 fSetCustomMatCmassfractCmd->SetGuidance("Set << 75 ("/det/setCustomMatCmassfract",this); 73 fSetCustomMatCmassfractCmd->SetParameterName << 76 fSetCustomMatCmassfractCmd-> >> 77 SetGuidance("Set C mass fraction for custom material"); >> 78 fSetCustomMatCmassfractCmd->SetParameterName("cmCmf",false); 74 fSetCustomMatCmassfractCmd->SetRange("cmCmf> 79 fSetCustomMatCmassfractCmd->SetRange("cmCmf>=0."); 75 fSetCustomMatCmassfractCmd->AvailableForStat << 80 fSetCustomMatCmassfractCmd->AvailableForStates(G4State_PreInit,G4State_Idle); 76 81 77 fSetCustomMatNmassfractCmd = new G4UIcmdWith << 82 fSetCustomMatNmassfractCmd = new G4UIcmdWithADouble 78 fSetCustomMatNmassfractCmd->SetGuidance("Set << 83 ("/det/setCustomMatNmassfract",this); 79 fSetCustomMatNmassfractCmd->SetParameterName << 84 fSetCustomMatNmassfractCmd->SetGuidance >> 85 ("Set N mass fraction for custom material"); >> 86 fSetCustomMatNmassfractCmd->SetParameterName("cmNmf",false); 80 fSetCustomMatNmassfractCmd->SetRange("cmNmf> 87 fSetCustomMatNmassfractCmd->SetRange("cmNmf>=0."); 81 fSetCustomMatNmassfractCmd->AvailableForStat << 88 fSetCustomMatNmassfractCmd->AvailableForStates(G4State_PreInit,G4State_Idle); 82 89 83 fSetCustomMatOmassfractCmd = new G4UIcmdWith << 90 fSetCustomMatOmassfractCmd = new G4UIcmdWithADouble 84 fSetCustomMatOmassfractCmd->SetGuidance("Set << 91 ("/det/setCustomMatOmassfract",this); 85 fSetCustomMatOmassfractCmd->SetParameterName << 92 fSetCustomMatOmassfractCmd->SetGuidance >> 93 ("Set O mass fraction for custom material"); >> 94 fSetCustomMatOmassfractCmd->SetParameterName("cmOmf",false); 86 fSetCustomMatOmassfractCmd->SetRange("cmOmf> 95 fSetCustomMatOmassfractCmd->SetRange("cmOmf>=0."); 87 fSetCustomMatOmassfractCmd->AvailableForStat << 96 fSetCustomMatOmassfractCmd->AvailableForStates(G4State_PreInit,G4State_Idle); 88 97 89 fSetCustomMatNamassfractCmd = new G4UIcmdWit << 98 fSetCustomMatNamassfractCmd = new G4UIcmdWithADouble 90 fSetCustomMatNamassfractCmd->SetGuidance("Se << 99 ("/det/setCustomMatNamassfract",this); 91 fSetCustomMatNamassfractCmd->SetParameterNam << 100 fSetCustomMatNamassfractCmd-> >> 101 SetGuidance("Set Na mass fraction for custom material"); >> 102 fSetCustomMatNamassfractCmd->SetParameterName("cmNamf",false); 92 fSetCustomMatNamassfractCmd->SetRange("cmNam 103 fSetCustomMatNamassfractCmd->SetRange("cmNamf>=0."); 93 fSetCustomMatNamassfractCmd->AvailableForSta << 104 fSetCustomMatNamassfractCmd->AvailableForStates(G4State_PreInit,G4State_Idle); 94 105 95 fSetCustomMatPmassfractCmd = new G4UIcmdWith << 106 fSetCustomMatPmassfractCmd = new G4UIcmdWithADouble 96 fSetCustomMatPmassfractCmd->SetGuidance("Set << 107 ("/det/setCustomMatPmassfract",this); 97 fSetCustomMatPmassfractCmd->SetParameterName << 108 fSetCustomMatPmassfractCmd-> >> 109 SetGuidance("Set P mass fraction for custom material"); >> 110 fSetCustomMatPmassfractCmd->SetParameterName("cmPmf",false); 98 fSetCustomMatPmassfractCmd->SetRange("cmPmf> 111 fSetCustomMatPmassfractCmd->SetRange("cmPmf>=0."); 99 fSetCustomMatPmassfractCmd->AvailableForStat << 112 fSetCustomMatPmassfractCmd->AvailableForStates(G4State_PreInit,G4State_Idle); 100 113 101 fSetCustomMatSmassfractCmd = new G4UIcmdWith << 114 fSetCustomMatSmassfractCmd = new G4UIcmdWithADouble 102 fSetCustomMatSmassfractCmd->SetGuidance("Set << 115 ("/det/setCustomMatSmassfract",this); 103 fSetCustomMatSmassfractCmd->SetParameterName << 116 fSetCustomMatSmassfractCmd-> >> 117 SetGuidance("Set S mass fraction for custom material"); >> 118 fSetCustomMatSmassfractCmd->SetParameterName("cmSmf",false); 104 fSetCustomMatSmassfractCmd->SetRange("cmSmf> 119 fSetCustomMatSmassfractCmd->SetRange("cmSmf>=0."); 105 fSetCustomMatSmassfractCmd->AvailableForStat << 120 fSetCustomMatSmassfractCmd->AvailableForStates(G4State_PreInit,G4State_Idle); 106 121 107 fSetCustomMatClmassfractCmd = new G4UIcmdWit << 122 fSetCustomMatClmassfractCmd = 108 fSetCustomMatClmassfractCmd->SetGuidance("Se << 123 new G4UIcmdWithADouble("/det/setCustomMatClmassfract",this); 109 fSetCustomMatClmassfractCmd->SetParameterNam << 124 fSetCustomMatClmassfractCmd-> >> 125 SetGuidance("Set Cl mass fraction for custom material"); >> 126 fSetCustomMatClmassfractCmd->SetParameterName("cmClmf",false); 110 fSetCustomMatClmassfractCmd->SetRange("cmClm 127 fSetCustomMatClmassfractCmd->SetRange("cmClmf>=0."); 111 fSetCustomMatClmassfractCmd->AvailableForSta << 128 fSetCustomMatClmassfractCmd->AvailableForStates(G4State_PreInit,G4State_Idle); 112 129 113 fSetCustomMatKmassfractCmd = new G4UIcmdWith << 130 fSetCustomMatKmassfractCmd = new G4UIcmdWithADouble 114 fSetCustomMatKmassfractCmd->SetGuidance("Set << 131 ("/det/setCustomMatKmassfract",this); 115 fSetCustomMatKmassfractCmd->SetParameterName << 132 fSetCustomMatKmassfractCmd-> >> 133 SetGuidance("Set K mass fraction for custom material"); >> 134 fSetCustomMatKmassfractCmd->SetParameterName("cmKmf",false); 116 fSetCustomMatKmassfractCmd->SetRange("cmKmf> 135 fSetCustomMatKmassfractCmd->SetRange("cmKmf>=0."); 117 fSetCustomMatKmassfractCmd->AvailableForStat << 136 fSetCustomMatKmassfractCmd->AvailableForStates(G4State_PreInit,G4State_Idle); 118 137 119 fSetCustomMatCamassfractCmd = new G4UIcmdWit << 138 fSetCustomMatCamassfractCmd = new G4UIcmdWithADouble 120 fSetCustomMatCamassfractCmd->SetGuidance("Se << 139 ("/det/setCustomMatCamassfract",this); 121 fSetCustomMatCamassfractCmd->SetParameterNam << 140 fSetCustomMatCamassfractCmd-> >> 141 SetGuidance("Set Ca mass fraction for custom material"); >> 142 fSetCustomMatCamassfractCmd->SetParameterName("cmCamf",false); 122 fSetCustomMatCamassfractCmd->SetRange("cmCam 143 fSetCustomMatCamassfractCmd->SetRange("cmCamf>=0."); 123 fSetCustomMatCamassfractCmd->AvailableForSta << 144 fSetCustomMatCamassfractCmd->AvailableForStates(G4State_PreInit,G4State_Idle); 124 << 145 125 fPhantomMaterialCmd = new G4UIcmdWithAnInteg << 146 fPhantomMaterialCmd = new G4UIcmdWithAnInteger("/det/setPhantomMaterial",this); 126 fPhantomMaterialCmd->SetGuidance("Set Phanto 147 fPhantomMaterialCmd->SetGuidance("Set Phantom material"); 127 fPhantomMaterialCmd->SetParameterName("Phant << 148 fPhantomMaterialCmd->SetParameterName("PhantomMat",false); 128 fPhantomMaterialCmd->SetRange("PhantomMat>=1 149 fPhantomMaterialCmd->SetRange("PhantomMat>=1 && PhantomMat<=30"); 129 fPhantomMaterialCmd->AvailableForStates(G4St << 150 fPhantomMaterialCmd->AvailableForStates(G4State_PreInit,G4State_Idle); 130 << 151 131 fPhantomDiameterCmd = new G4UIcmdWithADouble << 152 fPhantomDiameterCmd = >> 153 new G4UIcmdWithADoubleAndUnit("/det/setPhantomDiameter",this); 132 fPhantomDiameterCmd->SetGuidance("Set Phanto 154 fPhantomDiameterCmd->SetGuidance("Set Phantom Diameter"); 133 fPhantomDiameterCmd->SetParameterName("Phant << 155 fPhantomDiameterCmd->SetParameterName("PhantomDiameter",false); 134 fPhantomDiameterCmd->SetUnitCategory("Length 156 fPhantomDiameterCmd->SetUnitCategory("Length"); 135 fPhantomDiameterCmd->SetRange("PhantomDiamet 157 fPhantomDiameterCmd->SetRange("PhantomDiameter>0."); 136 fPhantomDiameterCmd->AvailableForStates(G4St << 158 fPhantomDiameterCmd->AvailableForStates(G4State_PreInit,G4State_Idle); 137 << 159 138 fPhantomHeightCmd = new G4UIcmdWithADoubleAn << 160 fPhantomHeightCmd = new G4UIcmdWithADoubleAndUnit("/det/setPhantomHeight",this); 139 fPhantomHeightCmd->SetGuidance("Set Phantom 161 fPhantomHeightCmd->SetGuidance("Set Phantom Thickness"); 140 fPhantomHeightCmd->SetParameterName("Phantom << 162 fPhantomHeightCmd->SetParameterName("PhantomHeight",false); 141 fPhantomHeightCmd->SetUnitCategory("Length") 163 fPhantomHeightCmd->SetUnitCategory("Length"); 142 fPhantomHeightCmd->SetRange("PhantomHeight>0 164 fPhantomHeightCmd->SetRange("PhantomHeight>0."); 143 fPhantomHeightCmd->AvailableForStates(G4Stat << 165 fPhantomHeightCmd->AvailableForStates(G4State_PreInit,G4State_Idle); 144 << 166 145 fPhantomZCmd = new G4UIcmdWithADoubleAndUnit << 167 fPhantomZCmd = new G4UIcmdWithADoubleAndUnit("/det/setPhantomZ",this); 146 fPhantomZCmd->SetGuidance("Set Phantom Z"); 168 fPhantomZCmd->SetGuidance("Set Phantom Z"); 147 fPhantomZCmd->SetParameterName("PhantomZ", f << 169 fPhantomZCmd->SetParameterName("PhantomZ",false); 148 fPhantomZCmd->SetUnitCategory("Length"); 170 fPhantomZCmd->SetUnitCategory("Length"); 149 fPhantomZCmd->SetRange("PhantomZ>=0."); 171 fPhantomZCmd->SetRange("PhantomZ>=0."); 150 fPhantomZCmd->AvailableForStates(G4State_Pre << 172 fPhantomZCmd->AvailableForStates(G4State_PreInit,G4State_Idle); 151 << 173 152 fSetComp0Cmd = new G4UIcmdWithADouble("/det/ << 174 fSetComp0Cmd = new G4UIcmdWithADouble("/det/setComp0",this); 153 fSetComp0Cmd->SetGuidance("Set Comp0 for med 175 fSetComp0Cmd->SetGuidance("Set Comp0 for medical material"); 154 fSetComp0Cmd->SetParameterName("c0", false); << 176 fSetComp0Cmd->SetParameterName("c0",false); 155 fSetComp0Cmd->SetRange("c0>=0."); 177 fSetComp0Cmd->SetRange("c0>=0."); 156 fSetComp0Cmd->AvailableForStates(G4State_Pre << 178 fSetComp0Cmd->AvailableForStates(G4State_PreInit,G4State_Idle); 157 << 179 158 fSetComp1Cmd = new G4UIcmdWithADouble("/det/ << 180 fSetComp1Cmd = new G4UIcmdWithADouble("/det/setComp1",this); 159 fSetComp1Cmd->SetGuidance("Set Comp1 for med 181 fSetComp1Cmd->SetGuidance("Set Comp1 for medical material"); 160 fSetComp1Cmd->SetParameterName("c1", false); << 182 fSetComp1Cmd->SetParameterName("c1",false); 161 fSetComp1Cmd->SetRange("c1>=0."); 183 fSetComp1Cmd->SetRange("c1>=0."); 162 fSetComp1Cmd->AvailableForStates(G4State_Pre << 184 fSetComp1Cmd->AvailableForStates(G4State_PreInit,G4State_Idle); 163 << 185 164 fSetComp2Cmd = new G4UIcmdWithADouble("/det/ << 186 fSetComp2Cmd = new G4UIcmdWithADouble("/det/setComp2",this); 165 fSetComp2Cmd->SetGuidance("Set Comp2 for med 187 fSetComp2Cmd->SetGuidance("Set Comp2 for medical material"); 166 fSetComp2Cmd->SetParameterName("c2", false); << 188 fSetComp2Cmd->SetParameterName("c2",false); 167 fSetComp2Cmd->SetRange("c2>=0."); 189 fSetComp2Cmd->SetRange("c2>=0."); 168 fSetComp2Cmd->AvailableForStates(G4State_Pre << 190 fSetComp2Cmd->AvailableForStates(G4State_PreInit,G4State_Idle); 169 << 191 170 fSetComp3Cmd = new G4UIcmdWithADouble("/det/ << 192 fSetComp3Cmd = new G4UIcmdWithADouble("/det/setComp3",this); 171 fSetComp3Cmd->SetGuidance("Set Comp3 for med 193 fSetComp3Cmd->SetGuidance("Set Comp3 for medical material"); 172 fSetComp3Cmd->SetParameterName("c3", false); << 194 fSetComp3Cmd->SetParameterName("c3",false); 173 fSetComp3Cmd->SetRange("c3>=0."); 195 fSetComp3Cmd->SetRange("c3>=0."); 174 fSetComp3Cmd->AvailableForStates(G4State_Pre << 196 fSetComp3Cmd->AvailableForStates(G4State_PreInit,G4State_Idle); 175 << 197 176 fThetaSetupCmd = new G4UIcmdWithADouble("/de << 198 fThetaSetupCmd = new G4UIcmdWithADouble("/det/setThetaSetup",this); 177 fThetaSetupCmd->SetGuidance("Set theta setup 199 fThetaSetupCmd->SetGuidance("Set theta setup (rad)"); 178 fThetaSetupCmd->SetParameterName("theta", fa << 200 fThetaSetupCmd->SetParameterName("theta",false); 179 fThetaSetupCmd->SetRange("theta>=0."); 201 fThetaSetupCmd->SetRange("theta>=0."); 180 fThetaSetupCmd->AvailableForStates(G4State_P << 202 fThetaSetupCmd->AvailableForStates(G4State_PreInit,G4State_Idle); 181 << 203 182 fSetSlitsCmd = new G4UIcmdWithABool("/det/se 204 fSetSlitsCmd = new G4UIcmdWithABool("/det/setSlits", this); 183 fSetSlitsCmd->SetGuidance("set Slits"); << 205 fSetSlitsCmd->SetGuidance("set Slits"); 184 fSetSlitsCmd->SetParameterName("fIWantSlits" << 206 fSetSlitsCmd->SetParameterName("fIWantSlits",true); 185 fSetSlitsCmd->SetDefaultValue(false); << 207 fSetSlitsCmd->SetDefaultValue(false); 186 << 208 187 fSlit1ThicknessCmd = new G4UIcmdWithADoubleA << 209 fSlit1ThicknessCmd = new G4UIcmdWithADoubleAndUnit("/det/setSlit1Thickness",this); 188 fSlit1ThicknessCmd->SetGuidance("Set Slit1 T 210 fSlit1ThicknessCmd->SetGuidance("Set Slit1 Thickness"); 189 fSlit1ThicknessCmd->SetParameterName("Slit1T << 211 fSlit1ThicknessCmd->SetParameterName("Slit1Thickness",false); 190 fSlit1ThicknessCmd->SetUnitCategory("Length" 212 fSlit1ThicknessCmd->SetUnitCategory("Length"); 191 fSlit1ThicknessCmd->SetRange("Slit1Thickness 213 fSlit1ThicknessCmd->SetRange("Slit1Thickness>0."); 192 fSlit1ThicknessCmd->AvailableForStates(G4Sta << 214 fSlit1ThicknessCmd->AvailableForStates(G4State_PreInit,G4State_Idle); 193 << 215 194 fSlit2ThicknessCmd = new G4UIcmdWithADoubleA << 216 fSlit2ThicknessCmd = new G4UIcmdWithADoubleAndUnit("/det/setSlit2Thickness",this); 195 fSlit2ThicknessCmd->SetGuidance("Set Slit2 T 217 fSlit2ThicknessCmd->SetGuidance("Set Slit2 Thickness"); 196 fSlit2ThicknessCmd->SetParameterName("Slit2T << 218 fSlit2ThicknessCmd->SetParameterName("Slit2Thickness",false); 197 fSlit2ThicknessCmd->SetUnitCategory("Length" 219 fSlit2ThicknessCmd->SetUnitCategory("Length"); 198 fSlit2ThicknessCmd->SetRange("Slit2Thickness 220 fSlit2ThicknessCmd->SetRange("Slit2Thickness>0."); 199 fSlit2ThicknessCmd->AvailableForStates(G4Sta << 221 fSlit2ThicknessCmd->AvailableForStates(G4State_PreInit,G4State_Idle); 200 << 222 201 fSlit3ThicknessCmd = new G4UIcmdWithADoubleA << 223 fSlit3ThicknessCmd = new G4UIcmdWithADoubleAndUnit("/det/setSlit3Thickness",this); 202 fSlit3ThicknessCmd->SetGuidance("Set Slit3 T 224 fSlit3ThicknessCmd->SetGuidance("Set Slit3 Thickness"); 203 fSlit3ThicknessCmd->SetParameterName("Slit3T << 225 fSlit3ThicknessCmd->SetParameterName("Slit3Thickness",false); 204 fSlit3ThicknessCmd->SetUnitCategory("Length" 226 fSlit3ThicknessCmd->SetUnitCategory("Length"); 205 fSlit3ThicknessCmd->SetRange("Slit3Thickness 227 fSlit3ThicknessCmd->SetRange("Slit3Thickness>0."); 206 fSlit3ThicknessCmd->AvailableForStates(G4Sta << 228 fSlit3ThicknessCmd->AvailableForStates(G4State_PreInit,G4State_Idle); 207 << 229 208 fSlit4ThicknessCmd = new G4UIcmdWithADoubleA << 230 fSlit4ThicknessCmd = new G4UIcmdWithADoubleAndUnit("/det/setSlit4Thickness",this); 209 fSlit4ThicknessCmd->SetGuidance("Set Slit4 T 231 fSlit4ThicknessCmd->SetGuidance("Set Slit4 Thickness"); 210 fSlit4ThicknessCmd->SetParameterName("Slit4T << 232 fSlit4ThicknessCmd->SetParameterName("Slit4Thickness",false); 211 fSlit4ThicknessCmd->SetUnitCategory("Length" 233 fSlit4ThicknessCmd->SetUnitCategory("Length"); 212 fSlit4ThicknessCmd->SetRange("Slit4Thickness 234 fSlit4ThicknessCmd->SetRange("Slit4Thickness>0."); 213 fSlit4ThicknessCmd->AvailableForStates(G4Sta << 235 fSlit4ThicknessCmd->AvailableForStates(G4State_PreInit,G4State_Idle); 214 << 236 215 fSlit1DistanceCmd = new G4UIcmdWithADoubleAn << 237 fSlit1DistanceCmd = >> 238 new G4UIcmdWithADoubleAndUnit("/det/setSlit1SampleDistance",this); 216 fSlit1DistanceCmd->SetGuidance("Set Slit1-to 239 fSlit1DistanceCmd->SetGuidance("Set Slit1-to-Sample Distance"); 217 fSlit1DistanceCmd->SetParameterName("Slit1di << 240 fSlit1DistanceCmd->SetParameterName("Slit1dist",false); 218 fSlit1DistanceCmd->SetUnitCategory("Length") 241 fSlit1DistanceCmd->SetUnitCategory("Length"); 219 fSlit1DistanceCmd->SetRange("Slit1dist>0."); 242 fSlit1DistanceCmd->SetRange("Slit1dist>0."); 220 fSlit1DistanceCmd->AvailableForStates(G4Stat << 243 fSlit1DistanceCmd->AvailableForStates(G4State_PreInit,G4State_Idle); 221 << 244 222 fSlit2DistanceCmd = new G4UIcmdWithADoubleAn << 245 fSlit2DistanceCmd = >> 246 new G4UIcmdWithADoubleAndUnit("/det/setSlit2SampleDistance",this); 223 fSlit2DistanceCmd->SetGuidance("Set Slit2-to 247 fSlit2DistanceCmd->SetGuidance("Set Slit2-to-Sample Distance"); 224 fSlit2DistanceCmd->SetParameterName("Slit2di << 248 fSlit2DistanceCmd->SetParameterName("Slit2dist",false); 225 fSlit2DistanceCmd->SetUnitCategory("Length") 249 fSlit2DistanceCmd->SetUnitCategory("Length"); 226 fSlit2DistanceCmd->SetRange("Slit2dist>0."); 250 fSlit2DistanceCmd->SetRange("Slit2dist>0."); 227 fSlit2DistanceCmd->AvailableForStates(G4Stat << 251 fSlit2DistanceCmd->AvailableForStates(G4State_PreInit,G4State_Idle); 228 << 252 229 fSlit3DistanceCmd = new G4UIcmdWithADoubleAn << 253 fSlit3DistanceCmd = >> 254 new G4UIcmdWithADoubleAndUnit("/det/setSlit3SampleDistance",this); 230 fSlit3DistanceCmd->SetGuidance("Set Slit3-to 255 fSlit3DistanceCmd->SetGuidance("Set Slit3-to-Sample Distance"); 231 fSlit3DistanceCmd->SetParameterName("Slit3di << 256 fSlit3DistanceCmd->SetParameterName("Slit3dist",false); 232 fSlit3DistanceCmd->SetUnitCategory("Length") 257 fSlit3DistanceCmd->SetUnitCategory("Length"); 233 fSlit3DistanceCmd->SetRange("Slit3dist>0."); 258 fSlit3DistanceCmd->SetRange("Slit3dist>0."); 234 fSlit3DistanceCmd->AvailableForStates(G4Stat << 259 fSlit3DistanceCmd->AvailableForStates(G4State_PreInit,G4State_Idle); 235 << 260 236 fSlit4DistanceCmd = new G4UIcmdWithADoubleAn << 261 fSlit4DistanceCmd = >> 262 new G4UIcmdWithADoubleAndUnit("/det/setSlit4SampleDistance",this); 237 fSlit4DistanceCmd->SetGuidance("Set Slit4-to 263 fSlit4DistanceCmd->SetGuidance("Set Slit4-to-Sample Distance"); 238 fSlit4DistanceCmd->SetParameterName("Slit4di << 264 fSlit4DistanceCmd->SetParameterName("Slit4dist",false); 239 fSlit4DistanceCmd->SetUnitCategory("Length") 265 fSlit4DistanceCmd->SetUnitCategory("Length"); 240 fSlit4DistanceCmd->SetRange("Slit4dist>0."); 266 fSlit4DistanceCmd->SetRange("Slit4dist>0."); 241 fSlit4DistanceCmd->AvailableForStates(G4Stat << 267 fSlit4DistanceCmd->AvailableForStates(G4State_PreInit,G4State_Idle); 242 << 268 243 fSlit1xApertureCmd = new G4UIcmdWithADoubleA << 269 fSlit1xApertureCmd = >> 270 new G4UIcmdWithADoubleAndUnit("/det/setSlit1xAperture",this); 244 fSlit1xApertureCmd->SetGuidance("Set Slit1 x 271 fSlit1xApertureCmd->SetGuidance("Set Slit1 x Aperture"); 245 fSlit1xApertureCmd->SetParameterName("Slit1x << 272 fSlit1xApertureCmd->SetParameterName("Slit1xAp",false); 246 fSlit1xApertureCmd->SetUnitCategory("Length" 273 fSlit1xApertureCmd->SetUnitCategory("Length"); 247 fSlit1xApertureCmd->SetRange("Slit1xAp>0."); 274 fSlit1xApertureCmd->SetRange("Slit1xAp>0."); 248 fSlit1xApertureCmd->AvailableForStates(G4Sta << 275 fSlit1xApertureCmd->AvailableForStates(G4State_PreInit,G4State_Idle); 249 << 276 250 fSlit2xApertureCmd = new G4UIcmdWithADoubleA << 277 fSlit2xApertureCmd = >> 278 new G4UIcmdWithADoubleAndUnit("/det/setSlit2xAperture",this); 251 fSlit2xApertureCmd->SetGuidance("Set Slit2 x 279 fSlit2xApertureCmd->SetGuidance("Set Slit2 x Aperture"); 252 fSlit2xApertureCmd->SetParameterName("Slit2x << 280 fSlit2xApertureCmd->SetParameterName("Slit2xAp",false); 253 fSlit2xApertureCmd->SetUnitCategory("Length" 281 fSlit2xApertureCmd->SetUnitCategory("Length"); 254 fSlit2xApertureCmd->SetRange("Slit2xAp>0."); 282 fSlit2xApertureCmd->SetRange("Slit2xAp>0."); 255 fSlit2xApertureCmd->AvailableForStates(G4Sta << 283 fSlit2xApertureCmd->AvailableForStates(G4State_PreInit,G4State_Idle); 256 << 284 257 fSlit3xApertureCmd = new G4UIcmdWithADoubleA << 285 fSlit3xApertureCmd = >> 286 new G4UIcmdWithADoubleAndUnit("/det/setSlit3xAperture",this); 258 fSlit3xApertureCmd->SetGuidance("Set Slit3 x 287 fSlit3xApertureCmd->SetGuidance("Set Slit3 x Aperture"); 259 fSlit3xApertureCmd->SetParameterName("Slit3x << 288 fSlit3xApertureCmd->SetParameterName("Slit3xAp",false); 260 fSlit3xApertureCmd->SetUnitCategory("Length" 289 fSlit3xApertureCmd->SetUnitCategory("Length"); 261 fSlit3xApertureCmd->SetRange("Slit3xAp>0."); 290 fSlit3xApertureCmd->SetRange("Slit3xAp>0."); 262 fSlit3xApertureCmd->AvailableForStates(G4Sta << 291 fSlit3xApertureCmd->AvailableForStates(G4State_PreInit,G4State_Idle); 263 << 292 264 fSlit4xApertureCmd = new G4UIcmdWithADoubleA << 293 fSlit4xApertureCmd = >> 294 new G4UIcmdWithADoubleAndUnit("/det/setSlit4xAperture",this); 265 fSlit4xApertureCmd->SetGuidance("Set Slit4 x 295 fSlit4xApertureCmd->SetGuidance("Set Slit4 x Aperture"); 266 fSlit4xApertureCmd->SetParameterName("Slit4x << 296 fSlit4xApertureCmd->SetParameterName("Slit4xAp",false); 267 fSlit4xApertureCmd->SetUnitCategory("Length" 297 fSlit4xApertureCmd->SetUnitCategory("Length"); 268 fSlit4xApertureCmd->SetRange("Slit4xAp>0."); 298 fSlit4xApertureCmd->SetRange("Slit4xAp>0."); 269 fSlit4xApertureCmd->AvailableForStates(G4Sta << 299 fSlit4xApertureCmd->AvailableForStates(G4State_PreInit,G4State_Idle); 270 << 300 271 fSlit1yApertureCmd = new G4UIcmdWithADoubleA << 301 fSlit1yApertureCmd = >> 302 new G4UIcmdWithADoubleAndUnit("/det/setSlit1yAperture",this); 272 fSlit1yApertureCmd->SetGuidance("Set Slit1 y 303 fSlit1yApertureCmd->SetGuidance("Set Slit1 y Aperture"); 273 fSlit1yApertureCmd->SetParameterName("Slit1y << 304 fSlit1yApertureCmd->SetParameterName("Slit1yAp",false); 274 fSlit1yApertureCmd->SetUnitCategory("Length" 305 fSlit1yApertureCmd->SetUnitCategory("Length"); 275 fSlit1yApertureCmd->SetRange("Slit1yAp>0."); 306 fSlit1yApertureCmd->SetRange("Slit1yAp>0."); 276 fSlit1yApertureCmd->AvailableForStates(G4Sta << 307 fSlit1yApertureCmd->AvailableForStates(G4State_PreInit,G4State_Idle); 277 << 308 278 fSlit2yApertureCmd = new G4UIcmdWithADoubleA << 309 fSlit2yApertureCmd = >> 310 new G4UIcmdWithADoubleAndUnit("/det/setSlit2yAperture",this); 279 fSlit2yApertureCmd->SetGuidance("Set Slit2 y 311 fSlit2yApertureCmd->SetGuidance("Set Slit2 y Aperture"); 280 fSlit2yApertureCmd->SetParameterName("Slit2y << 312 fSlit2yApertureCmd->SetParameterName("Slit2yAp",false); 281 fSlit2yApertureCmd->SetUnitCategory("Length" 313 fSlit2yApertureCmd->SetUnitCategory("Length"); 282 fSlit2yApertureCmd->SetRange("Slit2yAp>0."); 314 fSlit2yApertureCmd->SetRange("Slit2yAp>0."); 283 fSlit2yApertureCmd->AvailableForStates(G4Sta << 315 fSlit2yApertureCmd->AvailableForStates(G4State_PreInit,G4State_Idle); 284 << 316 285 fSlit3yApertureCmd = new G4UIcmdWithADoubleA << 317 fSlit3yApertureCmd = >> 318 new G4UIcmdWithADoubleAndUnit("/det/setSlit3yAperture",this); 286 fSlit3yApertureCmd->SetGuidance("Set Slit3 y 319 fSlit3yApertureCmd->SetGuidance("Set Slit3 y Aperture"); 287 fSlit3yApertureCmd->SetParameterName("Slit3y << 320 fSlit3yApertureCmd->SetParameterName("Slit3yAp",false); 288 fSlit3yApertureCmd->SetUnitCategory("Length" 321 fSlit3yApertureCmd->SetUnitCategory("Length"); 289 fSlit3yApertureCmd->SetRange("Slit3yAp>0."); 322 fSlit3yApertureCmd->SetRange("Slit3yAp>0."); 290 fSlit3yApertureCmd->AvailableForStates(G4Sta << 323 fSlit3yApertureCmd->AvailableForStates(G4State_PreInit,G4State_Idle); 291 << 324 292 fSlit4yApertureCmd = new G4UIcmdWithADoubleA << 325 fSlit4yApertureCmd = >> 326 new G4UIcmdWithADoubleAndUnit("/det/setSlit4yAperture",this); 293 fSlit4yApertureCmd->SetGuidance("Set Slit4 y 327 fSlit4yApertureCmd->SetGuidance("Set Slit4 y Aperture"); 294 fSlit4yApertureCmd->SetParameterName("Slit4y << 328 fSlit4yApertureCmd->SetParameterName("Slit4yAp",false); 295 fSlit4yApertureCmd->SetUnitCategory("Length" 329 fSlit4yApertureCmd->SetUnitCategory("Length"); 296 fSlit4yApertureCmd->SetRange("Slit4yAp>0."); 330 fSlit4yApertureCmd->SetRange("Slit4yAp>0."); 297 fSlit4yApertureCmd->AvailableForStates(G4Sta << 331 fSlit4yApertureCmd->AvailableForStates(G4State_PreInit,G4State_Idle); 298 332 299 fDetectorThicknessCmd = new G4UIcmdWithADoub << 333 fDetectorThicknessCmd = new G4UIcmdWithADoubleAndUnit >> 334 ("/det/setDetectorThickness",this); 300 fDetectorThicknessCmd->SetGuidance("Set Dete 335 fDetectorThicknessCmd->SetGuidance("Set Detector Thickness"); 301 fDetectorThicknessCmd->SetParameterName("Det << 336 fDetectorThicknessCmd->SetParameterName("DetectorThickness",false); 302 fDetectorThicknessCmd->SetUnitCategory("Leng 337 fDetectorThicknessCmd->SetUnitCategory("Length"); 303 fDetectorThicknessCmd->SetRange("DetectorThi 338 fDetectorThicknessCmd->SetRange("DetectorThickness>0."); 304 fDetectorThicknessCmd->AvailableForStates(G4 << 339 fDetectorThicknessCmd->AvailableForStates(G4State_PreInit,G4State_Idle); 305 << 340 306 fDetectorSizeCmd = new G4UIcmdWithADoubleAnd << 341 fDetectorSizeCmd = new G4UIcmdWithADoubleAndUnit("/det/setDetectorSize",this); 307 fDetectorSizeCmd->SetGuidance("Set DetectorS 342 fDetectorSizeCmd->SetGuidance("Set DetectorSize"); 308 fDetectorSizeCmd->SetParameterName("scrnsize << 343 fDetectorSizeCmd->SetParameterName("scrnsize",false); 309 fDetectorSizeCmd->SetUnitCategory("Length"); 344 fDetectorSizeCmd->SetUnitCategory("Length"); 310 fDetectorSizeCmd->SetRange("scrnsize>0."); 345 fDetectorSizeCmd->SetRange("scrnsize>0."); 311 fDetectorSizeCmd->AvailableForStates(G4State << 346 fDetectorSizeCmd->AvailableForStates(G4State_PreInit,G4State_Idle); 312 << 347 313 fDetectorDistanceCmd = new G4UIcmdWithADoubl << 348 fDetectorDistanceCmd = new G4UIcmdWithADoubleAndUnit >> 349 ("/det/setDetectorSampleDistance",this); 314 fDetectorDistanceCmd->SetGuidance("Set Detec 350 fDetectorDistanceCmd->SetGuidance("Set Detector Distance"); 315 fDetectorDistanceCmd->SetParameterName("detD << 351 fDetectorDistanceCmd->SetParameterName("detDist",false); 316 fDetectorDistanceCmd->SetUnitCategory("Lengt 352 fDetectorDistanceCmd->SetUnitCategory("Length"); 317 fDetectorDistanceCmd->SetRange("detDist>0.") 353 fDetectorDistanceCmd->SetRange("detDist>0."); 318 fDetectorDistanceCmd->AvailableForStates(G4S << 354 fDetectorDistanceCmd->AvailableForStates(G4State_PreInit,G4State_Idle); 319 } 355 } 320 356 321 //....oooOO0OOooo........oooOO0OOooo........oo 357 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 322 358 323 SAXSDetectorConstructionMessenger::~SAXSDetect 359 SAXSDetectorConstructionMessenger::~SAXSDetectorConstructionMessenger() 324 { 360 { 325 delete fCmdDir; 361 delete fCmdDir; 326 << 362 327 delete fSetCustomMatFFfilename; << 363 delete fSetCustomMatFFfilename; 328 delete fSetCustomMatDensityCmd; 364 delete fSetCustomMatDensityCmd; 329 delete fSetCustomMatHmassfractCmd; 365 delete fSetCustomMatHmassfractCmd; 330 delete fSetCustomMatCmassfractCmd; 366 delete fSetCustomMatCmassfractCmd; 331 delete fSetCustomMatNmassfractCmd; 367 delete fSetCustomMatNmassfractCmd; 332 delete fSetCustomMatOmassfractCmd; 368 delete fSetCustomMatOmassfractCmd; 333 delete fSetCustomMatNamassfractCmd; 369 delete fSetCustomMatNamassfractCmd; 334 delete fSetCustomMatPmassfractCmd; 370 delete fSetCustomMatPmassfractCmd; 335 delete fSetCustomMatSmassfractCmd; 371 delete fSetCustomMatSmassfractCmd; 336 delete fSetCustomMatClmassfractCmd; 372 delete fSetCustomMatClmassfractCmd; 337 delete fSetCustomMatKmassfractCmd; 373 delete fSetCustomMatKmassfractCmd; 338 delete fSetCustomMatCamassfractCmd; 374 delete fSetCustomMatCamassfractCmd; 339 << 375 340 delete fPhantomMaterialCmd; 376 delete fPhantomMaterialCmd; 341 delete fPhantomDiameterCmd; 377 delete fPhantomDiameterCmd; 342 delete fPhantomHeightCmd; 378 delete fPhantomHeightCmd; 343 delete fPhantomZCmd; << 379 delete fPhantomZCmd; 344 380 345 delete fSetComp0Cmd; 381 delete fSetComp0Cmd; 346 delete fSetComp1Cmd; 382 delete fSetComp1Cmd; 347 delete fSetComp2Cmd; 383 delete fSetComp2Cmd; 348 delete fSetComp3Cmd; 384 delete fSetComp3Cmd; 349 << 385 350 delete fThetaSetupCmd; << 386 delete fThetaSetupCmd; 351 << 387 352 delete fSetSlitsCmd; 388 delete fSetSlitsCmd; 353 delete fSlit1ThicknessCmd; 389 delete fSlit1ThicknessCmd; 354 delete fSlit2ThicknessCmd; 390 delete fSlit2ThicknessCmd; 355 delete fSlit3ThicknessCmd; 391 delete fSlit3ThicknessCmd; 356 delete fSlit4ThicknessCmd; 392 delete fSlit4ThicknessCmd; 357 delete fSlit1DistanceCmd; 393 delete fSlit1DistanceCmd; 358 delete fSlit2DistanceCmd; 394 delete fSlit2DistanceCmd; 359 delete fSlit3DistanceCmd; 395 delete fSlit3DistanceCmd; 360 delete fSlit4DistanceCmd; 396 delete fSlit4DistanceCmd; 361 delete fSlit1xApertureCmd; 397 delete fSlit1xApertureCmd; 362 delete fSlit2xApertureCmd; 398 delete fSlit2xApertureCmd; 363 delete fSlit3xApertureCmd; 399 delete fSlit3xApertureCmd; 364 delete fSlit4xApertureCmd; << 400 delete fSlit4xApertureCmd; 365 delete fSlit1yApertureCmd; 401 delete fSlit1yApertureCmd; 366 delete fSlit2yApertureCmd; 402 delete fSlit2yApertureCmd; 367 delete fSlit3yApertureCmd; 403 delete fSlit3yApertureCmd; 368 delete fSlit4yApertureCmd; << 404 delete fSlit4yApertureCmd; 369 405 370 delete fDetectorThicknessCmd; << 406 delete fDetectorThicknessCmd; 371 delete fDetectorSizeCmd; 407 delete fDetectorSizeCmd; 372 delete fDetectorDistanceCmd; << 408 delete fDetectorDistanceCmd; 373 } 409 } 374 410 375 //....oooOO0OOooo........oooOO0OOooo........oo 411 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 376 412 377 void SAXSDetectorConstructionMessenger::SetNew << 413 void SAXSDetectorConstructionMessenger::SetNewValue(G4UIcommand* command, >> 414 G4String newValue) 378 { 415 { 379 if (command == fSetCustomMatFFfilename) fDet << 416 if (command == fSetCustomMatFFfilename) 380 << 417 fDetector->SetCustomMatFF(newValue); 381 if (command == fSetCustomMatDensityCmd) << 418 382 fDetector->SetCustomMatDensity(fSetCustomM << 419 if (command == fSetCustomMatDensityCmd) 383 << 420 fDetector->SetCustomMatDensity 384 if (command == fSetCustomMatHmassfractCmd) << 421 (fSetCustomMatDensityCmd->GetNewDoubleValue(newValue)); 385 fDetector->SetCustomMatHmassfract(fSetCust << 422 386 << 423 if (command == fSetCustomMatHmassfractCmd) 387 if (command == fSetCustomMatCmassfractCmd) << 424 fDetector->SetCustomMatHmassfract 388 fDetector->SetCustomMatCmassfract(fSetCust << 425 (fSetCustomMatHmassfractCmd->GetNewDoubleValue(newValue)); 389 if (command == fSetCustomMatNmassfractCmd) << 426 390 fDetector->SetCustomMatNmassfract(fSetCust << 427 if (command == fSetCustomMatCmassfractCmd) 391 if (command == fSetCustomMatOmassfractCmd) << 428 fDetector->SetCustomMatCmassfract 392 fDetector->SetCustomMatOmassfract(fSetCust << 429 (fSetCustomMatCmassfractCmd->GetNewDoubleValue(newValue)); 393 if (command == fSetCustomMatNamassfractCmd) << 430 if (command == fSetCustomMatNmassfractCmd) 394 fDetector->SetCustomMatNamassfract(fSetCus << 431 fDetector->SetCustomMatNmassfract 395 if (command == fSetCustomMatPmassfractCmd) << 432 (fSetCustomMatNmassfractCmd->GetNewDoubleValue(newValue)); 396 fDetector->SetCustomMatPmassfract(fSetCust << 433 if (command == fSetCustomMatOmassfractCmd) 397 if (command == fSetCustomMatSmassfractCmd) << 434 fDetector->SetCustomMatOmassfract 398 fDetector->SetCustomMatSmassfract(fSetCust << 435 (fSetCustomMatOmassfractCmd->GetNewDoubleValue(newValue)); 399 if (command == fSetCustomMatClmassfractCmd) << 436 if (command == fSetCustomMatNamassfractCmd) 400 fDetector->SetCustomMatClmassfract(fSetCus << 437 fDetector->SetCustomMatNamassfract 401 if (command == fSetCustomMatKmassfractCmd) << 438 (fSetCustomMatNamassfractCmd->GetNewDoubleValue(newValue)); 402 fDetector->SetCustomMatKmassfract(fSetCust << 439 if (command == fSetCustomMatPmassfractCmd) 403 if (command == fSetCustomMatCamassfractCmd) << 440 fDetector->SetCustomMatPmassfract 404 fDetector->SetCustomMatCamassfract(fSetCus << 441 (fSetCustomMatPmassfractCmd->GetNewDoubleValue(newValue)); 405 << 442 if (command == fSetCustomMatSmassfractCmd) >> 443 fDetector->SetCustomMatSmassfract >> 444 (fSetCustomMatSmassfractCmd->GetNewDoubleValue(newValue)); >> 445 if (command == fSetCustomMatClmassfractCmd) >> 446 fDetector->SetCustomMatClmassfract >> 447 (fSetCustomMatClmassfractCmd->GetNewDoubleValue(newValue)); >> 448 if (command == fSetCustomMatKmassfractCmd) >> 449 fDetector->SetCustomMatKmassfract >> 450 (fSetCustomMatKmassfractCmd->GetNewDoubleValue(newValue)); >> 451 if (command == fSetCustomMatCamassfractCmd) >> 452 fDetector->SetCustomMatCamassfract >> 453 (fSetCustomMatCamassfractCmd->GetNewDoubleValue(newValue)); >> 454 406 if (command == fPhantomMaterialCmd) { 455 if (command == fPhantomMaterialCmd) { 407 fDetector->SetPhantomMaterial(fPhantomMate << 456 fDetector->SetPhantomMaterial 408 } << 457 (fPhantomMaterialCmd->GetNewIntValue(newValue));} 409 if (command == fPhantomDiameterCmd) { 458 if (command == fPhantomDiameterCmd) { 410 fDetector->SetPhantomDiameter(fPhantomDiam << 459 fDetector->SetPhantomDiameter 411 } << 460 (fPhantomDiameterCmd->GetNewDoubleValue(newValue));} 412 if (command == fPhantomHeightCmd) { 461 if (command == fPhantomHeightCmd) { 413 fDetector->SetPhantomHeight(fPhantomHeight << 462 fDetector->SetPhantomHeight 414 } << 463 (fPhantomHeightCmd->GetNewDoubleValue(newValue));} 415 if (command == fPhantomZCmd) { 464 if (command == fPhantomZCmd) { 416 fDetector->SetPhantomZ(fPhantomZCmd->GetNe << 465 fDetector->SetPhantomZ 417 } << 466 (fPhantomZCmd->GetNewDoubleValue(newValue));} 418 << 467 419 if (command == fSetComp0Cmd) fDetector->SetC << 468 if (command == fSetComp0Cmd) 420 if (command == fSetComp1Cmd) fDetector->SetC << 469 fDetector->SetComp0(fSetComp0Cmd->GetNewDoubleValue(newValue)); 421 if (command == fSetComp2Cmd) fDetector->SetC << 470 if (command == fSetComp1Cmd) 422 if (command == fSetComp3Cmd) fDetector->SetC << 471 fDetector->SetComp1(fSetComp1Cmd->GetNewDoubleValue(newValue)); 423 << 472 if (command == fSetComp2Cmd) >> 473 fDetector->SetComp2(fSetComp2Cmd->GetNewDoubleValue(newValue)); >> 474 if (command == fSetComp3Cmd) >> 475 fDetector->SetComp3(fSetComp3Cmd->GetNewDoubleValue(newValue)); >> 476 424 if (command == fThetaSetupCmd) 477 if (command == fThetaSetupCmd) 425 fDetector->SetThetaSetup(fThetaSetupCmd->G << 478 fDetector->SetThetaSetup 426 if (command == fSetSlitsCmd) fDetector->SetS << 479 (fThetaSetupCmd->GetNewDoubleValue(newValue)); 427 if (command == fSlit1ThicknessCmd) << 480 if (command == fSetSlitsCmd) 428 fDetector->SetSlit1Thickness(fSlit1Thickne << 481 fDetector->SetSlits(fSetSlitsCmd->GetNewBoolValue(newValue)); >> 482 if (command == fSlit1ThicknessCmd) >> 483 fDetector->SetSlit1Thickness >> 484 (fSlit1ThicknessCmd->GetNewDoubleValue(newValue)); 429 if (command == fSlit2ThicknessCmd) 485 if (command == fSlit2ThicknessCmd) 430 fDetector->SetSlit2Thickness(fSlit2Thickne << 486 fDetector->SetSlit2Thickness >> 487 (fSlit2ThicknessCmd->GetNewDoubleValue(newValue)); 431 if (command == fSlit3ThicknessCmd) 488 if (command == fSlit3ThicknessCmd) 432 fDetector->SetSlit3Thickness(fSlit3Thickne << 489 fDetector->SetSlit3Thickness 433 if (command == fSlit4ThicknessCmd) << 490 (fSlit3ThicknessCmd->GetNewDoubleValue(newValue)); 434 fDetector->SetSlit4Thickness(fSlit4Thickne << 491 if (command == fSlit4ThicknessCmd) 435 if (command == fSlit1DistanceCmd) << 492 fDetector->SetSlit4Thickness 436 fDetector->SetSlit1SampleDistance(fSlit1Di << 493 (fSlit4ThicknessCmd->GetNewDoubleValue(newValue)); 437 if (command == fSlit2DistanceCmd) << 494 if (command == fSlit1DistanceCmd) 438 fDetector->SetSlit2SampleDistance(fSlit2Di << 495 fDetector->SetSlit1SampleDistance 439 if (command == fSlit3DistanceCmd) << 496 (fSlit1DistanceCmd->GetNewDoubleValue(newValue)); 440 fDetector->SetSlit3SampleDistance(fSlit3Di << 497 if (command == fSlit2DistanceCmd) 441 if (command == fSlit4DistanceCmd) << 498 fDetector->SetSlit2SampleDistance 442 fDetector->SetSlit4SampleDistance(fSlit4Di << 499 (fSlit2DistanceCmd->GetNewDoubleValue(newValue)); 443 if (command == fSlit1xApertureCmd) << 500 if (command == fSlit3DistanceCmd) 444 fDetector->SetSlit1xAperture(fSlit1xApertu << 501 fDetector->SetSlit3SampleDistance 445 if (command == fSlit2xApertureCmd) << 502 (fSlit3DistanceCmd->GetNewDoubleValue(newValue)); 446 fDetector->SetSlit2xAperture(fSlit2xApertu << 503 if (command == fSlit4DistanceCmd) 447 if (command == fSlit3xApertureCmd) << 504 fDetector->SetSlit4SampleDistance 448 fDetector->SetSlit3xAperture(fSlit3xApertu << 505 (fSlit4DistanceCmd->GetNewDoubleValue(newValue)); 449 if (command == fSlit4xApertureCmd) << 506 if (command == fSlit1xApertureCmd) 450 fDetector->SetSlit4xAperture(fSlit4xApertu << 507 fDetector->SetSlit1xAperture 451 if (command == fSlit1yApertureCmd) << 508 (fSlit1xApertureCmd->GetNewDoubleValue(newValue)); 452 fDetector->SetSlit1yAperture(fSlit1yApertu << 509 if (command == fSlit2xApertureCmd) 453 if (command == fSlit2yApertureCmd) << 510 fDetector->SetSlit2xAperture 454 fDetector->SetSlit2yAperture(fSlit2yApertu << 511 (fSlit2xApertureCmd->GetNewDoubleValue(newValue)); 455 if (command == fSlit3yApertureCmd) << 512 if (command == fSlit3xApertureCmd) 456 fDetector->SetSlit3yAperture(fSlit3yApertu << 513 fDetector->SetSlit3xAperture 457 if (command == fSlit4yApertureCmd) << 514 (fSlit3xApertureCmd->GetNewDoubleValue(newValue)); 458 fDetector->SetSlit4yAperture(fSlit4yApertu << 515 if (command == fSlit4xApertureCmd) 459 if (command == fDetectorThicknessCmd) << 516 fDetector->SetSlit4xAperture 460 fDetector->SetDetectorThickness(fDetectorT << 517 (fSlit4xApertureCmd->GetNewDoubleValue(newValue)); 461 if (command == fDetectorSizeCmd) << 518 if (command == fSlit1yApertureCmd) 462 fDetector->SetDetectorSize(fDetectorSizeCm << 519 fDetector->SetSlit1yAperture >> 520 (fSlit1yApertureCmd->GetNewDoubleValue(newValue)); >> 521 if (command == fSlit2yApertureCmd) >> 522 fDetector->SetSlit2yAperture >> 523 (fSlit2yApertureCmd->GetNewDoubleValue(newValue)); >> 524 if (command == fSlit3yApertureCmd) >> 525 fDetector->SetSlit3yAperture >> 526 (fSlit3yApertureCmd->GetNewDoubleValue(newValue)); >> 527 if (command == fSlit4yApertureCmd) >> 528 fDetector->SetSlit4yAperture >> 529 (fSlit4yApertureCmd->GetNewDoubleValue(newValue)); >> 530 if (command == fDetectorThicknessCmd) >> 531 fDetector->SetDetectorThickness >> 532 (fDetectorThicknessCmd->GetNewDoubleValue(newValue)); >> 533 if (command == fDetectorSizeCmd) >> 534 fDetector->SetDetectorSize >> 535 (fDetectorSizeCmd->GetNewDoubleValue(newValue)); 463 if (command == fDetectorDistanceCmd) 536 if (command == fDetectorDistanceCmd) 464 fDetector->SetDetectorSampleDistance(fDete << 537 fDetector->SetDetectorSampleDistance >> 538 (fDetectorDistanceCmd->GetNewDoubleValue(newValue)); 465 } 539 } 466 540 467 //....oooOO0OOooo........oooOO0OOooo........oo 541 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... >> 542 468 543