legend-pygeom-hades 0.1.0a0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- legend_pygeom_hades-0.1.0a0.dist-info/METADATA +62 -0
- legend_pygeom_hades-0.1.0a0.dist-info/RECORD +85 -0
- legend_pygeom_hades-0.1.0a0.dist-info/WHEEL +5 -0
- legend_pygeom_hades-0.1.0a0.dist-info/entry_points.txt +2 -0
- legend_pygeom_hades-0.1.0a0.dist-info/licenses/LICENSE +674 -0
- legend_pygeom_hades-0.1.0a0.dist-info/top_level.txt +1 -0
- pygeomhades/__init__.py +6 -0
- pygeomhades/_version.py +34 -0
- pygeomhades/cli.py +169 -0
- pygeomhades/configs/dummy_geom/B99000A.yaml +25 -0
- pygeomhades/configs/dummy_geom/C99000A.yaml +31 -0
- pygeomhades/configs/dummy_geom/P99000A.yaml +20 -0
- pygeomhades/configs/dummy_geom/V99000A.yaml +31 -0
- pygeomhades/configs/holder_wrap/B00000B.yaml +37 -0
- pygeomhades/configs/holder_wrap/B00000D.yaml +37 -0
- pygeomhades/configs/holder_wrap/B00002C.yaml +37 -0
- pygeomhades/configs/holder_wrap/B00032B.yaml +37 -0
- pygeomhades/configs/holder_wrap/B00035A.yaml +37 -0
- pygeomhades/configs/holder_wrap/B00035B.yaml +37 -0
- pygeomhades/configs/holder_wrap/B00061C.yaml +37 -0
- pygeomhades/configs/holder_wrap/B00076C.yaml +37 -0
- pygeomhades/configs/holder_wrap/B00091B.yaml +37 -0
- pygeomhades/configs/holder_wrap/V00048B.yaml +37 -0
- pygeomhades/configs/holder_wrap/V02160A.yaml +37 -0
- pygeomhades/configs/holder_wrap/V02160B.yaml +37 -0
- pygeomhades/configs/holder_wrap/V02162B.yaml +37 -0
- pygeomhades/configs/holder_wrap/V02166B.yaml +37 -0
- pygeomhades/configs/holder_wrap/V03421A.yaml +37 -0
- pygeomhades/configs/holder_wrap/V03422A.yaml +37 -0
- pygeomhades/configs/holder_wrap/V04199A.yaml +37 -0
- pygeomhades/configs/holder_wrap/V04545A.yaml +37 -0
- pygeomhades/configs/holder_wrap/V04549A.yaml +37 -0
- pygeomhades/configs/holder_wrap/V04549B.yaml +37 -0
- pygeomhades/configs/holder_wrap/V05261A.yaml +37 -0
- pygeomhades/configs/holder_wrap/V05261B.yaml +37 -0
- pygeomhades/configs/holder_wrap/V05266A.yaml +37 -0
- pygeomhades/configs/holder_wrap/V05266B.yaml +37 -0
- pygeomhades/configs/holder_wrap/V05267A.yaml +37 -0
- pygeomhades/configs/holder_wrap/V05267B.yaml +37 -0
- pygeomhades/configs/holder_wrap/V05268A.yaml +37 -0
- pygeomhades/configs/holder_wrap/V05268B.yaml +37 -0
- pygeomhades/configs/holder_wrap/V05612A.yaml +37 -0
- pygeomhades/configs/holder_wrap/V05612B.yaml +37 -0
- pygeomhades/configs/holder_wrap/V06643A.yaml +29 -0
- pygeomhades/configs/holder_wrap/V06649A.yaml +29 -0
- pygeomhades/configs/holder_wrap/V06659A.yaml +29 -0
- pygeomhades/configs/holder_wrap/V07298B.yaml +37 -0
- pygeomhades/configs/holder_wrap/V07302A.yaml +37 -0
- pygeomhades/configs/holder_wrap/V07302B.yaml +37 -0
- pygeomhades/configs/holder_wrap/V07646A.yaml +37 -0
- pygeomhades/configs/holder_wrap/V07647A.yaml +37 -0
- pygeomhades/configs/holder_wrap/V07647B.yaml +37 -0
- pygeomhades/configs/holder_wrap/V08682A.yaml +37 -0
- pygeomhades/configs/holder_wrap/V08682B.yaml +37 -0
- pygeomhades/configs/holder_wrap/V09372A.yaml +37 -0
- pygeomhades/configs/holder_wrap/V09374A.yaml +37 -0
- pygeomhades/configs/holder_wrap/V09724A.yaml +37 -0
- pygeomhades/configs/holder_wrap/V10437B.yaml +37 -0
- pygeomhades/configs/holder_wrap/V10447B.yaml +37 -0
- pygeomhades/configs/holder_wrap/V11924A.yaml +37 -0
- pygeomhades/configs/holder_wrap/V11925A.yaml +37 -0
- pygeomhades/configs/holder_wrap/V11947B.yaml +37 -0
- pygeomhades/configs/holder_wrap/V14673A.yaml +37 -0
- pygeomhades/configs/vis-scene.yaml +0 -0
- pygeomhades/core.py +275 -0
- pygeomhades/create_volumes.py +571 -0
- pygeomhades/dimensions.py +283 -0
- pygeomhades/metadata.py +28 -0
- pygeomhades/models/dummy/bottom_plate_dummy.gdml +44 -0
- pygeomhades/models/dummy/cryostat_dummy.gdml +57 -0
- pygeomhades/models/dummy/holder_bege_dummy.gdml +61 -0
- pygeomhades/models/dummy/holder_icpc_dummy.gdml +78 -0
- pygeomhades/models/dummy/lead_castle_table1_dummy.gdml +71 -0
- pygeomhades/models/dummy/lead_castle_table2_dummy.gdml +73 -0
- pygeomhades/models/dummy/source_am_collimated_dummy.gdml +97 -0
- pygeomhades/models/dummy/source_am_dummy.gdml +64 -0
- pygeomhades/models/dummy/source_ba_dummy.gdml +72 -0
- pygeomhades/models/dummy/source_co_dummy.gdml +71 -0
- pygeomhades/models/dummy/source_holder_am_dummy.gdml +73 -0
- pygeomhades/models/dummy/source_holder_dummy.gdml +61 -0
- pygeomhades/models/dummy/source_holder_th_lat_dummy.gdml +54 -0
- pygeomhades/models/dummy/source_th_dummy.gdml +134 -0
- pygeomhades/models/dummy/source_th_plates_dummy.gdml +36 -0
- pygeomhades/models/dummy/wrap_dummy.gdml +50 -0
- pygeomhades/utils.py +101 -0
pygeomhades/__init__.py
ADDED
pygeomhades/_version.py
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# file generated by setuptools-scm
|
|
2
|
+
# don't change, don't track in version control
|
|
3
|
+
|
|
4
|
+
__all__ = [
|
|
5
|
+
"__version__",
|
|
6
|
+
"__version_tuple__",
|
|
7
|
+
"version",
|
|
8
|
+
"version_tuple",
|
|
9
|
+
"__commit_id__",
|
|
10
|
+
"commit_id",
|
|
11
|
+
]
|
|
12
|
+
|
|
13
|
+
TYPE_CHECKING = False
|
|
14
|
+
if TYPE_CHECKING:
|
|
15
|
+
from typing import Tuple
|
|
16
|
+
from typing import Union
|
|
17
|
+
|
|
18
|
+
VERSION_TUPLE = Tuple[Union[int, str], ...]
|
|
19
|
+
COMMIT_ID = Union[str, None]
|
|
20
|
+
else:
|
|
21
|
+
VERSION_TUPLE = object
|
|
22
|
+
COMMIT_ID = object
|
|
23
|
+
|
|
24
|
+
version: str
|
|
25
|
+
__version__: str
|
|
26
|
+
__version_tuple__: VERSION_TUPLE
|
|
27
|
+
version_tuple: VERSION_TUPLE
|
|
28
|
+
commit_id: COMMIT_ID
|
|
29
|
+
__commit_id__: COMMIT_ID
|
|
30
|
+
|
|
31
|
+
__version__ = version = '0.1.0a0'
|
|
32
|
+
__version_tuple__ = version_tuple = (0, 1, 0, 'a0')
|
|
33
|
+
|
|
34
|
+
__commit_id__ = commit_id = None
|
pygeomhades/cli.py
ADDED
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
import argparse
|
|
4
|
+
import logging
|
|
5
|
+
|
|
6
|
+
from dbetto import utils
|
|
7
|
+
from pyg4ometry import config as meshconfig
|
|
8
|
+
from pygeomtools import geometry, write_pygeom
|
|
9
|
+
|
|
10
|
+
from . import _version, core
|
|
11
|
+
|
|
12
|
+
log = logging.getLogger(__name__)
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
def dump_gdml_cli(argv: list[str] | None = None) -> None:
|
|
16
|
+
args, config = _parse_cli_args(argv)
|
|
17
|
+
|
|
18
|
+
logging.basicConfig()
|
|
19
|
+
if args.verbose:
|
|
20
|
+
logging.getLogger("pygeomhades").setLevel(logging.DEBUG)
|
|
21
|
+
if args.debug:
|
|
22
|
+
logging.root.setLevel(logging.DEBUG)
|
|
23
|
+
|
|
24
|
+
vis_scene = {}
|
|
25
|
+
if isinstance(args.visualize, str):
|
|
26
|
+
vis_scene = utils.load_dict(args.visualize)
|
|
27
|
+
|
|
28
|
+
if args.clip_geometry:
|
|
29
|
+
vis_scene["clipper"] = [{"origin": [0, 0, 0], "normal": [1, 0, 0], "close_cuts": False}]
|
|
30
|
+
|
|
31
|
+
if vis_scene.get("fine_mesh", False) or args.check_overlaps:
|
|
32
|
+
meshconfig.setGlobalMeshSliceAndStack(100)
|
|
33
|
+
|
|
34
|
+
registry = core.construct(
|
|
35
|
+
args.hpge_name,
|
|
36
|
+
args.measurement,
|
|
37
|
+
assemblies=args.assemblies,
|
|
38
|
+
config=config,
|
|
39
|
+
public_geometry=args.public_geom,
|
|
40
|
+
)
|
|
41
|
+
|
|
42
|
+
if args.print_volumes:
|
|
43
|
+
geometry.print_volumes(registry, args.print_volumes)
|
|
44
|
+
|
|
45
|
+
if args.check_overlaps:
|
|
46
|
+
msg = "checking for overlaps"
|
|
47
|
+
log.info(msg)
|
|
48
|
+
registry.worldVolume.checkOverlaps(recursive=True)
|
|
49
|
+
|
|
50
|
+
# commit auxvals, and write to GDML file if requested.
|
|
51
|
+
if args.filename is not None:
|
|
52
|
+
log.info("exporting GDML geometry to %s", args.filename)
|
|
53
|
+
write_pygeom(registry, args.filename)
|
|
54
|
+
|
|
55
|
+
if args.visualize:
|
|
56
|
+
log.info("visualizing...")
|
|
57
|
+
from pygeomtools import viewer
|
|
58
|
+
|
|
59
|
+
viewer.visualize(registry, vis_scene)
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
def _parse_cli_args(argv: list[str] | None = None) -> tuple[argparse.Namespace, dict]:
|
|
63
|
+
parser = argparse.ArgumentParser(
|
|
64
|
+
prog="legend-pygeom-hades",
|
|
65
|
+
description="%(prog)s command line interface",
|
|
66
|
+
)
|
|
67
|
+
|
|
68
|
+
# global options
|
|
69
|
+
parser.add_argument(
|
|
70
|
+
"--version",
|
|
71
|
+
action="version",
|
|
72
|
+
help="""Print %(prog)s version and exit""",
|
|
73
|
+
version=_version.__version__,
|
|
74
|
+
)
|
|
75
|
+
parser.add_argument(
|
|
76
|
+
"--verbose",
|
|
77
|
+
"-v",
|
|
78
|
+
action="store_true",
|
|
79
|
+
help="""Increase the program verbosity""",
|
|
80
|
+
)
|
|
81
|
+
parser.add_argument(
|
|
82
|
+
"--debug",
|
|
83
|
+
"-d",
|
|
84
|
+
action="store_true",
|
|
85
|
+
help="""Increase the program verbosity to maximum""",
|
|
86
|
+
)
|
|
87
|
+
parser.add_argument(
|
|
88
|
+
"--visualize",
|
|
89
|
+
"-V",
|
|
90
|
+
nargs="?",
|
|
91
|
+
const=True,
|
|
92
|
+
help="""Open a VTK visualization of the generated geometry (with optional scene file)""",
|
|
93
|
+
)
|
|
94
|
+
parser.add_argument(
|
|
95
|
+
"--clip-geometry",
|
|
96
|
+
action="store_true",
|
|
97
|
+
help="""Clip the geometry for visualization purposes""",
|
|
98
|
+
)
|
|
99
|
+
parser.add_argument(
|
|
100
|
+
"--check-overlaps",
|
|
101
|
+
action="store_true",
|
|
102
|
+
help="""Check for overlaps with pyg4ometry (note: this might not be accurate)""",
|
|
103
|
+
)
|
|
104
|
+
parser.add_argument(
|
|
105
|
+
"--print-volumes",
|
|
106
|
+
action="store",
|
|
107
|
+
choices=("logical", "physical", "detector"),
|
|
108
|
+
help="""Print a list of logical or physical volume names (from the pyg4ometry registry)""",
|
|
109
|
+
)
|
|
110
|
+
|
|
111
|
+
# options for geometry generation.
|
|
112
|
+
#
|
|
113
|
+
# geometry options can also be specified in the config file, so the "default" argument of the argparse
|
|
114
|
+
# options cannot be used - we need to distinguish between an unspecified option and an explicitly set
|
|
115
|
+
# default option.
|
|
116
|
+
geom_opts = parser.add_argument_group("geometry options")
|
|
117
|
+
geom_opts.add_argument(
|
|
118
|
+
"--public-geom",
|
|
119
|
+
action="store_true",
|
|
120
|
+
default=None,
|
|
121
|
+
help="""Create a geometry from public testdata only.""",
|
|
122
|
+
)
|
|
123
|
+
geom_opts.add_argument(
|
|
124
|
+
"-c",
|
|
125
|
+
"--config",
|
|
126
|
+
action="store",
|
|
127
|
+
help="""Select a config file to read geometry information from. """,
|
|
128
|
+
)
|
|
129
|
+
geom_opts.add_argument(
|
|
130
|
+
"--hpge-name",
|
|
131
|
+
action="store",
|
|
132
|
+
required=True,
|
|
133
|
+
help="""Name of the detector eg "V07302A".""",
|
|
134
|
+
)
|
|
135
|
+
geom_opts.add_argument(
|
|
136
|
+
"--assemblies",
|
|
137
|
+
action="store",
|
|
138
|
+
default=["hpge", "lead_castle"],
|
|
139
|
+
help=(
|
|
140
|
+
"""Select the assemblies to generate in the output.
|
|
141
|
+
(default: hpge and lead_castle)"""
|
|
142
|
+
),
|
|
143
|
+
)
|
|
144
|
+
|
|
145
|
+
geom_opts.add_argument(
|
|
146
|
+
"--measurement",
|
|
147
|
+
action="store",
|
|
148
|
+
required=True,
|
|
149
|
+
help="""Name of the measurement eg "am_HS1_top_dlt".""",
|
|
150
|
+
)
|
|
151
|
+
|
|
152
|
+
parser.add_argument(
|
|
153
|
+
"filename",
|
|
154
|
+
default=None,
|
|
155
|
+
nargs="?",
|
|
156
|
+
help="""File name for the output GDML geometry.""",
|
|
157
|
+
)
|
|
158
|
+
|
|
159
|
+
args = parser.parse_args(argv)
|
|
160
|
+
|
|
161
|
+
config = {}
|
|
162
|
+
|
|
163
|
+
if args.config is not None:
|
|
164
|
+
config = utils.load_dict(args.config)
|
|
165
|
+
|
|
166
|
+
if not args.visualize and args.filename == "":
|
|
167
|
+
parser.error("no output file and no visualization specified")
|
|
168
|
+
|
|
169
|
+
return args, config
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
name: B99000A
|
|
2
|
+
type: bege
|
|
3
|
+
production:
|
|
4
|
+
manufacturer: Test
|
|
5
|
+
enrichment:
|
|
6
|
+
val: 0.75
|
|
7
|
+
unc: 0.05
|
|
8
|
+
geometry:
|
|
9
|
+
height_in_mm: 40.0
|
|
10
|
+
radius_in_mm: 35.0
|
|
11
|
+
groove:
|
|
12
|
+
depth_in_mm: 2.0
|
|
13
|
+
radius_in_mm:
|
|
14
|
+
outer: 12.0
|
|
15
|
+
inner: 10.0
|
|
16
|
+
pp_contact:
|
|
17
|
+
radius_in_mm: 7.5
|
|
18
|
+
depth_in_mm: 0
|
|
19
|
+
taper:
|
|
20
|
+
top:
|
|
21
|
+
angle_in_deg: 0.0
|
|
22
|
+
height_in_mm: 0.0
|
|
23
|
+
bottom:
|
|
24
|
+
angle_in_deg: 0.0
|
|
25
|
+
height_in_mm: 0.0
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
name: C99000A
|
|
2
|
+
type: coax
|
|
3
|
+
production:
|
|
4
|
+
manufacturer: Test
|
|
5
|
+
enrichment:
|
|
6
|
+
val: 0.75
|
|
7
|
+
unc: 0.05
|
|
8
|
+
geometry:
|
|
9
|
+
height_in_mm: 80
|
|
10
|
+
radius_in_mm: 40
|
|
11
|
+
borehole:
|
|
12
|
+
radius_in_mm: 7
|
|
13
|
+
depth_in_mm: 70
|
|
14
|
+
groove:
|
|
15
|
+
depth_in_mm: 2
|
|
16
|
+
radius_in_mm:
|
|
17
|
+
outer: 20
|
|
18
|
+
inner: 17
|
|
19
|
+
pp_contact:
|
|
20
|
+
radius_in_mm: 17
|
|
21
|
+
depth_in_mm: 0
|
|
22
|
+
taper:
|
|
23
|
+
top:
|
|
24
|
+
angle_in_deg: 45
|
|
25
|
+
height_in_mm: 5
|
|
26
|
+
bottom:
|
|
27
|
+
angle_in_deg: 45
|
|
28
|
+
height_in_mm: 2
|
|
29
|
+
borehole:
|
|
30
|
+
angle_in_deg: 0
|
|
31
|
+
height_in_mm: 0
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
name: P99000A
|
|
2
|
+
type: ppc
|
|
3
|
+
production:
|
|
4
|
+
manufacturer: Test
|
|
5
|
+
enrichment:
|
|
6
|
+
val: 0.75
|
|
7
|
+
unc: 0.05
|
|
8
|
+
geometry:
|
|
9
|
+
height_in_mm: 40.0
|
|
10
|
+
radius_in_mm: 35.0
|
|
11
|
+
pp_contact:
|
|
12
|
+
radius_in_mm: 2
|
|
13
|
+
depth_in_mm: 2
|
|
14
|
+
taper:
|
|
15
|
+
top:
|
|
16
|
+
angle_in_deg: 0
|
|
17
|
+
height_in_mm: 0
|
|
18
|
+
bottom:
|
|
19
|
+
angle_in_deg: 30
|
|
20
|
+
height_in_mm: 10
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
name: V99000A
|
|
2
|
+
type: icpc
|
|
3
|
+
production:
|
|
4
|
+
manufacturer: Test
|
|
5
|
+
enrichment:
|
|
6
|
+
val: 0.75
|
|
7
|
+
unc: 0.05
|
|
8
|
+
geometry:
|
|
9
|
+
height_in_mm: 60
|
|
10
|
+
radius_in_mm: 35
|
|
11
|
+
borehole:
|
|
12
|
+
radius_in_mm: 5
|
|
13
|
+
depth_in_mm: 45
|
|
14
|
+
groove:
|
|
15
|
+
depth_in_mm: 1
|
|
16
|
+
radius_in_mm:
|
|
17
|
+
outer: 10
|
|
18
|
+
inner: 9
|
|
19
|
+
pp_contact:
|
|
20
|
+
radius_in_mm: 3
|
|
21
|
+
depth_in_mm: 2
|
|
22
|
+
taper:
|
|
23
|
+
top:
|
|
24
|
+
angle_in_deg: 10
|
|
25
|
+
height_in_mm: 10
|
|
26
|
+
bottom:
|
|
27
|
+
angle_in_deg: 0
|
|
28
|
+
height_in_mm: 0
|
|
29
|
+
borehole:
|
|
30
|
+
angle_in_deg: 0
|
|
31
|
+
height_in_mm: 0
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
detector:
|
|
2
|
+
name: B00000B
|
|
3
|
+
position: 5.0
|
|
4
|
+
holder:
|
|
5
|
+
geometry:
|
|
6
|
+
bottom_cyl:
|
|
7
|
+
inner:
|
|
8
|
+
height_in_mm: 0
|
|
9
|
+
radius_in_mm: 0
|
|
10
|
+
outer:
|
|
11
|
+
height_in_mm: 0
|
|
12
|
+
radius_in_mm: 0
|
|
13
|
+
cylinder:
|
|
14
|
+
inner:
|
|
15
|
+
height_in_mm: 62.5
|
|
16
|
+
radius_in_mm: 41.0
|
|
17
|
+
outer:
|
|
18
|
+
height_in_mm: 65.5
|
|
19
|
+
radius_in_mm: 39.5
|
|
20
|
+
edge:
|
|
21
|
+
height_in_mm: 0
|
|
22
|
+
radius_in_mm: 0
|
|
23
|
+
rings:
|
|
24
|
+
height_in_mm: 8.6
|
|
25
|
+
position_bottom_ring_in_mm: 0
|
|
26
|
+
position_top_ring_in_mm: 14.7
|
|
27
|
+
radius_in_mm: 41.5
|
|
28
|
+
position: 3.5
|
|
29
|
+
wrap:
|
|
30
|
+
geometry:
|
|
31
|
+
inner:
|
|
32
|
+
height_in_mm: 49.0
|
|
33
|
+
radius_in_mm: 37.2
|
|
34
|
+
outer:
|
|
35
|
+
height_in_mm: 50.0
|
|
36
|
+
radius_in_mm: 37.7
|
|
37
|
+
position: 3.5
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
detector:
|
|
2
|
+
name: B00000D
|
|
3
|
+
position: 5.0
|
|
4
|
+
holder:
|
|
5
|
+
geometry:
|
|
6
|
+
bottom_cyl:
|
|
7
|
+
inner:
|
|
8
|
+
height_in_mm: 0
|
|
9
|
+
radius_in_mm: 0
|
|
10
|
+
outer:
|
|
11
|
+
height_in_mm: 0
|
|
12
|
+
radius_in_mm: 0
|
|
13
|
+
cylinder:
|
|
14
|
+
inner:
|
|
15
|
+
height_in_mm: 62.5
|
|
16
|
+
radius_in_mm: 39.2
|
|
17
|
+
outer:
|
|
18
|
+
height_in_mm: 65.5
|
|
19
|
+
radius_in_mm: 40.7
|
|
20
|
+
edge:
|
|
21
|
+
height_in_mm: 0
|
|
22
|
+
radius_in_mm: 0
|
|
23
|
+
rings:
|
|
24
|
+
height_in_mm: 8.6
|
|
25
|
+
position_bottom_ring_in_mm: 0
|
|
26
|
+
position_top_ring_in_mm: 14.7
|
|
27
|
+
radius_in_mm: 42.2
|
|
28
|
+
position: 4.0
|
|
29
|
+
wrap:
|
|
30
|
+
geometry:
|
|
31
|
+
inner:
|
|
32
|
+
height_in_mm: 49.0
|
|
33
|
+
radius_in_mm: 38.4
|
|
34
|
+
outer:
|
|
35
|
+
height_in_mm: 50.0
|
|
36
|
+
radius_in_mm: 38.9
|
|
37
|
+
position: 4.0
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
detector:
|
|
2
|
+
name: B00002C
|
|
3
|
+
position: 5.0
|
|
4
|
+
holder:
|
|
5
|
+
geometry:
|
|
6
|
+
bottom_cyl:
|
|
7
|
+
inner:
|
|
8
|
+
height_in_mm: 0
|
|
9
|
+
radius_in_mm: 0
|
|
10
|
+
outer:
|
|
11
|
+
height_in_mm: 0
|
|
12
|
+
radius_in_mm: 0
|
|
13
|
+
cylinder:
|
|
14
|
+
inner:
|
|
15
|
+
height_in_mm: 62.5
|
|
16
|
+
radius_in_mm: 38.4
|
|
17
|
+
outer:
|
|
18
|
+
height_in_mm: 65.5
|
|
19
|
+
radius_in_mm: 39.9
|
|
20
|
+
edge:
|
|
21
|
+
height_in_mm: 0
|
|
22
|
+
radius_in_mm: 0
|
|
23
|
+
rings:
|
|
24
|
+
height_in_mm: 8.6
|
|
25
|
+
position_bottom_ring_in_mm: 0
|
|
26
|
+
position_top_ring_in_mm: 14.7
|
|
27
|
+
radius_in_mm: 41.4
|
|
28
|
+
position: 4.0
|
|
29
|
+
wrap:
|
|
30
|
+
geometry:
|
|
31
|
+
inner:
|
|
32
|
+
height_in_mm: 49.0
|
|
33
|
+
radius_in_mm: 37.6
|
|
34
|
+
outer:
|
|
35
|
+
height_in_mm: 50.0
|
|
36
|
+
radius_in_mm: 38.1
|
|
37
|
+
position: 4.0
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
detector:
|
|
2
|
+
name: B00032B
|
|
3
|
+
position: 5.0
|
|
4
|
+
holder:
|
|
5
|
+
geometry:
|
|
6
|
+
bottom_cyl:
|
|
7
|
+
inner:
|
|
8
|
+
height_in_mm: 0
|
|
9
|
+
radius_in_mm: 0
|
|
10
|
+
outer:
|
|
11
|
+
height_in_mm: 0
|
|
12
|
+
radius_in_mm: 0
|
|
13
|
+
cylinder:
|
|
14
|
+
inner:
|
|
15
|
+
height_in_mm: 62.5
|
|
16
|
+
radius_in_mm: 36.9
|
|
17
|
+
outer:
|
|
18
|
+
height_in_mm: 65.5
|
|
19
|
+
radius_in_mm: 38.4
|
|
20
|
+
edge:
|
|
21
|
+
height_in_mm: 0
|
|
22
|
+
radius_in_mm: 0
|
|
23
|
+
rings:
|
|
24
|
+
height_in_mm: 8.6
|
|
25
|
+
position_bottom_ring_in_mm: 0
|
|
26
|
+
position_top_ring_in_mm: 14.7
|
|
27
|
+
radius_in_mm: 40.0
|
|
28
|
+
position: 4.0
|
|
29
|
+
wrap:
|
|
30
|
+
geometry:
|
|
31
|
+
inner:
|
|
32
|
+
height_in_mm: 49.0
|
|
33
|
+
radius_in_mm: 36.1
|
|
34
|
+
outer:
|
|
35
|
+
height_in_mm: 50.0
|
|
36
|
+
radius_in_mm: 36.6
|
|
37
|
+
position: 4.0
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
detector:
|
|
2
|
+
name: B00035A
|
|
3
|
+
position: 5.0
|
|
4
|
+
holder:
|
|
5
|
+
geometry:
|
|
6
|
+
bottom_cyl:
|
|
7
|
+
inner:
|
|
8
|
+
height_in_mm: 0
|
|
9
|
+
radius_in_mm: 0
|
|
10
|
+
outer:
|
|
11
|
+
height_in_mm: 0
|
|
12
|
+
radius_in_mm: 0
|
|
13
|
+
cylinder:
|
|
14
|
+
inner:
|
|
15
|
+
height_in_mm: 62.5
|
|
16
|
+
radius_in_mm: 37.8
|
|
17
|
+
outer:
|
|
18
|
+
height_in_mm: 65.5
|
|
19
|
+
radius_in_mm: 39.3
|
|
20
|
+
edge:
|
|
21
|
+
height_in_mm: 0
|
|
22
|
+
radius_in_mm: 0
|
|
23
|
+
rings:
|
|
24
|
+
height_in_mm: 8.6
|
|
25
|
+
position_bottom_ring_in_mm: 0
|
|
26
|
+
position_top_ring_in_mm: 14.7
|
|
27
|
+
radius_in_mm: 40.8
|
|
28
|
+
position: 4.0
|
|
29
|
+
wrap:
|
|
30
|
+
geometry:
|
|
31
|
+
inner:
|
|
32
|
+
height_in_mm: 49.0
|
|
33
|
+
radius_in_mm: 37.0
|
|
34
|
+
outer:
|
|
35
|
+
height_in_mm: 50.0
|
|
36
|
+
radius_in_mm: 37.5
|
|
37
|
+
position: 4.0
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
detector:
|
|
2
|
+
name: B00035B
|
|
3
|
+
position: 5.0
|
|
4
|
+
holder:
|
|
5
|
+
geometry:
|
|
6
|
+
bottom_cyl:
|
|
7
|
+
inner:
|
|
8
|
+
height_in_mm: 0
|
|
9
|
+
radius_in_mm: 0
|
|
10
|
+
outer:
|
|
11
|
+
height_in_mm: 0
|
|
12
|
+
radius_in_mm: 0
|
|
13
|
+
cylinder:
|
|
14
|
+
inner:
|
|
15
|
+
height_in_mm: 62.5
|
|
16
|
+
radius_in_mm: 39.2
|
|
17
|
+
outer:
|
|
18
|
+
height_in_mm: 65.5
|
|
19
|
+
radius_in_mm: 40.7
|
|
20
|
+
edge:
|
|
21
|
+
height_in_mm: 0
|
|
22
|
+
radius_in_mm: 0
|
|
23
|
+
rings:
|
|
24
|
+
height_in_mm: 8.6
|
|
25
|
+
position_bottom_ring_in_mm: 0
|
|
26
|
+
position_top_ring_in_mm: 14.7
|
|
27
|
+
radius_in_mm: 42.2
|
|
28
|
+
position: 4.0
|
|
29
|
+
wrap:
|
|
30
|
+
geometry:
|
|
31
|
+
inner:
|
|
32
|
+
height_in_mm: 49.0
|
|
33
|
+
radius_in_mm: 38.4
|
|
34
|
+
outer:
|
|
35
|
+
height_in_mm: 50.0
|
|
36
|
+
radius_in_mm: 38.9
|
|
37
|
+
position: 4.0
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
detector:
|
|
2
|
+
name: B00061C
|
|
3
|
+
position: 5.0
|
|
4
|
+
holder:
|
|
5
|
+
geometry:
|
|
6
|
+
bottom_cyl:
|
|
7
|
+
inner:
|
|
8
|
+
height_in_mm: 0
|
|
9
|
+
radius_in_mm: 0
|
|
10
|
+
outer:
|
|
11
|
+
height_in_mm: 0
|
|
12
|
+
radius_in_mm: 0
|
|
13
|
+
cylinder:
|
|
14
|
+
inner:
|
|
15
|
+
height_in_mm: 62.5
|
|
16
|
+
radius_in_mm: 38.3
|
|
17
|
+
outer:
|
|
18
|
+
height_in_mm: 65.5
|
|
19
|
+
radius_in_mm: 39.8
|
|
20
|
+
edge:
|
|
21
|
+
height_in_mm: 0
|
|
22
|
+
radius_in_mm: 0
|
|
23
|
+
rings:
|
|
24
|
+
height_in_mm: 8.6
|
|
25
|
+
position_bottom_ring_in_mm: 0
|
|
26
|
+
position_top_ring_in_mm: 14.7
|
|
27
|
+
radius_in_mm: 41.3
|
|
28
|
+
position: 4.0
|
|
29
|
+
wrap:
|
|
30
|
+
geometry:
|
|
31
|
+
inner:
|
|
32
|
+
height_in_mm: 49.0
|
|
33
|
+
radius_in_mm: 37.5
|
|
34
|
+
outer:
|
|
35
|
+
height_in_mm: 50.0
|
|
36
|
+
radius_in_mm: 38.0
|
|
37
|
+
position: 4.0
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
detector:
|
|
2
|
+
name: B00076C
|
|
3
|
+
position: 5.0
|
|
4
|
+
holder:
|
|
5
|
+
geometry:
|
|
6
|
+
bottom_cyl:
|
|
7
|
+
inner:
|
|
8
|
+
height_in_mm: 0
|
|
9
|
+
radius_in_mm: 0
|
|
10
|
+
outer:
|
|
11
|
+
height_in_mm: 0
|
|
12
|
+
radius_in_mm: 0
|
|
13
|
+
cylinder:
|
|
14
|
+
inner:
|
|
15
|
+
height_in_mm: 62.5
|
|
16
|
+
radius_in_mm: 38.9
|
|
17
|
+
outer:
|
|
18
|
+
height_in_mm: 65.5
|
|
19
|
+
radius_in_mm: 40.4
|
|
20
|
+
edge:
|
|
21
|
+
height_in_mm: 0
|
|
22
|
+
radius_in_mm: 0
|
|
23
|
+
rings:
|
|
24
|
+
height_in_mm: 8.6
|
|
25
|
+
position_bottom_ring_in_mm: 0
|
|
26
|
+
position_top_ring_in_mm: 14.7
|
|
27
|
+
radius_in_mm: 41.9
|
|
28
|
+
position: 4.0
|
|
29
|
+
wrap:
|
|
30
|
+
geometry:
|
|
31
|
+
inner:
|
|
32
|
+
height_in_mm: 49.0
|
|
33
|
+
radius_in_mm: 38.1
|
|
34
|
+
outer:
|
|
35
|
+
height_in_mm: 50.0
|
|
36
|
+
radius_in_mm: 38.6
|
|
37
|
+
position: 4.0
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
detector:
|
|
2
|
+
name: B00091B
|
|
3
|
+
position: 5.0
|
|
4
|
+
holder:
|
|
5
|
+
geometry:
|
|
6
|
+
bottom_cyl:
|
|
7
|
+
inner:
|
|
8
|
+
height_in_mm: 0
|
|
9
|
+
radius_in_mm: 0
|
|
10
|
+
outer:
|
|
11
|
+
height_in_mm: 0
|
|
12
|
+
radius_in_mm: 0
|
|
13
|
+
cylinder:
|
|
14
|
+
inner:
|
|
15
|
+
height_in_mm: 62.5
|
|
16
|
+
radius_in_mm: 36.3
|
|
17
|
+
outer:
|
|
18
|
+
height_in_mm: 65.5
|
|
19
|
+
radius_in_mm: 37.8
|
|
20
|
+
edge:
|
|
21
|
+
height_in_mm: 0
|
|
22
|
+
radius_in_mm: 0
|
|
23
|
+
rings:
|
|
24
|
+
height_in_mm: 8.6
|
|
25
|
+
position_bottom_ring_in_mm: 0
|
|
26
|
+
position_top_ring_in_mm: 14.7
|
|
27
|
+
radius_in_mm: 39.3
|
|
28
|
+
position: 4.0
|
|
29
|
+
wrap:
|
|
30
|
+
geometry:
|
|
31
|
+
inner:
|
|
32
|
+
height_in_mm: 49.0
|
|
33
|
+
radius_in_mm: 35.5
|
|
34
|
+
outer:
|
|
35
|
+
height_in_mm: 50.0
|
|
36
|
+
radius_in_mm: 36.0
|
|
37
|
+
position: 4.0
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
detector:
|
|
2
|
+
name: V00048B
|
|
3
|
+
position: 7.0
|
|
4
|
+
holder:
|
|
5
|
+
geometry:
|
|
6
|
+
bottom_cyl:
|
|
7
|
+
inner:
|
|
8
|
+
height_in_mm: 15.7
|
|
9
|
+
radius_in_mm: 8.0
|
|
10
|
+
outer:
|
|
11
|
+
height_in_mm: 25.4
|
|
12
|
+
radius_in_mm: 13.0
|
|
13
|
+
cylinder:
|
|
14
|
+
inner:
|
|
15
|
+
height_in_mm: 105.0
|
|
16
|
+
radius_in_mm: 37.5
|
|
17
|
+
outer:
|
|
18
|
+
height_in_mm: 108.1
|
|
19
|
+
radius_in_mm: 38.3
|
|
20
|
+
edge:
|
|
21
|
+
height_in_mm: 1.3
|
|
22
|
+
radius_in_mm: 40.5
|
|
23
|
+
rings:
|
|
24
|
+
height_in_mm: 8.6
|
|
25
|
+
position_bottom_ring_in_mm: 64.4
|
|
26
|
+
position_top_ring_in_mm: 14.0
|
|
27
|
+
radius_in_mm: 40.5
|
|
28
|
+
position: 6.0
|
|
29
|
+
wrap:
|
|
30
|
+
geometry:
|
|
31
|
+
inner:
|
|
32
|
+
height_in_mm: 92.9
|
|
33
|
+
radius_in_mm: 36.3
|
|
34
|
+
outer:
|
|
35
|
+
height_in_mm: 94.3
|
|
36
|
+
radius_in_mm: 36.8
|
|
37
|
+
position: 4.5
|