Changeset 961 for trunk/source/processes/electromagnetic/lowenergy/src/G4FinalStateExcitationEmfietzoglou.cc
- Timestamp:
- Apr 6, 2009, 12:21:12 PM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/source/processes/electromagnetic/lowenergy/src/G4FinalStateExcitationEmfietzoglou.cc
r819 r961 24 24 // ******************************************************************** 25 25 // 26 // 27 // $Id: G4FinalStateExcitationEmfietzoglou.cc,v 1.2 2007/11/09 20:11:04 pia Exp $ 28 // GEANT4 tag $Name: $ 29 // 30 // Contact Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch) 31 // 32 // Reference: TNS Geant4-DNA paper 33 // Reference for implementation model: NIM. 155, pp. 145-156, 1978 34 35 // History: 36 // ----------- 37 // Date Name Modification 38 // 28 Apr 2007 M.G. Pia Created in compliance with design described in TNS paper 39 // 40 // ------------------------------------------------------------------- 41 42 // Class description: 43 // Reference: TNS Geant4-DNA paper 44 // S. Chauvie et al., Geant4 physics processes for microdosimetry simulation: 45 // design foundation and implementation of the first set of models, 46 // IEEE Trans. Nucl. Sci., vol. 54, no. 6, Dec. 2007. 47 // Further documentation available from http://www.ge.infn.it/geant4/dna 48 49 // ------------------------------------------------------------------- 50 26 // $Id: G4FinalStateExcitationEmfietzoglou.cc,v 1.5 2008/12/05 11:58:16 sincerti Exp $ 27 // GEANT4 tag $Name: geant4-09-02-ref-02 $ 51 28 52 29 #include "G4FinalStateExcitationEmfietzoglou.hh" 53 #include "G4Track.hh"54 #include "G4Step.hh"55 #include "G4DynamicParticle.hh"56 #include "Randomize.hh"57 30 58 #include "G4ParticleTypes.hh" 59 #include "G4ParticleDefinition.hh" 60 #include "G4Electron.hh" 61 #include "G4SystemOfUnits.hh" 62 #include "G4ParticleMomentum.hh" 31 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 63 32 64 33 G4FinalStateExcitationEmfietzoglou::G4FinalStateExcitationEmfietzoglou() 65 34 { 66 name = "FinalStateExcitationEmfietzoglou"; 67 lowEnergyLimit = 7.4 * eV; 35 lowEnergyLimit = 8.23 * eV; 68 36 highEnergyLimit = 10 * MeV; 69 37 } 70 38 39 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 71 40 72 41 G4FinalStateExcitationEmfietzoglou::~G4FinalStateExcitationEmfietzoglou() 73 { 74 // empty 75 // G4DynamicParticle objects produced are owned by client 76 } 42 {} 77 43 44 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 78 45 79 46 const G4FinalStateProduct& G4FinalStateExcitationEmfietzoglou::GenerateFinalState(const G4Track& track, const G4Step& /* step */) 80 47 { 81 // Clear previous secondaries, energy deposit and particle kill status82 48 product.Clear(); 83 49 84 50 const G4DynamicParticle* particle = track.GetDynamicParticle(); 85 51 86 // Kinetic energy of primary particle87 52 G4double k = particle->GetKineticEnergy(); 88 53 89 // Select excitation level on the basis of partial excitation cross section90 54 G4int level = cross.RandomSelect(k); 91 // Excitation energy corresponding to the selected level 55 92 56 G4double excitationEnergy = waterStructure.ExcitationEnergy(level); 93 57 G4double newEnergy = k - excitationEnergy; 94 58 95 if (newEnergy > lowEnergyLimit) 96 { 97 // Deposit excitation energy locally, modify primary energy accordingly 98 // Particle direction is unchanged 59 if (newEnergy >= lowEnergyLimit) 60 { 99 61 product.ModifyPrimaryParticle(particle->GetMomentumDirection(),newEnergy); 100 62 product.AddEnergyDeposit(excitationEnergy); 101 } 102 else 103 { 104 // Primary particle is killed 105 product.KillPrimaryParticle(); 106 } 63 } 64 65 else product.KillPrimaryParticle(); 107 66 108 67 return product; 109 68 } 110 69 111
Note: See TracChangeset
for help on using the changeset viewer.