get_center_of_mass_x: {"image_shape": image_shape}, get_center_of_mass_y: {"image_shape": image_shape}, get_std_energy: {"energy_scaler": 1}, get_energy_resolution: {"real_ET": tracker_real_ET/1000, "energy_scaler": 1}} colnames = ["Enery", "MaxEnergy", "Cells", "X CoM", "Y CoM", "StdEnergy", "Resolution", "dN/dE", "(dN/dE) / (dN/dE)"] htos_calo_images_real = crop_images(calo_images, **padding) htos_calo_images_fake = crop_images(generated_images, **padding) for func_idx, (func, params) in enumerate(use_functions.items()): if func.__name__ in ["get_number_of_activated_cells", "get_max_energy"]: build_histogram(true=htos_calo_images_real, fake=htos_calo_images_fake, function=func, name=colnames[func_idx], epoch="", folder=None, ax=axes[func_idx], **params) else: build_histogram(true=calo_images, fake=generated_images, function=func, name=colnames[func_idx], epoch="", folder=None, ax=axes[func_idx], **params) build_histogram_HTOS(true=htos_calo_images_real, fake=htos_calo_images_fake, energy_scaler=1, threshold=3.6, real_ET=tracker_real_ET, ax1=axes[7], ax2=axes[8]) figs.append(fig2) for idx in range(10): print(idx+1, "/", 10) use_functions = { get_energies: {"energy_scaler": 1}, get_max_energy: {"energy_scaler": 1, "maxclip": 6.120}, get_number_of_activated_cells: {"threshold": 5/1000}, get_center_of_mass_x: {"image_shape": image_shape}, get_center_of_mass_y: {"image_shape": image_shape}, get_std_energy: {"energy_scaler": scaler["Calo"]}, get_energy_resolution: {"real_ET": tracker_real_ET[idx]/1000, "energy_scaler": 1} } figs.append(Generator.build_simulated_events(condition=tracker_events[idx], tracker_image=[tracker_images[idx]], calo_image=np.array([calo_images[idx]]),
folder=None, ax=axes[func_idx], **params) else: build_histogram(true=calo_images, fake=generated_images, function=func, name=colnames[func_idx], epoch="", folder=None, ax=axes[func_idx], **params) build_histogram_HTOS(true=calo_images, fake=generated_images, energy_scaler=1, threshold=3.6, real_ET=tracker_et, ax1=axes[7], ax2=axes[8]) axes[-1].scatter(tracker_et, get_energies(calo_images), label="true", alpha=0.1) axes[-1].scatter(tracker_et, get_energies(generated_images), label="fake", alpha=0.1) axes[-1].legend() axes[-1].set_xlim(0, np.max(tracker_et)) axes[-1].set_ylim(0, np.max(tracker_et)) axes[-1].set_xlabel("Tracker")
alpha=0.05) axes[model_idx, -1].scatter(tracker_real_ET / 1000, get_energies(generated_images_from_tracker, energy_scaler=calo_scaler / 1000), label="Tracker", alpha=0.05) axes[model_idx, -1].set_xlabel("Tracker [GeV]") axes[model_idx, -1].set_ylabel("Reconstructed [GeV]") axes[model_idx, -1].legend() build_histogram_HTOS(true=mc_data_images_m, fake=generated_images_from_cgan, fake2=generated_images_from_tracker, energy_scaler=calo_scaler, threshold=3600, real_ET=tracker_real_ET, labels=["Geant4", "CGAN", "Tracker"], ax1=axes[model_idx, -3], ax2=axes[model_idx, -2]) # Resolution Geant vs Generated resolution_geant_nn = (get_energies(mc_data_images_m) - get_energies(generated_images_from_cgan)) is_small_discrepancy = np.abs(resolution_geant_nn) < 5 resolution_geant_nn_moderate = resolution_geant_nn[ is_small_discrepancy] axes[model_idx, -4].hist(resolution_geant_nn_moderate, bins=40, histtype="step") axes[model_idx, -4].set_title(
**params) else: build_histogram(true=mc_data_images_m, fake=generated_images, function=func, name=colnames[func_idx], epoch="", folder=None, ax=axes[func_idx], labels=["Geant4", "Im2Im"], **params) build_histogram_HTOS(true=mc_data_images_m, fake=generated_images, energy_scaler=calo_scaler, threshold=3600, real_ET=tracker_real_ET, labels=["Geant4", "Im2Im"], ax1=axes[-3], ax2=axes[-2]) axes[-1].scatter(tracker_real_ET, get_energies(mc_data_images_m), label="Geant4", alpha=0.05) axes[-1].scatter(tracker_real_ET, get_energies(generated_images), label="Im2Im", alpha=0.05) axes[-1].legend() figs.append(fig2)
get_max_energy: { "energy_scaler": calo_scaler }, get_std_energy: { "energy_scaler": calo_scaler }, get_energy_resolution: { "real_ET": tracker_real_ET, "energy_scaler": calo_scaler } } build_histogram_HTOS(true=calo_images, fake=None, energy_scaler=calo_scaler, threshold=3600, real_ET=tracker_real_ET, ax1=axes[7], ax2=axes[8]) for func_idx, (func, params) in enumerate(use_functions.items()): build_histogram(true=calo_images, fake=None, function=func, name=colnames[func_idx], epoch="", folder=None, ax=axes[func_idx], use_legend=True, **params)