54 if(upper>max) max=upper;
55 if(lower>max) max=lower;
59 G4int icounter_max=1024;
63 if ( icounter > icounter_max ) {
64 G4cout <<
"Loop-counter exceeded the threshold value at " << __LINE__ <<
"th line of " << __FILE__ <<
"." <<
G4endl;
68 value =
Kallbach(result, anEnergy)/max;
81 result = 0.5*(
G4Exp( theX)*(1+theCompoundFraction)
82 +
G4Exp(-theX)*(1-theCompoundFraction));
93 if ( std::abs (theCompoundFraction - 1 ) < delta ) {
94 theCompoundFraction = 1.0-delta;
96 result = 0.5 * (1./
A(anEnergy)) *
G4Log((1-theCompoundFraction)/(1+theCompoundFraction));
107 G4double epsa = anEnergy*theTargetMass/(theTargetMass+theIncidentMass);
108 G4int Ac = theTargetA+theProjectileA;
109 G4int Nc = Ac - theTargetZ-theProjectileZ;
110 G4int AA = theTargetA;
111 G4int ZA = theTargetZ;
116 G4double epsb = theProductEnergy*(theProductMass+theResidualMass)/theResidualMass;
117 G4int AB = theResidualA;
118 G4int ZB = theResidualZ;
127 if(theProjectileA==1 || (theProjectileZ==1 && theProjectileA==2)){Ma=1;}
128 else if(theProjectileA==4 && theProjectileZ==2){Ma=0;}
129 else if(theProjectileA==3 && (theProjectileZ==1 || theProjectileZ==2)){Ma=0.5;}
132 throw G4HadronicException(__FILE__, __LINE__,
"Severe error in the sampling of Kallbach-Mann Systematics");
134 if(theProductA==1 && theProductZ==0){mb=1./2.;}
135 else if(theProductA==4 && theProductZ==2){mb=2;}
148 result = 15.68*(Ac-AA);
149 result += -28.07*((Nc-Zc)*(Nc-Zc)/(
G4double)Ac - (NA-ZA)*(NA-ZA)/(
G4double)AA);
155 if(Zbinding==0&&Abinding==1) totalBinding=0;
156 if(Zbinding==1&&Abinding==1) totalBinding=0;
157 if(Zbinding==1&&Abinding==2) totalBinding=2.224596;
158 if(Zbinding==1&&Abinding==3) totalBinding=8.481798;
159 if(Zbinding==2&&Abinding==3) totalBinding=7.718043;
160 if(Zbinding==2&&Abinding==4) totalBinding=28.29566;
161 result += -totalBinding;
G4double G4Exp(G4double initial_x)
Exponential Function double precision.
G4double G4Log(G4double x)
G4GLOB_DLL std::ostream G4cout
G4double Kallbach(G4double cosTh, G4double anEnergy)
G4double A(G4double anEnergy)
G4double Sample(G4double anEnergy)
G4double GetKallbachZero(G4double anEnergy)
G4double SeparationEnergy(G4int Ac, G4int Nc, G4int AA, G4int ZA, G4int Abinding, G4int Zbinding)
static G4Pow * GetInstance()
G4double A13(G4double A) const
G4double powN(G4double x, G4int n) const
G4double powA(G4double A, G4double y) const
G4double A23(G4double A) const