Geant4 Cross Reference |
1 // 1 // 2 // ******************************************* 2 // ******************************************************************** 3 // * License and Disclaimer << 3 // * DISCLAIMER * 4 // * 4 // * * 5 // * The Geant4 software is copyright of th << 5 // * The following disclaimer summarizes all the specific disclaimers * 6 // * the Geant4 Collaboration. It is provided << 6 // * of contributors to this software. The specific disclaimers,which * 7 // * conditions of the Geant4 Software License << 7 // * govern, are listed with their locations in: * 8 // * LICENSE and available at http://cern.ch/ << 8 // * http://cern.ch/geant4/license * 9 // * include a list of copyright holders. << 10 // * 9 // * * 11 // * Neither the authors of this software syst 10 // * Neither the authors of this software system, nor their employing * 12 // * institutes,nor the agencies providing fin 11 // * institutes,nor the agencies providing financial support for this * 13 // * work make any representation or warran 12 // * work make any representation or warranty, express or implied, * 14 // * regarding this software system or assum 13 // * regarding this software system or assume any liability for its * 15 // * use. Please see the license in the file << 14 // * use. * 16 // * for the full disclaimer and the limitatio << 17 // * 15 // * * 18 // * This code implementation is the result << 16 // * This code implementation is the intellectual property of the * 19 // * technical work of the GEANT4 collaboratio << 17 // * GEANT4 collaboration. * 20 // * By using, copying, modifying or distri << 18 // * By copying, distributing or modifying the Program (or any work * 21 // * any work based on the software) you ag << 19 // * based on the Program) you indicate your acceptance of this * 22 // * use in resulting scientific publicati << 20 // * statement, and all its terms. * 23 // * acceptance of all terms of the Geant4 Sof << 24 // ******************************************* 21 // ******************************************************************** 25 // 22 // 26 // 23 // >> 24 // $Id: G4FastSimulationMessenger.cc,v 1.4 2001/07/11 10:08:24 gunter Exp $ >> 25 // GEANT4 tag $Name: geant4-04-00 $ 27 // 26 // 28 27 29 #include "G4FastSimulationMessenger.hh" 28 #include "G4FastSimulationMessenger.hh" 30 << 29 #include "G4UIdirectory.hh" 31 #include "G4UIcmdWithAString.hh" 30 #include "G4UIcmdWithAString.hh" 32 #include "G4UIcmdWithoutParameter.hh" 31 #include "G4UIcmdWithoutParameter.hh" 33 #include "G4UIdirectory.hh" << 32 34 #include "G4ios.hh" 33 #include "G4ios.hh" 35 34 36 G4FastSimulationMessenger::G4FastSimulationMes << 35 G4FastSimulationMessenger:: >> 36 G4FastSimulationMessenger(G4GlobalFastSimulationManager* theGFSM) 37 : fGlobalFastSimulationManager(theGFSM) 37 : fGlobalFastSimulationManager(theGFSM) 38 { 38 { 39 fFSDirectory = new G4UIdirectory("/param/"); 39 fFSDirectory = new G4UIdirectory("/param/"); 40 fFSDirectory->SetGuidance("Fast Simulation p 40 fFSDirectory->SetGuidance("Fast Simulation print/control commands."); 41 41 42 fShowSetupCmd = new G4UIcmdWithoutParameter( << 42 fListEnvelopesCmd = 43 fShowSetupCmd->SetGuidance("Show fast simula << 43 new G4UIcmdWithAString("/param/listEnvelopes", this); 44 fShowSetupCmd->SetGuidance(" - for each w << 44 fListEnvelopesCmd->SetParameterName("ParticleName",true); 45 fShowSetupCmd->SetGuidance(" 1) fast << 46 fShowSetupCmd->SetGuidance(" - << 47 fShowSetupCmd->SetGuidance(" 2) regio << 48 fShowSetupCmd->SetGuidance(" - << 49 fShowSetupCmd->AvailableForStates(G4State_Id << 50 << 51 fListEnvelopesCmd = new G4UIcmdWithAString(" << 52 fListEnvelopesCmd->SetParameterName("Particl << 53 fListEnvelopesCmd->SetDefaultValue("all"); 45 fListEnvelopesCmd->SetDefaultValue("all"); 54 fListEnvelopesCmd->SetGuidance("List all the 46 fListEnvelopesCmd->SetGuidance("List all the envelope names for a given Particle"); 55 fListEnvelopesCmd->SetGuidance("(or for all 47 fListEnvelopesCmd->SetGuidance("(or for all particles if without parameters)."); 56 fListEnvelopesCmd->AvailableForStates(G4Stat << 48 fListEnvelopesCmd->AvailableForStates(PreInit,Idle); 57 << 49 58 fListModelsCmd = new G4UIcmdWithAString("/pa << 50 fListModelsCmd = 59 fListModelsCmd->SetParameterName("EnvelopeNa << 51 new G4UIcmdWithAString("/param/listModels", this); >> 52 fListModelsCmd->SetParameterName("EnvelopeName",true); 60 fListModelsCmd->SetDefaultValue("all"); 53 fListModelsCmd->SetDefaultValue("all"); 61 fListModelsCmd->SetGuidance("List all the Mo 54 fListModelsCmd->SetGuidance("List all the Model names for a given Envelope"); 62 fListModelsCmd->SetGuidance("(or for all env 55 fListModelsCmd->SetGuidance("(or for all envelopes if without parameters)."); 63 fListModelsCmd->AvailableForStates(G4State_P << 56 fListModelsCmd->AvailableForStates(PreInit,Idle); 64 << 57 65 fListIsApplicableCmd = new G4UIcmdWithAStrin << 58 fListIsApplicableCmd = 66 fListIsApplicableCmd->SetParameterName("Mode << 59 new G4UIcmdWithAString("/param/listIsApplicable", this); >> 60 fListIsApplicableCmd->SetParameterName("ModelName",true); 67 fListIsApplicableCmd->SetDefaultValue("all") 61 fListIsApplicableCmd->SetDefaultValue("all"); 68 fListIsApplicableCmd->SetGuidance("List all 62 fListIsApplicableCmd->SetGuidance("List all the Particle names a given Model is applicable"); 69 fListIsApplicableCmd->SetGuidance("(or for a 63 fListIsApplicableCmd->SetGuidance("(or for all Models if without parameters)."); 70 64 71 fActivateModel = new G4UIcmdWithAString("/pa << 65 fActivateModel = 72 fActivateModel->SetParameterName("ModelName" << 66 new G4UIcmdWithAString("/param/ActivateModel", this); >> 67 fActivateModel->SetParameterName("ModelName",false); 73 fActivateModel->SetGuidance("Activate a give 68 fActivateModel->SetGuidance("Activate a given Model."); 74 69 75 fInActivateModel = new G4UIcmdWithAString("/ << 70 fInActivateModel = 76 fInActivateModel->SetParameterName("ModelNam << 71 new G4UIcmdWithAString("/param/InActivateModel", this); >> 72 fInActivateModel->SetParameterName("ModelName",false); 77 fInActivateModel->SetGuidance("InActivate a 73 fInActivateModel->SetGuidance("InActivate a given Model."); 78 } 74 } 79 75 80 G4FastSimulationMessenger::~G4FastSimulationMe 76 G4FastSimulationMessenger::~G4FastSimulationMessenger() 81 { 77 { 82 delete fShowSetupCmd; << 83 delete fListIsApplicableCmd; 78 delete fListIsApplicableCmd; >> 79 fListIsApplicableCmd = 0; 84 delete fActivateModel; 80 delete fActivateModel; >> 81 fActivateModel = 0; 85 delete fInActivateModel; 82 delete fInActivateModel; >> 83 fInActivateModel = 0; 86 delete fListModelsCmd; 84 delete fListModelsCmd; >> 85 fListModelsCmd = 0; 87 delete fListEnvelopesCmd; 86 delete fListEnvelopesCmd; >> 87 fListEnvelopesCmd = 0; 88 delete fFSDirectory; 88 delete fFSDirectory; >> 89 fFSDirectory = 0; 89 } 90 } 90 91 91 void G4FastSimulationMessenger::SetNewValue(G4 << 92 void G4FastSimulationMessenger::SetNewValue(G4UIcommand * command,G4String newValue) 92 { 93 { 93 if (command == fShowSetupCmd) fGlobalFastSim << 94 if( command == fListEnvelopesCmd) 94 if (command == fListEnvelopesCmd) { << 95 if(newValue == "all") 95 if (newValue == "all") << 96 fGlobalFastSimulationManager->ListEnvelo 96 fGlobalFastSimulationManager->ListEnvelopes(); 97 else << 97 else 98 fGlobalFastSimulationManager->ListEnvelo << 98 fGlobalFastSimulationManager-> 99 G4ParticleTable::GetParticleTable()->F << 99 ListEnvelopes(G4ParticleTable::GetParticleTable()-> 100 } << 100 FindParticle(newValue)); 101 if (command == fListModelsCmd) fGlobalFastSi << 101 if( command == fListModelsCmd) 102 if (command == fListIsApplicableCmd) << 102 fGlobalFastSimulationManager->ListEnvelopes(newValue, MODELS); >> 103 if( command == fListIsApplicableCmd) 103 fGlobalFastSimulationManager->ListEnvelope 104 fGlobalFastSimulationManager->ListEnvelopes(newValue, ISAPPLICABLE); 104 if (command == fActivateModel) << 105 if( command == fActivateModel) 105 fGlobalFastSimulationManager->ActivateFast 106 fGlobalFastSimulationManager->ActivateFastSimulationModel(newValue); 106 if (command == fInActivateModel) << 107 if( command == fInActivateModel) 107 fGlobalFastSimulationManager->InActivateFa 108 fGlobalFastSimulationManager->InActivateFastSimulationModel(newValue); 108 } 109 } 109 110