duo.zeff package
Submodules
duo.zeff.abbema module
duo.zeff.abbema_coeff_calculator module
- class duo.zeff.abbema_coeff_calculator.CaiModifiedAbbemaCoeffCalculator(com)[source]
Bases:
duo.zeff.abbema_coeff_calculator.AbbemaCoeffCalculator
- class duo.zeff.abbema_coeff_calculator.ImprovedAbbemaCoeffCalculator(com)[source]
Bases:
duo.zeff.abbema_coeff_calculator.AbbemaCoeffCalculator
- class duo.zeff.abbema_coeff_calculator.OriginalAbbemaCoeffCalculator(com)[source]
Bases:
duo.zeff.abbema_coeff_calculator.AbbemaCoeffCalculator
duo.zeff.blend module
duo.zeff.bourque module
- class duo.zeff.bourque.Bourque(com, method='bspline')[source]
Bases:
objectCritical: By default Bourque parameterizes electron microscopic cross-section (exs) using polynomial approximation. At low-energy range, when exs changes abruptly due to absorption, curve fitting would have large error.
- Variables
method –
Type of Bourque coefficient calculator to apply.
”original”: Using polynomial.
”chebyshev”: Using Chebyshev polynomial.
”bspline”: Using cubic B-Spline.
bcc – Bourque coefficient calculator object.
dList – Parameters of DER(Z) polynomial curve fitting.
bs – Parameters of Z(DER) B-spline curve fitting.
- CalculateDualEnergyRatio(Ehigh, Elow, Z)[source]
Given Ehigh, Elow, Z, calculate DER using parametric equation of exs in Z
- CalculateZeffAtE(mat, energy)[source]
Given material and energy, calculate Zeff. This method calls
duo.zeff.bourque_coeff_calculator.BourqueCoeffCalculator.ParameterizeAtE(). The curve fitting depends onBourque.methodwhich defaults to “bspline”. ENDFB cross-section data is used.
- ParameterizeDualEnergyRatioAndZ(Ehigh, Elow)[source]
Given Ehigh and Elow, derive
The parametric equation of DER as a function of Z.
The parametric equation of Z as a function of DER.
Bourque states that Z and gamma are bijective in [1, 38] We noticed they are bijective in [1, 36] using the ENDFB library.
Following Bourque’s method, we establish a relation (
Bourque.bs) between Z and DER, and use DER of an unknown material to predict its Z. The result would still be the same if we directly use exs_low / exs_high without considering water.
duo.zeff.bourque_coeff_calculator module
- class duo.zeff.bourque_coeff_calculator.BSplineBourqueCoeffCalculator(elementTable)[source]
Bases:
duo.zeff.bourque_coeff_calculator.BourqueCoeffCalculatorSubclass of
BourqueCoeffCalculator, but using B-spline instead for curve fitting.- CalculateElectronXS(Z)[source]
Given Z, calculate electron microscopic cross-section. This method must be used after a call to
ParameterizeAtE(), which calculates parameters based on the given energy.- Parameters
Z (int.) – Atomic number.
- class duo.zeff.bourque_coeff_calculator.BourqueCoeffCalculator(elementTable)[source]
Bases:
objectClass that manages the parameters of Bourque’s formalism, using polynomial for curve fitting.
- CalculateElectronXS(Z)[source]
Given Z, calculate electron microscopic cross-section. This method must be used after a call to
ParameterizeAtE(), which calculates parameters based on the given energy.- Parameters
Z (int.) – Atomic number.
- class duo.zeff.bourque_coeff_calculator.ChebyshevBourqueCoeffCalculator(elementTable)[source]
Bases:
duo.zeff.bourque_coeff_calculator.BourqueCoeffCalculatorSubclass of
BourqueCoeffCalculator, but using Chebyshev polynomial instead for curve fitting.- CalculateElectronXS(Z)[source]
Given Z, calculate electron microscopic cross-section. This method must be used after a call to
ParameterizeAtE(), which calculates parameters based on the given energy.- Parameters
Z (int.) – Atomic number.
duo.zeff.cai module
duo.zeff.common module
- class duo.zeff.common.Common(dataPath, method='original', use140kVpWithSn=True, use100kVp=False)[source]
Bases:
object- ApplyModelIteratively(lowHighDicomDir, mixedImageDicomDir, outputECDicomDir, methodObj, **kwargs)[source]
duo.zeff.control_point module
- class duo.zeff.control_point.ControlPointManager(com, method, isToDumpIntermediateData=True)[source]
Bases:
object
- class duo.zeff.control_point.ControlPointManagerColonEC(com, method, isToDumpIntermediateData=True)[source]
- class duo.zeff.control_point.ControlPointManagerColonECExtra(com, method, isToDumpIntermediateData=True)[source]
- class duo.zeff.control_point.ControlPointManagerKidneyStone(com, method, isToDumpIntermediateData=True)[source]
- class duo.zeff.control_point.ControlPointManagerKidneyStoneExtra(com, method, isToDumpIntermediateData=True)[source]
- class duo.zeff.control_point.ControlPointManagerSpecial1(com, method, isToDumpIntermediateData=True)[source]
duo.zeff.enhance module
duo.zeff.nist module
duo.zeff.power_law module
- class duo.zeff.power_law.Mayneord[source]
Bases:
duo.zeff.power_law.PowerLaw
duo.zeff.taylor module
duo.zeff.taylor_coeff_calculator module
- class duo.zeff.taylor_coeff_calculator.AltTaylorCoeffCalculator(elementTable)[source]
Bases:
duo.zeff.taylor_coeff_calculator.TaylorCoeffCalculator
duo.zeff.torikoshi module
duo.zeff.torikoshi_coeff_calculator module
- class duo.zeff.torikoshi_coeff_calculator.TorikoshiCoeffCalculator(elementTable)[source]
Bases:
object- CalculateElectronXS(Z)[source]
Given Z, calculate electron microscopic cross-section. This method must be used after a call to
ParameterizeAtE(), which calculates parameters based on the given energy.- Parameters
Z (int.) – Atomic number.
- CalculateF(Z)[source]
Given Z, calculate F(energy, Z) function defined in Torikoshi 2003. This method must be used after a call to
ParameterizeAtE(), which calculates parameters based on the given energy.- Parameters
Z (int.) – Atomic number.
- CalculateG(Z)[source]
Given Z, calculate G(energy, Z) function defined in Torikoshi 2003. This method must be used after a call to
ParameterizeAtE(), which calculates parameters based on the given energy.- Parameters
Z (int.) – Atomic number.