Skip to content

Commit

Permalink
starting point with HCAL sector steel (#117)
Browse files Browse the repository at this point in the history
### Briefly, what does this PR introduce?
This PR is the start of introducing the correct oHCAL geometry for EPIC
associated with re-use of the sPHENIX outer hadronic calorimeter. At the
present time it just includes the oHCAL sector steel, including both the
normal HCAL sectors and the three modified "chimney" sectors that have a
cutout to accommodate the solenoid cryogenic stack.

While the sPHENIX simulations use a very complicated, full geometry for
the oHCAL based on a gdml export of the CAD files for the as-built
sectors, the geometry here is drastically simplified to include only the
longitudinal steel plates. The endplates, sector combs, and endplates
have been removed as these are small perturbations that are unlikely to
affect the overall performance.

I have, however, decided to continue with a gdml export for the
simplified geometry. The reason for this is that at the present time the
simplified geometry has a very simple mesh, and it is straightforward to
implement in a generic way in the xml using a TesslelatedSolid. The
geometry is created very quickly and the root viewer seems to have no
problem with the exported geometry. This approach allows us to add
additional relaism to the HCAL sectors by just updating the xml (gdml)
for the solid with no additional code changes. For example, the combs or
endplates with their curved surfaces would be added in trivially if it
was though to be necessary/interesting in the future.

The geometry is generated by importing the STEP file from the CAD design
and using the GDML wokrbench in FreeCAD to mesh the solid and write out
the gdml. The workbench has additional tools, like the ability to
decimate and/or simplify the mesh if desired. The resulting gdml is
added into the xml description for the detector.

The work that remains for the geometry is to: 

- Add in the scintillation tile shapes. There are 12 shapes, which an
additional special set of shapes in the chimney sector.
- Modify the stepping action to include the measured light yield maps.
This is not strictly necessary, but I would like to do it now so it
doesn't get forgotten in the future (or the information lost)

After this, there will need to be some work at the reconstruction level
to collect the scintillating tiles in groups of five corresponding to
the preamps on the calorimeter towers.

Here's a viewer image showing the beam pipe, solenoid and the new oHCAL.
The cryo cutout is visible at the top left.



![example](https://user-images.githubusercontent.com/3042746/190826365-41339269-afef-462c-aecd-2984aefdc256.png)


### What kind of change does this PR introduce?
- [ ] Bug fix (issue #__)
- [ X] New feature (issue #110)
- [ ] Documentation update
- [ ] Other: __

### Please check if this PR fulfills the following:
- [ ] Tests for the changes have been added
- [ ] Documentation has been added / updated
- [ ] Changes have been communicated to collaborators

### Does this PR introduce breaking changes? What changes might users
need to make to their code?
At the present time this should be independent of the rest of the
detector geometry as the new outer HCAL geometry is stored in a new xml
file, and a new type "epic_oHcalBarrel" was created for this
development. This will aloo current simulations to continue until we are
ready to switch geometry.

### Does this PR change default behavior?
Yes - it replaces the existing ePIC HCAL geometry witha more realistic
version based on the sPHENIX HCAL.

Co-authored-by: Wouter Deconinck <[email protected]>
  • Loading branch information
johnlajoie and wdconinc authored Oct 28, 2022
1 parent cb21b88 commit 3ab7e7a
Show file tree
Hide file tree
Showing 17 changed files with 8,323 additions and 35 deletions.
31 changes: 7 additions & 24 deletions .github/workflows/linux-eic-shell.yml
Original file line number Diff line number Diff line change
Expand Up @@ -372,7 +372,7 @@ jobs:
strategy:
matrix:
option: ['m'] #, 's'] # FIXME
detector_config: [epic_arches, epic_brycecanyon]
detector_config: [epic_arches, epic_brycecanyon, epic_arches_no_barrel_hcal, epic_brycecanyon_no_barrel_hcal] # FIXME
fail-fast: false
steps:
- uses: actions/checkout@v3
Expand Down Expand Up @@ -422,6 +422,10 @@ jobs:
check-overlap-geant4:
runs-on: ubuntu-latest
needs: build-gcc
strategy:
matrix:
detector_config: [epic_arches, epic_brycecanyon, epic_arches_no_barrel_hcal, epic_brycecanyon_no_barrel_hcal] # FIXME
fail-fast: false
steps:
- uses: actions/checkout@v3
- uses: actions/download-artifact@v3
Expand All @@ -436,7 +440,7 @@ jobs:
setup: install/setup.sh
run: |
mkdir -p doc
python scripts/checkOverlaps.py -c ${DETECTOR_PATH}/${DETECTOR_CONFIG}.xml | tee doc/overlap_check_geant4.out
python scripts/checkOverlaps.py -c ${DETECTOR_PATH}/${{ matrix.detector_config }}.xml | tee doc/overlap_check_geant4.out
noverlaps="$(grep -c GeomVol1002 doc/overlap_check_geant4.out || true)"
if [[ "${noverlaps}" -gt "0" ]] ; then echo "${noverlaps} overlaps found!" && false ; fi
Expand All @@ -445,7 +449,7 @@ jobs:
needs: build-gcc
strategy:
matrix:
detector_config: [epic_arches, epic_brycecanyon]
detector_config: [epic_inner_detector, epic_arches, epic_brycecanyon, epic_arches_no_barrel_hcal, epic_brycecanyon_no_barrel_hcal] # FIXME
fail-fast: false
steps:
- uses: actions/checkout@v3
Expand All @@ -465,27 +469,6 @@ jobs:
noverlaps="$(grep -c GeomVol1002 doc/overlap_check_geant4.out || true)"
if [[ "${noverlaps}" -gt "0" ]] ; then echo "${noverlaps} overlaps found!" && false ; fi
check-overlap-geant4-inner-detector:
runs-on: ubuntu-latest
needs: build-gcc
steps:
- uses: actions/checkout@v3
- uses: actions/download-artifact@v3
with:
name: build-gcc-full-eic-shell
path: install/
- uses: cvmfs-contrib/github-action-cvmfs@v3
- uses: eic/run-cvmfs-osg-eic-shell@main
with:
platform-release: "jug_xl:nightly"
network_types: "none"
setup: install/setup.sh
run: |
mkdir -p doc
python scripts/checkOverlaps.py -c ${DETECTOR_PATH}/${DETECTOR_CONFIG}_inner_detector.xml | tee doc/overlap_check_geant4.out
noverlaps="$(grep -c GeomVol1002 doc/overlap_check_geant4.out || true)"
if [[ "${noverlaps}" -gt "0" ]] ; then echo "${noverlaps} overlaps found!" && false ; fi
trigger-detector-benchmarks:
runs-on: ubuntu-latest
needs: [check-overlap-tgeo, check-overlap-geant4-fast]
Expand Down
6 changes: 3 additions & 3 deletions compact/definitions.xml
Original file line number Diff line number Diff line change
Expand Up @@ -187,7 +187,7 @@ The unused IDs below are saved for future use.
- EndcapP subassembly ID: 112
- EndcapN subassembly ID: 113

- Unused IDs: 116-119
- Unused IDs: 117-119
</documentation>
<constant name="HCalSubAssembly_ID" value="110"/>
<constant name="HCalBarrel_ID" value="111"/>
Expand Down Expand Up @@ -608,8 +608,8 @@ Service gaps in FW direction (before endcapP ECAL) and BW direction (before endc
<comment> HcalEndcapN needs to clear the straight beampipe with 1 * crossing angle + its radius of 22.25 mm </comment>
<constant name="HcalEndcapN_rmin" value="max((HcalEndcapN_zmin + HcalEndcapN_length) * tan(abs(CrossingAngle)) + 22.25 * mm, 11 * cm)"/>

<constant name="HcalBarrel_thickness" value="88.0*cm"/> <!-- ref: ECCE proposal -->
<constant name="HcalBarrel_rmin" value="ForwardServiceGap_rmax"/>
<constant name="HcalBarrel_thickness" value="93.0*cm"/> <!-- ref: as-built CAD, plus a little room for the longer half-plates -->
<constant name="HcalBarrel_rmin" value="Solenoid_rmax"/>
<constant name="HcalBarrel_rmax" value="HcalBarrel_rmin + HcalBarrel_thickness"/>
<constant name="HcalBarrelForward_zmax" value="ForwardServiceGap_zmin"/>
<constant name="HcalBarrelBackward_zmax" value="BackwardServiceGap_zmin"/>
Expand Down
7,662 changes: 7,662 additions & 0 deletions compact/hcal/barrel_gdml.xml

Large diffs are not rendered by default.

20 changes: 20 additions & 0 deletions compact/hcal_gdml.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
<lccdd>

<display>
</display>
<define>
</define>

<documentation level="10">
### Hcal configuration
</documentation>

<include ref="hcal/hcal_forward.xml"/>

<include ref="hcal/hcal_forward_insert.xml"/>

<include ref="hcal/hcal_backward.xml"/>

<include ref="hcal/hcal_barrel_gdml.xml"/>

</lccdd>
2 changes: 1 addition & 1 deletion configurations/arches.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ features:
solenoid:
hcal:
forward:
barrel:
barrel_gdml:
backward:
far_forward:
far_forward_arches:
Expand Down
30 changes: 30 additions & 0 deletions configurations/arches_no_barrel_hcal.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
ebeam: 18
pbeam: 275
features:
beampipe:
tracking:
vertex_barrel:
silicon_barrel:
mpgd_barrel:
mpgd_dirc:
silicon_disks:
support_service_assembly:
tof_barrel:
tof_endcap:
pid:
dirc:
mrich:
drich:
ecal:
forward_homogeneous:
barrel_sciglass:
backward_PbWO4:
solenoid:
hcal:
forward:
#barrel_gdml:
backward:
far_forward:
far_forward_arches:
far_backward:
far_backward:
5 changes: 5 additions & 0 deletions configurations/bhcal.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
features:
solenoid:
beampipe:
hcal:
barrel_gdml:
2 changes: 1 addition & 1 deletion configurations/brycecanyon.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ features:
hcal:
forward:
forward_insert:
barrel:
barrel_gdml:
backward:
far_forward:
far_forward_brycecanyon:
Expand Down
31 changes: 31 additions & 0 deletions configurations/brycecanyon_no_barrel_hcal.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
ebeam: 5
pbeam: 41
features:
beampipe:
tracking:
vertex_barrel:
silicon_barrel:
mpgd_barrel:
silicon_disks:
support_service_assembly:
tof_barrel:
tof_endcap:
pid:
dirc:
pfrich:
drich:
ecal:
forward_homogeneous:
forward_insert_homogeneous:
barrel_interlayers:
backward_PbWO4:
solenoid:
hcal:
forward:
forward_insert:
#barrel_gdml:
backward:
far_forward:
far_forward_brycecanyon:
far_backward:
far_backward:
2 changes: 1 addition & 1 deletion configurations/calorimeters.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,5 +9,5 @@ features:
hcal:
forward:
forward_insert:
barrel:
barrel_gdml:
backward:
2 changes: 1 addition & 1 deletion configurations/central.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,5 +22,5 @@ features:
hcal:
forward:
forward_insert:
barrel:
barrel_gdml:
backward:
2 changes: 1 addition & 1 deletion configurations/full.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ features:
hcal:
forward:
forward_insert:
barrel:
barrel_gdml:
backward:
far_forward:
far_forward:
Expand Down
27 changes: 27 additions & 0 deletions configurations/hcal_gdml.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
features:
beampipe:
tracking:
vertex_barrel:
silicon_barrel:
mpgd_barrel:
mpgd_dirc:
silicon_disks:
support_service_assembly:
tof_barrel:
tof_endcap:
pid:
dirc:
mrich:
drich:
ecal:
forward_homogeneous:
forward_insert_homogeneous:
barrel_sciglass:
backward_PbWO4:
solenoid:
hcal:
barrel_gdml:
far_forward:
far_forward:
far_backward:
far_backward:
2 changes: 1 addition & 1 deletion configurations/imaging.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ features:
hcal:
forward:
forward_insert:
barrel:
barrel_gdml:
backward:
far_forward:
far_forward:
Expand Down
2 changes: 1 addition & 1 deletion configurations/sciglass.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ features:
hcal:
forward:
forward_insert:
barrel:
barrel_gdml:
backward:
far_forward:
far_forward:
Expand Down
Loading

0 comments on commit 3ab7e7a

Please sign in to comment.