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