67 for (
G4int k = 0; k < 5; k++) {
68 for (
G4int j = 0; j < 8; j++) {
69 for (
G4int i = 0; i < 1001; i++) {
153 G4double zdat[] = {1.,4.,13.,29.,92.};
155 del = std::abs(lnZ-
G4Log(zdat[
iz]));
163 G4double tdat[] = {1.e3,1.e4,1.e5,1.e6,1.e7,1.e8,1.e9,1.e10};
165 for (
G4int it = 0; it < ntdat; it++) {
166 del = std::abs(
G4Log(KineticEnergy)-
G4Log(tdat[it]) );
178 ed <<
" While count exceeded " <<
G4endl;
186 }
while (((
proba[izz][itt][iy]) < r)&&(iy < NBINminus1)) ;
226 eda <<
" While count exceeded " <<
G4endl;
237 rej = (1.-t/tmax)*(y1*(1.-tmin/t)+
y2)/(y3*(1.-t/t2));
242 0.5*(t-tmin)/(2.*(TotalEnergy*(TotalEnergy-ep)-Mass*Mass)-tmin);
243 G4double theta = std::acos(1. - 2.*sinth2);
247 G4double dirx = sinth*std::cos(phi);
248 G4double diry = sinth*std::sin(phi);
252 finalDirection.
rotateUz(ParticleDirection);
254 G4double NewKinEnergy = KineticEnergy - ep;
255 G4double finalMomentum = std::sqrt(NewKinEnergy*(NewKinEnergy+2.*Mass) );
257 G4double initMomentum = std::sqrt(KineticEnergy*(TotalEnergy+Mass) );
265 G4LorentzVector primaryMomentum(initMomentum*ParticleDirection, TotalEnergy);
283 if (gammaE < 10*
GeV) {
290 G4double piMom = std::sqrt(piKE*(piKE + 2*piMass) );
307 G4double adat[] = {1.01,9.01,26.98,63.55,238.03};
308 G4double zdat[] = {1.,4.,13.,29.,92.};
311 G4double tdat[] = {1.e3,1.e4,1.e5,1.e6,1.e7,1.e8,1.e9,1.e10};
331 AtomicNumber = zdat[
iz];
332 AtomicWeight = adat[
iz]*(
g/
mole);
334 for (
G4int it = 0; it < ntdat; it++) {
335 KineticEnergy = tdat[it];
346 dy = (ymax-ymin)/
NBIN;
367 proba[
iz][it][nbin] = CrossSection;
372 if (CrossSection > 0.0) {
373 for (
G4int ib = 0; ib <= nbin; ib++)
proba[
iz][it][ib] /= CrossSection;
G4double proba[5][8][1001]
G4HadFinalState * ApplyYourself(const G4HadProjectile &aTrack, G4Nucleus &theNucleus)
void AddSecondaries(const std::vector< G4HadSecondary > &addSecs)
std::ostringstream G4ExceptionDescription
void CalculateHadronicVertex(G4DynamicParticle *incident, G4Nucleus &target)
void SetFragmentationModel(G4VStringFragmentation *aModel)
const G4LorentzVector & Get4Momentum() const
G4double GetTotalEnergy() const
G4double ComputeDDMicroscopicCrossSection(G4double incidentKE, G4double Z, G4double A, G4double epsilon)
G4double GetTotalEnergy() const
void SetHighEnergyGenerator(G4VHighEnergyGenerator *const value)
void SetStatusChange(G4HadFinalStateStatus aS)
void SetMinEnergy(G4double anEnergy)
static const char * Default_Name()
Hep3Vector & rotateUz(const Hep3Vector &)
static const double twopi
static G4CrossSectionDataSetRegistry * Instance()
static G4PionZero * PionZero()
G4DynamicParticle * CalculateEMVertex(const G4HadProjectile &aTrack, G4Nucleus &targetNucleus)
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
G4double G4Log(G4double x)
G4double G4Exp(G4double initial_x)
Exponential Function double precision.
G4HadronicInteraction * FindModel(const G4String &name)
void SetEnergyChange(G4double anEnergy)
G4double GetKineticEnergy() const
G4CascadeInterface * bert
const G4ThreeVector & GetMomentumDirection() const
static G4HadronicInteractionRegistry * Instance()
G4double GetPDGMass() const
cout<< "-> Edep in the target
G4KokoulinMuonNuclearXS * muNucXS
void SetMaxEnergy(const G4double anEnergy)
void SetDeExcitation(G4VPreCompoundModel *ptr)
G4HadFinalState theParticleChange
static G4MuonMinus * MuonMinus()
void SetTransport(G4VIntraNuclearTransportModel *const value)
G4LundStringFragmentation * theFragmentation
void SetMomentumChange(const G4ThreeVector &aV)
G4HadFinalState * ApplyYourself(const G4HadProjectile &aTrack, G4Nucleus &targetNucleus)
G4ExcitedStringDecay * theStringDecay
G4HadFinalState * ApplyYourself(const G4HadProjectile &thePrimary, G4Nucleus &theNucleus)