Changeset 991 for trunk/source/processes/electromagnetic/muons
- Timestamp:
- Apr 17, 2009, 12:17:14 PM (15 years ago)
- Location:
- trunk/source/processes/electromagnetic/muons
- Files:
-
- 17 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/source/processes/electromagnetic/muons/History
r961 r991 1 $Id: History,v 1.12 6 2009/02/26 11:04:20vnivanch Exp $1 $Id: History,v 1.124 2008/11/13 14:14:07 vnivanch Exp $ 2 2 ------------------------------------------------------------------- 3 3 … … 17 17 * Reverse chronological order (last date on top), please * 18 18 ---------------------------------------------------------- 19 20 26 February 09: V.Ivant (emmuons-V09-02-01)21 G4MuIonisation - fixed initialisation alowing to configure external model22 of fluctuations23 24 20 February 09: V.Ivant (emmuons-V09-02-00)25 - Cleanup: improved comments, move virtual methods from .hh to .cc26 19 27 20 12 November 08: V.Ivant (emmuons-V09-01-15) -
trunk/source/processes/electromagnetic/muons/include/G4EnergyLossForExtrapolator.hh
r961 r991 25 25 // 26 26 // $Id: G4EnergyLossForExtrapolator.hh,v 1.12 2008/11/13 14:14: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/muons/include/G4MuBetheBlochModel.hh
r961 r991 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4MuBetheBlochModel.hh,v 1.1 8 2009/02/20 14:48:16vnivanch Exp $27 // GEANT4 tag $Name: geant4-09-02 -ref-02$26 // $Id: G4MuBetheBlochModel.hh,v 1.17 2007/05/22 17:35:58 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02 $ 28 28 // 29 29 // ------------------------------------------------------------------- … … 76 76 virtual ~G4MuBetheBlochModel(); 77 77 78 v irtual void Initialise(const G4ParticleDefinition*, const G4DataVector&);78 void Initialise(const G4ParticleDefinition*, const G4DataVector&); 79 79 80 virtualG4double MinEnergyCut(const G4ParticleDefinition*,81 80 G4double MinEnergyCut(const G4ParticleDefinition*, 81 const G4MaterialCutsCouple*); 82 82 83 83 virtual G4double ComputeCrossSectionPerElectron( … … 113 113 protected: 114 114 115 virtualG4double MaxSecondaryEnergy(const G4ParticleDefinition*,116 115 G4double MaxSecondaryEnergy(const G4ParticleDefinition*, 116 G4double kinEnergy); 117 117 118 118 private: 119 119 120 inlinevoid SetParticle(const G4ParticleDefinition* p);120 void SetParticle(const G4ParticleDefinition* p); 121 121 122 122 // hide assignment operator … … 141 141 }; 142 142 143 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo..... .143 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo..... 144 144 145 inline void G4MuBetheBlochModel::SetParticle(const G4ParticleDefinition* p) 145 inline G4double G4MuBetheBlochModel::MaxSecondaryEnergy( 146 const G4ParticleDefinition*, 147 G4double kinEnergy) 146 148 { 147 if(!particle) { 148 particle = p; 149 mass = particle->GetPDGMass(); 150 massSquare = mass*mass; 151 ratio = electron_mass_c2/mass; 152 } 149 G4double tau = kinEnergy/mass; 150 G4double tmax = 2.0*electron_mass_c2*tau*(tau + 2.) / 151 (1. + 2.0*(tau + 1.)*ratio + ratio*ratio); 152 return tmax; 153 153 } 154 154 -
trunk/source/processes/electromagnetic/muons/include/G4MuBremsstrahlung.hh
r961 r991 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4MuBremsstrahlung.hh,v 1.3 1 2009/02/20 14:48:16vnivanch Exp $27 // GEANT4 tag $Name: geant4-09-02 -ref-02$26 // $Id: G4MuBremsstrahlung.hh,v 1.30 2008/02/29 17:50:05 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02 $ 28 28 // 29 29 // ------------------------------------------------------------------- … … 86 86 virtual ~G4MuBremsstrahlung(); 87 87 88 virtualG4bool IsApplicable(const G4ParticleDefinition& p);88 G4bool IsApplicable(const G4ParticleDefinition& p); 89 89 90 virtualG4double MinPrimaryEnergy(const G4ParticleDefinition* p,91 92 90 G4double MinPrimaryEnergy(const G4ParticleDefinition* p, 91 const G4Material*, 92 G4double cut); 93 93 94 94 // Print out of the class parameters 95 v irtual void PrintInfo();95 void PrintInfo(); 96 96 97 97 protected: 98 98 99 v irtual void InitialiseEnergyLossProcess(const G4ParticleDefinition*,100 99 void InitialiseEnergyLossProcess(const G4ParticleDefinition*, 100 const G4ParticleDefinition*); 101 101 102 102 private: … … 114 114 115 115 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 116 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 117 118 inline 119 G4bool G4MuBremsstrahlung::IsApplicable(const G4ParticleDefinition& p) 120 { 121 return (p.GetPDGCharge() != 0.0 && p.GetPDGMass() > 10.0*MeV); 122 } 123 124 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 125 126 inline 127 G4double G4MuBremsstrahlung::MinPrimaryEnergy(const G4ParticleDefinition*, 128 const G4Material*, 129 G4double) 130 { 131 return lowestKinEnergy; 132 } 133 134 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 116 135 117 136 #endif -
trunk/source/processes/electromagnetic/muons/include/G4MuBremsstrahlungModel.hh
r961 r991 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4MuBremsstrahlungModel.hh,v 1.2 2 2009/02/20 14:48:16vnivanch Exp $27 // GEANT4 tag $Name: geant4-09-02 -ref-02$26 // $Id: G4MuBremsstrahlungModel.hh,v 1.21 2008/07/22 16:11:34 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02 $ 28 28 // 29 29 // ------------------------------------------------------------------- … … 78 78 virtual ~G4MuBremsstrahlungModel(); 79 79 80 virtual void Initialise(const G4ParticleDefinition*, const G4DataVector&); 81 82 virtual G4double MinEnergyCut(const G4ParticleDefinition*, 83 const G4MaterialCutsCouple*); 80 void SetParticle(const G4ParticleDefinition*); 81 82 void Initialise(const G4ParticleDefinition*, const G4DataVector&); 83 84 G4double MinEnergyCut(const G4ParticleDefinition*, 85 const G4MaterialCutsCouple*); 84 86 85 87 virtual G4double ComputeCrossSectionPerAtom( … … 95 97 G4double cutEnergy); 96 98 97 v irtual void SampleSecondaries(std::vector<G4DynamicParticle*>*,98 99 100 101 99 void SampleSecondaries(std::vector<G4DynamicParticle*>*, 100 const G4MaterialCutsCouple*, 101 const G4DynamicParticle*, 102 G4double tmin, 103 G4double maxEnergy); 102 104 103 105 inline void SetLowestKineticEnergy(G4double e); … … 115 117 G4double gammaEnergy); 116 118 117 inline void SetParticle(const G4ParticleDefinition*); 119 G4double MaxSecondaryEnergy(const G4ParticleDefinition*, 120 G4double kineticEnergy); 118 121 119 122 private: … … 157 160 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 158 161 162 inline 163 G4double G4MuBremsstrahlungModel::MaxSecondaryEnergy(const G4ParticleDefinition*, 164 G4double kineticEnergy) 165 { 166 return kineticEnergy; 167 } 168 169 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 170 159 171 inline void G4MuBremsstrahlungModel::SetLowestKineticEnergy(G4double e) 160 172 { 161 173 lowestKinEnergy = e; 174 } 175 176 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 177 178 inline 179 G4double G4MuBremsstrahlungModel::MinEnergyCut(const G4ParticleDefinition*, 180 const G4MaterialCutsCouple*) 181 { 182 return minThreshold; 162 183 } 163 184 -
trunk/source/processes/electromagnetic/muons/include/G4MuIonisation.hh
r961 r991 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4MuIonisation.hh,v 1.3 1 2009/02/20 14:48:16vnivanch Exp $27 // GEANT4 tag $Name: geant4-09-02 -ref-02$26 // $Id: G4MuIonisation.hh,v 1.30 2007/05/23 08:49:32 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02 $ 28 28 // 29 29 // ------------------------------------------------------------------- … … 95 95 virtual ~G4MuIonisation(); 96 96 97 virtualG4bool IsApplicable(const G4ParticleDefinition& p);97 G4bool IsApplicable(const G4ParticleDefinition& p); 98 98 99 virtualG4double MinPrimaryEnergy(const G4ParticleDefinition* p,100 99 G4double MinPrimaryEnergy(const G4ParticleDefinition* p, 100 const G4Material*, G4double cut); 101 101 102 102 // Print out of the class parameters 103 v irtual void PrintInfo();103 void PrintInfo(); 104 104 105 105 protected: … … 127 127 128 128 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 129 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 130 131 inline G4bool G4MuIonisation::IsApplicable(const G4ParticleDefinition& p) 132 { 133 return (p.GetPDGCharge() != 0.0 && p.GetPDGMass() > 10.0*MeV); 134 } 135 136 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 137 138 inline G4double G4MuIonisation::MinPrimaryEnergy(const G4ParticleDefinition*, 139 const G4Material*, 140 G4double cut) 141 { 142 G4double x = 0.5*cut/electron_mass_c2; 143 G4double g = x*ratio + std::sqrt((1. + x)*(1. + x*ratio*ratio)); 144 return mass*(g - 1.0); 145 } 146 147 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 129 148 130 149 #endif -
trunk/source/processes/electromagnetic/muons/include/G4MuMultipleScattering.hh
r961 r991 25 25 // 26 26 // $Id: G4MuMultipleScattering.hh,v 1.2 2008/04/13 17:19:13 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/muons/include/G4MuPairProduction.hh
r961 r991 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4MuPairProduction.hh,v 1.3 1 2009/02/20 14:48:16vnivanch Exp $27 // GEANT4 tag $Name: geant4-09-02 -ref-02$26 // $Id: G4MuPairProduction.hh,v 1.30 2008/02/29 17:50:05 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02 $ 28 28 // 29 29 // ------------------------------------------------------------------- … … 84 84 virtual ~G4MuPairProduction(); 85 85 86 virtualG4bool IsApplicable(const G4ParticleDefinition& p);86 G4bool IsApplicable(const G4ParticleDefinition& p); 87 87 88 virtualG4double MinPrimaryEnergy(const G4ParticleDefinition* p,89 88 G4double MinPrimaryEnergy(const G4ParticleDefinition* p, 89 const G4Material*, G4double cut); 90 90 91 91 // Print out of the class parameters 92 v irtual void PrintInfo();92 void PrintInfo(); 93 93 94 94 protected: 95 95 96 v irtual void InitialiseEnergyLossProcess(const G4ParticleDefinition*,97 96 void InitialiseEnergyLossProcess(const G4ParticleDefinition*, 97 const G4ParticleDefinition*); 98 98 99 99 private: … … 113 113 114 114 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 115 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 116 117 inline 118 G4bool G4MuPairProduction::IsApplicable(const G4ParticleDefinition& p) 119 { 120 return (p.GetPDGCharge() != 0.0 && p.GetPDGMass() > 10.0*MeV); 121 } 122 123 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 124 125 inline 126 G4double G4MuPairProduction::MinPrimaryEnergy(const G4ParticleDefinition*, 127 const G4Material*, 128 G4double) 129 { 130 return lowestKinEnergy; 131 } 132 133 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 115 134 116 135 #endif -
trunk/source/processes/electromagnetic/muons/include/G4MuPairProductionModel.hh
r961 r991 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4MuPairProductionModel.hh,v 1.2 8 2009/02/20 14:48:16vnivanch Exp $27 // GEANT4 tag $Name: geant4-09-02 -ref-02$26 // $Id: G4MuPairProductionModel.hh,v 1.27 2008/07/22 16:11:34 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02 $ 28 28 // 29 29 // ------------------------------------------------------------------- … … 79 79 virtual ~G4MuPairProductionModel(); 80 80 81 v irtual void Initialise(const G4ParticleDefinition*, const G4DataVector&);81 void Initialise(const G4ParticleDefinition*, const G4DataVector&); 82 82 83 83 … … 100 100 G4double maxEnergy); 101 101 102 virtual G4double MinEnergyCut(const G4ParticleDefinition*, 102 inline void SetLowestKineticEnergy(G4double e); 103 104 inline G4double MinEnergyCut(const G4ParticleDefinition*, 103 105 const G4MaterialCutsCouple*); 104 105 inline void SetLowestKineticEnergy(G4double e);106 106 107 107 inline void SetParticle(const G4ParticleDefinition*); … … 120 120 G4double pairEnergy); 121 121 122 virtualG4double MaxSecondaryEnergy(const G4ParticleDefinition*,123 122 inline G4double MaxSecondaryEnergy(const G4ParticleDefinition*, 123 G4double kineticEnergy); 124 124 125 125 inline void SetCurrentElement(G4double Z); … … 193 193 194 194 inline 195 G4double G4MuPairProductionModel::MinEnergyCut(const G4ParticleDefinition*, 196 const G4MaterialCutsCouple* ) 197 { 198 return minPairEnergy; 199 } 200 201 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 202 203 inline 195 204 void G4MuPairProductionModel::SetParticle(const G4ParticleDefinition* p) 196 205 { … … 199 208 particleMass = particle->GetPDGMass(); 200 209 } 210 } 211 212 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 213 214 inline G4double G4MuPairProductionModel::MaxSecondaryEnergy( 215 const G4ParticleDefinition*, 216 G4double kineticEnergy) 217 { 218 G4double maxPairEnergy = kineticEnergy + particleMass*(1.0 - 0.75*sqrte*z13); 219 return maxPairEnergy; 201 220 } 202 221 -
trunk/source/processes/electromagnetic/muons/src/G4EnergyLossForExtrapolator.cc
r961 r991 25 25 // 26 26 // $Id: G4EnergyLossForExtrapolator.cc,v 1.18 2008/11/13 14:14: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/muons/src/G4MuBetheBlochModel.cc
r961 r991 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4MuBetheBlochModel.cc,v 1.2 5 2009/02/20 14:48:16vnivanch Exp $27 // GEANT4 tag $Name: geant4-09-02 -ref-02$26 // $Id: G4MuBetheBlochModel.cc,v 1.24 2008/03/25 12:31:04 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02 $ 28 28 // 29 29 // ------------------------------------------------------------------- … … 88 88 theElectron = G4Electron::Electron(); 89 89 corr = G4LossTableManager::Instance()->EmCorrections(); 90 fParticleChange = 0;91 90 92 91 if(p) SetParticle(p); … … 100 99 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 101 100 101 void G4MuBetheBlochModel::SetParticle(const G4ParticleDefinition* p) 102 { 103 if(!particle) { 104 particle = p; 105 mass = particle->GetPDGMass(); 106 massSquare = mass*mass; 107 ratio = electron_mass_c2/mass; 108 } 109 } 110 111 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 112 102 113 G4double G4MuBetheBlochModel::MinEnergyCut(const G4ParticleDefinition*, 103 114 const G4MaterialCutsCouple* couple) … … 106 117 } 107 118 108 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.....109 110 G4double G4MuBetheBlochModel::MaxSecondaryEnergy(const G4ParticleDefinition*,111 G4double kinEnergy)112 {113 G4double tau = kinEnergy/mass;114 G4double tmax = 2.0*electron_mass_c2*tau*(tau + 2.) /115 (1. + 2.0*(tau + 1.)*ratio + ratio*ratio);116 return tmax;117 }118 119 119 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 120 120 … … 124 124 if(p) SetParticle(p); 125 125 126 if(!fParticleChange) { 127 if(pParticleChange) { 128 fParticleChange = 129 reinterpret_cast<G4ParticleChangeForLoss*>(pParticleChange); 130 } else { 131 fParticleChange = new G4ParticleChangeForLoss(); 132 } 133 } 126 if(pParticleChange) 127 fParticleChange = reinterpret_cast<G4ParticleChangeForLoss*> 128 (pParticleChange); 129 else 130 fParticleChange = new G4ParticleChangeForLoss(); 134 131 } 135 132 -
trunk/source/processes/electromagnetic/muons/src/G4MuBremsstrahlung.cc
r961 r991 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4MuBremsstrahlung.cc,v 1.4 2 2009/02/20 14:48:16vnivanch Exp $27 // GEANT4 tag $Name: geant4-09-02 -ref-02$26 // $Id: G4MuBremsstrahlung.cc,v 1.41 2008/10/16 13:37:04 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02 $ 28 28 // 29 29 // ------------------------------------------------------------------- … … 93 93 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 94 94 95 G4bool G4MuBremsstrahlung::IsApplicable(const G4ParticleDefinition& p)96 {97 return (p.GetPDGCharge() != 0.0 && p.GetPDGMass() > 10.0*MeV);98 }99 100 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....101 102 G4double G4MuBremsstrahlung::MinPrimaryEnergy(const G4ParticleDefinition*,103 const G4Material*,104 G4double)105 {106 return lowestKinEnergy;107 }108 109 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....110 111 95 void G4MuBremsstrahlung::InitialiseEnergyLossProcess( 112 96 const G4ParticleDefinition* part, -
trunk/source/processes/electromagnetic/muons/src/G4MuBremsstrahlungModel.cc
r961 r991 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4MuBremsstrahlungModel.cc,v 1.3 3 2009/02/20 14:48:16vnivanch Exp $27 // GEANT4 tag $Name: geant4-09-02 -ref-02$26 // $Id: G4MuBremsstrahlungModel.cc,v 1.32 2008/07/22 16:11:34 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02 $ 28 28 // 29 29 // ------------------------------------------------------------------- … … 111 111 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 112 112 113 G4double G4MuBremsstrahlungModel::MinEnergyCut(const G4ParticleDefinition*,114 const G4MaterialCutsCouple*)115 {116 return minThreshold;117 }118 119 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......120 121 113 void G4MuBremsstrahlungModel::Initialise(const G4ParticleDefinition* p, 122 114 const G4DataVector& cuts) … … 139 131 if(nn > 0) { 140 132 for (G4int ii=0; ii<nn; ii++){ 141 G4DataVector* a =partialSumSigma[ii];133 G4DataVector* a=partialSumSigma[ii]; 142 134 if ( a ) delete a; 143 135 } -
trunk/source/processes/electromagnetic/muons/src/G4MuIonisation.cc
r961 r991 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4MuIonisation.cc,v 1.5 9 2009/02/26 11:04:20vnivanch Exp $27 // GEANT4 tag $Name: geant4-09-02 -ref-02$26 // $Id: G4MuIonisation.cc,v 1.57 2008/10/27 10:55:07 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02 $ 28 28 // 29 29 // ------------------------------------------------------------------- … … 86 86 #include "G4MuBetheBlochModel.hh" 87 87 #include "G4UniversalFluctuation.hh" 88 #include "G4IonFluctuations.hh"89 88 #include "G4BohrFluctuations.hh" 90 89 #include "G4UnitsTable.hh" … … 113 112 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 114 113 115 G4bool G4MuIonisation::IsApplicable(const G4ParticleDefinition& p)116 {117 return (p.GetPDGCharge() != 0.0 && p.GetPDGMass() > 10.0*MeV);118 }119 120 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....121 122 G4double G4MuIonisation::MinPrimaryEnergy(const G4ParticleDefinition*,123 const G4Material*,124 G4double cut)125 {126 G4double x = 0.5*cut/electron_mass_c2;127 G4double g = x*ratio + std::sqrt((1. + x)*(1. + x*ratio*ratio));128 return mass*(g - 1.0);129 }130 131 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....132 133 114 void G4MuIonisation::InitialiseEnergyLossProcess(const G4ParticleDefinition* part, 134 115 const G4ParticleDefinition* bpart) … … 142 123 SetSecondaryParticle(G4Electron::Electron()); 143 124 144 // Bragg peak model 145 if (!EmModel(1)) SetEmModel(new G4BraggModel(),1); 146 EmModel(1)->SetLowEnergyLimit(MinKinEnergy()); 147 EmModel(1)->SetHighEnergyLimit(0.2*MeV); 148 AddEmModel(1, EmModel(1), new G4IonFluctuations()); 125 flucModel = new G4UniversalFluctuation(); 149 126 150 // high energy fluctuation model 151 if (!FluctModel()) SetFluctModel(new G4UniversalFluctuation()); 152 153 // moderate energy model 154 if (!EmModel(2)) SetEmModel(new G4BetheBlochModel(),2); 155 EmModel(2)->SetLowEnergyLimit(0.2*MeV); 156 EmModel(2)->SetHighEnergyLimit(1.0*GeV); 157 AddEmModel(2, EmModel(2), FluctModel()); 158 159 // high energy model 160 if (!EmModel(3)) SetEmModel(new G4MuBetheBlochModel(),3); 161 EmModel(3)->SetLowEnergyLimit(1.0*GeV); 162 EmModel(3)->SetHighEnergyLimit(MaxKinEnergy()); 163 AddEmModel(3, EmModel(3), FluctModel()); 127 G4VEmModel* em = new G4BraggModel(); 128 em->SetLowEnergyLimit(MinKinEnergy()); 129 em->SetHighEnergyLimit(0.2*MeV); 130 AddEmModel(1, em, flucModel); 131 G4VEmModel* em1 = new G4BetheBlochModel(); 132 em1->SetLowEnergyLimit(0.2*MeV); 133 em1->SetHighEnergyLimit(1.0*GeV); 134 AddEmModel(2, em1, flucModel); 135 G4VEmModel* em2 = new G4MuBetheBlochModel(); 136 em2->SetLowEnergyLimit(1.0*GeV); 137 em2->SetHighEnergyLimit(MaxKinEnergy()); 138 AddEmModel(3, em2, flucModel); 164 139 165 140 ratio = electron_mass_c2/mass; -
trunk/source/processes/electromagnetic/muons/src/G4MuMultipleScattering.cc
r961 r991 25 25 // 26 26 // $Id: G4MuMultipleScattering.cc,v 1.12 2008/10/16 13:37:04 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/muons/src/G4MuPairProduction.cc
r961 r991 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4MuPairProduction.cc,v 1.5 2 2009/02/20 14:48:16vnivanch Exp $27 // GEANT4 tag $Name: geant4-09-02 -ref-02$26 // $Id: G4MuPairProduction.cc,v 1.51 2008/10/16 13:37:04 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02 $ 28 28 // 29 29 // ------------------------------------------------------------------- … … 100 100 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 101 101 102 G4bool G4MuPairProduction::IsApplicable(const G4ParticleDefinition& p)103 {104 return (p.GetPDGCharge() != 0.0 && p.GetPDGMass() > 10.0*MeV);105 }106 107 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....108 109 G4double G4MuPairProduction::MinPrimaryEnergy(const G4ParticleDefinition*,110 const G4Material*,111 G4double)112 {113 return lowestKinEnergy;114 }115 116 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....117 118 102 void G4MuPairProduction::InitialiseEnergyLossProcess( 119 103 const G4ParticleDefinition* part, -
trunk/source/processes/electromagnetic/muons/src/G4MuPairProductionModel.cc
r961 r991 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4MuPairProductionModel.cc,v 1. 40 2009/02/20 14:48:16vnivanch Exp $27 // GEANT4 tag $Name: geant4-09-02 -ref-02$26 // $Id: G4MuPairProductionModel.cc,v 1.39 2008/07/22 16:11:34 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02 $ 28 28 // 29 29 // ------------------------------------------------------------------- … … 137 137 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 138 138 139 G4double G4MuPairProductionModel::MinEnergyCut(const G4ParticleDefinition*,140 const G4MaterialCutsCouple* )141 {142 return minPairEnergy;143 }144 145 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......146 147 G4double G4MuPairProductionModel::MaxSecondaryEnergy(const G4ParticleDefinition*,148 G4double kineticEnergy)149 {150 G4double maxPairEnergy = kineticEnergy + particleMass*(1.0 - 0.75*sqrte*z13);151 return maxPairEnergy;152 }153 154 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......155 156 139 void G4MuPairProductionModel::Initialise(const G4ParticleDefinition* p, 157 140 const G4DataVector&)
Note: See TracChangeset
for help on using the changeset viewer.