Spectral Estimation with 3 different voltages

Before running this notebook, make sure examples/notebooks/simulated_data_3voltages.ipynb is executed to generate the simulated dataset. This notebook provides an example to do spectral estimation with 3-voltage datasets.

[1]:
# Basic Packages
import os
import matplotlib.pyplot as plt
import numpy as np
from xspec.estimate import Estimate
from xspec.defs import Material
from xspec._utils import *
from xspec.models import *
import spekpy as sp  # Import SpekPy

A. Read datasets

[2]:
# Read dataset.
data = np.load('../data/sim_3v1f1s_dataset.npy',allow_pickle=True)
num_src_v = len(data)

normalized_rads = [d['measurement'] for d in data]
forward_matrices = [d['forward_mat'] for d in data]
gt_sources = [d['source'] for d in data]
gt_filter = data[0]['filter']
gt_scint = data[0]['scintillator']

B. X-ray System Model Configuration

A detailed explanation for spectral model configuration is available in examples/notebooks/configure_spectral_models.ipynb.

This section of the notebook configures the X-ray system model, specifying parameters that need to be estimated in given sets or given reange:

  • Source anode angle (continuous): The anode angle refers to the angle the target surface of the anode sits at in relation to the vertical.

  • Filter type (discrete) and thickness (continuous): Specifies the type of filter used in the system and its thickness.

  • Scintillator (discrete) type and thickness (continuous): Determines the type of scintillator and its thickness.

The 3 ground truth spectral models are:

  • source_1, filter_1, scintillator_1

  • source_2, filter_1, scintillator_1

  • source_3, filter_1, scintillator_1

[3]:
# Set source's parameters.
voltage_list = [80.0, 130.0, 180.0]
simkV_list = np.linspace(30, 200, 18, endpoint=True).astype('int')
max_simkV = max(simkV_list)
reference_anode_angle = 11

# Detector pixel size in mm units.
dsize = 0.01  # mm

# Energy bins.
energies = np.linspace(1, max_simkV, max_simkV)

# Use Spekpy to generate a source spectra dictionary.
src_spec_list = []
for simkV in simkV_list:
    s = sp.Spek(kvp=simkV + 1, th=reference_anode_angle, dk=1, mas=1, char=True)  # Create the spectrum model
    k, phi_k = s.get_spectrum(edges=True)  # Get arrays of energy & fluence spectrum
    phi_k = phi_k * ((dsize / 10) ** 2)

    src_spec = np.zeros((max_simkV))
    src_spec[:simkV] = phi_k[::2]
    src_spec_list.append(src_spec)

voltage_list = [80.0, 130.0, 180.0]  # kV
sources = [Reflection_Source(voltage=(voltage, None, None), takeoff_angle=(25, 5, 45), single_takeoff_angle=True)
           for
           voltage in voltage_list]
for src_i, source in enumerate(sources):
    source.set_src_spec_list(src_spec_list, simkV_list, reference_anode_angle)

psb_fltr_mat = [Material(formula='Al', density=2.702), Material(formula='Cu', density=8.92)]
filter_1 = Filter(psb_fltr_mat, thickness=(5, 0, 10))

scint_params_list = [
    {'formula': 'CsI', 'density': 4.51},
    {'formula': 'Gd3Al2Ga3O12', 'density': 6.63},
    {'formula': 'Lu3Al5O12', 'density': 6.73},
    {'formula': 'CdWO4', 'density': 7.9},
    {'formula': 'Y3Al5O12', 'density': 4.56},
    {'formula': 'Bi4Ge3O12', 'density': 7.13},
    {'formula': 'Gd2O2S', 'density': 7.32}
]
psb_scint_mat = [Material(formula=scint_p['formula'], density=scint_p['density']) for scint_p in scint_params_list]
scintillator_1 = Scintillator(materials=psb_scint_mat, thickness=(0.25, 0.01, 0.5))

spec_models = [[source, filter_1, scintillator_1] for source in sources]

C. Spectral Estimation

Xspec use exhaustive search to find the optimal discrete parameter combination and use LBFGS to find the optimal solution for continuous parameters.

The normalized_rads is \([y_1, y_2, y_3]\), forward_matrices is \([A_1, A_2, A_3]\), and spec_models is used to calculate \([x_1, x_2, x_3]\).

  • \(y_k\) should have dimension \(N_{\text{views}}, N_{\text{rows}}, N_{\text{cols}}\).

  • \(A_k\) should have dimension \(N_{\text{views}}, N_{\text{rows}}, N_{\text{cols}}, N_{\text{energies}}\).

  • \(x_k\) should have dimension \(N_{\text{energies}}\).

[4]:
learning_rate = 0.02
max_iterations = 5000
stop_threshold = 1e-5
optimizer_type = 'NNAT_LBFGS'

Estimator = Estimate(energies)
for nrad, forward_matrix, concatenate_models in zip(normalized_rads, forward_matrices, spec_models):
    Estimator.add_data(nrad, forward_matrix, concatenate_models, weight=None)

# Fit data
Estimator.fit(learning_rate=learning_rate,
              max_iterations=max_iterations,
              stop_threshold=stop_threshold,
              optimizer_type=optimizer_type,
              loss_type='transmission',
              logpath=None,
              num_processes=1)
