ECCE @ EIC Software
 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 
48 #include "CexmcException.hh"
49 
50 class G4Event;
51 class CexmcParticleGun;
54 
55 
57 {
58  public:
60  CexmcPhysicsManager * physicsManager );
61 
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:
91 
92  private:
94 
96 
98 
100 
102 
104 
105  private:
107 };
108 
109 
111  G4bool fromMessenger )
112 {
113  if ( fromMessenger )
115 
116  fwhmPosX = value;
117 }
118 
119 
121  G4bool fromMessenger )
122 {
123  if ( fromMessenger )
125 
126  fwhmPosY = value;
127 }
128 
129 
131  G4bool fromMessenger )
132 {
133  if ( fromMessenger )
135 
136  fwhmDirX = value;
137 }
138 
139 
141  G4bool fromMessenger )
142 {
143  if ( fromMessenger )
145 
146  fwhmDirY = value;
147 }
148 
149 
151  G4bool fromMessenger )
152 {
153  if ( fromMessenger )
155 
157 }
158 
159 
161 {
162  return fwhmPosX;
163 }
164 
165 
167 {
168  return fwhmPosY;
169 }
170 
171 
173 {
174  return fwhmDirX;
175 }
176 
177 
179 {
180  return fwhmDirY;
181 }
182 
183 
185 {
186  return fwhmMomentumAmp;
187 }
188 
189 
190 #endif
191