Skip to content

light yield fix for Run-2 - #917

Open
mvicenzi wants to merge 10 commits into
feature/pmtsim_gainfrom
feature/mv_lightfix
Open

light yield fix for Run-2 #917
mvicenzi wants to merge 10 commits into
feature/pmtsim_gainfrom
feature/mv_lightfix

Conversation

@mvicenzi

Copy link
Copy Markdown
Member

Note : This is being opened against feature/pmtsim_gain to showcase meaningful differences for review, but it should be rebased on the production branch once #892 is merged.

This PR introduces two empirical/effective corrections that close the light model discrepancy for Run-2 by fixing both the signal shape and the overall PE normalization (see SBN-docdb-48157, SBN-docdb-48511).

Two corrections are introduced:

  • ApplyTailSuppression() applies a subtractive, causal correction to the final waveform. It tracks a running low-pass-filtered estimate Q of the waveform (filter with time constant Tau) — and subtracts Eps x Q from each sample (clamped so the pulse cannot flip polarity). Esp is a factor that controls the strenght of the correction. This removes the excess integrated charge in the tail while leaving the prompt peak essentially untouched.

  • Distance-dependent photon survival probability: instead of a flat QE cut, each scintillation photon is now kept with probability QE x S(d), where S(d) is a function of the distance between the emission point of the photon and the PMT. It is configured via specifying distance bins via DistanceSurvival.BinEdges and the corresponding values with DistanceSurvival.Factors. It defaults to 1 outside the configured bin range.

Both corrections are currenlty enabled and tuned ONLY for Run-2 data.
The tune for Run-3/4 is still being optimized.

@mvicenzi mvicenzi self-assigned this Jul 28, 2026
@mvicenzi mvicenzi added the enhancement New feature or request label Jul 28, 2026
This was linked to issues Jul 28, 2026

@PetrilloAtWork PetrilloAtWork left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I left some minor comments.
This is a configuration-breaking change, and I mentioned a way not to make it so.
However, this PR is very well written and very well documented.

Comment thread icaruscode/PMT/Algorithms/PMTsimulationAlg.cxx Outdated
Comment thread icaruscode/PMT/Algorithms/PMTsimulationAlg.h Outdated
Comment thread icaruscode/PMT/Algorithms/PMTsimulationAlg.cxx Outdated
mvicenzi and others added 3 commits July 29, 2026 00:05
Co-authored-by: Gianluca Petrillo <petrillo@slac.stanford.edu>
Co-authored-by: Gianluca Petrillo <petrillo@slac.stanford.edu>
@mvicenzi

Copy link
Copy Markdown
Member Author

Thank you @PetrilloAtWork !
I have implemented your suggestions.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Light Fix ICARUS PMT Response Mismatch Between Data and MC

2 participants