Skip to content

Add LscMuons angular distribution for cosmic muons at the LSC - #155

Draft
AlvaroEzq wants to merge 1 commit into
masterfrom
aezq_lscMuonsAngularDistribution
Draft

AlvaroEzq wants to merge 1 commit into
masterfrom
aezq_lscMuonsAngularDistribution

Conversation

@AlvaroEzq

@AlvaroEzq AlvaroEzq commented Sep 21, 2026 •

Copy link
Copy Markdown
Contributor

AlvaroEzq Medium: 100 Powered by Pull Request Badge

Adds two entries to AngularDistributionFormulas describing the cosmic muon flux surviving the 2450 m.w.e. rock overburden of the Canfranc Underground Laboratory. The slant rock thickness grows as h0/cos(theta), so the intensity per unit solid angle is much steeper than at sea level, I(theta) ~ cos^6(theta). Reference: Trzaska et al., Eur. Phys. J. C 79, 721 (2019).

  • LscMuons: sin(theta) * cos^6(theta), for the 'cosmic' spatial generator, whose projected sampling area does not depend on the direction.
  • LscMuonsWall: sin(theta) * cos^7(theta), for a horizontal 'wall' or 'circle' surface generator, where position and direction are sampled independently and the cos(theta) projection of the plane must be included explicitly.

The sin(theta) factor is the jacobian of dOmega = sin(theta) dtheta dphi, needed because the formula is sampled with TF1::GetRandom on theta. This is the convention of SinCos2, not the one of Cos2 / Cos3. The behaviour of the existing formulas is unchanged, and a note documenting that both conventions coexist has been added to the enum.

GetCosmicFluxInCountsPerCm2PerSecond() now also supports these formulas, so GetEquivalentSimulatedTime() returns the live time for this generator. Geant4 does not provide an absolute rate, so the reference measured flux through a horizontal plane is used, J = Phi_horiz * (n + 2) / (n + 1) for LscMuons and J = Phi_horiz for LscMuonsWall.

Adds two entries to AngularDistributionFormulas describing the cosmic muon
flux surviving the 2450 m.w.e. rock overburden of the Canfranc Underground
Laboratory. The slant rock thickness grows as h0/cos(theta), so the intensity
per unit solid angle is much steeper than at sea level, I(theta) ~ cos^6(theta).
Reference: Trzaska et al., Eur. Phys. J. C 79, 721 (2019).

- LscMuons: sin(theta) * cos^6(theta), for the 'cosmic' spatial generator,
  whose projected sampling area does not depend on the direction.
- LscMuonsWall: sin(theta) * cos^7(theta), for a horizontal 'wall' or 'circle'
  surface generator, where position and direction are sampled independently
  and the cos(theta) projection of the plane must be included explicitly.

The sin(theta) factor is the jacobian of dOmega = sin(theta) dtheta dphi,
needed because the formula is sampled with TF1::GetRandom on theta. This is
the convention of SinCos2, not the one of Cos2 / Cos3. The behaviour of the
existing formulas is unchanged, and a note documenting that both conventions
coexist has been added to the enum.

GetCosmicFluxInCountsPerCm2PerSecond() now also supports these formulas, so
GetEquivalentSimulatedTime() returns the live time for this generator. Geant4
does not provide an absolute rate, so the reference measured flux through a
horizontal plane is used, J = Phi_horiz * (n + 2) / (n + 1) for LscMuons and
J = Phi_horiz for LscMuonsWall.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant