- Timestamp:
- Apr 6, 2009, 12:21:12 PM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/source/processes/electromagnetic/standard/include/G4BraggIonModel.hh
r819 r961 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4BraggIonModel.hh,v 1. 8 2007/05/22 17:34:36vnivanch Exp $27 // GEANT4 tag $Name: $26 // $Id: G4BraggIonModel.hh,v 1.12 2009/02/20 12:06:37 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02-ref-02 $ 28 28 // 29 29 // ------------------------------------------------------------------- … … 43 43 // 15-02-06 ComputeCrossSectionPerElectron, ComputeCrossSectionPerAtom (mma) 44 44 // 25-04-06 Add stopping data from ASTAR (V.Ivanchenko) 45 // 12-08-08 Added methods GetParticleCharge, GetChargeSquareRatio, 46 // CorrectionsAlongStep needed for ions(V.Ivanchenko) 45 47 46 48 // … … 48 50 // 49 51 // Implementation of energy loss and delta-electron production 50 // by heavy slow charged particles using eveluated data 52 // by heavy slow charged particles using ICRU'49 and NIST evaluated data 53 // for He4 ions 51 54 52 55 // ------------------------------------------------------------------- … … 60 63 61 64 class G4ParticleChangeForLoss; 65 class G4EmCorrections; 62 66 63 67 class G4BraggIonModel : public G4VEmModel … … 73 77 virtual void Initialise(const G4ParticleDefinition*, const G4DataVector&); 74 78 75 G4double MinEnergyCut(const G4ParticleDefinition*,76 const G4MaterialCutsCouple*);79 virtual G4double MinEnergyCut(const G4ParticleDefinition*, 80 const G4MaterialCutsCouple*); 77 81 78 82 virtual G4double ComputeCrossSectionPerElectron( … … 106 110 G4double maxEnergy); 107 111 112 // Compute ion charge 113 virtual G4double GetChargeSquareRatio(const G4ParticleDefinition*, 114 const G4Material*, 115 G4double kineticEnergy); 116 117 virtual G4double GetParticleCharge(const G4ParticleDefinition* p, 118 const G4Material* mat, 119 G4double kineticEnergy); 120 121 // add correction to energy loss and ompute non-ionizing energy loss 122 virtual void CorrectionsAlongStep(const G4MaterialCutsCouple*, 123 const G4DynamicParticle*, 124 G4double& eloss, 125 G4double& niel, 126 G4double length); 127 108 128 protected: 109 129 110 G4double MaxSecondaryEnergy(const G4ParticleDefinition*,111 G4double kinEnergy);130 virtual G4double MaxSecondaryEnergy(const G4ParticleDefinition*, 131 G4double kinEnergy); 112 132 113 133 private: … … 133 153 G4double DEDX(const G4Material* material, G4double kineticEnergy); 134 154 155 G4EmCorrections* corr; 156 135 157 const G4ParticleDefinition* particle; 136 158 G4ParticleDefinition* theElectron; … … 144 166 G4double massRate; 145 167 G4double ratio; 146 G4double highKinEnergy;147 G4double lowKinEnergy;148 168 G4double lowestKinEnergy; 149 169 G4double HeMass; 150 170 G4double massFactor; 171 G4double corrFactor; 151 172 G4double rateMassHe2p; 152 173 G4double theZieglerFactor; … … 154 175 G4int iMolecula; // index in the molecula's table 155 176 G4bool isIon; 177 G4bool isInitialised; 156 178 }; 157 158 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......159 160 inline G4double G4BraggIonModel::MaxSecondaryEnergy(161 const G4ParticleDefinition* pd,162 G4double kinEnergy)163 {164 if(pd != particle) SetParticle(pd);165 G4double tau = kinEnergy/mass;166 G4double tmax = 2.0*electron_mass_c2*tau*(tau + 2.) /167 (1. + 2.0*(tau + 1.)*ratio + ratio*ratio);168 return tmax;169 }170 179 171 180 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
Note: See TracChangeset
for help on using the changeset viewer.