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
CCalPrimaryGeneratorMessenger.cc
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file CCalPrimaryGeneratorMessenger.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
//
27
// File: CCalPrimaryGeneratorMessenger.cc
28
// Description: CCalPrimaryGeneratorMessenger adds new commands for
29
// primary generator action
31
#include "
CCalPrimaryGeneratorMessenger.hh
"
32
#include "
CCalPrimaryGeneratorAction.hh
"
33
34
#include "
globals.hh
"
35
#include "
G4PhysicalConstants.hh
"
36
#include "
G4UImanager.hh
"
37
#include "
G4UIcmdWithAString.hh
"
38
#include "
G4UIcmdWithADoubleAndUnit.hh
"
39
#include "
G4UIcmdWithADouble.hh
"
40
#include "
G4UIcmdWithABool.hh
"
41
#include "
G4UIcmdWithAnInteger.hh
"
42
43
CCalPrimaryGeneratorMessenger::CCalPrimaryGeneratorMessenger
(
CCalPrimaryGeneratorAction
* myGun) : myAction(myGun) {
44
45
verboseCmd
=
new
G4UIcmdWithAnInteger
(
"/CCal/generator/verbose"
,
this
);
46
verboseCmd
->
SetGuidance
(
"set Verbosity level "
);
47
verboseCmd
->
SetParameterName
(
"value"
,
true
);
48
verboseCmd
->
SetDefaultValue
(0);
49
verboseCmd
->
AvailableForStates
(
G4State_PreInit
,
G4State_Idle
);
50
51
rndmCmd
=
new
G4UIcmdWithAString
(
"/CCal/generator/random"
,
this
);
52
rndmCmd
->
SetGuidance
(
"Choose randomly energy and direction of the incident particle."
);
53
rndmCmd
->
SetGuidance
(
" Choice : on,off(default)"
);
54
rndmCmd
->
SetParameterName
(
"choice"
,
true
);
55
rndmCmd
->
SetDefaultValue
(
"off"
);
56
rndmCmd
->
SetCandidates
(
"on off ON OFF"
);
57
rndmCmd
->
AvailableForStates
(
G4State_PreInit
,
G4State_Idle
);
58
59
scanCmd
=
new
G4UIcmdWithAString
(
"/CCal/generator/scan"
,
this
);
60
scanCmd
->
SetGuidance
(
"Scan eta and phi ranges with single incident particle"
);
61
scanCmd
->
SetGuidance
(
" Choice : on,off(default)"
);
62
scanCmd
->
SetGuidance
(
" Ranges : etamin/max, phimin/max are set by other commands "
);
63
scanCmd
->
SetParameterName
(
"choice"
,
true
);
64
scanCmd
->
SetDefaultValue
(
"off"
);
65
scanCmd
->
SetCandidates
(
"on off ON OFF"
);
66
scanCmd
->
AvailableForStates
(
G4State_PreInit
,
G4State_Idle
);
67
68
minEnergyCmd
=
new
G4UIcmdWithADoubleAndUnit
(
"/CCal/generator/minEnergy"
,
this
);
69
minEnergyCmd
->
SetGuidance
(
"Set minimum Energy for the incident particle."
);
70
minEnergyCmd
->
SetParameterName
(
"value"
,
true
);
71
minEnergyCmd
->
SetDefaultValue
(1.);
72
minEnergyCmd
->
SetDefaultUnit
(
"GeV"
);
73
minEnergyCmd
->
AvailableForStates
(
G4State_PreInit
,
G4State_Idle
);
74
75
maxEnergyCmd
=
new
G4UIcmdWithADoubleAndUnit
(
"/CCal/generator/maxEnergy"
,
this
);
76
maxEnergyCmd
->
SetGuidance
(
"Set maximum Energy for the incident particle."
);
77
maxEnergyCmd
->
SetParameterName
(
"value"
,
true
);
78
maxEnergyCmd
->
SetDefaultValue
(1.);
79
maxEnergyCmd
->
SetDefaultUnit
(
"TeV"
);
80
maxEnergyCmd
->
AvailableForStates
(
G4State_PreInit
,
G4State_Idle
);
81
82
minPhiCmd
=
new
G4UIcmdWithADoubleAndUnit
(
"/CCal/generator/minPhi"
,
this
);
83
minPhiCmd
->
SetGuidance
(
"Set minimum Phi angle for the incident particle direction"
);
84
minPhiCmd
->
SetGuidance
(
" Choice : from 0 to 2*pi "
);
85
minPhiCmd
->
SetParameterName
(
"value"
,
true
);
86
minPhiCmd
->
SetDefaultValue
(0);
87
minPhiCmd
->
SetDefaultUnit
(
"radian"
);
88
minPhiCmd
->
AvailableForStates
(
G4State_PreInit
,
G4State_Idle
);
89
90
maxPhiCmd
=
new
G4UIcmdWithADoubleAndUnit
(
"/CCal/generator/maxPhi"
,
this
);
91
maxPhiCmd
->
SetGuidance
(
"Set maximum Phi angle for the incident particle direction"
);
92
maxPhiCmd
->
SetGuidance
(
" Choice : from 0 to 2*pi "
);
93
maxPhiCmd
->
SetParameterName
(
"value"
,
true
);
94
maxPhiCmd
->
SetDefaultValue
(2.*
pi
);
95
maxPhiCmd
->
SetDefaultUnit
(
"radian"
);
96
maxPhiCmd
->
AvailableForStates
(
G4State_PreInit
,
G4State_Idle
);
97
98
stepsPhiCmd
=
new
G4UIcmdWithAnInteger
(
"/CCal/generator/stepsPhi"
,
this
);
99
stepsPhiCmd
->
SetGuidance
(
"number of steps along Phi for scan "
);
100
stepsPhiCmd
->
SetParameterName
(
"value"
,
true
);
101
stepsPhiCmd
->
SetDefaultValue
(1);
102
stepsPhiCmd
->
AvailableForStates
(
G4State_PreInit
,
G4State_Idle
);
103
104
minEtaCmd
=
new
G4UIcmdWithADouble
(
"/CCal/generator/minEta"
,
this
);
105
minEtaCmd
->
SetGuidance
(
"Set minimum Eta angle for the incident particle direction"
);
106
minEtaCmd
->
SetGuidance
(
" Choice : from 0 to infinity"
);
107
minEtaCmd
->
SetParameterName
(
"value"
,
true
);
108
minEtaCmd
->
SetDefaultValue
(0);
109
minEtaCmd
->
AvailableForStates
(
G4State_PreInit
,
G4State_Idle
);
110
111
maxEtaCmd
=
new
G4UIcmdWithADouble
(
"/CCal/generator/maxEta"
,
this
);
112
maxEtaCmd
->
SetGuidance
(
"Set maximum Eta angle for the incident particle direction"
);
113
maxEtaCmd
->
SetGuidance
(
" Choice : from 0 to infinity"
);
114
maxEtaCmd
->
SetParameterName
(
"value"
,
true
);
115
maxEtaCmd
->
SetDefaultValue
(3.5);
116
maxEtaCmd
->
AvailableForStates
(
G4State_PreInit
,
G4State_Idle
);
117
118
stepsEtaCmd
=
new
G4UIcmdWithAnInteger
(
"/CCal/generator/stepsEta"
,
this
);
119
stepsEtaCmd
->
SetGuidance
(
"number of steps along Eta for scan "
);
120
stepsEtaCmd
->
SetParameterName
(
"value"
,
true
);
121
stepsEtaCmd
->
SetDefaultValue
(1);
122
stepsEtaCmd
->
AvailableForStates
(
G4State_PreInit
,
G4State_Idle
);
123
124
runNoCmd
=
new
G4UIcmdWithAnInteger
(
"/CCal/generator/runNo"
,
this
);
125
runNoCmd
->
SetGuidance
(
"set the run number "
);
126
runNoCmd
->
SetParameterName
(
"value"
,
true
);
127
runNoCmd
->
SetDefaultValue
(0);
128
runNoCmd
->
AvailableForStates
(
G4State_PreInit
,
G4State_Idle
);
129
130
}
131
132
CCalPrimaryGeneratorMessenger::~CCalPrimaryGeneratorMessenger
() {
133
134
if
(
verboseCmd
)
135
delete
verboseCmd
;
136
if
(
scanCmd
)
137
delete
rndmCmd
;
138
if
(
scanCmd
)
139
delete
scanCmd
;
140
if
(
minEnergyCmd
)
141
delete
minEnergyCmd
;
142
if
(
maxEnergyCmd
)
143
delete
maxEnergyCmd
;
144
if
(
minPhiCmd
)
145
delete
minPhiCmd
;
146
if
(
maxPhiCmd
)
147
delete
maxPhiCmd
;
148
if
(
stepsPhiCmd
)
149
delete
stepsPhiCmd
;
150
if
(
minEtaCmd
)
151
delete
minEtaCmd
;
152
if
(
maxEtaCmd
)
153
delete
maxEtaCmd
;
154
if
(
stepsEtaCmd
)
155
delete
stepsEtaCmd
;
156
if
(
runNoCmd
)
157
delete
runNoCmd
;
158
159
}
160
161
void
CCalPrimaryGeneratorMessenger::SetNewValue
(
G4UIcommand
* command,
162
G4String
newValues) {
163
if
(command ==
verboseCmd
)
164
myAction
->
SetVerboseLevel
(
verboseCmd
->
GetNewIntValue
(newValues));
165
else
if
(command ==
rndmCmd
)
166
myAction
->
SetRandom
(newValues);
167
else
if
(command ==
scanCmd
)
168
myAction
->
SetScan
(newValues);
169
else
if
(command ==
minEnergyCmd
)
170
myAction
->
SetMinimumEnergy
(
minEnergyCmd
->
GetNewDoubleValue
(newValues));
171
else
if
(command ==
maxEnergyCmd
)
172
myAction
->
SetMaximumEnergy
(
maxEnergyCmd
->
GetNewDoubleValue
(newValues));
173
else
if
(command ==
minPhiCmd
)
174
myAction
->
SetMinimumPhi
(
minPhiCmd
->
GetNewDoubleValue
(newValues));
175
else
if
(command ==
maxPhiCmd
)
176
myAction
->
SetMaximumPhi
(
maxPhiCmd
->
GetNewDoubleValue
(newValues));
177
else
if
(command ==
stepsPhiCmd
)
178
myAction
->
SetStepsPhi
(
stepsPhiCmd
->
GetNewIntValue
(newValues));
179
else
if
(command ==
minEtaCmd
)
180
myAction
->
SetMinimumEta
(
minEtaCmd
->
GetNewDoubleValue
(newValues));
181
else
if
(command ==
maxEtaCmd
)
182
myAction
->
SetMaximumEta
(
maxEtaCmd
->
GetNewDoubleValue
(newValues));
183
else
if
(command ==
stepsEtaCmd
)
184
myAction
->
SetStepsEta
(
stepsEtaCmd
->
GetNewIntValue
(newValues));
185
else
if
(command ==
runNoCmd
)
186
myAction
->
SetRunNo
(
runNoCmd
->
GetNewIntValue
(newValues));
187
188
}
geant4
tree
geant4-10.6-release
examples
advanced
composite_calorimeter
src
CCalPrimaryGeneratorMessenger.cc
Built by
Jin Huang
. updated:
Wed Jun 29 2022 17:24:57
using
1.8.2 with
ECCE GitHub integration