Number of cases for different discrete parameters: 14
2024-04-02 02:59:24,598  - Start Estimation.
2024-04-02 02:59:24,733  - Initial cost: 1.702346e-03
2024-04-02 02:59:25,827  - Iteration: 5
2024-04-02 02:59:26,085  - Cost: 0.0005085425218567252
2024-04-02 02:59:26,086  - Filter_1_material: Material(formula='Al', density=2.702)
2024-04-02 02:59:26,086  - Filter_1_thickness: 4.02001428604126
2024-04-02 02:59:26,086  - Reflection_Source_1_voltage: 80.0
2024-04-02 02:59:26,086  - Reflection_Source_2_voltage: 130.0
2024-04-02 02:59:26,086  - Reflection_Source_3_voltage: 180.0
2024-04-02 02:59:26,086  - Reflection_Source_takeoff_angle: 25.212553024291992
2024-04-02 02:59:26,086  - Scintillator_1_material: Material(formula='CsI', density=4.51)
2024-04-02 02:59:26,086  - Scintillator_1_thickness: 0.24543984234333038
2024-04-02 02:59:26,086  -
2024-04-02 02:59:27,081  - Iteration: 10
2024-04-02 02:59:27,335  - Cost: 0.0003573810390662402
2024-04-02 02:59:27,335  - Filter_1_material: Material(formula='Al', density=2.702)
2024-04-02 02:59:27,335  - Filter_1_thickness: 3.665231704711914
2024-04-02 02:59:27,335  - Reflection_Source_1_voltage: 80.0
2024-04-02 02:59:27,335  - Reflection_Source_2_voltage: 130.0
2024-04-02 02:59:27,335  - Reflection_Source_3_voltage: 180.0
2024-04-02 02:59:27,335  - Reflection_Source_takeoff_angle: 25.09674072265625
2024-04-02 02:59:27,335  - Scintillator_1_material: Material(formula='CsI', density=4.51)
2024-04-02 02:59:27,335  - Scintillator_1_thickness: 0.25311291217803955
2024-04-02 02:59:27,335  -
2024-04-02 02:59:28,380  - Iteration: 15
2024-04-02 02:59:28,640  - Cost: 0.00032703333999961615
2024-04-02 02:59:28,640  - Filter_1_material: Material(formula='Al', density=2.702)
2024-04-02 02:59:28,641  - Filter_1_thickness: 3.4875056743621826
2024-04-02 02:59:28,641  - Reflection_Source_1_voltage: 80.0
2024-04-02 02:59:28,641  - Reflection_Source_2_voltage: 130.0
2024-04-02 02:59:28,641  - Reflection_Source_3_voltage: 180.0
2024-04-02 02:59:28,641  - Reflection_Source_takeoff_angle: 24.882495880126953
2024-04-02 02:59:28,641  - Scintillator_1_material: Material(formula='CsI', density=4.51)
2024-04-02 02:59:28,641  - Scintillator_1_thickness: 0.2624160945415497
2024-04-02 02:59:28,641  -
2024-04-02 02:59:29,636  - Iteration: 20
2024-04-02 02:59:29,887  - Cost: 0.0003073222760576755
2024-04-02 02:59:29,887  - Filter_1_material: Material(formula='Al', density=2.702)
2024-04-02 02:59:29,887  - Filter_1_thickness: 3.315735101699829
2024-04-02 02:59:29,887  - Reflection_Source_1_voltage: 80.0
2024-04-02 02:59:29,887  - Reflection_Source_2_voltage: 130.0
2024-04-02 02:59:29,887  - Reflection_Source_3_voltage: 180.0
2024-04-02 02:59:29,887  - Reflection_Source_takeoff_angle: 24.415071487426758
2024-04-02 02:59:29,887  - Scintillator_1_material: Material(formula='CsI', density=4.51)
2024-04-02 02:59:29,888  - Scintillator_1_thickness: 0.27995002269744873
2024-04-02 02:59:29,888  -
2024-04-02 02:59:30,819  - Iteration: 25
2024-04-02 02:59:31,064  - Cost: 0.00028216239297762513
2024-04-02 02:59:31,064  - Filter_1_material: Material(formula='Al', density=2.702)
2024-04-02 02:59:31,064  - Filter_1_thickness: 3.169617176055908
2024-04-02 02:59:31,064  - Reflection_Source_1_voltage: 80.0
2024-04-02 02:59:31,064  - Reflection_Source_2_voltage: 130.0
2024-04-02 02:59:31,064  - Reflection_Source_3_voltage: 180.0
2024-04-02 02:59:31,064  - Reflection_Source_takeoff_angle: 23.450014114379883
2024-04-02 02:59:31,064  - Scintillator_1_material: Material(formula='CsI', density=4.51)
2024-04-02 02:59:31,064  - Scintillator_1_thickness: 0.3092499077320099
2024-04-02 02:59:31,064  -
2024-04-02 02:59:32,045  - Iteration: 30
2024-04-02 02:59:32,286  - Cost: 0.000273220386588946
2024-04-02 02:59:32,287  - Filter_1_material: Material(formula='Al', density=2.702)
2024-04-02 02:59:32,287  - Filter_1_thickness: 3.0729713439941406
2024-04-02 02:59:32,287  - Reflection_Source_1_voltage: 80.0
2024-04-02 02:59:32,287  - Reflection_Source_2_voltage: 130.0
2024-04-02 02:59:32,287  - Reflection_Source_3_voltage: 180.0
2024-04-02 02:59:32,287  - Reflection_Source_takeoff_angle: 22.602703094482422
2024-04-02 02:59:32,287  - Scintillator_1_material: Material(formula='CsI', density=4.51)
2024-04-02 02:59:32,287  - Scintillator_1_thickness: 0.32895973324775696
2024-04-02 02:59:32,287  -
2024-04-02 02:59:33,109  - Iteration: 35
2024-04-02 02:59:33,353  - Cost: 0.0002715964801609516
2024-04-02 02:59:33,353  - Filter_1_material: Material(formula='Al', density=2.702)
2024-04-02 02:59:33,353  - Filter_1_thickness: 3.036503314971924
2024-04-02 02:59:33,353  - Reflection_Source_1_voltage: 80.0
2024-04-02 02:59:33,353  - Reflection_Source_2_voltage: 130.0
2024-04-02 02:59:33,353  - Reflection_Source_3_voltage: 180.0
2024-04-02 02:59:33,353  - Reflection_Source_takeoff_angle: 22.19342041015625
2024-04-02 02:59:33,353  - Scintillator_1_material: Material(formula='CsI', density=4.51)
2024-04-02 02:59:33,353  - Scintillator_1_thickness: 0.3364430069923401
2024-04-02 02:59:33,353  -
2024-04-02 02:59:34,341  - Iteration: 40
2024-04-02 02:59:34,588  - Cost: 0.0002711848064791411
2024-04-02 02:59:34,588  - Filter_1_material: Material(formula='Al', density=2.702)
2024-04-02 02:59:34,588  - Filter_1_thickness: 3.0134716033935547
2024-04-02 02:59:34,588  - Reflection_Source_1_voltage: 80.0
2024-04-02 02:59:34,588  - Reflection_Source_2_voltage: 130.0
2024-04-02 02:59:34,588  - Reflection_Source_3_voltage: 180.0
2024-04-02 02:59:34,588  - Reflection_Source_takeoff_angle: 21.889320373535156
2024-04-02 02:59:34,588  - Scintillator_1_material: Material(formula='CsI', density=4.51)
2024-04-02 02:59:34,588  - Scintillator_1_thickness: 0.3401485085487366
2024-04-02 02:59:34,588  -
2024-04-02 02:59:35,583  - Iteration: 45
2024-04-02 02:59:35,680  - Cost: 0.0002710979897528887
2024-04-02 02:59:35,681  - Filter_1_material: Material(formula='Al', density=2.702)
2024-04-02 02:59:35,681  - Filter_1_thickness: 3.0032527446746826
2024-04-02 02:59:35,681  - Reflection_Source_1_voltage: 80.0
2024-04-02 02:59:35,681  - Reflection_Source_2_voltage: 130.0
2024-04-02 02:59:35,681  - Reflection_Source_3_voltage: 180.0
2024-04-02 02:59:35,681  - Reflection_Source_takeoff_angle: 21.68114471435547
2024-04-02 02:59:35,681  - Scintillator_1_material: Material(formula='CsI', density=4.51)
2024-04-02 02:59:35,681  - Scintillator_1_thickness: 0.34122106432914734
2024-04-02 02:59:35,681  -
2024-04-02 02:59:36,684  - Iteration: 50
2024-04-02 02:59:36,935  - Cost: 0.0002710488042794168
2024-04-02 02:59:36,935  - Filter_1_material: Material(formula='Al', density=2.702)
2024-04-02 02:59:36,935  - Filter_1_thickness: 2.994171619415283
2024-04-02 02:59:36,935  - Reflection_Source_1_voltage: 80.0
2024-04-02 02:59:36,935  - Reflection_Source_2_voltage: 130.0
2024-04-02 02:59:36,935  - Reflection_Source_3_voltage: 180.0
2024-04-02 02:59:36,935  - Reflection_Source_takeoff_angle: 21.380870819091797
2024-04-02 02:59:36,935  - Scintillator_1_material: Material(formula='CsI', density=4.51)
2024-04-02 02:59:36,935  - Scintillator_1_thickness: 0.3410169184207916
2024-04-02 02:59:36,935  -
2024-04-02 02:59:37,922  - Iteration: 55
2024-04-02 02:59:38,163  - Cost: 0.00027094027609564364
2024-04-02 02:59:38,163  - Filter_1_material: Material(formula='Al', density=2.702)
2024-04-02 02:59:38,163  - Filter_1_thickness: 2.9831290245056152
2024-04-02 02:59:38,163  - Reflection_Source_1_voltage: 80.0
2024-04-02 02:59:38,163  - Reflection_Source_2_voltage: 130.0
2024-04-02 02:59:38,163  - Reflection_Source_3_voltage: 180.0
2024-04-02 02:59:38,163  - Reflection_Source_takeoff_angle: 20.453433990478516
2024-04-02 02:59:38,163  - Scintillator_1_material: Material(formula='CsI', density=4.51)
2024-04-02 02:59:38,163  - Scintillator_1_thickness: 0.33569374680519104
2024-04-02 02:59:38,163  -
2024-04-02 02:59:39,036  - Iteration: 60
2024-04-02 02:59:39,277  - Cost: 0.0002708987449295819
2024-04-02 02:59:39,277  - Filter_1_material: Material(formula='Al', density=2.702)
2024-04-02 02:59:39,277  - Filter_1_thickness: 2.9792592525482178
2024-04-02 02:59:39,277  - Reflection_Source_1_voltage: 80.0
2024-04-02 02:59:39,277  - Reflection_Source_2_voltage: 130.0
2024-04-02 02:59:39,277  - Reflection_Source_3_voltage: 180.0
2024-04-02 02:59:39,277  - Reflection_Source_takeoff_angle: 19.910388946533203
2024-04-02 02:59:39,277  - Scintillator_1_material: Material(formula='CsI', density=4.51)
2024-04-02 02:59:39,277  - Scintillator_1_thickness: 0.3315522372722626
2024-04-02 02:59:39,277  -
2024-04-02 02:59:40,231  - Iteration: 65
2024-04-02 02:59:40,474  - Cost: 0.0002708889951463789
2024-04-02 02:59:40,474  - Filter_1_material: Material(formula='Al', density=2.702)
2024-04-02 02:59:40,474  - Filter_1_thickness: 2.978935480117798
2024-04-02 02:59:40,474  - Reflection_Source_1_voltage: 80.0
2024-04-02 02:59:40,474  - Reflection_Source_2_voltage: 130.0
2024-04-02 02:59:40,474  - Reflection_Source_3_voltage: 180.0
2024-04-02 02:59:40,474  - Reflection_Source_takeoff_angle: 19.68199920654297
2024-04-02 02:59:40,474  - Scintillator_1_material: Material(formula='CsI', density=4.51)
2024-04-02 02:59:40,474  - Scintillator_1_thickness: 0.3295050859451294
2024-04-02 02:59:40,474  -
2024-04-02 02:59:41,350  - Iteration: 70
2024-04-02 02:59:41,590  - Cost: 0.0002708874235395342
2024-04-02 02:59:41,590  - Filter_1_material: Material(formula='Al', density=2.702)
2024-04-02 02:59:41,590  - Filter_1_thickness: 2.978759765625
2024-04-02 02:59:41,590  - Reflection_Source_1_voltage: 80.0
2024-04-02 02:59:41,591  - Reflection_Source_2_voltage: 130.0
2024-04-02 02:59:41,591  - Reflection_Source_3_voltage: 180.0
2024-04-02 02:59:41,591  - Reflection_Source_takeoff_angle: 19.59859848022461
2024-04-02 02:59:41,591  - Scintillator_1_material: Material(formula='CsI', density=4.51)
2024-04-02 02:59:41,591  - Scintillator_1_thickness: 0.3287383019924164
2024-04-02 02:59:41,591  -
2024-04-02 02:59:42,501  - Iteration: 75
2024-04-02 02:59:42,741  - Cost: 0.0002708870451897383
2024-04-02 02:59:42,741  - Filter_1_material: Material(formula='Al', density=2.702)
2024-04-02 02:59:42,741  - Filter_1_thickness: 2.978708505630493
2024-04-02 02:59:42,741  - Reflection_Source_1_voltage: 80.0
2024-04-02 02:59:42,741  - Reflection_Source_2_voltage: 130.0
2024-04-02 02:59:42,741  - Reflection_Source_3_voltage: 180.0
2024-04-02 02:59:42,741  - Reflection_Source_takeoff_angle: 19.55670166015625
2024-04-02 02:59:42,741  - Scintillator_1_material: Material(formula='CsI', density=4.51)
2024-04-02 02:59:42,741  - Scintillator_1_thickness: 0.32836392521858215
2024-04-02 02:59:42,741  -
2024-04-02 02:59:47,791  - Stopping at epoch 76 because updates are too small.
2024-04-02 02:59:47,791  - Cost: 0.0002708870451897383
2024-04-02 02:59:47,791  - Filter_1_material: Material(formula='Al', density=2.702)
2024-04-02 02:59:47,791  - Filter_1_thickness: 2.978708505630493
2024-04-02 02:59:47,791  - Reflection_Source_1_voltage: 80.0
2024-04-02 02:59:47,791  - Reflection_Source_2_voltage: 130.0
2024-04-02 02:59:47,791  - Reflection_Source_3_voltage: 180.0
2024-04-02 02:59:47,791  - Reflection_Source_takeoff_angle: 19.556703567504883
2024-04-02 02:59:47,791  - Scintillator_1_material: Material(formula='CsI', density=4.51)
2024-04-02 02:59:47,791  - Scintillator_1_thickness: 0.32836398482322693
2024-04-02 02:59:47,791  -
2024-04-02 02:59:47,795  - Start Estimation.
2024-04-02 02:59:47,872  - Initial cost: 3.443237e-04
2024-04-02 02:59:48,976  - Iteration: 5
2024-04-02 02:59:49,225  - Cost: 0.00034392959787510335
2024-04-02 02:59:49,225  - Filter_1_material: Material(formula='Al', density=2.702)
2024-04-02 02:59:49,225  - Filter_1_thickness: 4.990964889526367
2024-04-02 02:59:49,225  - Reflection_Source_1_voltage: 80.0
2024-04-02 02:59:49,225  - Reflection_Source_2_voltage: 130.0
2024-04-02 02:59:49,225  - Reflection_Source_3_voltage: 180.0
2024-04-02 02:59:49,225  - Reflection_Source_takeoff_angle: 25.031421661376953
2024-04-02 02:59:49,225  - Scintillator_1_material: Material(formula='Gd3Al2Ga3O12', density=6.63)
2024-04-02 02:59:49,225  - Scintillator_1_thickness: 0.2488340586423874
2024-04-02 02:59:49,225  -
2024-04-02 02:59:50,214  - Iteration: 10
2024-04-02 02:59:50,516  - Cost: 0.0003431515651755035
2024-04-02 02:59:50,516  - Filter_1_material: Material(formula='Al', density=2.702)
2024-04-02 02:59:50,516  - Filter_1_thickness: 5.000563621520996
2024-04-02 02:59:50,516  - Reflection_Source_1_voltage: 80.0
2024-04-02 02:59:50,516  - Reflection_Source_2_voltage: 130.0
2024-04-02 02:59:50,516  - Reflection_Source_3_voltage: 180.0
2024-04-02 02:59:50,516  - Reflection_Source_takeoff_angle: 25.15861701965332
2024-04-02 02:59:50,516  - Scintillator_1_material: Material(formula='Gd3Al2Ga3O12', density=6.63)
2024-04-02 02:59:50,516  - Scintillator_1_thickness: 0.24357827007770538
2024-04-02 02:59:50,516  -
2024-04-02 02:59:51,538  - Iteration: 15
2024-04-02 02:59:51,789  - Cost: 0.0003412101068533957
2024-04-02 02:59:51,789  - Filter_1_material: Material(formula='Al', density=2.702)
2024-04-02 02:59:51,789  - Filter_1_thickness: 5.075979709625244
2024-04-02 02:59:51,789  - Reflection_Source_1_voltage: 80.0
2024-04-02 02:59:51,789  - Reflection_Source_2_voltage: 130.0
2024-04-02 02:59:51,789  - Reflection_Source_3_voltage: 180.0
2024-04-02 02:59:51,789  - Reflection_Source_takeoff_angle: 25.51769256591797
2024-04-02 02:59:51,789  - Scintillator_1_material: Material(formula='Gd3Al2Ga3O12', density=6.63)
2024-04-02 02:59:51,789  - Scintillator_1_thickness: 0.2274373322725296
2024-04-02 02:59:51,789  -
2024-04-02 02:59:52,737  - Iteration: 20
2024-04-02 02:59:52,988  - Cost: 0.0003391175123397261
2024-04-02 02:59:52,988  - Filter_1_material: Material(formula='Al', density=2.702)
2024-04-02 02:59:52,988  - Filter_1_thickness: 5.195326328277588
2024-04-02 02:59:52,988  - Reflection_Source_1_voltage: 80.0
2024-04-02 02:59:52,988  - Reflection_Source_2_voltage: 130.0
2024-04-02 02:59:52,988  - Reflection_Source_3_voltage: 180.0
2024-04-02 02:59:52,988  - Reflection_Source_takeoff_angle: 25.70726203918457
2024-04-02 02:59:52,988  - Scintillator_1_material: Material(formula='Gd3Al2Ga3O12', density=6.63)
2024-04-02 02:59:52,988  - Scintillator_1_thickness: 0.20865418016910553
2024-04-02 02:59:52,988  -
2024-04-02 02:59:53,984  - Iteration: 25
2024-04-02 02:59:54,287  - Cost: 0.0003378978872206062
2024-04-02 02:59:54,287  - Filter_1_material: Material(formula='Al', density=2.702)
2024-04-02 02:59:54,287  - Filter_1_thickness: 5.3037519454956055
2024-04-02 02:59:54,287  - Reflection_Source_1_voltage: 80.0
2024-04-02 02:59:54,287  - Reflection_Source_2_voltage: 130.0
2024-04-02 02:59:54,287  - Reflection_Source_3_voltage: 180.0
2024-04-02 02:59:54,287  - Reflection_Source_takeoff_angle: 25.309144973754883
2024-04-02 02:59:54,287  - Scintillator_1_material: Material(formula='Gd3Al2Ga3O12', density=6.63)
2024-04-02 02:59:54,287  - Scintillator_1_thickness: 0.18692319095134735
2024-04-02 02:59:54,288  -
2024-04-02 03:00:00,038  - Stopping at epoch 29 because updates are too small.
2024-04-02 03:00:00,038  - Cost: 0.00033684709342196584
2024-04-02 03:00:00,038  - Filter_1_material: Material(formula='Al', density=2.702)
2024-04-02 03:00:00,038  - Filter_1_thickness: 5.390834808349609
2024-04-02 03:00:00,038  - Reflection_Source_1_voltage: 80.0
2024-04-02 03:00:00,038  - Reflection_Source_2_voltage: 130.0
2024-04-02 03:00:00,038  - Reflection_Source_3_voltage: 180.0
2024-04-02 03:00:00,038  - Reflection_Source_takeoff_angle: 24.40772819519043
2024-04-02 03:00:00,038  - Scintillator_1_material: Material(formula='Gd3Al2Ga3O12', density=6.63)
2024-04-02 03:00:00,038  - Scintillator_1_thickness: 0.16717366874217987
2024-04-02 03:00:00,038  -
2024-04-02 03:00:00,042  - Start Estimation.
2024-04-02 03:00:00,119  - Initial cost: 5.850590e-04
2024-04-02 03:00:01,283  - Iteration: 5
2024-04-02 03:00:01,540  - Cost: 0.0005083550931885839
2024-04-02 03:00:01,540  - Filter_1_material: Material(formula='Al', density=2.702)
2024-04-02 03:00:01,540  - Filter_1_thickness: 5.218989849090576
2024-04-02 03:00:01,540  - Reflection_Source_1_voltage: 80.0
2024-04-02 03:00:01,540  - Reflection_Source_2_voltage: 130.0
2024-04-02 03:00:01,540  - Reflection_Source_3_voltage: 180.0
2024-04-02 03:00:01,540  - Reflection_Source_takeoff_angle: 25.017520904541016
2024-04-02 03:00:01,540  - Scintillator_1_material: Material(formula='Lu3Al5O12', density=6.73)
2024-04-02 03:00:01,540  - Scintillator_1_thickness: 0.2528877556324005
2024-04-02 03:00:01,540  -
2024-04-02 03:00:02,599  - Iteration: 10
2024-04-02 03:00:02,853  - Cost: 0.0004921967047266662
2024-04-02 03:00:02,853  - Filter_1_material: Material(formula='Al', density=2.702)
2024-04-02 03:00:02,853  - Filter_1_thickness: 5.332822322845459
2024-04-02 03:00:02,853  - Reflection_Source_1_voltage: 80.0
2024-04-02 03:00:02,853  - Reflection_Source_2_voltage: 130.0
2024-04-02 03:00:02,853  - Reflection_Source_3_voltage: 180.0
2024-04-02 03:00:02,853  - Reflection_Source_takeoff_angle: 25.235578536987305
2024-04-02 03:00:02,853  - Scintillator_1_material: Material(formula='Lu3Al5O12', density=6.73)
2024-04-02 03:00:02,853  - Scintillator_1_thickness: 0.2536390721797943
2024-04-02 03:00:02,853  -
2024-04-02 03:00:03,890  - Iteration: 15
2024-04-02 03:00:04,139  - Cost: 0.00048746171523816884
2024-04-02 03:00:04,139  - Filter_1_material: Material(formula='Al', density=2.702)
2024-04-02 03:00:04,139  - Filter_1_thickness: 5.40705680847168
2024-04-02 03:00:04,139  - Reflection_Source_1_voltage: 80.0
2024-04-02 03:00:04,139  - Reflection_Source_2_voltage: 130.0
2024-04-02 03:00:04,139  - Reflection_Source_3_voltage: 180.0
2024-04-02 03:00:04,139  - Reflection_Source_takeoff_angle: 25.61581039428711
2024-04-02 03:00:04,139  - Scintillator_1_material: Material(formula='Lu3Al5O12', density=6.73)
2024-04-02 03:00:04,139  - Scintillator_1_thickness: 0.2532779276371002
2024-04-02 03:00:04,139  -
2024-04-02 03:00:05,210  - Iteration: 20
2024-04-02 03:00:05,462  - Cost: 0.0004835304862353951
2024-04-02 03:00:05,462  - Filter_1_material: Material(formula='Al', density=2.702)
2024-04-02 03:00:05,462  - Filter_1_thickness: 5.495151996612549
2024-04-02 03:00:05,462  - Reflection_Source_1_voltage: 80.0
2024-04-02 03:00:05,462  - Reflection_Source_2_voltage: 130.0
2024-04-02 03:00:05,462  - Reflection_Source_3_voltage: 180.0
2024-04-02 03:00:05,462  - Reflection_Source_takeoff_angle: 26.49517059326172
2024-04-02 03:00:05,462  - Scintillator_1_material: Material(formula='Lu3Al5O12', density=6.73)
2024-04-02 03:00:05,462  - Scintillator_1_thickness: 0.25122472643852234
2024-04-02 03:00:05,462  -
2024-04-02 03:00:06,463  - Iteration: 25
2024-04-02 03:00:06,712  - Cost: 0.0004722730955109
2024-04-02 03:00:06,712  - Filter_1_material: Material(formula='Al', density=2.702)
2024-04-02 03:00:06,712  - Filter_1_thickness: 5.686652183532715
2024-04-02 03:00:06,712  - Reflection_Source_1_voltage: 80.0
2024-04-02 03:00:06,712  - Reflection_Source_2_voltage: 130.0
2024-04-02 03:00:06,712  - Reflection_Source_3_voltage: 180.0
2024-04-02 03:00:06,712  - Reflection_Source_takeoff_angle: 29.745519638061523
2024-04-02 03:00:06,712  - Scintillator_1_material: Material(formula='Lu3Al5O12', density=6.73)
2024-04-02 03:00:06,712  - Scintillator_1_thickness: 0.2411060333251953
2024-04-02 03:00:06,712  -
2024-04-02 03:00:07,673  - Iteration: 30
2024-04-02 03:00:07,927  - Cost: 0.000449935847427696
2024-04-02 03:00:07,927  - Filter_1_material: Material(formula='Al', density=2.702)
2024-04-02 03:00:07,928  - Filter_1_thickness: 6.006340980529785
2024-04-02 03:00:07,928  - Reflection_Source_1_voltage: 80.0
2024-04-02 03:00:07,928  - Reflection_Source_2_voltage: 130.0
2024-04-02 03:00:07,928  - Reflection_Source_3_voltage: 180.0
2024-04-02 03:00:07,928  - Reflection_Source_takeoff_angle: 36.80201721191406
2024-04-02 03:00:07,928  - Scintillator_1_material: Material(formula='Lu3Al5O12', density=6.73)
2024-04-02 03:00:07,928  - Scintillator_1_thickness: 0.2077266424894333
2024-04-02 03:00:07,928  -
2024-04-02 03:00:13,452  - Stopping at epoch 33 because updates are too small.
2024-04-02 03:00:13,452  - Cost: 0.00043903657933697104
2024-04-02 03:00:13,452  - Filter_1_material: Material(formula='Al', density=2.702)
2024-04-02 03:00:13,452  - Filter_1_thickness: 6.308677673339844
2024-04-02 03:00:13,452  - Reflection_Source_1_voltage: 80.0
2024-04-02 03:00:13,452  - Reflection_Source_2_voltage: 130.0
2024-04-02 03:00:13,452  - Reflection_Source_3_voltage: 180.0
2024-04-02 03:00:13,452  - Reflection_Source_takeoff_angle: 41.758270263671875
2024-04-02 03:00:13,452  - Scintillator_1_material: Material(formula='Lu3Al5O12', density=6.73)
2024-04-02 03:00:13,452  - Scintillator_1_thickness: 0.17445433139801025
2024-04-02 03:00:13,452  -
2024-04-02 03:00:13,457  - Start Estimation.
2024-04-02 03:00:13,533  - Initial cost: 9.472611e-04
2024-04-02 03:00:14,655  - Iteration: 5
2024-04-02 03:00:14,907  - Cost: 0.00047338480362668633
2024-04-02 03:00:14,907  - Filter_1_material: Material(formula='Al', density=2.702)
2024-04-02 03:00:14,907  - Filter_1_thickness: 4.443439483642578
2024-04-02 03:00:14,907  - Reflection_Source_1_voltage: 80.0
2024-04-02 03:00:14,907  - Reflection_Source_2_voltage: 130.0
2024-04-02 03:00:14,907  - Reflection_Source_3_voltage: 180.0
2024-04-02 03:00:14,907  - Reflection_Source_takeoff_angle: 25.192277908325195
2024-04-02 03:00:14,907  - Scintillator_1_material: Material(formula='CdWO4', density=7.9)
2024-04-02 03:00:14,907  - Scintillator_1_thickness: 0.23827479779720306
2024-04-02 03:00:14,907  -
2024-04-02 03:00:15,955  - Iteration: 10
2024-04-02 03:00:16,203  - Cost: 0.000401596276788041
2024-04-02 03:00:16,203  - Filter_1_material: Material(formula='Al', density=2.702)
2024-04-02 03:00:16,203  - Filter_1_thickness: 4.205316543579102
2024-04-02 03:00:16,203  - Reflection_Source_1_voltage: 80.0
2024-04-02 03:00:16,203  - Reflection_Source_2_voltage: 130.0
2024-04-02 03:00:16,203  - Reflection_Source_3_voltage: 180.0
2024-04-02 03:00:16,203  - Reflection_Source_takeoff_angle: 25.186967849731445
2024-04-02 03:00:16,203  - Scintillator_1_material: Material(formula='CdWO4', density=7.9)
2024-04-02 03:00:16,203  - Scintillator_1_thickness: 0.23729254305362701
2024-04-02 03:00:16,203  -
2024-04-02 03:00:17,224  - Iteration: 15
2024-04-02 03:00:17,478  - Cost: 0.00038769817911088467
2024-04-02 03:00:17,478  - Filter_1_material: Material(formula='Al', density=2.702)
2024-04-02 03:00:17,478  - Filter_1_thickness: 4.069779872894287
2024-04-02 03:00:17,478  - Reflection_Source_1_voltage: 80.0
2024-04-02 03:00:17,478  - Reflection_Source_2_voltage: 130.0
2024-04-02 03:00:17,478  - Reflection_Source_3_voltage: 180.0
2024-04-02 03:00:17,478  - Reflection_Source_takeoff_angle: 25.12152671813965
2024-04-02 03:00:17,478  - Scintillator_1_material: Material(formula='CdWO4', density=7.9)
2024-04-02 03:00:17,478  - Scintillator_1_thickness: 0.2400694340467453
2024-04-02 03:00:17,478  -
2024-04-02 03:00:18,480  - Iteration: 20
2024-04-02 03:00:18,731  - Cost: 0.0003818201075773686
2024-04-02 03:00:18,731  - Filter_1_material: Material(formula='Al', density=2.702)
2024-04-02 03:00:18,731  - Filter_1_thickness: 3.9377169609069824
2024-04-02 03:00:18,731  - Reflection_Source_1_voltage: 80.0
2024-04-02 03:00:18,731  - Reflection_Source_2_voltage: 130.0
2024-04-02 03:00:18,731  - Reflection_Source_3_voltage: 180.0
2024-04-02 03:00:18,731  - Reflection_Source_takeoff_angle: 24.986980438232422
2024-04-02 03:00:18,731  - Scintillator_1_material: Material(formula='CdWO4', density=7.9)
2024-04-02 03:00:18,731  - Scintillator_1_thickness: 0.24639812111854553
2024-04-02 03:00:18,731  -
2024-04-02 03:00:19,717  - Iteration: 25
2024-04-02 03:00:19,967  - Cost: 0.00037303887074813247
2024-04-02 03:00:19,967  - Filter_1_material: Material(formula='Al', density=2.702)
2024-04-02 03:00:19,967  - Filter_1_thickness: 3.6945018768310547
2024-04-02 03:00:19,967  - Reflection_Source_1_voltage: 80.0
2024-04-02 03:00:19,967  - Reflection_Source_2_voltage: 130.0
2024-04-02 03:00:19,967  - Reflection_Source_3_voltage: 180.0
2024-04-02 03:00:19,967  - Reflection_Source_takeoff_angle: 24.603506088256836
2024-04-02 03:00:19,967  - Scintillator_1_material: Material(formula='CdWO4', density=7.9)
2024-04-02 03:00:19,967  - Scintillator_1_thickness: 0.2644042372703552
2024-04-02 03:00:19,967  -
2024-04-02 03:00:20,968  - Iteration: 30
2024-04-02 03:00:21,217  - Cost: 0.0003525502688717097
2024-04-02 03:00:21,217  - Filter_1_material: Material(formula='Al', density=2.702)
2024-04-02 03:00:21,217  - Filter_1_thickness: 3.344324827194214
2024-04-02 03:00:21,217  - Reflection_Source_1_voltage: 80.0
2024-04-02 03:00:21,217  - Reflection_Source_2_voltage: 130.0
2024-04-02 03:00:21,217  - Reflection_Source_3_voltage: 180.0
2024-04-02 03:00:21,217  - Reflection_Source_takeoff_angle: 23.74053955078125
2024-04-02 03:00:21,217  - Scintillator_1_material: Material(formula='CdWO4', density=7.9)
2024-04-02 03:00:21,217  - Scintillator_1_thickness: 0.30434057116508484
2024-04-02 03:00:21,217  -
2024-04-02 03:00:22,199  - Iteration: 35
2024-04-02 03:00:22,446  - Cost: 0.0003406317555345595
2024-04-02 03:00:22,446  - Filter_1_material: Material(formula='Al', density=2.702)
2024-04-02 03:00:22,446  - Filter_1_thickness: 3.1114468574523926
2024-04-02 03:00:22,446  - Reflection_Source_1_voltage: 80.0
2024-04-02 03:00:22,446  - Reflection_Source_2_voltage: 130.0
2024-04-02 03:00:22,446  - Reflection_Source_3_voltage: 180.0
2024-04-02 03:00:22,446  - Reflection_Source_takeoff_angle: 23.250713348388672
2024-04-02 03:00:22,446  - Scintillator_1_material: Material(formula='CdWO4', density=7.9)
2024-04-02 03:00:22,446  - Scintillator_1_thickness: 0.3392617404460907
2024-04-02 03:00:22,446  -
2024-04-02 03:00:23,338  - Iteration: 40
2024-04-02 03:00:23,584  - Cost: 0.00033566312049515545
2024-04-02 03:00:23,584  - Filter_1_material: Material(formula='Al', density=2.702)
2024-04-02 03:00:23,584  - Filter_1_thickness: 2.967151641845703
2024-04-02 03:00:23,584  - Reflection_Source_1_voltage: 80.0
2024-04-02 03:00:23,584  - Reflection_Source_2_voltage: 130.0
2024-04-02 03:00:23,584  - Reflection_Source_3_voltage: 180.0
2024-04-02 03:00:23,584  - Reflection_Source_takeoff_angle: 23.35192108154297
2024-04-02 03:00:23,584  - Scintillator_1_material: Material(formula='CdWO4', density=7.9)
2024-04-02 03:00:23,584  - Scintillator_1_thickness: 0.3658818304538727
2024-04-02 03:00:23,584  -
2024-04-02 03:00:24,597  - Iteration: 45
2024-04-02 03:00:24,847  - Cost: 0.00032749518868513405
2024-04-02 03:00:24,847  - Filter_1_material: Material(formula='Al', density=2.702)
2024-04-02 03:00:24,847  - Filter_1_thickness: 2.8154993057250977
2024-04-02 03:00:24,847  - Reflection_Source_1_voltage: 80.0
2024-04-02 03:00:24,847  - Reflection_Source_2_voltage: 130.0
2024-04-02 03:00:24,847  - Reflection_Source_3_voltage: 180.0
2024-04-02 03:00:24,847  - Reflection_Source_takeoff_angle: 26.554733276367188
2024-04-02 03:00:24,847  - Scintillator_1_material: Material(formula='CdWO4', density=7.9)
2024-04-02 03:00:24,847  - Scintillator_1_thickness: 0.4130983352661133
2024-04-02 03:00:24,847  -
2024-04-02 03:00:25,792  - Iteration: 50
2024-04-02 03:00:26,043  - Cost: 0.000318691338179633
2024-04-02 03:00:26,043  - Filter_1_material: Material(formula='Al', density=2.702)
2024-04-02 03:00:26,043  - Filter_1_thickness: 2.727914333343506
2024-04-02 03:00:26,043  - Reflection_Source_1_voltage: 80.0
2024-04-02 03:00:26,043  - Reflection_Source_2_voltage: 130.0
2024-04-02 03:00:26,043  - Reflection_Source_3_voltage: 180.0
2024-04-02 03:00:26,043  - Reflection_Source_takeoff_angle: 33.654937744140625
2024-04-02 03:00:26,043  - Scintillator_1_material: Material(formula='CdWO4', density=7.9)
2024-04-02 03:00:26,043  - Scintillator_1_thickness: 0.4686979055404663
2024-04-02 03:00:26,043  -
2024-04-02 03:00:27,036  - Iteration: 55
2024-04-02 03:00:27,281  - Cost: 0.0003134354774374515
2024-04-02 03:00:27,281  - Filter_1_material: Material(formula='Al', density=2.702)
2024-04-02 03:00:27,281  - Filter_1_thickness: 2.6950132846832275
2024-04-02 03:00:27,281  - Reflection_Source_1_voltage: 80.0
2024-04-02 03:00:27,281  - Reflection_Source_2_voltage: 130.0
2024-04-02 03:00:27,281  - Reflection_Source_3_voltage: 180.0
2024-04-02 03:00:27,281  - Reflection_Source_takeoff_angle: 41.49712371826172
2024-04-02 03:00:27,281  - Scintillator_1_material: Material(formula='CdWO4', density=7.9)
2024-04-02 03:00:27,281  - Scintillator_1_thickness: 0.5
2024-04-02 03:00:27,281  -
2024-04-02 03:00:32,316  - Stopping at epoch 57 because updates are too small.
2024-04-02 03:00:32,316  - Cost: 0.0003117237356491387
2024-04-02 03:00:32,316  - Filter_1_material: Material(formula='Al', density=2.702)
2024-04-02 03:00:32,316  - Filter_1_thickness: 2.7296905517578125
2024-04-02 03:00:32,316  - Reflection_Source_1_voltage: 80.0
2024-04-02 03:00:32,316  - Reflection_Source_2_voltage: 130.0
2024-04-02 03:00:32,316  - Reflection_Source_3_voltage: 180.0
2024-04-02 03:00:32,316  - Reflection_Source_takeoff_angle: 45.0
2024-04-02 03:00:32,316  - Scintillator_1_material: Material(formula='CdWO4', density=7.9)
2024-04-02 03:00:32,316  - Scintillator_1_thickness: 0.5
2024-04-02 03:00:32,316  -
2024-04-02 03:00:32,320  - Start Estimation.
2024-04-02 03:00:32,393  - Initial cost: 6.648309e-03
2024-04-02 03:00:33,478  - Iteration: 5
2024-04-02 03:00:33,726  - Cost: 0.00281967269256711
2024-04-02 03:00:33,726  - Filter_1_material: Material(formula='Al', density=2.702)
2024-04-02 03:00:33,726  - Filter_1_thickness: 6.454982280731201
2024-04-02 03:00:33,726  - Reflection_Source_1_voltage: 80.0
2024-04-02 03:00:33,726  - Reflection_Source_2_voltage: 130.0
2024-04-02 03:00:33,726  - Reflection_Source_3_voltage: 180.0
2024-04-02 03:00:33,726  - Reflection_Source_takeoff_angle: 23.579696655273438
2024-04-02 03:00:33,726  - Scintillator_1_material: Material(formula='Y3Al5O12', density=4.56)
2024-04-02 03:00:33,726  - Scintillator_1_thickness: 0.2768748998641968
2024-04-02 03:00:33,726  -
2024-04-02 03:00:34,698  - Iteration: 10
2024-04-02 03:00:34,941  - Cost: 0.0017169973580166698
2024-04-02 03:00:34,941  - Filter_1_material: Material(formula='Al', density=2.702)
2024-04-02 03:00:34,941  - Filter_1_thickness: 7.304877281188965
2024-04-02 03:00:34,941  - Reflection_Source_1_voltage: 80.0
2024-04-02 03:00:34,941  - Reflection_Source_2_voltage: 130.0
2024-04-02 03:00:34,941  - Reflection_Source_3_voltage: 180.0
2024-04-02 03:00:34,941  - Reflection_Source_takeoff_angle: 21.121639251708984
2024-04-02 03:00:34,941  - Scintillator_1_material: Material(formula='Y3Al5O12', density=4.56)
2024-04-02 03:00:34,941  - Scintillator_1_thickness: 0.2974456548690796
2024-04-02 03:00:34,941  -
2024-04-02 03:00:35,922  - Iteration: 15
2024-04-02 03:00:36,167  - Cost: 0.0013854459393769503
2024-04-02 03:00:36,167  - Filter_1_material: Material(formula='Al', density=2.702)
2024-04-02 03:00:36,167  - Filter_1_thickness: 7.7242751121521
2024-04-02 03:00:36,167  - Reflection_Source_1_voltage: 80.0
2024-04-02 03:00:36,167  - Reflection_Source_2_voltage: 130.0
2024-04-02 03:00:36,167  - Reflection_Source_3_voltage: 180.0
2024-04-02 03:00:36,167  - Reflection_Source_takeoff_angle: 17.61815643310547
2024-04-02 03:00:36,167  - Scintillator_1_material: Material(formula='Y3Al5O12', density=4.56)
2024-04-02 03:00:36,167  - Scintillator_1_thickness: 0.3125218152999878
2024-04-02 03:00:36,167  -
2024-04-02 03:00:37,135  - Iteration: 20
2024-04-02 03:00:37,377  - Cost: 0.0012557992013171315
2024-04-02 03:00:37,377  - Filter_1_material: Material(formula='Al', density=2.702)
2024-04-02 03:00:37,377  - Filter_1_thickness: 7.82674503326416
2024-04-02 03:00:37,377  - Reflection_Source_1_voltage: 80.0
2024-04-02 03:00:37,377  - Reflection_Source_2_voltage: 130.0
2024-04-02 03:00:37,377  - Reflection_Source_3_voltage: 180.0
2024-04-02 03:00:37,377  - Reflection_Source_takeoff_angle: 13.253232955932617
2024-04-02 03:00:37,377  - Scintillator_1_material: Material(formula='Y3Al5O12', density=4.56)
2024-04-02 03:00:37,377  - Scintillator_1_thickness: 0.32409724593162537
2024-04-02 03:00:37,377  -
2024-04-02 03:00:38,352  - Iteration: 25
2024-04-02 03:00:38,596  - Cost: 0.0011804269161075354
2024-04-02 03:00:38,596  - Filter_1_material: Material(formula='Al', density=2.702)
2024-04-02 03:00:38,596  - Filter_1_thickness: 7.620120048522949
2024-04-02 03:00:38,596  - Reflection_Source_1_voltage: 80.0
2024-04-02 03:00:38,596  - Reflection_Source_2_voltage: 130.0
2024-04-02 03:00:38,596  - Reflection_Source_3_voltage: 180.0
2024-04-02 03:00:38,596  - Reflection_Source_takeoff_angle: 9.585809707641602
2024-04-02 03:00:38,596  - Scintillator_1_material: Material(formula='Y3Al5O12', density=4.56)
2024-04-02 03:00:38,596  - Scintillator_1_thickness: 0.33127760887145996
2024-04-02 03:00:38,596  -
2024-04-02 03:00:39,565  - Iteration: 30
2024-04-02 03:00:39,808  - Cost: 0.0010051369899883866
2024-04-02 03:00:39,808  - Filter_1_material: Material(formula='Al', density=2.702)
2024-04-02 03:00:39,808  - Filter_1_thickness: 6.8038482666015625
2024-04-02 03:00:39,808  - Reflection_Source_1_voltage: 80.0
2024-04-02 03:00:39,808  - Reflection_Source_2_voltage: 130.0
2024-04-02 03:00:39,808  - Reflection_Source_3_voltage: 180.0
2024-04-02 03:00:39,808  - Reflection_Source_takeoff_angle: 6.133750915527344
2024-04-02 03:00:39,808  - Scintillator_1_material: Material(formula='Y3Al5O12', density=4.56)
2024-04-02 03:00:39,808  - Scintillator_1_thickness: 0.33721500635147095
2024-04-02 03:00:39,808  -
2024-04-02 03:00:45,496  - Stopping at epoch 34 because updates are too small.
2024-04-02 03:00:45,496  - Cost: 0.0008062387933023274
2024-04-02 03:00:45,496  - Filter_1_material: Material(formula='Al', density=2.702)
2024-04-02 03:00:45,496  - Filter_1_thickness: 5.865449905395508
2024-04-02 03:00:45,496  - Reflection_Source_1_voltage: 80.0
2024-04-02 03:00:45,496  - Reflection_Source_2_voltage: 130.0
2024-04-02 03:00:45,496  - Reflection_Source_3_voltage: 180.0
2024-04-02 03:00:45,496  - Reflection_Source_takeoff_angle: 5.0
2024-04-02 03:00:45,496  - Scintillator_1_material: Material(formula='Y3Al5O12', density=4.56)
2024-04-02 03:00:45,496  - Scintillator_1_thickness: 0.34212958812713623
2024-04-02 03:00:45,496  -
2024-04-02 03:00:45,500  - Start Estimation.
2024-04-02 03:00:45,575  - Initial cost: 6.338646e-04
2024-04-02 03:00:47,181  - Iteration: 5
2024-04-02 03:00:47,424  - Cost: 0.0005439293454401195
2024-04-02 03:00:47,424  - Filter_1_material: Material(formula='Al', density=2.702)
2024-04-02 03:00:47,424  - Filter_1_thickness: 4.163886547088623
2024-04-02 03:00:47,424  - Reflection_Source_1_voltage: 80.0
2024-04-02 03:00:47,424  - Reflection_Source_2_voltage: 130.0
2024-04-02 03:00:47,424  - Reflection_Source_3_voltage: 180.0
2024-04-02 03:00:47,424  - Reflection_Source_takeoff_angle: 21.569196701049805
2024-04-02 03:00:47,424  - Scintillator_1_material: Material(formula='Bi4Ge3O12', density=7.13)
2024-04-02 03:00:47,424  - Scintillator_1_thickness: 0.3127939999103546
2024-04-02 03:00:47,424  -
2024-04-02 03:00:48,400  - Iteration: 10
2024-04-02 03:00:48,644  - Cost: 0.0004953665775246918
2024-04-02 03:00:48,644  - Filter_1_material: Material(formula='Al', density=2.702)
2024-04-02 03:00:48,644  - Filter_1_thickness: 3.8033902645111084
2024-04-02 03:00:48,644  - Reflection_Source_1_voltage: 80.0
2024-04-02 03:00:48,644  - Reflection_Source_2_voltage: 130.0
2024-04-02 03:00:48,644  - Reflection_Source_3_voltage: 180.0
2024-04-02 03:00:48,644  - Reflection_Source_takeoff_angle: 19.11410903930664
2024-04-02 03:00:48,644  - Scintillator_1_material: Material(formula='Bi4Ge3O12', density=7.13)
2024-04-02 03:00:48,644  - Scintillator_1_thickness: 0.3599347174167633
2024-04-02 03:00:48,644  -
2024-04-02 03:00:49,540  - Iteration: 15
2024-04-02 03:00:49,738  - Cost: 0.00038438226329162717
2024-04-02 03:00:49,738  - Filter_1_material: Material(formula='Al', density=2.702)
2024-04-02 03:00:49,738  - Filter_1_thickness: 2.6046953201293945
2024-04-02 03:00:49,738  - Reflection_Source_1_voltage: 80.0
2024-04-02 03:00:49,738  - Reflection_Source_2_voltage: 130.0
2024-04-02 03:00:49,738  - Reflection_Source_3_voltage: 180.0
2024-04-02 03:00:49,738  - Reflection_Source_takeoff_angle: 13.573379516601562
2024-04-02 03:00:49,738  - Scintillator_1_material: Material(formula='Bi4Ge3O12', density=7.13)
2024-04-02 03:00:49,738  - Scintillator_1_thickness: 0.4952748119831085
2024-04-02 03:00:49,738  -
2024-04-02 03:00:50,610  - Iteration: 20
2024-04-02 03:00:54,842  - Cost: 0.00037150795105844736
2024-04-02 03:00:54,842  - Filter_1_material: Material(formula='Al', density=2.702)
2024-04-02 03:00:54,842  - Filter_1_thickness: 2.397596597671509
2024-04-02 03:00:54,842  - Reflection_Source_1_voltage: 80.0
2024-04-02 03:00:54,843  - Reflection_Source_2_voltage: 130.0
2024-04-02 03:00:54,843  - Reflection_Source_3_voltage: 180.0
2024-04-02 03:00:54,843  - Reflection_Source_takeoff_angle: 12.957965850830078
2024-04-02 03:00:54,843  - Scintillator_1_material: Material(formula='Bi4Ge3O12', density=7.13)
2024-04-02 03:00:54,843  - Scintillator_1_thickness: 0.5
2024-04-02 03:00:54,843  -
2024-04-02 03:00:54,843  - Stopping at epoch 20 because updates are too small.
2024-04-02 03:00:54,843  - Cost: 0.00037150795105844736
2024-04-02 03:00:54,843  - Filter_1_material: Material(formula='Al', density=2.702)
2024-04-02 03:00:54,843  - Filter_1_thickness: 2.397596597671509
2024-04-02 03:00:54,843  - Reflection_Source_1_voltage: 80.0
2024-04-02 03:00:54,843  - Reflection_Source_2_voltage: 130.0
2024-04-02 03:00:54,843  - Reflection_Source_3_voltage: 180.0
2024-04-02 03:00:54,843  - Reflection_Source_takeoff_angle: 12.957965850830078
2024-04-02 03:00:54,843  - Scintillator_1_material: Material(formula='Bi4Ge3O12', density=7.13)
2024-04-02 03:00:54,843  - Scintillator_1_thickness: 0.5
2024-04-02 03:00:54,843  -
2024-04-02 03:00:54,846  - Start Estimation.
2024-04-02 03:00:54,919  - Initial cost: 8.741082e-04
2024-04-02 03:00:55,993  - Iteration: 5
2024-04-02 03:00:56,247  - Cost: 0.0005134467501193285
2024-04-02 03:00:56,247  - Filter_1_material: Material(formula='Al', density=2.702)
2024-04-02 03:00:56,247  - Filter_1_thickness: 4.537078857421875
2024-04-02 03:00:56,247  - Reflection_Source_1_voltage: 80.0
2024-04-02 03:00:56,247  - Reflection_Source_2_voltage: 130.0
2024-04-02 03:00:56,247  - Reflection_Source_3_voltage: 180.0
2024-04-02 03:00:56,247  - Reflection_Source_takeoff_angle: 25.411901473999023
2024-04-02 03:00:56,247  - Scintillator_1_material: Material(formula='Gd2O2S', density=7.32)
2024-04-02 03:00:56,247  - Scintillator_1_thickness: 0.2393561154603958
2024-04-02 03:00:56,247  -
2024-04-02 03:00:57,222  - Iteration: 10
2024-04-02 03:00:57,475  - Cost: 0.000443244498455897
2024-04-02 03:00:57,475  - Filter_1_material: Material(formula='Al', density=2.702)
2024-04-02 03:00:57,475  - Filter_1_thickness: 4.3907365798950195
2024-04-02 03:00:57,475  - Reflection_Source_1_voltage: 80.0
2024-04-02 03:00:57,475  - Reflection_Source_2_voltage: 130.0
2024-04-02 03:00:57,475  - Reflection_Source_3_voltage: 180.0
2024-04-02 03:00:57,475  - Reflection_Source_takeoff_angle: 25.820884704589844
2024-04-02 03:00:57,475  - Scintillator_1_material: Material(formula='Gd2O2S', density=7.32)
2024-04-02 03:00:57,475  - Scintillator_1_thickness: 0.22685064375400543
2024-04-02 03:00:57,475  -
2024-04-02 03:00:58,449  - Iteration: 15
2024-04-02 03:00:58,691  - Cost: 0.0004127573047298938
2024-04-02 03:00:58,691  - Filter_1_material: Material(formula='Al', density=2.702)
2024-04-02 03:00:58,691  - Filter_1_thickness: 4.368483066558838
2024-04-02 03:00:58,691  - Reflection_Source_1_voltage: 80.0
2024-04-02 03:00:58,691  - Reflection_Source_2_voltage: 130.0
2024-04-02 03:00:58,691  - Reflection_Source_3_voltage: 180.0
2024-04-02 03:00:58,691  - Reflection_Source_takeoff_angle: 26.419998168945312
2024-04-02 03:00:58,691  - Scintillator_1_material: Material(formula='Gd2O2S', density=7.32)
2024-04-02 03:00:58,691  - Scintillator_1_thickness: 0.2079685926437378
2024-04-02 03:00:58,691  -
2024-04-02 03:00:59,663  - Iteration: 20
2024-04-02 03:00:59,905  - Cost: 0.0003684205294121057
2024-04-02 03:00:59,906  - Filter_1_material: Material(formula='Al', density=2.702)
2024-04-02 03:00:59,906  - Filter_1_thickness: 4.532937049865723
2024-04-02 03:00:59,906  - Reflection_Source_1_voltage: 80.0
2024-04-02 03:00:59,906  - Reflection_Source_2_voltage: 130.0
2024-04-02 03:00:59,906  - Reflection_Source_3_voltage: 180.0
2024-04-02 03:00:59,906  - Reflection_Source_takeoff_angle: 27.83769989013672
2024-04-02 03:00:59,906  - Scintillator_1_material: Material(formula='Gd2O2S', density=7.32)
2024-04-02 03:00:59,906  - Scintillator_1_thickness: 0.16366927325725555
2024-04-02 03:00:59,906  -
2024-04-02 03:01:00,890  - Iteration: 25
2024-04-02 03:01:01,138  - Cost: 0.0003131808480247855
2024-04-02 03:01:01,138  - Filter_1_material: Material(formula='Al', density=2.702)
2024-04-02 03:01:01,138  - Filter_1_thickness: 4.961775779724121
2024-04-02 03:01:01,138  - Reflection_Source_1_voltage: 80.0
2024-04-02 03:01:01,138  - Reflection_Source_2_voltage: 130.0
2024-04-02 03:01:01,138  - Reflection_Source_3_voltage: 180.0
2024-04-02 03:01:01,138  - Reflection_Source_takeoff_angle: 29.727699279785156
2024-04-02 03:01:01,138  - Scintillator_1_material: Material(formula='Gd2O2S', density=7.32)
2024-04-02 03:01:01,138  - Scintillator_1_thickness: 0.1073579490184784
2024-04-02 03:01:01,138  -
2024-04-02 03:01:02,111  - Iteration: 30
2024-04-02 03:01:02,356  - Cost: 0.00030030912603251636
2024-04-02 03:01:02,356  - Filter_1_material: Material(formula='Al', density=2.702)
2024-04-02 03:01:02,356  - Filter_1_thickness: 5.188035488128662
2024-04-02 03:01:02,356  - Reflection_Source_1_voltage: 80.0
2024-04-02 03:01:02,356  - Reflection_Source_2_voltage: 130.0
2024-04-02 03:01:02,356  - Reflection_Source_3_voltage: 180.0
2024-04-02 03:01:02,357  - Reflection_Source_takeoff_angle: 30.53049087524414
2024-04-02 03:01:02,357  - Scintillator_1_material: Material(formula='Gd2O2S', density=7.32)
2024-04-02 03:01:02,357  - Scintillator_1_thickness: 0.07852071523666382
2024-04-02 03:01:02,357  -
2024-04-02 03:01:03,192  - Iteration: 35
2024-04-02 03:01:03,435  - Cost: 0.0002971950452774763
2024-04-02 03:01:03,435  - Filter_1_material: Material(formula='Al', density=2.702)
2024-04-02 03:01:03,435  - Filter_1_thickness: 5.2993974685668945
2024-04-02 03:01:03,435  - Reflection_Source_1_voltage: 80.0
2024-04-02 03:01:03,435  - Reflection_Source_2_voltage: 130.0
2024-04-02 03:01:03,435  - Reflection_Source_3_voltage: 180.0
2024-04-02 03:01:03,435  - Reflection_Source_takeoff_angle: 30.28444480895996
2024-04-02 03:01:03,435  - Scintillator_1_material: Material(formula='Gd2O2S', density=7.32)
2024-04-02 03:01:03,436  - Scintillator_1_thickness: 0.0644669309258461
2024-04-02 03:01:03,436  -
2024-04-02 03:01:04,462  - Iteration: 40
2024-04-02 03:01:04,706  - Cost: 0.0002905250003095716
2024-04-02 03:01:04,707  - Filter_1_material: Material(formula='Al', density=2.702)
2024-04-02 03:01:04,707  - Filter_1_thickness: 5.556292533874512
2024-04-02 03:01:04,707  - Reflection_Source_1_voltage: 80.0
2024-04-02 03:01:04,707  - Reflection_Source_2_voltage: 130.0
2024-04-02 03:01:04,707  - Reflection_Source_3_voltage: 180.0
2024-04-02 03:01:04,707  - Reflection_Source_takeoff_angle: 22.823043823242188
2024-04-02 03:01:04,707  - Scintillator_1_material: Material(formula='Gd2O2S', density=7.32)
2024-04-02 03:01:04,707  - Scintillator_1_thickness: 0.009999999776482582
2024-04-02 03:01:04,707  -
2024-04-02 03:01:09,444  - Stopping at epoch 41 because updates are too small.
2024-04-02 03:01:09,444  - Cost: 0.00029052470927126706
2024-04-02 03:01:09,444  - Filter_1_material: Material(formula='Al', density=2.702)
2024-04-02 03:01:09,444  - Filter_1_thickness: 5.5562920570373535
2024-04-02 03:01:09,444  - Reflection_Source_1_voltage: 80.0
2024-04-02 03:01:09,444  - Reflection_Source_2_voltage: 130.0
2024-04-02 03:01:09,444  - Reflection_Source_3_voltage: 180.0
2024-04-02 03:01:09,444  - Reflection_Source_takeoff_angle: 22.82304573059082
2024-04-02 03:01:09,444  - Scintillator_1_material: Material(formula='Gd2O2S', density=7.32)
2024-04-02 03:01:09,444  - Scintillator_1_thickness: 0.009999999776482582
2024-04-02 03:01:09,444  -
2024-04-02 03:01:09,448  - Start Estimation.
2024-04-02 03:01:09,520  - Initial cost: 2.071736e-01
2024-04-02 03:01:14,547  - Stopping at epoch 2 because updates are too small.
2024-04-02 03:01:14,547  - Cost: 0.11473650485277176
2024-04-02 03:01:14,547  - Filter_1_material: Material(formula='Cu', density=8.92)
2024-04-02 03:01:14,547  - Filter_1_thickness: 0.0
2024-04-02 03:01:14,547  - Reflection_Source_1_voltage: 80.0
2024-04-02 03:01:14,547  - Reflection_Source_2_voltage: 130.0
2024-04-02 03:01:14,547  - Reflection_Source_3_voltage: 180.0
2024-04-02 03:01:14,547  - Reflection_Source_takeoff_angle: 25.1968994140625
2024-04-02 03:01:14,547  - Scintillator_1_material: Material(formula='CsI', density=4.51)
2024-04-02 03:01:14,547  - Scintillator_1_thickness: 0.22861291468143463
2024-04-02 03:01:14,547  -
2024-04-02 03:01:14,550  - Start Estimation.
2024-04-02 03:01:14,626  - Initial cost: 2.114715e-01
2024-04-02 03:01:19,737  - Stopping at epoch 2 because updates are too small.
2024-04-02 03:01:19,737  - Cost: 0.11988985538482666
2024-04-02 03:01:19,737  - Filter_1_material: Material(formula='Cu', density=8.92)
2024-04-02 03:01:19,737  - Filter_1_thickness: 0.0
2024-04-02 03:01:19,737  - Reflection_Source_1_voltage: 80.0
2024-04-02 03:01:19,737  - Reflection_Source_2_voltage: 130.0
2024-04-02 03:01:19,737  - Reflection_Source_3_voltage: 180.0
2024-04-02 03:01:19,737  - Reflection_Source_takeoff_angle: 25.188079833984375
2024-04-02 03:01:19,737  - Scintillator_1_material: Material(formula='Gd3Al2Ga3O12', density=6.63)
2024-04-02 03:01:19,737  - Scintillator_1_thickness: 0.2272968292236328
2024-04-02 03:01:19,737  -
2024-04-02 03:01:19,740  - Start Estimation.
2024-04-02 03:01:19,812  - Initial cost: 2.169151e-01
2024-04-02 03:01:24,938  - Stopping at epoch 2 because updates are too small.
2024-04-02 03:01:24,938  - Cost: 0.11772817373275757
2024-04-02 03:01:24,938  - Filter_1_material: Material(formula='Cu', density=8.92)
2024-04-02 03:01:24,938  - Filter_1_thickness: 0.0
2024-04-02 03:01:24,938  - Reflection_Source_1_voltage: 80.0
2024-04-02 03:01:24,938  - Reflection_Source_2_voltage: 130.0
2024-04-02 03:01:24,938  - Reflection_Source_3_voltage: 180.0
2024-04-02 03:01:24,938  - Reflection_Source_takeoff_angle: 25.177400588989258
2024-04-02 03:01:24,938  - Scintillator_1_material: Material(formula='Lu3Al5O12', density=6.73)
2024-04-02 03:01:24,938  - Scintillator_1_thickness: 0.23855294287204742
2024-04-02 03:01:24,938  -
2024-04-02 03:01:24,942  - Start Estimation.
2024-04-02 03:01:25,013  - Initial cost: 2.132089e-01
2024-04-02 03:01:30,060  - Stopping at epoch 2 because updates are too small.
2024-04-02 03:01:30,060  - Cost: 0.0898149162530899
2024-04-02 03:01:30,060  - Filter_1_material: Material(formula='Cu', density=8.92)
2024-04-02 03:01:30,060  - Filter_1_thickness: 0.0
2024-04-02 03:01:30,060  - Reflection_Source_1_voltage: 80.0
2024-04-02 03:01:30,060  - Reflection_Source_2_voltage: 130.0
2024-04-02 03:01:30,061  - Reflection_Source_3_voltage: 180.0
2024-04-02 03:01:30,061  - Reflection_Source_takeoff_angle: 25.182764053344727
2024-04-02 03:01:30,061  - Scintillator_1_material: Material(formula='CdWO4', density=7.9)
2024-04-02 03:01:30,061  - Scintillator_1_thickness: 0.24393749237060547
2024-04-02 03:01:30,061  -
2024-04-02 03:01:30,064  - Start Estimation.
2024-04-02 03:01:30,137  - Initial cost: 2.005433e-01
2024-04-02 03:01:35,225  - Stopping at epoch 2 because updates are too small.
2024-04-02 03:01:35,225  - Cost: 0.1908532828092575
2024-04-02 03:01:35,225  - Filter_1_material: Material(formula='Cu', density=8.92)
2024-04-02 03:01:35,225  - Filter_1_thickness: 0.0
2024-04-02 03:01:35,225  - Reflection_Source_1_voltage: 80.0
2024-04-02 03:01:35,225  - Reflection_Source_2_voltage: 130.0
2024-04-02 03:01:35,225  - Reflection_Source_3_voltage: 180.0
2024-04-02 03:01:35,225  - Reflection_Source_takeoff_angle: 25.21394920349121
2024-04-02 03:01:35,225  - Scintillator_1_material: Material(formula='Y3Al5O12', density=4.56)
2024-04-02 03:01:35,225  - Scintillator_1_thickness: 0.2443053424358368
2024-04-02 03:01:35,225  -
2024-04-02 03:01:35,229  - Start Estimation.
2024-04-02 03:01:35,303  - Initial cost: 2.131056e-01
2024-04-02 03:01:40,289  - Stopping at epoch 2 because updates are too small.
2024-04-02 03:01:40,289  - Cost: 0.08926950395107269
2024-04-02 03:01:40,289  - Filter_1_material: Material(formula='Cu', density=8.92)
2024-04-02 03:01:40,289  - Filter_1_thickness: 0.0
2024-04-02 03:01:40,289  - Reflection_Source_1_voltage: 80.0
2024-04-02 03:01:40,289  - Reflection_Source_2_voltage: 130.0
2024-04-02 03:01:40,289  - Reflection_Source_3_voltage: 180.0
2024-04-02 03:01:40,289  - Reflection_Source_takeoff_angle: 25.190994262695312
2024-04-02 03:01:40,289  - Scintillator_1_material: Material(formula='Bi4Ge3O12', density=7.13)
2024-04-02 03:01:40,289  - Scintillator_1_thickness: 0.2410043627023697
2024-04-02 03:01:40,289  -
2024-04-02 03:01:40,293  - Start Estimation.
2024-04-02 03:01:40,365  - Initial cost: 2.149834e-01
2024-04-02 03:01:45,473  - Stopping at epoch 2 because updates are too small.
2024-04-02 03:01:45,473  - Cost: 0.10058465600013733
2024-04-02 03:01:45,473  - Filter_1_material: Material(formula='Cu', density=8.92)
2024-04-02 03:01:45,473  - Filter_1_thickness: 0.0
2024-04-02 03:01:45,473  - Reflection_Source_1_voltage: 80.0
2024-04-02 03:01:45,473  - Reflection_Source_2_voltage: 130.0
2024-04-02 03:01:45,473  - Reflection_Source_3_voltage: 180.0
2024-04-02 03:01:45,473  - Reflection_Source_takeoff_angle: 25.179948806762695
2024-04-02 03:01:45,473  - Scintillator_1_material: Material(formula='Gd2O2S', density=7.32)
2024-04-02 03:01:45,473  - Scintillator_1_thickness: 0.21927107870578766
2024-04-02 03:01:45,473  -

