Loading...
Searching...
No Matches
G4AdjointPhysicsMessenger.cc
Go to the documentation of this file.
1//
2// ********************************************************************
3// * License and Disclaimer *
4// * *
5// * The Geant4 software is copyright of the Copyright Holders of *
6// * the Geant4 Collaboration. It is provided under the terms and *
7// * conditions of the Geant4 Software License, included in the file *
8// * LICENSE and available at http://cern.ch/geant4/license . These *
9// * include a list of copyright holders. *
10// * *
11// * Neither the authors of this software system, nor their employing *
12// * institutes,nor the agencies providing financial support for this *
13// * work make any representation or warranty, express or implied, *
14// * regarding this software system or assume any liability for its *
15// * use. Please see the license in the file LICENSE and URL above *
16// * for the full disclaimer and the limitation of liability. *
17// * *
18// * This code implementation is the result of the scientific and *
19// * technical work of the GEANT4 collaboration. *
20// * By using, copying, modifying or distributing the software (or *
21// * any work based on the software) you agree to acknowledge its *
22// * use in resulting scientific publications, and indicate your *
23// * acceptance of all terms of the Geant4 Software license. *
24// ********************************************************************
25//
26/// \file biasing/ReverseMC01/src/G4AdjointPhysicsMessenger.cc
27/// \brief Implementation of the G4AdjointPhysicsMessenger class
28//
29//
30//////////////////////////////////////////////////////////////
31// Class Name: G4AdjointPhysicsMessenger
32// Author: L. Desorgher
33// Organisation: SpaceIT GmbH
34// Contract: ESA contract 21435/08/NL/AT
35// Customer: ESA/ESTEC
36//////////////////////////////////////////////////////////////
37
38//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
39//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
40
42#include "G4UIdirectory.hh"
43#include "G4UIcmdWithABool.hh"
44#include "G4UIcmdWithAnInteger.hh"
45#include "G4UIcmdWithADoubleAndUnit.hh"
46#include "G4UIcmdWithADouble.hh"
47#include "G4UIcmdWithoutParameter.hh"
48#include "G4UIcmdWithAString.hh"
49#include "G4UnitsTable.hh"
51#include "G4UIcmdWith3VectorAndUnit.hh"
52
53//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
54
56 G4AdjointPhysicsList* pPhysicsList)
58 fPhysicsList(pPhysicsList),
59 fPhysicsDir(0),
60 fUsepIonisationCmd(0),
61 fUseBremCmd(0),
62 fUseComptonCmd(0),
63 fUseMSCmd(0),
64 fUsePEEffectCmd(0),
65 fUseGammaConversionCmd(0),
66 fUseEgainFluctuationCmd(0),
67 fSetEminAdjModelsCmd(0),
68 fSetEmaxAdjModelsCmd(0)
69{
70 fPhysicsDir = new G4UIdirectory("/adjoint_physics/");
71
72 fPhysicsDir->SetGuidance(
73 "Definition of adjoint and forward physics processes");
74 //-------
76 "/adjoint_physics/UseProtonIonisation",this);
77 fUsepIonisationCmd->SetGuidance(
78 "If true (false) the proton ionisation is (not) considered");
79 fUsepIonisationCmd->AvailableForStates(G4State_PreInit);
80
81 fUseBremCmd = new G4UIcmdWithABool("/adjoint_physics/UseBremsstrahlung",this);
82 fUseBremCmd->SetGuidance(
83 "If true (false) the bremsstrahlung process is (not) considered");
84 fUseBremCmd->AvailableForStates(G4State_PreInit);
85
86 fUseComptonCmd = new G4UIcmdWithABool("/adjoint_physics/UseCompton",this);
87 fUseComptonCmd->SetGuidance(
88 "If true (false) the Compton scattering is (not) considered");
89 fUseComptonCmd->AvailableForStates(G4State_PreInit);
90
91 fUseMSCmd = new G4UIcmdWithABool("/adjoint_physics/UseMS",this);
92 fUseMSCmd->SetGuidance(
93 "If true (false) the continuous multiple scattering is (not) considered");
94 fUseMSCmd->AvailableForStates(G4State_PreInit);
95
97 "/adjoint_physics/UseEgainElossFluctuation",this);
98 fUseEgainFluctuationCmd->SetGuidance(
99 "Switch on/off the fluctation for continuous energy gain/loss");
100 fUseEgainFluctuationCmd->AvailableForStates(G4State_PreInit);
101
102 fUsePEEffectCmd = new G4UIcmdWithABool("/adjoint_physics/UsePEEffect",this);
103 fUsePEEffectCmd->AvailableForStates(G4State_PreInit);
104 fUsePEEffectCmd->SetGuidance(
105 "If true (false) the photo electric effect is (not) considered");
106
108 "/adjoint_physics/UseGammaConversion",this);
109 fUseGammaConversionCmd->AvailableForStates(G4State_PreInit);
110 fUseGammaConversionCmd->SetGuidance(
111 "If true the fwd gamma pair conversion is considered");
112
114 "/adjoint_physics/SetEminForAdjointModels",this);
115 fSetEminAdjModelsCmd->SetGuidance(
116 "Set the minimum energy of the adjoint models");
117 fSetEminAdjModelsCmd->SetParameterName("Emin",false);
118 fSetEminAdjModelsCmd->SetUnitCategory("Energy");
119 fSetEminAdjModelsCmd->AvailableForStates(G4State_PreInit);
120
122 "/adjoint_physics/SetEmaxForAdjointModels",this);
123 fSetEmaxAdjModelsCmd->SetGuidance(
124 "Set the minimum energy of the adjoint models.");
125 fSetEmaxAdjModelsCmd->SetParameterName("Emax",false);
126 fSetEmaxAdjModelsCmd->SetUnitCategory("Energy");
127 fSetEmaxAdjModelsCmd->AvailableForStates(G4State_PreInit);
128}
129
130//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
131
144
145//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
146
148 G4String newValue)
149{
150 if ( command==fUsepIonisationCmd){
152 fUsepIonisationCmd->GetNewBoolValue(newValue));
153
154 }
155 else if ( command==fUseBremCmd){
156 fPhysicsList->SetUseBrem(fUseBremCmd->GetNewBoolValue(newValue));
157 }
158 else if ( command==fUseComptonCmd){
159 fPhysicsList->SetUseCompton(fUseComptonCmd->GetNewBoolValue(newValue));
160 }
161 else if ( command==fUseMSCmd){
162 fPhysicsList->SetUseMS(fUseMSCmd->GetNewBoolValue(newValue));
163 }
164 else if ( command==fUsePEEffectCmd){
165 fPhysicsList->SetUsePEEffect(fUsePEEffectCmd->GetNewBoolValue(newValue));
166 }
167 else if ( command==fUseGammaConversionCmd){
169 fUseGammaConversionCmd->GetNewBoolValue(newValue));
170 }
171 else if ( command==fUseEgainFluctuationCmd){
173 fUseEgainFluctuationCmd->GetNewBoolValue(newValue));
174 }
175
176 else if ( command== fSetEminAdjModelsCmd){
178 fSetEminAdjModelsCmd->GetNewDoubleValue(newValue));
179 }
180 else if ( command== fSetEmaxAdjModelsCmd){
182 fSetEmaxAdjModelsCmd->GetNewDoubleValue(newValue));
183 }
184}
185
186//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
187
Definition of the G4AdjointPhysicsList class.
Definition of the G4AdjointPhysicsMessenger class.
void SetEminAdjModels(G4double aVal)
void SetEmaxAdjModels(G4double aVal)
void SetUsePEEffect(bool aBool)
void SetUseEgainFluctuation(bool aBool)
void SetUseCompton(bool aBool)
void SetUseProtonIonisation(bool aBool)
void SetUseGammaConversion(bool aBool)
G4UIcmdWithADoubleAndUnit * fSetEmaxAdjModelsCmd
G4UIcmdWithADoubleAndUnit * fSetEminAdjModelsCmd
G4AdjointPhysicsMessenger(G4AdjointPhysicsList *)
virtual void SetNewValue(G4UIcommand *, G4String)

Applications | User Support | Publications | Collaboration