To connect via Zoom: Meeting ID 831-443-820
Password distributed with meeting announcement
(See instructions for setting Zoom default to join a meeting with audio and video off: https://larsoft.org/zoom-info/)
PC, Mac, Linux, iOS, Android: https://fnal.zoom.us/j/831443820
Phone:
https://fnal.zoom.us/zoomconference?m=SvP8nd8sBN4intZiUh6nLkW0-N16p5_b
H.323:
162.255.37.11 (US West)
162.255.36.11 (US East)
213.19.144.110 (EMEA)
See https://fnal.zoom.us/ for more information
At Fermilab: no in-person presence at the lab for this meeting
Erica: Release and project report
No comments
Ed Tyley, Gray Putnam: New SCED correction procedure and Calorimetry module
Introduced the problem of space charge. Noted that distance intervals not preserved
Current LArSoft solutions
SCE service
forward and backwards maps
SBND uses interpolated TH3s
Calorimetry module
Uncorrected tracks as input
Corrects spatial position for each trajectory point
“Unsqueezes" the dx when calculating de/dx
As SCE is non-uniform, adjacent space-points will be squeezed together when drifting, effectively reducing the dx observed at the wires from the true dedx
Proposal
New module to bring corrections forward as far as possible in the reco chain
Correct output of patern rec (eg, Pandora) on a slicee-by-slice basis (positions of vertices and space pts)
Ensures all particle flows in a slice are treated consistenly (eg, one t0 is used)
Avoid introducing gaps (eg between vertex and shower)
Can then run track/shower finding with little modification
Trajectory pt positions and directions will be corrected
Useful for CRT-track matching, MCS meas, track length estimation, etc
Shower conversion gaps and lengths are also corrected
Also proposing to use local E field when calc recombination (more later)
Aim to provide a more general and cohesive treatement of SCE
SCECorrection module had been introduced as a standalone module to implement the corrections
Take particle flow input (eg, Pandora, but can be anything that produces PFPs)
Collects t0s for all objects in a given slice (t0 labels are fcl params)
If multiple t0s are found, pick closest to trigger time
If required, apply t0 shift to all objects in slice
Use SCE service to apply spatial SCE corrections
Recreate full particle flow heirarchy in output but w spatial corerctions
Downstream changes
dx calc for dE/dx is calculated using wire pitch and geom
Still need to appply “squeezing” correction
need to know uncorected position for that
Recomb calculation using local electric field needs to be added
Decided to create a new calorimetry module rather than further complicate existing
Gray Putnam will talk about that next
Introduced pitch and recomb corrections to PandoraShower for dE/dx
Implem very sim to that used in tracks
Correcting dE in dE/dx
Recomb dep on E field
SCE service gives local E
DetectorProperties servic calcs recomb using global E field
Overload existing functions to allow for the local E-field to be passed to calc
Also useful for other E field non-uniformities
Changes needed in CalorimetryAlg in larreco, DetectorProperties in lardataalg, ArgoNeut Detector Properties in lardata
PandoraShower dE/dx tool and new calorimetry module now use the new interface
Gray Putnam: Calorimetry module changes
Second compoinent is new Track caolorimetry whiel builds off the above
Largely a re-write of the eisting Calorimetry modjule
Also updated to be cleaner and more extensible
Produces identical output in vanilla config to floating point precision except for
PlaneID is now always valid, whereas sometimes Calorimetry module produces invalid PlaneIDs
DeadWireResRC's are not computed **** (DeadWireResRC() )
[Erica: Checked this after the meeting. These values are used in the residual range Chi2 PID calculation to subtract the expected charge missing due to dead wires. Will need to be added back into the new module. But not necessary with this PR]
Updates to alg in the new module: three main additions (all optional — as noted, w/o any turned on, produces identical output to existing module)
Track pitch calc for new Space pt correction scheme
E field distorion correc inside Calorimetry module computation
Charge measurement using the recob::Hit::SummedADC() method
Track pitch: dx in dedx
Even after space pt corrections, there is still a residual correction that must be done
Track pitch involves charges as seen by the wires, not just the true particle trajectory
This makes the new track pitch computation slightly diff from prior method
[Mean (reco pitch - true / true) nearly identical for both methods — can’t see the difference in the histograms. Tested only w modest N events]
New module able to use both methods
dE in dedx
E field *distortion* is now (optionally) accounted for in the recombination correction
Uses new DetectorProperties interface
[Showed validation dE/dx plots comparing w/o SCE, w uncorrected SCE, and w SCE + corrections. All good]
SummedADC hit charge
Already computed by hit-finding. Updates to the Calorimetry module are just there to make it usable in the calorimetry context
Long discussion on the algorithm. The main point, I think, was that the SummedADC does not rely on the Gaussian fits. It just looks at the full width, and sums ADC values underneath. Includes full hit cluster / snippet.
Provided refs to performance of this change: sbn-docdb 18018, ICARUS 17527
All hits in a snippet / cluster have the same SummedADC, so needs to ensure multiple hits from the same snippet are not included in the output. to prevent double-counting of charge
Does this using OrganizeHitSnippets function — ensures tha no two hits in the input are part of the same snippet.
Two hits are in the same snippet if they have the same StartTime, EndTime and Wire
Summary of updates
Gnocchi Calorimetry module is clean and extensible re-write of Calorimetry module
In vanilla config, provides ident output and uses same basic reco methodology
Includes plumbing code to enable use of the new developments in space charge corrections and charge extraction in the Calorimetry context
Discussion:
Kyle: Suggests consolidating this work so that we don’t have multiple modules. Maybe push to retire the old one?
Also, the interface change suggests that a design needs to be re-visited.
Erica: Agree. Preference for this method of handling recombination corrections, for instance. Will pursue these points.
Changes approved. Should create ticket to fill values for DeadWireResRC() method.
Robert Hatcher: Genie v2 to v3 transition issues
If in Genie v3, using anything but “Default” for:
GENIEHelper FHICL parameter “EventGeneratorList"
“—event-generator-list” argument for GENIE standalone applications (eg, gevgen_fnal)
Then probably not getting the complete “tune” you *think* you’ve specified
This is a real problem. Take this seriously and check your code / production workflows
A reminder
Genie authors caution users against using anything but a comprehensive “genie mode” (“Default” setting below) for physics studies
not det measures gen-level reaction modes
Detectors measure final states / toplogies
No final state / topology ….etc etc
Provided example of how doing something other than the above causes unexpected result
Recommend each expt go back into processes and ensure that if using v3, that they are only using the event gen list labeled “Default”
Discussion
Lynn: prob mostly a prob for MicroBooNE and DUNE?
Robert: hope this will propagate out to all production workflows
Patrick Green: Updates to optical simulation for SBND and DUNE
Changes to legacy LArG4, but will update new larg4 right after
Model refinements in this update
Updates semi-analytic hits (N photons) model
New model for solid angle of dome-like OpDets (PMTs)
Diff set of params for flat and dome OpDets
Updated photon transport time model
Angular dependence of params for VUV photons
Include border effects for visible photons
Updated semi-analytic model functions in Photon Visibility service
Required to read new params
Old functions kept as placeholders for re-factored larg4
Will be removed in subsequent update
Bug found in OpDet type identification
Spherical OpDets were incorrectly being flagged as bars/boxes (larsim/LegacyLArG4/OpFastScintillation.hh/cxx)
was introduced in July 2020
Update has work-around in OpFastScintillation, but did not fix bug in OpDet, which is where “isBar()” is returning the wrong answer.
Also check for TGeoSphere in OpDet (??)
Method perhaps should be added to geo::OpDetGeo, an “isSphere()” function analogous to “isBar()”, etc.
[Suggested opening a ticket for this so that we can track that there is a bug in isBar(), and that a new method IsSphere() is needed]
Testing and validation
On-going
Expect to see diff number of photons / timings in CI tests due to updated LAr props
Comparing perf w optical lib generated in identical geom — will also identify whether there are bugs in LArSoft implementation
eg, Fractional diff in VUV photons vs PD number
Status and plans
All in larsim/feature/pgreen_semianalytic_update
Aim to finish testing today
PR expected on Wednesday
Would like to have this included in this week if possible (!!)
Discussion:
Looks ok. Changes approved
Create ticket to track issues with OpDet::isBar(), and need for new OpDet:isSphere() method