- Timestamp:
- Apr 6, 2009, 12:21:12 PM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/source/processes/electromagnetic/standard/include/G4BraggModel.hh
r819 r961 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4BraggModel.hh,v 1.1 0 2007/05/22 17:34:36vnivanch Exp $27 // GEANT4 tag $Name: $26 // $Id: G4BraggModel.hh,v 1.13 2009/02/20 12:06:37 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02-ref-02 $ 28 28 // 29 29 // ------------------------------------------------------------------- … … 45 45 // 11-04-05 Major optimisation of internal interfaces (V.Ivantchenko) 46 46 // 15-02-06 ComputeCrossSectionPerElectron, ComputeCrossSectionPerAtom (mma) 47 // 25-04-06 Add stopping data from PSTAR (V.Ivanchenko) 47 // 25-04-06 Added stopping data from PSTAR (V.Ivanchenko) 48 // 12-08-08 Added methods GetParticleCharge, GetChargeSquareRatio, 49 // CorrectionsAlongStep needed for ions(V.Ivanchenko) 48 50 49 51 // … … 51 53 // 52 54 // Implementation of energy loss and delta-electron production 53 // by heavy slow charged particles using eveluated data 55 // by heavy slow charged particles using ICRU'49 and NIST evaluated data 56 // for protons 54 57 55 58 // ------------------------------------------------------------------- … … 63 66 64 67 class G4ParticleChangeForLoss; 68 class G4EmCorrections; 65 69 66 70 class G4BraggModel : public G4VEmModel … … 76 80 virtual void Initialise(const G4ParticleDefinition*, const G4DataVector&); 77 81 78 G4double MinEnergyCut(const G4ParticleDefinition*,79 const G4MaterialCutsCouple*);82 virtual G4double MinEnergyCut(const G4ParticleDefinition*, 83 const G4MaterialCutsCouple*); 80 84 81 85 virtual G4double ComputeCrossSectionPerElectron( … … 109 113 G4double maxEnergy); 110 114 115 // Compute ion charge 116 virtual G4double GetChargeSquareRatio(const G4ParticleDefinition*, 117 const G4Material*, 118 G4double kineticEnergy); 119 120 virtual G4double GetParticleCharge(const G4ParticleDefinition* p, 121 const G4Material* mat, 122 G4double kineticEnergy); 123 124 // add correction to energy loss and compute non-ionizing energy loss 125 virtual void CorrectionsAlongStep(const G4MaterialCutsCouple*, 126 const G4DynamicParticle*, 127 G4double& eloss, 128 G4double& niel, 129 G4double length); 130 111 131 protected: 112 132 113 G4double MaxSecondaryEnergy(const G4ParticleDefinition*,114 G4double kinEnergy);133 virtual G4double MaxSecondaryEnergy(const G4ParticleDefinition*, 134 G4double kinEnergy); 115 135 116 136 private: 117 137 118 void SetParticle(const G4ParticleDefinition* p);138 inline void SetParticle(const G4ParticleDefinition* p); 119 139 120 140 G4bool HasMaterial(const G4Material* material); … … 139 159 G4BraggModel & operator=(const G4BraggModel &right); 140 160 G4BraggModel(const G4BraggModel&); 161 162 163 G4EmCorrections* corr; 141 164 142 165 const G4ParticleDefinition* particle; … … 150 173 G4double massRate; 151 174 G4double ratio; 152 G4double highKinEnergy;153 G4double lowKinEnergy;154 175 G4double lowestKinEnergy; 155 176 G4double protonMassAMU; … … 159 180 G4int iMolecula; // index in the molecula's table 160 181 G4bool isIon; 182 G4bool isInitialised; 161 183 }; 162 163 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......164 165 inline G4double G4BraggModel::MaxSecondaryEnergy(166 const G4ParticleDefinition* pd,167 G4double kinEnergy)168 {169 if(pd != particle) SetParticle(pd);170 G4double tau = kinEnergy/mass;171 G4double tmax = 2.0*electron_mass_c2*tau*(tau + 2.) /172 (1. + 2.0*(tau + 1.)*ratio + ratio*ratio);173 return tmax;174 }175 184 176 185 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
Note: See TracChangeset
for help on using the changeset viewer.