50 double upper =
Kallbach(1., anEnergy);
51 double lower =
Kallbach(-1., anEnergy);
52 if(upper>max) max=upper;
53 if(lower>max) max=lower;
57 G4int icounter_max=1024;
61 if ( icounter > icounter_max ) {
62 G4cout <<
"Loop-counter exceeded the threshold value at " << __LINE__ <<
"th line of " << __FILE__ <<
"." <<
G4endl;
79 result = 0.5*(
G4Exp( theX)*(1+theCompoundFraction)
80 +
G4Exp(-theX)*(1-theCompoundFraction));
87 if ( theCompoundFraction == 1 )
90 theCompoundFraction *= (1-1.0e-15);
92 result = 0.5 * (1./
A(anEnergy)) *
G4Log((1-theCompoundFraction)/(1+theCompoundFraction));
103 G4double epsa = anEnergy*theTargetMass/(theTargetMass+theIncidentMass);
104 G4int Ac = theTargetA+1;
105 G4int Nc = Ac - theTargetZ;
106 G4int AA = theTargetA;
107 G4int ZA = theTargetZ;
112 G4double epsb = theProductEnergy*(theProductMass+theResidualMass)/theResidualMass;
113 G4int AB = theResidualA;
114 G4int ZB = theResidualZ;
122 G4int productA = theTargetA+1-theResidualA;
123 G4int productZ = theTargetZ-theResidualZ;
135 if(productA==3) mb=1;
139 throw G4HadronicException(__FILE__, __LINE__,
"Severe error in the sampling of Kallbach-Mann Systematics");
152 result = 15.68*(Ac-AA);
153 result += -28.07*((Nc-Zc)*(Nc-Zc)/Ac - (NA-ZA)*(NA-ZA)/AA);
159 result += 1.211*(Zc*Zc/Ac-ZA*ZA/AA);
161 G4int productA = theTargetA+1-theResidualA;
162 G4int productZ = theTargetZ-theResidualZ;
163 if(productZ==0&&productA==1) totalBinding=0;
164 if(productZ==1&&productA==1) totalBinding=0;
165 if(productZ==1&&productA==2) totalBinding=2.22;
166 if(productZ==1&&productA==3) totalBinding=8.48;
167 if(productZ==2&&productA==3) totalBinding=7.72;
168 if(productZ==2&&productA==4) totalBinding=28.3;
169 result += -totalBinding;
G4double G4ParticleHPJENDLHEData::G4double result
static G4Pow * GetInstance()
G4double powA(G4double A, G4double y) const
G4double powN(G4double x, G4int n) const
G4double GetKallbachZero(G4double anEnergy)
G4double A(G4double anEnergy)
G4double SeparationEnergy(G4int Ac, G4int Nc, G4int AA, G4int ZA)
G4double A23(G4double A) const
G4GLOB_DLL std::ostream G4cout
const XML_Char int const XML_Char * value
G4double G4Log(G4double x)
G4double G4Exp(G4double initial_x)
Exponential Function double precision.
G4double A13(G4double A) const
T max(const T t1, const T t2)
brief Return the largest of the two arguments
T min(const T t1, const T t2)
brief Return the smallest of the two arguments
static constexpr double MeV
G4double Kallbach(G4double cosTh, G4double anEnergy)
G4double Sample(G4double anEnergy)