1{
2 lib,
3 stdenv,
4 fetchurl,
5 geant4,
6}:
7
8let
9 mkDataset =
10 {
11 pname,
12 version,
13 sha256,
14 envvar,
15 }:
16 stdenv.mkDerivation {
17 inherit pname version;
18 geant_version = geant4.version;
19
20 src = fetchurl {
21 url = "https://cern.ch/geant4-data/datasets/${pname}.${version}.tar.gz";
22 inherit sha256;
23 };
24
25 preferLocalBuild = true;
26 dontBuild = true;
27 dontConfigure = true;
28
29 datadir = "${placeholder "out"}/share/Geant4-${geant4.version}/data/${pname}${version}";
30 installPhase = ''
31 mkdir -p $datadir
32 mv ./* $datadir
33 '';
34
35 inherit envvar;
36 setupHook = ./datasets-hook.sh;
37
38 meta = with lib; {
39 description = "Data files for the Geant4 toolkit";
40 homepage = "https://geant4.web.cern.ch/support/download";
41 license = licenses.g4sl;
42 platforms = platforms.all;
43 };
44 };
45in
46builtins.listToAttrs (
47 map
48 (a: {
49 name = a.pname;
50 value = mkDataset a;
51 })
52 [
53 {
54 pname = "G4NDL";
55 version = "4.7.1";
56 sha256 = "sha256-06yuSGIhGNJXneJKVNUz+yQWvw2p3SiPFyTfFIWkbHw=";
57 envvar = "NEUTRONHP";
58 }
59
60 {
61 pname = "G4EMLOW";
62 version = "8.6.1";
63 sha256 = "sha256-SpNYjSYIDOHTNrlPdvravkkF+48cuiQVeVAj1s2PSoo=";
64 envvar = "LE";
65 }
66
67 {
68 pname = "G4PhotonEvaporation";
69 version = "6.1";
70 sha256 = "sha256-X/wfmagdUMkCAYbVmHSvc8U7okwYQrO4KzGIIjuyRvI=";
71 envvar = "LEVELGAMMA";
72 }
73
74 {
75 pname = "G4RadioactiveDecay";
76 version = "6.1.2";
77 sha256 = "sha256-pA1+Prxk01VVxKSdD/HglFzWBdhDVNBTEhKTkUyuoTo=";
78 envvar = "RADIOACTIVE";
79 }
80
81 {
82 pname = "G4SAIDDATA";
83 version = "2.0";
84 sha256 = "sha256-HSao55uqceRNV1m59Vpn6Lft4xdRMWqekDfYAJDHLpE=";
85 envvar = "SAIDXS";
86 }
87
88 {
89 pname = "G4PARTICLEXS";
90 version = "4.1";
91 sha256 = "sha256-B64eBI6ayOf5H2aWSX3VW9UMzIItl68aC56SMhKm19E=";
92 envvar = "PARTICLEXS";
93 }
94
95 {
96 pname = "G4ABLA";
97 version = "3.3";
98 sha256 = "sha256-HgQbMlLunO+IbWJPdT5pMwOqMtfl7zu6h7NPNtkuorE=";
99 envvar = "ABLA";
100 }
101
102 {
103 pname = "G4INCL";
104 version = "1.2";
105 sha256 = "sha256-+ICxYHPuCpLXSU8ydqbVLU3h02d6DUx8WHADlu0OGn4=";
106 envvar = "INCL";
107 }
108
109 {
110 pname = "G4PII";
111 version = "1.3";
112 sha256 = "sha256-YiWtkCZ19DgcmMa6JfxaBs6HVJqpeWNNPQNJHWYW6SY=";
113 envvar = "PII";
114 }
115
116 {
117 pname = "G4ENSDFSTATE";
118 version = "3.0";
119 sha256 = "sha256-S9w71Asx1DSFv0+H8FVwXlQKZVfWTthcaJxZyaTrp9Y=";
120 envvar = "ENSDFSTATE";
121 }
122
123 {
124 pname = "G4RealSurface";
125 version = "2.2";
126 sha256 = "sha256-mVTe4AEvUzEmf3g2kOkS5y21v1Lqm6vs0S6iIoIXaCA=";
127 envvar = "REALSURFACE";
128 }
129
130 {
131 pname = "G4TENDL";
132 version = "1.4";
133 sha256 = "sha256-S3J0AgzItO1Wm4ku8YwuCI7c22tm850lWFzO4l2XIeA=";
134 envvar = "PARTICLEHP";
135 }
136
137 {
138 pname = "G4CHANNELING";
139 version = "1.0";
140 sha256 = "sha256-ID48aZhMoJrNGBodMamw76+tS8EubGCPCwXmlRINZ/I=";
141 envvar = "CHANNELING";
142 }
143
144 {
145 pname = "G4NUDEXLIB";
146 version = "1.0";
147 sha256 = "sha256-ysfWXpxa+O26KyZn1YIuFqr5kGXJX4Bedt5MyGOV9BU=";
148 envvar = "NUDEXLIB";
149 }
150
151 {
152 pname = "G4URRPT";
153 version = "1.1";
154 sha256 = "sha256-ajQy24C8CIruGcUEucASSRMAXWNX6hSHBFFACrINnBE=";
155 envvar = "URRPT";
156 }
157 ]
158)