Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support rotated HGCal Wafers in Fireworks #38054

Merged
merged 6 commits into from May 26, 2022

Conversation

rovere
Copy link
Contributor

@rovere rovere commented May 24, 2022

PR description:

This PR addresses the following point:

  • Improve geometry handling in Fireworks by supporting fully rotated layers in HGCal. The old handling of reconstruction geometry in Fireworks was too decoupled from the tools developed to create and handle the HGCal geometry. Now every aspect of the geometry relevant for a correct rendering is handled while creating the geometry itself, not by homemade code at rendering time. Comments in the single git commits and inside the code are far more explanatory.
  • Correctly handle the cells' orientation of the fully rotated layers. The improved handling should be generic enough to be valid for arbitrary rotations, not just the current one at 30 degrees. Comments in the single git commits and inside the code contain more information.
  • Correctly pass the thickness of every single cell or tile inside the geometry, so that the 3DRecHits rendering of the single cells and tiles is properly done. Comments have been added to the code to alert the developer about the downstream effects in case she wants to change the behaviour.
  • Update the Fireworks plugins to use the feature that has been added and stored along with the HGCal reconstruction geometry.

PR validation:

The code has been tested using D86 and D88 geometry. No further bugs nor strange behaviour is observed.
In particular, layers 28, 30 and 32 show the correct rendering, as shown in the following images:
Layer28_D86
Layer30_D86
Layer32_D86

Moreover, one can see the different orientations of the single cells within the rotated layers with respect to the default orientation, as shown in this picture:

cellsOrientation_28_30_32

With the introduction of fully rotated layers in HGCAL, the correct
handling and representation in Fireworks became even more complex. The
approach followed here is to create fake DetIds for each wafer in the
Silicon section of HGCal, have the hexagons correctly computed by the
HGCal* geometry-related classes, including the full layer rotation in
the CE-H section. The Scintillators geometry is handled using directly
tiles, and no changes were required.

The routines actually parsing, computing and creating the Fireworks
geometry have been changed and update to use those fake wafer-detids.
When querying the geometry for the position of cells in the HGCal
detector, the convention used to prepare the Fireworks geometry was that
the last point (that is sent in addition to the minimum required to
fully describe the global position of each cell) was attached to pass
down the information about the thickness of each cell. This PR
re-establish that convention that was lost in previous commits. An
explicit comment has been added to make that somehow more explicit.
The information for each (full) cell in all Si wafer about its
orientation in space is added to the dump of the HGCal Geometry. The
information is stored in location `shape[2]` of each valid DetId, and is
zeroed for the scintillator tiles. The information is used by some
Fireworks plugin to properly render the 3D cells. More information has
been added, as comment, directly into the code.
@cmsbuild
Copy link
Contributor

+code-checks

Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-38054/30138

  • This PR adds an extra 52KB to repository

@cmsbuild
Copy link
Contributor

A new Pull Request was created by @rovere (Marco Rovere) for master.

It involves the following packages:

  • Fireworks/Calo (visualization)
  • Fireworks/Core (visualization)
  • Fireworks/Geometry (visualization)
  • Fireworks/SimData (visualization)
  • Geometry/HGCalGeometry (geometry, upgrade)

@civanch, @Dr15Jones, @alja, @makortel, @cvuosalo, @ianna, @mdhildreth, @cmsbuild, @AdrianoDee, @srimanob can you please review it and eventually sign? Thanks.
@trtomei, @alja, @beaucero, @fabiocos, @bsunanda this is something you requested to watch as well.
@perrotta, @dpiparo, @qliphy you are the release manager for this.

cms-bot commands are listed here

@rovere
Copy link
Contributor Author

rovere commented May 24, 2022

@cmsbuild please test

@cmsbuild
Copy link
Contributor

+1

Summary: https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-280989/24935/summary.html
COMMIT: f609544
CMSSW: CMSSW_12_5_X_2022-05-23-2300/el8_amd64_gcc10
User test area: For local testing, you can use /cvmfs/cms-ci.cern.ch/week0/cms-sw/cmssw/38054/24935/install.sh to create a dev area with all the needed externals and cmssw changes.

Comparison Summary

Summary:

  • No significant changes to the logs found
  • Reco comparison results: 4 differences found in the comparisons
  • DQMHistoTests: Total files compared: 50
  • DQMHistoTests: Total histograms compared: 3650985
  • DQMHistoTests: Total failures: 8
  • DQMHistoTests: Total nulls: 0
  • DQMHistoTests: Total successes: 3650955
  • DQMHistoTests: Total skipped: 22
  • DQMHistoTests: Total Missing objects: 0
  • DQMHistoSizes: Histogram memory added: 0.0 KiB( 49 files compared)
  • Checked 208 log files, 45 edm output root files, 50 DQM output files
  • TriggerResults: no differences found

@@ -402,7 +402,8 @@ HGCalGeometry::CornersVec HGCalGeometry::getNewCorners(const DetId& detid, bool
co[i] = GlobalPoint(
(r + signr[i] * dr) * cos(fi + signf[i] * dfi), (r + signr[i] * dr) * sin(fi + signf[i] * dfi), (v.z() + dz));
}
co[ncorner - 1] = co[0];
// Used to pass downstream the thickness of this cell
co[ncorner - 1] = GlobalPoint(0, 0, -2 * dz);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would you mind to comment on this line? Do you expect something to change from this line? Thx.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is an understanding between geometry and fireworks - in addition to the corners fireworks also needs half the width. Marco has correctly put it in.

@cvuosalo
Copy link
Contributor

+1

@alja
Copy link
Contributor

alja commented May 24, 2022

+1

@bsunanda
Copy link
Contributor

@srimanob Could you please approve this PR. Needed to define V17 geometry

@srimanob
Copy link
Contributor

+Upgrade

This PR is to update geometry related to the firework on HGCal.

@cmsbuild
Copy link
Contributor

This pull request is fully signed and it will be integrated in one of the next master IBs (tests are also fine). This pull request will now be reviewed by the release team before it's merged. @perrotta, @dpiparo, @qliphy (and backports should be raised in the release meeting by the corresponding L2)

@perrotta
Copy link
Contributor

+1

@cmsbuild cmsbuild merged commit 6e0ffa6 into cms-sw:master May 26, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

7 participants