D. Result Analysis

Retrieve the estimated parameter from Estimator.

[9]:
res_spec_models = Estimator.get_spec_models()
res_params = Estimator.get_params()

# Function to print a section of the table
def print_params(params):
    with (torch.no_grad()):
        for key, value in sorted(params.items()):
            if isinstance(value, tuple):
                print(f"{key}: {value[0].numpy()}")
            else:
                print(f"{key}: {value}")
        print()


# Print the table sections
print('Ground Truth Parameters:')
for gt_source in gt_sources:
    print(gt_source.get_params())
print(gt_filter.get_params())
print(gt_scint.get_params())

print('Estimated Parameters:')
# print_params(res_params)
print(res_params)

# Create a figure and axes objects for the subplot
fig, axs = plt.subplots(1, 3, figsize=(15, 5))

# Plot each subplot
for i in range(3):
    ax = axs[i]
    with torch.no_grad():
        ax.plot(energies, (gt_sources[i](energies) * gt_filter(energies) * gt_scint(energies)).numpy(),
                label='Ground Truth')
        ax.plot(energies, (
                    res_spec_models[i][0](energies) * res_spec_models[i][1](energies) * res_spec_models[i][2](
                energies)).numpy(), '--', label='Estimate')

    # Add legend
    ax.legend()

    # Add subplot title
    ax.set_title(f'{[80, 130, 180][i]} kV Spectral Response')

