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
CexmcPrimaryGeneratorAction.hh
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file CexmcPrimaryGeneratorAction.hh
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
/*
27
* =============================================================================
28
*
29
* Filename: CexmcPrimaryGeneratorAction.hh
30
*
31
* Description: primary particle position, direction, energy etc.
32
*
33
* Version: 1.0
34
* Created: 11.10.2009 14:54:27
35
* Revision: none
36
* Compiler: gcc
37
*
38
* Author: Alexey Radkov (),
39
* Company: PNPI
40
*
41
* =============================================================================
42
*/
43
44
#ifndef CEXMC_PRIMARY_GENERATOR_ACTION_HH
45
#define CEXMC_PRIMARY_GENERATOR_ACTION_HH
46
47
#include <
G4VUserPrimaryGeneratorAction.hh
>
48
#include "
CexmcException.hh
"
49
50
class
G4Event
;
51
class
CexmcParticleGun
;
52
class
CexmcPhysicsManager
;
53
class
CexmcPrimaryGeneratorActionMessenger
;
54
55
56
class
CexmcPrimaryGeneratorAction
:
public
G4VUserPrimaryGeneratorAction
57
{
58
public
:
59
explicit
CexmcPrimaryGeneratorAction
(
60
CexmcPhysicsManager
* physicsManager );
61
62
~CexmcPrimaryGeneratorAction
();
63
64
public
:
65
void
GeneratePrimaries
(
G4Event
* event );
66
67
public
:
68
void
SetFwhmPosX
(
G4double
value
,
G4bool
fromMessenger =
true
);
69
70
void
SetFwhmPosY
(
G4double
value,
G4bool
fromMessenger =
true
);
71
72
void
SetFwhmDirX
(
G4double
value,
G4bool
fromMessenger =
true
);
73
74
void
SetFwhmDirY
(
G4double
value,
G4bool
fromMessenger =
true
);
75
76
void
SetFwhmMomentumAmp
(
G4double
value,
77
G4bool
fromMessenger =
true
);
78
79
G4double
GetFwhmPosX
(
void
)
const
;
80
81
G4double
GetFwhmPosY
(
void
)
const
;
82
83
G4double
GetFwhmDirX
(
void
)
const
;
84
85
G4double
GetFwhmDirY
(
void
)
const
;
86
87
G4double
GetFwhmMomentumAmp
(
void
)
const
;
88
89
public
:
90
CexmcParticleGun
*
GetParticleGun
(
void
);
91
92
private
:
93
CexmcParticleGun
*
particleGun
;
94
95
G4double
fwhmPosX
;
96
97
G4double
fwhmPosY
;
98
99
G4double
fwhmDirX
;
100
101
G4double
fwhmDirY
;
102
103
G4double
fwhmMomentumAmp
;
104
105
private
:
106
CexmcPrimaryGeneratorActionMessenger
*
messenger
;
107
};
108
109
110
inline
void
CexmcPrimaryGeneratorAction::SetFwhmPosX
(
G4double
value
,
111
G4bool
fromMessenger )
112
{
113
if
( fromMessenger )
114
ThrowExceptionIfProjectIsRead
(
CexmcCmdIsNotAllowed
);
115
116
fwhmPosX
=
value
;
117
}
118
119
120
inline
void
CexmcPrimaryGeneratorAction::SetFwhmPosY
(
G4double
value
,
121
G4bool
fromMessenger )
122
{
123
if
( fromMessenger )
124
ThrowExceptionIfProjectIsRead
(
CexmcCmdIsNotAllowed
);
125
126
fwhmPosY
=
value
;
127
}
128
129
130
inline
void
CexmcPrimaryGeneratorAction::SetFwhmDirX
(
G4double
value
,
131
G4bool
fromMessenger )
132
{
133
if
( fromMessenger )
134
ThrowExceptionIfProjectIsRead
(
CexmcCmdIsNotAllowed
);
135
136
fwhmDirX
=
value
;
137
}
138
139
140
inline
void
CexmcPrimaryGeneratorAction::SetFwhmDirY
(
G4double
value
,
141
G4bool
fromMessenger )
142
{
143
if
( fromMessenger )
144
ThrowExceptionIfProjectIsRead
(
CexmcCmdIsNotAllowed
);
145
146
fwhmDirY
=
value
;
147
}
148
149
150
inline
void
CexmcPrimaryGeneratorAction::SetFwhmMomentumAmp
(
G4double
value
,
151
G4bool
fromMessenger )
152
{
153
if
( fromMessenger )
154
ThrowExceptionIfProjectIsRead
(
CexmcCmdIsNotAllowed
);
155
156
fwhmMomentumAmp
=
value
;
157
}
158
159
160
inline
G4double
CexmcPrimaryGeneratorAction::GetFwhmPosX
(
void
)
const
161
{
162
return
fwhmPosX
;
163
}
164
165
166
inline
G4double
CexmcPrimaryGeneratorAction::GetFwhmPosY
(
void
)
const
167
{
168
return
fwhmPosY
;
169
}
170
171
172
inline
G4double
CexmcPrimaryGeneratorAction::GetFwhmDirX
(
void
)
const
173
{
174
return
fwhmDirX
;
175
}
176
177
178
inline
G4double
CexmcPrimaryGeneratorAction::GetFwhmDirY
(
void
)
const
179
{
180
return
fwhmDirY
;
181
}
182
183
184
inline
G4double
CexmcPrimaryGeneratorAction::GetFwhmMomentumAmp
(
void
)
const
185
{
186
return
fwhmMomentumAmp
;
187
}
188
189
190
#endif
191
geant4
tree
geant4-10.6-release
examples
advanced
ChargeExchangeMC
include
CexmcPrimaryGeneratorAction.hh
Built by
Jin Huang
. updated:
Wed Jun 29 2022 17:24:56
using
1.8.2 with
ECCE GitHub integration