mirror of
https://github.com/gwm17/Mask.git
synced 2024-11-22 18:28:51 -05:00
Fixed bug in energy loss, now correctly calculates effective charge for heavy ions.
This commit is contained in:
parent
1c7bf69f16
commit
850daa87d8
|
@ -97,6 +97,7 @@ namespace Mask {
|
||||||
ZP = zp;
|
ZP = zp;
|
||||||
AP = ap;
|
AP = ap;
|
||||||
MP = MassLookup::GetInstance().FindMass(ZP, AP)*MEV2U;
|
MP = MassLookup::GetInstance().FindMass(ZP, AP)*MEV2U;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
double e_initial = e_final;
|
double e_initial = e_final;
|
||||||
|
@ -145,7 +146,7 @@ namespace Mask {
|
||||||
for(auto& z: ZT)
|
for(auto& z: ZT)
|
||||||
values.push_back(Hydrogen_dEdx_Low(e_per_u, z));
|
values.push_back(Hydrogen_dEdx_Low(e_per_u, z));
|
||||||
} else {
|
} else {
|
||||||
throw ELossException("Negative energy per nucleon");
|
throw ELossException("Negative energy per nucleon; given energy: "+std::to_string(energy));
|
||||||
}
|
}
|
||||||
|
|
||||||
if(values.size() == 0)
|
if(values.size() == 0)
|
||||||
|
@ -208,7 +209,7 @@ namespace Mask {
|
||||||
} else {
|
} else {
|
||||||
double B = 0.886*std::pow(e_per_u/25.0, 0.5)/std::pow(ZP, 2.0/3.0);
|
double B = 0.886*std::pow(e_per_u/25.0, 0.5)/std::pow(ZP, 2.0/3.0);
|
||||||
double A = B + 0.0378*std::sin(M_PI/2.0*B);
|
double A = B + 0.0378*std::sin(M_PI/2.0*B);
|
||||||
z_ratio = 1.0 - std::exp(-A)*(1.034-0.1777*std::exp(-0.08114*ZP))*z;
|
z_ratio = (1.0 - std::exp(-A)*(1.034-0.1777*std::exp(-0.08114*ZP)))*ZP;
|
||||||
}
|
}
|
||||||
return z_ratio*z_ratio; //for stopping power uses ratio sq.
|
return z_ratio*z_ratio; //for stopping power uses ratio sq.
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user