# Add common title
fig.suptitle('Comparison of Ground Truth and Estimate')

# Show the plot
plt.show()
Ground Truth Parameters:
{'Reflection_Source_4_voltage': tensor(80.), 'Reflection_Source_takeoff_angle': tensor(20.)}
{'Reflection_Source_5_voltage': tensor(130.), 'Reflection_Source_takeoff_angle': tensor(20.)}
{'Reflection_Source_6_voltage': tensor(180.), 'Reflection_Source_takeoff_angle': tensor(20.)}
{'Filter_2_material': Material(formula='Al', density=2.702), 'Filter_2_thickness': tensor(3.)}
{'Scintillator_2_material': Material(formula='CsI', density=4.51), 'Scintillator_2_thickness': tensor(0.3300)}
Estimated Parameters:
{'Reflection_Source_1_voltage': tensor(80.), 'Reflection_Source_takeoff_angle': tensor(19.5567, grad_fn=<ClampFunctionBackward>), 'Filter_1_material': Material(formula='Al', density=2.702), 'Filter_1_thickness': tensor(2.9787, grad_fn=<ClampFunctionBackward>), 'Scintillator_1_material': Material(formula='CsI', density=4.51), 'Scintillator_1_thickness': tensor(0.3284, grad_fn=<ClampFunctionBackward>), 'Reflection_Source_2_voltage': tensor(130.), 'Reflection_Source_3_voltage': tensor(180.)}
../../_images/examples_notebooks_spectral_estimation_3voltages_9_1.png
[ ]: