- Timestamp:
- Apr 6, 2009, 12:21:12 PM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/source/processes/electromagnetic/highenergy/src/G4eeToHadronsModel.cc
r819 r961 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4eeToHadronsModel.cc,v 1. 8 2007/05/22 17:37:30vnivanch Exp $27 // GEANT4 tag $Name: $26 // $Id: G4eeToHadronsModel.cc,v 1.9 2008/07/10 18:06:39 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02-ref-02 $ 28 28 // 29 29 // ------------------------------------------------------------------- … … 65 65 using namespace std; 66 66 67 G4eeToHadronsModel::G4eeToHadronsModel(const G4Vee2hadrons* m, 68 G4int ver, 67 G4eeToHadronsModel::G4eeToHadronsModel(G4Vee2hadrons* m, G4int ver, 69 68 const G4String& nam) 70 69 : G4VEmModel(nam), 71 model(m),72 crossPerElectron(0),73 crossBornPerElectron(0),74 isInitialised(false),75 nbins(100),76 verbose(ver)77 { 78 theGamma 70 model(m), 71 crossPerElectron(0), 72 crossBornPerElectron(0), 73 isInitialised(false), 74 nbins(100), 75 verbose(ver) 76 { 77 theGamma = G4Gamma::Gamma(); 79 78 } 80 79 … … 96 95 isInitialised = true; 97 96 97 // Lab system 98 98 highKinEnergy = HighEnergyLimit(); 99 99 lowKinEnergy = LowEnergyLimit(); 100 100 101 emin = model->ThresholdEnergy(); 102 emax = 2.0*electron_mass_c2*sqrt(1.0 + 0.5*highKinEnergy/electron_mass_c2); 103 if(emin > emax) emin = emax; 104 105 lowKinEnergy = 0.5*emin*emin/electron_mass_c2 - 2.0*electron_mass_c2; 106 107 epeak = min(model->PeakEnergy(), emax); 101 // CM system 102 emin = model->LowEnergy(); 103 emax = model->HighEnergy(); 104 105 G4double emin0 = 106 2.0*electron_mass_c2*sqrt(1.0 + 0.5*lowKinEnergy/electron_mass_c2); 107 G4double emax0 = 108 2.0*electron_mass_c2*sqrt(1.0 + 0.5*highKinEnergy/electron_mass_c2); 109 110 // recompute low energy 111 if(emin0 > emax) { 112 emin0 = emax; 113 model->SetLowEnergy(emin0); 114 } 115 if(emin > emin0) { 116 emin0 = emin; 117 lowKinEnergy = 0.5*emin*emin/electron_mass_c2 - 2.0*electron_mass_c2; 118 SetLowEnergyLimit(lowKinEnergy); 119 } 120 121 // recompute high energy 122 if(emax < emax0) { 123 emax0 = emax; 124 highKinEnergy = 0.5*emax*emax/electron_mass_c2 - 2.0*electron_mass_c2; 125 SetHighEnergyLimit(highKinEnergy); 126 } 127 128 // peak energy 129 epeak = std::min(model->PeakEnergy(), emax); 108 130 peakKinEnergy = 0.5*epeak*epeak/electron_mass_c2 - 2.0*electron_mass_c2; 109 131 … … 148 170 } 149 171 } 172 } 173 174 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 175 176 G4double G4eeToHadronsModel::CrossSectionPerVolume( 177 const G4Material* mat, 178 const G4ParticleDefinition* p, 179 G4double kineticEnergy, 180 G4double, G4double) 181 { 182 return mat->GetElectronDensity()* 183 ComputeCrossSectionPerElectron(p, kineticEnergy); 184 } 185 186 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 187 188 G4double G4eeToHadronsModel::ComputeCrossSectionPerAtom( 189 const G4ParticleDefinition* p, 190 G4double kineticEnergy, 191 G4double Z, G4double, 192 G4double, G4double) 193 { 194 return Z*ComputeCrossSectionPerElectron(p, kineticEnergy); 150 195 } 151 196
Note: See TracChangeset
for help on using the changeset viewer.