Skip to content

Commit fd12437

Browse files
committed
Merge branch 'main' of https://github.com/eic/epic.git
2 parents 0d82f17 + 607af5f commit fd12437

20 files changed

+328
-95
lines changed

.github/workflows/check-tracking-geometry.yml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,3 +28,14 @@ jobs:
2828
run: |
2929
root -b -q "scripts/test_ACTS.cxx+(\"${DETECTOR_PATH}/${{matrix.detector_config}}.xml\")" | tee check_tracking_geometry.out
3030
bin/acts_geo_check check_tracking_geometry.out
31+
- uses: actions/upload-artifact@v4
32+
with:
33+
name: ${{matrix.detector_config}}.obj
34+
path: |
35+
*.obj
36+
*.mpl
37+
- uses: actions/upload-artifact@v4
38+
with:
39+
name: ${{matrix.detector_config}}.ply
40+
path: |
41+
*.ply

.github/workflows/linux-eic-shell.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -164,8 +164,8 @@ jobs:
164164
with:
165165
name: material_map
166166
path: |
167-
"scripts/material_map/*.json"
168-
"scripts/material_map/*.root"
167+
scripts/material_map/*.json
168+
scripts/material_map/*.root
169169
scripts/material_map/Surfaces/
170170
scripts/material_map/Validation/
171171
if-no-files-found: error
@@ -393,7 +393,7 @@ jobs:
393393
394394
trigger-container:
395395
runs-on: ubuntu-latest
396-
if: ${{ github.actor != 'dependabot[bot]' }}
396+
if: github.actor != 'dependabot[bot]' && github.ref != 'refs/heads/main'
397397
needs: [check-overlap-tgeo, check-overlap-geant4-fast]
398398
steps:
399399
- uses: eic/trigger-gitlab-ci@v3
@@ -556,7 +556,7 @@ jobs:
556556
if-no-files-found: error
557557
- name: Download previous artifact
558558
id: download_previous_artifact
559-
uses: dawidd6/action-download-artifact@v9
559+
uses: dawidd6/action-download-artifact@v11
560560
with:
561561
branch: ${{ github.event.pull_request.base.ref || github.ref_name }}
562562
path: ref/
@@ -625,7 +625,7 @@ jobs:
625625
if-no-files-found: error
626626
- name: Download previous artifact
627627
id: download_previous_artifact
628-
uses: dawidd6/action-download-artifact@v9
628+
uses: dawidd6/action-download-artifact@v11
629629
with:
630630
branch: ${{ github.event.pull_request.base.ref || github.ref_name }}
631631
path: ref/

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ Overview
77

88
**Detector geometry:**
99
- [Empty viewer](https://eic.github.io/epic/geoviewer)
10-
- Craterlake: [viewer](https://eic.github.io/epic/geoviewer?nobrowser&file=artifacts/tgeo/epic_craterlake.root&item=default;1&opt=clipx;clipy;transp30;zoom120;ROTY320;ROTZ340;trz0;trr0;ctrl;all) [step](https://eic.github.io/epic//artifacts/epic_craterlake_no_bhcal.stp/epic_craterlake_no_bhcal.stp)
10+
- Craterlake: [viewer](https://eic.github.io/epic/geoviewer?nobrowser&file=artifacts/tgeo/epic_craterlake.root&item=default;1&opt=clipx;clipy;transp30;zoom120;ROTY320;ROTZ340;trz0;trr0;ctrl;all) [tgeo](https://eic.github.io/epic//artifacts/tgeo/epic_craterlake.root) [step](https://eic.github.io/epic//artifacts/epic_craterlake_no_bhcal.stp/epic_craterlake_no_bhcal.stp)
1111
- Subsystems:
1212
- Inner detector: [viewer](https://eic.github.io/epic/geoviewer?nobrowser&file=artifacts/tgeo/epic_inner_detector.root&item=default;1&opt=clipx;clipy;transp30;zoom120;ROTY320;ROTZ340;trz0;trr0;ctrl;all) [tgeo](https://eic.github.io/epic//artifacts/tgeo/epic_inner_detector.root)
1313
- Calorimetry: [viewer](https://eic.github.io/epic/geoviewer?nobrowser&file=artifacts/tgeo/epic_calorimeters.root&item=default;1&opt=clipx;clipy;transp30;zoom120;ROTY320;ROTZ340;trz0;trr0;ctrl;all) [tgeo](https://eic.github.io/epic//artifacts/tgeo/epic_calorimeters.root)
@@ -16,7 +16,7 @@ Overview
1616
- dRICH: [viewer](https://eic.github.io/epic/geoviewer?nobrowser&file=artifacts/tgeo/epic_drich_only.root&item=default;1&opt=clipx;clipy;transp30;zoom75;ROTY290;ROTZ350;trz0;trr0;ctrl;all) [tgeo](https://eic.github.io/epic//artifacts/tgeo/epic_drich_only.root) [step](https://eic.github.io/epic//artifacts/epic_drich_only.stp/epic_drich_only.stp)
1717
- pfRICH: [viewer](https://eic.github.io/epic/geoviewer?nobrowser&file=artifacts/tgeo/epic_pfrich_only.root&item=default;1&opt=clipx;clipy;transp30;zoom55;ROTY49;ROTZ350;trz0;trr0;ctrl;all) [tgeo](https://eic.github.io/epic//artifacts/tgeo/epic_pfrich_only.root)
1818
- DIRC: [viewer](https://eic.github.io/epic/geoviewer?nobrowser&file=artifacts/tgeo/epic_dirc_only.root&item=default;1&opt=clipx;clipy;transp30;zoom120;ROTY320;ROTZ340;trz0;trr0;ctrl;all) [tgeo](https://eic.github.io/epic//artifacts/tgeo/epic_dirc_only.root) [step](https://eic.github.io/epic//artifacts/epic_dirc_only.stp/epic_dirc_only.stp)
19-
- Tracking: [viewer](https://eic.github.io/epic/geoviewer?nobrowser&file=artifacts/tgeo/epic_tracking_only.root&item=default;1&opt=clipx;clipy;transp30;zoom75;ROTY320;ROTZ340;trz0;trr0;ctrl;all) [tgeo](https://eic.github.io/epic//artifacts/tgeo/epic_tracking_only.root) [step](https://eic.github.io/epic//artifacts/epic_craterlake_tracking_only.stp/epic_craterlake_tracking_only.stp)
19+
- Tracking: [viewer](https://eic.github.io/epic/geoviewer?nobrowser&file=artifacts/tgeo/epic_craterlake_tracking_only.root&item=default;1&opt=clipx;clipy;transp30;zoom75;ROTY320;ROTZ340;trz0;trr0;ctrl;all) [tgeo](https://eic.github.io/epic//artifacts/tgeo/epic_craterlake_tracking_only.root) [step](https://eic.github.io/epic//artifacts/epic_craterlake_tracking_only.stp/epic_craterlake_tracking_only.stp)
2020
- Vertex: [viewer](https://eic.github.io/epic/geoviewer?nobrowser&file=artifacts/tgeo/epic_vertex_only.root&item=default;1&opt=clipx;clipy;transp30;zoom120;ROTY320;ROTZ340;trz0;trr0;ctrl;all) [tgeo](https://eic.github.io/epic//artifacts/tgeo/epic_vertex_only.root)
2121
- TOF: [viewer](https://eic.github.io/epic/geoviewer?nobrowser&file=artifacts/tgeo/epic_tof_only.root&item=default;1&opt=clipx;clipy;transp30;zoom55;ROTY49;ROTZ350;trz0;trr0;ctrl;all) [tgeo](https://eic.github.io/epic//artifacts/tgeo/epic_tof_only.root)
2222
- Beamline: [viewer](https://eic.github.io/epic/geoviewer?nobrowser&file=artifacts/tgeo/epic_ip6.root&item=default;1&opt=clipx;clipy;transp30;zoom40;ROTY290;ROTZ350;trz0;trr0;ctrl;all) [tgeo](https://eic.github.io/epic//artifacts/tgeo/epic_ip6.root) [step](https://eic.github.io/epic//artifacts/epic_ip6.stp/epic_ip6.stp)

compact/definitions.xml

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -175,7 +175,8 @@ The unused IDs below are saved for future use.
175175
Unused IDs: 107-109
176176

177177
</documentation>
178-
<constant name="ECalSubAssembly_ID" value="100"/><!-- UNUSED -->
178+
<constant name="ECalSubAssembly_ID" value="100"/><!-- DEPRECATED -->
179+
<constant name="EcalSubAssembly_ID" value="100"/>
179180
<constant name="ECalBarrel_ID" value="101"/><!-- DEPRECATED -->
180181
<constant name="EcalBarrel_ID" value="101"/>
181182
<constant name="ECalEndcapP_ID" value="102"/><!-- DEPRECATED -->
@@ -487,6 +488,10 @@ Examples:
487488
<constant name="CentralTrackingRegionP_tan" value="Eta3_7_tan * 1.00" />
488489
<constant name="CentralTrackingRegionN_tan" value="Eta4_0_tan * 0.99" />
489490

491+
<constant name="InnerDetectorBarrelSupportCylinder_thickness" value="1*cm"/>
492+
<constant name="InnerDetectorBarrelSupportCylinder_rmin" value="71.0*cm"/> <!-- EPIC Envelope - 03-12-2025.stp -->
493+
<constant name="InnerDetectorBarrelSupportCylinder_rmax" value="InnerDetectorBarrelSupportCylinder_rmin + InnerDetectorBarrelSupportCylinder_thickness"/>
494+
490495
<documentation level="0">
491496
### PID Detector Region Parameters
492497
</documentation>
@@ -522,7 +527,7 @@ Examples:
522527

523528
<comment> Note: PID has space for DIRC, ExtraSpace sits past the PID</comment>
524529
<constant name="BarrelPIDRegion_thickness" value="7.0 * cm" />
525-
<constant name="BarrelExtraSpace_thickness" value="1.5 * cm" />
530+
<constant name="BarrelExtraSpace_thickness" value="0.0 * cm" />
526531

527532
<documentation>
528533
## Forward/backward tracking region behind the PID detectors

compact/ecal/bic/bic.xml

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,13 @@
117117

118118
<detectors>
119119

120+
<detector id="EcalSubAssembly_ID"
121+
name="EcalBarrelTrackerSubAssembly"
122+
type="DD4hep_SubdetectorAssembly"
123+
vis="TrackerSubAssemblyVis">
124+
<composite name="EcalBarrelImaging"/>
125+
</detector>
126+
120127
<comment>
121128
---------------------------------------
122129
Imaging Layers of Barrel EM Calorimeter
@@ -131,9 +138,37 @@
131138
calorimeterType="EM_BARREL"
132139
vis="EcalBarrelEnvelopeVis"
133140
offset="EcalBarrel_Calorimeter_offset">
141+
<type_flags type="DetType_TRACKER + DetType_CALORIMETER + DetType_BARREL + DetType_ELECTROMAGNETIC"/>
134142
<dimensions numsides="EcalBarrel_SectorRepeat"
135143
rmin="EcalBarrel_rmin"
136144
z="EcalBarrel_Calorimeter_length"/>
145+
146+
<comment>
147+
The envelope for ACTS purposes needs to include only the first layer. The following
148+
definition includes the front support and is tangential to the outer edge of the
149+
first tray. This allows the envelope to avoid the first SFIL.
150+
</comment>
151+
<envelope vis="EcalBarrelImaging_envelope"
152+
rmin="EcalBarrel_rmin"
153+
rmax="EcalBarrel_rmin + EcalBarrel_FrontSupportThickness + EcalBarrel_ImagingLayerThickness"
154+
length="EcalBarrel_Calorimeter_length"
155+
zstart="EcalBarrel_Calorimeter_zmin"
156+
/>
157+
158+
<comment>
159+
The layer material for ACTS purposes is at the top level, since the entire BIC detector
160+
is treated as a single layer. The binning should likely be an integer multiple of the
161+
number of sectors, and of the numer of modules.
162+
</comment>
163+
<layer_material surface="inner"
164+
binning="binPhi,binZ"
165+
bins0="6 * EcalBarrel_SectorRepeat"
166+
bins1="floor(2. * EcalBarrel_Stave_length / (EcalBarrel_AstroPix_length + EcalBarrel_AstroPix_margin))"/>
167+
<layer_material surface="outer"
168+
binning="binPhi,binZ"
169+
bins0="6 * EcalBarrel_SectorRepeat"
170+
bins1="floor(2. * EcalBarrel_Stave_length / (EcalBarrel_AstroPix_length + EcalBarrel_AstroPix_margin))"/>
171+
137172
<sectors vis="EcalBarrelSectorVis"/>
138173

139174
<module name="AstroPix_Module"
@@ -372,4 +407,11 @@
372407
</readout>
373408
</readouts>
374409

410+
<plugins>
411+
<plugin name="DD4hep_ParametersPlugin">
412+
<argument value="EcalBarrelImaging"/>
413+
<argument value="layer_pattern: str=envelope"/>
414+
</plugin>
415+
</plugins>
416+
375417
</lccdd>

compact/ecal/bic/bic_layer1_only.xml

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,13 @@
119119

120120
<detectors>
121121

122+
<detector id="EcalSubAssembly_ID"
123+
name="EcalBarrelTrackerSubAssembly"
124+
type="DD4hep_SubdetectorAssembly"
125+
vis="TrackerSubAssemblyVis">
126+
<composite name="EcalBarrelImaging"/>
127+
</detector>
128+
122129
<comment>
123130
---------------------------------------
124131
Imaging Layers of Barrel EM Calorimeter
@@ -133,9 +140,37 @@
133140
calorimeterType="EM_BARREL"
134141
vis="EcalBarrelEnvelopeVis"
135142
offset="EcalBarrel_Calorimeter_offset">
143+
<type_flags type="DetType_TRACKER + DetType_CALORIMETER + DetType_BARREL + DetType_ELECTROMAGNETIC"/>
136144
<dimensions numsides="EcalBarrel_SectorRepeat"
137145
rmin="EcalBarrel_rmin"
138146
z="EcalBarrel_Calorimeter_length"/>
147+
148+
<comment>
149+
The envelope for ACTS purposes needs to include only the first layer. The following
150+
definition includes the front support and is tangential to the outer edge of the
151+
first tray. This allows the envelope to avoid the first SFIL.
152+
</comment>
153+
<envelope vis="EcalBarrelImaging_envelope"
154+
rmin="EcalBarrel_rmin"
155+
rmax="EcalBarrel_rmin + EcalBarrel_FrontSupportThickness + EcalBarrel_ImagingLayerThickness"
156+
length="EcalBarrel_Calorimeter_length"
157+
zstart="EcalBarrel_Calorimeter_zmin"
158+
/>
159+
160+
<comment>
161+
The layer material for ACTS purposes is at the top level, since the entire BIC detector
162+
is treated as a single layer. The binning should likely be an integer multiple of the
163+
number of sectors, and of the numer of modules.
164+
</comment>
165+
<layer_material surface="inner"
166+
binning="binPhi,binZ"
167+
bins0="6 * EcalBarrel_SectorRepeat"
168+
bins1="floor(2. * EcalBarrel_Stave_length / (EcalBarrel_AstroPix_length + EcalBarrel_AstroPix_margin))"/>
169+
<layer_material surface="outer"
170+
binning="binPhi,binZ"
171+
bins0="6 * EcalBarrel_SectorRepeat"
172+
bins1="floor(2. * EcalBarrel_Stave_length / (EcalBarrel_AstroPix_length + EcalBarrel_AstroPix_margin))"/>
173+
139174
<sectors vis="EcalBarrelSectorVis"/>
140175

141176
<module name="AstroPix_Module"

compact/hcal/backward.xml

Lines changed: 10 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -1,64 +1,19 @@
11
<!-- SPDX-License-Identifier: LGPL-3.0-or-later -->
2-
<!-- Copyright (C) 2022 Wouter Deconinck, Leszek Kosarzewski, Ryan Milton -->
2+
<!-- Copyright (C) 2022 - 2025 Wouter Deconinck, Leszek Kosarzewski, Ryan Milton -->
33

44
<lccdd>
5-
<define>
6-
<documentation>
7-
#### Material Thickness
8-
</documentation>
9-
<constant name="HcalEndcapNSteelThickness" value="4.0 * cm"/>
10-
<constant name="HcalEndcapNPolystyreneThickness" value="0.4 * cm"/>
11-
<constant name="HcalEndcapNLayerGap" value="0.1 * cm"/> <!-- 2*thicker than LFHCAL -->
12-
13-
<constant name="HcalEndcapN_polyhedron_rmax" value="251.444*cm"/>
14-
<constant name="HcalEndcapN_segments_rmin" value="19.9431*cm"/>
15-
<constant name="HcalEndcapN_segments_rmax" value="HcalEndcapN_rmax/(cos(180*deg/HcalEndcapN_CaloSides))"/>
16-
175

18-
<documentation>
19-
- Hcal Endcap N Layers and computed Thickness
20-
</documentation>
6+
<info name="backward.xml"
7+
title="EPIC nHCal default"
8+
author="L. Kosarzewski"
9+
status="development"
10+
version="1.0"
11+
><comment/></info>
2112

22-
<constant name="HcalEndcapNSingleLayerThickness"
23-
value="HcalEndcapNSteelThickness + HcalEndcapNPolystyreneThickness + HcalEndcapNLayerGap"/>
24-
<constant name="HcalEndcapNLayer_NRepeat" value="floor(HcalEndcapN_length / HcalEndcapNSingleLayerThickness)"/>
25-
<constant name="HcalEndcapN_thickness" value="HcalEndcapNLayer_NRepeat * HcalEndcapNSingleLayerThickness"/>
13+
<define>
14+
<constant name="HcalEndcapN_allSensitive" value="0"/>
2615
</define>
2716

28-
29-
<!-- Define detector -->
30-
<detectors>
31-
<documentation>
32-
### Backwards (Negative Z) Endcap Hadronic Calorimeter
33-
</documentation>
34-
<detector
35-
id="HcalEndcapN_ID"
36-
name="HcalEndcapN"
37-
type="epic_PolyhedraEndcapCalorimeter2"
38-
readout="HcalEndcapNHits"
39-
vis="HcalEndcapVis"
40-
calorimeterType="HAD_ENDCAP">
41-
<position x="0" y="0" z="0"/>
42-
<dimensions
43-
numsides="HcalEndcapN_CaloSides"
44-
zmin="HcalEndcapN_zmin"
45-
rmin="HcalEndcapN_rmin"
46-
rmax="HcalEndcapN_rmax"/>
47-
<layer repeat="HcalEndcapNLayer_NRepeat" vis="HcalEndcapLayerVis" >
48-
<slice material="StainlessSteelSAE304" thickness="HcalEndcapNSteelThickness" vis="HcalAbsorberVis"/>
49-
<slice material="Air" thickness="HcalEndcapNLayerGap/2" vis="InvisibleNoDaughters"/>
50-
<slice material="Polystyrene" thickness="HcalEndcapNPolystyreneThickness" vis="HcalSensorVis" sensitive="yes" limits="cal_limits"/>
51-
<slice material="Air" thickness="HcalEndcapNLayerGap/2" vis="InvisibleNoDaughters"/>
52-
</layer>
53-
</detector>
54-
</detectors>
55-
56-
<!-- Definition of the readout segmentation/definition -->
57-
<readouts>
58-
<readout name="HcalEndcapNHits">
59-
<segmentation type="CartesianGridXY" grid_size_x="100 * mm" grid_size_y ="100 * mm"/>
60-
<id>system:8,barrel:3,module:4,layer:8,slice:5,x:32:-16,y:-16</id>
61-
</readout>
62-
</readouts>
17+
<include ref="backward_template.xml"/>
6318

6419
</lccdd>

compact/hcal/backward_sampF.xml

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
<!-- SPDX-License-Identifier: LGPL-3.0-or-later -->
2+
<!-- Copyright (C) Leszek Kosarzewski -->
3+
4+
<lccdd>
5+
6+
<info name="backward_sampF.xml"
7+
title="EPIC nHCal with all layers sensitive"
8+
author="L. Kosarzewski"
9+
status="development"
10+
version="1.0"
11+
><comment/></info>
12+
13+
<define>
14+
<constant name="HcalEndcapN_allSensitive" value="1"/>
15+
</define>
16+
17+
<include ref="backward_template.xml"/>
18+
19+
</lccdd>

compact/hcal/backward_template.xml

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
<!-- SPDX-License-Identifier: LGPL-3.0-or-later -->
2+
<!-- Copyright (C) 2022 - 2025 Wouter Deconinck, Leszek Kosarzewski, Ryan Milton -->
3+
4+
<lccdd>
5+
<define>
6+
<documentation>
7+
#### Material Thickness
8+
</documentation>
9+
<constant name="HcalEndcapNSteelThickness" value="4.0 * cm"/>
10+
<constant name="HcalEndcapNPolystyreneThickness" value="0.4 * cm"/>
11+
<constant name="HcalEndcapNLayerGap" value="0.1 * cm"/> <!-- 2*thicker than LFHCAL -->
12+
13+
<constant name="HcalEndcapN_polyhedron_rmax" value="251.444*cm"/>
14+
<constant name="HcalEndcapN_segments_rmin" value="19.9431*cm"/>
15+
<constant name="HcalEndcapN_segments_rmax" value="HcalEndcapN_rmax/(cos(180*deg/HcalEndcapN_CaloSides))"/>
16+
17+
18+
<documentation>
19+
- Hcal Endcap N Layers and computed Thickness
20+
</documentation>
21+
22+
<constant name="HcalEndcapNSingleLayerThickness"
23+
value="HcalEndcapNSteelThickness + HcalEndcapNPolystyreneThickness + HcalEndcapNLayerGap"/>
24+
<constant name="HcalEndcapNLayer_NRepeat" value="floor(HcalEndcapN_length / HcalEndcapNSingleLayerThickness)"/>
25+
<constant name="HcalEndcapN_thickness" value="HcalEndcapNLayer_NRepeat * HcalEndcapNSingleLayerThickness"/>
26+
</define>
27+
28+
29+
<!-- Define detector -->
30+
<detectors>
31+
<documentation>
32+
### Backwards (Negative Z) Endcap Hadronic Calorimeter
33+
</documentation>
34+
<detector
35+
id="HcalEndcapN_ID"
36+
name="HcalEndcapN"
37+
type="epic_PolyhedraEndcapCalorimeter2"
38+
readout="HcalEndcapNHits"
39+
vis="HcalEndcapVis"
40+
calorimeterType="HAD_ENDCAP"
41+
allSensitive="HcalEndcapN_allSensitive"
42+
>
43+
<position x="0" y="0" z="0"/>
44+
<dimensions
45+
numsides="HcalEndcapN_CaloSides"
46+
zmin="HcalEndcapN_zmin"
47+
rmin="HcalEndcapN_rmin"
48+
rmax="HcalEndcapN_rmax"/>
49+
<layer repeat="HcalEndcapNLayer_NRepeat" vis="HcalEndcapLayerVis" >
50+
<slice material="StainlessSteelSAE304" thickness="HcalEndcapNSteelThickness" vis="HcalAbsorberVis"/>
51+
<slice material="Air" thickness="HcalEndcapNLayerGap/2" vis="InvisibleNoDaughters"/>
52+
<slice material="Polystyrene" thickness="HcalEndcapNPolystyreneThickness" vis="HcalSensorVis" sensitive="yes" limits="cal_limits"/>
53+
<slice material="Air" thickness="HcalEndcapNLayerGap/2" vis="InvisibleNoDaughters"/>
54+
</layer>
55+
</detector>
56+
</detectors>
57+
58+
<!-- Definition of the readout segmentation/definition -->
59+
<readouts>
60+
<readout name="HcalEndcapNHits">
61+
<segmentation type="CartesianGridXY" grid_size_x="100 * mm" grid_size_y ="100 * mm"/>
62+
<id>system:8,barrel:3,module:4,layer:8,slice:5,x:32:-16,y:-16</id>
63+
</readout>
64+
</readouts>
65+
66+
</lccdd>

0 commit comments

Comments
 (0)