Geant4 Cross Reference |
1 // 1 2 // ******************************************* 3 // * License and Disclaimer 4 // * 5 // * The Geant4 software is copyright of th 6 // * the Geant4 Collaboration. It is provided 7 // * conditions of the Geant4 Software License 8 // * LICENSE and available at http://cern.ch/ 9 // * include a list of copyright holders. 10 // * 11 // * Neither the authors of this software syst 12 // * institutes,nor the agencies providing fin 13 // * work make any representation or warran 14 // * regarding this software system or assum 15 // * use. Please see the license in the file 16 // * for the full disclaimer and the limitatio 17 // * 18 // * This code implementation is the result 19 // * technical work of the GEANT4 collaboratio 20 // * By using, copying, modifying or distri 21 // * any work based on the software) you ag 22 // * use in resulting scientific publicati 23 // * acceptance of all terms of the Geant4 Sof 24 // ******************************************* 25 // 26 /* 27 * =========================================== 28 * 29 * Filename: CexmcPrimaryGeneratorActio 30 * 31 * Description: primary particle position, 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 G4 57 { 58 public: 59 explicit CexmcPrimaryGeneratorAction( 60 CexmcP 61 62 ~CexmcPrimaryGeneratorAction(); 63 64 public: 65 void GeneratePrimaries( G4Event * 66 67 public: 68 void SetFwhmPosX( G4double value 69 70 void SetFwhmPosY( G4double value 71 72 void SetFwhmDirX( G4double value 73 74 void SetFwhmDirY( G4double value 75 76 void SetFwhmMomentumAmp( G4double 77 G4bool 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 ) c 88 89 public: 90 CexmcParticleGun * GetParticleGun( vo 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 * 107 }; 108 109 110 inline void CexmcPrimaryGeneratorAction::SetF 111 112 { 113 if ( fromMessenger ) 114 ThrowExceptionIfProjectIsRead( CexmcCm 115 116 fwhmPosX = value; 117 } 118 119 120 inline void CexmcPrimaryGeneratorAction::SetF 121 122 { 123 if ( fromMessenger ) 124 ThrowExceptionIfProjectIsRead( CexmcCm 125 126 fwhmPosY = value; 127 } 128 129 130 inline void CexmcPrimaryGeneratorAction::SetF 131 132 { 133 if ( fromMessenger ) 134 ThrowExceptionIfProjectIsRead( CexmcCm 135 136 fwhmDirX = value; 137 } 138 139 140 inline void CexmcPrimaryGeneratorAction::SetF 141 142 { 143 if ( fromMessenger ) 144 ThrowExceptionIfProjectIsRead( CexmcCm 145 146 fwhmDirY = value; 147 } 148 149 150 inline void CexmcPrimaryGeneratorAction::SetF 151 152 { 153 if ( fromMessenger ) 154 ThrowExceptionIfProjectIsRead( CexmcCm 155 156 fwhmMomentumAmp = value; 157 } 158 159 160 inline G4double CexmcPrimaryGeneratorAction:: 161 { 162 return fwhmPosX; 163 } 164 165 166 inline G4double CexmcPrimaryGeneratorAction:: 167 { 168 return fwhmPosY; 169 } 170 171 172 inline G4double CexmcPrimaryGeneratorAction:: 173 { 174 return fwhmDirX; 175 } 176 177 178 inline G4double CexmcPrimaryGeneratorAction:: 179 { 180 return fwhmDirY; 181 } 182 183 184 inline G4double CexmcPrimaryGeneratorAction:: 185 { 186 return fwhmMomentumAmp; 187 } 188 189 190 #endif 191 192