50 G4cout <<
" G4RToEConvForProton::G4RToEConvForProton() ";
66 return (rangeCut/(1.0*mm)) * (100.0*keV);
79 static G4double ionpot, tau0, taum, taul, ca, cba, cc;
82 z2Particle *= z2Particle;
83 if (z2Particle < 0.1)
return 0.0;
85 if( std::fabs(AtomicNumber-Z)>0.1 ){
88 G4double Z13 = std::exp(std::log(Z)/3.);
89 tau0 = 0.1*Z13*MeV/proton_mass_c2;
90 taum = 0.035*Z13*MeV/proton_mass_c2;
91 taul = 2.*MeV/proton_mass_c2;
92 ionpot = 1.6e-5*MeV*std::exp(0.9*std::log(Z));
93 cc = (taul+1.)*(taul+1.)*std::log(2.*electron_mass_c2*taul*(taul+2.)/ionpot)/(taul*(taul+2.))-1.;
94 cc = 2.*twopi_mc2_rcl2*Z*cc*std::sqrt(taul);
95 ca = cc/((1.-0.5*std::sqrt(tau0/taum))*tau0);
96 cba = -0.5/std::sqrt(taum);
102 dEdx = ca*(std::sqrt(tau)+cba*tau);
105 dEdx = cc/std::sqrt(tau);
107 dEdx = (tau+1.)*(tau+1.)*
108 std::log(2.*electron_mass_c2*tau*(tau+2.)/ionpot)/(tau*(tau+2.))-1.;
109 dEdx = 2.*twopi_mc2_rcl2*Z*dEdx;
112 return dEdx*z2Particle ;
G4DLLIMPORT std::ostream G4cout
G4double GetPDGMass() const
G4double GetPDGCharge() const
G4ParticleDefinition * FindParticle(G4int PDGEncoding)
static G4ParticleTable * GetParticleTable()
virtual ~G4RToEConvForProton()
virtual G4double Convert(G4double rangeCut, const G4Material *material)
virtual G4double ComputeLoss(G4double AtomicNumber, G4double KineticEnergy) const
G4int GetVerboseLevel() const
const G4ParticleDefinition * theParticle