Changeset 1005 for trunk/source/processes/electromagnetic/muons
- Timestamp:
- Apr 20, 2009, 4:53:50 PM (15 years ago)
- Location:
- trunk/source/processes/electromagnetic/muons
- Files:
-
- 13 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/source/processes/electromagnetic/muons/History
r991 r1005 1 $Id: History,v 1.12 4 2008/11/13 14:14:07vnivanch Exp $1 $Id: History,v 1.126 2009/02/26 11:04:20 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 model 22 of fluctuations 23 24 20 February 09: V.Ivant (emmuons-V09-02-00) 25 - Cleanup: improved comments, move virtual methods from .hh to .cc 19 26 20 27 12 November 08: V.Ivant (emmuons-V09-01-15) -
trunk/source/processes/electromagnetic/muons/include/G4MuBetheBlochModel.hh
r991 r1005 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4MuBetheBlochModel.hh,v 1.1 7 2007/05/22 17:35:58vnivanch Exp $27 // GEANT4 tag $Name: geant4-09-02 $26 // $Id: G4MuBetheBlochModel.hh,v 1.18 2009/02/20 14:48:16 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02-ref-02 $ 28 28 // 29 29 // ------------------------------------------------------------------- … … 76 76 virtual ~G4MuBetheBlochModel(); 77 77 78 v oid Initialise(const G4ParticleDefinition*, const G4DataVector&);78 virtual void Initialise(const G4ParticleDefinition*, const G4DataVector&); 79 79 80 G4double MinEnergyCut(const G4ParticleDefinition*,81 80 virtual G4double MinEnergyCut(const G4ParticleDefinition*, 81 const G4MaterialCutsCouple*); 82 82 83 83 virtual G4double ComputeCrossSectionPerElectron( … … 113 113 protected: 114 114 115 G4double MaxSecondaryEnergy(const G4ParticleDefinition*,116 115 virtual G4double MaxSecondaryEnergy(const G4ParticleDefinition*, 116 G4double kinEnergy); 117 117 118 118 private: 119 119 120 void SetParticle(const G4ParticleDefinition* p);120 inline 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 G4double G4MuBetheBlochModel::MaxSecondaryEnergy( 146 const G4ParticleDefinition*, 147 G4double kinEnergy) 145 inline void G4MuBetheBlochModel::SetParticle(const G4ParticleDefinition* p) 148 146 { 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; 147 if(!particle) { 148 particle = p; 149 mass = particle->GetPDGMass(); 150 massSquare = mass*mass; 151 ratio = electron_mass_c2/mass; 152 } 153 153 } 154 154 -
trunk/source/processes/electromagnetic/muons/include/G4MuBremsstrahlung.hh
r991 r1005 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4MuBremsstrahlung.hh,v 1.3 0 2008/02/29 17:50:05vnivanch Exp $27 // GEANT4 tag $Name: geant4-09-02 $26 // $Id: G4MuBremsstrahlung.hh,v 1.31 2009/02/20 14:48:16 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02-ref-02 $ 28 28 // 29 29 // ------------------------------------------------------------------- … … 86 86 virtual ~G4MuBremsstrahlung(); 87 87 88 G4bool IsApplicable(const G4ParticleDefinition& p);88 virtual G4bool IsApplicable(const G4ParticleDefinition& p); 89 89 90 G4double MinPrimaryEnergy(const G4ParticleDefinition* p,91 const G4Material*,92 G4double cut);90 virtual G4double MinPrimaryEnergy(const G4ParticleDefinition* p, 91 const G4Material*, 92 G4double cut); 93 93 94 94 // Print out of the class parameters 95 v oid PrintInfo();95 virtual void PrintInfo(); 96 96 97 97 protected: 98 98 99 v oid InitialiseEnergyLossProcess(const G4ParticleDefinition*,100 const G4ParticleDefinition*);99 virtual 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 inline119 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 inline127 G4double G4MuBremsstrahlung::MinPrimaryEnergy(const G4ParticleDefinition*,128 const G4Material*,129 G4double)130 {131 return lowestKinEnergy;132 }133 134 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....135 116 136 117 #endif -
trunk/source/processes/electromagnetic/muons/include/G4MuBremsstrahlungModel.hh
r991 r1005 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4MuBremsstrahlungModel.hh,v 1.2 1 2008/07/22 16:11:34vnivanch Exp $27 // GEANT4 tag $Name: geant4-09-02 $26 // $Id: G4MuBremsstrahlungModel.hh,v 1.22 2009/02/20 14:48:16 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02-ref-02 $ 28 28 // 29 29 // ------------------------------------------------------------------- … … 78 78 virtual ~G4MuBremsstrahlungModel(); 79 79 80 v oid SetParticle(const G4ParticleDefinition*);80 virtual void Initialise(const G4ParticleDefinition*, const G4DataVector&); 81 81 82 void Initialise(const G4ParticleDefinition*, const G4DataVector&); 83 84 G4double MinEnergyCut(const G4ParticleDefinition*, 85 const G4MaterialCutsCouple*); 82 virtual G4double MinEnergyCut(const G4ParticleDefinition*, 83 const G4MaterialCutsCouple*); 86 84 87 85 virtual G4double ComputeCrossSectionPerAtom( … … 97 95 G4double cutEnergy); 98 96 99 v oid SampleSecondaries(std::vector<G4DynamicParticle*>*,100 const G4MaterialCutsCouple*,101 const G4DynamicParticle*,102 G4double tmin,103 G4double maxEnergy);97 virtual void SampleSecondaries(std::vector<G4DynamicParticle*>*, 98 const G4MaterialCutsCouple*, 99 const G4DynamicParticle*, 100 G4double tmin, 101 G4double maxEnergy); 104 102 105 103 inline void SetLowestKineticEnergy(G4double e); … … 117 115 G4double gammaEnergy); 118 116 119 G4double MaxSecondaryEnergy(const G4ParticleDefinition*, 120 G4double kineticEnergy); 117 inline void SetParticle(const G4ParticleDefinition*); 121 118 122 119 private: … … 160 157 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 161 158 162 inline163 G4double G4MuBremsstrahlungModel::MaxSecondaryEnergy(const G4ParticleDefinition*,164 G4double kineticEnergy)165 {166 return kineticEnergy;167 }168 169 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......170 171 159 inline void G4MuBremsstrahlungModel::SetLowestKineticEnergy(G4double e) 172 160 { 173 161 lowestKinEnergy = e; 174 }175 176 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......177 178 inline179 G4double G4MuBremsstrahlungModel::MinEnergyCut(const G4ParticleDefinition*,180 const G4MaterialCutsCouple*)181 {182 return minThreshold;183 162 } 184 163 -
trunk/source/processes/electromagnetic/muons/include/G4MuIonisation.hh
r991 r1005 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4MuIonisation.hh,v 1.3 0 2007/05/23 08:49:32vnivanch Exp $27 // GEANT4 tag $Name: geant4-09-02 $26 // $Id: G4MuIonisation.hh,v 1.31 2009/02/20 14:48:16 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02-ref-02 $ 28 28 // 29 29 // ------------------------------------------------------------------- … … 95 95 virtual ~G4MuIonisation(); 96 96 97 G4bool IsApplicable(const G4ParticleDefinition& p);97 virtual G4bool IsApplicable(const G4ParticleDefinition& p); 98 98 99 G4double MinPrimaryEnergy(const G4ParticleDefinition* p,100 const G4Material*, G4double cut);99 virtual G4double MinPrimaryEnergy(const G4ParticleDefinition* p, 100 const G4Material*, G4double cut); 101 101 102 102 // Print out of the class parameters 103 v oid PrintInfo();103 virtual 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....148 129 149 130 #endif -
trunk/source/processes/electromagnetic/muons/include/G4MuPairProduction.hh
r991 r1005 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4MuPairProduction.hh,v 1.3 0 2008/02/29 17:50:05vnivanch Exp $27 // GEANT4 tag $Name: geant4-09-02 $26 // $Id: G4MuPairProduction.hh,v 1.31 2009/02/20 14:48:16 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02-ref-02 $ 28 28 // 29 29 // ------------------------------------------------------------------- … … 84 84 virtual ~G4MuPairProduction(); 85 85 86 G4bool IsApplicable(const G4ParticleDefinition& p);86 virtual G4bool IsApplicable(const G4ParticleDefinition& p); 87 87 88 G4double MinPrimaryEnergy(const G4ParticleDefinition* p,89 const G4Material*, G4double cut);88 virtual G4double MinPrimaryEnergy(const G4ParticleDefinition* p, 89 const G4Material*, G4double cut); 90 90 91 91 // Print out of the class parameters 92 v oid PrintInfo();92 virtual void PrintInfo(); 93 93 94 94 protected: 95 95 96 v oid InitialiseEnergyLossProcess(const G4ParticleDefinition*,97 const G4ParticleDefinition*);96 virtual 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 inline118 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 inline126 G4double G4MuPairProduction::MinPrimaryEnergy(const G4ParticleDefinition*,127 const G4Material*,128 G4double)129 {130 return lowestKinEnergy;131 }132 133 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....134 115 135 116 #endif -
trunk/source/processes/electromagnetic/muons/include/G4MuPairProductionModel.hh
r991 r1005 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4MuPairProductionModel.hh,v 1.2 7 2008/07/22 16:11:34vnivanch Exp $27 // GEANT4 tag $Name: geant4-09-02 $26 // $Id: G4MuPairProductionModel.hh,v 1.28 2009/02/20 14:48:16 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02-ref-02 $ 28 28 // 29 29 // ------------------------------------------------------------------- … … 79 79 virtual ~G4MuPairProductionModel(); 80 80 81 v oid Initialise(const G4ParticleDefinition*, const G4DataVector&);81 virtual void Initialise(const G4ParticleDefinition*, const G4DataVector&); 82 82 83 83 … … 100 100 G4double maxEnergy); 101 101 102 virtual G4double MinEnergyCut(const G4ParticleDefinition*, 103 const G4MaterialCutsCouple*); 104 102 105 inline void SetLowestKineticEnergy(G4double e); 103 104 inline G4double MinEnergyCut(const G4ParticleDefinition*,105 const G4MaterialCutsCouple*);106 106 107 107 inline void SetParticle(const G4ParticleDefinition*); … … 120 120 G4double pairEnergy); 121 121 122 inlineG4double MaxSecondaryEnergy(const G4ParticleDefinition*,123 G4double kineticEnergy);122 virtual 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 inline204 195 void G4MuPairProductionModel::SetParticle(const G4ParticleDefinition* p) 205 196 { … … 208 199 particleMass = particle->GetPDGMass(); 209 200 } 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;220 201 } 221 202 -
trunk/source/processes/electromagnetic/muons/src/G4MuBetheBlochModel.cc
r991 r1005 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4MuBetheBlochModel.cc,v 1.2 4 2008/03/25 12:31:04vnivanch Exp $27 // GEANT4 tag $Name: geant4-09-02 $26 // $Id: G4MuBetheBlochModel.cc,v 1.25 2009/02/20 14:48:16 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02-ref-02 $ 28 28 // 29 29 // ------------------------------------------------------------------- … … 88 88 theElectron = G4Electron::Electron(); 89 89 corr = G4LossTableManager::Instance()->EmCorrections(); 90 fParticleChange = 0; 90 91 91 92 if(p) SetParticle(p); … … 99 100 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 100 101 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 113 102 G4double G4MuBetheBlochModel::MinEnergyCut(const G4ParticleDefinition*, 114 103 const G4MaterialCutsCouple* couple) … … 117 106 } 118 107 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(pParticleChange) 127 fParticleChange = reinterpret_cast<G4ParticleChangeForLoss*> 128 (pParticleChange); 129 else 130 fParticleChange = new G4ParticleChangeForLoss(); 126 if(!fParticleChange) { 127 if(pParticleChange) { 128 fParticleChange = 129 reinterpret_cast<G4ParticleChangeForLoss*>(pParticleChange); 130 } else { 131 fParticleChange = new G4ParticleChangeForLoss(); 132 } 133 } 131 134 } 132 135 -
trunk/source/processes/electromagnetic/muons/src/G4MuBremsstrahlung.cc
r991 r1005 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4MuBremsstrahlung.cc,v 1.4 1 2008/10/16 13:37:04vnivanch Exp $27 // GEANT4 tag $Name: geant4-09-02 $26 // $Id: G4MuBremsstrahlung.cc,v 1.42 2009/02/20 14:48:16 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02-ref-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 95 111 void G4MuBremsstrahlung::InitialiseEnergyLossProcess( 96 112 const G4ParticleDefinition* part, -
trunk/source/processes/electromagnetic/muons/src/G4MuBremsstrahlungModel.cc
r991 r1005 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4MuBremsstrahlungModel.cc,v 1.3 2 2008/07/22 16:11:34vnivanch Exp $27 // GEANT4 tag $Name: geant4-09-02 $26 // $Id: G4MuBremsstrahlungModel.cc,v 1.33 2009/02/20 14:48:16 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02-ref-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 113 121 void G4MuBremsstrahlungModel::Initialise(const G4ParticleDefinition* p, 114 122 const G4DataVector& cuts) … … 131 139 if(nn > 0) { 132 140 for (G4int ii=0; ii<nn; ii++){ 133 G4DataVector* a =partialSumSigma[ii];141 G4DataVector* a = partialSumSigma[ii]; 134 142 if ( a ) delete a; 135 143 } -
trunk/source/processes/electromagnetic/muons/src/G4MuIonisation.cc
r991 r1005 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4MuIonisation.cc,v 1.5 7 2008/10/27 10:55:07vnivanch Exp $27 // GEANT4 tag $Name: geant4-09-02 $26 // $Id: G4MuIonisation.cc,v 1.59 2009/02/26 11:04:20 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02-ref-02 $ 28 28 // 29 29 // ------------------------------------------------------------------- … … 86 86 #include "G4MuBetheBlochModel.hh" 87 87 #include "G4UniversalFluctuation.hh" 88 #include "G4IonFluctuations.hh" 88 89 #include "G4BohrFluctuations.hh" 89 90 #include "G4UnitsTable.hh" … … 112 113 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 113 114 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 114 133 void G4MuIonisation::InitialiseEnergyLossProcess(const G4ParticleDefinition* part, 115 134 const G4ParticleDefinition* bpart) … … 123 142 SetSecondaryParticle(G4Electron::Electron()); 124 143 125 flucModel = new G4UniversalFluctuation(); 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()); 126 149 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); 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()); 139 164 140 165 ratio = electron_mass_c2/mass; -
trunk/source/processes/electromagnetic/muons/src/G4MuPairProduction.cc
r991 r1005 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4MuPairProduction.cc,v 1.5 1 2008/10/16 13:37:04vnivanch Exp $27 // GEANT4 tag $Name: geant4-09-02 $26 // $Id: G4MuPairProduction.cc,v 1.52 2009/02/20 14:48:16 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02-ref-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 102 118 void G4MuPairProduction::InitialiseEnergyLossProcess( 103 119 const G4ParticleDefinition* part, -
trunk/source/processes/electromagnetic/muons/src/G4MuPairProductionModel.cc
r991 r1005 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4MuPairProductionModel.cc,v 1. 39 2008/07/22 16:11:34vnivanch Exp $27 // GEANT4 tag $Name: geant4-09-02 $26 // $Id: G4MuPairProductionModel.cc,v 1.40 2009/02/20 14:48:16 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02-ref-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 139 156 void G4MuPairProductionModel::Initialise(const G4ParticleDefinition* p, 140 157 const G4DataVector&)
Note: See TracChangeset
for help on using the changeset viewer.