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 // 26 // >> 27 // $Id: G4FastSimulationMessenger.cc 68056 2013-03-13 14:44:48Z gcosmo $ 27 // 28 // 28 29 29 #include "G4FastSimulationMessenger.hh" 30 #include "G4FastSimulationMessenger.hh" 30 << 31 #include "G4UIdirectory.hh" 31 #include "G4UIcmdWithAString.hh" 32 #include "G4UIcmdWithAString.hh" 32 #include "G4UIcmdWithoutParameter.hh" 33 #include "G4UIcmdWithoutParameter.hh" 33 #include "G4UIdirectory.hh" << 34 34 #include "G4ios.hh" 35 #include "G4ios.hh" 35 36 36 G4FastSimulationMessenger::G4FastSimulationMes << 37 G4FastSimulationMessenger:: >> 38 G4FastSimulationMessenger(G4GlobalFastSimulationManager* theGFSM) 37 : fGlobalFastSimulationManager(theGFSM) 39 : fGlobalFastSimulationManager(theGFSM) 38 { 40 { 39 fFSDirectory = new G4UIdirectory("/param/"); 41 fFSDirectory = new G4UIdirectory("/param/"); 40 fFSDirectory->SetGuidance("Fast Simulation p 42 fFSDirectory->SetGuidance("Fast Simulation print/control commands."); 41 43 42 fShowSetupCmd = new G4UIcmdWithoutParameter( << 44 fShowSetupCmd = >> 45 new G4UIcmdWithoutParameter("/param/showSetup", this); 43 fShowSetupCmd->SetGuidance("Show fast simula 46 fShowSetupCmd->SetGuidance("Show fast simulation setup:"); 44 fShowSetupCmd->SetGuidance(" - for each w 47 fShowSetupCmd->SetGuidance(" - for each world region:"); 45 fShowSetupCmd->SetGuidance(" 1) fast 48 fShowSetupCmd->SetGuidance(" 1) fast simulation manager process attached;"); 46 fShowSetupCmd->SetGuidance(" - 49 fShowSetupCmd->SetGuidance(" - and to which particles the process is attached to;"); 47 fShowSetupCmd->SetGuidance(" 2) regio 50 fShowSetupCmd->SetGuidance(" 2) region hierarchy;"); 48 fShowSetupCmd->SetGuidance(" - 51 fShowSetupCmd->SetGuidance(" - with for each the fast simulation models attached;"); 49 fShowSetupCmd->AvailableForStates(G4State_Id 52 fShowSetupCmd->AvailableForStates(G4State_Idle, G4State_GeomClosed); 50 53 51 fListEnvelopesCmd = new G4UIcmdWithAString(" << 54 fListEnvelopesCmd = 52 fListEnvelopesCmd->SetParameterName("Particl << 55 new G4UIcmdWithAString("/param/listEnvelopes", this); >> 56 fListEnvelopesCmd->SetParameterName("ParticleName",true); 53 fListEnvelopesCmd->SetDefaultValue("all"); 57 fListEnvelopesCmd->SetDefaultValue("all"); 54 fListEnvelopesCmd->SetGuidance("List all the 58 fListEnvelopesCmd->SetGuidance("List all the envelope names for a given Particle"); 55 fListEnvelopesCmd->SetGuidance("(or for all 59 fListEnvelopesCmd->SetGuidance("(or for all particles if without parameters)."); 56 fListEnvelopesCmd->AvailableForStates(G4Stat << 60 fListEnvelopesCmd->AvailableForStates(G4State_PreInit,G4State_Idle); 57 << 61 58 fListModelsCmd = new G4UIcmdWithAString("/pa << 62 fListModelsCmd = 59 fListModelsCmd->SetParameterName("EnvelopeNa << 63 new G4UIcmdWithAString("/param/listModels", this); >> 64 fListModelsCmd->SetParameterName("EnvelopeName",true); 60 fListModelsCmd->SetDefaultValue("all"); 65 fListModelsCmd->SetDefaultValue("all"); 61 fListModelsCmd->SetGuidance("List all the Mo 66 fListModelsCmd->SetGuidance("List all the Model names for a given Envelope"); 62 fListModelsCmd->SetGuidance("(or for all env 67 fListModelsCmd->SetGuidance("(or for all envelopes if without parameters)."); 63 fListModelsCmd->AvailableForStates(G4State_P << 68 fListModelsCmd->AvailableForStates(G4State_PreInit,G4State_Idle); 64 << 69 65 fListIsApplicableCmd = new G4UIcmdWithAStrin << 70 fListIsApplicableCmd = 66 fListIsApplicableCmd->SetParameterName("Mode << 71 new G4UIcmdWithAString("/param/listIsApplicable", this); >> 72 fListIsApplicableCmd->SetParameterName("ModelName",true); 67 fListIsApplicableCmd->SetDefaultValue("all") 73 fListIsApplicableCmd->SetDefaultValue("all"); 68 fListIsApplicableCmd->SetGuidance("List all 74 fListIsApplicableCmd->SetGuidance("List all the Particle names a given Model is applicable"); 69 fListIsApplicableCmd->SetGuidance("(or for a 75 fListIsApplicableCmd->SetGuidance("(or for all Models if without parameters)."); 70 76 71 fActivateModel = new G4UIcmdWithAString("/pa << 77 fActivateModel = 72 fActivateModel->SetParameterName("ModelName" << 78 new G4UIcmdWithAString("/param/ActivateModel", this); >> 79 fActivateModel->SetParameterName("ModelName",false); 73 fActivateModel->SetGuidance("Activate a give 80 fActivateModel->SetGuidance("Activate a given Model."); 74 81 75 fInActivateModel = new G4UIcmdWithAString("/ << 82 fInActivateModel = 76 fInActivateModel->SetParameterName("ModelNam << 83 new G4UIcmdWithAString("/param/InActivateModel", this); >> 84 fInActivateModel->SetParameterName("ModelName",false); 77 fInActivateModel->SetGuidance("InActivate a 85 fInActivateModel->SetGuidance("InActivate a given Model."); 78 } 86 } 79 87 80 G4FastSimulationMessenger::~G4FastSimulationMe 88 G4FastSimulationMessenger::~G4FastSimulationMessenger() 81 { 89 { 82 delete fShowSetupCmd; 90 delete fShowSetupCmd; >> 91 fShowSetupCmd = 0; 83 delete fListIsApplicableCmd; 92 delete fListIsApplicableCmd; >> 93 fListIsApplicableCmd = 0; 84 delete fActivateModel; 94 delete fActivateModel; >> 95 fActivateModel = 0; 85 delete fInActivateModel; 96 delete fInActivateModel; >> 97 fInActivateModel = 0; 86 delete fListModelsCmd; 98 delete fListModelsCmd; >> 99 fListModelsCmd = 0; 87 delete fListEnvelopesCmd; 100 delete fListEnvelopesCmd; >> 101 fListEnvelopesCmd = 0; 88 delete fFSDirectory; 102 delete fFSDirectory; >> 103 fFSDirectory = 0; 89 } 104 } 90 105 91 void G4FastSimulationMessenger::SetNewValue(G4 << 106 void G4FastSimulationMessenger::SetNewValue(G4UIcommand * command,G4String newValue) 92 { 107 { 93 if (command == fShowSetupCmd) fGlobalFastSim << 108 if (command == fShowSetupCmd) 94 if (command == fListEnvelopesCmd) { << 109 fGlobalFastSimulationManager->ShowSetup(); 95 if (newValue == "all") << 110 if( command == fListEnvelopesCmd) >> 111 { >> 112 if(newValue == "all") 96 fGlobalFastSimulationManager->ListEnvelo 113 fGlobalFastSimulationManager->ListEnvelopes(); 97 else << 114 else 98 fGlobalFastSimulationManager->ListEnvelo << 115 fGlobalFastSimulationManager-> 99 G4ParticleTable::GetParticleTable()->F << 116 ListEnvelopes(G4ParticleTable::GetParticleTable()-> >> 117 FindParticle(newValue)); 100 } 118 } 101 if (command == fListModelsCmd) fGlobalFastSi << 119 if( command == fListModelsCmd) 102 if (command == fListIsApplicableCmd) << 120 fGlobalFastSimulationManager->ListEnvelopes(newValue, MODELS); >> 121 if( command == fListIsApplicableCmd) 103 fGlobalFastSimulationManager->ListEnvelope 122 fGlobalFastSimulationManager->ListEnvelopes(newValue, ISAPPLICABLE); 104 if (command == fActivateModel) << 123 if( command == fActivateModel) 105 fGlobalFastSimulationManager->ActivateFast 124 fGlobalFastSimulationManager->ActivateFastSimulationModel(newValue); 106 if (command == fInActivateModel) << 125 if( command == fInActivateModel) 107 fGlobalFastSimulationManager->InActivateFa 126 fGlobalFastSimulationManager->InActivateFastSimulationModel(newValue); 108 } 127 } 109 128