Changeset 961 for trunk/source/processes/electromagnetic/highenergy/include
- Timestamp:
- Apr 6, 2009, 12:21:12 PM (15 years ago)
- Location:
- trunk/source/processes/electromagnetic/highenergy/include
- Files:
-
- 13 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/source/processes/electromagnetic/highenergy/include/G4AnnihiToMuPair.hh
r819 r961 26 26 // 27 27 // $Id: G4AnnihiToMuPair.hh,v 1.2 2006/06/29 19:32:12 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: geant4-09-02-ref-02 $ 29 29 // 30 30 // ------------ G4AnnihiToMuPair physics process ------ -
trunk/source/processes/electromagnetic/highenergy/include/G4BetheBlochNoDeltaModel.hh
r819 r961 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4BetheBlochNoDeltaModel.hh,v 1. 7 2006/06/29 19:32:14 gunterExp $27 // GEANT4 tag $Name: $26 // $Id: G4BetheBlochNoDeltaModel.hh,v 1.8 2009/02/20 16:38:33 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02-ref-02 $ 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
r819 r961 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4BraggNoDeltaModel.hh,v 1. 6 2006/06/29 19:32:16 gunterExp $27 // GEANT4 tag $Name: $26 // $Id: G4BraggNoDeltaModel.hh,v 1.7 2009/02/20 16:38:33 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02-ref-02 $ 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/G4GammaConversionToMuons.hh
r819 r961 26 26 // 27 27 // $Id: G4GammaConversionToMuons.hh,v 1.2 2006/06/29 19:32:18 gunter Exp $ 28 // GEANT4 tag $Name: $28 // GEANT4 tag $Name: geant4-09-02-ref-02 $ 29 29 // 30 30 // ------------ G4GammaConversionToMuons physics process ------ -
trunk/source/processes/electromagnetic/highenergy/include/G4Vee2hadrons.hh
r819 r961 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4Vee2hadrons.hh,v 1. 3 2007/05/22 17:37:30vnivanch Exp $27 // GEANT4 tag $Name: $26 // $Id: G4Vee2hadrons.hh,v 1.4 2008/07/10 18:06:38 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02-ref-02 $ 28 28 // 29 29 // ------------------------------------------------------------------- … … 63 63 public: 64 64 65 G4Vee2hadrons() {};65 G4Vee2hadrons() : lowEnergy(0.0), highEnergy(1.1*GeV) {}; 66 66 67 67 virtual ~G4Vee2hadrons() {}; … … 76 76 77 77 virtual void SampleSecondaries(std::vector<G4DynamicParticle*>*, 78 G4double, const G4ThreeVector&) const = 0; 78 G4double, const G4ThreeVector&) = 0; 79 80 void SetLowEnergy(G4double val) {lowEnergy = val;}; 81 82 G4double LowEnergy() const {return lowEnergy;}; 83 84 void SetHighEnergy(G4double val) {highEnergy = val;}; 85 86 G4double HighEnergy() const {return highEnergy;}; 79 87 80 88 private: … … 84 92 G4Vee2hadrons(const G4Vee2hadrons&); 85 93 94 G4double lowEnergy; 95 G4double highEnergy; 96 86 97 }; 87 98 -
trunk/source/processes/electromagnetic/highenergy/include/G4eeCrossSections.hh
r819 r961 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4eeCrossSections.hh,v 1. 2 2006/06/29 19:32:22 gunterExp $27 // GEANT4 tag $Name: $26 // $Id: G4eeCrossSections.hh,v 1.3 2008/07/10 18:06:38 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02-ref-02 $ 28 28 // 29 29 // ------------------------------------------------------------------- … … 70 70 G4double CrossSection3pi(G4double); 71 71 72 G4double CrossSectionPi0G(G4double); 73 74 G4double CrossSectionEtaG(G4double); 75 72 76 G4double CrossSection2Kcharged(G4double); 73 77 74 78 G4double CrossSection2Kneutral(G4double); 79 80 std::complex<G4double> DpRho(G4double e); 75 81 76 82 private: … … 95 101 G4double WidthPhi(G4double e); 96 102 97 std::complex<G4double> DpRho(G4double e);98 99 103 std::complex<G4double> DpOm(G4double e); 100 104 101 105 std::complex<G4double> DpPhi(G4double e); 102 103 106 104 107 // hide assignment operator -
trunk/source/processes/electromagnetic/highenergy/include/G4eeToHadrons.hh
r819 r961 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4eeToHadrons.hh,v 1. 8 2007/05/23 08:50:41vnivanch Exp $27 // GEANT4 tag $Name: $26 // $Id: G4eeToHadrons.hh,v 1.9 2009/02/20 16:38:33 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02-ref-02 $ 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/G4eeToHadronsModel.hh
r819 r961 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4eeToHadronsModel.hh,v 1. 6 2007/05/22 17:37:30vnivanch Exp $27 // GEANT4 tag $Name: $26 // $Id: G4eeToHadronsModel.hh,v 1.7 2008/07/10 18:06:38 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02-ref-02 $ 28 28 // 29 29 // ------------------------------------------------------------------- … … 63 63 public: 64 64 65 G4eeToHadronsModel( constG4Vee2hadrons*, G4int ver=0,65 G4eeToHadronsModel(G4Vee2hadrons*, G4int ver=0, 66 66 const G4String& nam = "eeToHadrons"); 67 67 … … 69 69 70 70 virtual void Initialise(const G4ParticleDefinition*, const G4DataVector&); 71 72 G4double PeakEnergy() const;73 71 74 72 virtual G4double CrossSectionPerVolume(const G4Material*, … … 99 97 G4DynamicParticle* GenerateCMPhoton(G4double); 100 98 99 inline G4double PeakEnergy() const; 100 101 101 private: 102 102 … … 107 107 G4eeToHadronsModel(const G4eeToHadronsModel&); 108 108 109 const G4Vee2hadrons*model;109 G4Vee2hadrons* model; 110 110 G4ParticleDefinition* theGamma; 111 111 G4PhysicsVector* crossPerElectron; … … 133 133 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 134 134 135 inline G4double G4eeToHadronsModel::CrossSectionPerVolume(136 const G4Material* mat,137 const G4ParticleDefinition* p,138 G4double kineticEnergy,139 G4double, G4double)140 {141 return mat->GetElectronDensity()*142 ComputeCrossSectionPerElectron(p, kineticEnergy);143 }144 145 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....146 147 inline G4double G4eeToHadronsModel::ComputeCrossSectionPerAtom(148 const G4ParticleDefinition* p,149 G4double kineticEnergy,150 G4double Z, G4double,151 G4double, G4double)152 {153 return Z*ComputeCrossSectionPerElectron(p, kineticEnergy);154 }155 156 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....157 158 135 #endif -
trunk/source/processes/electromagnetic/highenergy/include/G4eeToHadronsMultiModel.hh
r819 r961 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4eeToHadronsMultiModel.hh,v 1. 5 2007/05/23 08:50:41vnivanch Exp $27 // GEANT4 tag $Name: $26 // $Id: G4eeToHadronsMultiModel.hh,v 1.7 2009/02/20 16:38:33 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02-ref-02 $ 28 28 // 29 29 // ------------------------------------------------------------------- … … 59 59 60 60 class G4eeCrossSections; 61 class G4Vee2hadrons; 61 62 62 63 class G4eeToHadronsMultiModel : public G4VEmModel … … 84 85 G4double maxEnergy = DBL_MAX); 85 86 86 virtual G4double ComputeCrossSectionPerElectron(87 const G4ParticleDefinition*,88 G4double kineticEnergy,89 G4double cutEnergy = 0.0,90 G4double maxEnergy = DBL_MAX);91 92 87 virtual void SampleSecondaries(std::vector<G4DynamicParticle*>*, 93 88 const G4MaterialCutsCouple*, … … 96 91 G4double maxEnergy = DBL_MAX); 97 92 98 v oid PrintInfo();93 virtual void PrintInfo(); 99 94 100 95 // Set the factor to artificially increase the crossSection (default 1) 101 96 void SetCrossSecFactor(G4double fac); 102 97 98 inline G4double ComputeCrossSectionPerElectron( 99 const G4ParticleDefinition*, 100 G4double kineticEnergy, 101 G4double cutEnergy = 0.0, 102 G4double maxEnergy = DBL_MAX); 103 103 104 private: 105 106 void AddEEModel(G4Vee2hadrons*); 104 107 105 108 // hide assignment operator … … 128 131 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 129 132 130 inline G4double G4eeToHadronsMultiModel::CrossSectionPerVolume(131 const G4Material* mat,132 const G4ParticleDefinition* p,133 G4double kineticEnergy,134 G4double, G4double)135 {136 return mat->GetElectronDensity()*137 ComputeCrossSectionPerElectron(p, kineticEnergy);138 }139 140 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....141 142 inline G4double G4eeToHadronsMultiModel::ComputeCrossSectionPerAtom(143 const G4ParticleDefinition* p,144 G4double kineticEnergy,145 G4double Z, G4double,146 G4double, G4double)147 {148 return Z*ComputeCrossSectionPerElectron(p, kineticEnergy);149 }150 151 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....152 153 133 inline G4double G4eeToHadronsMultiModel::ComputeCrossSectionPerElectron( 154 134 const G4ParticleDefinition*, … … 169 149 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 170 150 171 inline172 void G4eeToHadronsMultiModel::SampleSecondaries(std::vector<G4DynamicParticle*>* newp,173 const G4MaterialCutsCouple* couple,174 const G4DynamicParticle* dp,175 G4double, G4double)176 {177 G4double kinEnergy = dp->GetKineticEnergy();178 if (kinEnergy > thKineticEnergy) {179 G4double q = cumSum[nModels-1]*G4UniformRand();180 for(G4int i=0; i<nModels; i++) {181 if(q <= cumSum[i]) {182 (models[i])->SampleSecondaries(newp, couple,dp);183 if(newp->size() > 0) fParticleChange->ProposeTrackStatus(fStopAndKill);184 break;185 }186 }187 }188 }189 190 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....191 192 151 #endif -
trunk/source/processes/electromagnetic/highenergy/include/G4eeToTwoPiModel.hh
r819 r961 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4eeToTwoPiModel.hh,v 1. 3 2007/05/22 17:37:30vnivanch Exp $27 // GEANT4 tag $Name: $26 // $Id: G4eeToTwoPiModel.hh,v 1.5 2009/02/20 16:38:33 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02-ref-02 $ 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*>*, 78 G4double, const G4ThreeVector&) const;78 G4double, const G4ThreeVector&); 79 79 80 80 private: 81 82 void Initialise();83 81 84 82 // hide assignment operator … … 90 88 G4double massPi; 91 89 G4double massRho; 92 G4double highEnergy;93 90 94 91 }; … … 96 93 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 97 94 98 inline G4double G4eeToTwoPiModel::ThresholdEnergy() const99 {100 return 2.0*massPi;101 }102 103 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....104 105 inline G4double G4eeToTwoPiModel::PeakEnergy() const106 {107 return massRho;108 }109 110 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....111 112 inline G4double G4eeToTwoPiModel::ComputeCrossSection(G4double e) const113 {114 G4double ee = std::min(GeV,e);115 return cross->CrossSection2pi(ee);116 }117 118 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....119 120 95 #endif -
trunk/source/processes/electromagnetic/highenergy/include/G4hhIonisation.hh
r819 r961 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4hhIonisation.hh,v 1. 5 2007/05/23 08:50:41vnivanch Exp $27 // GEANT4 tag $Name: $26 // $Id: G4hhIonisation.hh,v 1.6 2009/02/20 16:38:33 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02-ref-02 $ 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
r819 r961 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4mplIonisation.hh,v 1. 5 2007/05/23 08:50:41vnivanch Exp $27 // GEANT4 tag $Name: $26 // $Id: G4mplIonisation.hh,v 1.6 2009/02/20 16:38:33 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02-ref-02 $ 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
r819 r961 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4mplIonisationModel.hh,v 1. 6 2007/11/13 18:36:29vnivanch Exp $27 // GEANT4 tag $Name: $26 // $Id: G4mplIonisationModel.hh,v 1.7 2009/02/20 16:38:33 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02-ref-02 $ 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....
Note: See TracChangeset
for help on using the changeset viewer.