Change to npz output; add h5 output; change to python script

This commit is contained in:
xie_x1 committed 2025-10-08 09:14:43 +02:00
1 parent df661e255c
commit 4402718bca
5 files changed
+126 -183

No files matched your search

+1
View File
@@ -1,2 +1,3 @@
*.npy
Samples/
*.pyc
+78
View File
@@ -0,0 +1,78 @@
{
"cells": [
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"(625000, 4)\n",
"2.5738147384822754 2.3159877105736997 14979.560000000001\n"
]
},
{
"data": {
"text/plain": [
"<matplotlib.collections.PathCollection at 0x7fe5d47a16a0>"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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 truncated
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"import h5py\n",
"\n",
"data = np.load('/home/xie_x1/MLXID/McGeneration/Samples/15keV_Moench040_150V_15.npz')\n",
"samples = data['samples']\n",
"labels = data['labels']\n",
"# with h5py.File('/home/xie_x1/MLXID/McGeneration/Samples/15keV_Moench040_150V_15.h5', 'r') as hf:\n",
"# samples = hf['samples'][:]\n",
"# labels = hf['labels'][:]\n",
"print(labels.shape)\n",
"idx = 6\n",
"plt.imshow(samples[idx], origin='lower', extent = (0, samples.shape[1], 0, samples.shape[2]))\n",
"x,y,z,e = labels[idx]\n",
"print(x,y,e)\n",
"plt.scatter(x, y, s=200, facecolors='none', edgecolors='r')"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "pytorch_nightly",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.9.18"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
-179
View File
@@ -1,179 +0,0 @@
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Welcome to JupyROOT 6.28/10\n"
]
}
],
"source": [
"import os\n",
"import numpy as np\n",
"from ROOT import *\n",
"from multiprocessing import Pool\n",
"from array import array\n",
"from scipy.stats import gennorm\n",
"import imp"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Processing Moench040 150V 15keV simu2 with 128 bins\n",
"Alpha fitting chi2/NDF = 1.9768728049976632\n",
"Beta fitting chi2/NDF = 1.3047556961613742\n",
" FCN=245.132 FROM MIGRAD STATUS=CONVERGED 96 CALLS 97 TOTAL\n",
" EDM=3.53827e-13 STRATEGY= 1 ERROR MATRIX ACCURATE \n",
" EXT PARAMETER STEP FIRST \n",
" NO. NAME VALUE ERROR SIZE DERIVATIVE \n",
" 1 p0 5.20982e-01 1.41176e-02 3.53269e-05 -1.23898e-06\n",
" 2 p1 2.73449e+00 1.50597e-02 1.01242e-05 -3.50997e-04\n",
" 3 p2 -9.48420e-02 3.32013e-03 1.69238e-06 -3.00452e-03\n",
" 4 p3 4.99907e-04 2.88035e-05 3.33069e-08 -1.76453e-01\n",
" FCN=160.485 FROM MIGRAD STATUS=CONVERGED 412 CALLS 413 TOTAL\n",
" EDM=3.93066e-07 STRATEGY= 1 ERROR MATRIX ACCURATE \n",
" EXT PARAMETER STEP FIRST \n",
" NO. NAME VALUE ERROR SIZE DERIVATIVE \n",
" 1 p0 8.57590e-01 1.20963e-01 5.07321e-05 -4.75170e-02\n",
" 2 p1 -2.47722e+00 1.29467e+00 1.23369e-03 -3.44551e-03\n",
" 3 p2 -3.91474e-01 3.56163e-02 1.94337e-05 -5.53030e-02\n",
" 4 p3 -3.36737e-01 1.31473e-01 3.89495e-04 -1.89786e-03\n",
" 5 p4 -2.81985e+00 1.71232e+00 3.71391e-03 7.06359e-04\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"Info in <TCanvas::MakeDefCanvas>: created default TCanvas with name c1\n"
]
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABjwAAAMECAIAAACE6hs7AAAABmJLR0QAAAAAAAD5Q7t/AAAgAElEQVR4nOzd3XKySBcG0OaruaN4rrkyzZWJ58k18R302NMCIv7SwFo1NZXXoEFDpH3YvbtqmiYAAAAAQEn+N/UOAAAAAECb0AoAAACA4gitAAAAACiO0AoAAACA4gitAAAAACiO0AoAAACA4gitAAAAACiO0AoAAACA4gitAAAAACiO0AoAAACA4gitAAAAACiO0AoAAACA4gitAAAAACiO0AoAAACA4gitAAAAACiO0AoAAACA4gitAAAAACiO0AoAAACA4gitAAAAACiO0AoAAACA4gitAAAAACiO0AoAAACA4gitAAAAACiO0AoAAACA4gitAAAAACiO0AoAAACA4gitAAAAACiO0AoAAACA4gitAAAAACiO0AoAAACA4gitAAAAACiO0AoAAACA4gitAAAAACiO0AoAAACA4gitAAAAACiO0AoAAACA4gitAAAAACiO0AoAAACA4gitAAAAACiO0AoAAACA4gitAAAAACiO0AoAAACA4gitAAAAACiO0AoAAACA4gitAAAAACiO0AoAAACA4gitAAAAACiO0AoAAACA4gitAAAAACiO0AoAAACA4gitAAAAACiO0AoAAACA4gitAAAAACiO0AoAAACA4gitAAAAACiO0AoAAACA4gitAAAAACiO0AoAAACA4gitAAAAACiO0AoAAACA4gitAAAAACiO0AoAAACA4gitAAAAACiO0AoAAACA4gitAAAAACiO0AoAAACA4gitAAAAACiO0AoAAACA4gitAAAAACiO0AoAAACA4gitAAAAACiO0AoAAACA4gitAAAAACiO0AoAAACA4gitAAAAACiO0AoAAACA4gitAAAAACiO0AoAAACA4gitAAAAACiO0AoAAACA4gitAAAAACiO0AoAAACA4vwz9Q6UqKqqqXcBAGagaZqpd2F16rqOX+x2uyn34x5GVgAwhpFV15Sh1eFw+Pn52W63h8OhtIGXYwUAhkkiPmy3251Op/yW4/FY2gjqGiMrABhmZNXrE9MDq6o6HA7d2w+HQxzBfH9/p8uGAABrttvtqrN0Y1VVrcQqGEEBAEv3oZ5WPz8/cezVTa+6IzAAgHVqlVPF3Cr+f7vdHo/H4/HYNM3xeNxu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 truncated
"text/plain": [
"<IPython.core.display.Image object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import McGenerator\n",
"imp.reload(McGenerator)\n",
"\n",
"attenuationLengthDict = { ### https://henke.lbl.gov/optical_constants/atten2.html\n",
" '5keV': 18.0101, '10keV':133.706, '15keV':442.607, '20keV':1037.80, '25keV':1991.45,\n",
"}\n",
"element = '15keV'\n",
"mcConfig = {\n",
" 'element': element,\n",
" 'energy': 15000, ### eV\n",
" 'attenuationLength': attenuationLengthDict[element],\n",
" 'sensorCode': 'Moench040',\n",
" 'nTotalIncident': 10000000,\n",
" 'nThread': 16,\n",
" 'Roi': [50, 350, 50, 350], \n",
" 'clusterWidth': 5, ### pixel\n",
" 'pixelSize': 25, ### um\n",
" 'noiseEneFrame': np.ones((400, 400)) * 0, \n",
" 'shotNoiseFactor': 0.0,\n",
" 'calibrationNoise': 0.0,\n",
" 'sensorThickness': 650, ### moench040: 650 um, 34.7 V\n",
" 'T': 273 + 20.0 + 14.8,\n",
" 'zBins': 128,\n",
" 'hv': 150,\n",
" 'depletionVoltage': 34.7,\n",
" 'simulationMethod': 'simu2', ### 'simu1' (cpu) or 'simu2' (gpu)\n",
" 'resultsPath': '/home/xie_x1/MLED/McSimulation/BatchResults',\n",
" 'sampleOutputPath': '/home/xie_x1/MLXID/McGeneration/Samples'\n",
"}\n",
"\n",
"McGenerator.init(mcConfig)\n",
"McGenerator.parameterization().Draw()\n",
"McGenerator.generateFromParameters()"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"(625000, 4)\n",
"2.96790016863627 2.287150706089626 15088.160000000002\n"
]
},
{
"data": {
"text/plain": [
"<matplotlib.collections.PathCollection at 0x7f2f39e45d00>"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAZwAAAGiCAYAAADTMXDkAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8fJSN1AAAACXBIWXMAAA9hAAAPYQGoP6dpAAAVyklEQVR4nO3df4yVhbng8ecwwEH5MTIowiw/SrVq5Ye7grVjrFWx5HINkTS9qb3WsDV3E7poMSxpi95EydKOae6mMaElYhurtzXYpqJmtxLprUBNQxewrCy1Fi1bpnsRrnqZgUEOMLz7R6+zUkDnDDPPmRk+n+SNnuP7vufJkeGb9z3vvKdUFEURANDLBtV6AADODYIDQArBASCF4ACQQnAASCE4AKQQHABSCA4AKQQHgBSCA0CKqoLz4IMPRqlUOmkZN25cb80GwAAyuNoNpk6dGj//+c87H9fV1fXoQAAMTFUHZ/DgwY5qAKha1cHZtWtXNDY2RrlcjmuvvTa++c1vxkc/+tEzrl+pVKJSqXQ+PnHiRLzzzjsxZsyYKJVK3ZsagJooiiIOHjwYjY2NMWhQdZcBlKr5eoLnn38+Dh8+HJdddlns27cvVqxYEb/73e9i586dMWbMmNNu8+CDD8by5curGgqAvq2lpSUmTJhQ1TZVBecvtbe3xyWXXBJf/epXY8mSJadd5y+PcFpbW2PSpElxffx1DI4h3X1pAGrgeByLl+JnceDAgaivr69q26pPqb3f8OHDY/r06bFr164zrlMul6NcLp/mhYfE4JLgAPQr/3aI0p2PRM7q93AqlUq8+uqrMX78+LPZDQDngKqCs3Tp0ti4cWPs3r07fv3rX8fnPve5aGtriwULFvTWfAAMEFWdUvvTn/4UX/jCF+Ktt96Kiy66KD75yU/G5s2bY/Lkyb01HwADRFXBWbNmTW/NAcAA515qAKQQHABSCA4AKQQHgBSCA0AKwQEgheAAkEJwAEghOACkEBwAUggOACkEB4AUggNACsEBIIXgAJBCcABIITgApBAcAFIIDgApBAeAFIIDQArBASCF4ACQQnAASCE4AKQQHABSCA4AKQQHgBSCA0AKwQEgheAAkEJwAEghOACkEBwAUggOACkEB4AUggNACsEBIIXgAJBCcABIITgApBAcAFIIDgApBAeAFIIDQArBASCF4ACQQnAASCE4AKQQHABSCA4AKQQHgBSCA0AKwQEgheAAkEJwAEghOACkEBwAUggOACkEB4AUggNACsEBIIXgAJDirILT3NwcpVIp7r333h4aB4CBqtvB2bJlS6xevTpmzJjRk/MAMEB1KziHDh2KO+64Ix599NEYPXp0T88EwAA0uDsbLVq0KG699da45ZZbYsWKFR+4bqVSiUql0vm4ra2tOy8JZ1Q39fJaj9A/HD1W6wn6hY5df6j1CANW1cFZs2ZNvPzyy7Fly5Yurd/c3BzLly+vejAABpaqTqm1tLTE4sWL44c//GEMGzasS9ssW7YsWltbO5eWlpZuDQpA/1bVEc62bdti//79MXPmzM7nOjo6YtOmTbFy5cqoVCpRV1d30jblcjnK5XLPTAtAv1VVcGbPnh07duw46bkvfelLccUVV8TXvva1U2IDAO+pKjgjR46MadOmnfTc8OHDY8yYMac8DwDv504DAKTo1mXR77dhw4YeGAOAgc4RDgApBAeAFIIDQArBASCF4ACQQnAASCE4AKQQHABSCA4AKQQHgBSCA0AKwQEgheAAkEJwAEghOACkEBwAUggOACkEB4AUggNACsEBIIXgAJBCcABIITgApBAcAFIIDgApBAeAFIIDQArBASCF4ACQQnAASCE4AKQQHABSCA4AKQQHgBSCA0AKwQEgheAAkEJwAEghOACkEBwAUggOACkEB4AUggNACsEBIIXgAJBCcABIITgApBAcAFIIDgApBAeAFIIDQArBASCF4ACQQnAASCE4AKQQHABSCA4AKQQHgBSCA0AKwQEgheAAkEJwAEghOACkqCo4q1atihkzZsSoUaNi1KhR0dTUFM8//3xvzQbAAFJVcCZMmBAPPfRQbN26NbZu3Ro333xz3HbbbbFz587emg+AAWJwNSvPmzfvpMff+MY3YtWqVbF58+aYOnVqjw4GwMBSVXDer6OjI37yk59Ee3t7NDU1nXG9SqUSlUql83FbW1t3X/KcU3fhmFqP0C/8bP1TtR6hX3j16OFaj9AvLJn6mVqP0KcNKo5GtHdz22o32LFjR4wYMSLK5XIsXLgw1q5dG1deeeUZ129ubo76+vrOZeLEid2bFIB+rergXH755bF9+/bYvHlzfPnLX44FCxbEb3/72zOuv2zZsmhtbe1cWlpazmpgAPqnqk+pDR06NC699NKIiJg1a1Zs2bIl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 truncated
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"samples = np.load('/home/xie_x1/MLXID/McGeneration/Samples/15keV_Moench040_150V_0_samples.npy')\n",
"labels = np.load('/home/xie_x1/MLXID/McGeneration/Samples/15keV_Moench040_150V_0_labels.npy')\n",
"print(labels.shape)\n",
"import matplotlib.pyplot as plt\n",
"idx = 6\n",
"plt.imshow(samples[idx], origin='lower', extent = (0, samples.shape[1], 0, samples.shape[2]))\n",
"x,y,z,e = labels[idx]\n",
"print(x,y,e)\n",
"plt.scatter(x, y, s=200, facecolors='none', edgecolors='r')"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "pytorch_nightly",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.9.18"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
+7 -4
View File
@@ -4,6 +4,7 @@ from ROOT import *
from multiprocessing import Pool
from array import array
from scipy.stats import gennorm
import h5py
EnergyPerPair = 3.62 # eV
FanoFactor = 0.13
@@ -184,10 +185,12 @@ def singleProcess(thredIdx):
labels[i] = np.array([x_center/pixelSize, y_center/pixelSize, z0, np.sum(_energyArray)])
sampleOutputPath = _cfg['sampleOutputPath']
element = _cfg['element']
np.save(f'{sampleOutputPath}/{element}_{_cfg["sensorCode"]}_{_cfg["hv"]}V_{thredIdx}_samples.npy', samples)
np.save(f'{sampleOutputPath}/{element}_{_cfg["sensorCode"]}_{_cfg["hv"]}V_{thredIdx}_labels.npy', labels)
### save samples and labels into one npy file
np.save(f'{sampleOutputPath}/{element}_{_cfg["sensorCode"]}_{_cfg["hv"]}V_{thredIdx}_samples_labels.npy', (samples, labels))
### save samples and labels into npz file
np.savez(f'{sampleOutputPath}/{element}_{_cfg["sensorCode"]}_{_cfg["hv"]}V_{thredIdx}.npz', samples=samples, labels=labels)
### h5 file
with h5py.File(f'{sampleOutputPath}/{element}_{_cfg["sensorCode"]}_{_cfg["hv"]}V_{thredIdx}.h5', 'w') as hf:
hf['samples'] = samples
hf['labels'] = labels
def getDriftTime_allpix2_8p23(z0):
### unit: V, cm, ns, K
+40
View File
@@ -0,0 +1,40 @@
import os
import numpy as np
from ROOT import *
from multiprocessing import Pool
from array import array
from scipy.stats import gennorm
import McGenerator
gROOT.SetBatch(True)
attenuationLengthDict = { ### https://henke.lbl.gov/optical_constants/atten2.html
'5keV': 18.0101, '10keV':133.706, '15keV':442.607, '20keV':1037.80, '25keV':1991.45,
}
element = '15keV'
mcConfig = {
'element': element,
'energy': 15000, ### eV
'attenuationLength': attenuationLengthDict[element],
'sensorCode': 'Moench040',
'nTotalIncident': 10_000_000,
'nThread': 16,
'Roi': [50, 350, 50, 350],
'clusterWidth': 5, ### pixel
'pixelSize': 25, ### um
'noiseEneFrame': np.ones((400, 400)) * 0,
'shotNoiseFactor': 0.0,
'calibrationNoise': 0.0,
'sensorThickness': 650, ### moench040: 650 um, 34.7 V
'T': 273 + 20.0 + 14.8,
'zBins': 128,
'hv': 150,
'depletionVoltage': 34.7,
'simulationMethod': 'simu2', ### 'simu1' (cpu) or 'simu2' (gpu)
'resultsPath': '/home/xie_x1/MLED/McSimulation/BatchResults',
'sampleOutputPath': '/home/xie_x1/MLXID/McGeneration/Samples'
}
McGenerator.init(mcConfig)
McGenerator.parameterization()
McGenerator.generateFromParameters()