Changeset 991 for trunk/source/processes/electromagnetic/standard
- Timestamp:
- Apr 17, 2009, 12:17:14 PM (15 years ago)
- Location:
- trunk/source/processes/electromagnetic/standard
- Files:
-
- 89 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/source/processes/electromagnetic/standard/History
r961 r991 1 $Id: History,v 1.43 2 2009/02/20 12:11:37vnivanch Exp $1 $Id: History,v 1.430 2008/11/24 18:28:09 vnivanch Exp $ 2 2 ------------------------------------------------------------------- 3 3 … … 17 17 * Reverse chronological order (last date on top), please * 18 18 ---------------------------------------------------------- 19 20 20 February 09: V.Ivant (emstand-V09-02-00)21 - Move all virtual methods from inline to source22 G4PEEffectModel - substitute ComputeMeanFreePath by CrossSectionPerVolume23 (minor CPU speadup for compound materials)24 G4PAIModel, G4PAIPhotonModel - remove usage of random numbers at25 initialisation (potential non-reproducibility)26 G4WentzelVIModel - use generic methods of G4VMscModel to access safety27 and other geometry information28 19 29 20 24 November 08: V.Ivant (emstand-V09-01-45) -
trunk/source/processes/electromagnetic/standard/include/G4ASTARStopping.hh
r961 r991 25 25 // 26 26 // $Id: G4ASTARStopping.hh,v 1.6 2008/11/13 12:04:37 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02 -ref-02$27 // GEANT4 tag $Name: geant4-09-02 $ 28 28 29 29 #ifndef G4ASTARStopping_h -
trunk/source/processes/electromagnetic/standard/include/G4BetheBlochModel.hh
r961 r991 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4BetheBlochModel.hh,v 1.1 7 2009/02/20 12:06:37 vnivanch Exp $27 // GEANT4 tag $Name: geant4-09-02 -ref-02$26 // $Id: G4BetheBlochModel.hh,v 1.16 2008/10/22 16:00:57 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02 $ 28 28 // 29 29 // ------------------------------------------------------------------- … … 82 82 virtual void Initialise(const G4ParticleDefinition*, const G4DataVector&); 83 83 84 virtualG4double MinEnergyCut(const G4ParticleDefinition*,85 84 G4double MinEnergyCut(const G4ParticleDefinition*, 85 const G4MaterialCutsCouple*); 86 86 87 87 virtual G4double ComputeCrossSectionPerElectron( … … 131 131 protected: 132 132 133 virtualG4double MaxSecondaryEnergy(const G4ParticleDefinition*,134 133 G4double MaxSecondaryEnergy(const G4ParticleDefinition*, 134 G4double kinEnergy); 135 135 136 136 private: … … 166 166 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 167 167 168 inline G4double G4BetheBlochModel::MaxSecondaryEnergy( 169 const G4ParticleDefinition* pd, 170 G4double kinEnergy) 171 { 172 if(isIon) SetParticle(pd); 173 G4double tau = kinEnergy/mass; 174 G4double tmax = 2.0*electron_mass_c2*tau*(tau + 2.) / 175 (1. + 2.0*(tau + 1.)*ratio + ratio*ratio); 176 return std::min(tmax,tlimit); 177 } 178 179 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 180 168 181 #endif -
trunk/source/processes/electromagnetic/standard/include/G4BetheHeitlerModel.hh
r961 r991 25 25 // 26 26 // $Id: G4BetheHeitlerModel.hh,v 1.6 2007/05/22 17:34:36 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02 -ref-02$27 // GEANT4 tag $Name: geant4-09-02 $ 28 28 // 29 29 // ------------------------------------------------------------------- -
trunk/source/processes/electromagnetic/standard/include/G4BohrFluctuations.hh
r961 r991 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4BohrFluctuations.hh,v 1. 4 2009/02/19 19:17:50vnivanch Exp $27 // GEANT4 tag $Name: geant4-09-02 -ref-02$26 // $Id: G4BohrFluctuations.hh,v 1.3 2007/09/27 13:53:11 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02 $ 28 28 // 29 29 // ------------------------------------------------------------------- … … 79 79 void InitialiseMe(const G4ParticleDefinition*); 80 80 81 protected: 82 81 83 private: 82 84 … … 101 103 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 102 104 105 106 inline G4double G4BohrFluctuations::Dispersion( 107 const G4Material* material, 108 const G4DynamicParticle* dp, 109 G4double& tmax, 110 G4double& length) 111 { 112 if(!particle) InitialiseMe(dp->GetDefinition()); 113 114 G4double electronDensity = material->GetElectronDensity(); 115 kineticEnergy = dp->GetKineticEnergy(); 116 G4double etot = kineticEnergy + particleMass; 117 beta2 = kineticEnergy*(kineticEnergy + 2.0*particleMass)/(etot*etot); 118 G4double siga = (1.0/beta2 - 0.5) * twopi_mc2_rcl2 * tmax * length 119 * electronDensity * chargeSquare; 120 121 return siga; 122 } 123 124 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 125 103 126 #endif 104 127 -
trunk/source/processes/electromagnetic/standard/include/G4BraggIonModel.hh
r961 r991 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4BraggIonModel.hh,v 1.1 2 2009/02/20 12:06:37 vnivanch Exp $27 // GEANT4 tag $Name: geant4-09-02 -ref-02$26 // $Id: G4BraggIonModel.hh,v 1.11 2008/10/22 16:00:57 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02 $ 28 28 // 29 29 // ------------------------------------------------------------------- … … 77 77 virtual void Initialise(const G4ParticleDefinition*, const G4DataVector&); 78 78 79 virtualG4double MinEnergyCut(const G4ParticleDefinition*,80 79 G4double MinEnergyCut(const G4ParticleDefinition*, 80 const G4MaterialCutsCouple*); 81 81 82 82 virtual G4double ComputeCrossSectionPerElectron( … … 128 128 protected: 129 129 130 virtualG4double MaxSecondaryEnergy(const G4ParticleDefinition*,131 130 G4double MaxSecondaryEnergy(const G4ParticleDefinition*, 131 G4double kinEnergy); 132 132 133 133 private: … … 180 180 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 181 181 182 inline G4double G4BraggIonModel::MaxSecondaryEnergy( 183 const G4ParticleDefinition* pd, 184 G4double kinEnergy) 185 { 186 if(pd != particle) SetParticle(pd); 187 G4double tau = kinEnergy/mass; 188 G4double tmax = 2.0*electron_mass_c2*tau*(tau + 2.) / 189 (1. + 2.0*(tau + 1.)*ratio + ratio*ratio); 190 return tmax; 191 } 192 193 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 194 182 195 inline void G4BraggIonModel::SetParticle(const G4ParticleDefinition* p) 183 196 { -
trunk/source/processes/electromagnetic/standard/include/G4BraggModel.hh
r961 r991 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4BraggModel.hh,v 1.1 3 2009/02/20 12:06:37vnivanch Exp $27 // GEANT4 tag $Name: geant4-09-02 -ref-02$26 // $Id: G4BraggModel.hh,v 1.12 2008/09/14 17:11:48 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02 $ 28 28 // 29 29 // ------------------------------------------------------------------- … … 80 80 virtual void Initialise(const G4ParticleDefinition*, const G4DataVector&); 81 81 82 virtualG4double MinEnergyCut(const G4ParticleDefinition*,83 82 G4double MinEnergyCut(const G4ParticleDefinition*, 83 const G4MaterialCutsCouple*); 84 84 85 85 virtual G4double ComputeCrossSectionPerElectron( … … 131 131 protected: 132 132 133 virtualG4double MaxSecondaryEnergy(const G4ParticleDefinition*,134 133 G4double MaxSecondaryEnergy(const G4ParticleDefinition*, 134 G4double kinEnergy); 135 135 136 136 private: 137 137 138 inlinevoid SetParticle(const G4ParticleDefinition* p);138 void SetParticle(const G4ParticleDefinition* p); 139 139 140 140 G4bool HasMaterial(const G4Material* material); … … 182 182 G4bool isInitialised; 183 183 }; 184 185 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 186 187 inline G4double G4BraggModel::MaxSecondaryEnergy( 188 const G4ParticleDefinition* pd, 189 G4double kinEnergy) 190 { 191 if(pd != particle) SetParticle(pd); 192 G4double tau = kinEnergy/mass; 193 G4double tmax = 2.0*electron_mass_c2*tau*(tau + 2.) / 194 (1. + 2.0*(tau + 1.)*ratio + ratio*ratio); 195 return tmax; 196 } 184 197 185 198 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -
trunk/source/processes/electromagnetic/standard/include/G4ComptonScattering.hh
r961 r991 25 25 // 26 26 // 27 // $Id: G4ComptonScattering.hh,v 1.2 1 2009/02/20 12:06:37vnivanch Exp $28 // GEANT4 tag $Name: geant4-09-02 -ref-02$27 // $Id: G4ComptonScattering.hh,v 1.20 2007/05/23 08:47:34 vnivanch Exp $ 28 // GEANT4 tag $Name: geant4-09-02 $ 29 29 // 30 30 //------------------ G4ComptonScattering physics process ----------------------- … … 82 82 83 83 // true for Gamma only. 84 virtualG4bool IsApplicable(const G4ParticleDefinition&);84 G4bool IsApplicable(const G4ParticleDefinition&); 85 85 86 86 // Print few lines of informations about the process: validity range, 87 87 virtual void PrintInfo(); 88 88 89 89 90 protected: … … 96 97 }; 97 98 99 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 100 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 101 102 inline 103 G4bool G4ComptonScattering::IsApplicable(const G4ParticleDefinition& p) 104 { 105 return (&p == G4Gamma::Gamma()); 106 } 107 98 108 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 99 109 -
trunk/source/processes/electromagnetic/standard/include/G4ComptonScattering52.hh
r961 r991 26 26 // 27 27 // $Id: G4ComptonScattering52.hh,v 1.4 2007/05/16 14:00:56 vnivanch Exp $ 28 // GEANT4 tag $Name: geant4-09-02 -ref-02$28 // GEANT4 tag $Name: geant4-09-02 $ 29 29 // 30 30 //------------------ G4ComptonScattering52 physics process ----------------------- -
trunk/source/processes/electromagnetic/standard/include/G4CoulombScattering.hh
r961 r991 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4CoulombScattering.hh,v 1.1 2 2009/02/20 12:06:37vnivanch Exp $27 // GEANT4 tag $Name: geant4-09-02 -ref-02$26 // $Id: G4CoulombScattering.hh,v 1.11 2008/06/13 08:19:43 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02 $ 28 28 // 29 29 // ------------------------------------------------------------------- … … 104 104 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 105 105 106 inline G4bool G4CoulombScattering::IsApplicable(const G4ParticleDefinition& p) 107 { 108 return (p.GetPDGCharge() != 0.0 && !p.IsShortLived()); 109 } 110 111 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 112 106 113 inline void G4CoulombScattering::SetThetaMin(G4double val) 107 114 { -
trunk/source/processes/electromagnetic/standard/include/G4CoulombScatteringModel.hh
r961 r991 25 25 // 26 26 // $Id: G4CoulombScatteringModel.hh,v 1.15 2008/07/31 13:11:34 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02 -ref-02$27 // GEANT4 tag $Name: geant4-09-02 $ 28 28 // 29 29 // ------------------------------------------------------------------- -
trunk/source/processes/electromagnetic/standard/include/G4GammaConversion.hh
r961 r991 25 25 // 26 26 // 27 // $Id: G4GammaConversion.hh,v 1.2 3 2009/02/20 12:06:37vnivanch Exp $28 // GEANT4 tag $Name: geant4-09-02 -ref-02$27 // $Id: G4GammaConversion.hh,v 1.22 2007/05/23 08:47:34 vnivanch Exp $ 28 // GEANT4 tag $Name: geant4-09-02 $ 29 29 // 30 30 // … … 85 85 86 86 // true for Gamma only. 87 virtualG4bool IsApplicable(const G4ParticleDefinition&);87 G4bool IsApplicable(const G4ParticleDefinition&); 88 88 89 89 // Print few lines of informations about the process: validity range, … … 99 99 }; 100 100 101 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 102 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 103 104 inline G4bool G4GammaConversion::IsApplicable(const G4ParticleDefinition& p) 105 { 106 return (&p == G4Gamma::Gamma()); 107 } 108 101 109 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 102 110 -
trunk/source/processes/electromagnetic/standard/include/G4InitXscPAI.hh
r961 r991 26 26 // 27 27 // $Id: G4InitXscPAI.hh,v 1.8 2006/06/29 19:50:22 gunter Exp $ 28 // GEANT4 tag $Name: geant4-09-02 -ref-02$28 // GEANT4 tag $Name: geant4-09-02 $ 29 29 // 30 30 // -
trunk/source/processes/electromagnetic/standard/include/G4IonFluctuations.hh
r961 r991 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4IonFluctuations.hh,v 1. 9 2009/02/19 19:17:50vnivanch Exp $27 // GEANT4 tag $Name: geant4-09-02 -ref-02$26 // $Id: G4IonFluctuations.hh,v 1.8 2008/10/22 16:04:33 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02 $ 28 28 // 29 29 // ------------------------------------------------------------------- … … 84 84 85 85 // Initialisation prestep 86 void SetParticleAndCharge(const G4ParticleDefinition*, G4double q2);86 inline void SetParticleAndCharge(const G4ParticleDefinition*, G4double q2); 87 87 88 88 private: … … 117 117 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 118 118 119 inline 120 void G4IonFluctuations::SetParticleAndCharge(const G4ParticleDefinition* part, 121 G4double q2) 122 { 123 if(part != particle) { 124 particle = part; 125 particleMass = part->GetPDGMass(); 126 charge = part->GetPDGCharge()/eplus; 127 chargeSquare = charge*charge; 128 } 129 effChargeSquare = q2; 130 uniFluct.SetParticleAndCharge(part, q2); 131 } 132 133 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 134 119 135 #endif 120 136 -
trunk/source/processes/electromagnetic/standard/include/G4KleinNishinaCompton.hh
r961 r991 25 25 // 26 26 // $Id: G4KleinNishinaCompton.hh,v 1.9 2007/05/22 17:34:36 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02 -ref-02$27 // GEANT4 tag $Name: geant4-09-02 $ 28 28 // 29 29 // ------------------------------------------------------------------- -
trunk/source/processes/electromagnetic/standard/include/G4MollerBhabhaModel.hh
r961 r991 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4MollerBhabhaModel.hh,v 1. 20 2009/02/20 12:06:37vnivanch Exp $27 // GEANT4 tag $Name: geant4-09-02 -ref-02$26 // $Id: G4MollerBhabhaModel.hh,v 1.19 2007/05/22 17:34:36 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02 $ 28 28 // 29 29 // ------------------------------------------------------------------- … … 74 74 virtual void Initialise(const G4ParticleDefinition*, const G4DataVector&); 75 75 76 virtualG4double MinEnergyCut(const G4ParticleDefinition*,77 76 G4double MinEnergyCut(const G4ParticleDefinition*, 77 const G4MaterialCutsCouple*); 78 78 79 79 virtual G4double ComputeCrossSectionPerElectron( … … 109 109 protected: 110 110 111 virtualG4double MaxSecondaryEnergy(const G4ParticleDefinition*,112 111 G4double MaxSecondaryEnergy(const G4ParticleDefinition*, 112 G4double kinEnergy); 113 113 114 inlinevoid SetParticle(const G4ParticleDefinition* p);114 void SetParticle(const G4ParticleDefinition* p); 115 115 116 116 const G4ParticleDefinition* particle; … … 127 127 G4MollerBhabhaModel & operator=(const G4MollerBhabhaModel &right); 128 128 G4MollerBhabhaModel(const G4MollerBhabhaModel&); 129 130 G4bool isInitialised;131 132 129 }; 133 130 134 131 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 135 132 136 inline void G4MollerBhabhaModel::SetParticle(const G4ParticleDefinition* p) 133 inline G4double G4MollerBhabhaModel::MaxSecondaryEnergy( 134 const G4ParticleDefinition*, 135 G4double kinEnergy) 137 136 { 138 particle = p; 139 if(p != theElectron) isElectron = false; 137 G4double tmax = kinEnergy; 138 if(isElectron) tmax *= 0.5; 139 return tmax; 140 140 } 141 141 -
trunk/source/processes/electromagnetic/standard/include/G4MscModel71.hh
r961 r991 25 25 // 26 26 // $Id: G4MscModel71.hh,v 1.5 2007/05/22 17:34:36 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02 -ref-02$27 // GEANT4 tag $Name: geant4-09-02 $ 28 28 // 29 29 // ------------------------------------------------------------------- -
trunk/source/processes/electromagnetic/standard/include/G4MultipleScattering.hh
r961 r991 25 25 // 26 26 // $Id: G4MultipleScattering.hh,v 1.36 2008/03/10 10:39:21 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02 -ref-02$27 // GEANT4 tag $Name: geant4-09-02 $ 28 28 // 29 29 // ----------------------------------------------------------------------------- -
trunk/source/processes/electromagnetic/standard/include/G4MultipleScattering71.hh
r961 r991 25 25 // 26 26 // $Id: G4MultipleScattering71.hh,v 1.6 2008/07/16 11:27:41 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02 -ref-02$27 // GEANT4 tag $Name: geant4-09-02 $ 28 28 // 29 29 // … … 59 59 // 60 60 // $Id: G4MultipleScattering71.hh,v 1.6 2008/07/16 11:27:41 vnivanch Exp $ 61 // GEANT4 tag $Name: geant4-09-02 -ref-02$61 // GEANT4 tag $Name: geant4-09-02 $ 62 62 63 63 // class description -
trunk/source/processes/electromagnetic/standard/include/G4PAIModel.hh
r961 r991 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4PAIModel.hh,v 1.22 2009/02/19 19:17:50 vnivanch Exp $27 // GEANT4 tag $Name: geant4-09-02-ref-02 $28 26 // 29 27 // ------------------------------------------------------------------- … … 77 75 virtual void Initialise(const G4ParticleDefinition*, const G4DataVector&); 78 76 79 virtual void InitialiseMe(const G4ParticleDefinition*) ;80 81 virtual G4double ComputeDEDX PerVolume(const G4Material*,77 virtual void InitialiseMe(const G4ParticleDefinition*) {}; 78 79 virtual G4double ComputeDEDX(const G4MaterialCutsCouple*, 82 80 const G4ParticleDefinition*, 83 81 G4double kineticEnergy, 84 82 G4double cutEnergy); 85 83 86 virtual G4double CrossSection PerVolume(const G4Material*,84 virtual G4double CrossSection(const G4MaterialCutsCouple*, 87 85 const G4ParticleDefinition*, 88 86 G4double kineticEnergy, … … 120 118 121 119 void SetVerboseLevel(G4int verbose){fVerbose=verbose;}; 120 121 122 122 123 123 protected: … … 192 192 }; 193 193 194 ///////////////////////////////////////////////////////////////////// 195 196 inline G4double G4PAIModel::MaxSecondaryEnergy( const G4ParticleDefinition* p, 197 G4double kinEnergy) 198 { 199 G4double tmax = kinEnergy; 200 if(p == fElectron) tmax *= 0.5; 201 else if(p != fPositron) { 202 G4double mass = p->GetPDGMass(); 203 G4double ratio= electron_mass_c2/mass; 204 G4double gamma= kinEnergy/mass + 1.0; 205 tmax = 2.0*electron_mass_c2*(gamma*gamma - 1.) / 206 (1. + 2.0*gamma*ratio + ratio*ratio); 207 } 208 return tmax; 209 } 210 211 /////////////////////////////////////////////////////////////// 212 213 inline void G4PAIModel::DefineForRegion(const G4Region* r) 214 { 215 fPAIRegionVector.push_back(r); 216 } 217 194 218 #endif 195 219 -
trunk/source/processes/electromagnetic/standard/include/G4PAIPhotonModel.hh
r961 r991 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4PAIPhotonModel.hh,v 1.12 2009/02/19 19:17:50 vnivanch Exp $27 // GEANT4 tag $Name: geant4-09-02-ref-02 $28 26 // 29 27 // ------------------------------------------------------------------- … … 76 74 virtual void Initialise(const G4ParticleDefinition*, const G4DataVector&); 77 75 78 virtual void InitialiseMe(const G4ParticleDefinition*) ;79 80 virtual G4double ComputeDEDX PerVolume(const G4Material*,81 82 83 84 85 virtual G4double CrossSection PerVolume(const G4Material*,86 87 88 89 76 virtual void InitialiseMe(const G4ParticleDefinition*) {}; 77 78 virtual G4double ComputeDEDX(const G4MaterialCutsCouple*, 79 const G4ParticleDefinition*, 80 G4double kineticEnergy, 81 G4double cutEnergy); 82 83 virtual G4double CrossSection(const G4MaterialCutsCouple*, 84 const G4ParticleDefinition*, 85 G4double kineticEnergy, 86 G4double cutEnergy, 87 G4double maxEnergy); 90 88 91 89 virtual void SampleSecondaries(std::vector<G4DynamicParticle*>*, … … 124 122 G4double position, G4int iTransfer ); 125 123 124 125 126 126 protected: 127 127 128 128 G4double MaxSecondaryEnergy(const G4ParticleDefinition*, 129 129 G4double kinEnergy); 130 130 131 131 private: … … 145 145 G4int fVerbose; 146 146 G4PhysicsLogVector* fProtonEnergyVector ; 147 148 147 149 148 150 // vectors … … 202 204 }; 203 205 206 ///////////////////////////////////////////////////////////////////// 207 208 inline G4double G4PAIPhotonModel::MaxSecondaryEnergy( const G4ParticleDefinition* p, 209 G4double kinEnergy) 210 { 211 G4double tmax = kinEnergy; 212 if(p == fElectron) tmax *= 0.5; 213 else if(p != fPositron) { 214 G4double mass = p->GetPDGMass(); 215 G4double ratio= electron_mass_c2/mass; 216 G4double gamma= kinEnergy/mass + 1.0; 217 tmax = 2.0*electron_mass_c2*(gamma*gamma - 1.) / 218 (1. + 2.0*gamma*ratio + ratio*ratio); 219 } 220 return tmax; 221 } 222 223 /////////////////////////////////////////////////////////////// 224 225 inline void G4PAIPhotonModel::DefineForRegion(const G4Region* r) 226 { 227 fPAIRegionVector.push_back(r); 228 } 229 204 230 #endif 205 231 -
trunk/source/processes/electromagnetic/standard/include/G4PAIxSection.hh
r961 r991 26 26 // 27 27 // $Id: G4PAIxSection.hh,v 1.15 2008/05/30 16:04:40 grichine Exp $ 28 // GEANT4 tag $Name: geant4-09-02 -ref-02$28 // GEANT4 tag $Name: geant4-09-02 $ 29 29 // 30 30 // -
trunk/source/processes/electromagnetic/standard/include/G4PAIySection.hh
r961 r991 26 26 // 27 27 // $Id: G4PAIySection.hh,v 1.1 2007/10/01 17:45:14 vnivanch Exp $ 28 // GEANT4 tag $Name: geant4-09-02 -ref-02$28 // GEANT4 tag $Name: geant4-09-02 $ 29 29 // 30 30 // -
trunk/source/processes/electromagnetic/standard/include/G4PEEffectModel.hh
r961 r991 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4PEEffectModel.hh,v 1. 7 2009/02/20 12:06:37vnivanch Exp $27 // GEANT4 tag $Name: geant4-09-02 -ref-02$26 // $Id: G4PEEffectModel.hh,v 1.6 2007/05/22 17:34:36 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02 $ 28 28 // 29 29 // ------------------------------------------------------------------- … … 41 41 // 42 42 // 06.02.2006 : added ComputeMeanFreePath() (mma) 43 // 20.02.2009 : move virtual inline to .cc, substitute44 // ComputeMeanFreePath() by CrossSectionPerVolume (VI)45 43 // 46 44 // Class Description: … … 72 70 virtual void Initialise(const G4ParticleDefinition*, const G4DataVector&); 73 71 74 virtualG4double ComputeCrossSectionPerAtom(const G4ParticleDefinition*,75 76 77 78 72 G4double ComputeCrossSectionPerAtom(const G4ParticleDefinition*, 73 G4double kinEnergy, 74 G4double Z, 75 G4double A, 76 G4double, G4double); 79 77 80 virtual G4double CrossSectionPerVolume(const G4Material*, 81 const G4ParticleDefinition*, 82 G4double kineticEnergy, 83 G4double cutEnergy, 84 G4double maxEnergy); 78 G4double ComputeMeanFreePath( const G4ParticleDefinition*, 79 G4double kinEnergy, 80 const G4Material* material, 81 G4double, G4double); 85 82 86 83 virtual void SampleSecondaries(std::vector<G4DynamicParticle*>*, … … 103 100 }; 104 101 102 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo..... 103 104 inline G4double G4PEEffectModel::ComputeCrossSectionPerAtom( 105 const G4ParticleDefinition*, 106 G4double energy, 107 G4double Z, G4double, 108 G4double, G4double) 109 { 110 G4double* SandiaCof = G4SandiaTable::GetSandiaCofPerAtom((G4int)Z, energy); 111 112 G4double energy2 = energy*energy, energy3 = energy*energy2, 113 energy4 = energy2*energy2; 114 115 return SandiaCof[0]/energy + SandiaCof[1]/energy2 + 116 SandiaCof[2]/energy3 + SandiaCof[3]/energy4; 117 } 118 119 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 120 121 inline G4double G4PEEffectModel::ComputeMeanFreePath( 122 const G4ParticleDefinition*, 123 G4double energy, 124 const G4Material* material, 125 G4double, G4double) 126 { 127 G4double* SandiaCof = material->GetSandiaTable() 128 ->GetSandiaCofForMaterial(energy); 129 130 G4double energy2 = energy*energy, energy3 = energy*energy2, 131 energy4 = energy2*energy2; 132 133 G4double cross = SandiaCof[0]/energy + SandiaCof[1]/energy2 + 134 SandiaCof[2]/energy3 + SandiaCof[3]/energy4; 135 136 G4double mfp = DBL_MAX; 137 if (cross > 0.) mfp = 1./cross; 138 return mfp; 139 } 140 105 141 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 106 142 -
trunk/source/processes/electromagnetic/standard/include/G4PSTARStopping.hh
r961 r991 25 25 // 26 26 // $Id: G4PSTARStopping.hh,v 1.5 2008/11/13 12:04:37 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02 -ref-02$27 // GEANT4 tag $Name: geant4-09-02 $ 28 28 29 29 #ifndef G4PSTARStopping_h -
trunk/source/processes/electromagnetic/standard/include/G4PhotoElectricEffect.hh
r961 r991 25 25 // 26 26 // 27 // $Id: G4PhotoElectricEffect.hh,v 1.2 5 2009/02/20 12:06:37vnivanch Exp $28 // GEANT4 tag $Name: geant4-09-02 -ref-02$27 // $Id: G4PhotoElectricEffect.hh,v 1.24 2007/05/23 08:47:34 vnivanch Exp $ 28 // GEANT4 tag $Name: geant4-09-02 $ 29 29 // 30 30 // … … 91 91 92 92 // true for Gamma only. 93 virtualG4bool IsApplicable(const G4ParticleDefinition&);93 G4bool IsApplicable(const G4ParticleDefinition&); 94 94 95 95 // Print few lines of informations about the process: validity range, 96 v irtual void PrintInfo();96 void PrintInfo(); 97 97 98 98 protected: 99 99 100 v irtual void InitialiseProcess(const G4ParticleDefinition*);100 void InitialiseProcess(const G4ParticleDefinition*); 101 101 102 102 private: … … 105 105 }; 106 106 107 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 108 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 109 110 inline 111 G4bool G4PhotoElectricEffect::IsApplicable(const G4ParticleDefinition& p) 112 { 113 return (&p == G4Gamma::Gamma()); 114 } 115 107 116 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 108 117 -
trunk/source/processes/electromagnetic/standard/include/G4PolarizedComptonScattering.hh
r961 r991 26 26 // 27 27 // $Id: G4PolarizedComptonScattering.hh,v 1.9 2006/06/29 19:51:14 gunter Exp $ 28 // GEANT4 tag $Name: geant4-09-02 -ref-02$28 // GEANT4 tag $Name: geant4-09-02 $ 29 29 // 30 30 // --------- G4PolarizedComptonScattering physics process ---------------------- -
trunk/source/processes/electromagnetic/standard/include/G4UniversalFluctuation.hh
r961 r991 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4UniversalFluctuation.hh,v 1. 8 2009/02/19 19:17:50vnivanch Exp $27 // GEANT4 tag $Name: geant4-09-02 -ref-02$26 // $Id: G4UniversalFluctuation.hh,v 1.6 2008/10/22 16:04:33 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02 $ 28 28 // 29 29 // ------------------------------------------------------------------- … … 70 70 virtual ~G4UniversalFluctuation(); 71 71 72 virtualG4double SampleFluctuations(const G4Material*,73 74 75 76 72 G4double SampleFluctuations(const G4Material*, 73 const G4DynamicParticle*, 74 G4double&, 75 G4double&, 76 G4double&); 77 77 78 virtualG4double Dispersion( const G4Material*,79 80 81 78 G4double Dispersion( const G4Material*, 79 const G4DynamicParticle*, 80 G4double&, 81 G4double&); 82 82 83 // Initialisation before the run 84 virtual void InitialiseMe(const G4ParticleDefinition*); 83 void InitialiseMe(const G4ParticleDefinition*); 85 84 86 85 // Initialisation prestep 87 virtual void SetParticleAndCharge(const G4ParticleDefinition*, G4double q2); 86 inline void SetParticleAndCharge(const G4ParticleDefinition*, G4double q2); 87 88 protected: 88 89 89 90 private: … … 125 126 }; 126 127 128 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 129 130 inline void 131 G4UniversalFluctuation::SetParticleAndCharge(const G4ParticleDefinition* part, 132 G4double q2) 133 { 134 if(part != particle) { 135 particle = part; 136 particleMass = part->GetPDGMass(); 137 } 138 chargeSquare = q2; 139 } 140 127 141 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 128 142 -
trunk/source/processes/electromagnetic/standard/include/G4UrbanMscModel.hh
r961 r991 25 25 // 26 26 // $Id: G4UrbanMscModel.hh,v 1.33 2008/03/10 10:39:21 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02 -ref-02$27 // GEANT4 tag $Name: geant4-09-02 $ 28 28 // 29 29 // ------------------------------------------------------------------- -
trunk/source/processes/electromagnetic/standard/include/G4UrbanMscModel2.hh
r966 r991 25 25 // 26 26 // $Id: G4UrbanMscModel2.hh,v 1.11 2008/12/18 13:01:34 gunter Exp $ 27 // GEANT4 tag $Name: geant4-09-02 -ref-02$27 // GEANT4 tag $Name: geant4-09-02 $ 28 28 // 29 29 // ------------------------------------------------------------------- -
trunk/source/processes/electromagnetic/standard/include/G4UrbanMscModel90.hh
r961 r991 25 25 // 26 26 // $Id: G4UrbanMscModel90.hh,v 1.4 2008/10/29 14:15:30 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02 -ref-02$27 // GEANT4 tag $Name: geant4-09-02 $ 28 28 // 29 29 // ------------------------------------------------------------------- -
trunk/source/processes/electromagnetic/standard/include/G4WaterStopping.hh
r961 r991 25 25 // 26 26 // $Id: G4WaterStopping.hh,v 1.6 2008/09/09 09:30:58 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02 -ref-02$27 // GEANT4 tag $Name: geant4-09-02 $ 28 28 29 29 #ifndef G4WaterStopping_h -
trunk/source/processes/electromagnetic/standard/include/G4WentzelVIModel.hh
r966 r991 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4WentzelVIModel.hh,v 1. 8 2009/02/19 19:17:15vnivanch Exp $27 // GEANT4 tag $Name: geant4-09-02 -ref-02$26 // $Id: G4WentzelVIModel.hh,v 1.7 2008/08/04 08:49:09 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02 $ 28 28 // 29 29 // ------------------------------------------------------------------- … … 66 66 class G4LossTableManager; 67 67 class G4ParticleChangeForMSC; 68 //class G4SafetyHelper;68 class G4SafetyHelper; 69 69 class G4ParticleDefinition; 70 70 … … 133 133 G4ParticleChangeForMSC* fParticleChange; 134 134 135 //G4SafetyHelper* safetyHelper;135 G4SafetyHelper* safetyHelper; 136 136 G4PhysicsTable* theLambdaTable; 137 137 G4PhysicsTable* theLambda2Table; -
trunk/source/processes/electromagnetic/standard/include/G4eBremsstrahlung.hh
r961 r991 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4eBremsstrahlung.hh,v 1.3 7 2009/02/20 12:06:37vnivanch Exp $27 // GEANT4 tag $Name: geant4-09-02 -ref-02$26 // $Id: G4eBremsstrahlung.hh,v 1.36 2007/05/23 08:47:34 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02 $ 28 28 // 29 29 // ------------------------------------------------------------------- … … 89 89 virtual ~G4eBremsstrahlung(); 90 90 91 virtualG4bool IsApplicable(const G4ParticleDefinition& p);91 G4bool IsApplicable(const G4ParticleDefinition& p); 92 92 93 93 // Print out of the class parameters … … 111 111 112 112 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 113 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 114 115 inline G4bool G4eBremsstrahlung::IsApplicable(const G4ParticleDefinition& p) 116 { 117 return (&p == G4Electron::Electron() || &p == G4Positron::Positron()); 118 } 119 120 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 113 121 114 122 #endif -
trunk/source/processes/electromagnetic/standard/include/G4eBremsstrahlungModel.hh
r961 r991 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4eBremsstrahlungModel.hh,v 1.2 6 2009/02/20 12:06:37vnivanch Exp $27 // GEANT4 tag $Name: geant4-09-02 -ref-02$26 // $Id: G4eBremsstrahlungModel.hh,v 1.25 2008/11/13 19:28:58 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02 $ 28 28 // 29 29 // ------------------------------------------------------------------- … … 75 75 virtual void Initialise(const G4ParticleDefinition*, const G4DataVector&); 76 76 77 virtualG4double MinEnergyCut(const G4ParticleDefinition*,78 77 G4double MinEnergyCut(const G4ParticleDefinition*, 78 const G4MaterialCutsCouple*); 79 79 80 80 virtual G4double ComputeDEDXPerVolume(const G4Material*, … … 103 103 protected: 104 104 105 inline G4double MaxSecondaryEnergy(const G4ParticleDefinition*, 106 G4double kineticEnergy); 107 105 108 const G4Element* SelectRandomAtom(const G4MaterialCutsCouple* couple); 106 109 … … 188 191 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 189 192 193 inline 194 G4double G4eBremsstrahlungModel::MaxSecondaryEnergy( 195 const G4ParticleDefinition*, 196 G4double kineticEnergy) 197 { 198 return kineticEnergy; 199 } 200 201 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 202 190 203 #endif -
trunk/source/processes/electromagnetic/standard/include/G4eBremsstrahlungRelModel.hh
r966 r991 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4eBremsstrahlungRelModel.hh,v 1.1 1 2009/02/20 12:06:37vnivanch Exp $27 // GEANT4 tag $Name: geant4-09-02 -ref-02$26 // $Id: G4eBremsstrahlungRelModel.hh,v 1.10 2008/11/14 09:25:19 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02 $ 28 28 // 29 29 // ------------------------------------------------------------------- … … 71 71 virtual void Initialise(const G4ParticleDefinition*, const G4DataVector&); 72 72 73 virtualG4double MinEnergyCut(const G4ParticleDefinition*,74 73 G4double MinEnergyCut(const G4ParticleDefinition*, 74 const G4MaterialCutsCouple*); 75 75 76 76 virtual G4double ComputeDEDXPerVolume(const G4Material*, … … 97 97 inline G4double LPMconstant() const; 98 98 99 protected: 100 101 inline G4double MaxSecondaryEnergy(const G4ParticleDefinition*, 102 G4double kineticEnergy); 103 99 104 private: 100 105 … … 202 207 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 203 208 209 inline G4double 210 G4eBremsstrahlungRelModel::MaxSecondaryEnergy(const G4ParticleDefinition*, 211 G4double kineticEnergy) 212 { 213 return kineticEnergy; 214 } 215 216 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 217 204 218 205 219 inline G4double G4eBremsstrahlungRelModel::Phi1(G4double gg, G4double) -
trunk/source/processes/electromagnetic/standard/include/G4eCoulombScatteringModel.hh
r961 r991 25 25 // 26 26 // $Id: G4eCoulombScatteringModel.hh,v 1.36 2008/08/04 08:49:09 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02 -ref-02$27 // GEANT4 tag $Name: geant4-09-02 $ 28 28 // 29 29 // ------------------------------------------------------------------- -
trunk/source/processes/electromagnetic/standard/include/G4eIonisation.hh
r961 r991 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4eIonisation.hh,v 1.3 6 2009/02/20 12:06:37vnivanch Exp $27 // GEANT4 tag $Name: geant4-09-02 -ref-02$26 // $Id: G4eIonisation.hh,v 1.35 2007/05/23 08:47:34 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02 $ 28 28 // 29 29 // ------------------------------------------------------------------- … … 88 88 virtual ~G4eIonisation(); 89 89 90 virtualG4bool IsApplicable(const G4ParticleDefinition& p);90 G4bool IsApplicable(const G4ParticleDefinition& p); 91 91 92 92 // Print out of the class parameters … … 98 98 const G4ParticleDefinition*); 99 99 100 virtualG4double MinPrimaryEnergy(const G4ParticleDefinition*,101 100 G4double MinPrimaryEnergy(const G4ParticleDefinition*, 101 const G4Material*, G4double cut); 102 102 103 103 private: … … 114 114 }; 115 115 116 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 117 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 118 119 inline G4double G4eIonisation::MinPrimaryEnergy(const G4ParticleDefinition*, 120 const G4Material*, 121 G4double cut) 122 { 123 G4double x = cut; 124 if(isElectron) x += cut; 125 return x; 126 } 127 128 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 129 130 inline G4bool G4eIonisation::IsApplicable(const G4ParticleDefinition& p) 131 { 132 return (&p == G4Electron::Electron() || &p == G4Positron::Positron()); 133 } 134 116 135 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 117 136 -
trunk/source/processes/electromagnetic/standard/include/G4eMultipleScattering.hh
r966 r991 25 25 // 26 26 // $Id: G4eMultipleScattering.hh,v 1.2 2008/03/11 12:03:43 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02 -ref-02$27 // GEANT4 tag $Name: geant4-09-02 $ 28 28 // 29 29 // ----------------------------------------------------------------------------- -
trunk/source/processes/electromagnetic/standard/include/G4eeToTwoGammaModel.hh
r961 r991 25 25 // 26 26 // $Id: G4eeToTwoGammaModel.hh,v 1.14 2007/05/23 08:47:34 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02 -ref-02$27 // GEANT4 tag $Name: geant4-09-02 $ 28 28 // 29 29 // ------------------------------------------------------------------- -
trunk/source/processes/electromagnetic/standard/include/G4eplusAnnihilation.hh
r961 r991 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4eplusAnnihilation.hh,v 1.2 4 2009/02/20 12:06:37vnivanch Exp $27 // GEANT4 tag $Name: geant4-09-02 -ref-02$26 // $Id: G4eplusAnnihilation.hh,v 1.23 2007/05/23 08:47:34 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02 $ 28 28 // 29 29 // ------------------------------------------------------------------- … … 73 73 virtual ~G4eplusAnnihilation(); 74 74 75 virtualG4bool IsApplicable(const G4ParticleDefinition& p);75 G4bool IsApplicable(const G4ParticleDefinition& p); 76 76 77 77 virtual G4VParticleChange* AtRestDoIt( … … 79 79 const G4Step& stepData); 80 80 81 virtualG4double AtRestGetPhysicalInteractionLength(81 G4double AtRestGetPhysicalInteractionLength( 82 82 const G4Track& track, 83 83 G4ForceCondition* condition … … 96 96 }; 97 97 98 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 99 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 100 101 inline G4bool G4eplusAnnihilation::IsApplicable(const G4ParticleDefinition& p) 102 { 103 return (&p == G4Positron::Positron()); 104 } 105 106 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 107 108 inline 109 G4double G4eplusAnnihilation::AtRestGetPhysicalInteractionLength( 110 const G4Track&, G4ForceCondition* condition) 111 { 112 *condition = NotForced; 113 return 0.0; 114 } 115 98 116 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 99 117 -
trunk/source/processes/electromagnetic/standard/include/G4hIonisation.hh
r961 r991 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4hIonisation.hh,v 1.4 2 2009/02/20 12:06:37vnivanch Exp $27 // GEANT4 tag $Name: geant4-09-02 -ref-02$26 // $Id: G4hIonisation.hh,v 1.41 2008/09/14 17:11:48 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02 $ 28 28 // 29 29 // ------------------------------------------------------------------- … … 93 93 virtual ~G4hIonisation(); 94 94 95 virtualG4bool IsApplicable(const G4ParticleDefinition& p);95 G4bool IsApplicable(const G4ParticleDefinition& p); 96 96 97 virtualG4double MinPrimaryEnergy(const G4ParticleDefinition* p,98 97 G4double MinPrimaryEnergy(const G4ParticleDefinition* p, 98 const G4Material*, G4double cut); 99 99 100 100 // Print out of the class parameters … … 123 123 124 124 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 125 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 126 127 inline G4bool G4hIonisation::IsApplicable(const G4ParticleDefinition& p) 128 { 129 return (p.GetPDGCharge() != 0.0 && p.GetPDGMass() > 10.0*MeV && 130 !p.IsShortLived()); 131 } 132 133 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 134 135 inline G4double G4hIonisation::MinPrimaryEnergy(const G4ParticleDefinition*, 136 const G4Material*, 137 G4double cut) 138 { 139 G4double x = 0.5*cut/electron_mass_c2; 140 G4double g = x*ratio + std::sqrt((1. + x)*(1. + x*ratio*ratio)); 141 return mass*(g - 1.0); 142 } 143 144 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 125 145 126 146 inline void G4hIonisation::ActivateNuclearStopping(G4bool val) -
trunk/source/processes/electromagnetic/standard/include/G4hMultipleScattering.hh
r961 r991 25 25 // 26 26 // $Id: G4hMultipleScattering.hh,v 1.6 2008/05/09 08:23:44 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02 -ref-02$27 // GEANT4 tag $Name: geant4-09-02 $ 28 28 // 29 29 // ----------------------------------------------------------------------------- -
trunk/source/processes/electromagnetic/standard/include/G4ionGasIonisation.hh
r961 r991 25 25 // 26 26 // $Id: G4ionGasIonisation.hh,v 1.4 2008/09/12 16:26:34 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02 -ref-02$27 // GEANT4 tag $Name: geant4-09-02 $ 28 28 // 29 29 // ------------------------------------------------------------------- -
trunk/source/processes/electromagnetic/standard/include/G4ionIonisation.hh
r961 r991 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4ionIonisation.hh,v 1.5 7 2009/02/20 12:06:37vnivanch Exp $27 // GEANT4 tag $Name: geant4-09-02 -ref-02$26 // $Id: G4ionIonisation.hh,v 1.56 2008/09/14 17:11:48 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02 $ 28 28 // 29 29 // ------------------------------------------------------------------- … … 85 85 virtual ~G4ionIonisation(); 86 86 87 virtualG4bool IsApplicable(const G4ParticleDefinition& p);87 inline G4bool IsApplicable(const G4ParticleDefinition& p); 88 88 89 89 // Print out of the class parameters … … 102 102 const G4ParticleDefinition*); 103 103 104 virtualG4double MinPrimaryEnergy(const G4ParticleDefinition* p,104 inline G4double MinPrimaryEnergy(const G4ParticleDefinition* p, 105 105 const G4Material*, G4double cut); 106 106 … … 127 127 128 128 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 129 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 130 131 inline G4bool G4ionIonisation::IsApplicable(const G4ParticleDefinition& p) 132 { 133 return (p.GetPDGCharge() != 0.0 && !p.IsShortLived() && 134 p.GetParticleType() == "nucleus"); 135 } 136 137 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 138 139 inline G4double G4ionIonisation::MinPrimaryEnergy( 140 const G4ParticleDefinition* p, const G4Material*, G4double cut) 141 { 142 return 143 p->GetPDGMass()*(std::sqrt(1. + 0.5*cut/CLHEP::electron_mass_c2) - 1.0); 144 } 145 129 146 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 130 147 -
trunk/source/processes/electromagnetic/standard/src/G4ASTARStopping.cc
r961 r991 25 25 // 26 26 // $Id: G4ASTARStopping.cc,v 1.8 2008/11/24 18:28:09 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02 -ref-02$27 // GEANT4 tag $Name: geant4-09-02 $ 28 28 29 29 //--------------------------------------------------------------------------- -
trunk/source/processes/electromagnetic/standard/src/G4BetheBlochModel.cc
r961 r991 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4BetheBlochModel.cc,v 1.2 5 2009/02/20 12:06:37 vnivanch Exp $27 // GEANT4 tag $Name: geant4-09-02 -ref-02$26 // $Id: G4BetheBlochModel.cc,v 1.24 2008/10/22 16:00:57 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02 $ 28 28 // 29 29 // ------------------------------------------------------------------- … … 111 111 112 112 corrFactor = chargeSquare; 113 // always false before the run114 SetDeexcitationFlag(false);115 113 116 114 if(!isInitialised) { … … 455 453 } 456 454 457 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 458 459 G4double G4BetheBlochModel::MaxSecondaryEnergy(const G4ParticleDefinition* pd, 460 G4double kinEnergy) 461 { 462 if(isIon) SetParticle(pd); 463 G4double tau = kinEnergy/mass; 464 G4double tmax = 2.0*electron_mass_c2*tau*(tau + 2.) / 465 (1. + 2.0*(tau + 1.)*ratio + ratio*ratio); 466 return std::min(tmax,tlimit); 467 } 468 469 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 455 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -
trunk/source/processes/electromagnetic/standard/src/G4BetheHeitlerModel.cc
r961 r991 25 25 // 26 26 // $Id: G4BetheHeitlerModel.cc,v 1.12 2008/10/15 15:54:57 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02 -ref-02$27 // GEANT4 tag $Name: geant4-09-02 $ 28 28 // 29 29 // ------------------------------------------------------------------- -
trunk/source/processes/electromagnetic/standard/src/G4BohrFluctuations.cc
r961 r991 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4BohrFluctuations.cc,v 1. 7 2009/02/19 19:17:50vnivanch Exp $27 // GEANT4 tag $Name: geant4-09-02 -ref-02$26 // $Id: G4BohrFluctuations.cc,v 1.6 2007/09/27 14:02:41 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02 $ 28 28 // 29 29 // ------------------------------------------------------------------- … … 137 137 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 138 138 139 G4double G4BohrFluctuations::Dispersion(const G4Material* material,140 const G4DynamicParticle* dp,141 G4double& tmax,142 G4double& length)143 {144 if(!particle) InitialiseMe(dp->GetDefinition());145 139 146 G4double electronDensity = material->GetElectronDensity();147 kineticEnergy = dp->GetKineticEnergy();148 G4double etot = kineticEnergy + particleMass;149 beta2 = kineticEnergy*(kineticEnergy + 2.0*particleMass)/(etot*etot);150 G4double siga = (1.0/beta2 - 0.5) * twopi_mc2_rcl2 * tmax * length151 * electronDensity * chargeSquare;152 153 return siga;154 }155 156 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....157 158 -
trunk/source/processes/electromagnetic/standard/src/G4BraggIonModel.cc
r961 r991 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4BraggIonModel.cc,v 1.2 3 2009/02/20 12:06:37 vnivanch Exp $27 // GEANT4 tag $Name: geant4-09-02 -ref-02$26 // $Id: G4BraggIonModel.cc,v 1.22 2008/10/22 16:00:57 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02 $ 28 28 // 29 29 // ------------------------------------------------------------------- … … 113 113 114 114 corrFactor = chargeSquare; 115 116 // always false before the run117 SetDeexcitationFlag(false);118 115 119 116 if(!isInitialised) { … … 355 352 fParticleChange->SetProposedKineticEnergy(kineticEnergy); 356 353 fParticleChange->SetProposedMomentumDirection(finalP); 357 }358 359 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......360 361 G4double G4BraggIonModel::MaxSecondaryEnergy(const G4ParticleDefinition* pd,362 G4double kinEnergy)363 {364 if(pd != particle) SetParticle(pd);365 G4double tau = kinEnergy/mass;366 G4double tmax = 2.0*electron_mass_c2*tau*(tau + 2.) /367 (1. + 2.0*(tau + 1.)*ratio + ratio*ratio);368 return tmax;369 354 } 370 355 -
trunk/source/processes/electromagnetic/standard/src/G4BraggModel.cc
r961 r991 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4BraggModel.cc,v 1.2 1 2009/02/20 12:06:37vnivanch Exp $27 // GEANT4 tag $Name: geant4-09-02 -ref-02$26 // $Id: G4BraggModel.cc,v 1.20 2008/10/22 16:01:46 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02 $ 28 28 // 29 29 // ------------------------------------------------------------------- … … 111 111 { 112 112 if(p != particle) SetParticle(p); 113 114 // always false before the run115 SetDeexcitationFlag(false);116 113 117 114 if(!isInitialised) { … … 340 337 341 338 vdp->push_back(delta); 342 }343 344 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......345 346 G4double G4BraggModel::MaxSecondaryEnergy(const G4ParticleDefinition* pd,347 G4double kinEnergy)348 {349 if(pd != particle) SetParticle(pd);350 G4double tau = kinEnergy/mass;351 G4double tmax = 2.0*electron_mass_c2*tau*(tau + 2.) /352 (1. + 2.0*(tau + 1.)*ratio + ratio*ratio);353 return tmax;354 339 } 355 340 -
trunk/source/processes/electromagnetic/standard/src/G4ComptonScattering.cc
r961 r991 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4ComptonScattering.cc,v 1.3 1 2009/02/20 12:06:37vnivanch Exp $27 // GEANT4 tag $Name: geant4-09-02 -ref-02$26 // $Id: G4ComptonScattering.cc,v 1.30 2008/10/15 17:53:44 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02 $ 28 28 // 29 29 // … … 84 84 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 85 85 86 G4bool G4ComptonScattering::IsApplicable(const G4ParticleDefinition& p)87 {88 return (&p == G4Gamma::Gamma());89 }90 91 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....92 93 86 void G4ComptonScattering::InitialiseProcess(const G4ParticleDefinition*) 94 87 { -
trunk/source/processes/electromagnetic/standard/src/G4ComptonScattering52.cc
r961 r991 25 25 // 26 26 // $Id: G4ComptonScattering52.cc,v 1.7 2008/10/15 17:53:44 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02 -ref-02$27 // GEANT4 tag $Name: geant4-09-02 $ 28 28 // 29 29 // -
trunk/source/processes/electromagnetic/standard/src/G4CoulombScattering.cc
r961 r991 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4CoulombScattering.cc,v 1. 20 2009/02/20 12:06:37vnivanch Exp $27 // GEANT4 tag $Name: geant4-09-02 -ref-02$26 // $Id: G4CoulombScattering.cc,v 1.19 2008/10/15 17:53:44 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02 $ 28 28 // 29 29 // ------------------------------------------------------------------- … … 79 79 G4CoulombScattering::~G4CoulombScattering() 80 80 {} 81 82 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....83 84 G4bool G4CoulombScattering::IsApplicable(const G4ParticleDefinition& p)85 {86 return (p.GetPDGCharge() != 0.0 && !p.IsShortLived());87 }88 81 89 82 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -
trunk/source/processes/electromagnetic/standard/src/G4CoulombScatteringModel.cc
r961 r991 25 25 // 26 26 // $Id: G4CoulombScatteringModel.cc,v 1.37 2008/07/31 13:11:34 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02 -ref-02$27 // GEANT4 tag $Name: geant4-09-02 $ 28 28 // 29 29 // ------------------------------------------------------------------- -
trunk/source/processes/electromagnetic/standard/src/G4GammaConversion.cc
r961 r991 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4GammaConversion.cc,v 1.3 1 2009/02/20 12:06:37vnivanch Exp $27 // GEANT4 tag $Name: geant4-09-02 -ref-02$26 // $Id: G4GammaConversion.cc,v 1.30 2008/10/15 17:53:44 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02 $ 28 28 // 29 29 // … … 90 90 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 91 91 92 G4bool G4GammaConversion::IsApplicable(const G4ParticleDefinition& p)93 {94 return (&p == G4Gamma::Gamma());95 }96 97 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....98 99 92 void G4GammaConversion::InitialiseProcess(const G4ParticleDefinition*) 100 93 { -
trunk/source/processes/electromagnetic/standard/src/G4InitXscPAI.cc
r961 r991 26 26 // 27 27 // $Id: G4InitXscPAI.cc,v 1.9 2006/06/29 19:53:00 gunter Exp $ 28 // GEANT4 tag $Name: geant4-09-02 -ref-02$28 // GEANT4 tag $Name: geant4-09-02 $ 29 29 // 30 30 // -
trunk/source/processes/electromagnetic/standard/src/G4IonFluctuations.cc
r961 r991 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4IonFluctuations.cc,v 1.2 5 2009/02/19 19:17:50vnivanch Exp $27 // GEANT4 tag $Name: geant4-09-02 -ref-02$26 // $Id: G4IonFluctuations.cc,v 1.24 2008/10/22 16:25:21 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02 $ 28 28 // 29 29 // ------------------------------------------------------------------- … … 420 420 421 421 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 422 423 void G4IonFluctuations::SetParticleAndCharge(const G4ParticleDefinition* part,424 G4double q2)425 {426 if(part != particle) {427 particle = part;428 particleMass = part->GetPDGMass();429 charge = part->GetPDGCharge()/eplus;430 chargeSquare = charge*charge;431 }432 effChargeSquare = q2;433 uniFluct.SetParticleAndCharge(part, q2);434 }435 436 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -
trunk/source/processes/electromagnetic/standard/src/G4KleinNishinaCompton.cc
r961 r991 25 25 // 26 26 // $Id: G4KleinNishinaCompton.cc,v 1.9 2007/05/22 17:34:36 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02 -ref-02$27 // GEANT4 tag $Name: geant4-09-02 $ 28 28 // 29 29 // ------------------------------------------------------------------- -
trunk/source/processes/electromagnetic/standard/src/G4MollerBhabhaModel.cc
r961 r991 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4MollerBhabhaModel.cc,v 1.3 1 2009/02/20 12:06:37vnivanch Exp $27 // GEANT4 tag $Name: geant4-09-02 -ref-02$26 // $Id: G4MollerBhabhaModel.cc,v 1.30 2007/05/22 17:34:36 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02 $ 28 28 // 29 29 // ------------------------------------------------------------------- … … 74 74 const G4String& nam) 75 75 : G4VEmModel(nam), 76 particle(0), 77 isElectron(true), 78 twoln10(2.0*log(10.0)), 79 lowLimit(0.2*keV), 80 isInitialised(false) 76 particle(0), 77 isElectron(true), 78 twoln10(2.0*log(10.0)), 79 lowLimit(0.2*keV) 81 80 { 82 81 theElectron = G4Electron::Electron(); … … 88 87 G4MollerBhabhaModel::~G4MollerBhabhaModel() 89 88 {} 89 90 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 91 92 void G4MollerBhabhaModel::SetParticle(const G4ParticleDefinition* p) 93 { 94 particle = p; 95 if(p != theElectron) isElectron = false; 96 } 90 97 91 98 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... … … 101 108 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 102 109 103 G4double G4MollerBhabhaModel::MaxSecondaryEnergy(const G4ParticleDefinition*,104 G4double kinEnergy)105 {106 G4double tmax = kinEnergy;107 if(isElectron) tmax *= 0.5;108 return tmax;109 }110 111 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......112 113 110 void G4MollerBhabhaModel::Initialise(const G4ParticleDefinition* p, 114 111 const G4DataVector&) 115 112 { 116 113 if(!particle) SetParticle(p); 117 SetDeexcitationFlag(false); 118 119 if(isInitialised) return; 120 121 isInitialised = true; 122 if(pParticleChange) { 114 if(pParticleChange) 123 115 fParticleChange = reinterpret_cast<G4ParticleChangeForLoss*> 124 116 (pParticleChange); 125 } else {117 else 126 118 fParticleChange = new G4ParticleChangeForLoss(); 127 }128 119 } 129 120 -
trunk/source/processes/electromagnetic/standard/src/G4MscModel71.cc
r961 r991 25 25 // 26 26 // $Id: G4MscModel71.cc,v 1.6 2008/03/13 17:20:07 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02 -ref-02$27 // GEANT4 tag $Name: geant4-09-02 $ 28 28 // 29 29 // ------------------------------------------------------------------- -
trunk/source/processes/electromagnetic/standard/src/G4MultipleScattering.cc
r961 r991 25 25 // 26 26 // $Id: G4MultipleScattering.cc,v 1.75 2008/10/15 17:53:44 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02 -ref-02$27 // GEANT4 tag $Name: geant4-09-02 $ 28 28 // 29 29 // ----------------------------------------------------------------------------- -
trunk/source/processes/electromagnetic/standard/src/G4MultipleScattering71.cc
r961 r991 25 25 // 26 26 // $Id: G4MultipleScattering71.cc,v 1.5 2008/07/16 11:27:41 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02 -ref-02$27 // GEANT4 tag $Name: geant4-09-02 $ 28 28 // 29 29 // ----------------------------------------------------------------------------- -
trunk/source/processes/electromagnetic/standard/src/G4PAIModel.cc
r961 r991 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4PAIModel.cc,v 1.46 2009/02/19 19:17:50 vnivanch Exp $27 // GEANT4 tag $Name: geant4-09-02-ref-02 $28 //29 // -------------------------------------------------------------------30 //31 // GEANT4 Class32 26 // File name: G4PAIModel.cc 33 27 // … … 183 177 fCutCouple = theCoupleTable->GetMaterialCutsCouple( fMaterial, 184 178 curReg->GetProductionCuts() ); 185 //G4cout << "Reg <" <<curReg->GetName() << "> mat <"186 // << fMaterial->GetName() << "> fCouple= "187 // << fCutCouple<<G4endl;188 179 if( fCutCouple ) { 189 180 fMaterialCutsCoupleVector.push_back(fCutCouple); … … 206 197 } 207 198 } 208 209 //////////////////////////////////////////////////////////////////210 211 void G4PAIModel::InitialiseMe(const G4ParticleDefinition*)212 {}213 199 214 200 ////////////////////////////////////////////////////////////////// … … 407 393 { 408 394 // if ( x1 == x2 ) dNdxCut = y1 + (y2 - y1)*G4UniformRand() ; 409 // if ( std::abs(x1-x2) <= eV ) dNdxCut = y1 + (y2 - y1)*G4UniformRand() ; 410 if ( std::abs(x1-x2) <= eV ) dNdxCut = y1 + (y2 - y1)*0.5 ; 395 if ( std::abs(x1-x2) <= eV ) dNdxCut = y1 + (y2 - y1)*G4UniformRand() ; 411 396 else dNdxCut = y1 + (transferCut - x1)*(y2 - y1)/(x2 - x1) ; 412 397 } … … 450 435 { 451 436 // if ( x1 == x2 ) dEdxCut = y1 + (y2 - y1)*G4UniformRand() ; 452 // if ( std::abs(x1-x2) <= eV ) dEdxCut = y1 + (y2 - y1)*G4UniformRand() ; 453 if ( std::abs(x1-x2) <= eV ) dEdxCut = y1 + (y2 - y1)*0.5 ; 437 if ( std::abs(x1-x2) <= eV ) dEdxCut = y1 + (y2 - y1)*G4UniformRand() ; 454 438 else dEdxCut = y1 + (transferCut - x1)*(y2 - y1)/(x2 - x1) ; 455 439 } … … 460 444 ////////////////////////////////////////////////////////////////////////////// 461 445 462 G4double G4PAIModel::ComputeDEDX PerVolume(const G4Material*,463 464 465 446 G4double G4PAIModel::ComputeDEDX(const G4MaterialCutsCouple* matCC, 447 const G4ParticleDefinition* p, 448 G4double kineticEnergy, 449 G4double cutEnergy) 466 450 { 467 451 G4int iTkin,iPlace; 468 452 size_t jMat; 469 470 //G4double cut = std::min(MaxSecondaryEnergy(p, kineticEnergy), cutEnergy);471 G4double cut = cutEnergy;472 473 453 G4double massRatio = fMass/p->GetPDGMass(); 474 454 G4double scaledTkin = kineticEnergy*massRatio; 475 455 G4double charge = p->GetPDGCharge(); 476 G4double charge2 = charge*charge; 477 const G4MaterialCutsCouple* matCC = CurrentCouple(); 456 G4double charge2 = charge*charge, dEdx; 478 457 479 458 for( jMat = 0 ;jMat < fMaterialCutsCoupleVector.size() ; ++jMat ) … … 491 470 iPlace = iTkin - 1; 492 471 if(iPlace < 0) iPlace = 0; 493 G4double dEdx = charge2*( (*fdEdxVector)(iPlace) - GetdEdxCut(iPlace,cut) ); 472 dEdx = charge2*( (*fdEdxVector)(iPlace) - GetdEdxCut(iPlace,cutEnergy) ) ; 473 494 474 if( dEdx < 0.) dEdx = 0.; 495 475 return dEdx; … … 498 478 ///////////////////////////////////////////////////////////////////////// 499 479 500 G4double G4PAIModel::CrossSection PerVolume( const G4Material*,501 502 503 504 480 G4double G4PAIModel::CrossSection( const G4MaterialCutsCouple* matCC, 481 const G4ParticleDefinition* p, 482 G4double kineticEnergy, 483 G4double cutEnergy, 484 G4double maxEnergy ) 505 485 { 506 486 G4int iTkin,iPlace; 507 487 size_t jMat; 508 G4double tmax = std::min(MaxSecondaryEnergy(p, kineticEnergy), maxEnergy); 509 if(tmax <= cutEnergy) return 0.0; 488 G4double tmax = min(MaxSecondaryEnergy(p, kineticEnergy), maxEnergy); 510 489 G4double massRatio = fMass/p->GetPDGMass(); 511 490 G4double scaledTkin = kineticEnergy*massRatio; 512 491 G4double charge = p->GetPDGCharge(); 513 492 G4double charge2 = charge*charge, cross, cross1, cross2; 514 const G4MaterialCutsCouple* matCC = CurrentCouple();515 493 516 494 for( jMat = 0 ;jMat < fMaterialCutsCoupleVector.size() ; ++jMat ) … … 957 935 } 958 936 959 /////////////////////////////////////////////////////////////////////960 961 G4double G4PAIModel::MaxSecondaryEnergy( const G4ParticleDefinition* p,962 G4double kinEnergy)963 {964 G4double tmax = kinEnergy;965 if(p == fElectron) tmax *= 0.5;966 else if(p != fPositron) {967 G4double mass = p->GetPDGMass();968 G4double ratio= electron_mass_c2/mass;969 G4double gamma= kinEnergy/mass + 1.0;970 tmax = 2.0*electron_mass_c2*(gamma*gamma - 1.) /971 (1. + 2.0*gamma*ratio + ratio*ratio);972 }973 return tmax;974 }975 976 ///////////////////////////////////////////////////////////////977 978 void G4PAIModel::DefineForRegion(const G4Region* r)979 {980 fPAIRegionVector.push_back(r);981 }982 937 983 938 // -
trunk/source/processes/electromagnetic/standard/src/G4PAIPhotonModel.cc
r961 r991 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4PAIPhotonModel.cc,v 1.21 2009/02/19 19:17:50 vnivanch Exp $27 // GEANT4 tag $Name: geant4-09-02-ref-02 $28 //29 // -------------------------------------------------------------------30 //31 // GEANT4 Class32 26 // File name: G4PAIPhotonModel.cc 33 27 // … … 223 217 ////////////////////////////////////////////////////////////////// 224 218 225 void G4PAIPhotonModel::InitialiseMe(const G4ParticleDefinition*)226 {}227 228 //////////////////////////////////////////////////////////////////229 230 219 void G4PAIPhotonModel::ComputeSandiaPhotoAbsCof() 231 220 { … … 498 487 { 499 488 // if ( x1 == x2 ) dNdxCut = y1 + (y2 - y1)*G4UniformRand() ; 500 // if ( std::abs(x1-x2) <= eV ) dNdxCut = y1 + (y2 - y1)*G4UniformRand() ; 501 if ( std::abs(x1-x2) <= eV ) dNdxCut = y1 + (y2 - y1)*0.5 ; 489 if ( std::abs(x1-x2) <= eV ) dNdxCut = y1 + (y2 - y1)*G4UniformRand() ; 502 490 else dNdxCut = y1 + (transferCut - x1)*(y2 - y1)/(x2 - x1) ; 503 491 } … … 542 530 { 543 531 // if ( x1 == x2 ) dNdxCut = y1 + (y2 - y1)*G4UniformRand() ; 544 // if ( std::abs(x1-x2) <= eV ) dNdxCut = y1 + (y2 - y1)*G4UniformRand() ; 545 if ( std::abs(x1-x2) <= eV ) dNdxCut = y1 + (y2 - y1)*0.5 ; 532 if ( std::abs(x1-x2) <= eV ) dNdxCut = y1 + (y2 - y1)*G4UniformRand() ; 546 533 else dNdxCut = y1 + (transferCut - x1)*(y2 - y1)/(x2 - x1) ; 547 534 } … … 587 574 { 588 575 // if ( x1 == x2 ) dNdxCut = y1 + (y2 - y1)*G4UniformRand() ; 589 // if ( std::abs(x1-x2) <= eV ) dNdxCut = y1 + (y2 - y1)*G4UniformRand() ; 590 if ( std::abs(x1-x2) <= eV ) dNdxCut = y1 + (y2 - y1)*0.5 ; 576 if ( std::abs(x1-x2) <= eV ) dNdxCut = y1 + (y2 - y1)*G4UniformRand() ; 591 577 else dNdxCut = y1 + (transferCut - x1)*(y2 - y1)/(x2 - x1) ; 592 578 } … … 631 617 { 632 618 // if ( x1 == x2 ) dEdxCut = y1 + (y2 - y1)*G4UniformRand() ; 633 // if ( std::abs(x1-x2) <= eV ) dEdxCut = y1 + (y2 - y1)*G4UniformRand() ; 634 if ( std::abs(x1-x2) <= eV ) dEdxCut = y1 + (y2 - y1)*0.5 ; 619 if ( std::abs(x1-x2) <= eV ) dEdxCut = y1 + (y2 - y1)*G4UniformRand() ; 635 620 else dEdxCut = y1 + (transferCut - x1)*(y2 - y1)/(x2 - x1) ; 636 621 } … … 641 626 ////////////////////////////////////////////////////////////////////////////// 642 627 643 G4double G4PAIPhotonModel::ComputeDEDX PerVolume(const G4Material*,644 645 646 628 G4double G4PAIPhotonModel::ComputeDEDX(const G4MaterialCutsCouple* matCC, 629 const G4ParticleDefinition* p, 630 G4double kineticEnergy, 631 G4double cutEnergy) 647 632 { 648 633 G4int iTkin,iPlace; 649 634 size_t jMat; 650 651 //G4double cut = std::min(MaxSecondaryEnergy(p, kineticEnergy), cutEnergy);652 G4double cut = cutEnergy;653 654 635 G4double particleMass = p->GetPDGMass(); 655 636 G4double scaledTkin = kineticEnergy*proton_mass_c2/particleMass; … … 657 638 G4double charge2 = charge*charge; 658 639 G4double dEdx = 0.; 659 const G4MaterialCutsCouple* matCC = CurrentCouple();660 640 661 641 for( jMat = 0 ;jMat < fMaterialCutsCoupleVector.size() ; ++jMat ) … … 673 653 iPlace = iTkin - 1; 674 654 if(iPlace < 0) iPlace = 0; 675 dEdx = charge2*( (*fdEdxVector)(iPlace) - GetdEdxCut(iPlace,cut ) ) ;655 dEdx = charge2*( (*fdEdxVector)(iPlace) - GetdEdxCut(iPlace,cutEnergy) ) ; 676 656 677 657 if( dEdx < 0.) dEdx = 0.; … … 681 661 ///////////////////////////////////////////////////////////////////////// 682 662 683 G4double G4PAIPhotonModel::CrossSection PerVolume( const G4Material*,684 685 686 687 663 G4double G4PAIPhotonModel::CrossSection( const G4MaterialCutsCouple* matCC, 664 const G4ParticleDefinition* p, 665 G4double kineticEnergy, 666 G4double cutEnergy, 667 G4double maxEnergy ) 688 668 { 689 669 G4int iTkin,iPlace; 690 670 size_t jMat, jMatCC; 691 G4double tmax = std::min(MaxSecondaryEnergy(p, kineticEnergy), maxEnergy); 692 if(cutEnergy >= tmax) return 0.0; 671 G4double tmax = min(MaxSecondaryEnergy(p, kineticEnergy), maxEnergy); 693 672 G4double particleMass = p->GetPDGMass(); 694 673 G4double scaledTkin = kineticEnergy*proton_mass_c2/particleMass; … … 696 675 G4double charge2 = charge*charge, cross, cross1, cross2; 697 676 G4double photon1, photon2, plasmon1, plasmon2; 698 699 const G4MaterialCutsCouple* matCC = CurrentCouple();700 677 701 678 const G4ProductionCutsTable* theCoupleTable= … … 1248 1225 } 1249 1226 1250 /////////////////////////////////////////////////////////////////////1251 1252 G4double G4PAIPhotonModel::MaxSecondaryEnergy( const G4ParticleDefinition* p,1253 G4double kinEnergy)1254 {1255 G4double tmax = kinEnergy;1256 if(p == fElectron) tmax *= 0.5;1257 else if(p != fPositron) {1258 G4double mass = p->GetPDGMass();1259 G4double ratio= electron_mass_c2/mass;1260 G4double gamma= kinEnergy/mass + 1.0;1261 tmax = 2.0*electron_mass_c2*(gamma*gamma - 1.) /1262 (1. + 2.0*gamma*ratio + ratio*ratio);1263 }1264 return tmax;1265 }1266 1267 ///////////////////////////////////////////////////////////////1268 1269 void G4PAIPhotonModel::DefineForRegion(const G4Region* r)1270 {1271 fPAIRegionVector.push_back(r);1272 }1273 1274 1227 1275 1228 // -
trunk/source/processes/electromagnetic/standard/src/G4PAIxSection.cc
r961 r991 26 26 // 27 27 // $Id: G4PAIxSection.cc,v 1.24 2008/05/30 16:04:40 grichine Exp $ 28 // GEANT4 tag $Name: geant4-09-02 -ref-02$28 // GEANT4 tag $Name: geant4-09-02 $ 29 29 // 30 30 // -
trunk/source/processes/electromagnetic/standard/src/G4PAIySection.cc
r961 r991 26 26 // 27 27 // $Id: G4PAIySection.cc,v 1.3 2007/10/01 18:38:10 vnivanch Exp $ 28 // GEANT4 tag $Name: geant4-09-02 -ref-02$28 // GEANT4 tag $Name: geant4-09-02 $ 29 29 // 30 30 // -
trunk/source/processes/electromagnetic/standard/src/G4PEEffectModel.cc
r961 r991 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4PEEffectModel.cc,v 1. 7 2009/02/20 12:06:37vnivanch Exp $27 // GEANT4 tag $Name: geant4-09-02 -ref-02$26 // $Id: G4PEEffectModel.cc,v 1.6 2007/05/22 17:34:36 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02 $ 28 28 // 29 29 // ------------------------------------------------------------------- … … 41 41 // 42 42 // 04.12.05 : SetProposedKineticEnergy(0.) for the killed photon (mma) 43 // 20.02.09 : Added initialisation of deexcitation flag and method44 // CrossSectionPerVolume instead of mfp (V.Ivanchenko)45 43 // 46 44 // Class Description: … … 68 66 theGamma = G4Gamma::Gamma(); 69 67 theElectron = G4Electron::Electron(); 70 fminimalEnergy = 1.0*eV;71 68 } 72 69 … … 74 71 75 72 G4PEEffectModel::~G4PEEffectModel() 76 {} 73 { 74 } 77 75 78 76 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... … … 81 79 const G4DataVector&) 82 80 { 83 // always false before the run 84 SetDeexcitationFlag(false); 81 if (isInitialized) return; 82 if (pParticleChange) 83 fParticleChange = 84 reinterpret_cast<G4ParticleChangeForGamma*>(pParticleChange); 85 else 86 fParticleChange = new G4ParticleChangeForGamma(); 85 87 86 if (isInitialized) return; 87 if (pParticleChange) { 88 fParticleChange = reinterpret_cast<G4ParticleChangeForGamma*>(pParticleChange); 89 } else { 90 fParticleChange = new G4ParticleChangeForGamma(); 91 } 92 isInitialized = true; 93 } 94 95 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo..... 96 97 G4double G4PEEffectModel::ComputeCrossSectionPerAtom(const G4ParticleDefinition*, 98 G4double energy, 99 G4double Z, G4double, 100 G4double, G4double) 101 { 102 G4double* SandiaCof = G4SandiaTable::GetSandiaCofPerAtom((G4int)Z, energy); 103 104 G4double energy2 = energy*energy; 105 G4double energy3 = energy*energy2; 106 G4double energy4 = energy2*energy2; 107 108 return SandiaCof[0]/energy + SandiaCof[1]/energy2 + 109 SandiaCof[2]/energy3 + SandiaCof[3]/energy4; 110 } 111 112 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 113 114 G4double G4PEEffectModel::CrossSectionPerVolume(const G4Material* material, 115 const G4ParticleDefinition*, 116 G4double energy, 117 G4double, G4double) 118 { 119 G4double* SandiaCof = 120 material->GetSandiaTable()->GetSandiaCofForMaterial(energy); 121 122 G4double energy2 = energy*energy; 123 G4double energy3 = energy*energy2; 124 G4double energy4 = energy2*energy2; 125 126 return SandiaCof[0]/energy + SandiaCof[1]/energy2 + 127 SandiaCof[2]/energy3 + SandiaCof[3]/energy4; 88 fminimalEnergy = 1.0*eV; 128 89 } 129 90 -
trunk/source/processes/electromagnetic/standard/src/G4PSTARStopping.cc
r961 r991 25 25 // 26 26 // $Id: G4PSTARStopping.cc,v 1.8 2008/11/24 18:28:09 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02 -ref-02$27 // GEANT4 tag $Name: geant4-09-02 $ 28 28 29 29 //--------------------------------------------------------------------------- -
trunk/source/processes/electromagnetic/standard/src/G4PhotoElectricEffect.cc
r961 r991 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4PhotoElectricEffect.cc,v 1.4 2 2009/02/20 12:06:37vnivanch Exp $27 // GEANT4 tag $Name: geant4-09-02 -ref-02$26 // $Id: G4PhotoElectricEffect.cc,v 1.41 2008/10/16 14:12:32 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02 $ 28 28 // 29 29 // … … 89 89 {} 90 90 91 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....92 93 G4bool G4PhotoElectricEffect::IsApplicable(const G4ParticleDefinition& p)94 {95 return (&p == G4Gamma::Gamma());96 }97 98 91 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 99 92 -
trunk/source/processes/electromagnetic/standard/src/G4PolarizedComptonScattering.cc
r961 r991 26 26 // 27 27 // $Id: G4PolarizedComptonScattering.cc,v 1.18 2008/10/15 17:53:44 vnivanch Exp $ 28 // GEANT4 tag $Name: geant4-09-02 -ref-02$28 // GEANT4 tag $Name: geant4-09-02 $ 29 29 // 30 30 // -
trunk/source/processes/electromagnetic/standard/src/G4UniversalFluctuation.cc
r961 r991 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4UniversalFluctuation.cc,v 1.1 7 2009/02/19 11:26:01vnivanch Exp $27 // GEANT4 tag $Name: geant4-09-02 -ref-02$26 // $Id: G4UniversalFluctuation.cc,v 1.16 2008/10/22 16:04:33 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02 $ 28 28 // 29 29 // ------------------------------------------------------------------- … … 305 305 } 306 306 307 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 308 309 void 310 G4UniversalFluctuation::SetParticleAndCharge(const G4ParticleDefinition* part, 311 G4double q2) 312 { 313 if(part != particle) { 314 particle = part; 315 particleMass = part->GetPDGMass(); 316 } 317 chargeSquare = q2; 318 } 319 320 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 307 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -
trunk/source/processes/electromagnetic/standard/src/G4UrbanMscModel.cc
r961 r991 25 25 // 26 26 // $Id: G4UrbanMscModel.cc,v 1.86 2008/10/29 14:15:30 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02 -ref-02$27 // GEANT4 tag $Name: geant4-09-02 $ 28 28 // 29 29 // ------------------------------------------------------------------- -
trunk/source/processes/electromagnetic/standard/src/G4UrbanMscModel2.cc
r968 r991 26 26 // 27 27 // $Id: G4UrbanMscModel2.cc,v 1.18 2008/12/18 13:01:36 gunter Exp $ 28 // GEANT4 tag $Name: geant4-09-02 -ref-02$28 // GEANT4 tag $Name: geant4-09-02 $ 29 29 // 30 30 // ------------------------------------------------------------------- -
trunk/source/processes/electromagnetic/standard/src/G4UrbanMscModel90.cc
r961 r991 25 25 // 26 26 // $Id: G4UrbanMscModel90.cc,v 1.10 2008/10/29 14:15:30 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02 -ref-02$27 // GEANT4 tag $Name: geant4-09-02 $ 28 28 // 29 29 // ------------------------------------------------------------------- -
trunk/source/processes/electromagnetic/standard/src/G4WaterStopping.cc
r961 r991 25 25 // 26 26 // $Id: G4WaterStopping.cc,v 1.11 2008/12/18 13:01:38 gunter Exp $ 27 // GEANT4 tag $Name: geant4-09-02 -ref-02$27 // GEANT4 tag $Name: geant4-09-02 $ 28 28 29 29 //--------------------------------------------------------------------------- -
trunk/source/processes/electromagnetic/standard/src/G4WentzelVIModel.cc
r968 r991 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4WentzelVIModel.cc,v 1.1 7 2009/02/19 19:17:15vnivanch Exp $27 // GEANT4 tag $Name: geant4-09-02 -ref-02$26 // $Id: G4WentzelVIModel.cc,v 1.16 2008/11/19 11:47:50 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02 $ 28 28 // 29 29 // ------------------------------------------------------------------- … … 60 60 #include "G4LossTableManager.hh" 61 61 #include "G4ParticleChangeForMSC.hh" 62 //#include "G4TransportationManager.hh"63 //#include "G4SafetyHelper.hh"62 #include "G4TransportationManager.hh" 63 #include "G4SafetyHelper.hh" 64 64 #include "G4PhysicsTableHelper.hh" 65 65 #include "G4ElementVector.hh" … … 138 138 fParticleChange = new G4ParticleChangeForMSC(); 139 139 140 InitialiseSafetyHelper(); 140 safetyHelper = G4TransportationManager::GetTransportationManager() 141 ->GetSafetyHelper(); 142 safetyHelper->InitialiseHelper(); 141 143 } 142 144 } … … 275 277 // i.e. when it is needed for optimization purposes 276 278 if(stepStatus != fGeomBoundary && presafety < tlimitminfix) 277 presafety = ComputeSafety(sp->GetPosition(), tlimit);279 presafety = safetyHelper->ComputeSafety(sp->GetPosition()); 278 280 /* 279 281 G4cout << "G4WentzelVIModel::ComputeTruePathLengthLimit tlimit= " … … 568 570 569 571 if(r > tlimitminfix) { 570 pos /= r; 571 ComputeDisplacement(fParticleChange, pos, r, safety); 572 G4ThreeVector Position = *(fParticleChange->GetProposedPosition()); 573 G4double fac= 1.; 574 if(r >= safety) { 575 // ******* so safety is computed at boundary too ************ 576 G4double newsafety = 577 safetyHelper->ComputeSafety(Position) - tlimitminfix; 578 if(newsafety <= 0.0) fac = 0.0; 579 else if(r > newsafety) fac = newsafety/r ; 580 //G4cout << "NewSafety= " << newsafety << " fac= " << fac 581 // << " r= " << r << " sint= " << sint << " pos " << Position << G4endl; 582 } 583 584 if(fac > 0.) { 585 // compute new endpoint of the Step 586 G4ThreeVector newPosition = Position + fac*pos; 587 588 // check safety after displacement 589 G4double postsafety = safetyHelper->ComputeSafety(newPosition); 590 591 // displacement to boundary 592 if(postsafety <= 0.0) { 593 safetyHelper->Locate(newPosition, newDirection); 594 595 // not on the boundary 596 } else { 597 safetyHelper->ReLocateWithinVolume(newPosition); 598 // if(fac < 1.0) G4cout << "NewPosition " << newPosition << G4endl; 599 } 600 601 fParticleChange->ProposePosition(newPosition); 602 } 572 603 } 573 604 } -
trunk/source/processes/electromagnetic/standard/src/G4eBremsstrahlung.cc
r961 r991 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4eBremsstrahlung.cc,v 1.5 6 2009/02/20 12:06:37 vnivanch Exp $27 // GEANT4 tag $Name: geant4-09-02 -ref-02$26 // $Id: G4eBremsstrahlung.cc,v 1.55 2008/11/14 19:23:07 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02 $ 28 28 // 29 29 // ------------------------------------------------------------------- … … 104 104 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 105 105 106 G4bool G4eBremsstrahlung::IsApplicable(const G4ParticleDefinition& p)107 {108 return (&p == G4Electron::Electron() || &p == G4Positron::Positron());109 }110 111 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....112 113 106 void G4eBremsstrahlung::InitialiseEnergyLossProcess( 114 107 const G4ParticleDefinition* p, -
trunk/source/processes/electromagnetic/standard/src/G4eBremsstrahlungModel.cc
r961 r991 25 25 // 26 26 // $Id: G4eBremsstrahlungModel.cc,v 1.43 2008/11/13 19:28:58 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02 -ref-02$27 // GEANT4 tag $Name: geant4-09-02 $ 28 28 // 29 29 // ------------------------------------------------------------------- -
trunk/source/processes/electromagnetic/standard/src/G4eBremsstrahlungRelModel.cc
r968 r991 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4eBremsstrahlungRelModel.cc,v 1.1 3 2009/02/20 12:06:37 vnivanchExp $27 // GEANT4 tag $Name: geant4-09-02 -ref-02$26 // $Id: G4eBremsstrahlungRelModel.cc,v 1.12 2008/11/13 23:28:27 schaelic Exp $ 27 // GEANT4 tag $Name: geant4-09-02 $ 28 28 // 29 29 // ------------------------------------------------------------------- -
trunk/source/processes/electromagnetic/standard/src/G4eCoulombScatteringModel.cc
r961 r991 25 25 // 26 26 // $Id: G4eCoulombScatteringModel.cc,v 1.59 2008/10/22 18:39:29 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02 -ref-02$27 // GEANT4 tag $Name: geant4-09-02 $ 28 28 // 29 29 // ------------------------------------------------------------------- -
trunk/source/processes/electromagnetic/standard/src/G4eIonisation.cc
r961 r991 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4eIonisation.cc,v 1.5 7 2009/02/20 12:06:37vnivanch Exp $27 // GEANT4 tag $Name: geant4-09-02 -ref-02$26 // $Id: G4eIonisation.cc,v 1.56 2008/10/20 08:56:41 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02 $ 28 28 // 29 29 // ------------------------------------------------------------------- … … 103 103 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 104 104 105 G4double G4eIonisation::MinPrimaryEnergy(const G4ParticleDefinition*,106 const G4Material*,107 G4double cut)108 {109 G4double x = cut;110 if(isElectron) x += cut;111 return x;112 }113 114 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....115 116 G4bool G4eIonisation::IsApplicable(const G4ParticleDefinition& p)117 {118 return (&p == G4Electron::Electron() || &p == G4Positron::Positron());119 }120 121 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....122 123 105 void G4eIonisation::InitialiseEnergyLossProcess( 124 106 const G4ParticleDefinition* part, -
trunk/source/processes/electromagnetic/standard/src/G4eMultipleScattering.cc
r968 r991 25 25 // 26 26 // $Id: G4eMultipleScattering.cc,v 1.7 2008/10/23 17:55:20 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02 -ref-02$27 // GEANT4 tag $Name: geant4-09-02 $ 28 28 // 29 29 // ----------------------------------------------------------------------------- -
trunk/source/processes/electromagnetic/standard/src/G4eeToTwoGammaModel.cc
r961 r991 25 25 // 26 26 // $Id: G4eeToTwoGammaModel.cc,v 1.14 2007/05/23 08:47:35 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02 -ref-02$27 // GEANT4 tag $Name: geant4-09-02 $ 28 28 // 29 29 // ------------------------------------------------------------------- -
trunk/source/processes/electromagnetic/standard/src/G4eplusAnnihilation.cc
r961 r991 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4eplusAnnihilation.cc,v 1. 30 2009/02/20 12:06:37vnivanch Exp $27 // GEANT4 tag $Name: geant4-09-02 -ref-02$26 // $Id: G4eplusAnnihilation.cc,v 1.29 2008/10/15 17:53:44 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02 $ 28 28 // 29 29 // ------------------------------------------------------------------- … … 79 79 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 80 80 81 G4bool G4eplusAnnihilation::IsApplicable(const G4ParticleDefinition& p)82 {83 return (&p == G4Positron::Positron());84 }85 86 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....87 88 G4double G4eplusAnnihilation::AtRestGetPhysicalInteractionLength(89 const G4Track&, G4ForceCondition* condition)90 {91 *condition = NotForced;92 return 0.0;93 }94 95 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....96 97 81 void G4eplusAnnihilation::InitialiseProcess(const G4ParticleDefinition*) 98 82 { -
trunk/source/processes/electromagnetic/standard/src/G4hIonisation.cc
r961 r991 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4hIonisation.cc,v 1.8 2 2009/02/20 12:06:37vnivanch Exp $27 // GEANT4 tag $Name: geant4-09-02 -ref-02$26 // $Id: G4hIonisation.cc,v 1.81 2008/10/22 16:02:20 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02 $ 28 28 // 29 29 // ------------------------------------------------------------------- … … 122 122 {} 123 123 124 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....125 126 G4bool G4hIonisation::IsApplicable(const G4ParticleDefinition& p)127 {128 return (p.GetPDGCharge() != 0.0 && p.GetPDGMass() > 10.0*MeV &&129 !p.IsShortLived());130 }131 132 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....133 134 G4double G4hIonisation::MinPrimaryEnergy(const G4ParticleDefinition*,135 const G4Material*,136 G4double cut)137 {138 G4double x = 0.5*cut/electron_mass_c2;139 G4double g = x*ratio + std::sqrt((1. + x)*(1. + x*ratio*ratio));140 return mass*(g - 1.0);141 }142 143 124 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 144 125 -
trunk/source/processes/electromagnetic/standard/src/G4hMultipleScattering.cc
r961 r991 25 25 // 26 26 // $Id: G4hMultipleScattering.cc,v 1.13 2008/10/15 17:53:44 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02 -ref-02$27 // GEANT4 tag $Name: geant4-09-02 $ 28 28 // 29 29 // ----------------------------------------------------------------------------- -
trunk/source/processes/electromagnetic/standard/src/G4ionGasIonisation.cc
r961 r991 25 25 // 26 26 // $Id: G4ionGasIonisation.cc,v 1.14 2008/09/12 16:26:34 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02 -ref-02$27 // GEANT4 tag $Name: geant4-09-02 $ 28 28 // 29 29 // ------------------------------------------------------------------- -
trunk/source/processes/electromagnetic/standard/src/G4ionIonisation.cc
r961 r991 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4ionIonisation.cc,v 1.6 6 2009/02/20 12:06:37vnivanch Exp $27 // GEANT4 tag $Name: geant4-09-02 -ref-02$26 // $Id: G4ionIonisation.cc,v 1.65 2008/10/15 17:53:44 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02 $ 28 28 // 29 29 // ------------------------------------------------------------------- … … 104 104 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 105 105 106 G4bool G4ionIonisation::IsApplicable(const G4ParticleDefinition& p)107 {108 return (p.GetPDGCharge() != 0.0 && !p.IsShortLived() &&109 p.GetParticleType() == "nucleus");110 }111 112 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....113 114 G4double G4ionIonisation::MinPrimaryEnergy(const G4ParticleDefinition* p,115 const G4Material*,116 G4double cut)117 {118 return119 p->GetPDGMass()*(std::sqrt(1. + 0.5*cut/CLHEP::electron_mass_c2) - 1.0);120 }121 122 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....123 124 106 void G4ionIonisation::InitialiseEnergyLossProcess( 125 107 const G4ParticleDefinition* part,
Note: See TracChangeset
for help on using the changeset viewer.