Skip to content

Calo Surface Steps#1757

Open
sophiemiddleton wants to merge 29 commits intoMu2e:mainfrom
sophiemiddleton:interdet
Open

Calo Surface Steps#1757
sophiemiddleton wants to merge 29 commits intoMu2e:mainfrom
sophiemiddleton:interdet

Conversation

@sophiemiddleton
Copy link
Copy Markdown
Contributor

This pull request introduces support for calorimeter (Calo) surfaces in the geometry and extrapolation infrastructure, enabling track extrapolation to the calorimeter disks. The main changes include defining Calo surfaces, integrating them into surface mapping, and adding extrapolation logic to reach Calo disks. Additionally, configuration options are updated to allow extrapolation to Calo disks.

Calorimeter surface integration:

  • Added Calo class to define the geometry of calorimeter disks and edges, including inner/outer cylinders and front/back disks for both disk 0 and disk 1 (KinKalGeom/inc/Calo.hh, KinKalGeom/src/Calo.cc). [1] [2]
  • Integrated Calo surfaces into the SurfaceMap class and surface mapping logic, allowing retrieval and mapping of Calo surfaces (KinKalGeom/inc/SurfaceMap.hh, KinKalGeom/src/SurfaceMap.cc). [1] [2] [3]

Extrapolation enhancements:

  • Added ExtrapolateCalo class to handle extrapolation predicates and logic for reaching Calo disks, including methods for finding nearest disks and intersection checks (Mu2eKinKal/inc/ExtrapolateCalo.hh).
  • Updated KKExtrap class to include extrapolation methods for Calo disks and associated member variables for Calo disk surfaces and predicates (Mu2eKinKal/inc/KKExtrap.hh). [1] [2] [3]

Configuration updates:

  • Added new configuration flags (ToCaloD0, ToCaloD1) in the FCL files to control extrapolation to Calo disks (Mu2eKinKal/fcl/prolog.fcl). [1] [2] [3]

Surface ID and mapping updates:

  • Extended SurfaceId enumeration and mapping to include Calo disk surfaces, and updated string mappings for these IDs (DataProducts/inc/SurfaceId.hh, DataProducts/src/SurfaceId.cc). [1] [2]
  • Updated MakeSurfaceSteps_module.cc to map new Calo surface IDs and add debug output for Calo-related steps (CommonMC/src/MakeSurfaceSteps_module.cc). [1] [2]

Build system update:

  • Added Calo.cc to the build system for compilation (KinKalGeom/CMakeLists.txt).

@sophiemiddleton sophiemiddleton marked this pull request as draft March 12, 2026 18:13
@FNALbuild
Copy link
Copy Markdown
Collaborator

Hi @sophiemiddleton,
You have proposed changes to files in these packages:

  • DataProducts
  • KinKalGeom
  • Mu2eKinKal
  • CommonMC
  • TrkReco

which require these tests: build.

@Mu2e/write, @Mu2e/fnalbuild-users have access to CI actions on main.

⌛ The following tests have been triggered for 2610df8: build (Build queue - API unavailable)

About FNALbuild. Code review on Mu2e/Offline.

@sophiemiddleton
Copy link
Copy Markdown
Contributor Author

this is an initial draft with most of the work. I have a small issues to fix before it becomes a full PR

@FNALbuild
Copy link
Copy Markdown
Collaborator

☀️ The build tests passed at 2610df8.

Test Result Details
test with Command did not list any other PRs to include
merge Merged 2610df8 at 6a994e7
build (prof) Log file. Build time: 04 min 08 sec
ceSimReco Log file.
g4test_03MT Log file.
transportOnly Log file.
POT Log file.
g4study Log file.
cosmicSimReco Log file.
cosmicOffSpill Log file.
ceSteps Log file.
ceDigi Log file.
muDauSteps Log file.
ceMix Log file.
rootOverlaps Log file.
g4surfaceCheck Log file.
trigger Log file. Return Code 1.
check_cmake Log file.
FIXME, TODO ➡️ TODO (4) FIXME (5) in 10 files
clang-tidy ➡️ 2 errors 48 warnings
whitespace check no whitespace errors found

N.B. These results were obtained from a build of this Pull Request at 2610df8 after being merged into the base branch at 6a994e7.

For more information, please check the job page here.
Build artifacts are deleted after 5 days. If this is not desired, select Keep this build forever on the job page.

Comment thread KinKalGeom/src/Calo.cc Outdated
@sophiemiddleton sophiemiddleton marked this pull request as ready for review April 24, 2026 18:58
Copy link
Copy Markdown
Collaborator

@brownd1978 brownd1978 left a comment

Choose a reason for hiding this comment

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

Could you please merge in the head? That will get rid of the messages about infrastructure changes which are already merged.

Comment thread CommonMC/src/MakeSurfaceSteps_module.cc Outdated
@sophiemiddleton
Copy link
Copy Markdown
Contributor Author

I merged the HEAD and fixed a few conflicts

Copy link
Copy Markdown
Collaborator

@brownd1978 brownd1978 left a comment

Choose a reason for hiding this comment

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

Overall this looks really good. Thanks for adding extrapolation to KKLIne and CentralHelix fits. I just have a question about how multiple intersections are handled.

The current calo geom only describes VD surfaces, so extrapolation doesn't do any material corrections. In future it would be nice to add materials in front of the crystals like the CF and supports and the calibration system.

// update the cache
inter_ = newinter;
ann_ = disks_[idisk];
//sid_ = SurfaceId(SurfaceIdEnum::calo_Foils,idisk); //FIXME
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Is sid_ left out intentionally?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

yes, I agree, adding in the material corrections would be a good next step. I'll take a look and see what I can figure out as a future task here.

Comment thread TrkReco/fcl/prolog.fcl Outdated
#
# may use a more careful optimization, but this is it for now
#------------------------------------------------------------------------------
InterdetectorTimeBootstrap : {
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Does this correspond to code not in this PR?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Ah, this is old stuff. I had a module for the time calibration, it was removed, ill remove this comment too

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.

4 participants