Changeset 1055 for trunk/source/processes/electromagnetic/highenergy
- Timestamp:
- May 28, 2009, 4:26:57 PM (15 years ago)
- Location:
- trunk/source/processes/electromagnetic/highenergy
- Files:
-
- 29 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/source/processes/electromagnetic/highenergy/History
r1007 r1055 1 $Id: History,v 1.3 0 2008/10/16 14:29:48vnivanch Exp $1 $Id: History,v 1.32 2009/04/12 17:35:41 vnivanch Exp $ 2 2 ------------------------------------------------------------------- 3 3 … … 17 17 * Reverse chronological order (last date on top), please * 18 18 ---------------------------------------------------------- 19 20 12 April 09: V.Ivanchenko (emhighenergy-V09-02-01) 21 - G4mplIonisationModel, G4eeToHadronsMultiModel - simplified initialisation 22 23 20 February 09: V.Ivanchenko (emhighenergy-V09-02-00) 24 - Cleanup: improved comments, move virtual methods from .hh to .cc 19 25 20 26 16 October 08: V.Ivanchenko (emhighenergy-V09-01-06) -
trunk/source/processes/electromagnetic/highenergy/include/G4BetheBlochNoDeltaModel.hh
r1007 r1055 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4BetheBlochNoDeltaModel.hh,v 1. 7 2006/06/29 19:32:14 gunterExp $27 // GEANT4 tag $Name: geant4-09-0 2$26 // $Id: G4BetheBlochNoDeltaModel.hh,v 1.8 2009/02/20 16:38:33 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $ 28 28 // 29 29 // ------------------------------------------------------------------- … … 68 68 G4double cutEnergy); 69 69 70 virtual G4double C omputeCrossSectionPerElectron(71 const G4ParticleDefinition*,72 G4double kineticEnergy,73 G4double cutEnergy,74 G4double maxEnergy);70 virtual G4double CrossSectionPerVolume(const G4Material*, 71 const G4ParticleDefinition*, 72 G4double kineticEnergy, 73 G4double cutEnergy, 74 G4double maxEnergy); 75 75 76 76 private: … … 84 84 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 85 85 86 inline G4double G4BetheBlochNoDeltaModel::ComputeDEDXPerVolume(87 const G4Material* material,88 const G4ParticleDefinition* pd,89 G4double kinEnergy, G4double)90 {91 G4double dedx = G4BetheBlochModel::ComputeDEDXPerVolume(material, pd, kinEnergy, DBL_MAX);92 return dedx;93 }94 95 inline G4double G4BetheBlochNoDeltaModel::ComputeCrossSectionPerElectron(96 const G4ParticleDefinition*,97 G4double, G4double, G4double)98 {99 return 0.0;100 }101 102 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....103 104 86 #endif -
trunk/source/processes/electromagnetic/highenergy/include/G4BraggNoDeltaModel.hh
r1007 r1055 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4BraggNoDeltaModel.hh,v 1. 6 2006/06/29 19:32:16 gunterExp $27 // GEANT4 tag $Name: geant4-09-0 2$26 // $Id: G4BraggNoDeltaModel.hh,v 1.7 2009/02/20 16:38:33 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $ 28 28 // 29 29 // ------------------------------------------------------------------- … … 68 68 G4double cutEnergy); 69 69 70 virtual G4double C omputeCrossSectionPerElectron(70 virtual G4double CrossSectionPerVolume(const G4Material*, 71 71 const G4ParticleDefinition*, 72 72 G4double kineticEnergy, 73 73 G4double cutEnergy, 74 74 G4double maxEnergy); 75 76 75 private: 77 76 … … 84 83 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 85 84 86 inline G4double G4BraggNoDeltaModel::ComputeDEDXPerVolume(87 const G4Material* material,88 const G4ParticleDefinition* pd,89 G4double kinEnergy, G4double)90 {91 G4double dedx = G4BraggIonModel::ComputeDEDXPerVolume(material, pd, kinEnergy, DBL_MAX);92 return dedx;93 }94 95 inline G4double G4BraggNoDeltaModel::ComputeCrossSectionPerElectron(96 const G4ParticleDefinition*,97 G4double, G4double, G4double)98 {99 return 0.0;100 }101 102 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....103 104 85 #endif -
trunk/source/processes/electromagnetic/highenergy/include/G4ee2KChargedModel.hh
r1007 r1055 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4ee2KChargedModel.hh,v 1. 1 2008/07/10 18:07:26vnivanch Exp $27 // GEANT4 tag $Name: geant4-09-0 2$26 // $Id: G4ee2KChargedModel.hh,v 1.2 2009/02/20 16:38:33 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $ 28 28 // 29 29 // ------------------------------------------------------------------- … … 67 67 virtual ~G4ee2KChargedModel(); 68 68 69 G4double ThresholdEnergy() const;69 virtual G4double ThresholdEnergy() const; 70 70 71 G4double PeakEnergy() const;71 virtual G4double PeakEnergy() const; 72 72 73 G4double ComputeCrossSection(G4double) const;73 virtual G4double ComputeCrossSection(G4double) const; 74 74 75 G4PhysicsVector* PhysicsVector(G4double, G4double) const;75 virtual G4PhysicsVector* PhysicsVector(G4double, G4double) const; 76 76 77 77 virtual void SampleSecondaries(std::vector<G4DynamicParticle*>*, … … 92 92 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 93 93 94 inline G4double G4ee2KChargedModel::ThresholdEnergy() const95 {96 return 2.0*massK;97 }98 99 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....100 101 inline G4double G4ee2KChargedModel::PeakEnergy() const102 {103 return massPhi;104 }105 106 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....107 108 inline G4double G4ee2KChargedModel::ComputeCrossSection(G4double e) const109 {110 G4double ee = std::min(HighEnergy(),e);111 return cross->CrossSection2Kcharged(ee);112 }113 114 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....115 116 94 #endif -
trunk/source/processes/electromagnetic/highenergy/include/G4ee2KNeutralModel.hh
r1007 r1055 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4ee2KNeutralModel.hh,v 1. 1 2008/07/10 18:07:26vnivanch Exp $27 // GEANT4 tag $Name: geant4-09-0 2$26 // $Id: G4ee2KNeutralModel.hh,v 1.2 2009/02/20 16:38:33 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $ 28 28 // 29 29 // ------------------------------------------------------------------- … … 67 67 virtual ~G4ee2KNeutralModel(); 68 68 69 G4double ThresholdEnergy() const;69 virtual G4double ThresholdEnergy() const; 70 70 71 G4double PeakEnergy() const;71 virtual G4double PeakEnergy() const; 72 72 73 G4double ComputeCrossSection(G4double) const;73 virtual G4double ComputeCrossSection(G4double) const; 74 74 75 G4PhysicsVector* PhysicsVector(G4double, G4double) const;75 virtual G4PhysicsVector* PhysicsVector(G4double, G4double) const; 76 76 77 77 virtual void SampleSecondaries(std::vector<G4DynamicParticle*>*, … … 92 92 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 93 93 94 inline G4double G4ee2KNeutralModel::ThresholdEnergy() const95 {96 return 2.0*massK;97 }98 99 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....100 101 inline G4double G4ee2KNeutralModel::PeakEnergy() const102 {103 return massPhi;104 }105 106 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....107 108 inline G4double G4ee2KNeutralModel::ComputeCrossSection(G4double e) const109 {110 G4double ee = std::min(HighEnergy(),e);111 return cross->CrossSection2Kneutral(ee);112 }113 114 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....115 116 94 #endif -
trunk/source/processes/electromagnetic/highenergy/include/G4eeTo3PiModel.hh
r1007 r1055 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4eeTo3PiModel.hh,v 1. 1 2008/07/10 18:07:26vnivanch Exp $27 // GEANT4 tag $Name: geant4-09-0 2$26 // $Id: G4eeTo3PiModel.hh,v 1.2 2009/02/20 16:38:33 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $ 28 28 // 29 29 // ------------------------------------------------------------------- … … 67 67 virtual ~G4eeTo3PiModel(); 68 68 69 G4double ThresholdEnergy() const;69 virtual G4double ThresholdEnergy() const; 70 70 71 G4double PeakEnergy() const;71 virtual G4double PeakEnergy() const; 72 72 73 G4double ComputeCrossSection(G4double) const;73 virtual G4double ComputeCrossSection(G4double) const; 74 74 75 G4PhysicsVector* PhysicsVector(G4double, G4double) const;75 virtual G4PhysicsVector* PhysicsVector(G4double, G4double) const; 76 76 77 77 virtual void SampleSecondaries(std::vector<G4DynamicParticle*>*, … … 96 96 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 97 97 98 inline G4double G4eeTo3PiModel::ThresholdEnergy() const99 {100 return std::max(LowEnergy(),2.0*massPi + massPi0);101 }102 103 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....104 105 inline G4double G4eeTo3PiModel::PeakEnergy() const106 {107 G4double e = massOm;108 if(HighEnergy() > massPhi) e = massPhi;109 return e;110 }111 112 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....113 114 inline G4double G4eeTo3PiModel::ComputeCrossSection(G4double e) const115 {116 G4double ee = std::min(HighEnergy(),e);117 return cross->CrossSection3pi(ee);118 }119 120 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....121 122 98 #endif -
trunk/source/processes/electromagnetic/highenergy/include/G4eeToHadrons.hh
r1007 r1055 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4eeToHadrons.hh,v 1. 8 2007/05/23 08:50:41vnivanch Exp $27 // GEANT4 tag $Name: geant4-09-0 2$26 // $Id: G4eeToHadrons.hh,v 1.9 2009/02/20 16:38:33 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $ 28 28 // 29 29 // ------------------------------------------------------------------- … … 70 70 71 71 // Print out of the class parameters 72 v oid PrintInfo();72 virtual void PrintInfo(); 73 73 74 74 // Set the factor to artificially increase the crossSection (default 1) … … 77 77 protected: 78 78 79 v oid InitialiseProcess(const G4ParticleDefinition*);79 virtual void InitialiseProcess(const G4ParticleDefinition*); 80 80 81 81 private: … … 92 92 }; 93 93 94 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....95 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....96 97 inline G4bool G4eeToHadrons::IsApplicable(const G4ParticleDefinition& p)98 {99 return (&p == G4Positron::Positron());100 }101 102 94 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 103 95 -
trunk/source/processes/electromagnetic/highenergy/include/G4eeToHadronsMultiModel.hh
r1007 r1055 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4eeToHadronsMultiModel.hh,v 1. 6 2008/07/10 18:06:38vnivanch Exp $27 // GEANT4 tag $Name: geant4-09-0 2$26 // $Id: G4eeToHadronsMultiModel.hh,v 1.7 2009/02/20 16:38:33 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $ 28 28 // 29 29 // ------------------------------------------------------------------- … … 91 91 G4double maxEnergy = DBL_MAX); 92 92 93 virtual void PrintInfo(); 94 95 // Set the factor to artificially increase the crossSection (default 1) 96 void SetCrossSecFactor(G4double fac); 97 93 98 inline G4double ComputeCrossSectionPerElectron( 94 99 const G4ParticleDefinition*, … … 96 101 G4double cutEnergy = 0.0, 97 102 G4double maxEnergy = DBL_MAX); 98 99 void PrintInfo();100 101 // Set the factor to artificially increase the crossSection (default 1)102 void SetCrossSecFactor(G4double fac);103 103 104 104 private: -
trunk/source/processes/electromagnetic/highenergy/include/G4eeToPGammaModel.hh
r1007 r1055 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4eeToPGammaModel.hh,v 1. 1 2008/07/10 18:07:26vnivanch Exp $27 // GEANT4 tag $Name: geant4-09-0 2$26 // $Id: G4eeToPGammaModel.hh,v 1.2 2009/02/20 16:38:33 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $ 28 28 // 29 29 // ------------------------------------------------------------------- … … 68 68 virtual ~G4eeToPGammaModel(); 69 69 70 G4double ThresholdEnergy() const;70 virtual G4double ThresholdEnergy() const; 71 71 72 G4double PeakEnergy() const;72 virtual G4double PeakEnergy() const; 73 73 74 G4double ComputeCrossSection(G4double) const;74 virtual G4double ComputeCrossSection(G4double) const; 75 75 76 G4PhysicsVector* PhysicsVector(G4double, G4double) const;76 virtual G4PhysicsVector* PhysicsVector(G4double, G4double) const; 77 77 78 78 virtual void SampleSecondaries(std::vector<G4DynamicParticle*>*, … … 97 97 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 98 98 99 inline G4double G4eeToPGammaModel::ThresholdEnergy() const100 {101 return LowEnergy();102 }103 104 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....105 106 inline G4double G4eeToPGammaModel::PeakEnergy() const107 {108 return massR;109 }110 111 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....112 113 inline G4double G4eeToPGammaModel::ComputeCrossSection(G4double e) const114 {115 G4double ee = std::min(HighEnergy(),e);116 G4double xs;117 if(particle == pi0) xs = cross->CrossSectionPi0G(ee);118 else xs = cross->CrossSectionEtaG(ee);119 return xs;120 }121 122 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....123 124 99 #endif -
trunk/source/processes/electromagnetic/highenergy/include/G4eeToTwoPiModel.hh
r1007 r1055 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4eeToTwoPiModel.hh,v 1. 4 2008/07/10 18:06:39vnivanch Exp $27 // GEANT4 tag $Name: geant4-09-0 2$26 // $Id: G4eeToTwoPiModel.hh,v 1.5 2009/02/20 16:38:33 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $ 28 28 // 29 29 // ------------------------------------------------------------------- … … 67 67 virtual ~G4eeToTwoPiModel(); 68 68 69 G4double ThresholdEnergy() const;69 virtual G4double ThresholdEnergy() const; 70 70 71 G4double PeakEnergy() const;71 virtual G4double PeakEnergy() const; 72 72 73 G4double ComputeCrossSection(G4double) const;73 virtual G4double ComputeCrossSection(G4double) const; 74 74 75 G4PhysicsVector* PhysicsVector(G4double, G4double) const;75 virtual G4PhysicsVector* PhysicsVector(G4double, G4double) const; 76 76 77 77 virtual void SampleSecondaries(std::vector<G4DynamicParticle*>*, … … 93 93 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 94 94 95 inline G4double G4eeToTwoPiModel::ThresholdEnergy() const96 {97 return 2.0*massPi;98 }99 100 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....101 102 inline G4double G4eeToTwoPiModel::PeakEnergy() const103 {104 return massRho;105 }106 107 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....108 109 inline G4double G4eeToTwoPiModel::ComputeCrossSection(G4double e) const110 {111 G4double ee = std::min(HighEnergy(),e);112 return cross->CrossSection2pi(ee);113 }114 115 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....116 117 95 #endif -
trunk/source/processes/electromagnetic/highenergy/include/G4hBremsstrahlung.hh
r1007 r1055 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4hBremsstrahlung.hh,v 1. 1 2008/03/06 11:47:10vnivanch Exp $27 // GEANT4 tag $Name: geant4-09-0 2$26 // $Id: G4hBremsstrahlung.hh,v 1.2 2009/02/20 16:38:33 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $ 28 28 // 29 29 // ------------------------------------------------------------------- … … 72 72 virtual ~G4hBremsstrahlung(); 73 73 74 G4bool IsApplicable(const G4ParticleDefinition& p);74 virtual G4bool IsApplicable(const G4ParticleDefinition& p); 75 75 76 G4double MinPrimaryEnergy(const G4ParticleDefinition* p,77 const G4Material*,78 G4double cut);76 virtual G4double MinPrimaryEnergy(const G4ParticleDefinition* p, 77 const G4Material*, 78 G4double cut); 79 79 80 80 // Print out of the class parameters 81 v oid PrintInfo();81 virtual void PrintInfo(); 82 82 83 83 protected: 84 84 85 v oid InitialiseEnergyLossProcess(const G4ParticleDefinition*,86 const G4ParticleDefinition*);85 virtual void InitialiseEnergyLossProcess(const G4ParticleDefinition*, 86 const G4ParticleDefinition*); 87 87 88 88 private: … … 100 100 101 101 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 102 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....103 104 inline105 G4bool G4hBremsstrahlung::IsApplicable(const G4ParticleDefinition& p)106 {107 return (p.GetPDGCharge() != 0.0 && p.GetPDGMass() > 110.0*MeV);108 }109 110 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....111 112 inline113 G4double G4hBremsstrahlung::MinPrimaryEnergy(const G4ParticleDefinition*,114 const G4Material*,115 G4double)116 {117 return lowestKinEnergy;118 }119 120 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....121 102 122 103 #endif -
trunk/source/processes/electromagnetic/highenergy/include/G4hPairProduction.hh
r1007 r1055 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4hPairProduction.hh,v 1. 1 2008/03/06 11:47:11vnivanch Exp $27 // GEANT4 tag $Name: geant4-09-0 2$26 // $Id: G4hPairProduction.hh,v 1.2 2009/02/20 16:38:33 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $ 28 28 // 29 29 // ------------------------------------------------------------------- … … 69 69 virtual ~G4hPairProduction(); 70 70 71 G4bool IsApplicable(const G4ParticleDefinition& p);71 virtual G4bool IsApplicable(const G4ParticleDefinition& p); 72 72 73 G4double MinPrimaryEnergy(const G4ParticleDefinition* p,74 const G4Material*, G4double cut);73 virtual G4double MinPrimaryEnergy(const G4ParticleDefinition* p, 74 const G4Material*, G4double cut); 75 75 76 76 // Print out of the class parameters 77 v oid PrintInfo();77 virtual void PrintInfo(); 78 78 79 79 protected: 80 80 81 v oid InitialiseEnergyLossProcess(const G4ParticleDefinition*,82 const G4ParticleDefinition*);81 virtual void InitialiseEnergyLossProcess(const G4ParticleDefinition*, 82 const G4ParticleDefinition*); 83 83 84 84 private: … … 98 98 99 99 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 100 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....101 102 inline103 G4bool G4hPairProduction::IsApplicable(const G4ParticleDefinition& p)104 {105 return (p.GetPDGCharge() != 0.0 && p.GetPDGMass() > 110.0*MeV);106 }107 108 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....109 110 inline111 G4double G4hPairProduction::MinPrimaryEnergy(const G4ParticleDefinition*,112 const G4Material*,113 G4double)114 {115 return lowestKinEnergy;116 }117 118 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....119 100 120 101 #endif -
trunk/source/processes/electromagnetic/highenergy/include/G4hhIonisation.hh
r1007 r1055 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4hhIonisation.hh,v 1. 5 2007/05/23 08:50:41vnivanch Exp $27 // GEANT4 tag $Name: geant4-09-0 2$26 // $Id: G4hhIonisation.hh,v 1.6 2009/02/20 16:38:33 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $ 28 28 // 29 29 // ------------------------------------------------------------------- … … 69 69 virtual ~G4hhIonisation(); 70 70 71 G4bool IsApplicable(const G4ParticleDefinition& p);71 virtual G4bool IsApplicable(const G4ParticleDefinition& p); 72 72 73 G4double MinPrimaryEnergy(const G4ParticleDefinition* p,74 const G4Material*, G4double cut);73 virtual G4double MinPrimaryEnergy(const G4ParticleDefinition* p, 74 const G4Material*, G4double cut); 75 75 76 76 // Print out of the class parameters … … 104 104 105 105 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 106 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....107 108 inline G4bool G4hhIonisation::IsApplicable(const G4ParticleDefinition& p)109 {110 return (p.GetPDGCharge() != 0.0 && p.GetPDGMass() > 100.0*MeV &&111 !p.IsShortLived());112 }113 114 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....115 116 inline G4double G4hhIonisation::MinPrimaryEnergy(const G4ParticleDefinition*,117 const G4Material*,118 G4double cut)119 {120 G4double x = 0.5*cut/electron_mass_c2;121 G4double y = electron_mass_c2/mass;122 G4double g = x*y + std::sqrt((1. + x)*(1. + x*y*y));123 return mass*(g - 1.0);124 }125 126 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....127 106 128 107 #endif -
trunk/source/processes/electromagnetic/highenergy/include/G4mplIonisation.hh
r1007 r1055 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4mplIonisation.hh,v 1. 5 2007/05/23 08:50:41vnivanch Exp $27 // GEANT4 tag $Name: geant4-09-0 2$26 // $Id: G4mplIonisation.hh,v 1.6 2009/02/20 16:38:33 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $ 28 28 // 29 29 // ------------------------------------------------------------------- … … 72 72 virtual ~G4mplIonisation(); 73 73 74 G4bool IsApplicable(const G4ParticleDefinition& p);74 virtual G4bool IsApplicable(const G4ParticleDefinition& p); 75 75 76 76 // Print out of the class parameters … … 94 94 95 95 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 96 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....97 98 inline G4bool G4mplIonisation::IsApplicable(const G4ParticleDefinition& p)99 {100 return (p.GetParticleName() == "monopole");101 }102 103 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....104 96 105 97 #endif -
trunk/source/processes/electromagnetic/highenergy/include/G4mplIonisationModel.hh
r1007 r1055 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4mplIonisationModel.hh,v 1. 6 2007/11/13 18:36:29vnivanch Exp $27 // GEANT4 tag $Name: geant4-09-0 2$26 // $Id: G4mplIonisationModel.hh,v 1.7 2009/02/20 16:38:33 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $ 28 28 // 29 29 // ------------------------------------------------------------------- … … 120 120 121 121 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 122 123 inline void G4mplIonisationModel::SampleSecondaries(std::vector<G4DynamicParticle*>*,124 const G4MaterialCutsCouple*,125 const G4DynamicParticle*,126 G4double,127 G4double)128 {}129 130 inline G4double G4mplIonisationModel::Dispersion(131 const G4Material* material,132 const G4DynamicParticle* dp,133 G4double& tmax,134 G4double& length)135 {136 G4double siga = 0.0;137 G4double tau = dp->GetKineticEnergy()/mass;138 if(tau > 0.0) {139 G4double electronDensity = material->GetElectronDensity();140 G4double gam = tau + 1.0;141 G4double invbeta2 = (gam*gam)/(tau * (tau+2.0));142 siga = (invbeta2 - 0.5) * twopi_mc2_rcl2 * tmax * length143 * electronDensity * chargeSquare;144 }145 return siga;146 }147 148 149 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -
trunk/source/processes/electromagnetic/highenergy/src/G4BetheBlochNoDeltaModel.cc
r1007 r1055 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4BetheBlochNoDeltaModel.cc,v 1. 3 2006/06/29 19:32:36 gunterExp $27 // GEANT4 tag $Name: geant4-09-0 2$26 // $Id: G4BetheBlochNoDeltaModel.cc,v 1.4 2009/02/20 16:38:33 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $ 28 28 // 29 29 // ------------------------------------------------------------------- … … 58 58 {} 59 59 60 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 61 60 62 G4BetheBlochNoDeltaModel::~G4BetheBlochNoDeltaModel() 61 63 {} … … 63 65 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 64 66 67 G4double G4BetheBlochNoDeltaModel::ComputeDEDXPerVolume( 68 const G4Material* material, 69 const G4ParticleDefinition* pd, 70 G4double kinEnergy, G4double) 71 { 72 return 73 G4BetheBlochModel::ComputeDEDXPerVolume(material, pd, kinEnergy, DBL_MAX); 74 } 65 75 76 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 77 78 G4double G4BetheBlochNoDeltaModel::CrossSectionPerVolume( 79 const G4Material*,const G4ParticleDefinition*, 80 G4double, G4double, G4double) 81 { 82 return 0.0; 83 } 84 85 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 86 87 -
trunk/source/processes/electromagnetic/highenergy/src/G4BraggNoDeltaModel.cc
r1007 r1055 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4BraggNoDeltaModel.cc,v 1. 3 2006/06/29 19:32:38 gunterExp $27 // GEANT4 tag $Name: geant4-09-0 2$26 // $Id: G4BraggNoDeltaModel.cc,v 1.4 2009/02/20 16:38:33 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $ 28 28 // 29 29 // ------------------------------------------------------------------- … … 53 53 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 54 54 55 56 55 G4BraggNoDeltaModel::G4BraggNoDeltaModel(const G4ParticleDefinition*p, 57 56 const G4String& nam) : 58 57 G4BraggIonModel(p, nam) 59 58 {} 59 60 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 60 61 61 62 G4BraggNoDeltaModel::~G4BraggNoDeltaModel() … … 64 65 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 65 66 67 G4double G4BraggNoDeltaModel::ComputeDEDXPerVolume( 68 const G4Material* material, 69 const G4ParticleDefinition* pd, 70 G4double kinEnergy, G4double) 71 { 72 return 73 G4BraggIonModel::ComputeDEDXPerVolume(material, pd, kinEnergy, DBL_MAX); 74 } 66 75 76 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 77 78 G4double G4BraggNoDeltaModel::CrossSectionPerVolume( 79 const G4Material*, 80 const G4ParticleDefinition*, 81 G4double, G4double, G4double) 82 { 83 return 0.0; 84 } 85 86 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 87 88 -
trunk/source/processes/electromagnetic/highenergy/src/G4ee2KChargedModel.cc
r1007 r1055 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4ee2KChargedModel.cc,v 1. 1 2008/07/10 18:07:27vnivanch Exp $27 // GEANT4 tag $Name: geant4-09-0 2$26 // $Id: G4ee2KChargedModel.cc,v 1.2 2009/02/20 16:38:33 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $ 28 28 // 29 29 // ------------------------------------------------------------------- … … 75 75 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 76 76 77 G4double G4ee2KChargedModel::ThresholdEnergy() const 78 { 79 return 2.0*massK; 80 } 81 82 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 83 84 G4double G4ee2KChargedModel::PeakEnergy() const 85 { 86 return massPhi; 87 } 88 89 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 90 91 G4double G4ee2KChargedModel::ComputeCrossSection(G4double e) const 92 { 93 G4double ee = std::min(HighEnergy(),e); 94 return cross->CrossSection2Kcharged(ee); 95 } 96 97 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 98 77 99 G4PhysicsVector* G4ee2KChargedModel::PhysicsVector(G4double emin, 78 100 G4double emax) const -
trunk/source/processes/electromagnetic/highenergy/src/G4ee2KNeutralModel.cc
r1007 r1055 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4ee2KNeutralModel.cc,v 1. 1 2008/07/10 18:07:27vnivanch Exp $27 // GEANT4 tag $Name: geant4-09-0 2$26 // $Id: G4ee2KNeutralModel.cc,v 1.2 2009/02/20 16:38:33 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $ 28 28 // 29 29 // ------------------------------------------------------------------- … … 75 75 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 76 76 77 G4double G4ee2KNeutralModel::ThresholdEnergy() const 78 { 79 return 2.0*massK; 80 } 81 82 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 83 84 G4double G4ee2KNeutralModel::PeakEnergy() const 85 { 86 return massPhi; 87 } 88 89 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 90 91 G4double G4ee2KNeutralModel::ComputeCrossSection(G4double e) const 92 { 93 G4double ee = std::min(HighEnergy(),e); 94 return cross->CrossSection2Kneutral(ee); 95 } 96 97 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 98 77 99 G4PhysicsVector* G4ee2KNeutralModel::PhysicsVector(G4double emin, 78 100 G4double emax) const -
trunk/source/processes/electromagnetic/highenergy/src/G4eeTo3PiModel.cc
r1007 r1055 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4eeTo3PiModel.cc,v 1. 1 2008/07/10 18:07:27vnivanch Exp $27 // GEANT4 tag $Name: geant4-09-0 2$26 // $Id: G4eeTo3PiModel.cc,v 1.2 2009/02/20 16:38:33 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $ 28 28 // 29 29 // ------------------------------------------------------------------- … … 81 81 G4cout << "### G4eeTo3PiModel::~G4eeTo3PiModel: gmax= " 82 82 << gmax << " gcash= " << gcash << G4endl; 83 } 84 85 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 86 87 G4double G4eeTo3PiModel::ThresholdEnergy() const 88 { 89 return std::max(LowEnergy(),2.0*massPi + massPi0); 90 } 91 92 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 93 94 G4double G4eeTo3PiModel::PeakEnergy() const 95 { 96 G4double e = massOm; 97 if(HighEnergy() > massPhi) e = massPhi; 98 return e; 99 } 100 101 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 102 103 G4double G4eeTo3PiModel::ComputeCrossSection(G4double e) const 104 { 105 G4double ee = std::min(HighEnergy(),e); 106 return cross->CrossSection3pi(ee); 83 107 } 84 108 -
trunk/source/processes/electromagnetic/highenergy/src/G4eeToHadrons.cc
r1007 r1055 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4eeToHadrons.cc,v 1. 8 2008/10/16 14:29:48vnivanch Exp $27 // GEANT4 tag $Name: geant4-09-0 2$26 // $Id: G4eeToHadrons.cc,v 1.9 2009/02/20 16:38:33 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $ 28 28 // 29 29 // ------------------------------------------------------------------- … … 75 75 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 76 76 77 G4bool G4eeToHadrons::IsApplicable(const G4ParticleDefinition& p) 78 { 79 return (&p == G4Positron::Positron()); 80 } 81 82 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 83 77 84 void G4eeToHadrons::InitialiseProcess(const G4ParticleDefinition*) 78 85 { -
trunk/source/processes/electromagnetic/highenergy/src/G4eeToHadronsMultiModel.cc
r1007 r1055 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4eeToHadronsMultiModel.cc,v 1. 6 2008/07/11 17:49:11 vnivanch Exp $27 // GEANT4 tag $Name: geant4-09-0 2$26 // $Id: G4eeToHadronsMultiModel.cc,v 1.8 2009/04/12 17:48:21 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $ 28 28 // 29 29 // ------------------------------------------------------------------- … … 129 129 nModels = models.size(); 130 130 131 if(pParticleChange) { 132 fParticleChange = 133 reinterpret_cast<G4ParticleChangeForGamma*>(pParticleChange); 134 } else { 135 fParticleChange = new G4ParticleChangeForGamma(); 136 } 131 fParticleChange = GetParticleChangeForGamma(); 137 132 } 138 133 } -
trunk/source/processes/electromagnetic/highenergy/src/G4eeToPGammaModel.cc
r1007 r1055 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4eeToPGammaModel.cc,v 1. 1 2008/07/10 18:07:27vnivanch Exp $27 // GEANT4 tag $Name: geant4-09-0 2$26 // $Id: G4eeToPGammaModel.cc,v 1.2 2009/02/20 16:38:33 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $ 28 28 // 29 29 // ------------------------------------------------------------------- … … 83 83 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 84 84 85 G4double G4eeToPGammaModel::ThresholdEnergy() const 86 { 87 return LowEnergy(); 88 } 89 90 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 91 92 G4double G4eeToPGammaModel::PeakEnergy() const 93 { 94 return massR; 95 } 96 97 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 98 99 G4double G4eeToPGammaModel::ComputeCrossSection(G4double e) const 100 { 101 G4double ee = std::min(HighEnergy(),e); 102 G4double xs; 103 if(particle == pi0) xs = cross->CrossSectionPi0G(ee); 104 else xs = cross->CrossSectionEtaG(ee); 105 return xs; 106 } 107 108 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 109 85 110 G4PhysicsVector* G4eeToPGammaModel::PhysicsVector(G4double emin, 86 111 G4double emax) const -
trunk/source/processes/electromagnetic/highenergy/src/G4eeToTwoPiModel.cc
r1007 r1055 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4eeToTwoPiModel.cc,v 1. 6 2008/07/10 18:06:39vnivanch Exp $27 // GEANT4 tag $Name: geant4-09-0 2$26 // $Id: G4eeToTwoPiModel.cc,v 1.7 2009/02/20 16:38:33 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $ 28 28 // 29 29 // ------------------------------------------------------------------- … … 75 75 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 76 76 77 G4double G4eeToTwoPiModel::ThresholdEnergy() const 78 { 79 return 2.0*massPi; 80 } 81 82 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 83 84 G4double G4eeToTwoPiModel::PeakEnergy() const 85 { 86 return massRho; 87 } 88 89 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 90 91 G4double G4eeToTwoPiModel::ComputeCrossSection(G4double e) const 92 { 93 G4double ee = std::min(HighEnergy(),e); 94 return cross->CrossSection2pi(ee); 95 } 96 97 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 98 77 99 G4PhysicsVector* G4eeToTwoPiModel::PhysicsVector(G4double emin, 78 100 G4double emax) const -
trunk/source/processes/electromagnetic/highenergy/src/G4hBremsstrahlung.cc
r1007 r1055 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4hBremsstrahlung.cc,v 1. 3 2008/10/16 14:29:48vnivanch Exp $27 // GEANT4 tag $Name: geant4-09-0 2$26 // $Id: G4hBremsstrahlung.cc,v 1.4 2009/02/20 16:38:33 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $ 28 28 // 29 29 // ------------------------------------------------------------------- … … 72 72 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 73 73 74 G4bool G4hBremsstrahlung::IsApplicable(const G4ParticleDefinition& p) 75 { 76 return (p.GetPDGCharge() != 0.0 && p.GetPDGMass() > 110.0*MeV); 77 } 78 79 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 80 81 G4double G4hBremsstrahlung::MinPrimaryEnergy(const G4ParticleDefinition*, 82 const G4Material*, 83 G4double) 84 { 85 return lowestKinEnergy; 86 } 87 88 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 89 74 90 void G4hBremsstrahlung::InitialiseEnergyLossProcess( 75 91 const G4ParticleDefinition* part, -
trunk/source/processes/electromagnetic/highenergy/src/G4hPairProduction.cc
r1007 r1055 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4hPairProduction.cc,v 1. 3 2008/10/16 14:29:48vnivanch Exp $27 // GEANT4 tag $Name: geant4-09-0 2$26 // $Id: G4hPairProduction.cc,v 1.4 2009/02/20 16:38:33 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $ 28 28 // 29 29 // ------------------------------------------------------------------- … … 73 73 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 74 74 75 G4bool G4hPairProduction::IsApplicable(const G4ParticleDefinition& p) 76 { 77 return (p.GetPDGCharge() != 0.0 && p.GetPDGMass() > 110.0*MeV); 78 } 79 80 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 81 82 G4double G4hPairProduction::MinPrimaryEnergy(const G4ParticleDefinition*, 83 const G4Material*, 84 G4double) 85 { 86 return lowestKinEnergy; 87 } 88 89 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 90 75 91 void G4hPairProduction::InitialiseEnergyLossProcess( 76 92 const G4ParticleDefinition* part, -
trunk/source/processes/electromagnetic/highenergy/src/G4hhIonisation.cc
r1007 r1055 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4hhIonisation.cc,v 1. 8 2008/10/16 14:29:48vnivanch Exp $27 // GEANT4 tag $Name: geant4-09-0 2$26 // $Id: G4hhIonisation.cc,v 1.9 2009/02/20 16:38:33 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $ 28 28 // 29 29 // ------------------------------------------------------------------- … … 75 75 G4hhIonisation::~G4hhIonisation() 76 76 {} 77 78 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 79 80 G4bool G4hhIonisation::IsApplicable(const G4ParticleDefinition& p) 81 { 82 return (p.GetPDGCharge() != 0.0 && p.GetPDGMass() > 100.0*MeV && 83 !p.IsShortLived()); 84 } 85 86 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 87 88 G4double G4hhIonisation::MinPrimaryEnergy(const G4ParticleDefinition*, 89 const G4Material*, 90 G4double cut) 91 { 92 G4double x = 0.5*cut/electron_mass_c2; 93 G4double y = electron_mass_c2/mass; 94 G4double g = x*y + std::sqrt((1. + x)*(1. + x*y*y)); 95 return mass*(g - 1.0); 96 } 77 97 78 98 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -
trunk/source/processes/electromagnetic/highenergy/src/G4mplIonisation.cc
r1007 r1055 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4mplIonisation.cc,v 1. 7 2008/10/16 14:29:48vnivanch Exp $27 // GEANT4 tag $Name: geant4-09-0 2$26 // $Id: G4mplIonisation.cc,v 1.8 2009/02/20 16:38:33 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $ 28 28 // 29 29 // ------------------------------------------------------------------- … … 75 75 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 76 76 77 G4bool G4mplIonisation::IsApplicable(const G4ParticleDefinition& p) 78 { 79 return (p.GetParticleName() == "monopole"); 80 } 81 82 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 83 77 84 void G4mplIonisation::InitialiseEnergyLossProcess(const G4ParticleDefinition*, 78 85 const G4ParticleDefinition*) -
trunk/source/processes/electromagnetic/highenergy/src/G4mplIonisationModel.cc
r1007 r1055 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4mplIonisationModel.cc,v 1. 5 2007/11/13 18:36:29vnivanch Exp $27 // GEANT4 tag $Name: geant4-09-0 2$26 // $Id: G4mplIonisationModel.cc,v 1.7 2009/04/12 17:35:41 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $ 28 28 // 29 29 // ------------------------------------------------------------------- … … 79 79 chargeSquare = magCharge * magCharge; 80 80 dedxlim = 45.*nmpl*nmpl*GeV*cm2/g; 81 fParticleChange = 0; 81 82 } 82 83 … … 93 94 monopole = p; 94 95 mass = monopole->GetPDGMass(); 95 96 if(pParticleChange) 97 fParticleChange = reinterpret_cast<G4ParticleChangeForLoss*>(pParticleChange); 98 else 99 fParticleChange = new G4ParticleChangeForLoss(); 96 if(!fParticleChange) fParticleChange = GetParticleChangeForLoss(); 100 97 } 101 98 … … 139 136 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 140 137 141 G4double G4mplIonisationModel::ComputeDEDXAhlen(const G4Material* material, G4double bg2) 138 G4double G4mplIonisationModel::ComputeDEDXAhlen(const G4Material* material, 139 G4double bg2) 142 140 { 143 141 G4double eDensity = material->GetElectronDensity(); … … 176 174 return dedx; 177 175 } 176 177 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 178 179 void G4mplIonisationModel::SampleSecondaries(std::vector<G4DynamicParticle*>*, 180 const G4MaterialCutsCouple*, 181 const G4DynamicParticle*, 182 G4double, 183 G4double) 184 {} 178 185 179 186 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... … … 204 211 return loss; 205 212 } 213 214 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 215 216 G4double G4mplIonisationModel::Dispersion(const G4Material* material, 217 const G4DynamicParticle* dp, 218 G4double& tmax, 219 G4double& length) 220 { 221 G4double siga = 0.0; 222 G4double tau = dp->GetKineticEnergy()/mass; 223 if(tau > 0.0) { 224 G4double electronDensity = material->GetElectronDensity(); 225 G4double gam = tau + 1.0; 226 G4double invbeta2 = (gam*gam)/(tau * (tau+2.0)); 227 siga = (invbeta2 - 0.5) * twopi_mc2_rcl2 * tmax * length 228 * electronDensity * chargeSquare; 229 } 230 return siga; 231 } 232 233 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
Note: See TracChangeset
for help on using the changeset viewer.