ECCE @ EIC Software
Reference for
ECCE @ EIC
simulation and reconstruction software on GitHub
Home page
Related Pages
Modules
Namespaces
Classes
Files
External Links
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
G4AdjointPhysicsMessenger.cc
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file G4AdjointPhysicsMessenger.cc
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
//
28
//
29
//
31
// Class Name: G4AdjointPhysicsMessenger
32
// Author: L. Desorgher
33
// Organisation: SpaceIT GmbH
34
// Contract: ESA contract 21435/08/NL/AT
35
// Customer: ESA/ESTEC
37
38
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
39
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
40
41
#include "
G4AdjointPhysicsMessenger.hh
"
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
"
50
#include "
G4AdjointPhysicsList.hh
"
51
#include "
G4UIcmdWith3VectorAndUnit.hh
"
52
53
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
54
55
G4AdjointPhysicsMessenger::G4AdjointPhysicsMessenger
(
56
G4AdjointPhysicsList
* pPhysicsList)
57
:
G4UImessenger
(),
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
//-------
75
fUsepIonisationCmd
=
new
G4UIcmdWithABool
(
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
96
fUseEgainFluctuationCmd
=
new
G4UIcmdWithABool
(
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
107
fUseGammaConversionCmd
=
new
G4UIcmdWithABool
(
108
"/adjoint_physics/UseGammaConversion"
,
this
);
109
fUseGammaConversionCmd
->
AvailableForStates
(
G4State_PreInit
);
110
fUseGammaConversionCmd
->
SetGuidance
(
111
"If true the fwd gamma pair conversion is considered"
);
112
113
fSetEminAdjModelsCmd
=
new
G4UIcmdWithADoubleAndUnit
(
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
121
fSetEmaxAdjModelsCmd
=
new
G4UIcmdWithADoubleAndUnit
(
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
132
G4AdjointPhysicsMessenger::~G4AdjointPhysicsMessenger
()
133
{
134
delete
fUsepIonisationCmd
;
135
delete
fUseBremCmd
;
136
delete
fUseComptonCmd
;
137
delete
fUseMSCmd
;
138
delete
fUsePEEffectCmd
;
139
delete
fUseGammaConversionCmd
;
140
delete
fUseEgainFluctuationCmd
;
141
delete
fSetEminAdjModelsCmd
;
142
delete
fSetEmaxAdjModelsCmd
;
143
}
144
145
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
146
147
void
G4AdjointPhysicsMessenger::SetNewValue
(
G4UIcommand
* command,
148
G4String
newValue)
149
{
150
if
( command==
fUsepIonisationCmd
){
151
fPhysicsList
->
SetUseProtonIonisation
(
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
){
168
fPhysicsList
->
SetUseGammaConversion
(
169
fUseGammaConversionCmd
->
GetNewBoolValue
(newValue));
170
}
171
else
if
( command==
fUseEgainFluctuationCmd
){
172
fPhysicsList
->
SetUseEgainFluctuation
(
173
fUseEgainFluctuationCmd
->
GetNewBoolValue
(newValue));
174
}
175
176
else
if
( command==
fSetEminAdjModelsCmd
){
177
fPhysicsList
->
SetEminAdjModels
(
178
fSetEminAdjModelsCmd
->
GetNewDoubleValue
(newValue));
179
}
180
else
if
( command==
fSetEmaxAdjModelsCmd
){
181
fPhysicsList
->
SetEmaxAdjModels
(
182
fSetEmaxAdjModelsCmd
->
GetNewDoubleValue
(newValue));
183
}
184
}
185
186
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
187
geant4
tree
geant4-10.6-release
examples
extended
biasing
ReverseMC01
src
G4AdjointPhysicsMessenger.cc
Built by
Jin Huang
. updated:
Wed Jun 29 2022 17:25:03
using
1.8.2 with
ECCE GitHub integration