commit b009f56ba0f15afa06230115994d05499097ada1 Author: Gordon McCann Date: Mon Nov 16 13:38:39 2020 -0500 First commit diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000..6462510 Binary files /dev/null and b/.DS_Store differ diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..02ebf6e --- /dev/null +++ b/.gitignore @@ -0,0 +1,8 @@ +###Files to ignore### +*.root +*.png +*.sublime-workspace +*.sublime-project + +###Keep this file### +!.gitignore diff --git a/README.md b/README.md new file mode 100644 index 0000000..703442a --- /dev/null +++ b/README.md @@ -0,0 +1 @@ +#Kinematics \ No newline at end of file diff --git a/bin/kinematics b/bin/kinematics new file mode 100755 index 0000000..abb7271 Binary files /dev/null and b/bin/kinematics differ diff --git a/bin/kinematics_dict_rdict.pcm b/bin/kinematics_dict_rdict.pcm new file mode 100644 index 0000000..936c952 Binary files /dev/null and b/bin/kinematics_dict_rdict.pcm differ diff --git a/checkfile.txt b/checkfile.txt new file mode 100644 index 0000000..a8dd963 --- /dev/null +++ b/checkfile.txt @@ -0,0 +1,484 @@ +RINGS +det ch corner x_fl y_fl z_fl r_fl t_fl p_fl x_ti y_ti z_ti r_ti t_ti p_ti +0 0 0 1.78297 3.46928 0 3.90062 90 62.8 3.00456 1.10206 -10.22 10.7093 162.613 20.1428 +0 0 1 -1.78297 3.46928 0 3.90062 90 117.2 0.11966 3.19806 -10.22 10.7093 162.613 87.8572 +0 0 2 -1.49014 2.8995 0 3.26 90 117.2 0.100008 2.67282 -10.5862 10.9189 165.821 87.8572 +0 0 3 1.49014 2.8995 0 3.26 90 62.8 2.5111 0.921061 -10.5862 10.9189 165.821 20.1428 +0 1 0 2.0758 4.03906 0 4.54125 90 62.8 3.49802 1.28306 -9.85374 10.5346 159.287 20.1428 +0 1 1 -2.0758 4.03906 0 4.54125 90 117.2 0.139313 3.7233 -9.85374 10.5346 159.287 87.8572 +0 1 2 -1.78297 3.46928 0 3.90062 90 117.2 0.11966 3.19806 -10.22 10.7093 162.613 87.8572 +0 1 3 1.78297 3.46928 0 3.90062 90 62.8 3.00456 1.10206 -10.22 10.7093 162.613 20.1428 +0 2 0 2.36862 4.60884 0 5.18187 90 62.8 3.99148 1.46406 -9.48749 10.3965 155.862 20.1428 +0 2 1 -2.36862 4.60884 0 5.18187 90 117.2 0.158965 4.24854 -9.48749 10.3965 155.862 87.8572 +0 2 2 -2.0758 4.03906 0 4.54125 90 117.2 0.139313 3.7233 -9.85374 10.5346 159.287 87.8572 +0 2 3 2.0758 4.03906 0 4.54125 90 62.8 3.49802 1.28306 -9.85374 10.5346 159.287 20.1428 +0 3 0 2.66145 5.17863 0 5.8225 90 62.8 4.48494 1.64505 -9.12124 10.2965 152.357 20.1428 +0 3 1 -2.66145 5.17863 0 5.8225 90 117.2 0.178618 4.77378 -9.12124 10.2965 152.357 87.8572 +0 3 2 -2.36862 4.60884 0 5.18187 90 117.2 0.158965 4.24854 -9.48749 10.3965 155.862 87.8572 +0 3 3 2.36862 4.60884 0 5.18187 90 62.8 3.99148 1.46406 -9.48749 10.3965 155.862 20.1428 +0 4 0 2.95428 5.74841 0 6.46312 90 62.8 4.9784 1.82605 -8.75499 10.2357 148.798 20.1428 +0 4 1 -2.95428 5.74841 0 6.46312 90 117.2 0.19827 5.29902 -8.75499 10.2357 148.798 87.8572 +0 4 2 -2.66145 5.17863 0 5.8225 90 117.2 0.178618 4.77378 -9.12124 10.2965 152.357 87.8572 +0 4 3 2.66145 5.17863 0 5.8225 90 62.8 4.48494 1.64505 -9.12124 10.2965 152.357 20.1428 +0 5 0 3.24711 6.31819 0 7.10375 90 62.8 5.47186 2.00705 -8.38874 10.2147 145.209 20.1428 +0 5 1 -3.24711 6.31819 0 7.10375 90 117.2 0.217923 5.82426 -8.38874 10.2147 145.209 87.8572 +0 5 2 -2.95428 5.74841 0 6.46312 90 117.2 0.19827 5.29902 -8.75499 10.2357 148.798 87.8572 +0 5 3 2.95428 5.74841 0 6.46312 90 62.8 4.9784 1.82605 -8.75499 10.2357 148.798 20.1428 +0 6 0 3.53994 6.88797 0 7.74438 90 62.8 5.96532 2.18805 -8.0225 10.2339 141.62 20.1428 +0 6 1 -3.53994 6.88797 0 7.74438 90 117.2 0.237576 6.3495 -8.0225 10.2339 141.62 87.8572 +0 6 2 -3.24711 6.31819 0 7.10375 90 117.2 0.217923 5.82426 -8.38874 10.2147 145.209 87.8572 +0 6 3 3.24711 6.31819 0 7.10375 90 62.8 5.47186 2.00705 -8.38874 10.2147 145.209 20.1428 +0 7 0 3.83277 7.45776 0 8.385 90 62.8 6.45877 2.36905 -7.65625 10.293 138.059 20.1428 +0 7 1 -3.83277 7.45776 0 8.385 90 117.2 0.257228 6.87474 -7.65625 10.293 138.059 87.8572 +0 7 2 -3.53994 6.88797 0 7.74438 90 117.2 0.237576 6.3495 -8.0225 10.2339 141.62 87.8572 +0 7 3 3.53994 6.88797 0 7.74438 90 62.8 5.96532 2.18805 -8.0225 10.2339 141.62 20.1428 +0 8 0 4.12559 8.02754 0 9.02562 90 62.8 6.95223 2.55005 -7.29 10.3914 134.551 20.1428 +0 8 1 -4.12559 8.02754 0 9.02562 90 117.2 0.276881 7.39997 -7.29 10.3914 134.551 87.8572 +0 8 2 -3.83277 7.45776 0 8.385 90 117.2 0.257228 6.87474 -7.65625 10.293 138.059 87.8572 +0 8 3 3.83277 7.45776 0 8.385 90 62.8 6.45877 2.36905 -7.65625 10.293 138.059 20.1428 +0 9 0 4.41842 8.59732 0 9.66625 90 62.8 7.44569 2.73105 -6.92375 10.5278 131.122 20.1428 +0 9 1 -4.41842 8.59732 0 9.66625 90 117.2 0.296533 7.92521 -6.92375 10.5278 131.122 87.8572 +0 9 2 -4.12559 8.02754 0 9.02562 90 117.2 0.276881 7.39997 -7.29 10.3914 134.551 87.8572 +0 9 3 4.12559 8.02754 0 9.02562 90 62.8 6.95223 2.55005 -7.29 10.3914 134.551 20.1428 +0 10 0 4.71125 9.1671 0 10.3069 90 62.8 7.93915 2.91204 -6.5575 10.701 127.792 20.1428 +0 10 1 -4.71125 9.1671 0 10.3069 90 117.2 0.316186 8.45045 -6.5575 10.701 127.792 87.8572 +0 10 2 -4.41842 8.59732 0 9.66625 90 117.2 0.296533 7.92521 -6.92375 10.5278 131.122 87.8572 +0 10 3 4.41842 8.59732 0 9.66625 90 62.8 7.44569 2.73105 -6.92375 10.5278 131.122 20.1428 +0 11 0 5.00408 9.73689 0 10.9475 90 62.8 8.43261 3.09304 -6.19125 10.9091 124.578 20.1428 +0 11 1 -5.00408 9.73689 0 10.9475 90 117.2 0.335839 8.97569 -6.19125 10.9091 124.578 87.8572 +0 11 2 -4.71125 9.1671 0 10.3069 90 117.2 0.316186 8.45045 -6.5575 10.701 127.792 87.8572 +0 11 3 4.71125 9.1671 0 10.3069 90 62.8 7.93915 2.91204 -6.5575 10.701 127.792 20.1428 +0 12 0 5.29691 10.3067 0 11.5881 90 62.8 8.92607 3.27404 -5.825 11.1501 121.495 20.1428 +0 12 1 -5.29691 10.3067 0 11.5881 90 117.2 0.355491 9.50093 -5.825 11.1501 121.495 87.8572 +0 12 2 -5.00408 9.73689 0 10.9475 90 117.2 0.335839 8.97569 -6.19125 10.9091 124.578 87.8572 +0 12 3 5.00408 9.73689 0 10.9475 90 62.8 8.43261 3.09304 -6.19125 10.9091 124.578 20.1428 +0 13 0 5.58974 10.8765 0 12.2287 90 62.8 9.41953 3.45504 -5.45875 11.422 118.549 20.1428 +0 13 1 -5.58974 10.8765 0 12.2287 90 117.2 0.375144 10.0262 -5.45875 11.422 118.549 87.8572 +0 13 2 -5.29691 10.3067 0 11.5881 90 117.2 0.355491 9.50093 -5.825 11.1501 121.495 87.8572 +0 13 3 5.29691 10.3067 0 11.5881 90 62.8 8.92607 3.27404 -5.825 11.1501 121.495 20.1428 +0 14 0 5.88256 11.4462 0 12.8694 90 62.8 9.91299 3.63604 -5.0925 11.7227 115.748 20.1428 +0 14 1 -5.88256 11.4462 0 12.8694 90 117.2 0.394796 10.5514 -5.0925 11.7227 115.748 87.8572 +0 14 2 -5.58974 10.8765 0 12.2287 90 117.2 0.375144 10.0262 -5.45875 11.422 118.549 87.8572 +0 14 3 5.58974 10.8765 0 12.2287 90 62.8 9.41953 3.45504 -5.45875 11.422 118.549 20.1428 +0 15 0 6.17539 12.016 0 13.51 90 62.8 10.4064 3.81704 -4.72625 12.05 113.093 20.1428 +0 15 1 -6.17539 12.016 0 13.51 90 117.2 0.414449 11.0766 -4.72625 12.05 113.093 87.8572 +0 15 2 -5.88256 11.4462 0 12.8694 90 117.2 0.394796 10.5514 -5.0925 11.7227 115.748 87.8572 +0 15 3 5.88256 11.4462 0 12.8694 90 62.8 9.91299 3.63604 -5.0925 11.7227 115.748 20.1428 +1 0 0 1.78297 3.46928 0 3.90062 90 62.8 1.97658 -2.51695 -10.22 10.7093 162.613 308.143 +1 0 1 -1.78297 3.46928 0 3.90062 90 117.2 3.07852 0.874452 -10.22 10.7093 162.613 15.8572 +1 0 2 -1.49014 2.8995 0 3.26 90 117.2 2.57291 0.730835 -10.5862 10.9189 165.821 15.8572 +1 0 3 1.49014 2.8995 0 3.26 90 62.8 1.65195 -2.10358 -10.5862 10.9189 165.821 308.143 +1 1 0 2.0758 4.03906 0 4.54125 90 62.8 2.30121 -2.93033 -9.85374 10.5346 159.287 308.143 +1 1 1 -2.0758 4.03906 0 4.54125 90 117.2 3.58412 1.01807 -9.85374 10.5346 159.287 15.8572 +1 1 2 -1.78297 3.46928 0 3.90062 90 117.2 3.07852 0.874452 -10.22 10.7093 162.613 15.8572 +1 1 3 1.78297 3.46928 0 3.90062 90 62.8 1.97658 -2.51695 -10.22 10.7093 162.613 308.143 +1 2 0 2.36862 4.60884 0 5.18187 90 62.8 2.62584 -3.3437 -9.48749 10.3965 155.862 308.143 +1 2 1 -2.36862 4.60884 0 5.18187 90 117.2 4.08973 1.16169 -9.48749 10.3965 155.862 15.8572 +1 2 2 -2.0758 4.03906 0 4.54125 90 117.2 3.58412 1.01807 -9.85374 10.5346 159.287 15.8572 +1 2 3 2.0758 4.03906 0 4.54125 90 62.8 2.30121 -2.93033 -9.85374 10.5346 159.287 308.143 +1 3 0 2.66145 5.17863 0 5.8225 90 62.8 2.95046 -3.75708 -9.12124 10.2965 152.357 308.143 +1 3 1 -2.66145 5.17863 0 5.8225 90 117.2 4.59533 1.3053 -9.12124 10.2965 152.357 15.8572 +1 3 2 -2.36862 4.60884 0 5.18187 90 117.2 4.08973 1.16169 -9.48749 10.3965 155.862 15.8572 +1 3 3 2.36862 4.60884 0 5.18187 90 62.8 2.62584 -3.3437 -9.48749 10.3965 155.862 308.143 +1 4 0 2.95428 5.74841 0 6.46312 90 62.8 3.27509 -4.17046 -8.75499 10.2357 148.798 308.143 +1 4 1 -2.95428 5.74841 0 6.46312 90 117.2 5.10094 1.44892 -8.75499 10.2357 148.798 15.8572 +1 4 2 -2.66145 5.17863 0 5.8225 90 117.2 4.59533 1.3053 -9.12124 10.2965 152.357 15.8572 +1 4 3 2.66145 5.17863 0 5.8225 90 62.8 2.95046 -3.75708 -9.12124 10.2965 152.357 308.143 +1 5 0 3.24711 6.31819 0 7.10375 90 62.8 3.59972 -4.58383 -8.38874 10.2147 145.209 308.143 +1 5 1 -3.24711 6.31819 0 7.10375 90 117.2 5.60654 1.59254 -8.38874 10.2147 145.209 15.8572 +1 5 2 -2.95428 5.74841 0 6.46312 90 117.2 5.10094 1.44892 -8.75499 10.2357 148.798 15.8572 +1 5 3 2.95428 5.74841 0 6.46312 90 62.8 3.27509 -4.17046 -8.75499 10.2357 148.798 308.143 +1 6 0 3.53994 6.88797 0 7.74438 90 62.8 3.92434 -4.99721 -8.0225 10.2339 141.62 308.143 +1 6 1 -3.53994 6.88797 0 7.74438 90 117.2 6.11215 1.73615 -8.0225 10.2339 141.62 15.8572 +1 6 2 -3.24711 6.31819 0 7.10375 90 117.2 5.60654 1.59254 -8.38874 10.2147 145.209 15.8572 +1 6 3 3.24711 6.31819 0 7.10375 90 62.8 3.59972 -4.58383 -8.38874 10.2147 145.209 308.143 +1 7 0 3.83277 7.45776 0 8.385 90 62.8 4.24897 -5.41058 -7.65625 10.293 138.059 308.143 +1 7 1 -3.83277 7.45776 0 8.385 90 117.2 6.61775 1.87977 -7.65625 10.293 138.059 15.8572 +1 7 2 -3.53994 6.88797 0 7.74438 90 117.2 6.11215 1.73615 -8.0225 10.2339 141.62 15.8572 +1 7 3 3.53994 6.88797 0 7.74438 90 62.8 3.92434 -4.99721 -8.0225 10.2339 141.62 308.143 +1 8 0 4.12559 8.02754 0 9.02562 90 62.8 4.5736 -5.82396 -7.29 10.3914 134.551 308.143 +1 8 1 -4.12559 8.02754 0 9.02562 90 117.2 7.12335 2.02339 -7.29 10.3914 134.551 15.8572 +1 8 2 -3.83277 7.45776 0 8.385 90 117.2 6.61775 1.87977 -7.65625 10.293 138.059 15.8572 +1 8 3 3.83277 7.45776 0 8.385 90 62.8 4.24897 -5.41058 -7.65625 10.293 138.059 308.143 +1 9 0 4.41842 8.59732 0 9.66625 90 62.8 4.89822 -6.23733 -6.92375 10.5278 131.122 308.143 +1 9 1 -4.41842 8.59732 0 9.66625 90 117.2 7.62896 2.16701 -6.92375 10.5278 131.122 15.8572 +1 9 2 -4.12559 8.02754 0 9.02562 90 117.2 7.12335 2.02339 -7.29 10.3914 134.551 15.8572 +1 9 3 4.12559 8.02754 0 9.02562 90 62.8 4.5736 -5.82396 -7.29 10.3914 134.551 308.143 +1 10 0 4.71125 9.1671 0 10.3069 90 62.8 5.22285 -6.65071 -6.5575 10.701 127.792 308.143 +1 10 1 -4.71125 9.1671 0 10.3069 90 117.2 8.13456 2.31062 -6.5575 10.701 127.792 15.8572 +1 10 2 -4.41842 8.59732 0 9.66625 90 117.2 7.62896 2.16701 -6.92375 10.5278 131.122 15.8572 +1 10 3 4.41842 8.59732 0 9.66625 90 62.8 4.89822 -6.23733 -6.92375 10.5278 131.122 308.143 +1 11 0 5.00408 9.73689 0 10.9475 90 62.8 5.54748 -7.06409 -6.19125 10.9091 124.578 308.143 +1 11 1 -5.00408 9.73689 0 10.9475 90 117.2 8.64017 2.45424 -6.19125 10.9091 124.578 15.8572 +1 11 2 -4.71125 9.1671 0 10.3069 90 117.2 8.13456 2.31062 -6.5575 10.701 127.792 15.8572 +1 11 3 4.71125 9.1671 0 10.3069 90 62.8 5.22285 -6.65071 -6.5575 10.701 127.792 308.143 +1 12 0 5.29691 10.3067 0 11.5881 90 62.8 5.8721 -7.47746 -5.825 11.1501 121.495 308.143 +1 12 1 -5.29691 10.3067 0 11.5881 90 117.2 9.14577 2.59786 -5.825 11.1501 121.495 15.8572 +1 12 2 -5.00408 9.73689 0 10.9475 90 117.2 8.64017 2.45424 -6.19125 10.9091 124.578 15.8572 +1 12 3 5.00408 9.73689 0 10.9475 90 62.8 5.54748 -7.06409 -6.19125 10.9091 124.578 308.143 +1 13 0 5.58974 10.8765 0 12.2287 90 62.8 6.19673 -7.89084 -5.45875 11.422 118.549 308.143 +1 13 1 -5.58974 10.8765 0 12.2287 90 117.2 9.65138 2.74147 -5.45875 11.422 118.549 15.8572 +1 13 2 -5.29691 10.3067 0 11.5881 90 117.2 9.14577 2.59786 -5.825 11.1501 121.495 15.8572 +1 13 3 5.29691 10.3067 0 11.5881 90 62.8 5.8721 -7.47746 -5.825 11.1501 121.495 308.143 +1 14 0 5.88256 11.4462 0 12.8694 90 62.8 6.52136 -8.30421 -5.0925 11.7227 115.748 308.143 +1 14 1 -5.88256 11.4462 0 12.8694 90 117.2 10.157 2.88509 -5.0925 11.7227 115.748 15.8572 +1 14 2 -5.58974 10.8765 0 12.2287 90 117.2 9.65138 2.74147 -5.45875 11.422 118.549 15.8572 +1 14 3 5.58974 10.8765 0 12.2287 90 62.8 6.19673 -7.89084 -5.45875 11.422 118.549 308.143 +1 15 0 6.17539 12.016 0 13.51 90 62.8 6.84599 -8.71759 -4.72625 12.05 113.093 308.143 +1 15 1 -6.17539 12.016 0 13.51 90 117.2 10.6626 3.02871 -4.72625 12.05 113.093 15.8572 +1 15 2 -5.88256 11.4462 0 12.8694 90 117.2 10.157 2.88509 -5.0925 11.7227 115.748 15.8572 +1 15 3 5.88256 11.4462 0 12.8694 90 62.8 6.52136 -8.30421 -5.0925 11.7227 115.748 308.143 +2 0 0 1.78297 3.46928 0 3.90062 90 62.8 -1.78297 -2.65762 -10.22 10.7093 162.613 236.143 +2 0 1 -1.78297 3.46928 0 3.90062 90 117.2 1.78297 -2.65762 -10.22 10.7093 162.613 303.857 +2 0 2 -1.49014 2.8995 0 3.26 90 117.2 1.49014 -2.22114 -10.5862 10.9189 165.821 303.857 +2 0 3 1.49014 2.8995 0 3.26 90 62.8 -1.49014 -2.22114 -10.5862 10.9189 165.821 236.143 +2 1 0 2.0758 4.03906 0 4.54125 90 62.8 -2.0758 -3.0941 -9.85374 10.5346 159.287 236.143 +2 1 1 -2.0758 4.03906 0 4.54125 90 117.2 2.0758 -3.0941 -9.85374 10.5346 159.287 303.857 +2 1 2 -1.78297 3.46928 0 3.90062 90 117.2 1.78297 -2.65762 -10.22 10.7093 162.613 303.857 +2 1 3 1.78297 3.46928 0 3.90062 90 62.8 -1.78297 -2.65762 -10.22 10.7093 162.613 236.143 +2 2 0 2.36862 4.60884 0 5.18187 90 62.8 -2.36862 -3.53058 -9.48749 10.3965 155.862 236.143 +2 2 1 -2.36862 4.60884 0 5.18187 90 117.2 2.36862 -3.53058 -9.48749 10.3965 155.862 303.857 +2 2 2 -2.0758 4.03906 0 4.54125 90 117.2 2.0758 -3.0941 -9.85374 10.5346 159.287 303.857 +2 2 3 2.0758 4.03906 0 4.54125 90 62.8 -2.0758 -3.0941 -9.85374 10.5346 159.287 236.143 +2 3 0 2.66145 5.17863 0 5.8225 90 62.8 -2.66145 -3.96706 -9.12124 10.2965 152.357 236.143 +2 3 1 -2.66145 5.17863 0 5.8225 90 117.2 2.66145 -3.96706 -9.12124 10.2965 152.357 303.857 +2 3 2 -2.36862 4.60884 0 5.18187 90 117.2 2.36862 -3.53058 -9.48749 10.3965 155.862 303.857 +2 3 3 2.36862 4.60884 0 5.18187 90 62.8 -2.36862 -3.53058 -9.48749 10.3965 155.862 236.143 +2 4 0 2.95428 5.74841 0 6.46312 90 62.8 -2.95428 -4.40354 -8.75499 10.2357 148.798 236.143 +2 4 1 -2.95428 5.74841 0 6.46312 90 117.2 2.95428 -4.40354 -8.75499 10.2357 148.798 303.857 +2 4 2 -2.66145 5.17863 0 5.8225 90 117.2 2.66145 -3.96706 -9.12124 10.2965 152.357 303.857 +2 4 3 2.66145 5.17863 0 5.8225 90 62.8 -2.66145 -3.96706 -9.12124 10.2965 152.357 236.143 +2 5 0 3.24711 6.31819 0 7.10375 90 62.8 -3.24711 -4.84002 -8.38874 10.2147 145.209 236.143 +2 5 1 -3.24711 6.31819 0 7.10375 90 117.2 3.24711 -4.84002 -8.38874 10.2147 145.209 303.857 +2 5 2 -2.95428 5.74841 0 6.46312 90 117.2 2.95428 -4.40354 -8.75499 10.2357 148.798 303.857 +2 5 3 2.95428 5.74841 0 6.46312 90 62.8 -2.95428 -4.40354 -8.75499 10.2357 148.798 236.143 +2 6 0 3.53994 6.88797 0 7.74438 90 62.8 -3.53994 -5.27649 -8.0225 10.2339 141.62 236.143 +2 6 1 -3.53994 6.88797 0 7.74438 90 117.2 3.53994 -5.27649 -8.0225 10.2339 141.62 303.857 +2 6 2 -3.24711 6.31819 0 7.10375 90 117.2 3.24711 -4.84002 -8.38874 10.2147 145.209 303.857 +2 6 3 3.24711 6.31819 0 7.10375 90 62.8 -3.24711 -4.84002 -8.38874 10.2147 145.209 236.143 +2 7 0 3.83277 7.45776 0 8.385 90 62.8 -3.83277 -5.71297 -7.65625 10.293 138.059 236.143 +2 7 1 -3.83277 7.45776 0 8.385 90 117.2 3.83277 -5.71297 -7.65625 10.293 138.059 303.857 +2 7 2 -3.53994 6.88797 0 7.74438 90 117.2 3.53994 -5.27649 -8.0225 10.2339 141.62 303.857 +2 7 3 3.53994 6.88797 0 7.74438 90 62.8 -3.53994 -5.27649 -8.0225 10.2339 141.62 236.143 +2 8 0 4.12559 8.02754 0 9.02562 90 62.8 -4.12559 -6.14945 -7.29 10.3914 134.551 236.143 +2 8 1 -4.12559 8.02754 0 9.02562 90 117.2 4.12559 -6.14945 -7.29 10.3914 134.551 303.857 +2 8 2 -3.83277 7.45776 0 8.385 90 117.2 3.83277 -5.71297 -7.65625 10.293 138.059 303.857 +2 8 3 3.83277 7.45776 0 8.385 90 62.8 -3.83277 -5.71297 -7.65625 10.293 138.059 236.143 +2 9 0 4.41842 8.59732 0 9.66625 90 62.8 -4.41842 -6.58593 -6.92375 10.5278 131.122 236.143 +2 9 1 -4.41842 8.59732 0 9.66625 90 117.2 4.41842 -6.58593 -6.92375 10.5278 131.122 303.857 +2 9 2 -4.12559 8.02754 0 9.02562 90 117.2 4.12559 -6.14945 -7.29 10.3914 134.551 303.857 +2 9 3 4.12559 8.02754 0 9.02562 90 62.8 -4.12559 -6.14945 -7.29 10.3914 134.551 236.143 +2 10 0 4.71125 9.1671 0 10.3069 90 62.8 -4.71125 -7.02241 -6.5575 10.701 127.792 236.143 +2 10 1 -4.71125 9.1671 0 10.3069 90 117.2 4.71125 -7.02241 -6.5575 10.701 127.792 303.857 +2 10 2 -4.41842 8.59732 0 9.66625 90 117.2 4.41842 -6.58593 -6.92375 10.5278 131.122 303.857 +2 10 3 4.41842 8.59732 0 9.66625 90 62.8 -4.41842 -6.58593 -6.92375 10.5278 131.122 236.143 +2 11 0 5.00408 9.73689 0 10.9475 90 62.8 -5.00408 -7.45889 -6.19125 10.9091 124.578 236.143 +2 11 1 -5.00408 9.73689 0 10.9475 90 117.2 5.00408 -7.45889 -6.19125 10.9091 124.578 303.857 +2 11 2 -4.71125 9.1671 0 10.3069 90 117.2 4.71125 -7.02241 -6.5575 10.701 127.792 303.857 +2 11 3 4.71125 9.1671 0 10.3069 90 62.8 -4.71125 -7.02241 -6.5575 10.701 127.792 236.143 +2 12 0 5.29691 10.3067 0 11.5881 90 62.8 -5.29691 -7.89537 -5.825 11.1501 121.495 236.143 +2 12 1 -5.29691 10.3067 0 11.5881 90 117.2 5.29691 -7.89537 -5.825 11.1501 121.495 303.857 +2 12 2 -5.00408 9.73689 0 10.9475 90 117.2 5.00408 -7.45889 -6.19125 10.9091 124.578 303.857 +2 12 3 5.00408 9.73689 0 10.9475 90 62.8 -5.00408 -7.45889 -6.19125 10.9091 124.578 236.143 +2 13 0 5.58974 10.8765 0 12.2287 90 62.8 -5.58974 -8.33184 -5.45875 11.422 118.549 236.143 +2 13 1 -5.58974 10.8765 0 12.2287 90 117.2 5.58974 -8.33184 -5.45875 11.422 118.549 303.857 +2 13 2 -5.29691 10.3067 0 11.5881 90 117.2 5.29691 -7.89537 -5.825 11.1501 121.495 303.857 +2 13 3 5.29691 10.3067 0 11.5881 90 62.8 -5.29691 -7.89537 -5.825 11.1501 121.495 236.143 +2 14 0 5.88256 11.4462 0 12.8694 90 62.8 -5.88256 -8.76832 -5.0925 11.7227 115.748 236.143 +2 14 1 -5.88256 11.4462 0 12.8694 90 117.2 5.88256 -8.76832 -5.0925 11.7227 115.748 303.857 +2 14 2 -5.58974 10.8765 0 12.2287 90 117.2 5.58974 -8.33184 -5.45875 11.422 118.549 303.857 +2 14 3 5.58974 10.8765 0 12.2287 90 62.8 -5.58974 -8.33184 -5.45875 11.422 118.549 236.143 +2 15 0 6.17539 12.016 0 13.51 90 62.8 -6.17539 -9.2048 -4.72625 12.05 113.093 236.143 +2 15 1 -6.17539 12.016 0 13.51 90 117.2 6.17539 -9.2048 -4.72625 12.05 113.093 303.857 +2 15 2 -5.88256 11.4462 0 12.8694 90 117.2 5.88256 -8.76832 -5.0925 11.7227 115.748 303.857 +2 15 3 5.88256 11.4462 0 12.8694 90 62.8 -5.88256 -8.76832 -5.0925 11.7227 115.748 236.143 +3 0 0 1.78297 3.46928 0 3.90062 90 62.8 -3.07852 0.874452 -10.22 10.7093 162.613 164.143 +3 0 1 -1.78297 3.46928 0 3.90062 90 117.2 -1.97658 -2.51695 -10.22 10.7093 162.613 231.857 +3 0 2 -1.49014 2.8995 0 3.26 90 117.2 -1.65195 -2.10358 -10.5862 10.9189 165.821 231.857 +3 0 3 1.49014 2.8995 0 3.26 90 62.8 -2.57291 0.730835 -10.5862 10.9189 165.821 164.143 +3 1 0 2.0758 4.03906 0 4.54125 90 62.8 -3.58412 1.01807 -9.85374 10.5346 159.287 164.143 +3 1 1 -2.0758 4.03906 0 4.54125 90 117.2 -2.30121 -2.93033 -9.85374 10.5346 159.287 231.857 +3 1 2 -1.78297 3.46928 0 3.90062 90 117.2 -1.97658 -2.51695 -10.22 10.7093 162.613 231.857 +3 1 3 1.78297 3.46928 0 3.90062 90 62.8 -3.07852 0.874452 -10.22 10.7093 162.613 164.143 +3 2 0 2.36862 4.60884 0 5.18187 90 62.8 -4.08973 1.16169 -9.48749 10.3965 155.862 164.143 +3 2 1 -2.36862 4.60884 0 5.18187 90 117.2 -2.62584 -3.3437 -9.48749 10.3965 155.862 231.857 +3 2 2 -2.0758 4.03906 0 4.54125 90 117.2 -2.30121 -2.93033 -9.85374 10.5346 159.287 231.857 +3 2 3 2.0758 4.03906 0 4.54125 90 62.8 -3.58412 1.01807 -9.85374 10.5346 159.287 164.143 +3 3 0 2.66145 5.17863 0 5.8225 90 62.8 -4.59533 1.3053 -9.12124 10.2965 152.357 164.143 +3 3 1 -2.66145 5.17863 0 5.8225 90 117.2 -2.95046 -3.75708 -9.12124 10.2965 152.357 231.857 +3 3 2 -2.36862 4.60884 0 5.18187 90 117.2 -2.62584 -3.3437 -9.48749 10.3965 155.862 231.857 +3 3 3 2.36862 4.60884 0 5.18187 90 62.8 -4.08973 1.16169 -9.48749 10.3965 155.862 164.143 +3 4 0 2.95428 5.74841 0 6.46312 90 62.8 -5.10094 1.44892 -8.75499 10.2357 148.798 164.143 +3 4 1 -2.95428 5.74841 0 6.46312 90 117.2 -3.27509 -4.17046 -8.75499 10.2357 148.798 231.857 +3 4 2 -2.66145 5.17863 0 5.8225 90 117.2 -2.95046 -3.75708 -9.12124 10.2965 152.357 231.857 +3 4 3 2.66145 5.17863 0 5.8225 90 62.8 -4.59533 1.3053 -9.12124 10.2965 152.357 164.143 +3 5 0 3.24711 6.31819 0 7.10375 90 62.8 -5.60654 1.59254 -8.38874 10.2147 145.209 164.143 +3 5 1 -3.24711 6.31819 0 7.10375 90 117.2 -3.59972 -4.58383 -8.38874 10.2147 145.209 231.857 +3 5 2 -2.95428 5.74841 0 6.46312 90 117.2 -3.27509 -4.17046 -8.75499 10.2357 148.798 231.857 +3 5 3 2.95428 5.74841 0 6.46312 90 62.8 -5.10094 1.44892 -8.75499 10.2357 148.798 164.143 +3 6 0 3.53994 6.88797 0 7.74438 90 62.8 -6.11215 1.73615 -8.0225 10.2339 141.62 164.143 +3 6 1 -3.53994 6.88797 0 7.74438 90 117.2 -3.92434 -4.99721 -8.0225 10.2339 141.62 231.857 +3 6 2 -3.24711 6.31819 0 7.10375 90 117.2 -3.59972 -4.58383 -8.38874 10.2147 145.209 231.857 +3 6 3 3.24711 6.31819 0 7.10375 90 62.8 -5.60654 1.59254 -8.38874 10.2147 145.209 164.143 +3 7 0 3.83277 7.45776 0 8.385 90 62.8 -6.61775 1.87977 -7.65625 10.293 138.059 164.143 +3 7 1 -3.83277 7.45776 0 8.385 90 117.2 -4.24897 -5.41058 -7.65625 10.293 138.059 231.857 +3 7 2 -3.53994 6.88797 0 7.74438 90 117.2 -3.92434 -4.99721 -8.0225 10.2339 141.62 231.857 +3 7 3 3.53994 6.88797 0 7.74438 90 62.8 -6.11215 1.73615 -8.0225 10.2339 141.62 164.143 +3 8 0 4.12559 8.02754 0 9.02562 90 62.8 -7.12335 2.02339 -7.29 10.3914 134.551 164.143 +3 8 1 -4.12559 8.02754 0 9.02562 90 117.2 -4.5736 -5.82396 -7.29 10.3914 134.551 231.857 +3 8 2 -3.83277 7.45776 0 8.385 90 117.2 -4.24897 -5.41058 -7.65625 10.293 138.059 231.857 +3 8 3 3.83277 7.45776 0 8.385 90 62.8 -6.61775 1.87977 -7.65625 10.293 138.059 164.143 +3 9 0 4.41842 8.59732 0 9.66625 90 62.8 -7.62896 2.16701 -6.92375 10.5278 131.122 164.143 +3 9 1 -4.41842 8.59732 0 9.66625 90 117.2 -4.89822 -6.23733 -6.92375 10.5278 131.122 231.857 +3 9 2 -4.12559 8.02754 0 9.02562 90 117.2 -4.5736 -5.82396 -7.29 10.3914 134.551 231.857 +3 9 3 4.12559 8.02754 0 9.02562 90 62.8 -7.12335 2.02339 -7.29 10.3914 134.551 164.143 +3 10 0 4.71125 9.1671 0 10.3069 90 62.8 -8.13456 2.31062 -6.5575 10.701 127.792 164.143 +3 10 1 -4.71125 9.1671 0 10.3069 90 117.2 -5.22285 -6.65071 -6.5575 10.701 127.792 231.857 +3 10 2 -4.41842 8.59732 0 9.66625 90 117.2 -4.89822 -6.23733 -6.92375 10.5278 131.122 231.857 +3 10 3 4.41842 8.59732 0 9.66625 90 62.8 -7.62896 2.16701 -6.92375 10.5278 131.122 164.143 +3 11 0 5.00408 9.73689 0 10.9475 90 62.8 -8.64017 2.45424 -6.19125 10.9091 124.578 164.143 +3 11 1 -5.00408 9.73689 0 10.9475 90 117.2 -5.54748 -7.06409 -6.19125 10.9091 124.578 231.857 +3 11 2 -4.71125 9.1671 0 10.3069 90 117.2 -5.22285 -6.65071 -6.5575 10.701 127.792 231.857 +3 11 3 4.71125 9.1671 0 10.3069 90 62.8 -8.13456 2.31062 -6.5575 10.701 127.792 164.143 +3 12 0 5.29691 10.3067 0 11.5881 90 62.8 -9.14577 2.59786 -5.825 11.1501 121.495 164.143 +3 12 1 -5.29691 10.3067 0 11.5881 90 117.2 -5.8721 -7.47746 -5.825 11.1501 121.495 231.857 +3 12 2 -5.00408 9.73689 0 10.9475 90 117.2 -5.54748 -7.06409 -6.19125 10.9091 124.578 231.857 +3 12 3 5.00408 9.73689 0 10.9475 90 62.8 -8.64017 2.45424 -6.19125 10.9091 124.578 164.143 +3 13 0 5.58974 10.8765 0 12.2287 90 62.8 -9.65138 2.74147 -5.45875 11.422 118.549 164.143 +3 13 1 -5.58974 10.8765 0 12.2287 90 117.2 -6.19673 -7.89084 -5.45875 11.422 118.549 231.857 +3 13 2 -5.29691 10.3067 0 11.5881 90 117.2 -5.8721 -7.47746 -5.825 11.1501 121.495 231.857 +3 13 3 5.29691 10.3067 0 11.5881 90 62.8 -9.14577 2.59786 -5.825 11.1501 121.495 164.143 +3 14 0 5.88256 11.4462 0 12.8694 90 62.8 -10.157 2.88509 -5.0925 11.7227 115.748 164.143 +3 14 1 -5.88256 11.4462 0 12.8694 90 117.2 -6.52136 -8.30421 -5.0925 11.7227 115.748 231.857 +3 14 2 -5.58974 10.8765 0 12.2287 90 117.2 -6.19673 -7.89084 -5.45875 11.422 118.549 231.857 +3 14 3 5.58974 10.8765 0 12.2287 90 62.8 -9.65138 2.74147 -5.45875 11.422 118.549 164.143 +3 15 0 6.17539 12.016 0 13.51 90 62.8 -10.6626 3.02871 -4.72625 12.05 113.093 164.143 +3 15 1 -6.17539 12.016 0 13.51 90 117.2 -6.84599 -8.71759 -4.72625 12.05 113.093 231.857 +3 15 2 -5.88256 11.4462 0 12.8694 90 117.2 -6.52136 -8.30421 -5.0925 11.7227 115.748 231.857 +3 15 3 5.88256 11.4462 0 12.8694 90 62.8 -10.157 2.88509 -5.0925 11.7227 115.748 164.143 +4 0 0 1.78297 3.46928 0 3.90062 90 62.8 -0.11966 3.19806 -10.22 10.7093 162.613 92.1428 +4 0 1 -1.78297 3.46928 0 3.90062 90 117.2 -3.00456 1.10206 -10.22 10.7093 162.613 159.857 +4 0 2 -1.49014 2.8995 0 3.26 90 117.2 -2.5111 0.921061 -10.5862 10.9189 165.821 159.857 +4 0 3 1.49014 2.8995 0 3.26 90 62.8 -0.100008 2.67282 -10.5862 10.9189 165.821 92.1428 +4 1 0 2.0758 4.03906 0 4.54125 90 62.8 -0.139313 3.7233 -9.85374 10.5346 159.287 92.1428 +4 1 1 -2.0758 4.03906 0 4.54125 90 117.2 -3.49802 1.28306 -9.85374 10.5346 159.287 159.857 +4 1 2 -1.78297 3.46928 0 3.90062 90 117.2 -3.00456 1.10206 -10.22 10.7093 162.613 159.857 +4 1 3 1.78297 3.46928 0 3.90062 90 62.8 -0.11966 3.19806 -10.22 10.7093 162.613 92.1428 +4 2 0 2.36862 4.60884 0 5.18187 90 62.8 -0.158965 4.24854 -9.48749 10.3965 155.862 92.1428 +4 2 1 -2.36862 4.60884 0 5.18187 90 117.2 -3.99148 1.46406 -9.48749 10.3965 155.862 159.857 +4 2 2 -2.0758 4.03906 0 4.54125 90 117.2 -3.49802 1.28306 -9.85374 10.5346 159.287 159.857 +4 2 3 2.0758 4.03906 0 4.54125 90 62.8 -0.139313 3.7233 -9.85374 10.5346 159.287 92.1428 +4 3 0 2.66145 5.17863 0 5.8225 90 62.8 -0.178618 4.77378 -9.12124 10.2965 152.357 92.1428 +4 3 1 -2.66145 5.17863 0 5.8225 90 117.2 -4.48494 1.64505 -9.12124 10.2965 152.357 159.857 +4 3 2 -2.36862 4.60884 0 5.18187 90 117.2 -3.99148 1.46406 -9.48749 10.3965 155.862 159.857 +4 3 3 2.36862 4.60884 0 5.18187 90 62.8 -0.158965 4.24854 -9.48749 10.3965 155.862 92.1428 +4 4 0 2.95428 5.74841 0 6.46312 90 62.8 -0.19827 5.29902 -8.75499 10.2357 148.798 92.1428 +4 4 1 -2.95428 5.74841 0 6.46312 90 117.2 -4.9784 1.82605 -8.75499 10.2357 148.798 159.857 +4 4 2 -2.66145 5.17863 0 5.8225 90 117.2 -4.48494 1.64505 -9.12124 10.2965 152.357 159.857 +4 4 3 2.66145 5.17863 0 5.8225 90 62.8 -0.178618 4.77378 -9.12124 10.2965 152.357 92.1428 +4 5 0 3.24711 6.31819 0 7.10375 90 62.8 -0.217923 5.82426 -8.38874 10.2147 145.209 92.1428 +4 5 1 -3.24711 6.31819 0 7.10375 90 117.2 -5.47186 2.00705 -8.38874 10.2147 145.209 159.857 +4 5 2 -2.95428 5.74841 0 6.46312 90 117.2 -4.9784 1.82605 -8.75499 10.2357 148.798 159.857 +4 5 3 2.95428 5.74841 0 6.46312 90 62.8 -0.19827 5.29902 -8.75499 10.2357 148.798 92.1428 +4 6 0 3.53994 6.88797 0 7.74438 90 62.8 -0.237576 6.3495 -8.0225 10.2339 141.62 92.1428 +4 6 1 -3.53994 6.88797 0 7.74438 90 117.2 -5.96532 2.18805 -8.0225 10.2339 141.62 159.857 +4 6 2 -3.24711 6.31819 0 7.10375 90 117.2 -5.47186 2.00705 -8.38874 10.2147 145.209 159.857 +4 6 3 3.24711 6.31819 0 7.10375 90 62.8 -0.217923 5.82426 -8.38874 10.2147 145.209 92.1428 +4 7 0 3.83277 7.45776 0 8.385 90 62.8 -0.257228 6.87474 -7.65625 10.293 138.059 92.1428 +4 7 1 -3.83277 7.45776 0 8.385 90 117.2 -6.45877 2.36905 -7.65625 10.293 138.059 159.857 +4 7 2 -3.53994 6.88797 0 7.74438 90 117.2 -5.96532 2.18805 -8.0225 10.2339 141.62 159.857 +4 7 3 3.53994 6.88797 0 7.74438 90 62.8 -0.237576 6.3495 -8.0225 10.2339 141.62 92.1428 +4 8 0 4.12559 8.02754 0 9.02562 90 62.8 -0.276881 7.39997 -7.29 10.3914 134.551 92.1428 +4 8 1 -4.12559 8.02754 0 9.02562 90 117.2 -6.95223 2.55005 -7.29 10.3914 134.551 159.857 +4 8 2 -3.83277 7.45776 0 8.385 90 117.2 -6.45877 2.36905 -7.65625 10.293 138.059 159.857 +4 8 3 3.83277 7.45776 0 8.385 90 62.8 -0.257228 6.87474 -7.65625 10.293 138.059 92.1428 +4 9 0 4.41842 8.59732 0 9.66625 90 62.8 -0.296533 7.92521 -6.92375 10.5278 131.122 92.1428 +4 9 1 -4.41842 8.59732 0 9.66625 90 117.2 -7.44569 2.73105 -6.92375 10.5278 131.122 159.857 +4 9 2 -4.12559 8.02754 0 9.02562 90 117.2 -6.95223 2.55005 -7.29 10.3914 134.551 159.857 +4 9 3 4.12559 8.02754 0 9.02562 90 62.8 -0.276881 7.39997 -7.29 10.3914 134.551 92.1428 +4 10 0 4.71125 9.1671 0 10.3069 90 62.8 -0.316186 8.45045 -6.5575 10.701 127.792 92.1428 +4 10 1 -4.71125 9.1671 0 10.3069 90 117.2 -7.93915 2.91204 -6.5575 10.701 127.792 159.857 +4 10 2 -4.41842 8.59732 0 9.66625 90 117.2 -7.44569 2.73105 -6.92375 10.5278 131.122 159.857 +4 10 3 4.41842 8.59732 0 9.66625 90 62.8 -0.296533 7.92521 -6.92375 10.5278 131.122 92.1428 +4 11 0 5.00408 9.73689 0 10.9475 90 62.8 -0.335839 8.97569 -6.19125 10.9091 124.578 92.1428 +4 11 1 -5.00408 9.73689 0 10.9475 90 117.2 -8.43261 3.09304 -6.19125 10.9091 124.578 159.857 +4 11 2 -4.71125 9.1671 0 10.3069 90 117.2 -7.93915 2.91204 -6.5575 10.701 127.792 159.857 +4 11 3 4.71125 9.1671 0 10.3069 90 62.8 -0.316186 8.45045 -6.5575 10.701 127.792 92.1428 +4 12 0 5.29691 10.3067 0 11.5881 90 62.8 -0.355491 9.50093 -5.825 11.1501 121.495 92.1428 +4 12 1 -5.29691 10.3067 0 11.5881 90 117.2 -8.92607 3.27404 -5.825 11.1501 121.495 159.857 +4 12 2 -5.00408 9.73689 0 10.9475 90 117.2 -8.43261 3.09304 -6.19125 10.9091 124.578 159.857 +4 12 3 5.00408 9.73689 0 10.9475 90 62.8 -0.335839 8.97569 -6.19125 10.9091 124.578 92.1428 +4 13 0 5.58974 10.8765 0 12.2287 90 62.8 -0.375144 10.0262 -5.45875 11.422 118.549 92.1428 +4 13 1 -5.58974 10.8765 0 12.2287 90 117.2 -9.41953 3.45504 -5.45875 11.422 118.549 159.857 +4 13 2 -5.29691 10.3067 0 11.5881 90 117.2 -8.92607 3.27404 -5.825 11.1501 121.495 159.857 +4 13 3 5.29691 10.3067 0 11.5881 90 62.8 -0.355491 9.50093 -5.825 11.1501 121.495 92.1428 +4 14 0 5.88256 11.4462 0 12.8694 90 62.8 -0.394796 10.5514 -5.0925 11.7227 115.748 92.1428 +4 14 1 -5.88256 11.4462 0 12.8694 90 117.2 -9.91299 3.63604 -5.0925 11.7227 115.748 159.857 +4 14 2 -5.58974 10.8765 0 12.2287 90 117.2 -9.41953 3.45504 -5.45875 11.422 118.549 159.857 +4 14 3 5.58974 10.8765 0 12.2287 90 62.8 -0.375144 10.0262 -5.45875 11.422 118.549 92.1428 +4 15 0 6.17539 12.016 0 13.51 90 62.8 -0.414449 11.0766 -4.72625 12.05 113.093 92.1428 +4 15 1 -6.17539 12.016 0 13.51 90 117.2 -10.4064 3.81704 -4.72625 12.05 113.093 159.857 +4 15 2 -5.88256 11.4462 0 12.8694 90 117.2 -9.91299 3.63604 -5.0925 11.7227 115.748 159.857 +4 15 3 5.88256 11.4462 0 12.8694 90 62.8 -0.394796 10.5514 -5.0925 11.7227 115.748 92.1428 +WEDGES +det ch corner x_fl y_fl z_fl r_fl t_fl p_fl x_ti y_ti z_ti r_ti t_ti p_ti +0 0 0 -4.70921 12.6627 0 13.51 90 110.4 1.89179 10.6156 -4.31059 11.6125 111.79 79.8955 +0 0 1 -6.17539 12.016 0 13.51 90 117.2 0.414449 11.0766 -4.72625 12.05 113.093 87.8572 +0 0 2 -1.49014 2.8995 0 3.26 90 117.2 0.100008 2.67282 -10.5862 10.9189 165.821 87.8572 +0 0 3 -1.13634 3.05554 0 3.26 90 110.4 0.456494 2.56158 -10.4859 10.8039 166.064 79.8955 +0 1 0 -3.17677 13.1312 0 13.51 90 103.6 3.34252 10.0052 -4.00943 11.2851 110.811 71.5267 +0 1 1 -4.70921 12.6627 0 13.51 90 110.4 1.89179 10.6156 -4.31059 11.6125 111.79 79.8955 +0 1 2 -1.13634 3.05554 0 3.26 90 110.4 0.456494 2.56158 -10.4859 10.8039 166.064 79.8955 +0 1 3 -0.766563 3.16859 0 3.26 90 103.6 0.806558 2.41429 -10.4133 10.7199 166.264 71.5267 +0 2 0 -1.59964 13.415 0 13.51 90 96.8 4.74622 9.25407 -3.82703 11.082 110.202 62.8477 +0 2 1 -3.17677 13.1312 0 13.51 90 103.6 3.34252 10.0052 -4.00943 11.2851 110.811 71.5267 +0 2 2 -0.766563 3.16859 0 3.26 90 103.6 0.806558 2.41429 -10.4133 10.7199 166.264 71.5267 +0 2 3 -0.385997 3.23707 0 3.26 90 96.8 1.14528 2.23303 -10.3693 10.6686 166.395 62.8477 +0 3 0 0 13.51 0 13.51 90 90 6.08314 8.37273 -3.76594 11.0132 109.996 54 +0 3 1 -1.59964 13.415 0 13.51 90 96.8 4.74622 9.25407 -3.82703 11.082 110.202 62.8477 +0 3 2 -0.385997 3.23707 0 3.26 90 96.8 1.14528 2.23303 -10.3693 10.6686 166.395 62.8477 +0 3 3 0 3.26 0 3.26 90 90 1.46788 2.02036 -10.3545 10.6514 166.44 54 +0 4 0 1.59964 13.415 0 13.51 90 83.2 7.33448 7.37359 -3.82703 11.082 110.202 45.1523 +0 4 1 0 13.51 0 13.51 90 90 6.08314 8.37273 -3.76594 11.0132 109.996 54 +0 4 2 0 3.26 0 3.26 90 90 1.46788 2.02036 -10.3545 10.6514 166.44 54 +0 4 3 0.385997 3.23707 0 3.26 90 83.2 1.76983 1.77927 -10.3693 10.6686 166.395 45.1523 +0 5 0 3.17677 13.1312 0 13.51 90 76.4 8.48264 6.27071 -4.00943 11.2851 110.811 36.4733 +0 5 1 1.59964 13.415 0 13.51 90 83.2 7.33448 7.37359 -3.82703 11.082 110.202 45.1523 +0 5 2 0.385997 3.23707 0 3.26 90 83.2 1.76983 1.77927 -10.3693 10.6686 166.395 45.1523 +0 5 3 0.766563 3.16859 0 3.26 90 76.4 2.04688 1.51314 -10.4133 10.7199 166.264 36.4733 +0 6 0 4.70921 12.6627 0 13.51 90 69.6 9.51145 5.0796 -4.31059 11.6125 111.79 28.1045 +0 6 1 3.17677 13.1312 0 13.51 90 76.4 8.48264 6.27071 -4.00943 11.2851 110.811 36.4733 +0 6 2 0.766563 3.16859 0 3.26 90 76.4 2.04688 1.51314 -10.4133 10.7199 166.264 36.4733 +0 6 3 1.13634 3.05554 0 3.26 90 69.6 2.29514 1.22572 -10.4859 10.8039 166.064 28.1045 +0 7 0 6.17539 12.016 0 13.51 90 62.8 10.4064 3.81704 -4.72625 12.05 113.093 20.1428 +0 7 1 4.70921 12.6627 0 13.51 90 69.6 9.51145 5.0796 -4.31059 11.6125 111.79 28.1045 +0 7 2 1.13634 3.05554 0 3.26 90 69.6 2.29514 1.22572 -10.4859 10.8039 166.064 28.1045 +0 7 3 1.49014 2.8995 0 3.26 90 62.8 2.5111 0.921061 -10.5862 10.9189 165.821 20.1428 +1 0 0 -4.70921 12.6627 0 13.51 90 110.4 10.6806 1.4812 -4.31059 11.6125 111.79 7.89549 +1 0 1 -6.17539 12.016 0 13.51 90 117.2 10.6626 3.02871 -4.72625 12.05 113.093 15.8572 +1 0 2 -1.49014 2.8995 0 3.26 90 117.2 2.57291 0.730835 -10.5862 10.9189 165.821 15.8572 +1 0 3 -1.13634 3.05554 0 3.26 90 110.4 2.57727 0.357419 -10.4859 10.8039 166.064 7.89549 +1 1 0 -3.17677 13.1312 0 13.51 90 103.6 10.5484 -0.0871381 -4.00943 11.2851 110.811 359.527 +1 1 1 -4.70921 12.6627 0 13.51 90 110.4 10.6806 1.4812 -4.31059 11.6125 111.79 7.89549 +1 1 2 -1.13634 3.05554 0 3.26 90 110.4 2.57727 0.357419 -10.4859 10.8039 166.064 7.89549 +1 1 3 -0.766563 3.16859 0 3.26 90 103.6 2.54536 -0.0210267 -10.4133 10.7199 166.264 359.527 +1 2 0 -1.59964 13.415 0 13.51 90 96.8 10.2678 -1.65425 -3.82703 11.082 110.202 350.848 +1 2 1 -3.17677 13.1312 0 13.51 90 103.6 10.5484 -0.0871381 -4.00943 11.2851 110.811 359.527 +1 2 2 -0.766563 3.16859 0 3.26 90 103.6 2.54536 -0.0210267 -10.4133 10.7199 166.264 359.527 +1 2 3 -0.385997 3.23707 0 3.26 90 96.8 2.47765 -0.399176 -10.3693 10.6686 166.395 350.848 +1 3 0 0 13.51 0 13.51 90 90 9.84273 -3.1981 -3.76594 11.0132 109.996 342 +1 3 1 -1.59964 13.415 0 13.51 90 96.8 10.2678 -1.65425 -3.82703 11.082 110.202 350.848 +1 3 2 -0.385997 3.23707 0 3.26 90 96.8 2.47765 -0.399176 -10.3693 10.6686 166.395 350.848 +1 3 3 0 3.26 0 3.26 90 90 2.37508 -0.77171 -10.3545 10.6514 166.44 342 +1 4 0 1.59964 13.415 0 13.51 90 83.2 9.27918 -4.69695 -3.82703 11.082 110.202 333.152 +1 4 1 0 13.51 0 13.51 90 90 9.84273 -3.1981 -3.76594 11.0132 109.996 342 +1 4 2 0 3.26 0 3.26 90 90 2.37508 -0.77171 -10.3545 10.6514 166.44 342 +1 4 3 0.385997 3.23707 0 3.26 90 83.2 2.23909 -1.13339 -10.3693 10.6686 166.395 333.152 +1 5 0 3.17677 13.1312 0 13.51 90 76.4 8.58508 -6.12971 -4.00943 11.2851 110.811 324.473 +1 5 1 1.59964 13.415 0 13.51 90 83.2 9.27918 -4.69695 -3.82703 11.082 110.202 333.152 +1 5 2 0.385997 3.23707 0 3.26 90 83.2 2.23909 -1.13339 -10.3693 10.6686 166.395 333.152 +1 5 3 0.766563 3.16859 0 3.26 90 76.4 2.0716 -1.47912 -10.4133 10.7199 166.264 324.473 +1 6 0 4.70921 12.6627 0 13.51 90 69.6 7.77019 -7.47624 -4.31059 11.6125 111.79 316.105 +1 6 1 3.17677 13.1312 0 13.51 90 76.4 8.58508 -6.12971 -4.00943 11.2851 110.811 324.473 +1 6 2 0.766563 3.16859 0 3.26 90 76.4 2.0716 -1.47912 -10.4133 10.7199 166.264 324.473 +1 6 3 1.13634 3.05554 0 3.26 90 69.6 1.87497 -1.80404 -10.4859 10.8039 166.064 316.105 +1 7 0 6.17539 12.016 0 13.51 90 62.8 6.84599 -8.71759 -4.72625 12.05 113.093 308.143 +1 7 1 4.70921 12.6627 0 13.51 90 69.6 7.77019 -7.47624 -4.31059 11.6125 111.79 316.105 +1 7 2 1.13634 3.05554 0 3.26 90 69.6 1.87497 -1.80404 -10.4859 10.8039 166.064 316.105 +1 7 3 1.49014 2.8995 0 3.26 90 62.8 1.65195 -2.10358 -10.5862 10.9189 165.821 308.143 +2 0 0 -4.70921 12.6627 0 13.51 90 110.4 4.70921 -9.70018 -4.31059 11.6125 111.79 295.895 +2 0 1 -6.17539 12.016 0 13.51 90 117.2 6.17539 -9.2048 -4.72625 12.05 113.093 303.857 +2 0 2 -1.49014 2.8995 0 3.26 90 117.2 1.49014 -2.22114 -10.5862 10.9189 165.821 303.857 +2 0 3 -1.13634 3.05554 0 3.26 90 110.4 1.13634 -2.34068 -10.4859 10.8039 166.064 295.895 +2 1 0 -3.17677 13.1312 0 13.51 90 103.6 3.17677 -10.0591 -4.00943 11.2851 110.811 287.527 +2 1 1 -4.70921 12.6627 0 13.51 90 110.4 4.70921 -9.70018 -4.31059 11.6125 111.79 295.895 +2 1 2 -1.13634 3.05554 0 3.26 90 110.4 1.13634 -2.34068 -10.4859 10.8039 166.064 295.895 +2 1 3 -0.766563 3.16859 0 3.26 90 103.6 0.766563 -2.42728 -10.4133 10.7199 166.264 287.527 +2 2 0 -1.59964 13.415 0 13.51 90 96.8 1.59964 -10.2765 -3.82703 11.082 110.202 278.848 +2 2 1 -3.17677 13.1312 0 13.51 90 103.6 3.17677 -10.0591 -4.00943 11.2851 110.811 287.527 +2 2 2 -0.766563 3.16859 0 3.26 90 103.6 0.766563 -2.42728 -10.4133 10.7199 166.264 287.527 +2 2 3 -0.385997 3.23707 0 3.26 90 96.8 0.385997 -2.47974 -10.3693 10.6686 166.395 278.848 +2 3 0 0 13.51 0 13.51 90 90 1.26742e-15 -10.3493 -3.76594 11.0132 109.996 270 +2 3 1 -1.59964 13.415 0 13.51 90 96.8 1.59964 -10.2765 -3.82703 11.082 110.202 278.848 +2 3 2 -0.385997 3.23707 0 3.26 90 96.8 0.385997 -2.47974 -10.3693 10.6686 166.395 278.848 +2 3 3 0 3.26 0 3.26 90 90 3.05832e-16 -2.4973 -10.3545 10.6514 166.44 270 +2 4 0 1.59964 13.415 0 13.51 90 83.2 -1.59964 -10.2765 -3.82703 11.082 110.202 261.152 +2 4 1 0 13.51 0 13.51 90 90 1.26742e-15 -10.3493 -3.76594 11.0132 109.996 270 +2 4 2 0 3.26 0 3.26 90 90 3.05832e-16 -2.4973 -10.3545 10.6514 166.44 270 +2 4 3 0.385997 3.23707 0 3.26 90 83.2 -0.385997 -2.47974 -10.3693 10.6686 166.395 261.152 +2 5 0 3.17677 13.1312 0 13.51 90 76.4 -3.17677 -10.0591 -4.00943 11.2851 110.811 252.473 +2 5 1 1.59964 13.415 0 13.51 90 83.2 -1.59964 -10.2765 -3.82703 11.082 110.202 261.152 +2 5 2 0.385997 3.23707 0 3.26 90 83.2 -0.385997 -2.47974 -10.3693 10.6686 166.395 261.152 +2 5 3 0.766563 3.16859 0 3.26 90 76.4 -0.766563 -2.42728 -10.4133 10.7199 166.264 252.473 +2 6 0 4.70921 12.6627 0 13.51 90 69.6 -4.70921 -9.70018 -4.31059 11.6125 111.79 244.105 +2 6 1 3.17677 13.1312 0 13.51 90 76.4 -3.17677 -10.0591 -4.00943 11.2851 110.811 252.473 +2 6 2 0.766563 3.16859 0 3.26 90 76.4 -0.766563 -2.42728 -10.4133 10.7199 166.264 252.473 +2 6 3 1.13634 3.05554 0 3.26 90 69.6 -1.13634 -2.34068 -10.4859 10.8039 166.064 244.105 +2 7 0 6.17539 12.016 0 13.51 90 62.8 -6.17539 -9.2048 -4.72625 12.05 113.093 236.143 +2 7 1 4.70921 12.6627 0 13.51 90 69.6 -4.70921 -9.70018 -4.31059 11.6125 111.79 244.105 +2 7 2 1.13634 3.05554 0 3.26 90 69.6 -1.13634 -2.34068 -10.4859 10.8039 166.064 244.105 +2 7 3 1.49014 2.8995 0 3.26 90 62.8 -1.49014 -2.22114 -10.5862 10.9189 165.821 236.143 +3 0 0 -4.70921 12.6627 0 13.51 90 110.4 -7.77019 -7.47624 -4.31059 11.6125 111.79 223.895 +3 0 1 -6.17539 12.016 0 13.51 90 117.2 -6.84599 -8.71759 -4.72625 12.05 113.093 231.857 +3 0 2 -1.49014 2.8995 0 3.26 90 117.2 -1.65195 -2.10358 -10.5862 10.9189 165.821 231.857 +3 0 3 -1.13634 3.05554 0 3.26 90 110.4 -1.87497 -1.80404 -10.4859 10.8039 166.064 223.895 +3 1 0 -3.17677 13.1312 0 13.51 90 103.6 -8.58508 -6.12971 -4.00943 11.2851 110.811 215.527 +3 1 1 -4.70921 12.6627 0 13.51 90 110.4 -7.77019 -7.47624 -4.31059 11.6125 111.79 223.895 +3 1 2 -1.13634 3.05554 0 3.26 90 110.4 -1.87497 -1.80404 -10.4859 10.8039 166.064 223.895 +3 1 3 -0.766563 3.16859 0 3.26 90 103.6 -2.0716 -1.47912 -10.4133 10.7199 166.264 215.527 +3 2 0 -1.59964 13.415 0 13.51 90 96.8 -9.27918 -4.69695 -3.82703 11.082 110.202 206.848 +3 2 1 -3.17677 13.1312 0 13.51 90 103.6 -8.58508 -6.12971 -4.00943 11.2851 110.811 215.527 +3 2 2 -0.766563 3.16859 0 3.26 90 103.6 -2.0716 -1.47912 -10.4133 10.7199 166.264 215.527 +3 2 3 -0.385997 3.23707 0 3.26 90 96.8 -2.23909 -1.13339 -10.3693 10.6686 166.395 206.848 +3 3 0 0 13.51 0 13.51 90 90 -9.84273 -3.1981 -3.76594 11.0132 109.996 198 +3 3 1 -1.59964 13.415 0 13.51 90 96.8 -9.27918 -4.69695 -3.82703 11.082 110.202 206.848 +3 3 2 -0.385997 3.23707 0 3.26 90 96.8 -2.23909 -1.13339 -10.3693 10.6686 166.395 206.848 +3 3 3 0 3.26 0 3.26 90 90 -2.37508 -0.77171 -10.3545 10.6514 166.44 198 +3 4 0 1.59964 13.415 0 13.51 90 83.2 -10.2678 -1.65425 -3.82703 11.082 110.202 189.152 +3 4 1 0 13.51 0 13.51 90 90 -9.84273 -3.1981 -3.76594 11.0132 109.996 198 +3 4 2 0 3.26 0 3.26 90 90 -2.37508 -0.77171 -10.3545 10.6514 166.44 198 +3 4 3 0.385997 3.23707 0 3.26 90 83.2 -2.47765 -0.399176 -10.3693 10.6686 166.395 189.152 +3 5 0 3.17677 13.1312 0 13.51 90 76.4 -10.5484 -0.0871381 -4.00943 11.2851 110.811 180.473 +3 5 1 1.59964 13.415 0 13.51 90 83.2 -10.2678 -1.65425 -3.82703 11.082 110.202 189.152 +3 5 2 0.385997 3.23707 0 3.26 90 83.2 -2.47765 -0.399176 -10.3693 10.6686 166.395 189.152 +3 5 3 0.766563 3.16859 0 3.26 90 76.4 -2.54536 -0.0210267 -10.4133 10.7199 166.264 180.473 +3 6 0 4.70921 12.6627 0 13.51 90 69.6 -10.6806 1.4812 -4.31059 11.6125 111.79 172.105 +3 6 1 3.17677 13.1312 0 13.51 90 76.4 -10.5484 -0.0871381 -4.00943 11.2851 110.811 180.473 +3 6 2 0.766563 3.16859 0 3.26 90 76.4 -2.54536 -0.0210267 -10.4133 10.7199 166.264 180.473 +3 6 3 1.13634 3.05554 0 3.26 90 69.6 -2.57727 0.357419 -10.4859 10.8039 166.064 172.105 +3 7 0 6.17539 12.016 0 13.51 90 62.8 -10.6626 3.02871 -4.72625 12.05 113.093 164.143 +3 7 1 4.70921 12.6627 0 13.51 90 69.6 -10.6806 1.4812 -4.31059 11.6125 111.79 172.105 +3 7 2 1.13634 3.05554 0 3.26 90 69.6 -2.57727 0.357419 -10.4859 10.8039 166.064 172.105 +3 7 3 1.49014 2.8995 0 3.26 90 62.8 -2.57291 0.730835 -10.5862 10.9189 165.821 164.143 +4 0 0 -4.70921 12.6627 0 13.51 90 110.4 -9.51145 5.0796 -4.31059 11.6125 111.79 151.895 +4 0 1 -6.17539 12.016 0 13.51 90 117.2 -10.4064 3.81704 -4.72625 12.05 113.093 159.857 +4 0 2 -1.49014 2.8995 0 3.26 90 117.2 -2.5111 0.921061 -10.5862 10.9189 165.821 159.857 +4 0 3 -1.13634 3.05554 0 3.26 90 110.4 -2.29514 1.22572 -10.4859 10.8039 166.064 151.895 +4 1 0 -3.17677 13.1312 0 13.51 90 103.6 -8.48264 6.27071 -4.00943 11.2851 110.811 143.527 +4 1 1 -4.70921 12.6627 0 13.51 90 110.4 -9.51145 5.0796 -4.31059 11.6125 111.79 151.895 +4 1 2 -1.13634 3.05554 0 3.26 90 110.4 -2.29514 1.22572 -10.4859 10.8039 166.064 151.895 +4 1 3 -0.766563 3.16859 0 3.26 90 103.6 -2.04688 1.51314 -10.4133 10.7199 166.264 143.527 +4 2 0 -1.59964 13.415 0 13.51 90 96.8 -7.33448 7.37359 -3.82703 11.082 110.202 134.848 +4 2 1 -3.17677 13.1312 0 13.51 90 103.6 -8.48264 6.27071 -4.00943 11.2851 110.811 143.527 +4 2 2 -0.766563 3.16859 0 3.26 90 103.6 -2.04688 1.51314 -10.4133 10.7199 166.264 143.527 +4 2 3 -0.385997 3.23707 0 3.26 90 96.8 -1.76983 1.77927 -10.3693 10.6686 166.395 134.848 +4 3 0 0 13.51 0 13.51 90 90 -6.08314 8.37273 -3.76594 11.0132 109.996 126 +4 3 1 -1.59964 13.415 0 13.51 90 96.8 -7.33448 7.37359 -3.82703 11.082 110.202 134.848 +4 3 2 -0.385997 3.23707 0 3.26 90 96.8 -1.76983 1.77927 -10.3693 10.6686 166.395 134.848 +4 3 3 0 3.26 0 3.26 90 90 -1.46788 2.02036 -10.3545 10.6514 166.44 126 +4 4 0 1.59964 13.415 0 13.51 90 83.2 -4.74622 9.25407 -3.82703 11.082 110.202 117.152 +4 4 1 0 13.51 0 13.51 90 90 -6.08314 8.37273 -3.76594 11.0132 109.996 126 +4 4 2 0 3.26 0 3.26 90 90 -1.46788 2.02036 -10.3545 10.6514 166.44 126 +4 4 3 0.385997 3.23707 0 3.26 90 83.2 -1.14528 2.23303 -10.3693 10.6686 166.395 117.152 +4 5 0 3.17677 13.1312 0 13.51 90 76.4 -3.34252 10.0052 -4.00943 11.2851 110.811 108.473 +4 5 1 1.59964 13.415 0 13.51 90 83.2 -4.74622 9.25407 -3.82703 11.082 110.202 117.152 +4 5 2 0.385997 3.23707 0 3.26 90 83.2 -1.14528 2.23303 -10.3693 10.6686 166.395 117.152 +4 5 3 0.766563 3.16859 0 3.26 90 76.4 -0.806558 2.41429 -10.4133 10.7199 166.264 108.473 +4 6 0 4.70921 12.6627 0 13.51 90 69.6 -1.89179 10.6156 -4.31059 11.6125 111.79 100.105 +4 6 1 3.17677 13.1312 0 13.51 90 76.4 -3.34252 10.0052 -4.00943 11.2851 110.811 108.473 +4 6 2 0.766563 3.16859 0 3.26 90 76.4 -0.806558 2.41429 -10.4133 10.7199 166.264 108.473 +4 6 3 1.13634 3.05554 0 3.26 90 69.6 -0.456494 2.56158 -10.4859 10.8039 166.064 100.105 +4 7 0 6.17539 12.016 0 13.51 90 62.8 -0.414449 11.0766 -4.72625 12.05 113.093 92.1428 +4 7 1 4.70921 12.6627 0 13.51 90 69.6 -1.89179 10.6156 -4.31059 11.6125 111.79 100.105 +4 7 2 1.13634 3.05554 0 3.26 90 69.6 -0.456494 2.56158 -10.4859 10.8039 166.064 100.105 +4 7 3 1.49014 2.8995 0 3.26 90 62.8 -0.100008 2.67282 -10.5862 10.9189 165.821 92.1428 diff --git a/etc/mass.txt b/etc/mass.txt new file mode 100644 index 0000000..da4e88f --- /dev/null +++ b/etc/mass.txt @@ -0,0 +1,2501 @@ + N Z A EL ATOMIC MASS + (micro-u) + 1 0 1 n 1 008664.91582 + 0 1 1 H 1 007825.03224 + 1 1 2 H 2 014101.77811 + 2 1 3 H 3 016049.28199 + 1 2 3 He 3 016029.32265 + 3 1 4 H 4 026431.868 + 2 2 4 He 4 002603.25413 + 1 3 4 Li 4 027185.562 + 4 1 5 H 5 035311.493 + 3 2 5 He 5 012057.224 + 2 3 5 Li 5 012537.800 + 5 1 6 H 6 044955.437 + 4 2 6 He 6 018885.891 + 3 3 6 Li 6 015122.88742 + 2 4 6 Be 6 019726.409 + 5 2 7 He 7 027990.654 + 4 3 7 Li 7 016003.43666 + 3 4 7 Be 7 016928.717 + 2 5 7 B 7 029712.000 + 6 2 8 He 8 033934.390 + 5 3 8 Li 8 022486.246 + 4 4 8 Be 8 005305.102 + 3 5 8 B 8 024607.316 + 2 6 8 C 8 037643.042 + 7 2 9 He 9 043946.419 + 6 3 9 Li 9 026790.191 + 5 4 9 Be 9 012183.066 + 4 5 9 B 9 013329.649 + 3 6 9 C 9 031037.207 + 8 2 10 He 10 052815.308 + 7 3 10 Li 10 035483.453 + 6 4 10 Be 10 013534.695 + 5 5 10 B 10 012936.862 + 4 6 10 C 10 016853.218 + 3 7 10 N 10 041653.543 + 8 3 11 Li 11 043723.581 + 7 4 11 Be 11 021661.081 + 6 5 11 B 11 009305.166 + 5 6 11 C 11 011432.597 + 4 7 11 N 11 026090.945 + 9 3 12 Li 12 052613.941 + 8 4 12 Be 12 026922.083 + 7 5 12 B 12 014352.638 + 6 6 12 C 12 000000.0 + 5 7 12 N 12 018613.182 + 4 8 12 O 12 034261.747 + 10 3 13 Li 13 061171.503 + 9 4 13 Be 13 036134.507 + 8 5 13 B 13 017779.981 + 7 6 13 C 13 003354.83521 + 6 7 13 N 13 005738.609 + 5 8 13 O 13 024815.437 + 10 4 14 Be 14 042892.920 + 9 5 14 B 14 025404.012 + 8 6 14 C 14 003241.98843 + 7 7 14 N 14 003074.00446 + 6 8 14 O 14 008596.706 + 5 9 14 F 14 034315.199 + 11 4 15 Be 15 053490.215 + 10 5 15 B 15 031087.953 + 9 6 15 C 15 010599.256 + 8 7 15 N 15 000108.89894 + 7 8 15 O 15 003065.618 + 6 9 15 F 15 017785.139 + 5 10 15 Ne 15 043172.980 + 12 4 16 Be 16 061672.036 + 11 5 16 B 16 039841.920 + 10 6 16 C 16 014701.256 + 9 7 16 N 16 006101.925 + 8 8 16 O 15 994914.61960 + 7 9 16 F 16 011465.723 + 6 10 16 Ne 16 025750.864 + 12 5 17 B 17 046931.399 + 11 6 17 C 17 022578.672 + 10 7 17 N 17 008448.877 + 9 8 17 O 16 999131.75664 + 8 9 17 F 17 002095.238 + 7 10 17 Ne 17 017713.959 + 6 11 17 Na 17 037760.000 + 13 5 18 B 18 055601.682 + 12 6 18 C 18 026751.932 + 11 7 18 N 18 014077.565 + 10 8 18 O 17 999159.61284 + 9 9 18 F 18 000937.325 + 8 10 18 Ne 18 005708.693 + 7 11 18 Na 18 026879.386 + 14 5 19 B 19 064166.000 + 13 6 19 C 19 034797.596 + 12 7 19 N 19 017022.419 + 11 8 19 O 19 003577.970 + 10 9 19 F 18 998403.16288 + 9 10 19 Ne 19 001880.903 + 8 11 19 Na 19 013880.272 + 7 12 19 Mg 19 034169.182 + 14 6 20 C 20 040261.732 + 13 7 20 N 20 023367.295 + 12 8 20 O 20 004075.358 + 11 9 20 F 19 999981.252 + 10 10 20 Ne 19 992440.17619 + 9 11 20 Na 20 007354.426 + 8 12 20 Mg 20 018763.075 + 14 7 21 N 21 027087.573 + 13 8 21 O 21 008654.950 + 12 9 21 F 20 999948.894 + 11 10 21 Ne 20 993846.685 + 10 11 21 Na 20 997654.702 + 9 12 21 Mg 21 011705.764 + 16 6 22 C 22 057553.990 + 15 7 22 N 22 034100.918 + 14 8 22 O 22 009965.746 + 13 9 22 F 22 002998.809 + 12 10 22 Ne 21 991385.109 + 11 11 22 Na 21 994437.418 + 10 12 22 Mg 21 999570.654 + 16 7 23 N 23 039421.000 + 15 8 23 O 23 015696.686 + 14 9 23 F 23 003526.874 + 13 10 23 Ne 22 994466.900 + 12 11 23 Na 22 989769.28199 + 11 12 23 Mg 22 994123.941 + 10 13 23 Al 23 007244.351 + 16 8 24 O 24 019861.000 + 15 9 24 F 24 008099.370 + 14 10 24 Ne 23 993610.645 + 13 11 24 Na 23 990963.011 + 12 12 24 Mg 23 985041.697 + 11 13 24 Al 23 999947.541 + 10 14 24 Si 24 011535.441 + 17 8 25 O 25 029338.919 + 16 9 25 F 25 012167.727 + 15 10 25 Ne 24 997814.799 + 14 11 25 Na 24 989953.973 + 13 12 25 Mg 24 985836.964 + 12 13 25 Al 24 990428.306 + 11 14 25 Si 25 004108.801 + 18 8 26 O 26 037210.155 + 17 9 26 F 26 020020.392 + 16 10 26 Ne 26 000516.496 + 15 11 26 Na 25 992634.649 + 14 12 26 Mg 25 982592.971 + 13 13 26 Al 25 986891.863 + 12 14 26 Si 25 992333.804 + 18 9 27 F 27 027322.000 + 17 10 27 Ne 27 007569.462 + 16 11 27 Na 26 994076.408 + 15 12 27 Mg 26 984340.628 + 14 13 27 Al 26 981538.408 + 13 14 27 Si 26 986704.688 + 12 15 27 P 26 999224.409 + 19 9 28 F 28 036223.095 + 18 10 28 Ne 28 012130.767 + 17 11 28 Na 27 998939.000 + 16 12 28 Mg 27 983876.606 + 15 13 28 Al 27 981910.087 + 14 14 28 Si 27 976926.53499 + 13 15 28 P 27 992326.585 + 12 16 28 S 28 004372.766 + 20 9 29 F 29 043103.000 + 19 10 29 Ne 29 019753.000 + 18 11 29 Na 29 002877.092 + 17 12 29 Mg 28 988617.393 + 16 13 29 Al 28 980453.164 + 15 14 29 Si 28 976494.66525 + 14 15 29 P 28 981800.368 + 13 16 29 S 28 996611.448 + 12 17 29 Cl 29 014130.178 + 20 10 30 Ne 30 024992.235 + 19 11 30 Na 30 009097.932 + 18 12 30 Mg 29 990462.826 + 17 13 30 Al 29 982968.388 + 16 14 30 Si 29 973770.136 + 15 15 30 P 29 978313.489 + 14 16 30 S 29 984906.769 + 12 18 30 Ar 30 022470.511 + 21 10 31 Ne 31 033474.816 + 20 11 31 Na 31 013146.656 + 19 12 31 Mg 30 996648.232 + 18 13 31 Al 30 983949.756 + 17 14 31 Si 30 975363.194 + 16 15 31 P 30 973761.99863 + 15 16 31 S 30 979557.007 + 14 17 31 Cl 30 992448.098 + 21 11 32 Na 32 020011.026 + 20 12 32 Mg 31 999110.139 + 19 13 32 Al 31 988084.339 + 18 14 32 Si 31 974151.539 + 17 15 32 P 31 973907.643 + 16 16 32 S 31 972071.17443 + 15 17 32 Cl 31 985684.637 + 14 18 32 Ar 31 997637.826 + 22 11 33 Na 33 025529.000 + 21 12 33 Mg 33 005327.245 + 20 13 33 Al 32 990877.687 + 19 14 33 Si 32 977976.964 + 18 15 33 P 32 971725.694 + 17 16 33 S 32 971458.90985 + 16 17 33 Cl 32 977451.989 + 15 18 33 Ar 32 989925.547 + 23 11 34 Na 34 034010.000 + 22 12 34 Mg 34 008935.481 + 21 13 34 Al 33 996779.057 + 20 14 34 Si 33 978575.437 + 19 15 34 P 33 973645.887 + 18 16 34 S 33 967867.012 + 17 17 34 Cl 33 973762.491 + 16 18 34 Ar 33 980270.093 + 23 12 35 Mg 35 016790.000 + 22 13 35 Al 34 999759.817 + 21 14 35 Si 34 984550.134 + 20 15 35 P 34 973314.053 + 19 16 35 S 34 969032.322 + 18 17 35 Cl 34 968852.694 + 17 18 35 Ar 34 975257.721 + 16 19 35 K 34 988005.407 + 24 12 36 Mg 36 021879.000 + 23 13 36 Al 36 006388.000 + 22 14 36 Si 35 986649.271 + 21 15 36 P 35 978259.619 + 20 16 36 S 35 967080.699 + 19 17 36 Cl 35 968306.822 + 18 18 36 Ar 35 967545.105 + 17 19 36 K 35 981302.010 + 16 20 36 Ca 35 993074.406 + 25 12 37 Mg 37 030286.265 + 24 13 37 Al 37 010531.000 + 23 14 37 Si 36 992945.191 + 22 15 37 P 36 979606.956 + 21 16 37 S 36 971125.507 + 20 17 37 Cl 36 965902.584 + 19 18 37 Ar 36 966776.314 + 18 19 37 K 36 973375.889 + 17 20 37 Ca 36 985897.852 + 25 13 38 Al 38 017402.000 + 24 14 38 Si 37 995523.000 + 23 15 38 P 37 984303.105 + 22 16 38 S 37 971163.310 + 21 17 38 Cl 37 968010.418 + 20 18 38 Ar 37 962732.104 + 19 19 38 K 37 969081.116 + 18 20 38 Ca 37 976319.226 + 25 14 39 Si 39 002491.000 + 24 15 39 P 38 986285.865 + 23 16 39 S 38 975133.852 + 22 17 39 Cl 38 968008.162 + 21 18 39 Ar 38 964313.039 + 20 19 39 K 38 963706.48661 + 19 20 39 Ca 38 970710.813 + 18 21 39 Sc 38 984784.970 + 26 14 40 Si 40 005829.000 + 25 15 40 P 39 991288.865 + 24 16 40 S 39 975482.562 + 23 17 40 Cl 39 970415.469 + 22 18 40 Ar 39 962383.12378 + 21 19 40 K 39 963998.166 + 20 20 40 Ca 39 962590.865 + 19 21 40 Sc 39 977967.292 + 18 22 40 Ti 39 990498.721 + 27 14 41 Si 41 013011.000 + 26 15 41 P 40 994654.000 + 25 16 41 S 40 979593.451 + 24 17 41 Cl 40 970684.525 + 23 18 41 Ar 40 964500.571 + 22 19 41 K 40 961825.25796 + 21 20 41 Ca 40 962277.921 + 20 21 41 Sc 40 969251.104 + 19 22 41 Ti 40 983148.000 + 27 15 42 P 42 001084.000 + 26 16 42 S 41 981065.100 + 25 17 42 Cl 41 973342.000 + 24 18 42 Ar 41 963045.736 + 23 19 42 K 41 962402.306 + 22 20 42 Ca 41 958617.828 + 21 21 42 Sc 41 965516.522 + 20 22 42 Ti 41 973049.022 + 28 15 43 P 43 005024.000 + 27 16 43 S 42 986907.635 + 26 17 43 Cl 42 974063.700 + 25 18 43 Ar 42 965636.055 + 24 19 43 K 42 960734.703 + 23 20 43 Ca 42 958766.430 + 22 21 43 Sc 42 961150.472 + 21 22 43 Ti 42 968522.521 + 20 23 43 V 42 980766.000 + 28 16 44 S 43 990118.848 + 27 17 44 Cl 43 978116.312 + 26 18 44 Ar 43 964923.816 + 25 19 44 K 43 961586.986 + 24 20 44 Ca 43 955481.543 + 23 21 44 Sc 43 959402.867 + 22 22 44 Ti 43 959689.951 + 21 23 44 V 43 974110.000 + 29 16 45 S 44 995717.000 + 28 17 45 Cl 44 980394.353 + 27 18 45 Ar 44 968039.733 + 26 19 45 K 44 960691.493 + 25 20 45 Ca 44 956186.326 + 24 21 45 Sc 44 955907.503 + 23 22 45 Ti 44 958121.211 + 22 23 45 V 44 965768.951 + 21 24 45 Cr 44 979050.000 + 29 17 46 Cl 45 985121.323 + 28 18 46 Ar 45 968037.446 + 27 19 46 K 45 961981.586 + 26 20 46 Ca 45 953687.988 + 25 21 46 Sc 45 955167.485 + 24 22 46 Ti 45 952626.856 + 23 23 46 V 45 960197.971 + 22 24 46 Cr 45 968360.970 + 29 18 47 Ar 46 972768.114 + 28 19 47 K 46 961661.614 + 27 20 47 Ca 46 954541.394 + 26 21 47 Sc 46 952402.704 + 25 22 47 Ti 46 951757.752 + 24 23 47 V 46 954904.038 + 23 24 47 Cr 46 962895.544 + 22 25 47 Mn 46 975774.000 + 30 18 48 Ar 47 976080.000 + 29 19 48 K 47 965341.186 + 28 20 48 Ca 47 952522.904 + 27 21 48 Sc 47 952223.157 + 26 22 48 Ti 47 947940.932 + 25 23 48 V 47 952251.229 + 24 24 48 Cr 47 954028.667 + 23 25 48 Mn 47 968549.085 + 30 19 49 K 48 968210.755 + 29 20 49 Ca 48 955662.875 + 28 21 49 Sc 48 950014.423 + 27 22 49 Ti 48 947864.627 + 26 23 49 V 48 948510.746 + 25 24 49 Cr 48 951332.955 + 24 25 49 Mn 48 959612.585 + 23 26 49 Fe 48 973429.000 + 31 19 50 K 49 972380.017 + 30 20 50 Ca 49 957499.217 + 29 21 50 Sc 49 952176.415 + 28 22 50 Ti 49 944785.839 + 27 23 50 V 49 947155.845 + 26 24 50 Cr 49 946041.443 + 25 25 50 Mn 49 954237.391 + 24 26 50 Fe 49 962988.000 + 32 19 51 K 50 975827.867 + 31 20 51 Ca 50 960995.665 + 30 21 51 Sc 50 953592.095 + 29 22 51 Ti 50 946609.600 + 28 23 51 V 50 943956.867 + 27 24 51 Cr 50 944764.652 + 26 25 51 Mn 50 948208.065 + 25 26 51 Fe 50 956840.779 + 24 27 51 Co 50 970647.000 + 33 19 52 K 51 981602.000 + 32 20 52 Ca 51 963213.648 + 31 21 52 Sc 51 956582.351 + 30 22 52 Ti 51 946891.960 + 29 23 52 V 51 944772.839 + 28 24 52 Cr 51 940504.992 + 27 25 52 Mn 51 945563.488 + 26 26 52 Fe 51 948115.217 + 25 27 52 Co 51 963112.000 + 34 19 53 K 52 986800.000 + 33 20 53 Ca 52 968451.000 + 32 21 53 Sc 52 958231.821 + 31 22 53 Ti 52 949724.785 + 30 23 53 V 52 944335.593 + 29 24 53 Cr 52 940646.961 + 28 25 53 Mn 52 941287.742 + 27 26 53 Fe 52 945305.574 + 26 27 53 Co 52 954203.217 + 25 28 53 Ni 52 968190.000 + 34 20 54 Ca 53 972989.000 + 33 21 54 Sc 53 963616.620 + 32 22 54 Ti 53 951022.786 + 31 23 54 V 53 946437.472 + 30 24 54 Cr 53 938878.012 + 29 25 54 Mn 53 940356.429 + 28 26 54 Fe 53 939608.306 + 27 27 54 Co 53 948459.192 + 26 28 54 Ni 53 957833.000 + 34 21 55 Sc 54 967622.601 + 33 22 55 Ti 54 955267.465 + 32 23 55 V 54 947241.114 + 31 24 55 Cr 54 940837.289 + 30 25 55 Mn 54 938043.172 + 29 26 55 Fe 54 938291.283 + 28 27 55 Co 54 941996.531 + 27 28 55 Ni 54 951329.961 + 26 29 55 Cu 54 966038.000 + 35 21 56 Sc 55 973320.000 + 34 22 56 Ti 55 957788.190 + 33 23 56 V 55 950450.694 + 32 24 56 Cr 55 940649.107 + 31 25 56 Mn 55 938902.947 + 30 26 56 Fe 55 934935.617 + 29 27 56 Co 55 939838.150 + 28 28 56 Ni 55 942127.872 + 27 29 56 Cu 55 958515.000 + 36 21 57 Sc 56 977460.000 + 35 22 57 Ti 56 963590.068 + 34 23 57 V 56 952320.197 + 33 24 57 Cr 56 943612.409 + 32 25 57 Mn 56 938285.968 + 31 26 57 Fe 56 935392.134 + 30 27 57 Co 56 936289.913 + 29 28 57 Ni 56 939791.525 + 28 29 57 Cu 56 949211.819 + 35 23 58 V 57 956626.932 + 34 24 58 Cr 57 944184.502 + 33 25 58 Mn 57 940066.646 + 32 26 58 Fe 57 933273.738 + 31 27 58 Co 57 935751.429 + 30 28 58 Ni 57 935341.780 + 29 29 58 Cu 57 944532.413 + 28 30 58 Zn 57 954590.428 + 36 23 59 V 58 959385.659 + 35 24 59 Cr 58 948377.810 + 34 25 59 Mn 58 940391.113 + 33 26 59 Fe 58 934873.649 + 32 27 59 Co 58 933193.656 + 31 28 59 Ni 58 934345.571 + 30 29 59 Cu 58 939496.844 + 29 30 59 Zn 58 949312.017 + 37 23 60 V 59 964313.290 + 36 24 60 Cr 59 949898.146 + 35 25 60 Mn 59 943136.576 + 34 26 60 Fe 59 934070.411 + 33 27 60 Co 59 933815.667 + 32 28 60 Ni 59 930785.256 + 31 29 60 Cu 59 937363.916 + 30 30 60 Zn 59 941841.450 + 38 23 61 V 60 967250.000 + 37 24 61 Cr 60 954400.963 + 36 25 61 Mn 60 944452.544 + 35 26 61 Fe 60 936746.244 + 34 27 61 Co 60 932476.145 + 33 28 61 Ni 60 931054.945 + 32 29 61 Cu 60 933457.371 + 31 30 61 Zn 60 939506.960 + 30 31 61 Ga 60 949398.859 + 38 24 62 Cr 61 956097.451 + 37 25 62 Mn 61 947907.386 + 36 26 62 Fe 61 936791.812 + 35 27 62 Co 61 934058.317 + 34 28 62 Ni 61 928344.871 + 33 29 62 Cu 61 932594.921 + 32 30 62 Zn 61 934333.477 + 31 31 62 Ga 61 944189.757 + 39 24 63 Cr 62 961344.384 + 38 25 63 Mn 62 949664.675 + 37 26 63 Fe 62 940272.700 + 36 27 63 Co 62 933599.744 + 35 28 63 Ni 62 929669.139 + 34 29 63 Cu 62 929597.236 + 33 30 63 Zn 62 933211.167 + 32 31 63 Ga 62 939294.195 + 31 32 63 Ge 62 949628.000 + 40 24 64 Cr 63 964058.000 + 39 25 64 Mn 63 953849.370 + 38 26 64 Fe 63 940987.763 + 37 27 64 Co 63 935810.291 + 36 28 64 Ni 63 927966.341 + 35 29 64 Cu 63 929763.857 + 34 30 64 Zn 63 929141.772 + 33 31 64 Ga 63 936840.365 + 32 32 64 Ge 63 941689.913 + 40 25 65 Mn 64 956019.750 + 39 26 65 Fe 64 945015.324 + 38 27 65 Co 64 936462.073 + 37 28 65 Ni 64 930084.697 + 36 29 65 Cu 64 927789.487 + 35 30 65 Zn 64 929240.532 + 34 31 65 Ga 64 932734.395 + 33 32 65 Ge 64 939368.137 + 32 33 65 As 64 949611.000 + 41 25 66 Mn 65 960546.834 + 40 26 66 Fe 65 946249.960 + 39 27 66 Co 65 939442.945 + 38 28 66 Ni 65 929139.334 + 37 29 66 Cu 65 928868.814 + 36 30 66 Zn 65 926033.704 + 35 31 66 Ga 65 931589.832 + 34 32 66 Ge 65 933862.126 + 33 33 66 As 65 944148.779 + 41 26 67 Fe 66 951035.482 + 40 27 67 Co 66 940609.628 + 39 28 67 Ni 66 931569.414 + 38 29 67 Cu 66 927729.526 + 37 30 67 Zn 66 927127.482 + 36 31 67 Ga 66 928202.384 + 35 32 67 Ge 66 932733.620 + 34 33 67 As 66 939251.111 + 33 34 67 Se 66 949994.000 + 42 26 68 Fe 67 953314.875 + 41 27 68 Co 67 944250.135 + 40 28 68 Ni 67 931868.789 + 39 29 68 Cu 67 929610.889 + 38 30 68 Zn 67 924844.291 + 37 31 68 Ga 67 927980.221 + 36 32 68 Ge 67 928095.308 + 35 33 68 As 67 936774.130 + 34 34 68 Se 67 941825.239 + 42 27 69 Co 68 946023.102 + 41 28 69 Ni 68 935610.268 + 40 29 69 Cu 68 929429.268 + 39 30 69 Zn 68 926550.418 + 38 31 69 Ga 68 925573.531 + 37 32 69 Ge 68 927964.471 + 36 33 69 As 68 932246.294 + 35 34 69 Se 68 939414.847 + 34 35 69 Br 68 950338.413 + 42 28 70 Ni 69 936431.303 + 41 29 70 Cu 69 932392.079 + 40 30 70 Zn 69 925319.181 + 39 31 70 Ga 69 926021.917 + 38 32 70 Ge 69 924248.706 + 37 33 70 As 69 930926.151 + 36 34 70 Se 69 933515.523 + 35 35 70 Br 69 944792.323 + 44 27 71 Co 70 952366.923 + 43 28 71 Ni 70 940518.964 + 42 29 71 Cu 70 932676.832 + 41 30 71 Zn 70 927719.580 + 40 31 71 Ga 70 924702.536 + 39 32 71 Ge 70 924952.284 + 38 33 71 As 70 927113.758 + 37 34 71 Se 70 932209.432 + 36 35 71 Br 70 939342.156 + 35 36 71 Kr 70 950265.696 + 44 28 72 Ni 71 941785.926 + 43 29 72 Cu 71 935820.307 + 42 30 72 Zn 71 926842.807 + 41 31 72 Ga 71 926367.434 + 40 32 72 Ge 71 922075.826 + 39 33 72 As 71 926752.295 + 38 34 72 Se 71 927140.507 + 37 35 72 Br 71 936594.607 + 36 36 72 Kr 71 942092.407 + 45 28 73 Ni 72 946206.683 + 44 29 73 Cu 72 936674.378 + 43 30 73 Zn 72 929582.582 + 42 31 73 Ga 72 925174.682 + 41 32 73 Ge 72 923458.956 + 40 33 73 As 72 923829.089 + 39 34 73 Se 72 926754.883 + 38 35 73 Br 72 931671.621 + 37 36 73 Kr 72 939289.195 + 45 29 74 Cu 73 939874.862 + 44 30 74 Zn 73 929407.262 + 43 31 74 Ga 73 926945.726 + 42 32 74 Ge 73 921177.762 + 41 33 74 As 73 923928.598 + 40 34 74 Se 73 922475.935 + 39 35 74 Br 73 929910.281 + 38 36 74 Kr 73 933084.017 + 37 37 74 Rb 73 944265.868 + 46 29 75 Cu 74 941522.606 + 45 30 75 Zn 74 932840.246 + 44 31 75 Ga 74 926500.246 + 43 32 75 Ge 74 922858.371 + 42 33 75 As 74 921594.562 + 41 34 75 Se 74 922522.871 + 40 35 75 Br 74 925810.570 + 39 36 75 Kr 74 930945.746 + 38 37 75 Rb 74 938573.201 + 37 38 75 Sr 74 949952.770 + 47 29 76 Cu 75 945275.025 + 46 30 76 Zn 75 933114.957 + 45 31 76 Ga 75 928827.625 + 44 32 76 Ge 75 921402.726 + 43 33 76 As 75 922392.010 + 42 34 76 Se 75 919213.704 + 41 35 76 Br 75 924541.577 + 40 36 76 Kr 75 925910.726 + 39 37 76 Rb 75 935073.032 + 38 38 76 Sr 75 941762.761 + 47 30 77 Zn 76 936887.199 + 46 31 77 Ga 76 929154.300 + 45 32 77 Ge 76 923549.844 + 44 33 77 As 76 920647.564 + 43 34 77 Se 76 919914.150 + 42 35 77 Br 76 921379.194 + 41 36 77 Kr 76 924670.000 + 40 37 77 Rb 76 930401.600 + 39 38 77 Sr 76 937945.455 + 49 29 78 Cu 77 952230.000 + 48 30 78 Zn 77 938289.205 + 47 31 78 Ga 77 931608.845 + 46 32 78 Ge 77 922852.912 + 45 33 78 As 77 921827.795 + 44 34 78 Se 77 917309.243 + 43 35 78 Br 77 921145.859 + 42 36 78 Kr 77 920366.341 + 41 37 78 Rb 77 928141.868 + 40 38 78 Sr 77 932179.980 + 49 30 79 Zn 78 942638.068 + 48 31 79 Ga 78 932852.301 + 47 32 79 Ge 78 925360.129 + 46 33 79 As 78 920948.445 + 45 34 79 Se 78 918499.251 + 44 35 79 Br 78 918337.601 + 43 36 79 Kr 78 920082.945 + 42 37 79 Rb 78 923989.864 + 41 38 79 Sr 78 929707.664 + 40 39 79 Y 78 937930.000 + 50 30 80 Zn 79 944552.930 + 49 31 80 Ga 79 936420.774 + 48 32 80 Ge 79 925350.774 + 47 33 80 As 79 922474.548 + 46 34 80 Se 79 916521.785 + 45 35 80 Br 79 918529.810 + 44 36 80 Kr 79 916378.048 + 43 37 80 Rb 79 922516.444 + 42 38 80 Sr 79 924517.540 + 41 39 80 Y 79 934354.755 + 51 30 81 Zn 80 950402.619 + 50 31 81 Ga 80 938133.842 + 49 32 81 Ge 80 928832.942 + 48 33 81 As 80 922132.290 + 47 34 81 Se 80 917993.044 + 46 35 81 Br 80 916288.206 + 45 36 81 Kr 80 916589.714 + 44 37 81 Rb 80 918993.927 + 43 38 81 Sr 80 923211.394 + 42 39 81 Y 80 929454.283 + 41 40 81 Zr 80 938314.000 + 52 30 82 Zn 81 954574.099 + 51 31 82 Ga 81 943176.533 + 50 32 82 Ge 81 929774.033 + 49 33 82 As 81 924738.733 + 48 34 82 Se 81 916699.537 + 47 35 82 Br 81 916801.760 + 46 36 82 Kr 81 913481.15520 + 45 37 82 Rb 81 918209.024 + 44 38 82 Sr 81 918399.847 + 43 39 82 Y 81 926930.188 + 42 40 82 Zr 81 931689.000 + 52 31 83 Ga 82 947120.301 + 51 32 83 Ge 82 934539.101 + 50 33 83 As 82 925206.901 + 49 34 83 Se 82 919118.609 + 48 35 83 Br 82 915175.289 + 47 36 83 Kr 82 914126.518 + 46 37 83 Rb 82 915114.182 + 45 38 83 Sr 82 917554.374 + 44 39 83 Y 82 922484.025 + 43 40 83 Zr 82 929240.925 + 42 41 83 Nb 82 938211.000 + 52 32 84 Ge 83 937575.091 + 51 33 84 As 83 929303.291 + 50 34 84 Se 83 918466.762 + 49 35 84 Br 83 916496.419 + 48 36 84 Kr 83 911497.72863 + 47 37 84 Rb 83 914375.225 + 46 38 84 Sr 83 913419.120 + 45 39 84 Y 83 920671.061 + 44 40 84 Zr 83 923325.662 + 43 41 84 Nb 83 934279.000 + 53 32 85 Ge 84 942969.659 + 52 33 85 As 84 932163.659 + 51 34 85 Se 84 922260.759 + 50 35 85 Br 84 915645.759 + 49 36 85 Kr 84 912527.262 + 48 37 85 Rb 84 911789.73760 + 47 38 85 Sr 84 912932.043 + 46 39 85 Y 84 916433.039 + 45 40 85 Zr 84 921443.198 + 44 41 85 Nb 84 928845.837 + 43 42 85 Mo 84 938260.737 + 54 32 86 Ge 85 946967.000 + 53 33 86 As 85 936701.533 + 52 34 86 Se 85 924311.733 + 51 35 86 Br 85 918805.433 + 50 36 86 Kr 85 910610.62627 + 49 37 86 Rb 85 911167.443 + 48 38 86 Sr 85 909260.72631 + 47 39 86 Y 85 914886.098 + 46 40 86 Zr 85 916296.815 + 45 41 86 Nb 85 925781.535 + 44 42 86 Mo 85 931174.817 + 54 33 87 As 86 940291.718 + 53 34 87 Se 86 928688.618 + 52 35 87 Br 86 920674.018 + 51 36 87 Kr 86 913354.759 + 50 37 87 Rb 86 909180.531 + 49 38 87 Sr 86 908877.49615 + 48 39 87 Y 86 910876.102 + 47 40 87 Zr 86 914817.339 + 46 41 87 Nb 86 920692.472 + 45 42 87 Mo 86 928196.201 + 44 43 87 Tc 86 938067.187 + 54 34 88 Se 87 931417.491 + 53 35 88 Br 87 924083.291 + 52 36 88 Kr 87 914447.881 + 51 37 88 Rb 87 911315.591 + 50 38 88 Sr 87 905612.25561 + 49 39 88 Y 87 909501.276 + 48 40 88 Zr 87 910220.709 + 47 41 88 Nb 87 918224.287 + 46 42 88 Mo 87 921967.781 + 45 43 88 Tc 87 933782.381 + 55 34 89 Se 88 936669.059 + 54 35 89 Br 88 926704.559 + 53 36 89 Kr 88 917835.450 + 52 37 89 Rb 88 912278.137 + 51 38 89 Sr 88 907450.808 + 50 39 89 Y 88 905841.205 + 49 40 89 Zr 88 908882.332 + 48 41 89 Nb 88 913445.272 + 47 42 89 Mo 88 919468.150 + 46 43 89 Tc 88 927648.650 + 56 34 90 Se 89 940096.000 + 55 35 90 Br 89 931292.850 + 54 36 90 Kr 89 919527.930 + 53 37 90 Rb 89 914798.803 + 52 38 90 Sr 89 907730.885 + 51 39 90 Y 89 907144.800 + 50 40 90 Zr 89 904698.758 + 49 41 90 Nb 89 911259.204 + 48 42 90 Mo 89 913931.272 + 47 43 90 Tc 89 924073.921 + 46 44 90 Ru 89 930344.379 + 57 34 91 Se 90 945700.000 + 56 35 91 Br 90 934398.618 + 55 36 91 Kr 90 923806.310 + 54 37 91 Rb 90 916537.265 + 53 38 91 Sr 90 910195.958 + 52 39 91 Y 90 907298.066 + 51 40 91 Zr 90 905640.223 + 50 41 91 Nb 90 906990.274 + 49 42 91 Mo 90 911745.195 + 48 43 91 Tc 90 918424.975 + 47 44 91 Ru 90 926741.532 + 57 35 92 Br 91 939631.597 + 56 36 92 Kr 91 926173.094 + 55 37 92 Rb 91 919728.481 + 54 38 92 Sr 91 911038.224 + 53 39 92 Y 91 908945.745 + 52 40 92 Zr 91 905035.322 + 51 41 92 Nb 91 907188.568 + 50 42 92 Mo 91 906807.155 + 49 43 92 Tc 91 915269.779 + 48 44 92 Ru 91 920234.375 + 47 45 92 Rh 91 932367.694 + 58 35 93 Br 92 943220.000 + 57 36 93 Kr 92 931147.174 + 56 37 93 Rb 92 922039.325 + 55 38 93 Sr 92 914024.311 + 54 39 93 Y 92 909578.422 + 53 40 93 Zr 92 906470.646 + 52 41 93 Nb 92 906373.161 + 51 42 93 Mo 92 906808.773 + 50 43 93 Tc 92 910245.149 + 49 44 93 Ru 92 917104.444 + 48 45 93 Rh 92 925912.781 + 58 36 94 Kr 93 934140.454 + 57 37 94 Rb 93 926394.818 + 56 38 94 Sr 93 915355.643 + 55 39 94 Y 93 911592.063 + 54 40 94 Zr 93 906312.524 + 53 41 94 Nb 93 907278.992 + 52 42 94 Mo 93 905083.592 + 51 43 94 Tc 93 909652.325 + 50 44 94 Ru 93 911342.863 + 49 45 94 Rh 93 921730.453 + 48 46 94 Pd 93 929036.292 + 59 36 95 Kr 94 939710.923 + 58 37 95 Rb 94 929262.568 + 57 38 95 Sr 94 919355.840 + 56 39 95 Y 94 912818.711 + 55 40 95 Zr 94 908040.267 + 54 41 95 Nb 94 906831.115 + 53 42 95 Mo 94 905837.442 + 52 43 95 Tc 94 907652.287 + 51 44 95 Ru 94 910404.420 + 50 45 95 Rh 94 915897.895 + 49 46 95 Pd 94 924888.512 + 60 36 96 Kr 95 943016.618 + 59 37 96 Rb 95 934133.393 + 58 38 96 Sr 95 921712.692 + 57 39 96 Y 95 915902.953 + 56 40 96 Zr 95 908277.621 + 55 41 96 Nb 95 908101.591 + 54 42 96 Mo 95 904674.774 + 53 43 96 Tc 95 907866.681 + 52 44 96 Ru 95 907588.914 + 51 45 96 Rh 95 914451.710 + 50 46 96 Pd 95 918213.744 + 49 47 96 Ag 95 930743.906 + 61 36 97 Kr 96 949088.784 + 60 37 97 Rb 96 937177.118 + 59 38 97 Sr 96 926374.776 + 58 39 97 Y 96 918280.286 + 57 40 97 Zr 96 910957.386 + 56 41 97 Nb 96 908098.414 + 55 42 97 Mo 96 906016.903 + 54 43 97 Tc 96 906360.723 + 53 44 97 Ru 96 907545.779 + 52 45 97 Rh 96 911327.876 + 51 46 97 Pd 96 916471.987 + 50 47 97 Ag 96 923965.326 + 61 37 98 Rb 97 941632.317 + 60 38 98 Sr 97 928691.860 + 59 39 98 Y 97 922388.360 + 58 40 98 Zr 97 912735.124 + 57 41 98 Nb 97 910332.650 + 56 42 98 Mo 97 905403.608 + 55 43 98 Tc 97 907211.205 + 54 44 98 Ru 97 905286.713 + 53 45 98 Rh 97 910707.740 + 52 46 98 Pd 97 912698.337 + 51 47 98 Ag 97 921559.972 + 50 48 98 Cd 97 927389.317 + 62 37 99 Rb 98 945119.192 + 61 38 99 Sr 98 932880.511 + 60 39 99 Y 98 924154.288 + 59 40 99 Zr 98 916670.835 + 58 41 99 Nb 98 911609.371 + 57 42 99 Mo 98 907707.298 + 56 43 99 Tc 98 906249.678 + 55 44 99 Ru 98 905930.278 + 54 45 99 Rh 98 908124.690 + 53 46 99 Pd 98 911773.290 + 52 47 99 Ag 98 917645.768 + 51 48 99 Cd 98 924925.847 + 63 37 100 Rb 99 950351.731 + 62 38 100 Sr 99 935779.615 + 61 39 100 Y 99 927721.063 + 60 40 100 Zr 99 918005.444 + 59 41 100 Nb 99 914333.963 + 58 42 100 Mo 99 907467.976 + 57 43 100 Tc 99 907652.711 + 56 44 100 Ru 99 904210.452 + 55 45 100 Rh 99 908114.141 + 54 46 100 Pd 99 908520.315 + 53 47 100 Ag 99 916115.445 + 52 48 100 Cd 99 920348.820 + 51 49 100 In 99 930957.180 + 50 50 100 Sn 99 938504.196 + 63 38 101 Sr 100 940606.266 + 62 39 101 Y 100 930154.138 + 61 40 101 Zr 100 921453.110 + 60 41 101 Nb 100 915306.496 + 59 42 101 Mo 100 910337.641 + 58 43 101 Tc 100 907305.260 + 57 44 101 Ru 100 905573.075 + 56 45 101 Rh 100 906158.905 + 55 46 101 Pd 100 908284.828 + 54 47 101 Ag 100 912683.953 + 53 48 101 Cd 100 918586.211 + 51 50 101 Sn 100 935259.244 + 64 38 102 Sr 101 944004.680 + 63 39 102 Y 101 934327.889 + 62 40 102 Zr 101 923147.431 + 61 41 102 Nb 101 918083.697 + 60 42 102 Mo 101 910288.138 + 59 43 102 Tc 101 909207.275 + 58 44 102 Ru 101 904340.300 + 57 45 102 Rh 101 906834.270 + 56 46 102 Pd 101 905632.058 + 55 47 102 Ag 101 911704.540 + 54 48 102 Cd 101 914481.799 + 53 49 102 In 101 924105.916 + 52 50 102 Sn 101 930289.530 + 64 39 103 Y 102 937243.208 + 63 40 103 Zr 102 927197.240 + 62 41 103 Nb 102 919453.403 + 61 42 103 Mo 102 913085.140 + 60 43 103 Tc 102 909174.008 + 59 44 103 Ru 102 906314.833 + 58 45 103 Rh 102 905494.068 + 57 46 103 Pd 102 906110.840 + 56 47 103 Ag 102 908960.560 + 55 48 103 Cd 102 913416.923 + 54 49 103 In 102 919878.613 + 53 50 103 Sn 102 928101.962 + 64 40 104 Zr 103 929442.315 + 63 41 104 Nb 103 922899.115 + 62 42 104 Mo 103 913740.756 + 61 43 104 Tc 103 911428.905 + 60 44 104 Ru 103 905425.360 + 59 45 104 Rh 103 906645.295 + 58 46 104 Pd 103 904030.401 + 57 47 104 Ag 103 908623.725 + 56 48 104 Cd 103 909856.230 + 55 49 104 In 103 918214.540 + 54 50 104 Sn 103 923105.197 + 53 51 104 Sb 103 936474.502 + 66 39 105 Y 104 944959.000 + 65 40 105 Zr 104 934014.890 + 64 41 105 Nb 104 924942.564 + 63 42 105 Mo 104 916975.159 + 62 43 105 Tc 104 911657.952 + 61 44 105 Ru 104 907745.525 + 60 45 105 Rh 104 905687.806 + 59 46 105 Pd 104 905079.487 + 58 47 105 Ag 104 906525.607 + 57 48 105 Cd 104 909463.895 + 56 49 105 In 104 914502.324 + 55 50 105 Sn 104 921268.423 + 54 51 105 Sb 104 931276.549 + 53 52 105 Te 104 943304.508 + 66 40 106 Zr 105 937144.000 + 65 41 106 Nb 105 928927.768 + 64 42 106 Mo 105 918266.218 + 63 43 106 Tc 105 914356.697 + 62 44 106 Ru 105 907328.203 + 61 45 106 Rh 105 907285.901 + 60 46 106 Pd 105 903480.293 + 59 47 106 Ag 105 906663.507 + 58 48 106 Cd 105 906459.797 + 57 49 106 In 105 913463.603 + 56 50 106 Sn 105 916957.396 + 55 51 106 Sb 105 928637.982 + 54 52 106 Te 105 937498.526 + 67 40 107 Zr 106 941621.000 + 66 41 107 Nb 106 931589.672 + 65 42 107 Mo 106 922112.692 + 64 43 107 Tc 106 915458.485 + 63 44 107 Ru 106 909969.885 + 62 45 107 Rh 106 906747.974 + 61 46 107 Pd 106 905128.064 + 60 47 107 Ag 106 905091.531 + 59 48 107 Cd 106 906612.108 + 58 49 107 In 106 910290.071 + 57 50 107 Sn 106 915713.651 + 56 51 107 Sb 106 924150.624 + 55 52 107 Te 106 935008.356 + 67 41 108 Nb 107 936074.988 + 66 42 108 Mo 107 924040.367 + 65 43 108 Tc 107 918493.541 + 64 44 108 Ru 107 910185.841 + 63 45 108 Rh 107 908714.688 + 62 46 108 Pd 107 903891.805 + 61 47 108 Ag 107 905950.266 + 60 48 108 Cd 107 904183.587 + 59 49 108 In 107 909693.655 + 58 50 108 Sn 107 911894.292 + 57 51 108 Sb 107 922226.734 + 56 52 108 Te 107 929380.471 + 55 53 108 I 107 943478.321 + 68 41 109 Nb 108 939141.000 + 67 42 109 Mo 108 928431.106 + 66 43 109 Tc 108 920254.156 + 65 44 109 Ru 108 913323.756 + 64 45 109 Rh 108 908749.326 + 63 46 109 Pd 108 905950.574 + 62 47 109 Ag 108 904755.773 + 61 48 109 Cd 108 904986.698 + 60 49 109 In 108 907149.685 + 59 50 109 Sn 108 911292.843 + 58 51 109 Sb 108 918141.204 + 57 52 109 Te 108 927304.534 + 56 53 109 I 108 938086.025 + 55 54 109 Xe 108 950434.948 + 69 41 110 Nb 109 943843.000 + 68 42 110 Mo 109 930710.680 + 67 43 110 Tc 109 923741.312 + 66 44 110 Ru 109 914038.548 + 65 45 110 Rh 109 911079.742 + 64 46 110 Pd 109 905172.868 + 63 47 110 Ag 109 906110.719 + 62 48 110 Cd 109 903007.460 + 61 49 110 In 109 907170.665 + 60 50 110 Sn 109 907844.835 + 59 51 110 Sb 109 916854.286 + 58 52 110 Te 109 922458.104 + 57 53 110 I 109 935089.033 + 56 54 110 Xe 109 944258.765 + 69 42 111 Mo 110 935652.016 + 68 43 111 Tc 110 925899.016 + 67 44 111 Ru 110 917567.616 + 66 45 111 Rh 110 911642.531 + 65 46 111 Pd 110 907690.347 + 64 47 111 Ag 110 905296.816 + 63 48 111 Cd 110 904183.766 + 62 49 111 In 110 905107.233 + 61 50 111 Sn 110 907741.126 + 60 51 111 Sb 110 913218.189 + 59 52 111 Te 110 921000.589 + 58 53 111 I 110 930269.239 + 57 54 111 Xe 110 941603.989 + 69 43 112 Tc 111 929941.644 + 68 44 112 Ru 111 918806.972 + 67 45 112 Rh 111 914404.705 + 66 46 112 Pd 111 907329.986 + 65 47 112 Ag 111 907048.550 + 64 48 112 Cd 111 902763.883 + 63 49 112 In 111 905538.704 + 62 50 112 Sn 111 904824.877 + 61 51 112 Sb 111 912399.903 + 60 52 112 Te 111 916727.850 + 59 53 112 I 111 928004.550 + 58 54 112 Xe 111 935559.071 + 57 55 112 Cs 111 950305.341 + 70 43 113 Tc 112 932569.033 + 69 44 113 Ru 112 922846.396 + 68 45 113 Rh 112 915439.567 + 67 46 113 Pd 112 910261.267 + 66 47 113 Ag 112 906572.858 + 65 48 113 Cd 112 904408.097 + 64 49 113 In 112 904060.448 + 63 50 113 Sn 112 905175.845 + 62 51 113 Sb 112 909374.652 + 61 52 113 Te 112 915891.000 + 60 53 113 I 112 923650.064 + 59 54 113 Xe 112 933221.666 + 58 55 113 Cs 112 944428.488 + 71 43 114 Tc 113 937090.000 + 70 44 114 Ru 113 924613.780 + 69 45 114 Rh 113 918721.296 + 68 46 114 Pd 113 910368.780 + 67 47 114 Ag 113 908823.031 + 66 48 114 Cd 113 903364.990 + 65 49 114 In 113 904916.402 + 64 50 114 Sn 113 902780.132 + 63 51 114 Sb 113 909289.191 + 62 52 114 Te 113 912089.000 + 60 54 114 Xe 113 927980.331 + 59 55 114 Cs 113 941296.175 + 58 56 114 Ba 113 950718.495 + 72 43 115 Tc 114 939538.000 + 71 44 115 Ru 114 928942.393 + 70 45 115 Rh 114 920310.993 + 69 46 115 Pd 114 913658.718 + 68 47 115 Ag 114 908767.363 + 67 48 115 Cd 114 905437.417 + 66 49 115 In 114 903878.773 + 65 50 115 Sn 114 903344.697 + 64 51 115 Sb 114 906598.000 + 63 52 115 Te 114 911902.000 + 62 53 115 I 114 918048.000 + 61 54 115 Xe 114 926293.945 + 72 44 116 Ru 115 931219.193 + 71 45 116 Rh 115 924061.645 + 70 46 116 Pd 115 914297.210 + 69 47 116 Ag 115 911386.812 + 68 48 116 Cd 115 904763.230 + 67 49 116 In 115 905259.992 + 66 50 116 Sn 115 901742.824 + 65 51 116 Sb 115 906792.583 + 64 52 116 Te 115 908460.000 + 63 53 116 I 115 916808.658 + 62 54 116 Xe 115 921581.112 + 73 44 117 Ru 116 936135.000 + 72 45 117 Rh 116 926035.623 + 71 46 117 Pd 116 917954.944 + 70 47 117 Ag 116 911773.974 + 69 48 117 Cd 116 907226.038 + 68 49 117 In 116 904515.712 + 67 50 117 Sn 116 902954.017 + 66 51 117 Sb 116 904841.535 + 65 52 117 Te 116 908646.313 + 64 53 117 I 116 913648.314 + 63 54 117 Xe 116 920358.760 + 62 55 117 Cs 116 928616.726 + 61 56 117 Ba 116 938316.561 + 73 45 118 Rh 117 930340.443 + 72 46 118 Pd 117 919066.847 + 71 47 118 Ag 117 914595.487 + 70 48 118 Cd 117 906921.955 + 69 49 118 In 117 906356.659 + 68 50 118 Sn 117 901606.609 + 67 51 118 Sb 117 905532.174 + 66 52 118 Te 117 905853.839 + 65 53 118 I 117 913074.000 + 64 54 118 Xe 117 916178.680 + 63 55 118 Cs 117 926559.519 + 74 45 119 Rh 118 932556.952 + 73 46 119 Pd 118 923340.459 + 72 47 119 Ag 118 915570.293 + 71 48 119 Cd 118 909846.903 + 70 49 119 In 118 905850.944 + 69 50 119 Sn 118 903311.216 + 68 51 119 Sb 118 903945.512 + 67 52 119 Te 118 906407.148 + 66 53 119 I 118 910074.000 + 65 54 119 Xe 118 915410.713 + 64 55 119 Cs 118 922377.330 + 63 56 119 Ba 118 930659.686 + 74 46 120 Pd 119 924551.258 + 73 47 120 Ag 119 918784.767 + 72 48 120 Cd 119 909868.067 + 71 49 120 In 119 907966.805 + 70 50 120 Sn 119 902201.873 + 69 51 120 Sb 119 905079.624 + 68 52 120 Te 119 904059.514 + 67 53 120 I 119 910087.465 + 66 54 120 Xe 119 911784.270 + 65 55 120 Cs 119 920677.279 + 64 56 120 Ba 119 926045.000 + 76 45 121 Rh 120 939613.000 + 75 46 121 Pd 120 928950.343 + 74 47 121 Ag 120 920125.282 + 73 48 121 Cd 120 912963.663 + 72 49 121 In 120 907851.286 + 71 50 121 Sn 120 904242.792 + 70 51 121 Sb 120 903810.093 + 69 52 121 Te 120 904942.488 + 68 53 121 I 120 907405.255 + 67 54 121 Xe 120 911453.014 + 66 55 121 Cs 120 917227.238 + 65 56 121 Ba 120 924052.289 + 76 46 122 Pd 121 930631.694 + 75 47 122 Ag 121 923664.448 + 74 48 122 Cd 121 913459.052 + 73 49 122 In 121 910280.966 + 72 50 122 Sn 121 903444.001 + 71 51 122 Sb 121 905168.074 + 70 52 122 Te 121 903043.434 + 69 53 122 I 121 907588.820 + 68 54 122 Xe 121 908367.658 + 67 55 122 Cs 121 916108.145 + 66 56 122 Ba 121 919904.000 + 77 46 123 Pd 122 935126.000 + 76 47 123 Ag 122 925337.062 + 75 48 123 Cd 122 916892.453 + 74 49 123 In 122 910433.826 + 73 50 123 Sn 122 905725.446 + 72 51 123 Sb 122 904214.016 + 71 52 123 Te 122 904269.747 + 70 53 123 I 122 905588.520 + 69 54 123 Xe 122 908481.750 + 68 55 123 Cs 122 912996.062 + 67 56 123 Ba 122 918781.062 + 77 47 124 Ag 123 928931.229 + 76 48 124 Cd 123 917657.363 + 75 49 124 In 123 913182.263 + 74 50 124 Sn 123 905276.692 + 73 51 124 Sb 123 905935.789 + 72 52 124 Te 123 902817.064 + 71 53 124 I 123 906209.021 + 70 54 124 Xe 123 905891.588 + 69 55 124 Cs 123 912257.798 + 68 56 124 Ba 123 915093.629 + 67 57 124 La 123 924574.275 + 78 47 125 Ag 124 930735.000 + 77 48 125 Cd 124 921257.577 + 76 49 125 In 124 913604.591 + 75 50 125 Sn 124 907786.442 + 74 51 125 Sb 124 905252.987 + 73 52 125 Te 124 904429.900 + 72 53 125 I 124 904629.333 + 71 54 125 Xe 124 906394.050 + 70 55 125 Cs 124 909727.867 + 69 56 125 Ba 124 914471.843 + 68 57 125 La 124 920815.932 + 78 48 126 Cd 125 922429.127 + 77 49 126 In 125 916507.344 + 76 50 126 Sn 125 907658.836 + 75 51 126 Sb 125 907253.036 + 74 52 126 Te 125 903310.866 + 73 53 126 I 125 905623.313 + 72 54 126 Xe 125 904296.794 + 71 55 126 Cs 125 909445.655 + 70 56 126 Ba 125 911250.204 + 69 57 126 La 125 919512.667 + 68 58 126 Ce 125 923971.000 + 79 48 127 Cd 126 926196.624 + 78 49 127 In 126 917448.546 + 77 50 127 Sn 126 910390.401 + 76 51 127 Sb 126 906924.277 + 75 52 127 Te 126 905225.714 + 74 53 127 I 126 904471.838 + 73 54 127 Xe 126 905182.899 + 72 55 127 Cs 126 907417.381 + 71 56 127 Ba 126 911091.275 + 70 57 127 La 126 916375.084 + 69 58 127 Ce 126 922727.000 + 80 48 128 Cd 127 927812.857 + 79 49 128 In 127 920401.053 + 78 50 128 Sn 127 910507.197 + 77 51 128 Sb 127 909145.645 + 76 52 128 Te 127 904461.311 + 75 53 128 I 127 905808.600 + 74 54 128 Xe 127 903530.996 + 73 55 128 Cs 127 907748.648 + 72 56 128 Ba 127 908342.408 + 71 57 128 La 127 915592.123 + 70 58 128 Ce 127 918911.000 + 69 59 128 Pr 127 928791.000 + 81 48 129 Cd 128 932304.399 + 80 49 129 In 128 921805.486 + 79 50 129 Sn 128 913482.102 + 78 51 129 Sb 128 909146.696 + 77 52 129 Te 128 906596.492 + 76 53 129 I 128 904983.687 + 75 54 129 Xe 128 904780.85892 + 74 55 129 Cs 128 906065.690 + 73 56 129 Ba 128 908680.896 + 72 57 129 La 128 912694.475 + 71 58 129 Ce 128 918102.000 + 70 59 129 Pr 128 925095.000 + 82 48 130 Cd 129 934387.566 + 81 49 130 In 129 924977.288 + 80 50 130 Sn 129 913974.533 + 79 51 130 Sb 129 911662.688 + 78 52 130 Te 129 906222.747 + 77 53 130 I 129 906670.211 + 76 54 130 Xe 129 903509.349 + 75 55 130 Cs 129 906709.283 + 74 56 130 Ba 129 906320.874 + 73 57 130 La 129 912369.413 + 72 58 130 Ce 129 914736.000 + 71 59 130 Pr 129 923590.000 + 70 60 130 Nd 129 928506.000 + 83 48 131 Cd 130 940720.000 + 82 49 131 In 130 926972.122 + 81 50 131 Sn 130 917053.066 + 80 51 131 Sb 130 911989.341 + 79 52 131 Te 130 908522.211 + 78 53 131 I 130 906126.384 + 77 54 131 Xe 130 905084.136 + 76 55 131 Cs 130 905464.999 + 75 56 131 Ba 130 906941.181 + 74 57 131 La 130 910070.000 + 73 58 131 Ce 130 914429.465 + 72 59 131 Pr 130 920234.960 + 71 60 131 Nd 130 927248.020 + 83 49 132 In 131 932998.449 + 82 50 132 Sn 131 917823.902 + 81 51 132 Sb 131 914508.015 + 80 52 132 Te 131 908546.716 + 79 53 132 I 131 907993.514 + 78 54 132 Xe 131 904155.08697 + 77 55 132 Cs 131 906437.743 + 76 56 132 Ba 131 905061.098 + 75 57 132 La 131 910118.959 + 74 58 132 Ce 131 911463.846 + 73 59 132 Pr 131 919240.000 + 72 60 132 Nd 131 923321.237 + 83 50 133 Sn 132 923913.756 + 82 51 133 Sb 132 915272.130 + 81 52 133 Te 132 910963.332 + 80 53 133 I 132 907827.361 + 79 54 133 Xe 132 905910.750 + 78 55 133 Cs 132 905451.961 + 77 56 133 Ba 132 906007.325 + 76 57 133 La 132 908218.000 + 75 58 133 Ce 132 911520.402 + 74 59 133 Pr 132 916330.561 + 73 60 133 Nd 132 922348.000 + 72 61 133 Pm 132 929782.000 + 84 50 134 Sn 133 928680.433 + 83 51 134 Sb 133 920535.675 + 82 52 134 Te 133 911396.379 + 81 53 134 I 133 909775.663 + 80 54 134 Xe 133 905393.033 + 79 55 134 Cs 133 906718.503 + 78 56 134 Ba 133 904508.399 + 77 57 134 La 133 908514.011 + 76 58 134 Ce 133 908928.142 + 75 59 134 Pr 133 915696.729 + 74 60 134 Nd 133 918790.210 + 73 61 134 Pm 133 928353.000 + 85 50 135 Sn 134 934908.605 + 84 51 135 Sb 134 925184.357 + 83 52 135 Te 134 916554.718 + 82 53 135 I 134 910059.382 + 81 54 135 Xe 134 907231.661 + 80 55 135 Cs 134 905977.234 + 79 56 135 Ba 134 905688.606 + 78 57 135 La 134 906984.568 + 77 58 135 Ce 134 909160.799 + 76 59 135 Pr 134 913111.774 + 75 60 135 Nd 134 918181.320 + 74 61 135 Pm 134 924796.000 + 73 62 135 Sm 134 932520.000 + 85 51 136 Sb 135 930749.011 + 84 52 136 Te 135 920101.182 + 83 53 136 I 135 914604.695 + 82 54 136 Xe 135 907214.476 + 81 55 136 Cs 135 907311.590 + 80 56 136 Ba 135 904575.959 + 79 57 136 La 135 907634.962 + 78 58 136 Ce 135 907129.438 + 77 59 136 Pr 135 912677.532 + 76 60 136 Nd 135 914976.064 + 75 61 136 Pm 135 923595.949 + 74 62 136 Sm 135 928275.555 + 86 51 137 Sb 136 935522.522 + 85 52 137 Te 136 925599.357 + 84 53 137 I 136 918028.180 + 83 54 137 Xe 136 911557.773 + 82 55 137 Cs 136 907089.464 + 81 56 137 Ba 136 905827.375 + 80 57 137 La 136 906450.618 + 79 58 137 Ce 136 907762.596 + 78 59 137 Pr 136 910679.304 + 77 60 137 Nd 136 914562.448 + 76 61 137 Pm 136 920479.522 + 75 62 137 Sm 136 926970.517 + 74 63 137 Eu 136 935430.722 + 87 51 138 Sb 137 941792.000 + 86 52 138 Te 137 929472.454 + 85 53 138 I 137 922726.394 + 84 54 138 Xe 137 914146.271 + 83 55 138 Cs 137 911017.207 + 82 56 138 Ba 137 905247.229 + 81 57 138 La 137 907117.834 + 80 58 138 Ce 137 905988.743 + 79 59 138 Pr 137 910752.059 + 78 60 138 Nd 137 911949.717 + 77 61 138 Pm 137 919548.077 + 76 62 138 Sm 137 923243.990 + 75 63 138 Eu 137 933709.000 + 87 52 139 Te 138 935367.193 + 86 53 139 I 138 926493.403 + 85 54 139 Xe 138 918792.203 + 84 55 139 Cs 138 913363.992 + 83 56 139 Ba 138 908841.334 + 82 57 139 La 138 906358.804 + 81 58 139 Ce 138 906657.625 + 80 59 139 Pr 138 908943.270 + 79 60 139 Nd 138 911954.407 + 78 61 139 Pm 138 916799.806 + 77 62 139 Sm 138 922296.634 + 76 63 139 Eu 138 929792.310 + 88 52 140 Te 139 939262.917 + 87 53 140 I 139 931715.917 + 86 54 140 Xe 139 921645.817 + 85 55 140 Cs 139 917283.305 + 84 56 140 Ba 139 910606.666 + 83 57 140 La 139 909483.184 + 82 58 140 Ce 139 905446.424 + 81 59 140 Pr 139 909083.592 + 80 60 140 Nd 139 909544.332 + 79 61 140 Pm 139 916034.122 + 78 62 140 Sm 139 918994.717 + 77 63 140 Eu 139 928087.637 + 76 64 140 Gd 139 933674.000 + 75 65 140 Tb 139 945805.049 + 88 53 141 I 140 935666.084 + 87 54 141 Xe 140 926787.184 + 86 55 141 Cs 140 920045.086 + 85 56 141 Ba 140 914403.500 + 84 57 141 La 140 910969.222 + 83 58 141 Ce 140 908283.987 + 82 59 141 Pr 140 907658.403 + 81 60 141 Nd 140 909615.488 + 80 61 141 Pm 140 913555.084 + 79 62 141 Sm 140 918481.591 + 78 63 141 Eu 140 924931.745 + 77 64 141 Gd 140 932126.000 + 76 65 141 Tb 140 941448.000 + 89 53 142 I 141 941202.000 + 88 54 142 Xe 141 929973.098 + 87 55 142 Cs 141 924299.512 + 86 56 142 Ba 141 916432.888 + 85 57 142 La 141 914090.454 + 84 58 142 Ce 141 909249.884 + 83 59 142 Pr 141 910050.440 + 82 60 142 Nd 141 907728.895 + 81 61 142 Pm 141 912890.428 + 80 62 142 Sm 141 915204.532 + 79 63 142 Eu 141 923441.836 + 78 64 142 Gd 141 928116.000 + 77 65 142 Tb 141 939280.859 + 89 54 143 Xe 142 935369.553 + 88 55 143 Cs 142 927347.348 + 87 56 143 Ba 142 920625.150 + 86 57 143 La 142 916079.422 + 85 58 143 Ce 142 912391.630 + 84 59 143 Pr 142 910822.564 + 83 60 143 Nd 142 909819.887 + 82 61 143 Pm 142 910938.073 + 81 62 143 Sm 142 914634.821 + 80 63 143 Eu 142 920298.681 + 79 64 143 Gd 142 926750.682 + 78 65 143 Tb 142 935137.335 + 77 66 143 Dy 142 943994.335 + 90 54 144 Xe 143 938945.079 + 89 55 144 Cs 143 932075.404 + 88 56 144 Ba 143 922954.821 + 87 57 144 La 143 919645.589 + 86 58 144 Ce 143 913652.830 + 85 59 144 Pr 143 913310.750 + 84 60 144 Nd 143 910092.865 + 83 61 144 Pm 143 912596.224 + 82 62 144 Sm 143 912006.373 + 81 63 144 Eu 143 918819.517 + 80 64 144 Gd 143 922963.000 + 79 65 144 Tb 143 933045.000 + 78 66 144 Dy 143 939269.514 + 77 67 144 Ho 143 952109.714 + 91 54 145 Xe 144 944719.634 + 90 55 145 Cs 144 935528.930 + 89 56 145 Ba 144 927518.400 + 88 57 145 La 144 921808.066 + 87 58 145 Ce 144 917265.144 + 86 59 145 Pr 144 914518.033 + 85 60 145 Nd 144 912579.199 + 84 61 145 Pm 144 912755.773 + 83 62 145 Sm 144 913417.244 + 82 63 145 Eu 144 916272.668 + 81 64 145 Gd 144 921710.370 + 80 65 145 Tb 144 928729.105 + 79 66 145 Dy 144 937473.994 + 78 67 145 Ho 144 947267.394 + 92 54 146 Xe 145 948518.248 + 91 55 146 Cs 145 940621.870 + 90 56 146 Ba 145 930276.431 + 89 57 146 La 145 925871.468 + 88 58 146 Ce 145 918802.065 + 87 59 146 Pr 145 917679.549 + 86 60 146 Nd 145 913122.503 + 85 61 146 Pm 145 914702.286 + 84 62 146 Sm 145 913046.881 + 83 63 146 Eu 145 917210.909 + 82 64 146 Gd 145 918318.548 + 81 65 146 Tb 145 927252.768 + 80 66 146 Dy 145 932844.529 + 79 67 146 Ho 145 944993.506 + 78 68 146 Er 145 952418.359 + 92 55 147 Cs 146 944261.515 + 91 56 147 Ba 146 935303.900 + 90 57 147 La 146 928417.800 + 89 58 147 Ce 146 922689.903 + 88 59 147 Pr 146 919007.458 + 87 60 147 Nd 146 916106.010 + 86 61 147 Pm 146 915144.638 + 85 62 147 Sm 146 914904.064 + 84 63 147 Eu 146 916752.276 + 83 64 147 Gd 146 919100.987 + 82 65 147 Tb 146 924054.620 + 81 66 147 Dy 146 931082.715 + 80 67 147 Ho 146 940142.295 + 79 68 147 Er 146 949964.458 + 78 69 147 Tm 146 961379.890 + 93 55 148 Cs 147 949639.029 + 92 56 148 Ba 147 938170.578 + 91 57 148 La 147 932679.400 + 90 58 148 Ce 147 924424.196 + 89 59 148 Pr 147 922130.015 + 88 60 148 Nd 147 916899.093 + 87 61 148 Pm 147 917481.255 + 86 62 148 Sm 147 914829.012 + 85 63 148 Eu 147 918089.294 + 84 64 148 Gd 147 918121.503 + 83 65 148 Tb 147 924275.323 + 82 66 148 Dy 147 927149.772 + 81 67 148 Ho 147 937743.928 + 80 68 148 Er 147 944735.029 + 79 69 148 Tm 147 958384.029 + 93 56 149 Ba 148 942973.000 + 92 57 149 La 148 935351.260 + 91 58 149 Ce 148 928426.900 + 90 59 149 Pr 148 923736.100 + 89 60 149 Nd 148 920154.648 + 88 61 149 Pm 148 918341.658 + 87 62 149 Sm 148 917191.375 + 86 63 149 Eu 148 917937.086 + 85 64 149 Gd 148 919347.831 + 84 65 149 Tb 148 923253.753 + 83 66 149 Dy 148 927325.448 + 82 67 149 Ho 148 933819.672 + 81 68 149 Er 148 942306.000 + 93 57 150 La 149 939742.000 + 92 58 150 Ce 149 930384.035 + 91 59 150 Pr 149 926676.415 + 90 60 150 Nd 149 920901.525 + 89 61 150 Pm 149 920990.217 + 88 62 150 Sm 149 917282.195 + 87 63 150 Eu 149 919707.229 + 86 64 150 Gd 149 918664.066 + 85 65 150 Tb 149 923664.864 + 84 66 150 Dy 149 925593.080 + 83 67 150 Ho 149 933498.358 + 82 68 150 Er 149 937915.528 + 94 57 151 La 150 942769.000 + 93 58 151 Ce 150 934272.200 + 92 59 151 Pr 150 928309.114 + 91 60 151 Nd 150 923839.565 + 90 61 151 Pm 150 921216.817 + 89 62 151 Sm 150 919939.066 + 88 63 151 Eu 150 919856.860 + 87 64 151 Gd 150 920355.109 + 86 65 151 Tb 150 923109.001 + 85 66 151 Dy 150 926191.253 + 84 67 151 Ho 150 931698.177 + 83 68 151 Er 150 937448.567 + 82 69 151 Tm 150 945493.201 + 81 70 151 Yb 150 955402.458 + 93 59 152 Pr 151 931552.900 + 92 60 152 Nd 151 924691.509 + 91 61 152 Pm 151 923505.481 + 90 62 152 Sm 151 919739.040 + 89 63 152 Eu 151 921751.235 + 88 64 152 Gd 151 919798.822 + 87 65 152 Tb 151 924082.263 + 86 66 152 Dy 151 924725.363 + 85 67 152 Ho 151 931717.465 + 84 68 152 Er 151 935050.169 + 83 69 152 Tm 151 944476.000 + 82 70 152 Yb 151 950326.700 + 94 59 153 Pr 152 933903.532 + 93 60 153 Nd 152 927717.949 + 92 61 153 Pm 152 924156.436 + 91 62 153 Sm 152 922103.969 + 90 63 153 Eu 152 921237.043 + 89 64 153 Gd 152 921757.359 + 88 65 153 Tb 152 923441.978 + 87 66 153 Dy 152 925771.992 + 86 67 153 Ho 152 930206.632 + 85 68 153 Er 152 935084.279 + 84 69 153 Tm 152 942057.244 + 82 71 153 Lu 152 958805.054 + 95 59 154 Pr 153 937621.738 + 94 60 154 Nd 153 929333.977 + 93 61 154 Pm 153 926449.364 + 92 62 154 Sm 153 922216.164 + 91 63 154 Eu 153 922985.955 + 90 64 154 Gd 153 920873.398 + 89 65 154 Tb 153 924684.106 + 88 66 154 Dy 153 924429.028 + 87 67 154 Ho 153 930606.841 + 86 68 154 Er 153 932790.743 + 85 69 154 Tm 153 941570.067 + 84 70 154 Yb 153 946395.701 + 96 59 155 Pr 154 940509.259 + 95 60 155 Nd 154 933135.668 + 94 61 155 Pm 154 928137.024 + 93 62 155 Sm 154 924647.051 + 92 63 155 Eu 154 922900.102 + 91 64 155 Gd 154 922629.796 + 90 65 155 Tb 154 923509.921 + 89 66 155 Dy 154 925758.459 + 88 67 155 Ho 154 929103.634 + 87 68 155 Er 154 933215.684 + 86 69 155 Tm 154 939209.578 + 85 70 155 Yb 154 945783.217 + 84 71 155 Lu 154 954326.011 + 96 60 156 Nd 155 935078.868 + 95 61 156 Pm 155 931117.490 + 94 62 156 Sm 155 925538.511 + 93 63 156 Eu 155 924763.285 + 92 64 156 Gd 155 922130.562 + 91 65 156 Tb 155 924754.430 + 90 66 156 Dy 155 924284.038 + 89 67 156 Ho 155 929705.436 + 88 68 156 Er 155 931065.890 + 87 69 156 Tm 155 938985.597 + 86 70 156 Yb 155 942816.893 + 85 71 156 Lu 155 953086.606 + 84 72 156 Hf 155 959401.889 + 97 60 157 Nd 156 939386.037 + 96 61 157 Pm 156 933121.370 + 95 62 157 Sm 156 928418.673 + 94 63 157 Eu 156 925432.791 + 93 64 157 Gd 156 923967.870 + 92 65 157 Tb 156 924032.328 + 91 66 157 Dy 156 925469.667 + 90 67 157 Ho 156 928251.999 + 89 68 157 Er 156 931922.655 + 88 69 157 Tm 156 936973.000 + 87 70 157 Yb 156 942649.230 + 86 71 157 Lu 156 950144.045 + 84 73 157 Ta 156 968230.251 + 97 61 158 Pm 157 936565.121 + 96 62 158 Sm 157 929950.979 + 95 63 158 Eu 157 927798.581 + 94 64 158 Gd 157 924111.646 + 93 65 158 Tb 157 925420.166 + 92 66 158 Dy 157 924414.597 + 91 67 158 Ho 157 928944.692 + 90 68 158 Er 157 929893.474 + 89 69 158 Tm 157 936979.525 + 88 70 158 Yb 157 939870.534 + 87 71 158 Lu 157 949315.626 + 86 72 158 Hf 157 954801.222 + 98 61 159 Pm 158 939286.479 + 97 62 159 Sm 158 933217.202 + 96 63 159 Eu 158 929099.612 + 95 64 159 Gd 158 926396.267 + 94 65 159 Tb 158 925353.933 + 93 66 159 Dy 158 925746.023 + 92 67 159 Ho 158 927718.768 + 91 68 159 Er 158 930690.875 + 90 69 159 Tm 158 934975.000 + 89 70 159 Yb 158 940054.787 + 88 71 159 Lu 158 946635.615 + 87 72 159 Hf 158 953995.838 + 86 73 159 Ta 158 963028.052 + 98 62 160 Sm 159 935335.286 + 97 63 160 Eu 159 931850.916 + 96 64 160 Gd 159 927061.537 + 95 65 160 Tb 159 927174.778 + 94 66 160 Dy 159 925203.244 + 93 67 160 Ho 159 928735.204 + 92 68 160 Er 159 929077.130 + 91 69 160 Tm 159 935263.106 + 90 70 160 Yb 159 937559.763 + 89 71 160 Lu 159 946033.000 + 88 72 160 Hf 159 950682.513 + 87 73 160 Ta 159 961541.679 + 86 74 160 W 159 968516.753 + 99 62 161 Sm 160 939160.143 + 98 63 161 Eu 160 933664.066 + 97 64 161 Gd 160 929676.602 + 96 65 161 Tb 160 927577.001 + 95 66 161 Dy 160 926939.088 + 94 67 161 Ho 160 927860.759 + 93 68 161 Er 160 930003.191 + 92 69 161 Tm 160 933549.000 + 91 70 161 Yb 160 937906.846 + 90 71 161 Lu 160 943572.000 + 89 72 161 Hf 160 950279.151 + 88 73 161 Ta 160 958369.031 + 86 75 161 Re 160 977627.121 + 99 63 162 Eu 161 936979.303 + 98 64 162 Gd 161 930992.146 + 97 65 162 Tb 161 929493.955 + 96 66 162 Dy 161 926804.168 + 95 67 162 Ho 161 929101.485 + 94 68 162 Er 161 928786.960 + 93 69 162 Tm 161 934000.872 + 92 70 162 Yb 161 935773.771 + 91 71 162 Lu 161 943282.776 + 90 72 162 Hf 161 947214.896 + 89 73 162 Ta 161 957294.202 + 88 74 162 W 161 963500.347 + 100 63 163 Eu 162 939360.977 + 99 64 163 Gd 162 934176.832 + 98 65 163 Tb 162 930653.261 + 97 66 163 Dy 162 928736.879 + 96 67 163 Ho 162 928739.921 + 95 68 163 Er 162 930039.567 + 94 69 163 Tm 162 932657.941 + 93 70 163 Yb 162 936339.800 + 92 71 163 Lu 162 941179.000 + 91 72 163 Hf 162 947113.258 + 90 73 163 Ta 162 954337.195 + 89 74 163 W 162 962524.511 + 88 75 163 Re 162 972085.441 + 99 65 164 Tb 163 933356.559 + 98 66 164 Dy 163 929180.472 + 97 67 164 Ho 163 930239.483 + 96 68 164 Er 163 929207.392 + 95 69 164 Tm 163 933543.281 + 94 70 164 Yb 163 934495.103 + 93 71 164 Lu 163 941339.000 + 92 72 164 Hf 163 944370.544 + 91 73 164 Ta 163 953534.000 + 90 74 164 W 163 958952.222 + 89 75 164 Re 163 970507.124 + 88 76 164 Os 163 978075.966 + 99 66 165 Dy 164 931709.054 + 98 67 165 Ho 164 930328.047 + 97 68 165 Er 164 930733.198 + 96 69 165 Tm 164 932442.269 + 95 70 165 Yb 164 935270.241 + 94 71 165 Lu 164 939406.758 + 93 72 165 Hf 164 944567.000 + 92 73 165 Ta 164 950780.303 + 91 74 165 W 164 958280.974 + 90 75 165 Re 164 967085.375 + 101 65 166 Tb 165 937858.119 + 100 66 166 Dy 165 932812.461 + 99 67 166 Ho 165 932290.139 + 98 68 166 Er 165 930299.023 + 97 69 166 Tm 165 933560.092 + 96 70 166 Yb 165 933874.249 + 95 71 166 Lu 165 939859.000 + 94 72 166 Hf 165 942180.000 + 93 73 166 Ta 165 950512.000 + 92 74 166 W 165 955031.346 + 91 75 166 Re 165 965760.940 + 90 76 166 Os 165 972698.141 + 101 66 167 Dy 166 935661.823 + 100 67 167 Ho 166 933138.994 + 99 68 167 Er 166 932054.119 + 98 69 167 Tm 166 932856.635 + 97 70 167 Yb 166 934953.337 + 96 71 167 Lu 166 938270.000 + 95 72 167 Hf 166 942600.000 + 94 73 167 Ta 166 948093.000 + 93 74 167 W 166 954805.873 + 91 76 167 Os 166 971548.938 + 90 77 167 Ir 166 981671.981 + 102 66 168 Dy 167 937133.716 + 101 67 168 Ho 167 935521.676 + 100 68 168 Er 167 932376.192 + 99 69 168 Tm 167 934177.868 + 98 70 168 Yb 167 933889.106 + 97 71 168 Lu 167 938735.139 + 96 72 168 Hf 167 940568.000 + 95 73 168 Ta 167 948047.000 + 94 74 168 W 167 951805.262 + 93 75 168 Re 167 961572.608 + 92 76 168 Os 167 967798.812 + 91 77 168 Ir 167 979960.981 + 90 78 168 Pt 167 988183.004 + 103 66 169 Dy 168 940313.971 + 102 67 169 Ho 168 936878.630 + 101 68 169 Er 168 934596.353 + 100 69 169 Tm 168 934218.350 + 99 70 169 Yb 168 935182.016 + 98 71 169 Lu 168 937643.653 + 97 72 169 Hf 168 941259.000 + 96 73 169 Ta 168 946011.000 + 95 74 169 W 168 951778.677 + 94 75 169 Re 168 958765.991 + 93 76 169 Os 168 967017.833 + 92 77 169 Ir 168 976281.287 + 103 67 170 Ho 169 939625.289 + 102 68 170 Er 169 935470.673 + 101 69 170 Tm 169 935806.507 + 100 70 170 Yb 169 934767.245 + 99 71 170 Lu 169 938479.234 + 98 72 170 Hf 169 939609.000 + 97 73 170 Ta 169 946175.000 + 96 74 170 W 169 949231.200 + 95 75 170 Re 169 958224.966 + 94 76 170 Os 169 963578.673 + 92 78 170 Pt 169 982502.095 + 104 67 171 Ho 170 941471.490 + 103 68 171 Er 170 938036.148 + 102 69 171 Tm 170 936435.126 + 101 70 171 Yb 170 936331.517 + 100 71 171 Lu 170 937918.660 + 99 72 171 Hf 170 940492.000 + 98 73 171 Ta 170 944476.000 + 97 74 171 W 170 949451.000 + 96 75 171 Re 170 955716.000 + 95 76 171 Os 170 963175.348 + 94 77 171 Ir 170 971645.522 + 93 78 171 Pt 170 981245.502 + 92 79 171 Au 170 991881.542 + 104 68 172 Er 171 939362.344 + 103 69 172 Tm 171 938406.067 + 102 70 172 Yb 171 936386.658 + 101 71 172 Lu 171 939091.417 + 100 72 172 Hf 171 939449.716 + 99 73 172 Ta 171 944895.000 + 98 74 172 W 171 947292.000 + 97 75 172 Re 171 955408.079 + 96 76 172 Os 171 960017.088 + 95 77 172 Ir 171 970607.036 + 94 78 172 Pt 171 977340.788 + 93 79 172 Au 171 989996.708 + 92 80 172 Hg 171 998863.391 + 104 69 173 Tm 172 939606.632 + 103 70 173 Yb 172 938216.215 + 102 71 173 Lu 172 938935.822 + 101 72 173 Hf 172 940513.000 + 100 73 173 Ta 172 943750.000 + 99 74 173 W 172 947689.000 + 98 75 173 Re 172 953243.000 + 97 76 173 Os 172 959808.375 + 96 77 173 Ir 172 967505.496 + 95 78 173 Pt 172 976443.315 + 94 79 173 Au 172 986223.808 + 105 69 174 Tm 173 942174.064 + 104 70 174 Yb 173 938867.548 + 103 71 174 Lu 173 940342.938 + 102 72 174 Hf 173 940048.480 + 101 73 174 Ta 173 944454.000 + 100 74 174 W 173 946079.000 + 99 75 174 Re 173 953115.000 + 98 76 174 Os 173 957063.152 + 97 77 174 Ir 173 966866.676 + 96 78 174 Pt 173 972819.832 + 94 80 174 Hg 173 992870.583 + 106 69 175 Tm 174 943842.313 + 105 70 175 Yb 174 941281.910 + 104 71 175 Lu 174 940777.308 + 103 72 175 Hf 174 941511.527 + 102 73 175 Ta 174 943737.000 + 101 74 175 W 174 946717.000 + 100 75 175 Re 174 951381.000 + 99 76 175 Os 174 956945.105 + 98 77 175 Ir 174 964149.521 + 97 78 175 Pt 174 972395.457 + 96 79 175 Au 174 981316.085 + 95 80 175 Hg 174 991441.086 + 107 69 176 Tm 175 946997.711 + 106 70 176 Yb 175 942574.708 + 105 71 176 Lu 175 942691.809 + 104 72 176 Hf 175 941409.905 + 103 73 176 Ta 175 944857.000 + 102 74 176 W 175 945634.000 + 101 75 176 Re 175 951623.000 + 100 76 176 Os 175 954806.000 + 99 77 176 Ir 175 963630.119 + 98 78 176 Pt 175 968938.214 + 97 79 176 Au 175 980116.927 + 96 80 176 Hg 175 987348.335 + 95 81 176 Tl 176 000624.367 + 107 70 177 Yb 176 945263.848 + 106 71 177 Lu 176 943763.668 + 105 72 177 Hf 176 943230.320 + 104 73 177 Ta 176 944482.073 + 103 74 177 W 176 946643.000 + 102 75 177 Re 176 950328.000 + 101 76 177 Os 176 954957.882 + 100 77 177 Ir 176 961301.500 + 99 78 177 Pt 176 968469.529 + 98 79 177 Au 176 976870.379 + 97 80 177 Hg 176 986277.376 + 96 81 177 Tl 176 996413.797 + 108 70 178 Yb 177 946649.710 + 107 71 178 Lu 177 945960.162 + 106 72 178 Hf 177 943708.456 + 104 74 178 W 177 945885.925 + 103 75 178 Re 177 950989.000 + 102 76 178 Os 177 953253.300 + 101 77 178 Ir 177 961082.000 + 100 78 178 Pt 177 965649.248 + 99 79 178 Au 177 976055.945 + 98 80 178 Hg 177 982484.158 + 96 82 178 Pb 178 003837.163 + 108 71 179 Lu 178 947333.082 + 107 72 179 Hf 178 945825.838 + 106 73 179 Ta 178 945939.187 + 105 74 179 W 178 947079.501 + 104 75 179 Re 178 949989.715 + 103 76 179 Os 178 953816.669 + 102 77 179 Ir 178 959117.596 + 101 78 179 Pt 178 965358.719 + 100 79 179 Au 178 973173.668 + 99 80 179 Hg 178 981826.899 + 98 81 179 Tl 178 991123.405 + 97 82 179 Pb 179 002201.452 + 109 71 180 Lu 179 949890.876 + 108 72 180 Hf 179 946559.669 + 107 73 180 Ta 179 947468.392 + 106 74 180 W 179 946713.435 + 105 75 180 Re 179 950791.568 + 104 76 180 Os 179 952379.930 + 103 77 180 Ir 179 959229.446 + 102 78 180 Pt 179 963031.563 + 101 79 180 Au 179 972489.883 + 100 80 180 Hg 179 978260.249 + 99 81 180 Tl 179 989923.019 + 98 82 180 Pb 179 997915.842 + 110 71 181 Lu 180 951908.000 + 109 72 181 Hf 180 949110.965 + 108 73 181 Ta 180 947999.331 + 107 74 181 W 180 948218.863 + 106 75 181 Re 180 950061.523 + 105 76 181 Os 180 953247.188 + 104 77 181 Ir 180 957634.694 + 103 78 181 Pt 180 963089.927 + 102 79 181 Au 180 970079.103 + 101 80 181 Hg 180 977819.357 + 100 81 181 Tl 180 986259.992 + 99 82 181 Pb 180 996653.386 + 110 72 182 Hf 181 950563.816 + 109 73 182 Ta 181 950155.413 + 108 74 182 W 181 948205.721 + 107 75 182 Re 181 951211.645 + 106 76 182 Os 181 952110.153 + 105 77 182 Ir 181 958076.296 + 104 78 182 Pt 181 961171.571 + 103 79 182 Au 181 969617.874 + 102 80 182 Hg 181 974689.132 + 101 81 182 Tl 181 985691.880 + 100 82 182 Pb 181 992672.940 + 112 71 183 Lu 182 957363.000 + 111 72 183 Hf 182 953534.004 + 110 73 183 Ta 182 951376.180 + 109 74 183 W 182 950224.500 + 108 75 183 Re 182 950821.390 + 107 76 183 Os 182 953124.719 + 106 77 183 Ir 182 956839.968 + 105 78 183 Pt 182 961596.653 + 104 79 183 Au 182 967588.108 + 103 80 183 Hg 182 974444.629 + 102 81 183 Tl 182 982192.846 + 101 82 183 Pb 182 991867.668 + 112 72 184 Hf 183 955448.587 + 111 73 184 Ta 183 954010.038 + 110 74 184 W 183 950933.260 + 109 75 184 Re 183 952528.267 + 108 76 184 Os 183 952492.949 + 107 77 184 Ir 183 957476.000 + 106 78 184 Pt 183 959920.039 + 105 79 184 Au 183 967451.524 + 104 80 184 Hg 183 971713.221 + 103 81 184 Tl 183 981875.093 + 102 82 184 Pb 183 988135.702 + 101 83 184 Bi 184 001141.250 + 113 72 185 Hf 184 958862.000 + 112 73 185 Ta 184 955561.396 + 111 74 185 W 184 953421.286 + 110 75 185 Re 184 952958.337 + 109 76 185 Os 184 954045.995 + 108 77 185 Ir 184 956698.000 + 107 78 185 Pt 184 960613.659 + 106 79 185 Au 184 965798.874 + 105 80 185 Hg 184 971890.676 + 104 81 185 Tl 184 978789.191 + 103 82 185 Pb 184 987609.989 + 114 72 186 Hf 185 960897.000 + 113 73 186 Ta 185 958553.111 + 112 74 186 W 185 954365.215 + 111 75 186 Re 185 954989.419 + 110 76 186 Os 185 953837.660 + 109 77 186 Ir 185 957946.754 + 108 78 186 Pt 185 959350.846 + 107 79 186 Au 185 965952.703 + 106 80 186 Hg 185 969362.017 + 105 81 186 Tl 185 978650.841 + 104 82 186 Pb 185 984238.196 + 103 83 186 Bi 185 996622.402 + 102 84 186 Po 186 004402.577 + 114 73 187 Ta 186 960391.000 + 113 74 187 W 186 957161.323 + 112 75 187 Re 186 955752.288 + 111 76 187 Os 186 955749.640 + 110 77 187 Ir 186 957542.000 + 109 78 187 Pt 186 960616.976 + 108 79 187 Au 186 964543.155 + 107 80 187 Hg 186 969814.158 + 106 81 187 Tl 186 975904.743 + 105 82 187 Pb 186 983910.836 + 104 83 187 Bi 186 993147.276 + 103 84 187 Po 187 003036.624 + 115 73 188 Ta 187 963916.000 + 114 74 188 W 187 958488.395 + 113 75 188 Re 187 958113.728 + 112 76 188 Os 187 955837.361 + 111 77 188 Ir 187 958835.046 + 110 78 188 Pt 187 959397.560 + 109 79 188 Au 187 965247.969 + 108 80 188 Hg 187 967576.910 + 107 81 188 Tl 187 976020.886 + 106 82 188 Pb 187 980874.592 + 105 83 188 Bi 187 992276.184 + 104 84 188 Po 187 999415.655 + 115 74 189 W 188 961763.000 + 114 75 189 Re 188 959227.817 + 113 76 189 Os 188 958146.005 + 112 77 189 Ir 188 958722.669 + 111 78 189 Pt 188 960848.542 + 110 79 189 Au 188 963948.286 + 109 80 189 Hg 188 968194.748 + 108 81 189 Tl 188 973573.527 + 107 82 189 Pb 188 980843.639 + 106 83 189 Bi 188 989195.141 + 105 84 189 Po 188 998473.415 + 116 74 190 W 189 963089.066 + 115 75 190 Re 189 961743.360 + 114 76 190 Os 189 958445.496 + 113 77 190 Ir 189 960543.445 + 112 78 190 Pt 189 959949.876 + 111 79 190 Au 189 964751.750 + 110 80 190 Hg 189 966322.169 + 109 81 190 Tl 189 973835.551 + 108 82 190 Pb 189 978081.828 + 107 83 190 Bi 189 988620.883 + 106 84 190 Po 189 995100.519 + 117 74 191 W 190 966531.000 + 116 75 191 Re 190 963123.437 + 115 76 191 Os 190 960928.159 + 114 77 191 Ir 190 960591.527 + 113 78 191 Pt 190 961676.363 + 112 79 191 Au 190 963716.455 + 111 80 191 Hg 190 967158.247 + 110 81 191 Tl 190 971784.096 + 109 82 191 Pb 190 978281.000 + 108 83 191 Bi 190 985786.975 + 107 84 191 Po 190 994558.488 + 106 85 191 At 191 004148.086 + 117 75 192 Re 191 966088.000 + 116 76 192 Os 191 961478.881 + 115 77 192 Ir 191 962602.485 + 114 78 192 Pt 191 961042.736 + 113 79 192 Au 191 964817.684 + 112 80 192 Hg 191 965634.182 + 111 81 192 Tl 191 972225.000 + 110 82 192 Pb 191 975785.115 + 109 83 192 Bi 191 985470.078 + 108 84 192 Po 191 991335.788 + 107 85 192 At 192 003141.034 + 118 75 193 Re 192 967545.000 + 117 76 193 Os 192 964149.753 + 116 77 193 Ir 192 962923.824 + 115 78 193 Pt 192 962984.616 + 114 79 193 Au 192 964138.447 + 113 80 193 Hg 192 966653.377 + 112 81 193 Tl 192 970501.997 + 111 82 193 Pb 192 976173.234 + 110 83 193 Bi 192 982947.223 + 109 84 193 Po 192 991062.403 + 108 85 193 At 192 999927.728 + 107 86 193 Rn 193 009707.964 + 118 76 194 Os 193 965179.477 + 117 77 194 Ir 193 965075.773 + 116 78 194 Pt 193 962683.527 + 115 79 194 Au 193 965419.062 + 114 80 194 Hg 193 965449.111 + 113 81 194 Tl 193 971081.411 + 112 82 194 Pb 193 974011.706 + 111 83 194 Bi 193 982792.362 + 110 84 194 Po 193 988186.015 + 109 85 194 At 193 999226.872 + 108 86 194 Rn 194 006144.424 + 119 76 195 Os 194 968318.000 + 118 77 195 Ir 194 965976.967 + 117 78 195 Pt 194 964794.353 + 116 79 195 Au 194 965037.851 + 115 80 195 Hg 194 966705.751 + 114 81 195 Tl 194 969774.096 + 113 82 195 Pb 194 974548.743 + 112 83 195 Bi 194 980648.762 + 111 84 195 Po 194 988130.617 + 110 85 195 At 194 996274.485 + 109 86 195 Rn 195 005421.699 + 120 76 196 Os 195 969643.277 + 119 77 196 Ir 195 968399.696 + 118 78 196 Pt 195 964954.675 + 117 79 196 Au 195 966571.221 + 116 80 196 Hg 195 965833.444 + 115 81 196 Tl 195 970481.192 + 114 82 196 Pb 195 972787.466 + 113 83 196 Bi 195 980666.509 + 112 84 196 Po 195 985536.094 + 111 85 196 At 195 995797.421 + 110 86 196 Rn 196 002115.945 + 120 77 197 Ir 196 969657.233 + 119 78 197 Pt 196 967343.053 + 118 79 197 Au 196 966570.114 + 117 80 197 Hg 196 967213.713 + 116 81 197 Tl 196 969573.986 + 115 82 197 Pb 196 973434.717 + 114 83 197 Bi 196 978864.929 + 113 84 197 Po 196 985659.607 + 112 85 197 At 196 993177.357 + 111 86 197 Rn 197 001621.430 + 110 87 197 Fr 197 011008.090 + 120 78 198 Pt 197 967896.734 + 119 79 198 Au 197 968243.724 + 118 80 198 Hg 197 966769.179 + 117 81 198 Tl 197 970446.673 + 116 82 198 Pb 197 972015.397 + 115 83 198 Bi 197 979206.000 + 114 84 198 Po 197 983388.672 + 113 85 198 At 197 992791.673 + 112 86 198 Rn 197 998679.156 + 111 87 198 Fr 198 010278.138 + 122 77 199 Ir 198 973807.115 + 121 78 199 Pt 198 970597.038 + 120 79 199 Au 198 968766.582 + 119 80 199 Hg 198 968280.989 + 118 81 199 Tl 198 969877.000 + 117 82 199 Pb 198 972912.542 + 116 83 199 Bi 198 977672.893 + 115 84 199 Po 198 983673.021 + 114 85 199 At 198 990527.719 + 113 86 199 Rn 198 998390.273 + 112 87 199 Fr 199 007269.389 + 122 78 200 Pt 199 971444.625 + 121 79 200 Au 199 970756.556 + 120 80 200 Hg 199 968326.934 + 119 81 200 Tl 199 970963.602 + 118 82 200 Pb 199 971818.332 + 117 83 200 Bi 199 978131.093 + 116 84 200 Po 199 981812.270 + 115 85 200 At 199 990351.100 + 114 86 200 Rn 199 995700.707 + 113 87 200 Fr 200 006583.507 + 123 78 201 Pt 200 974513.293 + 122 79 201 Au 200 971657.665 + 121 80 201 Hg 200 970303.038 + 120 81 201 Tl 200 970820.168 + 119 82 201 Pb 200 972870.425 + 118 83 201 Bi 200 977008.512 + 117 84 201 Po 200 982263.777 + 116 85 201 At 200 988417.061 + 115 86 201 Rn 200 995628.179 + 114 87 201 Fr 201 003852.496 + 113 88 201 Ra 201 012814.683 + 124 78 202 Pt 201 975639.000 + 123 79 202 Au 201 973856.000 + 122 80 202 Hg 201 970643.585 + 121 81 202 Tl 201 972109.089 + 120 82 202 Pb 201 972151.604 + 119 83 202 Bi 201 977733.100 + 118 84 202 Po 201 980738.881 + 117 85 202 At 201 988630.380 + 116 86 202 Rn 201 993263.902 + 115 87 202 Fr 202 003323.946 + 114 88 202 Ra 202 009742.264 + 124 79 203 Au 202 975154.498 + 123 80 203 Hg 202 972872.326 + 122 81 203 Tl 202 972344.022 + 121 82 203 Pb 202 973390.535 + 120 83 203 Bi 202 976892.145 + 119 84 203 Po 202 981415.995 + 118 85 203 At 202 986942.957 + 117 86 203 Rn 202 993393.732 + 116 87 203 Fr 203 000940.872 + 115 88 203 Ra 203 009298.745 + 124 80 204 Hg 203 973494.037 + 123 81 204 Tl 203 973863.337 + 122 82 204 Pb 203 973043.420 + 121 83 204 Bi 203 977835.717 + 120 84 204 Po 203 980309.863 + 119 85 204 At 203 987251.197 + 118 86 204 Rn 203 991443.644 + 117 87 204 Fr 204 000651.974 + 116 88 204 Ra 204 006502.228 + 125 80 205 Hg 204 976073.125 + 124 81 205 Tl 204 974427.237 + 123 82 205 Pb 204 974481.597 + 122 83 205 Bi 204 977386.323 + 121 84 205 Po 204 981190.004 + 120 85 205 At 204 986074.041 + 119 86 205 Rn 204 991723.204 + 118 87 205 Fr 204 998593.858 + 117 88 205 Ra 205 006268.415 + 116 89 205 Ac 205 015144.158 + 126 80 206 Hg 205 977513.756 + 125 81 206 Tl 205 976110.026 + 124 82 206 Pb 205 974465.124 + 123 83 206 Bi 205 978498.757 + 122 84 206 Po 205 980473.654 + 121 85 206 At 205 986656.148 + 120 86 206 Rn 205 990195.358 + 119 87 206 Fr 205 998666.211 + 118 88 206 Ra 206 003827.763 + 117 89 206 Ac 206 014470.787 + 127 80 207 Hg 206 982300.000 + 126 81 207 Tl 206 977418.586 + 125 82 207 Pb 206 975896.735 + 124 83 207 Bi 206 978470.471 + 123 84 207 Po 206 981593.252 + 122 85 207 At 206 985799.783 + 121 86 207 Rn 206 990730.200 + 120 87 207 Fr 206 996946.474 + 119 88 207 Ra 207 003805.161 + 118 89 207 Ac 207 011965.973 + 128 80 208 Hg 207 985759.000 + 127 81 208 Tl 207 982017.992 + 126 82 208 Pb 207 976651.918 + 125 83 208 Bi 207 979741.981 + 124 84 208 Po 207 981245.616 + 123 85 208 At 207 986613.042 + 122 86 208 Rn 207 989634.295 + 121 87 208 Fr 207 997138.018 + 120 88 208 Ra 208 001854.929 + 119 89 208 Ac 208 011544.073 + 118 90 208 Th 208 017910.722 + 128 81 209 Tl 208 985351.750 + 127 82 209 Pb 208 981089.898 + 126 83 209 Bi 208 980398.519 + 125 84 209 Po 208 982430.276 + 124 85 209 At 208 986169.944 + 123 86 209 Rn 208 990401.388 + 122 87 209 Fr 208 995953.197 + 121 88 209 Ra 209 001994.879 + 120 89 209 Ac 209 009494.220 + 129 81 210 Tl 209 990072.970 + 128 82 210 Pb 209 984188.301 + 127 83 210 Bi 209 984120.156 + 126 84 210 Po 209 982873.601 + 125 85 210 At 209 987147.338 + 124 86 210 Rn 209 989688.854 + 123 87 210 Fr 209 996421.657 + 122 88 210 Ra 210 000475.356 + 121 89 210 Ac 210 009436.130 + 120 90 210 Th 210 015093.437 + 130 81 211 Tl 210 993475.000 + 129 82 211 Pb 210 988735.356 + 128 83 211 Bi 210 987268.698 + 127 84 211 Po 210 986653.085 + 126 85 211 At 210 987496.147 + 125 86 211 Rn 210 990600.686 + 124 87 211 Fr 210 995555.259 + 123 88 211 Ra 211 000893.213 + 122 89 211 Ac 211 007731.894 + 121 90 211 Th 211 014933.183 + 130 82 212 Pb 211 991895.975 + 129 83 212 Bi 211 991285.016 + 128 84 212 Po 211 988867.896 + 127 85 212 At 211 990737.223 + 126 86 212 Rn 211 990703.528 + 125 87 212 Fr 211 996225.453 + 124 88 212 Ra 211 999786.399 + 123 89 212 Ac 212 007812.501 + 122 90 212 Th 212 013001.487 + 121 91 212 Pa 212 023181.425 + 132 81 213 Tl 213 001915.000 + 131 82 213 Pb 212 996560.867 + 130 83 213 Bi 212 994383.608 + 129 84 213 Po 212 992857.083 + 128 85 213 At 212 992936.514 + 127 86 213 Rn 212 993885.064 + 126 87 213 Fr 212 996185.861 + 125 88 213 Ra 213 000370.970 + 124 89 213 Ac 213 006607.333 + 123 90 213 Th 213 013011.447 + 122 91 213 Pa 213 021108.697 + 132 82 214 Pb 213 999803.788 + 131 83 214 Bi 213 998710.938 + 130 84 214 Po 213 995201.208 + 129 85 214 At 213 996371.601 + 128 86 214 Rn 213 995362.566 + 127 87 214 Fr 213 998970.785 + 126 88 214 Ra 214 000099.554 + 125 89 214 Ac 214 006917.762 + 124 90 214 Th 214 011481.431 + 123 91 214 Pa 214 020918.561 + 133 82 215 Pb 215 004661.590 + 132 83 215 Bi 215 001749.149 + 131 84 215 Po 214 999418.454 + 130 85 215 At 214 998651.890 + 129 86 215 Rn 214 998745.498 + 128 87 215 Fr 215 000341.456 + 127 88 215 Ra 215 002720.080 + 126 89 215 Ac 215 006474.132 + 125 90 215 Th 215 011724.805 + 124 91 215 Pa 215 019177.728 + 123 92 215 U 215 026756.035 + 133 83 216 Bi 216 006305.989 + 132 84 216 Po 216 001913.506 + 131 85 216 At 216 002422.631 + 130 86 216 Rn 216 000271.464 + 129 87 216 Fr 216 003189.445 + 128 88 216 Ra 216 003533.117 + 127 89 216 Ac 216 008743.367 + 126 90 216 Th 216 011055.714 + 125 91 216 Pa 216 019108.242 + 124 92 216 U 216 024762.747 + 134 83 217 Bi 217 009372.000 + 133 84 217 Po 217 006316.216 + 132 85 217 At 217 004717.835 + 131 86 217 Rn 217 003927.562 + 130 87 217 Fr 217 004631.902 + 129 88 217 Ra 217 006322.806 + 128 89 217 Ac 217 009343.777 + 127 90 217 Th 217 013103.444 + 126 91 217 Pa 217 018323.692 + 135 83 218 Bi 218 014188.000 + 134 84 218 Po 218 008971.502 + 133 85 218 At 218 008693.735 + 132 86 218 Rn 218 005601.052 + 131 87 218 Fr 218 007578.274 + 130 88 218 Ra 218 007140.325 + 129 89 218 Ac 218 011641.093 + 128 90 218 Th 218 013276.242 + 127 91 218 Pa 218 020057.853 + 126 92 218 U 218 023504.829 + 135 84 219 Po 219 013614.000 + 134 85 219 At 219 011160.647 + 133 86 219 Rn 219 009478.753 + 132 87 219 Fr 219 009251.553 + 131 88 219 Ra 219 010085.176 + 130 89 219 Ac 219 012420.348 + 129 90 219 Th 219 015535.677 + 128 91 219 Pa 219 019903.650 + 127 92 219 U 219 024999.161 + 126 93 219 Np 219 031623.021 + 136 84 220 Po 220 016386.000 + 135 85 220 At 220 015433.000 + 134 86 220 Rn 220 011392.534 + 133 87 220 Fr 220 012326.778 + 132 88 220 Ra 220 011025.562 + 131 89 220 Ac 220 014754.450 + 130 90 220 Th 220 015747.926 + 137 84 221 Po 221 021228.000 + 136 85 221 At 221 018017.000 + 135 86 221 Rn 221 015535.709 + 134 87 221 Fr 221 014253.757 + 133 88 221 Ra 221 013917.224 + 132 89 221 Ac 221 015591.199 + 131 90 221 Th 221 018186.236 + 130 91 221 Pa 221 021874.846 + 129 92 221 U 221 026323.299 + 138 84 222 Po 222 024140.000 + 137 85 222 At 222 022494.000 + 136 86 222 Rn 222 017576.286 + 135 87 222 Fr 222 017582.620 + 134 88 222 Ra 222 015373.355 + 133 89 222 Ac 222 017843.887 + 132 90 222 Th 222 018468.300 + 130 92 222 U 222 026057.953 + 138 85 223 At 223 025151.000 + 137 86 223 Rn 223 021889.285 + 136 87 223 Fr 223 019734.313 + 135 88 223 Ra 223 018500.719 + 134 89 223 Ac 223 019136.872 + 133 90 223 Th 223 020811.546 + 132 91 223 Pa 223 023962.232 + 131 92 223 U 223 027737.168 + 139 85 224 At 224 029749.000 + 138 86 224 Rn 224 024095.804 + 137 87 224 Fr 224 023348.100 + 136 88 224 Ra 224 020210.453 + 135 89 224 Ac 224 021722.239 + 134 90 224 Th 224 021464.157 + 133 91 224 Pa 224 025617.210 + 132 92 224 U 224 027613.974 + 139 86 225 Rn 225 028485.574 + 138 87 225 Fr 225 025572.478 + 137 88 225 Ra 225 023610.574 + 136 89 225 Ac 225 023228.647 + 135 90 225 Th 225 023950.907 + 134 91 225 Pa 225 026130.844 + 133 92 225 U 225 029393.555 + 132 93 225 Np 225 033910.797 + 140 86 226 Rn 226 030861.382 + 139 87 226 Fr 226 029544.515 + 138 88 226 Ra 226 025408.455 + 137 89 226 Ac 226 026097.069 + 136 90 226 Th 226 024903.686 + 135 91 226 Pa 226 027947.872 + 134 92 226 U 226 029338.749 + 141 86 227 Rn 227 035304.396 + 140 87 227 Fr 227 031865.417 + 139 88 227 Ra 227 029176.474 + 138 89 227 Ac 227 027750.666 + 137 90 227 Th 227 027702.618 + 136 91 227 Pa 227 028804.477 + 135 92 227 U 227 031181.587 + 134 93 227 Np 227 034956.832 + 142 86 228 Rn 228 037835.418 + 141 87 228 Fr 228 035839.437 + 140 88 228 Ra 228 031068.657 + 139 89 228 Ac 228 031019.767 + 138 90 228 Th 228 028739.835 + 137 91 228 Pa 228 031050.748 + 136 92 228 U 228 031371.351 + 135 93 228 Np 228 036066.462 + 134 94 228 Pu 228 038741.387 + 143 86 229 Rn 229 042257.276 + 142 87 229 Fr 229 038291.455 + 141 88 229 Ra 229 034956.707 + 140 89 229 Ac 229 032947.000 + 139 90 229 Th 229 031761.431 + 138 91 229 Pa 229 032095.652 + 137 92 229 U 229 033505.909 + 136 93 229 Np 229 036263.974 + 135 94 229 Pu 229 040145.819 + 134 95 229 Am 229 045249.909 + 143 87 230 Fr 230 042390.791 + 142 88 230 Ra 230 037054.780 + 141 89 230 Ac 230 036327.000 + 140 90 230 Th 230 033132.358 + 139 91 230 Pa 230 034539.789 + 138 92 230 U 230 033940.102 + 137 93 230 Np 230 037827.716 + 136 94 230 Pu 230 039650.703 + 144 87 231 Fr 231 045175.357 + 143 88 231 Ra 231 041027.086 + 142 89 231 Ac 231 038393.000 + 141 90 231 Th 231 036302.853 + 140 91 231 Pa 231 035882.575 + 139 92 231 U 231 036292.252 + 138 93 231 Np 231 038244.490 + 137 94 231 Pu 231 041126.410 + 145 87 232 Fr 232 049461.224 + 144 88 232 Ra 232 043475.270 + 143 89 232 Ac 232 042034.000 + 142 90 232 Th 232 038053.689 + 141 91 232 Pa 232 038590.300 + 140 92 232 U 232 037154.860 + 138 94 232 Pu 232 041184.526 + 146 87 233 Fr 233 052517.838 + 145 88 233 Ra 233 047594.573 + 144 89 233 Ac 233 044346.000 + 143 90 233 Th 233 041580.208 + 142 91 233 Pa 233 040246.605 + 141 92 233 U 233 039634.367 + 140 93 233 Np 233 040739.489 + 139 94 233 Pu 233 042997.345 + 137 96 233 Cm 233 050772.206 + 146 88 234 Ra 234 050382.104 + 145 89 234 Ac 234 048139.000 + 144 90 234 Th 234 043599.860 + 143 91 234 Pa 234 043305.615 + 142 92 234 U 234 040950.370 + 141 93 234 Np 234 042893.320 + 140 94 234 Pu 234 043317.478 + 138 96 234 Cm 234 050160.959 + 146 89 235 Ac 235 050840.000 + 145 90 235 Th 235 047255.000 + 144 91 235 Pa 235 045399.000 + 143 92 235 U 235 043928.190 + 142 93 235 Np 235 044061.591 + 141 94 235 Pu 235 045284.682 + 140 95 235 Am 235 047907.371 + 147 89 236 Ac 236 054988.000 + 146 90 236 Th 236 049657.000 + 145 91 236 Pa 236 048668.000 + 144 92 236 U 236 045566.201 + 143 93 236 Np 236 046568.392 + 142 94 236 Pu 236 046056.756 + 140 96 236 Cm 236 051374.506 + 147 90 237 Th 237 053629.000 + 146 91 237 Pa 237 051023.000 + 145 92 237 U 237 048728.380 + 144 93 237 Np 237 048171.710 + 143 94 237 Pu 237 048407.957 + 141 96 237 Cm 237 052868.923 + 139 98 237 Cf 237 062199.993 + 147 91 238 Pa 238 054637.000 + 146 92 238 U 238 050786.996 + 145 93 238 Np 238 050944.671 + 144 94 238 Pu 238 049558.250 + 143 95 238 Am 238 051982.607 + 142 96 238 Cm 238 053081.595 + 147 92 239 U 239 054292.048 + 146 93 239 Np 239 052937.599 + 145 94 239 Pu 239 052161.669 + 144 95 239 Am 239 053022.803 + 143 96 239 Cm 239 054908.593 + 148 92 240 U 240 056592.425 + 147 93 240 Np 240 056163.830 + 146 94 240 Pu 240 053811.812 + 145 95 240 Am 240 055298.444 + 144 96 240 Cm 240 055528.329 + 142 98 240 Cf 240 062255.842 + 148 93 241 Np 241 058250.697 + 147 94 241 Pu 241 056849.722 + 146 95 241 Am 241 056827.413 + 145 96 241 Cm 241 057651.288 + 149 93 242 Np 242 061639.615 + 148 94 242 Pu 242 058741.045 + 147 95 242 Am 242 059547.428 + 146 96 242 Cm 242 058834.263 + 144 98 242 Cf 242 063754.533 + 149 94 243 Pu 243 062002.119 + 148 95 243 Am 243 061379.940 + 147 96 243 Cm 243 061387.403 + 146 97 243 Bk 243 063005.980 + 150 94 244 Pu 244 064204.415 + 149 95 244 Am 244 064282.964 + 148 96 244 Cm 244 062750.694 + 147 97 244 Bk 244 065179.039 + 146 98 244 Cf 244 065999.543 + 151 94 245 Pu 245 067824.568 + 150 95 245 Am 245 066452.890 + 149 96 245 Cm 245 065491.113 + 148 97 245 Bk 245 066359.885 + 147 98 245 Cf 245 068046.825 + 152 94 246 Pu 246 070204.209 + 150 96 246 Cm 246 067222.082 + 149 97 246 Bk 246 068671.367 + 148 98 246 Cf 246 068803.762 + 146 100 246 Fm 246 075350.815 + 151 96 247 Cm 247 070352.726 + 150 97 247 Bk 247 070305.940 + 149 98 247 Cf 247 070965.462 + 148 99 247 Es 247 073621.932 + 152 96 248 Cm 248 072349.101 + 150 98 248 Cf 248 072182.978 + 148 100 248 Fm 248 077185.528 + 153 96 249 Cm 249 075954.006 + 152 97 249 Bk 249 074983.182 + 151 98 249 Cf 249 074850.491 + 149 100 249 Fm 249 078926.098 + 154 96 250 Cm 250 078357.556 + 153 97 250 Bk 250 078315.027 + 152 98 250 Cf 250 076404.561 + 150 100 250 Fm 250 079519.828 + 155 96 251 Cm 251 082285.036 + 154 97 251 Bk 251 080760.603 + 153 98 251 Cf 251 079587.219 + 152 99 251 Es 251 079992.224 + 151 100 251 Fm 251 081539.889 + 150 101 251 Md 251 084774.291 + 154 98 252 Cf 252 081626.523 + 153 99 252 Es 252 082979.189 + 152 100 252 Fm 252 082464.972 + 150 102 252 No 252 088966.141 + 155 98 253 Cf 253 085133.738 + 154 99 253 Es 253 084821.305 + 153 100 253 Fm 253 085181.160 + 151 102 253 No 253 090562.831 + 156 98 254 Cf 254 087323.590 + 155 99 254 Es 254 088020.527 + 154 100 254 Fm 254 086852.726 + 152 102 254 No 254 090954.259 + 156 99 255 Es 255 090273.553 + 155 100 255 Fm 255 089962.633 + 154 101 255 Md 255 091082.787 + 153 102 255 No 255 093191.404 + 152 103 255 Lr 255 096562.404 + 156 100 256 Fm 256 091773.878 + 154 102 256 No 256 094280.866 + 153 103 256 Lr 256 098494.029 + 152 104 256 Rf 256 101151.535 + 157 100 257 Fm 257 095105.317 + 156 101 257 Md 257 095537.977 + 155 102 257 No 257 096884.419 + 153 104 257 Rf 257 102916.848 + 157 101 258 Md 258 098429.825 + 154 104 258 Rf 258 103426.362 + 157 102 259 No 259 100997.503 + 154 105 259 Db 259 109491.865 + 154 106 260 Sg 260 114383.508 + 157 104 261 Rf 261 108769.990 + 155 106 261 Sg 261 115948.188 + 156 106 262 Sg 262 116335.446 + 156 108 264 Hs 264 128356.405 + 157 108 265 Hs 265 129791.799 + 158 108 266 Hs 266 130045.252 + 159 110 269 Ds 269 144751.021 + 160 110 270 Ds 270 144583.090 + diff --git a/include/Eloss_Tables.h b/include/Eloss_Tables.h new file mode 100644 index 0000000..fc12245 --- /dev/null +++ b/include/Eloss_Tables.h @@ -0,0 +1,130 @@ +#ifndef ELOSS_TABLES_H +#define ELOSS_TABLES_H + +#define MAX_Z 93 //Maximum number of elements for which we have hydrogen coefficients + +/*Atomic Masses for elements H through U. Taken from ELAST data*/ +static double NATURAL_MASS[MAX_Z] = + {0, + 1.00797, 4.0026, 6.939, 9.0122, 10.818, + 12.01115, 14.0067, 15.9994, 18.99984, 20.183, + 22.9898, 24.312, 26.9815, 28.086, 30.9738, + 32.064, 35.453, 39.948, 39.102, 40.08, + 44.956, 47.90, 50.942, 51.996, 54.938, + 55.847, 58.933, 58.71, 63.54, 65.37, + 69.72, 72.59, 74.922, 78.96, 79.909, + 83.80, 85.47, 87.62, 88.909, 91.22, + 92.906, 95.94, 98., 101.07, 102.905, + 106.4, 107.87, 112.4, 114.82, 118.69, + 121.75, 127.60, 126.904, 131.3, 132.905, + 137.34, 138.91, 140.12, 140.907, 144.24, + 146., 150.35, 151.96, 157.25, 158.924, + 162.50, 164.93, 167.26, 168.934, 173.04, + 174.97, 178.49, 180.948, 183.85, 186.2, + 190.2, 192.2, 195.09, 196.967, 200.59, + 204.37, 207.19, 208.98, 209., 210., + 222., 223., 226., 227., 232.038, + 231., 238.03 }; + +/*Stopping power coefficients for hydrogen into Z + *Taken from Ziegler, Hydrogen Stopping Powers and Ranges in All Elements, Volume 3 of + *The Stopping and Ranges of Ions in Matter, 1977, Pergamon Press Inc. + *Expanded table for method given in O.G. Spanc + *Note: some elements represent extrapolations when there was no data to fit + */ +static double HYDROGEN_COEFF[MAX_Z][12] = { + /*Blank*/{0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.}, + /*H*/{1.262,1.44,242.6,1.2E4,0.1159,0.0005099,5.436E4,-5.052,2.049,-0.3044,0.01966,-0.0004659}, + /*He*/{1.229,1.397,484.5,5873,0.05225,0.00102,2.451E4,-2.158,0.8278,-0.1172,0.007259,-0.000166}, + /*Li*/{1.411,1.6,725.6,3013,0.04578,0.00153,2.147E4,-0.5831,0.562,-0.1183,0.009298,-0.0002498}, + /*Be*/{2.248,2.59,966,153.8,0.03475,0.002039,1.63E4,0.2779,0.1745,-0.05684,0.005155,-0.0001488}, + /*B*/{2.474,2.815,1206,1060,0.02855,0.002549,1.345E4,-2.445,1.283,-0.2205,0.0156,-0.000393}, + /*C*/{2.631,2.989,1445,957.2,0.02819,0.003059,1.322E4,-4.38,2.044,-0.3283,0.02221,-0.0005417}, + /*N*/{2.954,3.35,1683,1900,0.02513,0.003569,1.179E4,-5.054,2.325,-0.3713,0.02506,-0.0006109}, + /*O*/{2.652,3,1920,2000,0.0223,0.004079,1.046E4,-6.734,3.019,-0.4748,0.03171,-0.0007669}, + /*F*/{2.085,2.352,2157,2634,0.01816,0.004589,8517,-5.571,2.449,-0.3781,0.02483,-0.0005919}, + /*Ne*/{1.951,2.199,2393,2699,0.01568,0.005099,7353,-4.408,1.879,-0.2814,0.01796,-0.0004168}, + /*Na*/{2.542,2.869,2628,1854,0.01472,0.005609,6905,-4.959,2.073,-0.3054,0.01921,-0.0004403}, + /*Mg*/{3.792,4.293,2862,1009,0.01397,0.006118,6551,-5.51,2.266,-0.3295,0.02047,-0.0004637}, + /*Al*/{4.154,4.739,2766,164.5,0.02023,0.006628,6309,-6.061,2.46,-0.3535,0.02173,-0.0004871}, + /*Si*/{4.15,4.7,3329,550,0.01321,0.007138,6194,-6.294,2.538,-0.3628,0.0222,-0.0004956}, + /*P*/{3.232,3.647,3561,1560,0.01267,0.007648,5942,-6.527,2.616,-0.3721,0.02267,-0.000504}, + /*S*/{3.447,3.891,3792,1219,0.01211,0.008158,5678,-6.761,2.694,-0.3814,0.02314,-0.0005125}, + /*Cl*/{5.047,5.714,4023,878.6,0.01178,0.008668,5524,-6.994,2.773,-0.3907,0.02361,-0.0005209}, + /*Ar*/{5.731,6.5,4253,530,0.01123,0.009178,5268,-7.227,2.851,-0.4,0.02407,-0.0005294}, + /*K*/{5.151,5.833,4482,545.7,0.01129,0.009687,5295,-7.44,2.923,-0.4094,0.02462,-0.0005411}, + /*Ca*/{5.521,6.252,4710,553.3,0.01112,0.0102,5214,-7.653,2.995,-0.4187,0.02516,-0.0005529}, + /*Sc*/{5.201,5.884,4938,560.9,0.009995,0.01071,4688,-8.012,3.123,-0.435,0.02605,-0.0005707}, + /*Ti*/{4.862,5.496,5165,568.5,0.009474,0.01122,4443,-8.371,3.251,-0.4513,0.02694,-0.0005886}, + /*V*/{4.48,5.055,5391,952.3,0.009117,0.01173,4276,-8.731,3.379,-0.4676,0.02783,-0.0006064}, + /*Cr*/{3.983,4.489,5616,1336,0.008413,0.01224,3946,-9.09,3.507,-0.4838,0.02872,-0.0006243}, + /*Mn*/{3.469,3.907,5725,1461,0.008829,0.01275,3785,-9.449,3.635,-0.5001,0.02961,-0.0006421}, + /*Fe*/{3.519,3.963,6065,1243,0.007782,0.01326,3650,-9.809,3.763,-0.5164,0.0305,-0.00066}, + /*Co*/{3.14,3.535,6288,1372,0.007361,0.01377,3453,-10.17,3.891,-0.5327,0.03139,-0.0006779}, + /*Ni*/{3.553,4.004,6205,555.1,0.008763,0.01428,3297,-10.53,4.019,-0.549,0.03229,-0.0006957}, + /*Cu*/{3.696,4.175,4673,387.8,0.02188,0.01479,3174,-11.18,4.252,-0.5791,0.03399,-0.0007314}, + /*Zn*/{4.21,4.75,6953,295.2,0.006809,0.0153,3194,-11.57,4.394,-0.598,0.03506,-0.0007537}, + /*Ga*/{5.041,5.697,7173,202.6,0.006725,0.01581,3154,-11.95,4.537,-0.6169,0.03613,-0.0007759}, + /*Ge*/{5.554,6.3,6496,110,0.009689,0.01632,3097,-12.34,4.68,-0.6358,0.03721,-0.0007981}, + /*As*/{5.323,6.012,7611,292.5,0.006447,0.01683,3024,-12.72,4.823,-0.6547,0.03828,-0.0008203}, + /*Se*/{5.874,6.656,7395,117.5,0.007684,0.01734,3006,-13.11,4.965,-0.6735,0.03935,-0.0008425}, + /*Br*/{5.611,6.335,8046,365.2,0.006244,0.01785,2928,-13.4,5.083,-0.6906,0.04042,-0.0008675}, + /*Kr*/{6.411,7.25,8262,220,0.006087,0.01836,2855,-13.69,5.2,-0.7076,0.0415,-0.0008925}, + /*Rb*/{5.694,6.429,8478,292.9,0.006087,0.01886,2855,-13.92,5.266,-0.714,0.04173,-0.0008943}, + /*Sr*/{6.339,7.159,8693,330.3,0.006003,0.01937,2815,-14.14,5.331,-0.7205,0.04196,-0.0008962}, + /*Y*/{6.407,7.234,8907,367.8,0.005889,0.01988,2762,-14.36,5.397,-0.7269,0.04219,-0.000898}, + /*Zr*/{6.734,7.603,9120,405.2,0.005765,0.02039,2704,-14.59,5.463,-0.7333,0.04242,-0.0008998}, + /*Nb*/{6.902,7.791,9333,442.7,0.005587,0.0209,2621,-16.22,6.094,-0.8225,0.04791,-0.001024}, + /*Mo*/{6.425,7.248,9545,480.2,0.005367,0.02141,2517,-17.85,6.725,-0.9116,0.05339,-0.001148}, + /*Tc*/{6.799,7.671,9756,517.6,0.005315,0.02192,2493,-17.96,6.752,-0.9135,0.05341,-0.001147}, + /*Ru*/{6.108,6.887,9966,555.1,0.005151,0.02243,2416,-18.07,6.779,-0.9154,0.05342,-0.001145}, + /*Rh*/{5.924,6.677,1.018E4,592.5,0.004919,0.02294,2307,-18.18,6.806,-0.9173,0.05343,-0.001143}, + /*Pd*/{5.238,5.9,1.038E4,630,0.004758,0.02345,2231,-18.28,6.833,-0.9192,0.05345,-0.001142}, + /*Ag*/{5.623,6.354,7160,337.6,0.01394,0.02396,2193,-18.39,6.86,-0.9211,0.05346,-0.00114}, + /*Cd*/{5.814,6.554,1.08E4,355.5,0.004626,0.02447,2170,-18.62,6.915,-0.9243,0.0534,-0.001134}, + /*In*/{6.23,7.024,1.101E4,370.9,0.00454,0.02498,2129,-18.85,6.969,-0.9275,0.05335,-0.001127}, + /*Sn*/{6.41,7.227,1.121E4,386.4,0.004474,0.02549,2099,-19.07,7.024,-0.9308,0.05329,-0.001121}, + /*Sb*/{7.5,8.48,8608,348,0.009074,0.026,2069,-19.57,7.225,-0.9603,0.05518,-0.001165}, + /*Te*/{6.979,7.871,1.162E4,392.4,0.004402,0.02651,2065,-20.07,7.426,-0.9899,0.05707,-0.001209}, + /*I*/{7.725,8.716,1.183E4,394.8,0.004376,0.02702,2052,-20.56,7.627,-1.019,0.05896,-0.001254}, + /*Xe*/{8.231,9.289,1.203E4,397.3,0.004384,0.02753,2056,-21.06,7.828,-1.049,0.06085,-0.001298}, + /*Cs*/{7.287,8.218,1.223E4,399.7,0.004447,0.02804,2086,-20.4,7.54,-1.004,0.05782,-0.001224}, + /*Ba*/{7.899,8.911,1.243E4,402.1,0.004511,0.02855,2116,-19.74,7.252,-0.9588,0.05479,-0.001151}, + /*La*/{8.041,9.071,1.263E4,404.5,0.00454,0.02906,2129,-19.08,6.964,-0.9136,0.05176,-0.001077}, + /*Ce*/{7.489,8.444,1.283E4,406.9,0.00442,0.02957,2073,-18.43,6.677,-0.8684,0.04872,-0.001003}, + /*Pr*/{7.291,8.219,1.303E4,409.3,0.004298,0.03008,2016,-17.77,6.389,-0.8233,0.04569,-0.0009292}, + /*Nd*/{7.098,8,1.323E4,411.8,0.004182,0.03059,1962,-17.11,6.101,-0.7781,0.04266,-0.0008553}, + /*Pm*/{6.91,7.786,1.343E4,414.2,0.00405,0.0311,1903,-16.45,5.813,-0.733,0.03963,-0.0007815}, + /*Sm*/{6.728,7.58,1.362E4,416.6,0.003976,0.03161,1865,-15.79,5.526,-0.6878,0.0366,-0.0007077}, + /*Eu*/{6.551,7.38,1.382E4,419,0.003877,0.03212,1819,-15.13,5.238,-0.6426,0.03357,-0.0006339}, + /*Gd*/{6.739,7.592,1.402E4,421.4,0.003863,0.03263,1812,-14.47,4.95,-0.5975,0.03053,-0.0005601}, + /*Tb*/{6.212,6.996,1.421E4,423.9,0.003725,0.03314,1747,-14.56,4.984,-0.6022,0.03082,-0.0005668}, + /*Dy*/{5.517,6.21,1.44E4,426.3,0.003632,0.03365,1703,-14.65,5.018,-0.6069,0.03111,-0.0005734}, + /*Ho*/{5.219,5.874,1.46E4,428.7,0.003498,0.03416,1640,-14.74,5.051,-0.6117,0.03141,-0.0005801}, + /*Er*/{5.071,5.706,1.479E4,433,0.003405,0.03467,1597,-14.83,5.085,-0.6164,0.0317,-0.0005867}, + /*Tm*/{4.926,5.542,1.498E4,433.5,0.003342,0.03518,1567,-14.91,5.119,-0.6211,0.03199,-0.0005933}, + /*Yb*/{4.787, 5.386,1.517E4,435.9,0.003292,0.03569,1544,-15,5.153,-0.6258,0.03228,-0.0006}, + /*Lu*/{4.893, 5.505,1.536E4,438.4,0.003243,0.0362,1521,-15.09,5.186,-0.6305,0.03257,-0.0006066}, + /*Hf*/{5.028, 5.657,1.555E4,440.8,0.003195,0.03671,1499,-15.18,5.22,-0.6353,0.03286,-0.0006133}, + /*Ta*/{4.738, 5.329,1.574E4,443.2,0.003186,0.03722,1494,-15.27,5.254,-0.64,0.03315,-0.0006199}, + /*W*/{4.574, 5.144,1.593E4,442.4,0.003144,0.03773,1475,-15.67,5.392,-0.6577,0.03418,-0.0006426}, + /*Re*/{5.2, 5.851,1.612E4,441.6,0.003122,0.03824,1464,-16.07,5.529,-0.6755,0.03521,-0.0006654}, + /*Os*/{5.07, 5.704,1.63E4,440.9,0.003082,0.03875,1446,-16.47,5.667,-0.6932,0.03624,-0.0006881}, + /*Ir*/{4.945, 5.563,1.649E4,440.1,0.002965,0.03926,1390,-16.88,5.804,-0.711,0.03727,-0.0007109}, + /*Pt*/{4.476, 5.034,1.667E4,439.3,0.002871,0.03977,1347,-17.28,5.942,-0.7287,0.0383,-0.0007336}, + /*Au*/{4.856, 5.46,1.832E4,438.5,0.002542,0.04028,1354,-17.02,5.846,-0.7149,0.0374,-0.0007114}, + /*Hg*/{4.308, 4.843,1.704E4,487.8,0.002882,0.04079,1352,-17.84,6.183,-0.7659,0.04076,-0.0007925}, + /*Tl*/{4.723, 5.311,1.722E4,537,0.002913,0.0413,1366,-18.66,6.52,-0.8169,0.04411,-0.0008737}, + /*Pb*/{5.319, 5.982,1.74E4,586.3,0.002871,0.04181,1347,-19.48,6.857,-0.8678,0.04747,-0.0009548}, + /*Bi*/{5.956, 6.7,1.78E4,677,0.00266,0.04232,1336,-19.55,6.871,-0.8686,0.04748,-0.0009544}, + /*Po*/{6.158, 6.928,1.777E4,586.3,0.002812,0.04283,1319,-19.62,6.884,-0.8694,0.04748,-0.000954}, + /*At*/{6.204, 6.979,1.795E4,586.3,0.002776,0.04334,1302,-19.69,6.898,-0.8702,0.04749,-0.0009536}, + /*Rn*/{6.181, 6.954,1.812E4,586.3,0.002748,0.04385,1289,-19.76,6.912,-0.871,0.04749,-0.0009532}, + /*Fr*/{6.949, 7.82,1.83E4,586.3,0.002737,0.04436,1284,-19.83,6.926,-0.8718,0.0475,-0.0009528}, + /*Ra*/{7.506, 8.448,1.848E4,586.3,0.002727,0.04487,1279,-19.9,6.94,-0.8726,0.04751,-0.0009524}, + /*Ac*/{7.649, 8.609,1.866E4,586.3,0.002697,0.04538,1265,-19.97,6.953,-0.8733,0.04751,-0.000952}, + /*Th*/{7.71, 8.679,1.883E4,586.3,0.002641,0.04589,1239,-20.04,6.967,-0.8741,0.04752,-0.0009516}, + /*Pa*/{7.407, 8.336,1.901E4,586.3,0.002603,0.0464,1221,-20.11,6.981,-0.8749,0.04752,-0.0009512}, + /*U*/{7.29, 8.204,1.918E4,586.3,0.002573,0.04691,1207,-20.18,6.995,-0.8757,0.04753,-0.0009508} +}; +#endif diff --git a/include/EnergyLoss.h b/include/EnergyLoss.h new file mode 100644 index 0000000..ec1ec59 --- /dev/null +++ b/include/EnergyLoss.h @@ -0,0 +1,57 @@ +/* + +EnergyLoss.h +Code for calculating the energy loss of a charged, massive particle through an arbitrary medium. +Based on code written by D.W. Visser at Yale for the original SPANC. Uses energy loss calulations +described by Ziegler in various SRIM textbooks. + +Written by G.W. McCann Aug. 2020 + +*/ + +#ifndef ENERGYLOSS_H +#define ENERGYLOSS_H + +#include +#include +#include +#include +#include +#include "Eloss_Tables.h" +#include "MassLookup.h" + +class EnergyLoss { + + public: + EnergyLoss(); + ~EnergyLoss(); + double GetEnergyLoss(int zp, int ap, double e_initial, double thickness); + double GetReverseEnergyLoss(int zp, int ap, double e_final, double thickness); + double GetRange(double energy); + void SetTargetComponents(std::vector& Zt, std::vector& At, std::vector& Stoich); + + private: + double GetElectronicStoppingPower(double energy); + double GetNuclearStoppingPower(double energy); + double GetTotalStoppingPower(double energy); + double Hydrogen_dEdx_Low(double e_per_u, int z); + double Hydrogen_dEdx_Med(double e_per_u, int z); + double Hydrogen_dEdx_High(double e_per_u, double energy, int z); + double CalculateEffectiveChargeRatio(double e_per_u, int z); + + int ZP, AP; + double MP; //units of u, isotopic + double comp_denom; + std::vector ZT, AT; + std::vector targ_composition; + + //constants for calculations + static constexpr double MAX_FRACTIONAL_STEP = 0.001; + static constexpr double MAX_H_E_PER_U = 100000.0; + static constexpr double AVOGADRO = 0.60221367; //N_A times 10^(-24) for converting + static constexpr double MEV2U = 1.0/931.4940954; + static constexpr double PI = 3.14159265358979323846; + static constexpr double H_RESTMASS = 938.27231; //MeV, for beta calc +}; + +#endif diff --git a/include/G4Vec.h b/include/G4Vec.h new file mode 100644 index 0000000..dd23f54 --- /dev/null +++ b/include/G4Vec.h @@ -0,0 +1,47 @@ +#ifndef G4VEC_H +#define G4VEC_H + +#include + +class G4Vec { +public: + G4Vec(); + G4Vec(double px, double py, double pz, double E); + virtual ~G4Vec(); + void SetVectorCartesian(double px, double py, double pz, double E); + void SetVectorSpherical(double theta, double phi, double p, double E); + inline double GetE() const {return m_data[3];}; + inline double GetPx() const {return m_data[0];}; + inline double GetPy() const {return m_data[1];}; + inline double GetPz() const {return m_data[2];}; + inline double GetP() const {return std::sqrt(m_data[0]*m_data[0] + m_data[1]*m_data[1] + m_data[2]*m_data[2]);}; + inline double GetTheta() const {return GetP() == 0.0 ? 0.0 : acos(GetPz()/GetP());}; + inline double GetPhi() const { + if(GetPx() == 0) return M_PI/2.0; + double phi = std::atan(GetPy()/GetPx()); + if(GetPx()<0) phi += M_PI; + else if(GetPy()<0) phi += 2.0*M_PI; + return phi; + }; + inline double GetInvMass() const {return std::sqrt(GetE()*GetE() - GetP()*GetP());}; + inline double GetKE() const {return GetE() - GetInvMass();}; + inline const double* GetBoost() const {return &m_boost[0];}; + void ApplyBoost(const double* boost); + + //Only intended for use in looping access! + inline const double operator[] (int index) const {return index>3 || index < 0 ? 0.0 : m_data[index];}; + + inline G4Vec& operator=(const G4Vec& rhs) {SetVectorCartesian(rhs.GetPx(), rhs.GetPy(), rhs.GetPz(), rhs.GetE()); return *this;}; + inline G4Vec operator+(const G4Vec& rhs) const {return G4Vec(rhs.GetPx()+GetPx(), rhs.GetPy()+GetPy(), rhs.GetPz()+GetPz(), rhs.GetE()+GetE());}; + inline G4Vec operator-(const G4Vec& rhs) const {return G4Vec(rhs.GetPx()-GetPx(), rhs.GetPy()-GetPy(), rhs.GetPz()-GetPz(), rhs.GetE()-GetE());}; + double Dot(const G4Vec& rhs) const; + G4Vec Cross(const G4Vec& rhs) const; + +private: + void CalcBoostToCM(); + double m_data[4]; + double m_boost[3]; + +}; + +#endif \ No newline at end of file diff --git a/include/Kinematics.h b/include/Kinematics.h new file mode 100644 index 0000000..4d4b800 --- /dev/null +++ b/include/Kinematics.h @@ -0,0 +1,63 @@ +#ifndef KINEMATICS_H +#define KINEMATICS_H + +#include "ReactionSystem.h" +#include "TwoStepSystem.h" +#include "ThreeStepSystem.h" +#include "Plotter.h" + +#include +#include + +//For tree +struct NucData { + double KE = -1; + double E = -1; + double Ex = -1; + double p = -1; + double theta = -1; + double phi = -1; +}; + +class Kinematics { +public: + Kinematics(); + ~Kinematics(); + bool LoadConfig(const char* filename); + bool SaveConfig(const char* filename); + inline void SetTreeFlag() { save_tree_flag = true; }; + inline void SetPlotterFlag() { do_plotter_flag = true; }; + inline int GetNumberOfSamples() { return m_nsamples; }; + inline const char* GetSystemName() { return sys == nullptr ? "" : sys->GetSystemEquation(); }; + inline const char* GetOutputName() { return m_outfile_name.c_str(); }; + inline int GetReactionType() { return m_rxn_type; }; + void Run(); + + enum RxnType { + ONESTEP_RXN, + ONESTEP_DECAY, + TWOSTEP, + THREESTEP + }; + +private: + void RunOneStepRxn(); + void RunOneStepDecay(); + void RunTwoStep(); + void RunThreeStep(); + + ReactionSystem* sys; + Plotter plotman; + + NucData ConvertNucleus(const Nucleus& nuc); + + bool save_tree_flag, do_plotter_flag; + + std::string m_outfile_name; + + int m_rxn_type, m_nsamples; + + TRandom3* global_generator; +}; + +#endif \ No newline at end of file diff --git a/include/KinematicsExceptions.h b/include/KinematicsExceptions.h new file mode 100644 index 0000000..e59972f --- /dev/null +++ b/include/KinematicsExceptions.h @@ -0,0 +1,66 @@ +#ifndef KINEMATICSEXCEPTIONS_H +#define KINEMATICSEXCEPTIONS_H + +#include +#include +/* + ELossException + This is an exception that is thrown by the Energy loss calculator. It is not specific to one particular + location in EnergyLoss.cpp/.h, however there are really only a couple of ways that these can fail. + Either your nucleus is not well defined (i.e. doe not exist in the Eloss_Tables.h) or you've tried to run + it without defining the proper information. See the SetTargetComponentsand GetElectronicStoppingPower functions + for locations where this could be thrown +*/ +struct ELossException : public std::exception { + const char* what() const noexcept { + return "Failure to calculate particle energy loss. See KinematicsExceptions.h for documentation."; + }; +}; + +/* + MassException + This is an exception thrown when the MassLookup is queried for an isotope for which it does not have a defined + mass. The masses are defined in ./etc/mass.txt, which is a condensed version of the AMDC Mass Evaluation from 2017. +*/ +struct MassException : public std::exception { + const char* what() const noexcept { + return "Unable to find a given isotopic mass. See Kinematics.h for documentation."; + }; +}; + +/* + MassFileException + This is an exception thrown when the MassLookup cannot find the ./etc/mass.txt file. +*/ +struct MassFileException : public std::exception { + const char* what() const noexcept { + return "Unable to find ./etc/mass.txt. Check that it is present."; + }; +}; + +/* + ReactionLayerException + This is an exception thrown when the ReactionSystem cannot find a good layer in its LayeredTarget + to set as the layer where the reaction takes place. A good layer is a layer which contains the isotope which + corresponds to the isotope defined as the "target" in the reaction equation. +*/ +struct ReactionLayerException : public std::exception { + const char* what() const noexcept { + return "Unable to find a valid layer for reaction in the target. See KinematicsExceptions.h for documentation."; + }; +}; + +/* + QValueException + This is an exception thrown when the Reaction caluclates a decay Q-value that is negative, indicating + that there is not enough energy to create the decay products. +*/ +struct QValueException : public std::exception { + const char* what() const noexcept { + return "Q-value is negative for decay calculation. See KinematicsExceptions.h for documentation."; + }; +}; + + + +#endif \ No newline at end of file diff --git a/include/LayeredTarget.h b/include/LayeredTarget.h new file mode 100644 index 0000000..84da673 --- /dev/null +++ b/include/LayeredTarget.h @@ -0,0 +1,41 @@ +/* + +LayeredTarget.h +Functional unit for targets in the SPANCRedux environment. Contains a +set (read: vector) of Targets for use in reaction calculations. In this +way handles situations such as carbon backed targets + +Based on code by D.W. Visser written at Yale for the original SPANC + +Written by G.W. McCann Aug. 2020 + +*/ +#ifndef LAYEREDTARGET_H +#define LAYEREDTARGET_H + +#include +#include +#include +#include "Target.h" + +class LayeredTarget { + + public: + LayeredTarget(); + ~LayeredTarget(); + void AddLayer(std::vector& Z, std::vector& A, std::vector& stoich, double thickness); + double GetProjectileEnergyLoss(int zp, int ap, double startEnergy, int rxnLayer, double angle); + double GetEjectileEnergyLoss(int ze, int ae, double startEnergy, int rxnLayer, double angle); + double GetEjectileReverseEnergyLoss(int ze, int ae, double startEnergy, int rxnLayer, double angle); + int GetNumberOfLayers(); + int FindLayerContaining(int Z, int A); + void SetName(std::string& n); + Target& GetLayerInfo(int index); + std::string& GetName(); + + private: + std::vector layers; + std::string name; +}; + +#endif diff --git a/include/LinkDef_Kinematics.h b/include/LinkDef_Kinematics.h new file mode 100644 index 0000000..e69f245 --- /dev/null +++ b/include/LinkDef_Kinematics.h @@ -0,0 +1,5 @@ +#ifdef __CLING__ + +#pragma link C++ struct NucData+; + +#endif \ No newline at end of file diff --git a/include/MassLookup.h b/include/MassLookup.h new file mode 100644 index 0000000..404116f --- /dev/null +++ b/include/MassLookup.h @@ -0,0 +1,40 @@ +/* + +MassLookup.h +Generates a map for isotopic masses using AMDC data; subtracts away +electron mass from the atomic mass by default. Creates a static global instance +of this map (MASS) for use throughout code it is included into. + +Written by G.W. McCann Aug. 2020 + +*/ +#ifndef MASS_LOOKUP_H +#define MASS_LOOKUP_H + +#include +#include +#include +#include +#include + +class MassLookup { + + public: + MassLookup(); + ~MassLookup(); + double FindMass(int Z, int A); + std::string FindSymbol(int Z, int A); + + private: + std::unordered_map massTable; + std::unordered_map elementTable; + + //constants + static constexpr double u_to_mev = 931.4940954; + static constexpr double electron_mass = 0.000548579909; + +}; + +//static instance for use throught program +static MassLookup MASS; +#endif diff --git a/include/Nucleus.h b/include/Nucleus.h new file mode 100644 index 0000000..7d3627b --- /dev/null +++ b/include/Nucleus.h @@ -0,0 +1,42 @@ +#ifndef NUCLEUS_H +#define NUCLEUS_H + +#include "G4Vec.h" +#include + +class Nucleus : public G4Vec { +public: + Nucleus(); + Nucleus(int Z, int A); + Nucleus(int Z, int A, double px, double py, double pz, double E); + ~Nucleus(); + bool SetIsotope(int Z, int A); + inline int GetZ() const { return m_z; }; + inline int GetA() const { return m_a; }; + inline double GetExcitationEnergy() const { return GetInvMass() - m_gs_mass; }; + inline double GetGroundStateMass() const { return m_gs_mass; }; + inline const char* GetIsotopicSymbol() const { return m_symbol.c_str(); }; + + inline Nucleus& operator=(const Nucleus& rhs) { + SetIsotope(rhs.GetZ(), rhs.GetA()); + SetVectorCartesian(rhs.GetPx(), rhs.GetPy(), rhs.GetPz(), rhs.GetE()); + return *this; + }; + + inline Nucleus operator+(const Nucleus& daughter) { + return Nucleus(GetZ()+daughter.GetZ(), GetA()+daughter.GetA(), GetPx()+daughter.GetPx(), GetPy()+daughter.GetPy(), GetPz()+daughter.GetPz(), GetE()+daughter.GetE()); + }; + inline Nucleus operator-(const Nucleus& daughter) { + return (GetZ() - daughter.GetZ()) <= 0 || (GetA() - daughter.GetA()) <= 0 ? Nucleus() : + Nucleus(GetZ()-daughter.GetZ(), GetA() - daughter.GetA(), GetPx()-daughter.GetPx(), GetPy()-daughter.GetPy(), GetPz()-daughter.GetPz(), GetE()-daughter.GetE()); + + }; + +private: + int m_z, m_a; + double m_gs_mass; + std::string m_symbol; + +}; + +#endif \ No newline at end of file diff --git a/include/Plotter.h b/include/Plotter.h new file mode 100644 index 0000000..cedd246 --- /dev/null +++ b/include/Plotter.h @@ -0,0 +1,45 @@ +#ifndef PLOTTER_H +#define PLOTTER_H + +#include +#include +#include +#include +#include +#include "Nucleus.h" + +struct GraphData { + std::string name; + std::string title; + std::vector xvec; + std::vector yvec; + int color; +}; + +class Plotter { +public: + Plotter(); + ~Plotter(); + inline void ClearTable() { table->Clear(); }; + inline THashTable* GetTable() { + GenerateGraphs(); + return table; + }; + void FillData(const Nucleus& nuc); + +private: + THashTable* table; + + void GenerateGraphs(); + void MyFill(const char* name, const char* title, int bins, float min, float max, double val); + void MyFill(const char* name, const char* title, int binsx, float minx, float maxx, int binsy, float miny, float maxy, double valx, double valy); + void MyFill(const char* name, const char* title, double valx, double valy, int color); //TGraph + + std::vector garbage_collection; + std::vector graphs; + + static constexpr double rad2deg = 180.0/M_PI; + +}; + +#endif \ No newline at end of file diff --git a/include/Reaction.h b/include/Reaction.h new file mode 100644 index 0000000..c83fe4b --- /dev/null +++ b/include/Reaction.h @@ -0,0 +1,54 @@ +#ifndef REACTION_H +#define REACTION_H + +#include "Nucleus.h" +#include "LayeredTarget.h" + +class Reaction { +public: + Reaction(); + Reaction(int zt, int at, int zp, int ap, int ze, int ae); + ~Reaction(); + bool Calculate(); + void SetNuclei(int zt, int at, int zp, int ap, int ze, int ae); + void SetNuclei(const Nucleus* nucs); + void SetBeamKE(double bke); + inline void SetLayeredTarget(LayeredTarget* targ) { target = targ; }; + inline void SetPolarRxnAngle(double theta) { m_theta = theta; }; + inline void SetAzimRxnAngle(double phi) { m_phi = phi; }; + inline void SetExcitation(double ex) { m_ex = ex; }; + inline void SetTarget(const Nucleus& nuc) { reactants[0] = nuc; }; + inline void SetTarget(int z, int a) { reactants[0] = Nucleus(z, a); }; + inline void SetProjectile(const Nucleus& nuc) { reactants[1] = nuc; }; + inline void SetProjectile(int z, int a) { reactants[1] = Nucleus(z, a); }; + inline void SetEjectile(const Nucleus& nuc) { reactants[2] = nuc; }; + inline void SetEjectile(int z, int a) { reactants[2] = Nucleus(z, a); }; + inline void SetResidual(const Nucleus& nuc) { reactants[3] = nuc; }; + inline void SetResidual(int z, int a) { reactants[3] = Nucleus(z, a); }; + inline void SetRxnLayer(int layer) { rxnLayer = layer; }; + inline void TurnOffResidualEloss() { resid_elossFlag = false; }; + inline void TurnOnResidualEloss() { resid_elossFlag = true; }; + inline bool IsDecay() { return decayFlag; }; + inline const Nucleus* GetNuclei() const { return &(reactants[0]); }; + inline const Nucleus& GetProjectile() const { return reactants[1]; }; + inline const Nucleus& GetTarget() const { return reactants[0]; }; + inline const Nucleus& GetEjectile() const { return reactants[2]; }; + inline const Nucleus& GetResidual() const { return reactants[3]; }; + inline int GetRxnLayer() { return rxnLayer; }; + +private: + void CalculateReaction(); //target + project -> eject + resid + void CalculateDecay(); //target -> light_decay (eject) + heavy_decay(resid) + + Nucleus reactants[4]; //0=target, 1=projectile, 2=ejectile, 3=residual + LayeredTarget* target; //not owned by Reaction + + double m_bke, m_theta, m_phi, m_ex; + + int rxnLayer; + + bool decayFlag, nuc_initFlag, resid_elossFlag; + +}; + +#endif \ No newline at end of file diff --git a/include/ReactionSystem.h b/include/ReactionSystem.h new file mode 100644 index 0000000..59dfda7 --- /dev/null +++ b/include/ReactionSystem.h @@ -0,0 +1,42 @@ +#ifndef REACTIONSYSTEM_H +#define REACTIONSYSTEM_H + +#include "Reaction.h" +#include +#include + +class ReactionSystem { +public: + ReactionSystem(); + ReactionSystem(std::vector& z, std::vector& a); + virtual ~ReactionSystem(); + virtual bool SetNuclei(std::vector& z, std::vector& a); + void AddTargetLayer(std::vector& zt, std::vector& at, std::vector& stoich, double thickness); + inline void SetRandomGenerator(TRandom3* gen) { generator = gen; gen_set_flag = true; }; + inline void SetBeamDistro(double mean, double sigma) { m_beamDist = std::make_pair(mean, sigma); }; + inline void SetTheta1Range(double min, double max) { m_theta1Range = std::make_pair(min*deg2rad, max*deg2rad); }; + inline void SetExcitationDistro(double mean, double sigma) { m_exDist = std::make_pair(mean, sigma); }; + virtual void RunSystem(); + + inline const Nucleus& GetTarget() const { return step1.GetTarget(); }; + inline const Nucleus& GetProjectile() const { return step1.GetProjectile(); }; + inline const Nucleus& GetEjectile() const { return step1.GetEjectile(); }; + inline const Nucleus& GetResidual() const { return step1.GetResidual(); }; + inline const char* GetSystemEquation() { return m_sys_equation.c_str(); }; + +protected: + virtual void LinkTarget(); + virtual void SetSystemEquation(); + + Reaction step1; + LayeredTarget target; + std::pair m_beamDist, m_theta1Range, m_exDist; + TRandom3* generator; //not owned by ReactionSystem + + bool target_set_flag, gen_set_flag; + int rxnLayer; + std::string m_sys_equation; + static constexpr double deg2rad = M_PI/180.0; +}; + +#endif \ No newline at end of file diff --git a/include/SabreDetector.h b/include/SabreDetector.h new file mode 100644 index 0000000..3cb6482 --- /dev/null +++ b/include/SabreDetector.h @@ -0,0 +1,137 @@ +#ifndef __SABREDETECTOR_H +#define __SABREDETECTOR_H + +#include + +struct CartCoords { + + double x; + double y; + double z; + + double operator[](int i) { //Overloaded for compatibility with Get_Cart. Only for access + switch(i) { + case(0): return this->x; + case(1): return this->y; + case(2): return this->z; + default: return 0; + } + } + + double GetTheta(); + double GetR(); + double GetPhi(); + double GetDetectorPhi(); +}; + +class SabreDetGeometry { + + public: + + SabreDetGeometry(double iRinner_flat, + double iRouter_flat, + double ideltaPhi_flat, + double ibeamPhi_central, + double itiltFromVertical, + double idistFromTarget, + double xoffset=0, + double yoffset=0); + ~SabreDetGeometry(); + + double Get_Ring_Flat_X(int ch, int corner); + double Get_Ring_Flat_Y(int ch, int corner); + double Get_Ring_Flat_Z(int ch, int corner); + double Get_Ring_Flat_R(int ch, int corner); + double Get_Ring_Flat_Theta(int ch, int corner); + double Get_Ring_Flat_Phi(int ch, int corner); + + double Get_Wedge_Flat_X(int ch, int corner); + double Get_Wedge_Flat_Y(int ch, int corner); + double Get_Wedge_Flat_Z(int ch, int corner); + double Get_Wedge_Flat_R(int ch, int corner); + double Get_Wedge_Flat_Theta(int ch, int corner); + double Get_Wedge_Flat_Phi(int ch, int corner); + + double Get_Ring_Tilted_X(int ch, int corner); + double Get_Ring_Tilted_Y(int ch, int corner); + double Get_Ring_Tilted_Z(int ch, int corner); + double Get_Ring_Tilted_R(int ch, int corner); + double Get_Ring_Tilted_Theta(int ch, int corner); + double Get_Ring_Tilted_Phi(int ch, int corner); + + double Get_Wedge_Tilted_X(int ch, int corner); + double Get_Wedge_Tilted_Y(int ch, int corner); + double Get_Wedge_Tilted_Z(int ch, int corner); + double Get_Wedge_Tilted_R(int ch, int corner); + double Get_Wedge_Tilted_Theta(int ch, int corner); + double Get_Wedge_Tilted_Phi(int ch, int corner); + + bool IsInside(double theta, double phi); + CartCoords GetTrajectoryCoordinates(double theta, double phi); + + void Recenter(double x, double y); + + + int NumRings(); + int NumWedges(); + + /*** Determine coordinates of the hit (ringch, wedgech) ***/ + CartCoords GetCoordinates(int ringch, int wedgech); + double GetScatteringAngle(int ringch, int wedgech); //shortcut to Scattering angle + + private: + + const int NUMRINGS; + const int NUMWEDGES; + + //detector corners + int rbc; //ring bottom channel + int rtc; //ring top channel + int wrc; //wedge right channel + int wlc; //wedge left channel + + double Rinner_flat; + double Router_flat; + double deltaR_flat; + double deltaR_flat_ring; + + double deltaPhi_flat; + double deltaPhi_flat_wedge; + + double beamPhi_central; + double tiltFromVertical; + double ZdistFromTarget; + double XdistFromTarget; + double YdistFromTarget; + + TRandom3* random; + //default storage is cartesian + //0=x, 1=y, 2=z + CartCoords **ringch_flat_cart; + CartCoords **wedgech_flat_cart; + + CartCoords **ringch_tilted_cart; + CartCoords **wedgech_tilted_cart; + + double Get_Cart(int fot, int row, int ch, int corner, int cart); + //fot = flat (0) or tilted (1) + //row = ring (0) or wedge (1) + + bool CheckRingChannel(int); + bool CheckWedgeChannel(int); + bool CheckCorner(int); + + bool CheckBothRing(int,int); + bool CheckBothWedge(int,int); + + /*** Perform transformation for arbitrary point on plane ***/ + double **XRotMatrix; //rotation about x-axis + double **ZRotMatrix; //rotation about z-axis + double **XRotMatrixInv; //inverse of x-rotation + double **ZRotMatrixInv; //inverse of z-rotation + CartCoords TransformVector(CartCoords vector); + CartCoords InverseTransformVector(CartCoords vector); + +}; + +#endif diff --git a/include/SabreEfficiency.h b/include/SabreEfficiency.h new file mode 100644 index 0000000..6177810 --- /dev/null +++ b/include/SabreEfficiency.h @@ -0,0 +1,40 @@ +#ifndef SABREEFFICIENCY_H +#define SABREEFFICIENCY_H + +#include "SabreDetector.h" + +class SabreEfficiency { +public: + SabreEfficiency(); + ~SabreEfficiency(); + inline void SetReactionType(int t) { m_rxn_type = t; }; + void CalculateEfficiency(const char* file); + +private: + void Run2Step(const char*); + void Run3Step(const char*); + void RunDecay(const char*); + + int m_rxn_type; + std::vector detectors; + + + //Sabre constants + const double INNER_R = 0.0326; + const double OUTER_R = 0.1351; + const double TILT = 40.0; + //const double DIST_2_TARG = 0.14549; + const double DIST_2_TARG = 0.1245; + const double PHI_COVERAGE = 54.4; //delta phi for each det + const double PHI0 = 36.0; //center phi values for each det in array + const double PHI1 = 108.0; //# is equal to detID in channel map + const double PHI2 = 324.0; + const double PHI3 = 252.0; + const double PHI4 = 180.0; + const double DEG2RAD = M_PI/180.0; + + const double ENERGY_THRESHOLD = 0.1; //in MeV + +}; + +#endif \ No newline at end of file diff --git a/include/Target.h b/include/Target.h new file mode 100644 index 0000000..84dcce3 --- /dev/null +++ b/include/Target.h @@ -0,0 +1,46 @@ +/* + +Target.h +A basic target unit for use in the SPANCRedux environment. A target +is defined as a single compound with elements Z,A of a given stoichiometry +Holds an energy loss class + +Based on code by D.W. Visser written at Yale for the original SPANC + +Written by G.W. McCann Aug. 2020 + +*/ +#ifndef TARGET_H +#define TARGET_H + +#include +#include +#include "EnergyLoss.h" + +class Target { + + public: + Target(double thick); + ~Target(); + void SetElements(std::vector& z, std::vector& a, std::vector& stoich); + bool ContainsElement(int z, int a); + double getEnergyLossTotal(int zp, int ap, double startEnergy, double angle); + double getEnergyLossHalf(int zp, int ap, double startEnergy, double angle); + double getReverseEnergyLossTotal(int zp, int ap, double finalEnergy, double angle); + double getReverseEnergyLossHalf(int zp, int ap, double finalEnergy, double angle); + double& GetThickness(); + int GetNumberOfElements(); + int GetElementZ(int index); + int GetElementA(int index); + int GetElementStoich(int index); + + + private: + EnergyLoss eloss; + double thickness; + std::vector Z, A, Stoich; + static constexpr double PI = 3.14159265358979323846; + +}; + +#endif diff --git a/include/ThreeStepSystem.h b/include/ThreeStepSystem.h new file mode 100644 index 0000000..d0270b9 --- /dev/null +++ b/include/ThreeStepSystem.h @@ -0,0 +1,27 @@ +#ifndef THREESTEPSYSTEM_H +#define THREESTEPSYSTEM_H + +#include "ReactionSystem.h" + +class ThreeStepSystem : public ReactionSystem { +public: + ThreeStepSystem(); + ThreeStepSystem(std::vector& z, std::vector& a); + ~ThreeStepSystem(); + bool SetNuclei(std::vector& z, std::vector& a); + void RunSystem(); + + inline const Nucleus& GetBreakup1() const { return step2.GetEjectile(); }; + inline const Nucleus& GetBreakup2() const { return step2.GetResidual(); }; + inline const Nucleus& GetBreakup3() const { return step3.GetEjectile(); }; + inline const Nucleus& GetBreakup4() const { return step3.GetResidual(); }; + +protected: + void LinkTarget(); + void SetSystemEquation(); + + Reaction step2, step3; + +}; + +#endif \ No newline at end of file diff --git a/include/TwoStepSystem.h b/include/TwoStepSystem.h new file mode 100644 index 0000000..527f454 --- /dev/null +++ b/include/TwoStepSystem.h @@ -0,0 +1,25 @@ +#ifndef TWOSTEPSYSTEM_H +#define TWOSTEPSYSTEM_H + +#include "ReactionSystem.h" + +class TwoStepSystem : public ReactionSystem { +public: + TwoStepSystem(); + TwoStepSystem(std::vector& z, std::vector& a); + ~TwoStepSystem(); + bool SetNuclei(std::vector& z, std::vector& a); + void RunSystem(); + + inline const Nucleus& GetBreakup1() const { return step2.GetEjectile(); }; + inline const Nucleus& GetBreakup2() const { return step2.GetResidual(); }; + +private: + void LinkTarget(); + void SetSystemEquation(); + + Reaction step2; + +}; + +#endif \ No newline at end of file diff --git a/input.txt b/input.txt new file mode 100644 index 0000000..4d9ad3e --- /dev/null +++ b/input.txt @@ -0,0 +1,31 @@ +----------Data Information---------- +OutputFile: /Volumes/LaCie/test_newkine.root +SaveTree: yes +SavePlots: yes +----------Reaction Information---------- +ReactionType: 0 +Z A (order is target, projectile, ejectile, break1, break3) +5 9 +0 0 +1 1 +----------Target Information---------- +Name: test_targ +Layers: 2 +~Layer1 +Thickness(ug/cm^2): 0 +Z A Stoich +6 12 1 +0 +~ +~Layer2 +Thickness(ug/cm^2): 0 +Z A Stoich +5 9 1 +0 +~ +----------Sampling Information---------- +NumberOfSamples: 1000000 +BeamMeanEnergy(MeV): 24 BeamEnergySigma(MeV): 0.001 +EjectileThetaMin(deg): 20.0 EjectileThetaMax(deg): 20.0 +ResidualExMean(MeV): 16.708 ResidualExSigma(MeV): 0.038 +-------------------------------------- diff --git a/makefile b/makefile new file mode 100644 index 0000000..c05336a --- /dev/null +++ b/makefile @@ -0,0 +1,49 @@ +CC=g++ +ROOTGEN=rootcint +CFLAGS=-std=c++11 -g -Wall `root-config --cflags` +CPPFLAGS=-I ./include +LDFLAGS=`root-config --glibs` + +ROOTINCLDIR=./ +INCLDIR=./include +SRCDIR=./src +OBJDIR=./objs +BINDIR=./bin + +SRC=$(wildcard $(SRCDIR)/*.cpp) +OBJS=$(SRC:$(SRCDIR)/%.cpp=$(OBJDIR)/%.o) + +TPOBJ=objs/testplots.o +TPEXE=tp + +DICTOBJ=$(OBJDIR)/kinematics_dict.o +DICTSRC=$(SRCDIR)/kinematics_dict.cxx +DICT_PAGES=$(INCLDIR)/Kinematics.h $(INCLDIR)/LinkDef_Kinematics.h + +EXE=$(BINDIR)/kinematics + +CLEANUP=$(EXE) $(OBJS) $(DICTOBJ) $(DICTSRC) $(TPOBJ) + +.PHONY: all clean + +all: $(EXE) $(TPEXE) + +$(EXE): $(DICTOBJ) $(OBJS) + $(CC) $(CFLAGS) $^ -o $@ $(LDFLAGS) + +$(TPEXE): ./objs/SabreDetector.o $(TPOBJ) + $(CC) $(CFLAGS) $^ -o $@ $(LDFLAGS) + +$(DICTOBJ): $(DICTSRC) + $(CC) $(CFLAGS) $(CPPFLAGS) -I $(ROOTINCLDIR) -c $^ -o $@ + mv $(SRCDIR)/*.pcm $(BINDIR) + +$(DICTSRC): $(DICT_PAGES) + $(ROOTGEN) -f $@ $^ + +VPATH= $(SRCDIR):./testplots/ +$(OBJDIR)/%.o: %.cpp + $(CC) $(CFLAGS) $(CPPFLAGS) -c $^ -o $@ + +clean: + $(RM) $(CLEANUP) $(BINDIR)/%.pcm \ No newline at end of file diff --git a/objs/EnergyLoss.o b/objs/EnergyLoss.o new file mode 100644 index 0000000..a1a6e06 Binary files /dev/null and b/objs/EnergyLoss.o differ diff --git a/objs/G4Vec.o b/objs/G4Vec.o new file mode 100644 index 0000000..d15eaaf Binary files /dev/null and b/objs/G4Vec.o differ diff --git a/objs/Kinematics.o b/objs/Kinematics.o new file mode 100644 index 0000000..47c6f55 Binary files /dev/null and b/objs/Kinematics.o differ diff --git a/objs/LayeredTarget.o b/objs/LayeredTarget.o new file mode 100644 index 0000000..19698c1 Binary files /dev/null and b/objs/LayeredTarget.o differ diff --git a/objs/MassLookup.o b/objs/MassLookup.o new file mode 100644 index 0000000..add8fd0 Binary files /dev/null and b/objs/MassLookup.o differ diff --git a/objs/Nucleus.o b/objs/Nucleus.o new file mode 100644 index 0000000..2408e2d Binary files /dev/null and b/objs/Nucleus.o differ diff --git a/objs/Plotter.o b/objs/Plotter.o new file mode 100644 index 0000000..123b0c1 Binary files /dev/null and b/objs/Plotter.o differ diff --git a/objs/Reaction.o b/objs/Reaction.o new file mode 100644 index 0000000..2790a72 Binary files /dev/null and b/objs/Reaction.o differ diff --git a/objs/ReactionSystem.o b/objs/ReactionSystem.o new file mode 100644 index 0000000..c0d76a6 Binary files /dev/null and b/objs/ReactionSystem.o differ diff --git a/objs/SabreDetector.o b/objs/SabreDetector.o new file mode 100644 index 0000000..3ec2618 Binary files /dev/null and b/objs/SabreDetector.o differ diff --git a/objs/SabreEfficiency.o b/objs/SabreEfficiency.o new file mode 100644 index 0000000..c899e43 Binary files /dev/null and b/objs/SabreEfficiency.o differ diff --git a/objs/Target.o b/objs/Target.o new file mode 100644 index 0000000..2da8e88 Binary files /dev/null and b/objs/Target.o differ diff --git a/objs/ThreeStepSystem.o b/objs/ThreeStepSystem.o new file mode 100644 index 0000000..a23279c Binary files /dev/null and b/objs/ThreeStepSystem.o differ diff --git a/objs/TwoStepSystem.o b/objs/TwoStepSystem.o new file mode 100644 index 0000000..2e95a5f Binary files /dev/null and b/objs/TwoStepSystem.o differ diff --git a/objs/kinematics_dict.o b/objs/kinematics_dict.o new file mode 100644 index 0000000..f92b232 Binary files /dev/null and b/objs/kinematics_dict.o differ diff --git a/objs/main.o b/objs/main.o new file mode 100644 index 0000000..07fd81d Binary files /dev/null and b/objs/main.o differ diff --git a/objs/testplots.o b/objs/testplots.o new file mode 100644 index 0000000..eb367b2 Binary files /dev/null and b/objs/testplots.o differ diff --git a/src/EnergyLoss.cpp b/src/EnergyLoss.cpp new file mode 100644 index 0000000..057bbed --- /dev/null +++ b/src/EnergyLoss.cpp @@ -0,0 +1,234 @@ +/* + +EnergyLoss.cpp +Code for calculating the energy loss of a charged, massive particle through an arbitrary medium. +Based on code written by D.W. Visser at Yale for the original SPANC. Uses energy loss calulations +described by Ziegler in various SRIM textbooks. + +Written by G.W. McCann Aug. 2020 + +*/ + +#include "EnergyLoss.h" +#include "KinematicsExceptions.h" +#include + +EnergyLoss::EnergyLoss() { + comp_denom = 0; + ZP = -1; +} + +EnergyLoss::~EnergyLoss() {} + +/*Targets are defined by their atomic number, total number of nucleons, and their stoichiometry within the target compound*/ +void EnergyLoss::SetTargetComponents(std::vector& Zt, std::vector& At, std::vector& Stoich) { + comp_denom = 0; + ZT = Zt; + AT = At; + for(unsigned int i=0; i MAX_Z) { + throw ELossException(); + } + } + targ_composition.resize(Stoich.size()); + for(unsigned int i=0; i MAX_FRACTIONAL_STEP /*&& e_step >= E_PRECISION_LIMIT*/) { + x_step *= 0.5; + e_step = GetTotalStoppingPower(e_final)*x_step/1000.0; + } else if((x_step + x_traversed) >= thickness) { //last chunk + go = false; + x_step = thickness - x_traversed; //get valid portion of last chunk + e_final -= GetTotalStoppingPower(e_final)*x_step/1000.0; + if(e_final <= e_threshold) { + return e_initial; + } + } else { + x_traversed += x_step; + e_step = GetTotalStoppingPower(e_final)*x_step/1000.0; + e_final -= e_step; + if(e_final <= e_threshold) { + return e_initial; + } + } + } + return e_initial - e_final; +} + +/* + Returns units of MeV; thickness in ug/cm^2; e_final in units of MeV + Energy loss going through the target using energy of particle after traversal +*/ +double EnergyLoss::GetReverseEnergyLoss(int zp, int ap, double e_final, double thickness) { + if( ZP != zp) { + ZP = zp; + AP = ap; + MP = MASS.FindMass(ZP, AP)*MEV2U; + } + + double e_initial = e_final; + double x_traversed = 0.0; + double x_step = 0.25*thickness; //initial step in x + double e_step = GetTotalStoppingPower(e_initial)*x_step/1000.0; //initial step in E + + bool go = true; + while(go) { + if(e_step/e_initial > MAX_FRACTIONAL_STEP) { + x_step *= 0.5; + e_step = GetTotalStoppingPower(e_initial)*x_step/1000.0; + } else if (x_traversed+x_step > thickness) { + go = false; + x_step = thickness - x_traversed; + e_initial += GetTotalStoppingPower(e_initial)*x_step/1000.0; + } else { + x_traversed += x_step; + e_step = GetTotalStoppingPower(e_initial)*x_step/1000.0; + e_initial += e_step; + } + } + + return e_initial-e_final; +} + +/* + Returns units of keV/(ug/cm^2) + Calculates Electronic stopping power by first calculating SE for hydrogen through the target and then using + corrections to calculate SE for projectile of interest +*/ +double EnergyLoss::GetElectronicStoppingPower(double energy) { + //Wants in units of keV + energy *= 1000.0; + double e_per_u = energy/MP; + std::vector values; + if(e_per_u > MAX_H_E_PER_U) { + throw ELossException(); + } else if (e_per_u > 1000.0) { + for(auto& z: ZT) { + values.push_back(Hydrogen_dEdx_High(e_per_u, energy, z)); + } + } else if (e_per_u > 10.0) { + for(auto& z: ZT) { + values.push_back(Hydrogen_dEdx_Med(e_per_u, z)); + } + } else if (e_per_u > 0.0) { + for(auto& z: ZT) { + values.push_back(Hydrogen_dEdx_Low(e_per_u, z)); + } + } else { + throw ELossException(); + } + + if(values.size() == 0) { + throw ELossException(); + } + + if(ZP > 1) { //not hydrogen, need to account for effective charge + for(unsigned int i=0; i0.0 ? (gamma - 1.0)/beta2 : 0.0; + + SetVectorCartesian(GetPx()+gfactor*bdotp*beta[0]+gamma*beta[0]*GetE(), + GetPy()+gfactor*bdotp*beta[1]+gamma*beta[1]*GetE(), + GetPz()+gfactor*bdotp*beta[2]+gamma*beta[2]*GetE(), + gamma*(GetE() + bdotp)); +} + +double G4Vec::Dot(const G4Vec& rhs) const { + return GetE()*rhs.GetE() - GetPx()*rhs.GetPx() - GetPy()*rhs.GetPy() - GetPz()*rhs.GetPz(); +} + +G4Vec G4Vec::Cross(const G4Vec& rhs) const { + return G4Vec(); +} \ No newline at end of file diff --git a/src/Kinematics.cpp b/src/Kinematics.cpp new file mode 100644 index 0000000..960cfeb --- /dev/null +++ b/src/Kinematics.cpp @@ -0,0 +1,394 @@ +#include "Kinematics.h" +#include +#include + +Kinematics::Kinematics() : + sys(nullptr), save_tree_flag(false), do_plotter_flag(false), global_generator(new TRandom3(0)) +{ + std::cout<<"----------GWM Kinematics Simulation----------"<>junk>>m_outfile_name; + input>>junk>>junk; + if(junk == "yes") save_tree_flag = true; + input>>junk>>junk; + if(junk == "yes") do_plotter_flag = true; + + std::vector avec, zvec, svec; + int z, a, s; + getline(input, junk); + getline(input, junk); + input>>junk>>m_rxn_type; + getline(input, junk); + getline(input, junk); + switch(m_rxn_type) { + case 0: + { + sys = new ReactionSystem(); + m_rxn_type = ONESTEP_DECAY; + for(int i=0; i<3; i++) { + input>>z>>a; + avec.push_back(a); + zvec.push_back(z); + } + break; + } + case 1: + { + sys = new ReactionSystem(); + m_rxn_type = ONESTEP_RXN; + for(int i=0; i<3; i++) { + input>>z>>a; + avec.push_back(a); + zvec.push_back(z); + } + break; + } + case 2: + { + sys = new TwoStepSystem(); + m_rxn_type = TWOSTEP; + for(int i=0; i<4; i++) { + input>>z>>a; + avec.push_back(a); + zvec.push_back(z); + } + break; + } + case 3: + { + sys = new ThreeStepSystem(); + m_rxn_type = THREESTEP; + for(int i=0; i<5; i++) { + input>>z>>a; + avec.push_back(a); + zvec.push_back(z); + } + break; + } + default: + return false; + } + sys->SetNuclei(zvec, avec); + + int nlayers; + double thickness; + getline(input, junk); + getline(input, junk); + input>>junk>>junk; + input>>junk>>nlayers; + for(int i=0; i>junk>>junk>>thickness; + getline(input, junk); + getline(input, junk); + avec.clear(); zvec.clear(); svec.clear(); + while(input>>z) { + if(z == 0) break; + input>>a>>s; + zvec.push_back(z); avec.push_back(a); svec.push_back(s); + } + sys->AddTargetLayer(zvec, avec, svec, thickness); + input>>junk; + } + + double par1, par2; + getline(input, junk); + getline(input, junk); + + input>>junk>>m_nsamples; + input>>junk>>par1>>junk>>par2; + sys->SetBeamDistro(par1, par2); + input>>junk>>par1>>junk>>par2; + sys->SetTheta1Range(par1, par2); + input>>junk>>par1>>junk>>par2; + sys->SetExcitationDistro(par1, par2); + sys->SetRandomGenerator(global_generator); + + std::cout<<"Reaction equation: "<Branch("target", &targ); + tree->Branch("projectile", &proj); + tree->Branch("ejectile", &eject); + tree->Branch("residual", &residual); + } + + //For progress tracking + int percent5 = 0.05*m_nsamples; + int count = 0; + int npercent = 0; + + for(int i=0; iRunSystem(); + if(save_tree_flag) { + targ = ConvertNucleus(sys->GetTarget()); + proj = ConvertNucleus(sys->GetProjectile()); + eject = ConvertNucleus(sys->GetEjectile()); + residual = ConvertNucleus(sys->GetResidual()); + tree->Fill(); + } + if(do_plotter_flag) { + plotman.FillData(sys->GetTarget()); + plotman.FillData(sys->GetProjectile()); + plotman.FillData(sys->GetEjectile()); + plotman.FillData(sys->GetResidual()); + } + } + + output->cd(); + if(save_tree_flag) tree->Write(tree->GetName(), TObject::kOverwrite); + if(do_plotter_flag) { + plotman.GetTable()->Write(); + plotman.ClearTable(); + } + output->Close(); +} + +void Kinematics::RunOneStepDecay() { + + TFile* output = TFile::Open(m_outfile_name.c_str(), "RECREATE"); + TTree* tree; + NucData targ, eject, residual; + if(save_tree_flag) { + tree = new TTree("DataTree","DataTree"); + tree->Branch("target", &targ); + tree->Branch("ejectile", &eject); + tree->Branch("residual", &residual); + } + + //For progress tracking + int percent5 = 0.05*m_nsamples; + int count = 0; + int npercent = 0; + + for(int i=0; iRunSystem(); + if(save_tree_flag) { + targ = ConvertNucleus(sys->GetTarget()); + eject = ConvertNucleus(sys->GetEjectile()); + residual = ConvertNucleus(sys->GetResidual()); + tree->Fill(); + } + if(do_plotter_flag) { + plotman.FillData(sys->GetTarget()); + plotman.FillData(sys->GetEjectile()); + plotman.FillData(sys->GetResidual()); + } + } + + output->cd(); + if(save_tree_flag) tree->Write(tree->GetName(), TObject::kOverwrite); + if(do_plotter_flag) { + plotman.GetTable()->Write(); + plotman.ClearTable(); + } + output->Close(); +} + +void Kinematics::RunTwoStep() { + + TwoStepSystem* this_sys = dynamic_cast(sys); + if(this_sys == nullptr) { + return; + } + + TFile* output = TFile::Open(m_outfile_name.c_str(), "RECREATE"); + TTree* tree; + NucData targ, proj, eject, residual, break1, break2; + if(save_tree_flag) { + tree = new TTree("DataTree","DataTree"); + tree->Branch("target", &targ); + tree->Branch("projectile", &proj); + tree->Branch("ejectile", &eject); + tree->Branch("residual", &residual); + tree->Branch("breakup1", &break1); + tree->Branch("breakup2", &break2); + } + + //For progress tracking + int percent5 = 0.05*m_nsamples; + int count = 0; + int npercent = 0; + + for(int i=0; iRunSystem(); + if(save_tree_flag) { + targ = ConvertNucleus(this_sys->GetTarget()); + proj = ConvertNucleus(this_sys->GetProjectile()); + eject = ConvertNucleus(this_sys->GetEjectile()); + residual = ConvertNucleus(this_sys->GetResidual()); + break1 = ConvertNucleus(this_sys->GetBreakup1()); + break2 = ConvertNucleus(this_sys->GetBreakup2()); + tree->Fill(); + } + if(do_plotter_flag) { + plotman.FillData(this_sys->GetTarget()); + plotman.FillData(this_sys->GetProjectile()); + plotman.FillData(this_sys->GetEjectile()); + plotman.FillData(this_sys->GetResidual()); + plotman.FillData(this_sys->GetBreakup1()); + plotman.FillData(this_sys->GetBreakup2()); + } + } + + output->cd(); + if(save_tree_flag) tree->Write(tree->GetName(), TObject::kOverwrite); + if(do_plotter_flag) { + plotman.GetTable()->Write(); + plotman.ClearTable(); + } + output->Close(); +} + +void Kinematics::RunThreeStep() { + + ThreeStepSystem* this_sys = dynamic_cast(sys); + if(this_sys == nullptr) { + return; + } + + TFile* output = TFile::Open(m_outfile_name.c_str(), "RECREATE"); + TTree* tree; + NucData targ, proj, eject, residual, break1, break2, break3, break4; + if(save_tree_flag) { + tree = new TTree("DataTree","DataTree"); + tree->Branch("target", &targ); + tree->Branch("projectile", &proj); + tree->Branch("ejectile", &eject); + tree->Branch("residual", &residual); + tree->Branch("breakup1", &break1); + tree->Branch("breakup2", &break2); + tree->Branch("breakup3", &break3); + tree->Branch("breakup4", &break4); + } + + //For progress updating + int percent5 = 0.05*m_nsamples; + int count = 0; + int npercent = 0; + + for(int i=0; iRunSystem(); + if(save_tree_flag) { + targ = ConvertNucleus(this_sys->GetTarget()); + proj = ConvertNucleus(this_sys->GetProjectile()); + eject = ConvertNucleus(this_sys->GetEjectile()); + residual = ConvertNucleus(this_sys->GetResidual()); + break1 = ConvertNucleus(this_sys->GetBreakup1()); + break2 = ConvertNucleus(this_sys->GetBreakup2()); + break3 = ConvertNucleus(this_sys->GetBreakup3()); + break4 = ConvertNucleus(this_sys->GetBreakup4()); + tree->Fill(); + } + if(do_plotter_flag) { + plotman.FillData(this_sys->GetTarget()); + plotman.FillData(this_sys->GetProjectile()); + plotman.FillData(this_sys->GetEjectile()); + plotman.FillData(this_sys->GetResidual()); + plotman.FillData(this_sys->GetBreakup1()); + plotman.FillData(this_sys->GetBreakup2()); + plotman.FillData(this_sys->GetBreakup3()); + plotman.FillData(this_sys->GetBreakup4()); + } + } + + output->cd(); + if(save_tree_flag) tree->Write(tree->GetName(), TObject::kOverwrite); + if(do_plotter_flag) { + plotman.GetTable()->Write(); + plotman.ClearTable(); + } + output->Close(); +} \ No newline at end of file diff --git a/src/LayeredTarget.cpp b/src/LayeredTarget.cpp new file mode 100644 index 0000000..9be811c --- /dev/null +++ b/src/LayeredTarget.cpp @@ -0,0 +1,127 @@ +/* + +LayeredTarget.h +Functional unit for targets in the SPANCRedux environment. Contains a +set (read: vector) of Targets for use in reaction calculations. In this +way handles situations such as carbon backed targets + +Based on code by D.W. Visser written at Yale for the original SPANC + +Written by G.W. McCann Aug. 2020 + +*/ +#include "LayeredTarget.h" + +LayeredTarget::LayeredTarget() {} + +LayeredTarget::~LayeredTarget() {} + +/*Add in a Target made of a compound defined by a set of Zs, As, Ss, and a thickness*/ +void LayeredTarget::AddLayer(std::vector& Z, std::vector& A, std::vector& stoich, double thickness) { + Target t(thickness); + t.SetElements(Z, A, stoich); + layers.push_back(t); +} + +/* + Here projectile refers to the incoming reactant particle (i.e. the beam) + Calculates energy loss assuming that the reaction occurs in the middle of the target + Note that the layer order can matter! +*/ +double LayeredTarget::GetProjectileEnergyLoss(int zp, int ap, double startEnergy, int rxnLayer, double angle) { + + if(rxnLayer < 0 || rxnLayer > layers.size()) { + std::cerr<<"Reaction layer in eloss calculation is not in range! Returning 0"< layers.size()) { + std::cerr<<"Reaction layer in eloss calculation is not in range! Returning 0"< layers.size()) { + std::cerr<<"Reaction layer in eloss calculation is not in range! Returning 0"<=rxnLayer; i--) { + if(i == rxnLayer) { + eloss += layers[i].getReverseEnergyLossHalf(ze, ae, newEnergy, angle); + newEnergy = startEnergy + eloss; + } else { + eloss += layers[i].getReverseEnergyLossTotal(ze, ae, newEnergy, angle); + newEnergy = startEnergy + eloss; + } + } + + return eloss; +} + +/*Getters and Setters*/ + +int LayeredTarget::GetNumberOfLayers() { + return layers.size(); +} + +int LayeredTarget::FindLayerContaining(int Z, int A) { + for(unsigned int i=0; i>junk) { + massfile>>Z>>A>>element>>atomicMassBig>>atomicMassSmall; + isotopicMass = (atomicMassBig + atomicMassSmall*1e-6 - Z*electron_mass)*u_to_mev; + std::string key = "("+std::to_string(Z)+","+A+")"; + massTable[key] = isotopicMass; + elementTable[Z] = element; + } + } else { + throw MassFileException(); + } +} + +MassLookup::~MassLookup() {} + +//Returns nuclear mass in MeV +double MassLookup::FindMass(int Z, int A) { + std::string key = "("+std::to_string(Z)+","+std::to_string(A)+")"; + auto data = massTable.find(key); + if(data == massTable.end()) { + throw MassException(); + } + return data->second; + /*try { + double mass = massTable.at(key); + return mass; + } catch (std::out_of_range& oor) { + std::cerr<<"Mass of "<second; + return fullsymbol; + + /*try { + std::string element = elementTable.at(Z); + std::string fullsymbol = std::to_string(A) + element; + return fullsymbol; + } catch (std::out_of_range& oor) { + std::cerr<<"Atomic number: "<A) return false; + + m_z = Z; + m_a = A; + m_gs_mass = MASS.FindMass(Z, A); + m_symbol = MASS.FindSymbol(Z, A); + SetVectorCartesian(0,0,0,m_gs_mass); + return true; +} \ No newline at end of file diff --git a/src/Plotter.cpp b/src/Plotter.cpp new file mode 100644 index 0000000..96893d0 --- /dev/null +++ b/src/Plotter.cpp @@ -0,0 +1,81 @@ +#include "Plotter.h" + +Plotter::Plotter() : + table(new THashTable()) +{ +} + +Plotter::~Plotter() { + for(unsigned int i=0; iFindObject(name); + if(h) { + h->Fill(val); + } else { + h = new TH1F(name, title, bins, min, max); + h->Fill(val); + table->Add(h); + } +} + +void Plotter::MyFill(const char* name, const char* title, int binsx, float minx, float maxx, int binsy, float miny, float maxy, double valx, double valy) { + TH2F* h = (TH2F*) table->FindObject(name); + if(h) { + h->Fill(valx, valy); + } else { + h = new TH2F(name, title, binsx, minx, maxx, binsy, miny, maxy); + h->Fill(valx, valy); + table->Add(h); + } +} + +void Plotter::MyFill(const char* name, const char* title, double valx, double valy, int color) { + for(auto& g : graphs) { + if(g.name == name) { + g.xvec.push_back(valx); + g.yvec.push_back(valy); + return; + } + } + + GraphData new_g; + new_g.name = name; + new_g.title = title; + new_g.xvec.push_back(valx); + new_g.yvec.push_back(valy); + new_g.color = color; + + graphs.push_back(new_g); +} + +void Plotter::GenerateGraphs() { + for(auto& g : graphs) { + TGraph* graph = new TGraph(g.xvec.size(), &(g.xvec[0]), &(g.yvec[0])); + graph->SetName(g.name.c_str()); + graph->SetTitle(g.title.c_str()); + graph->SetMarkerColor(g.color); + table->Add(graph); + garbage_collection.push_back(graph); + } +} \ No newline at end of file diff --git a/src/Reaction.cpp b/src/Reaction.cpp new file mode 100644 index 0000000..51e1414 --- /dev/null +++ b/src/Reaction.cpp @@ -0,0 +1,159 @@ +#include "Reaction.h" +#include "KinematicsExceptions.h" + +Reaction::Reaction() : + target(nullptr), m_bke(0), m_theta(0), m_phi(0), m_ex(0), rxnLayer(0), nuc_initFlag(false), resid_elossFlag(false) +{ +} + +Reaction::Reaction(int zt, int at, int zp, int ap, int ze, int ae) : + target(nullptr), m_bke(0), m_theta(0), m_phi(0), m_ex(0), rxnLayer(0), resid_elossFlag(false) +{ + SetNuclei(zt, at, zp, ap, ze, ae); +} + +Reaction::~Reaction() +{ +} + +bool Reaction::Calculate() { + + if(!nuc_initFlag) return false; + + if(decayFlag) { + CalculateDecay(); + return true; + } else { + CalculateReaction(); + return true; + } +} + +//Deep copy of nucleus array +void Reaction::SetNuclei(const Nucleus* nucs) { + reactants[0] = nucs[0]; + reactants[1] = nucs[1]; + reactants[2] = nucs[2]; + reactants[3] = nucs[3]; + nuc_initFlag = true; +} + +void Reaction::SetNuclei(int zt, int at, int zp, int ap, int ze, int ae) { + int zr, ar; + reactants[0] = Nucleus(zt, at); + reactants[2] = Nucleus(ze, ae); + if(ap == 0) { + decayFlag = true; + zr = zt - ze; + ar = at - ae; + } else { + reactants[1] = Nucleus(zp, ap); + decayFlag = false; + zr = zt + zp - ze; + ar = at + ap - ae; + } + + if(zr < 0 || ar <= 0) { + nuc_initFlag = false; + } else { + reactants[3] = Nucleus(zr, ar); + nuc_initFlag = true; + } +} + +void Reaction::SetBeamKE(double bke) { + if(!nuc_initFlag) return; + else if(decayFlag) return; + m_bke = bke - target->GetProjectileEnergyLoss(reactants[1].GetZ(), reactants[1].GetA(), bke, rxnLayer, 0); +}; + +void Reaction::CalculateReaction() { + //Target assumed at rest, with 0 excitation energy + reactants[0].SetVectorCartesian(0.,0.,0.,reactants[0].GetGroundStateMass()); + double beam_pz = std::sqrt(m_bke*(m_bke + 2.0 * reactants[1].GetGroundStateMass())); + double beam_E = m_bke + reactants[1].GetGroundStateMass(); + reactants[1].SetVectorCartesian(0.,0.,beam_pz,beam_E); + + + double Q = reactants[0].GetGroundStateMass() + reactants[1].GetGroundStateMass() - (reactants[2].GetGroundStateMass() + reactants[3].GetGroundStateMass() + m_ex); + double term1 = sqrt(reactants[1].GetGroundStateMass()*reactants[2].GetGroundStateMass()*m_bke)/(reactants[2].GetGroundStateMass()+reactants[3].GetGroundStateMass())*cos(m_theta); + double term2 = (m_bke*(reactants[3].GetGroundStateMass() - reactants[1].GetGroundStateMass()) + reactants[3].GetGroundStateMass()*Q)/(reactants[3].GetGroundStateMass() + reactants[2].GetGroundStateMass()); + double sqrt_pos_ejectKE = term1 + sqrt(term1*term1 + term2); + double sqrt_neg_ejectKE = term1 - sqrt(term1*term1 + term2); + double ejectKE; + if(sqrt_pos_ejectKE > 0) { + ejectKE = sqrt_pos_ejectKE*sqrt_pos_ejectKE; + } else { + ejectKE = sqrt_neg_ejectKE*sqrt_neg_ejectKE; + } + + double ejectP = std::sqrt(ejectKE*(ejectKE + 2.0 * reactants[2].GetGroundStateMass())); + double ejectE = ejectKE + reactants[2].GetGroundStateMass(); + + reactants[2].SetVectorSpherical(m_theta, m_phi, ejectP, ejectE); + + reactants[3] = reactants[0] + reactants[1] - reactants[2]; + + //energy loss for ejectile (after reaction!) + ejectKE -= target->GetEjectileEnergyLoss(reactants[2].GetZ(), reactants[2].GetA(), ejectKE, rxnLayer, m_theta); + ejectP = std::sqrt(ejectKE*(ejectKE + 2.0 * reactants[2].GetGroundStateMass())); + ejectE = ejectKE + reactants[2].GetGroundStateMass(); + reactants[2].SetVectorSpherical(m_theta, m_phi, ejectP, ejectE); + + //if on, get eloss for residual (after reaction!) + if(resid_elossFlag) { + double residKE = reactants[3].GetKE() - target->GetEjectileEnergyLoss(reactants[3].GetZ(), reactants[3].GetA(), reactants[3].GetKE(), rxnLayer, reactants[3].GetTheta()); + double residP = std::sqrt(residKE*(residKE + 2.0*reactants[3].GetInvMass())); + double residE = residKE + reactants[3].GetInvMass(); + reactants[3].SetVectorSpherical(reactants[3].GetTheta(), reactants[3].GetPhi(), residP, residE); + } + +} + +void Reaction::CalculateDecay() { + + double Q = reactants[0].GetInvMass() - reactants[2].GetGroundStateMass() - reactants[3].GetGroundStateMass(); + if(Q < 0) { + throw QValueException(); + } + + const double* boost = reactants[0].GetBoost(); + double boost2cm[3]; + double boost2lab[3]; + for(int i=0; i<3; i++) { + boost2lab[i] = boost[i]; + boost2cm[i] = boost[i]*(-1.0); + } + + reactants[0].ApplyBoost(&(boost2cm[0])); + double ejectE_cm = (reactants[2].GetGroundStateMass()*reactants[2].GetGroundStateMass() - reactants[3].GetGroundStateMass()*reactants[3].GetGroundStateMass() + reactants[0].GetE()*reactants[0].GetE())/ + (2.0*reactants[0].GetE()); + double ejectP_cm = std::sqrt(ejectE_cm*ejectE_cm - reactants[2].GetGroundStateMass()*reactants[2].GetGroundStateMass()); + + reactants[2].SetVectorSpherical(m_theta, m_phi, ejectP_cm, ejectE_cm); + + reactants[0].ApplyBoost(boost2lab); + reactants[2].ApplyBoost(boost2lab); + + reactants[3] = reactants[0] - reactants[2]; + + //energy loss for the *light* break up nucleus + double ejectKE = reactants[2].GetKE() - target->GetEjectileEnergyLoss(reactants[2].GetZ(), reactants[2].GetA(), reactants[2].GetKE(), rxnLayer, reactants[2].GetTheta()); + double ejectP = std::sqrt(ejectKE*(ejectKE + 2.0*reactants[2].GetGroundStateMass())); + double ejectE = ejectKE + reactants[2].GetGroundStateMass(); + reactants[2].SetVectorSpherical(reactants[2].GetTheta(), reactants[2].GetPhi(), ejectP, ejectE); + + //if on, get eloss for *heavy* break up nucleus + if(resid_elossFlag) { + + double residKE = reactants[3].GetKE() - target->GetEjectileEnergyLoss(reactants[3].GetZ(), reactants[3].GetA(), reactants[3].GetKE(), rxnLayer, reactants[3].GetTheta()); + double residP = std::sqrt(residKE*(residKE + 2.0*reactants[3].GetInvMass())); + double residE = residKE + reactants[3].GetInvMass(); + reactants[3].SetVectorSpherical(reactants[3].GetTheta(), reactants[3].GetPhi(), residP, residE); + } +} + + + + + diff --git a/src/ReactionSystem.cpp b/src/ReactionSystem.cpp new file mode 100644 index 0000000..469e5ff --- /dev/null +++ b/src/ReactionSystem.cpp @@ -0,0 +1,88 @@ +#include "ReactionSystem.h" +#include "KinematicsExceptions.h" +#include + +ReactionSystem::ReactionSystem() : + m_beamDist(0,0), m_theta1Range(0,0), m_exDist(0,0), generator(nullptr), target_set_flag(false), gen_set_flag(false), rxnLayer(0), m_sys_equation("") +{ +} + +ReactionSystem::ReactionSystem(std::vector& z, std::vector& a) : + m_beamDist(0,0), m_theta1Range(0,0), m_exDist(0,0), generator(nullptr), target_set_flag(false), gen_set_flag(false), rxnLayer(0), m_sys_equation("") +{ + SetNuclei(z, a); +} + +ReactionSystem::~ReactionSystem() { + +} + +bool ReactionSystem::SetNuclei(std::vector&z, std::vector& a) { + if(z.size() != a.size() || z.size() < 3) { + return false; + } + + step1.SetNuclei(z[0], a[0], z[1], a[1], z[2], a[2]); + SetSystemEquation(); + return true; +} + +void ReactionSystem::AddTargetLayer(std::vector& zt, std::vector& at, std::vector& stoich, double thickness) { + target.AddLayer(zt, at, stoich, thickness); +} + +void ReactionSystem::LinkTarget() { + step1.SetLayeredTarget(&target); + + rxnLayer = target.FindLayerContaining(step1.GetTarget().GetZ(), step1.GetTarget().GetA()); + if(rxnLayer != -1) { + step1.SetRxnLayer(rxnLayer); + target_set_flag = true; + } else { + throw ReactionLayerException(); + } +} + +void ReactionSystem::SetSystemEquation() { + m_sys_equation = step1.GetTarget().GetIsotopicSymbol(); + m_sys_equation += "("; + m_sys_equation += step1.GetProjectile().GetIsotopicSymbol(); + m_sys_equation += ", "; + m_sys_equation += step1.GetEjectile().GetIsotopicSymbol(); + m_sys_equation += ")"; + m_sys_equation += step1.GetResidual().GetIsotopicSymbol(); +} + +void ReactionSystem::RunSystem() { + if(!gen_set_flag) return; + + //Link up the target if it hasn't been done yet + if(!target_set_flag) { + LinkTarget(); + } + + if(step1.IsDecay()) { + double rxnTheta = acos(generator->Uniform(-1, 1)); + double rxnPhi = generator->Uniform(0, 2.0*M_PI); + step1.SetPolarRxnAngle(rxnTheta); + step1.SetAzimRxnAngle(rxnPhi); + + step1.TurnOnResidualEloss(); + step1.Calculate(); + } else { + //Sample parameters + double bke = generator->Gaus(m_beamDist.first, m_beamDist.second); + double rxnTheta = acos(generator->Uniform(cos(m_theta1Range.first), cos(m_theta1Range.second))); + double rxnPhi = 0; + double residEx = generator->Gaus(m_exDist.first, m_exDist.second); + + step1.SetBeamKE(bke); + step1.SetPolarRxnAngle(rxnTheta); + step1.SetAzimRxnAngle(rxnPhi); + step1.SetExcitation(residEx); + + step1.TurnOnResidualEloss(); + step1.Calculate(); + } + +} \ No newline at end of file diff --git a/src/SabreDetector.cpp b/src/SabreDetector.cpp new file mode 100644 index 0000000..51c7c00 --- /dev/null +++ b/src/SabreDetector.cpp @@ -0,0 +1,653 @@ +#include "SabreDetector.h" + +#include +#include + +using namespace std; + +/* + Distances in meters, angles in radians. + + The channel arrays have four points, one for each corner. The corners are + as follows, as if looking BACK along beam (i.e. from the target's pov): + + 0---------------------1 + | | + | | y + | | ^ + | | | + | | | + 3---------------------2 -----> x + (z is hence positive along beam direction) + + The channel numbers, also as looking back from target pov, are: + + >> rings are 0 -- 15 from inner to outer: + + 15 ------------------- + 14 ------------------- + 13 ------------------- + . + . + . + 2 ------------------- + 1 ------------------- + 0 ------------------- + + >> wedges are 0 -- 7 moving counterclockwise: + + 7 6 ... 1 0 + | | | | | | + | | | | | | + | | | | | | + | | | | | | + | | | | | | + | | | | | | + + ***note that these are for ARRAY storage, and may not necessarily + correspond to the PHYSICAL channels; this will need to be taken + into account if used in actual data analysis + + -- kgh, March 2020 + +*/ + +SabreDetGeometry::SabreDetGeometry(double iRinner_flat, + double iRouter_flat, + double ideltaPhi_flat, + double ibeamPhi_central, + double itiltFromVertical, + double idistFromTarget, + double xoffset, + double yoffset) : + NUMRINGS(16), NUMWEDGES(8) { + + rbc = 0; //ring bottom channel + rtc = NUMRINGS-1; //ring top channel + wrc = 0; //wedge right channel + wlc = NUMWEDGES-1; //wedge left channel + + Rinner_flat = iRinner_flat; + Router_flat = iRouter_flat; + deltaR_flat = iRouter_flat - iRinner_flat; + deltaR_flat_ring = deltaR_flat/NUMRINGS; + + deltaPhi_flat = ideltaPhi_flat; + deltaPhi_flat_wedge = deltaPhi_flat/NUMWEDGES; + + beamPhi_central = ibeamPhi_central; + tiltFromVertical = itiltFromVertical; + + //this distance from target is from the CENTRAL point of + //the detector, i.e. the center of the "circle" which the + //detector forms. NOTE: these are all assumed to be negative! + ZdistFromTarget = idistFromTarget; + XdistFromTarget = xoffset; + YdistFromTarget = yoffset; + + random = new TRandom3(); + random->SetSeed(); + + ringch_flat_cart = new CartCoords*[NUMRINGS]; + wedgech_flat_cart = new CartCoords*[NUMWEDGES]; + ringch_tilted_cart = new CartCoords*[NUMRINGS]; + wedgech_tilted_cart = new CartCoords*[NUMWEDGES]; + for (int i=0; i= 0 && ich < NUMRINGS) ? true : false); +} + +bool SabreDetGeometry::CheckWedgeChannel(int ich) { + return ((ich >= 0 && ich < NUMWEDGES) ? true: false); +} + +bool SabreDetGeometry::CheckCorner(int icn) { + return ((icn >= 0 && icn < 4) ? true : false); +} + +bool SabreDetGeometry::CheckBothRing(int ich, int icn) { + return (CheckRingChannel(ich)&&CheckCorner(icn)); +} + +bool SabreDetGeometry::CheckBothWedge(int ich, int icn) { + return (CheckWedgeChannel(ich)&&CheckCorner(icn)); +} + +/*Method by which the coordinates of a hit in a wedge/ring pixel are calculated. + *Currently, takes the center of the pixel as the value of a pixel hit, could be altered + *to take a uniformly sampled random point with in the pixel + */ +CartCoords SabreDetGeometry::GetCoordinates(int ringch, int wedgech) { + if(!CheckRingChannel(ringch) || !CheckWedgeChannel(wedgech)) { + CartCoords temp; + temp.x = 0; + temp.y = 0; + temp.z = 0; + return temp; + } + //define pixel by its center (half way between top and bottom radius, halfway between left and right phi) + //EDIT GWM: July 2020 change to randomize the location within the sabre pixel + double rcenter = Rinner_flat + deltaR_flat_ring*(ringch + random->Uniform(0.0, 1.0)); + double phi_center = deltaPhi_flat/2.0-(wedgech + random->Uniform(0.0, 1.0))*deltaPhi_flat_wedge; + + CartCoords PixelCenter; + PixelCenter.x = rcenter*sin(phi_center); + PixelCenter.y = rcenter*cos(phi_center); + PixelCenter.z = 0; + + //return coords in final orientation + return TransformVector(PixelCenter); +} + +CartCoords SabreDetGeometry::TransformVector(CartCoords vector) { + CartCoords xrot_vector, xzrot_vector, xzrot_t_vector; + std::cout<<"Starting coords -- x: "< phi_min && phi < phi_max) { + passed = true; + } else { + return false; + } + + std::cout<<" passed phi "<Router_flat || xy_radius phi_min && phi_in_detector < phi_max) { + wedgechan = i; + break; + } + } + if(wedgechan == -1) return temp; + + CartCoords innerPosition_flat, innerPosition_tilt; + CartCoords outerPosition_flat, outerPosition_tilt; + double r_inner, r_outer; + double theta_min, theta_max; + //Since we passed phi, use the phi coordinate to calculate the point at the "top" and + //bottom of the detector at the given phi, then transform to the lampshade frame. + for(int i=0; i=theta_min) { + ringchan = i; + break; + } + } + if(ringchan == -1) return temp; + + return GetCoordinates(ringchan, wedgechan); +} + +//Coordinate functions +double CartCoords::GetTheta() { + double r = std::sqrt(std::pow(x, 2.) + std::pow(y, 2.) + std::pow(z, 2.)); + return std::acos(z/r); +} + +double CartCoords::GetR() { + return std::sqrt(std::pow(x, 2.) + std::pow(y, 2.) + std::pow(z, 2.)); +} + +double CartCoords::GetPhi() { + /*double r = std::sqrt(std::pow(x, 2.) + std::pow(y, 2.)); + if((x >= 0 && y >= 0) || (x <= 0 && y >= 0)) return std::acos(x/r); + else if((x <= 0 && y <= 0) || (x >= 0 && y <= 0)) return (2.0*M_PI - std::acos(x/r)); + else return 0.0;*/ + double phi = std::atan2(y, x); + if(phi<0) phi += M_PI*2.0; + return phi; +} + +double CartCoords::GetDetectorPhi() { + /*double r = std::sqrt(std::pow(x, 2.) + std::pow(y, 2.)); + if((x >= 0 && y >= 0) || (x <= 0 && y >= 0)) return std::acos(x/r); + else if((x <= 0 && y <= 0) || (x >= 0 && y <= 0)) return (2.0*M_PI - std::acos(x/r)); + else return 0.0;*/ + double phi = std::atan2(x, y); + if(phi<0) phi += M_PI*2.0; + return phi; +} + diff --git a/src/SabreEfficiency.cpp b/src/SabreEfficiency.cpp new file mode 100644 index 0000000..24ddb36 --- /dev/null +++ b/src/SabreEfficiency.cpp @@ -0,0 +1,262 @@ +#include "SabreEfficiency.h" +#include "Kinematics.h" +#include +#include +#include +#include +#include +#include +#include + +SabreEfficiency::SabreEfficiency() : + m_rxn_type(-1) +{ + detectors.reserve(5); + detectors.emplace_back(INNER_R,OUTER_R,PHI_COVERAGE*DEG2RAD,PHI0*DEG2RAD,TILT*DEG2RAD,DIST_2_TARG); + detectors.emplace_back(INNER_R,OUTER_R,PHI_COVERAGE*DEG2RAD,PHI1*DEG2RAD,TILT*DEG2RAD,DIST_2_TARG); + detectors.emplace_back(INNER_R,OUTER_R,PHI_COVERAGE*DEG2RAD,PHI2*DEG2RAD,TILT*DEG2RAD,DIST_2_TARG); + detectors.emplace_back(INNER_R,OUTER_R,PHI_COVERAGE*DEG2RAD,PHI3*DEG2RAD,TILT*DEG2RAD,DIST_2_TARG); + detectors.emplace_back(INNER_R,OUTER_R,PHI_COVERAGE*DEG2RAD,PHI4*DEG2RAD,TILT*DEG2RAD,DIST_2_TARG); +} + +SabreEfficiency::~SabreEfficiency() {} + +void SabreEfficiency::CalculateEfficiency(const char* file) { + std::cout<<"----------SABRE Efficiency Calculation----------"<Get("DataTree"); + + NucData* eject = new NucData(); + NucData* resid = new NucData(); + + + tree->SetBranchAddress("ejectile", &eject); + tree->SetBranchAddress("residual", &resid); + + double nevents = tree->GetEntries(); + std::vector resid_thetas, eject_thetas; + std::vector resid_phis, eject_phis; + std::vector resid_kes, eject_kes; + + //Progress tracking + int percent5 = nevents*0.05; + int count = 0; + int npercent = 0; + + for(int i=0; iGetEntries(); i++) { + if(++count == percent5) {//Show progress every 5% + npercent++; + count = 0; + std::cout<<"\rPercent completed: "<GetEntry(i); + + if(eject->KE >= ENERGY_THRESHOLD) { + for(auto& det : detectors) { + if(det.IsInside(eject->theta, eject->phi)) { + eject_thetas.push_back(eject->theta); + eject_phis.push_back(eject->phi); + eject_kes.push_back(eject->KE); + break; + } + } + } + + if(resid->KE > ENERGY_THRESHOLD) { + for(auto& det : detectors) { + if(det.IsInside(resid->theta, resid->phi)) { + resid_thetas.push_back(resid->theta); + resid_phis.push_back(resid->phi); + resid_kes.push_back(resid->KE); + break; + } + } + } + + } + + double ejecteff = ((double) eject_thetas.size())/nevents; + double resideff = ((double) resid_thetas.size())/nevents; + TParameter eject_eff("Light Breakup Efficiency", ejecteff); + TParameter resid_eff("Heavy Breakup Efficiency", resideff); + + input->cd(); + eject_eff.Write(); + resid_eff.Write(); + input->Close(); +} + +void SabreEfficiency::Run2Step(const char* file) { + + TFile* input = TFile::Open(file, "UPDATE"); + TTree* tree = (TTree*) input->Get("DataTree"); + + NucData* break1 = new NucData(); + NucData* break2 = new NucData(); + + + tree->SetBranchAddress("breakup1", &break1); + tree->SetBranchAddress("breakup2", &break2); + + double nevents = tree->GetEntries(); + std::vector b1_thetas, b2_thetas; + std::vector b1_phis, b2_phis; + std::vector b1_kes, b2_kes; + + //Progress tracking + int percent5 = nevents*0.05; + int count = 0; + int npercent = 0; + + for(int i=0; iGetEntries(); i++) { + if(++count == percent5) {//Show progress every 5% + npercent++; + count = 0; + std::cout<<"\rPercent completed: "<GetEntry(i); + + if(break1->KE >= ENERGY_THRESHOLD) { + for(auto& det : detectors) { + if(det.IsInside(break1->theta, break1->phi)) { + b1_thetas.push_back(break1->theta); + b1_phis.push_back(break1->phi); + b1_kes.push_back(break1->KE); + break; + } + } + } + + if(break2->KE > ENERGY_THRESHOLD) { + for(auto& det : detectors) { + if(det.IsInside(break2->theta, break2->phi)) { + b2_thetas.push_back(break2->theta); + b2_phis.push_back(break2->phi); + b2_kes.push_back(break2->KE); + break; + } + } + } + + } + + double b1eff = ((double) b1_thetas.size())/nevents; + double b2eff = ((double) b2_thetas.size())/nevents; + TParameter break1_eff("Light Breakup Efficiency", b1eff); + TParameter break2_eff("Heavy Breakup Efficiency", b2eff); + + input->cd(); + break1_eff.Write(); + break2_eff.Write(); + input->Close(); + +} + +void SabreEfficiency::Run3Step(const char* file) { + TFile* input = TFile::Open(file, "UPDATE"); + TTree* tree = (TTree*) input->Get("DataTree"); + + NucData* break1 = new NucData(); + NucData* break3 = new NucData(); + NucData* break4 = new NucData(); + + + tree->SetBranchAddress("breakup1", &break1); + tree->SetBranchAddress("breakup3", &break3); + tree->SetBranchAddress("breakup4", &break4); + + double nevents = tree->GetEntries(); + std::vector b1_thetas, b3_thetas, b4_thetas; + std::vector b1_phis, b3_phis, b4_phis; + std::vector b1_kes, b3_kes, b4_kes; + + //Progress tracking + int percent5 = nevents*0.05; + int count = 0; + int npercent = 0; + + for(int i=0; iGetEntries(); i++) { + if(++count == percent5) {//Show progress every 5% + npercent++; + count = 0; + std::cout<<"\rPercent completed: "<GetEntry(i); + + if(break1->KE > ENERGY_THRESHOLD) { + for(auto& det : detectors) { + if(det.IsInside(break1->theta, break1->phi)) { + b1_thetas.push_back(break1->theta); + b1_phis.push_back(break1->phi); + b1_kes.push_back(break1->KE); + break; + } + } + } + + + if(break3->KE > ENERGY_THRESHOLD) { + for(auto& det : detectors) { + if(det.IsInside(break3->theta, break3->phi)) { + b3_thetas.push_back(break3->theta); + b3_phis.push_back(break3->phi); + b3_kes.push_back(break3->KE); + break; + } + } + } + + if(break4->KE > ENERGY_THRESHOLD) { + for(auto& det : detectors) { + if(det.IsInside(break4->theta, break4->phi)) { + b4_thetas.push_back(break4->theta); + b4_phis.push_back(break4->phi); + b4_kes.push_back(break4->KE); + break; + } + } + } + } + + double b1eff = ((double) b1_thetas.size())/nevents; + double b3eff = ((double) b3_thetas.size())/nevents; + double b4eff = ((double) b4_thetas.size())/nevents; + TParameter break1_eff("Light Initial Breakup Efficiency", b1eff); + TParameter break3_eff("Light Final Breakup Efficiency", b3eff); + TParameter break4_eff("Heavy Final Breakup Efficiency", b4eff); + + input->cd(); + break1_eff.Write(); + break3_eff.Write(); + break4_eff.Write(); + input->Close(); +} \ No newline at end of file diff --git a/src/Target.cpp b/src/Target.cpp new file mode 100644 index 0000000..fffd480 --- /dev/null +++ b/src/Target.cpp @@ -0,0 +1,84 @@ +/* + +Target.cpp +A basic target unit for use in the SPANCRedux environment. A target +is defined as a single compound with elements Z,A of a given stoichiometry +Holds an energy loss class + +Based on code by D.W. Visser written at Yale for the original SPANC + +Written by G.W. McCann Aug. 2020 + +*/ +#include "Target.h" + +/*Targets must be of known thickness*/ +Target::Target(double thick) { + thickness = thick; +} + +Target::~Target() { +} + +/*Set target elements of given Z, A, S*/ +void Target::SetElements(std::vector& z, std::vector& a, std::vector& stoich) { + Z = z; + A = a; + Stoich = stoich; + + eloss.SetTargetComponents(Z, A, Stoich); +} + +/*Element verification*/ +bool Target::ContainsElement(int z, int a) { + for(unsigned int i=0; i& z, std::vector& a) : + ReactionSystem() +{ + SetNuclei(z, a); +} + +ThreeStepSystem::~ThreeStepSystem() { + +} + +bool ThreeStepSystem::SetNuclei(std::vector&z, std::vector& a) { + if(z.size() != a.size() || z.size() < 5) { + return false; + } + int zr = z[0] + z[1] - z[2]; + int zb2 = zr - z[3]; + int ar = a[0] + a[1] - a[2]; + int ab2 = ar - a[3]; + + step1.SetNuclei(z[0], a[0], z[1], a[1], z[2], a[2]); + step2.SetNuclei(zr, ar, 0, 0, z[3], a[3]); + step3.SetNuclei(zb2, ab2, 0, 0, z[4], a[4]); + SetSystemEquation(); + return true; +} + +void ThreeStepSystem::LinkTarget() { + step1.SetLayeredTarget(&target); + step2.SetLayeredTarget(&target); + step3.SetLayeredTarget(&target); + + rxnLayer = target.FindLayerContaining(step1.GetTarget().GetZ(), step1.GetTarget().GetA()); + if(rxnLayer != -1) { + step1.SetRxnLayer(rxnLayer); + step2.SetRxnLayer(rxnLayer); + step3.SetRxnLayer(rxnLayer); + target_set_flag = true; + } else { + throw ReactionLayerException(); + } +} + +void ThreeStepSystem::SetSystemEquation() { + m_sys_equation = step1.GetTarget().GetIsotopicSymbol(); + m_sys_equation += "("; + m_sys_equation += step1.GetProjectile().GetIsotopicSymbol(); + m_sys_equation += ", "; + m_sys_equation += step1.GetEjectile().GetIsotopicSymbol(); + m_sys_equation += ")"; + m_sys_equation += step1.GetResidual().GetIsotopicSymbol(); + m_sys_equation += "-> "; + m_sys_equation += step2.GetEjectile().GetIsotopicSymbol(); + m_sys_equation += " + "; + m_sys_equation += step2.GetResidual().GetIsotopicSymbol(); + m_sys_equation += "-> "; + m_sys_equation += step3.GetEjectile().GetIsotopicSymbol(); + m_sys_equation += " + "; + m_sys_equation += step3.GetResidual().GetIsotopicSymbol(); +} + +void ThreeStepSystem::RunSystem() { + if(!gen_set_flag) return; + + //Link up the target if it hasn't been done yet + if(!target_set_flag) { + LinkTarget(); + } + + //Sample parameters + double bke = generator->Gaus(m_beamDist.first, m_beamDist.second); + double rxnTheta = acos(generator->Uniform(cos(m_theta1Range.first), cos(m_theta1Range.second))); + double rxnPhi = 0; + double decay1Theta = acos(generator->Uniform(-1, 1)); + double decay1Phi = generator->Uniform(0, M_PI*2.0); + double decay2Theta = acos(generator->Uniform(-1,1)); + double decay2Phi = generator->Uniform(0, M_PI*2.0); + double residEx = generator->Gaus(m_exDist.first, m_exDist.second); + + step1.SetBeamKE(bke); + step1.SetPolarRxnAngle(rxnTheta); + step1.SetAzimRxnAngle(rxnPhi); + step1.SetExcitation(residEx); + + step2.SetPolarRxnAngle(decay1Theta); + step2.SetAzimRxnAngle(decay1Phi); + + step3.SetPolarRxnAngle(decay2Theta); + step3.SetAzimRxnAngle(decay2Phi); + + step1.Calculate(); + + step2.SetTarget(step1.GetResidual()); + step2.Calculate(); + + step3.SetTarget(step2.GetResidual()); + step3.TurnOnResidualEloss(); + step3.Calculate(); + +} \ No newline at end of file diff --git a/src/TwoStepSystem.cpp b/src/TwoStepSystem.cpp new file mode 100644 index 0000000..308440a --- /dev/null +++ b/src/TwoStepSystem.cpp @@ -0,0 +1,90 @@ +#include "TwoStepSystem.h" +#include "KinematicsExceptions.h" + +TwoStepSystem::TwoStepSystem() : + ReactionSystem() +{ +} + +TwoStepSystem::TwoStepSystem(std::vector& z, std::vector& a) : + ReactionSystem() +{ + SetNuclei(z, a); +} + +TwoStepSystem::~TwoStepSystem() { + +} + +bool TwoStepSystem::SetNuclei(std::vector&z, std::vector& a) { + if(z.size() != a.size() || z.size() < 4) { + return false; + } + int zr = z[0] + z[1] - z[2]; + int ar = a[0] + a[1] - a[2]; + + step1.SetNuclei(z[0], a[0], z[1], a[1], z[2], a[2]); + step2.SetNuclei(zr, ar, 0, 0, z[3], a[3]); + SetSystemEquation(); + return true; +} + +void TwoStepSystem::LinkTarget() { + step1.SetLayeredTarget(&target); + step2.SetLayeredTarget(&target); + + rxnLayer = target.FindLayerContaining(step1.GetTarget().GetZ(), step1.GetTarget().GetA()); + if(rxnLayer != -1) { + step1.SetRxnLayer(rxnLayer); + step2.SetRxnLayer(rxnLayer); + target_set_flag = true; + } else { + throw ReactionLayerException(); + } +} + +void TwoStepSystem::SetSystemEquation() { + m_sys_equation = step1.GetTarget().GetIsotopicSymbol(); + m_sys_equation += "("; + m_sys_equation += step1.GetProjectile().GetIsotopicSymbol(); + m_sys_equation += ", "; + m_sys_equation += step1.GetEjectile().GetIsotopicSymbol(); + m_sys_equation += ")"; + m_sys_equation += step1.GetResidual().GetIsotopicSymbol(); + m_sys_equation += "-> "; + m_sys_equation += step2.GetEjectile().GetIsotopicSymbol(); + m_sys_equation += "+"; + m_sys_equation += step2.GetResidual().GetIsotopicSymbol(); +} + +void TwoStepSystem::RunSystem() { + if(!gen_set_flag) return; + + //Link up the target if it hasn't been done yet + if(!target_set_flag) { + LinkTarget(); + } + + //Sample parameters + double bke = generator->Gaus(m_beamDist.first, m_beamDist.second); + double rxnTheta = acos(generator->Uniform(cos(m_theta1Range.first), cos(m_theta1Range.second))); + double rxnPhi = 0; + double decay1Theta = acos(generator->Uniform(-1, 1)); + double decay1Phi = generator->Uniform(0, M_PI*2.0); + double residEx = generator->Gaus(m_exDist.first, m_exDist.second); + + step1.SetBeamKE(bke); + step1.SetPolarRxnAngle(rxnTheta); + step1.SetAzimRxnAngle(rxnPhi); + step1.SetExcitation(residEx); + + step2.SetPolarRxnAngle(decay1Theta); + step2.SetAzimRxnAngle(decay1Phi); + + step1.Calculate(); + + step2.SetTarget(step1.GetResidual()); + step2.TurnOnResidualEloss(); + step2.Calculate(); + +} \ No newline at end of file diff --git a/src/kinematics_dict.cxx b/src/kinematics_dict.cxx new file mode 100644 index 0000000..48b0e94 --- /dev/null +++ b/src/kinematics_dict.cxx @@ -0,0 +1,160 @@ +// Do NOT change. Changes will be lost next time file is generated + +#define R__DICTIONARY_FILENAME srcdIkinematics_dict +#define R__NO_DEPRECATION + +/*******************************************************************/ +#include +#include +#include +#include +#include +#define G__DICTIONARY +#include "RConfig.h" +#include "TClass.h" +#include "TDictAttributeMap.h" +#include "TInterpreter.h" +#include "TROOT.h" +#include "TBuffer.h" +#include "TMemberInspector.h" +#include "TInterpreter.h" +#include "TVirtualMutex.h" +#include "TError.h" + +#ifndef G__ROOT +#define G__ROOT +#endif + +#include "RtypesImp.h" +#include "TIsAProxy.h" +#include "TFileMergeInfo.h" +#include +#include "TCollectionProxyInfo.h" +/*******************************************************************/ + +#include "TDataMember.h" + +// The generated code does not explicitly qualifies STL entities +namespace std {} using namespace std; + +// Header files passed as explicit arguments +#include "include/Kinematics.h" + +// Header files passed via #pragma extra_include + +namespace ROOT { + static TClass *NucData_Dictionary(); + static void NucData_TClassManip(TClass*); + static void *new_NucData(void *p = 0); + static void *newArray_NucData(Long_t size, void *p); + static void delete_NucData(void *p); + static void deleteArray_NucData(void *p); + static void destruct_NucData(void *p); + + // Function generating the singleton type initializer + static TGenericClassInfo *GenerateInitInstanceLocal(const ::NucData*) + { + ::NucData *ptr = 0; + static ::TVirtualIsAProxy* isa_proxy = new ::TIsAProxy(typeid(::NucData)); + static ::ROOT::TGenericClassInfo + instance("NucData", "include/Kinematics.h", 13, + typeid(::NucData), ::ROOT::Internal::DefineBehavior(ptr, ptr), + &NucData_Dictionary, isa_proxy, 4, + sizeof(::NucData) ); + instance.SetNew(&new_NucData); + instance.SetNewArray(&newArray_NucData); + instance.SetDelete(&delete_NucData); + instance.SetDeleteArray(&deleteArray_NucData); + instance.SetDestructor(&destruct_NucData); + return &instance; + } + TGenericClassInfo *GenerateInitInstance(const ::NucData*) + { + return GenerateInitInstanceLocal((::NucData*)0); + } + // Static variable to force the class initialization + static ::ROOT::TGenericClassInfo *_R__UNIQUE_DICT_(Init) = GenerateInitInstanceLocal((const ::NucData*)0x0); R__UseDummy(_R__UNIQUE_DICT_(Init)); + + // Dictionary for non-ClassDef classes + static TClass *NucData_Dictionary() { + TClass* theClass =::ROOT::GenerateInitInstanceLocal((const ::NucData*)0x0)->GetClass(); + NucData_TClassManip(theClass); + return theClass; + } + + static void NucData_TClassManip(TClass* ){ + } + +} // end of namespace ROOT + +namespace ROOT { + // Wrappers around operator new + static void *new_NucData(void *p) { + return p ? new(p) ::NucData : new ::NucData; + } + static void *newArray_NucData(Long_t nElements, void *p) { + return p ? new(p) ::NucData[nElements] : new ::NucData[nElements]; + } + // Wrapper around operator delete + static void delete_NucData(void *p) { + delete ((::NucData*)p); + } + static void deleteArray_NucData(void *p) { + delete [] ((::NucData*)p); + } + static void destruct_NucData(void *p) { + typedef ::NucData current_t; + ((current_t*)p)->~current_t(); + } +} // end of namespace ROOT for class ::NucData + +namespace { + void TriggerDictionaryInitialization_kinematics_dict_Impl() { + static const char* headers[] = { +"include/Kinematics.h", +0 + }; + static const char* includePaths[] = { +"/usr/local/root/include/", +"/Users/gordonmccann/Desktop/kinematics/", +0 + }; + static const char* fwdDeclCode = R"DICTFWDDCLS( +#line 1 "kinematics_dict dictionary forward declarations' payload" +#pragma clang diagnostic ignored "-Wkeyword-compat" +#pragma clang diagnostic ignored "-Wignored-attributes" +#pragma clang diagnostic ignored "-Wreturn-type-c-linkage" +extern int __Cling_AutoLoading_Map; +struct __attribute__((annotate("$clingAutoload$include/Kinematics.h"))) NucData; +)DICTFWDDCLS"; + static const char* payloadCode = R"DICTPAYLOAD( +#line 1 "kinematics_dict dictionary payload" + + +#define _BACKWARD_BACKWARD_WARNING_H +// Inline headers +#include "include/Kinematics.h" + +#undef _BACKWARD_BACKWARD_WARNING_H +)DICTPAYLOAD"; + static const char* classesHeaders[] = { +"NucData", payloadCode, "@", +nullptr +}; + static bool isInitialized = false; + if (!isInitialized) { + TROOT::RegisterModule("kinematics_dict", + headers, includePaths, payloadCode, fwdDeclCode, + TriggerDictionaryInitialization_kinematics_dict_Impl, {}, classesHeaders, /*hasCxxModule*/false); + isInitialized = true; + } + } + static struct DictInit { + DictInit() { + TriggerDictionaryInitialization_kinematics_dict_Impl(); + } + } __TheDictionaryInitializer; +} +void TriggerDictionaryInitialization_kinematics_dict() { + TriggerDictionaryInitialization_kinematics_dict_Impl(); +} diff --git a/src/main.cpp b/src/main.cpp new file mode 100644 index 0000000..b17d621 --- /dev/null +++ b/src/main.cpp @@ -0,0 +1,65 @@ +#include +#include "Kinematics.h" +#include "SabreEfficiency.h" +#include "KinematicsExceptions.h" + +#include +#include +#include +#include +#include + +int main(int argc, char** argv) { + if(argc<2) { + std::cerr<<"Incorrect number of arguments!"< detectors; + const double INNER_R = 0.0326; + const double OUTER_R = 0.1351; + const double TILT = 40.0; + const double DIST_2_TARG = 0.1245; + const double PHI_COVERAGE = 54.4; //delta phi for each det + const double PHI0 = 36.0; //center phi values for each det in array + const double PHI1 = 108.0; //# is equal to detID in channel map + const double PHI2 = 324.0; + const double PHI3 = 252.0; + const double PHI4 = 180.0; + const double DEG2RAD = M_PI/180.0; + + detectors.reserve(5); + detectors.emplace_back(INNER_R,OUTER_R,PHI_COVERAGE*DEG2RAD,PHI0*DEG2RAD,TILT*DEG2RAD,DIST_2_TARG); + detectors.emplace_back(INNER_R,OUTER_R,PHI_COVERAGE*DEG2RAD,PHI1*DEG2RAD,TILT*DEG2RAD,DIST_2_TARG); + detectors.emplace_back(INNER_R,OUTER_R,PHI_COVERAGE*DEG2RAD,PHI2*DEG2RAD,TILT*DEG2RAD,DIST_2_TARG); + detectors.emplace_back(INNER_R,OUTER_R,PHI_COVERAGE*DEG2RAD,PHI3*DEG2RAD,TILT*DEG2RAD,DIST_2_TARG); + detectors.emplace_back(INNER_R,OUTER_R,PHI_COVERAGE*DEG2RAD,PHI4*DEG2RAD,TILT*DEG2RAD,DIST_2_TARG); + + double theta = 145*M_PI/180.0; double phi = 92.1428*M_PI/180.0; + std::cout<<"theta: "< +#include +#include + +#include +#include +#include +#include +#include +#include + +#include "SabreDetector.h" + +using namespace std; + +int main() { + + const int NUMDETS = 5; + + SabreDetGeometry **sabdet = new SabreDetGeometry*[NUMDETS]; + + //dimensions common to all dets: + const double INNER_RADIUS = 0.0326; //meters + const double OUTER_RADIUS = 0.1351; //meters + const double TILT_FROM_VERTICAL = 40.0; //degrees + const double DIST_FROM_TARGET = 0.1245; //meters + + sabdet[0] = new SabreDetGeometry(INNER_RADIUS, + OUTER_RADIUS, + 54.4*M_PI/180., //delta phi + 36.*M_PI/180., //center phi + TILT_FROM_VERTICAL*M_PI/180., + DIST_FROM_TARGET); + sabdet[1] = new SabreDetGeometry(INNER_RADIUS, + OUTER_RADIUS, + 54.4*M_PI/180., + 108.*M_PI/180., + TILT_FROM_VERTICAL*M_PI/180., + DIST_FROM_TARGET); + sabdet[2] = new SabreDetGeometry(INNER_RADIUS, + OUTER_RADIUS, + 54.4*M_PI/180., + 180.*M_PI/180., + TILT_FROM_VERTICAL*M_PI/180., + DIST_FROM_TARGET); + sabdet[3] = new SabreDetGeometry(INNER_RADIUS, + OUTER_RADIUS, + 54.4*M_PI/180., + 252.*M_PI/180., + TILT_FROM_VERTICAL*M_PI/180., + DIST_FROM_TARGET); + sabdet[4] = new SabreDetGeometry(INNER_RADIUS, + OUTER_RADIUS, + 54.4*M_PI/180., + 324.*M_PI/180., + TILT_FROM_VERTICAL*M_PI/180., + DIST_FROM_TARGET); + + const int NUMCORNERS = 4; + const int NUMRINGS = sabdet[0]->NumRings(); + const int NUMWEDGES = sabdet[0]->NumWedges(); + + const int NUMRINGPTS = NUMDETS*NUMRINGS*NUMCORNERS; + const int NUMWEDGEPTS = NUMDETS*NUMWEDGES*NUMCORNERS; + + //const int NUMMCCOUNTS = 1E8; + + double ring_xpts_flat[NUMRINGPTS]; + double ring_ypts_flat[NUMRINGPTS]; + double ring_zpts_flat[NUMRINGPTS]; + double ring_rpts_flat[NUMRINGPTS]; + double ring_tpts_flat[NUMRINGPTS]; + double ring_ppts_flat[NUMRINGPTS]; + double wedge_xpts_flat[NUMWEDGEPTS]; + double wedge_ypts_flat[NUMWEDGEPTS]; + double wedge_zpts_flat[NUMWEDGEPTS]; + double wedge_rpts_flat[NUMWEDGEPTS]; + double wedge_tpts_flat[NUMWEDGEPTS]; + double wedge_ppts_flat[NUMWEDGEPTS]; + + double ring_xpts_tilted[NUMRINGPTS]; + double ring_ypts_tilted[NUMRINGPTS]; + double ring_zpts_tilted[NUMRINGPTS]; + double ring_rpts_tilted[NUMRINGPTS]; + double ring_tpts_tilted[NUMRINGPTS]; + double ring_ppts_tilted[NUMRINGPTS]; + double wedge_xpts_tilted[NUMWEDGEPTS]; + double wedge_ypts_tilted[NUMWEDGEPTS]; + double wedge_zpts_tilted[NUMWEDGEPTS]; + double wedge_rpts_tilted[NUMWEDGEPTS]; + double wedge_tpts_tilted[NUMWEDGEPTS]; + double wedge_ppts_tilted[NUMWEDGEPTS]; + + + ofstream checkfile; + checkfile.open("checkfile.txt"); + + checkfile << "RINGS\n" + << "det ch corner x_fl y_fl z_fl r_fl t_fl p_fl x_ti y_ti z_ti r_ti t_ti p_ti\n"; + for (int d=0; dGet_Ring_Flat_X(i,j)*100; + ring_ypts_flat[index] = sabdet[d]->Get_Ring_Flat_Y(i,j)*100; + ring_zpts_flat[index] = sabdet[d]->Get_Ring_Flat_Z(i,j)*100; + ring_rpts_flat[index] = sabdet[d]->Get_Ring_Flat_R(i,j)*100; + ring_tpts_flat[index] = sabdet[d]->Get_Ring_Flat_Theta(i,j)*180./M_PI; + ring_ppts_flat[index] = sabdet[d]->Get_Ring_Flat_Phi(i,j)*180./M_PI; + ring_xpts_tilted[index] = sabdet[d]->Get_Ring_Tilted_X(i,j)*100; + ring_ypts_tilted[index] = sabdet[d]->Get_Ring_Tilted_Y(i,j)*100; + ring_zpts_tilted[index] = sabdet[d]->Get_Ring_Tilted_Z(i,j)*100; + ring_rpts_tilted[index] = sabdet[d]->Get_Ring_Tilted_R(i,j)*100; + ring_tpts_tilted[index] = sabdet[d]->Get_Ring_Tilted_Theta(i,j)*180./M_PI; + ring_ppts_tilted[index] = sabdet[d]->Get_Ring_Tilted_Phi(i,j)*180./M_PI; + + checkfile << d << " " << i << " " << j << " " + << ring_xpts_flat[index] << " " + << ring_ypts_flat[index] << " " + << ring_zpts_flat[index] << " " + << ring_rpts_flat[index] << " " + << ring_tpts_flat[index] << " " + << ring_ppts_flat[index] << " " + << ring_xpts_tilted[index] << " " + << ring_ypts_tilted[index] << " " + << ring_zpts_tilted[index] << " " + << ring_rpts_tilted[index] << " " + << ring_tpts_tilted[index] << " " + << ring_ppts_tilted[index] << endl; + } + } + } + + checkfile << "WEDGES\n" + << "det ch corner x_fl y_fl z_fl r_fl t_fl p_fl x_ti y_ti z_ti r_ti t_ti p_ti\n"; + for (int d=0; dGet_Wedge_Flat_X(i,j)*100; + wedge_ypts_flat[index] = sabdet[d]->Get_Wedge_Flat_Y(i,j)*100; + wedge_zpts_flat[index] = sabdet[d]->Get_Wedge_Flat_Z(i,j)*100; + wedge_rpts_flat[index] = sabdet[d]->Get_Wedge_Flat_R(i,j)*100; + wedge_tpts_flat[index] = sabdet[d]->Get_Wedge_Flat_Theta(i,j)*180./M_PI; + wedge_ppts_flat[index] = sabdet[d]->Get_Wedge_Flat_Phi(i,j)*180./M_PI; + wedge_xpts_tilted[index] = sabdet[d]->Get_Wedge_Tilted_X(i,j)*100; + wedge_ypts_tilted[index] = sabdet[d]->Get_Wedge_Tilted_Y(i,j)*100; + wedge_zpts_tilted[index] = sabdet[d]->Get_Wedge_Tilted_Z(i,j)*100; + wedge_rpts_tilted[index] = sabdet[d]->Get_Wedge_Tilted_R(i,j)*100; + wedge_tpts_tilted[index] = sabdet[d]->Get_Wedge_Tilted_Theta(i,j)*180./M_PI; + wedge_ppts_tilted[index] = sabdet[d]->Get_Wedge_Tilted_Phi(i,j)*180./M_PI; + + checkfile << d << " " << i << " " << j << " " + << wedge_xpts_flat[index] << " " + << wedge_ypts_flat[index] << " " + << wedge_zpts_flat[index] << " " + << wedge_rpts_flat[index] << " " + << wedge_tpts_flat[index] << " " + << wedge_ppts_flat[index] << " " + << wedge_xpts_tilted[index] << " " + << wedge_ypts_tilted[index] << " " + << wedge_zpts_tilted[index] << " " + << wedge_rpts_tilted[index] << " " + << wedge_tpts_tilted[index] << " " + << wedge_ppts_tilted[index] << endl; + } + } + } + + checkfile.close(); + + /* + UNDER CONSTRUCTION: MC efficiency integration + + TRandom3 *rand = new TRandom3(); + rand->SetSeed(); + int hits=0; + bool didhit=false; + double randx=0; + double randy=0; + double randz=0; + double randr=0; + double randt=0; + double randp=0; + for (int mc=0; mcUniform(0,1); + randy = rand->Uniform(0,1); + randz = rand->Uniform(0,1); + randr = sqrt(pow(randx,2)+pow(randy,2)+pow(randz,2)); + randt = acos(randz/randr)*180./M_PI; + randp = atan(randy/randx)*180./M_PI; + if (randx <= 0 && randy >= 0) randp += 90; + else if (randx <= 0 && randy <= 0) randp += 90; + else if (randx >= 0 && randy <= 0) randp += 270; + else if (randx >= 0 && randy >= 0) randp += 270; + for (int d=0; dGet_Ring_Tilted_Theta(f,)) { + hit++; + didhit=true; + break; + } + } + } + } + } + cout << "Geom eff = " << 1.*hits/NUMMCCOUNTS*100 << "%" << endl; + */ + TGraph ring_flat_xy_gr(NUMRINGPTS,ring_xpts_flat,ring_ypts_flat); + ring_flat_xy_gr.SetMarkerStyle(2); + ring_flat_xy_gr.SetName("ring_flat_xy_gr"); + TGraph wedge_flat_xy_gr(NUMWEDGEPTS,wedge_xpts_flat,wedge_ypts_flat); + wedge_flat_xy_gr.SetMarkerStyle(2); + wedge_flat_xy_gr.SetName("wedge_flat_xy_gr"); + wedge_flat_xy_gr.SetTitle("Flat (Untilted);x (cm);y (cm)"); + TGraph ring_flat_zy_gr(NUMRINGPTS,ring_zpts_flat,ring_ypts_flat); + ring_flat_zy_gr.SetMarkerStyle(2); + ring_flat_zy_gr.SetName("ring_flat_zy_gr"); + TGraph wedge_flat_zy_gr(NUMWEDGEPTS,wedge_zpts_flat,wedge_ypts_flat); + wedge_flat_zy_gr.SetMarkerStyle(2); + wedge_flat_zy_gr.SetName("wedge_flat_zy_gr"); + wedge_flat_zy_gr.SetTitle("Flat (Untilted);z (cm);y (cm)"); + TGraph ring_flat_pt_gr(NUMRINGPTS,ring_ppts_flat,ring_tpts_flat); + ring_flat_pt_gr.SetMarkerStyle(2); + ring_flat_pt_gr.SetName("ring_flat_pt_gr"); + TGraph wedge_flat_pt_gr(NUMWEDGEPTS,wedge_ppts_flat,wedge_tpts_flat); + wedge_flat_pt_gr.SetMarkerStyle(2); + wedge_flat_pt_gr.SetName("wedge_flat_pt_gr"); + wedge_flat_pt_gr.SetTitle("Flat (Untilted);#phi (deg.);#theta (deg.)"); + TGraph2D ring_flat_2d_gr(NUMRINGPTS,ring_xpts_flat,ring_zpts_flat,ring_ypts_flat); + ring_flat_2d_gr.SetMarkerStyle(2); + ring_flat_2d_gr.SetName("ring_flat_2d_gr"); + TGraph2D wedge_flat_2d_gr(NUMWEDGEPTS,wedge_xpts_flat,wedge_zpts_flat,wedge_ypts_flat); + wedge_flat_2d_gr.SetMarkerStyle(2); + wedge_flat_2d_gr.SetName("wedge_flat_2d_gr"); + wedge_flat_2d_gr.SetTitle("Flat (Untilted);x (cm); z (cm); y (cm)"); + + TGraph ring_tilted_xy_gr(NUMRINGPTS,ring_xpts_tilted,ring_ypts_tilted); + ring_tilted_xy_gr.SetMarkerStyle(2); + ring_tilted_xy_gr.SetName("ring_tilted_xy_gr"); + TGraph wedge_tilted_xy_gr(NUMWEDGEPTS,wedge_xpts_tilted,wedge_ypts_tilted); + wedge_tilted_xy_gr.SetMarkerStyle(2); + wedge_tilted_xy_gr.SetName("wedge_tilted_xy_gr"); + wedge_tilted_xy_gr.SetTitle("Tilted;x (cm);y (cm)"); + TGraph ring_tilted_zy_gr(NUMRINGPTS,ring_zpts_tilted,ring_ypts_tilted); + ring_tilted_zy_gr.SetMarkerStyle(2); + ring_tilted_zy_gr.SetName("ring_tilted_zy_gr"); + TGraph wedge_tilted_zy_gr(NUMWEDGEPTS,wedge_zpts_tilted,wedge_ypts_tilted); + wedge_tilted_zy_gr.SetMarkerStyle(2); + wedge_tilted_zy_gr.SetName("wedge_tilted_zy_gr"); + wedge_tilted_zy_gr.SetTitle("Tilted;z (cm);y (cm)"); + TGraph ring_tilted_pt_gr(NUMRINGPTS,ring_ppts_tilted,ring_tpts_tilted); + ring_tilted_pt_gr.SetMarkerStyle(2); + ring_tilted_pt_gr.SetName("ring_tilted_pt_gr"); + TGraph wedge_tilted_pt_gr(NUMWEDGEPTS,wedge_ppts_tilted,wedge_tpts_tilted); + wedge_tilted_pt_gr.SetMarkerStyle(2); + wedge_tilted_pt_gr.SetName("wedge_tilted_pt_gr"); + wedge_tilted_pt_gr.SetTitle("Tilted;#phi (deg.);#theta (deg.)"); + TGraph2D ring_tilted_2d_gr(NUMRINGPTS,ring_xpts_tilted,ring_zpts_tilted,ring_ypts_tilted); + ring_tilted_2d_gr.SetMarkerStyle(2); + ring_tilted_2d_gr.SetName("ring_tilted_2d_gr"); + TGraph2D wedge_tilted_2d_gr(NUMWEDGEPTS,wedge_xpts_tilted,wedge_zpts_tilted,wedge_ypts_tilted); + wedge_tilted_2d_gr.SetMarkerStyle(2); + wedge_tilted_2d_gr.SetName("wedge_tilted_2d_gr"); + wedge_tilted_2d_gr.SetTitle("Tilted;x (cm); z (cm); y (cm)"); + + int nCenters = 5*16*8; + int nCent_det = 16*8; + double centerx[nCenters], centery[nCenters], centerz[nCenters]; + double **det_centx, **det_centy, **det_centz; + det_centx = new double*[5]; det_centy = new double*[5]; det_centz = new double*[5]; + for(int i=0; i<5; i++) { + det_centx[i] = new double[nCent_det]; + det_centy[i] = new double[nCent_det]; + det_centz[i] = new double[nCent_det]; + } + CartCoords point; + int index = 0; + int small_index; + for(int d=0; d<5; d++) { + small_index = 0; + for(int r=0; r<16; r++) { + for(int w=0; w<8; w++) { + point = sabdet[d]->GetCoordinates(r,w); + centerx[index] = point.x*100; + centery[index] = point.y*100; + centerz[index] = point.z*100; + + det_centx[d][small_index] = point.x*100; + det_centy[d][small_index] = point.y*100; + det_centz[d][small_index] = point.z*100; + index++; small_index++; + } + } + } + TGraph2D centerpoint(nCenters, ¢erx[0], ¢erz[0], ¢ery[0]); + centerpoint.SetName("centerpoint"); + centerpoint.SetTitle("centerpoint;x;z;y"); + centerpoint.SetMarkerStyle(2); + centerpoint.SetMarkerColor(2); + + TGraph2D centerpoint_d1(nCent_det, &(det_centx[0][0]), &(det_centz[0][0]), &(det_centy[0][0])); + centerpoint_d1.SetName("centerpoint_d1"); + centerpoint_d1.SetMarkerStyle(2); + centerpoint_d1.SetMarkerColor(1); + TGraph2D centerpoint_d2(nCent_det, &(det_centx[1][0]), &(det_centz[1][0]), &(det_centy[1][0])); + centerpoint_d2.SetName("centerpoint_d2"); + centerpoint_d2.SetMarkerStyle(2); + centerpoint_d2.SetMarkerColor(2); + TGraph2D centerpoint_d3(nCent_det, &(det_centx[2][0]), &(det_centz[2][0]), &(det_centy[2][0])); + centerpoint_d3.SetName("centerpoint_d3"); + centerpoint_d3.SetMarkerStyle(2); + centerpoint_d3.SetMarkerColor(3); + TGraph2D centerpoint_d4(nCent_det, &(det_centx[3][0]), &(det_centz[3][0]), &(det_centy[3][0])); + centerpoint_d4.SetName("centerpoint_d4"); + centerpoint_d4.SetMarkerStyle(2); + centerpoint_d4.SetMarkerColor(4); + TGraph2D centerpoint_d5(nCent_det, &(det_centx[4][0]), &(det_centz[4][0]), &(det_centy[4][0])); + centerpoint_d5.SetName("centerpoint_d5"); + centerpoint_d5.SetMarkerStyle(2); + centerpoint_d5.SetMarkerColor(5); + + TCanvas flat_xy_canv("flat_xy_canv"); + wedge_flat_xy_gr.Draw("AP"); + ring_flat_xy_gr.Draw("same P"); + TCanvas flat_zy_canv("flat_zy_canv"); + wedge_flat_zy_gr.Draw("AP"); + ring_flat_zy_gr.Draw("same P"); + TCanvas flat_pt_canv("flat_pt_canv"); + wedge_flat_pt_gr.Draw("AP"); + ring_flat_pt_gr.Draw("same P"); + TCanvas flat_2d_canv("flat_2d_canv"); + wedge_flat_2d_gr.Draw("P"); + ring_flat_2d_gr.Draw("same P"); + TCanvas tilted_xy_canv("tilted_xy_canv"); + wedge_tilted_xy_gr.Draw("AP"); + ring_tilted_xy_gr.Draw("same P"); + TCanvas tilted_zy_canv("tilted_zy_canv"); + wedge_tilted_zy_gr.Draw("AP"); + ring_tilted_zy_gr.Draw("same P"); + TCanvas tilted_pt_canv("tilted_pt_canv"); + wedge_tilted_pt_gr.Draw("AP"); + ring_tilted_pt_gr.Draw("same P"); + TCanvas tilted_2d_canv("tilted_2d_canv"); + wedge_tilted_2d_gr.Draw("P"); + ring_tilted_2d_gr.Draw("same P"); + centerpoint.Draw("same P"); + TCanvas tilted_point("tilted_point"); + centerpoint.Draw("P"); + TCanvas tilted_point_det("tilted_point_det"); + wedge_tilted_2d_gr.Draw("P"); + ring_tilted_2d_gr.Draw("same P"); + centerpoint_d1.Draw("P same"); + centerpoint_d2.Draw("P same"); + centerpoint_d3.Draw("P same"); + centerpoint_d4.Draw("P same"); + centerpoint_d5.Draw("P same"); + + TFile outfile("outfile.root","RECREATE"); + ring_flat_xy_gr.Write(); + wedge_flat_xy_gr.Write(); + flat_xy_canv.Write(); + ring_tilted_xy_gr.Write(); + wedge_tilted_xy_gr.Write(); + tilted_xy_canv.Write(); + ring_flat_zy_gr.Write(); + wedge_flat_zy_gr.Write(); + flat_zy_canv.Write(); + ring_tilted_zy_gr.Write(); + wedge_tilted_zy_gr.Write(); + tilted_zy_canv.Write(); + ring_flat_pt_gr.Write(); + wedge_flat_pt_gr.Write(); + flat_pt_canv.Write(); + ring_tilted_pt_gr.Write(); + wedge_tilted_pt_gr.Write(); + tilted_pt_canv.Write(); + ring_flat_2d_gr.Write(); + wedge_flat_2d_gr.Write(); + flat_2d_canv.Write(); + ring_tilted_2d_gr.Write(); + wedge_tilted_2d_gr.Write(); + tilted_2d_canv.Write(); + tilted_point.Write(); + tilted_point_det.Write(); + outfile.Close(); + + delete [] sabdet; + + return 0; + +} diff --git a/tp b/tp new file mode 100755 index 0000000..e6d29f8 Binary files /dev/null and b/tp differ