LArSoft Coordination Meeting

US/Central
Zoom-only

Zoom-only

Description

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:

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

 

 

There are minutes attached to this event. Show them.