GArSoft Status Simulation and Reconstruction Software for the DUNE - - PowerPoint PPT Presentation

garsoft status simulation and reconstruction software for
SMART_READER_LITE
LIVE PREVIEW

GArSoft Status Simulation and Reconstruction Software for the DUNE - - PowerPoint PPT Presentation

GArSoft Status Simulation and Reconstruction Software for the DUNE MPD ND Tom Junk, Leo Bellantoni, Eldwan Brianne, Thomas Campbell, Gavin Davies DUNE ND Software Integration Workshop July 24, 2019 The DUNE Near Detector Complex 3DST-S


slide-1
SLIDE 1

GArSoft Status – Simulation and Reconstruction Software for the DUNE MPD ND

Tom Junk, Leo Bellantoni, Eldwan Brianne, Thomas Campbell, Gavin Davies DUNE ND Software Integration Workshop July 24, 2019

slide-2
SLIDE 2

The DUNE Near Detector Complex

July 24, 2019

  • T. Junk | DUNE/GArSoft

2

ArgonCube MPD 3DST-S ArgonCube: Pixel-based LArTPC, unmagnetized (150 Tons) MPD: "Multi-Purpose Detector": High-Pressure Gas TPC, solenoid, ECAL, muon stack 3DST-S Plastic scintillator, gas TPC, magnet, and ECAL

Engineering Axes

y x z

Software Axes

slide-3
SLIDE 3

DUNE ND Prism Hall

July 24, 2019

  • T. Junk | DUNE/GArSoft

3

MPD and ArgonCube plan to move up to 35m

  • ff axis.

3DST-S stays on axis in an alcove

slide-4
SLIDE 4

July 24, 2019 T. Junk | DUNE/GArSoft 4

One of the first p-Pb collision events in ALICE (raw data)

The hits are all there!

slide-5
SLIDE 5

We Need our Own Software

July 24, 2019 T. Junk | DUNE/GArSoft 5

  • ALICE software is great
  • GEANT4 (and GEANT3!)
  • Calibrated with data, used for physics
  • Includes lots of subtle effects
  • Efficient, compact
  • But it doesn't do what we need
  • We need 10 bar Ar (c.f. 1 bar mostly Ne)
  • Hole in the middle needs to be filled
  • We need to reconstruct low-momentum tracks
  • We need to reconstruct tracks pointing in arbitrary directions, starting anywhere in the

chamber

  • We need to integrate it with the LAr Pixel detector, the ECAL, 3DST, and muon

catchers.

slide-6
SLIDE 6

Ways Forwards (as of 1.3 Yr ago)

1. Fork ALICE software and develop it as our own

  • Great starting point
  • Terminology and techniques differ from FD (and ND) (e.g. doesn't use art). It's just based on ROOT
  • May find some things targeted at ALICE physics baked in very deep in the code.
  • More tricky to use different framework from the Far Detector, or the Pixel LArDetector and 3DST-S
  • I/O structure mixed in with calculation

2. Modify LArSoft

  • PixLAr ran into computer resource issues. LArSoft likes to save raw::RawDigits for example
  • LArSoft's G4 interface is hard to modify away from the rectangular prism (Difficult to add the CPA frames

to the ProtoDUNE geometry for example as they cut small notches in the active volume)

  • Data products aren't appropriate. Tracks e.g. are helices and not just arbitrary hit collections.
  • Need a fully-simulated ECAL

3. Build Our Own

  • STT did this – HISOFT (T. Alion et al). Repo: dunefgt
  • Lots of work
  • Reco algs would have to be all our own anyway, even in options 1 and 2
  • Brian Rebel already went down this path: GArSoft, which is based on art and nutools

July 24, 2019 T. Junk | DUNE/GArSoft 6

slide-7
SLIDE 7

Filling the Hole

July 24, 2019 T. Junk | DUNE/GArSoft 7

  • 18 Sectors of IROC and OROC

channels now using ALICE nominal geometry

  • Rectangular array of pixels

in a disk in the center

  • Pixel size: 6mm x 6mm

c.f. 4 mm x 7.5mm for inner pad rows.

  • Total channels per side is

now 339068.

  • Total on both sides: 678136
  • About 18%
  • f channels are in the disk.

z (cm) y (cm)

slide-8
SLIDE 8

July 24, 2019

  • T. Junk | DUNE/GArSoft

8

Slide from Alan Bross

slide-9
SLIDE 9

July 24, 2019

  • T. Junk | DUNE/GArSoft

9

MPD ECAL weighs 300 tons + 100 tons for the magnet. 1 Ton of GAr

Neutrino Direction 60 neutrino scatters with LBNF beam spectrum. Most interact in the ECAL

slide-10
SLIDE 10

GArSoft Beginning to End

  • Generators
  • Particle Gun
  • GENIE
  • CRY (to do: CORSIKA)
  • Radiologicals

(not yet tested)

  • Simulation:
  • GEANT4 (uniform B assumed at the moment)
  • GArG4 module patterned on LArG4
  • Outputs energy deposits (recently added to LArSoft)
  • Also outputs channel waveforms: gar::raw::RawDigits, which are

zero-suppressed. No noise. Small event sizes.

July 24, 2019 T. Junk | DUNE/GArSoft 10

DUNE-Doc 13933

slide-11
SLIDE 11

GArSoft TPC Simulation

  • Drift model is a copy of LArSoft's
  • Nearest channel geometry – charge diverts over cracks and inward from
  • edges. To do – deaden the cracks and edges to simulate cover electrodes.
  • No Lorentz angle or space charge yet. Uniform E and B
  • Longitudinal and Transverse Diffusion simulated numerically by sampling

from Gaussian distributions

  • Drift velocity and diffusion input parameters from Magboltz
  • No induction field response on the pads – charge "collects"
  • This may overestimate response to tracks that point straight at pads
  • Less of an issue than with wires since tracks have to point along E

rather than being in the plane containing E and a wire (a la MicroBooNE or DUNE FD)

  • Still a concern as low-energy electrons spiral along B (and E)

July 24, 2019 T. Junk | DUNE/GArSoft 11

slide-12
SLIDE 12

GArSoft Track Reco First Steps

  • Hit finding
  • gar::rec::Hit
  • hits belong on one and only one pad. Necessary for BackTracker to

work, as it makes this assumption (carried over from LArSoft)

  • zero-suppression threshold is a "hit finder".
  • Hit finder module refines hits – if a waveform drops below 20% of its

peak it'll start a new hit.

  • Hits à TPC Clusters (also done by ALICE)
  • gar::rec::TPCCluster
  • Nearby hits grouped together
  • Charge-weighted centroid and RMS calculated

July 24, 2019 T. Junk | DUNE/GArSoft 12

slide-13
SLIDE 13

Vector Hit Finding ("tracklets")

  • gar::rec::VecHit
  • Line segments fit in 3D
  • Maximum length 20 cm (adjustable)
  • TPCClusters added to line segment candidates if they are close

to them

  • Line segments started by close pairs of TPCClusters
  • Two passes performed – remove highest chisquare hits and

attempt to reassign them to other Vector Hits

  • Vector hit contamination near the primary vertex is an issue ("hit

stealing")

  • Tendency to follow pad-row geometry in places (to fix)

July 24, 2019 T. Junk | DUNE/GArSoft 13

slide-14
SLIDE 14

Pattern Recognition & Fitting

  • Pattern Recognition: grouping vector Hits into track candidates
  • Output is gar::rec::Track data products and associations with TPCClusters

and VecHits

  • Matching in 2D (circles) and 3D (constant dip angle) of nearby vector hits
  • Currently has loose cuts so it's highly efficient, but it does break electron

curlers up (cuts too tight), and it stitches together two legs of a conversion

  • r a V
  • Track fit: Kalman Filter
  • Output is a second set of gar::rec::Track data products and associations

with TPCClusters

  • Fit is performed twice, once from either end of the track (vertex is

not yet known)

  • Energy Loss and Scattering à track parameters are different on the two

ends

  • Tracking takes less than 5 secs of CPU/event

July 24, 2019 T. Junk | DUNE/GArSoft 14

slide-15
SLIDE 15

Tracking Performance: 𝜌± and 𝜈±

July 24, 2019 T. Junk | DUNE/GArSoft 15

Charged pion and muon tracking efficiency Electrons are similar, but including them produces a kink at 20 MeV (bigger than the

  • ne that's there).

Low-energy electrons curl around – only partial efficiency for them Low-energy pions and muons stop – have a track length cut of 20 TPC Clusters Protons with P<150 MeV have very little KE and thus stop quickly – plot their efficiency

  • vs. KE

Estimated using Leo B's sample

  • f 𝝃𝜈 events with the optimized

LBNF FHC spectrum

slide-16
SLIDE 16

Tracking Performance: Protons

July 24, 2019 T. Junk | DUNE/GArSoft 16

Very short track efficiency overestimated near a dense primary vertex due to combinatorics – fake matches. Efficiency should go to zero at KE=0. Estimated using Leo B's sample

  • f 𝝃𝜈 events with the optimized

LBNF FHC spectrum

Work in Progress – Optimizations will improve this

slide-17
SLIDE 17

Tracking Performance: Muon Angles and Momenta

July 24, 2019 T. Junk | DUNE/GArSoft 17

~1 Degree angular resolution, and ~4.2% momentum resolution At 0.4 T B field. Should be 3.6% resolution at 0.5 T. Work in Progress – Optimizations will improve these

slide-18
SLIDE 18

Tracking Performance: 4𝜌 Coverage

July 24, 2019 T. Junk | DUNE/GArSoft 18

All tracks with momentum > 200 MeV/c (protons are inefficient for momenta below 150 MeV/c) n.b. Charge modeling on the pads is naive – induced signals will be less for trains

  • f charge arriving on the same pad over lengths of time
slide-19
SLIDE 19

July 24, 2019

  • T. Junk | DUNE/GArSoft

19

slide-20
SLIDE 20

The Same Event in LAr

July 24, 2019 T. Junk | DUNE/GArSoft 20

CVN selects it as a 𝝃e CC. Nick and Tingjun's Ereco = 1.914 GeV (2.0 was true)

slide-21
SLIDE 21

Reconstructing Vertices

  • Initial vertex reco algorithm requires at least two tracks with

nearby endpoints. Extrapolated helices used to fit vertex

  • Some neutral-current events have no tracks at all
  • Some charged-current events have just one track that starts in

the middle of the detector

  • We can declare bare track endpoints as vertices but do not do so at

the moment

  • Neutrals entering from outside the TPC can scatter and make fake

vertices

  • Photon conversions make their own vertices
  • Scattering of throughgoing tracks makes fake vertices with 2

tracks

July 24, 2019 T. Junk | DUNE/GArSoft 21

slide-22
SLIDE 22

July 24, 2019 T. Junk | DUNE/GArSoft 22

Thomas Campbell 𝝃𝜈CC Events with beam pointing along Z

Vertex Resolution

slide-23
SLIDE 23

Finding Short Tracks Near the Primary Vertex

  • Thomas Campbell's work
  • RANSAC line finding +

Neural Network for p/pi separation and energy estimation

  • Energy is dominantly

from range for short

  • tracks. Longer tracks

use curvature. We need an algorithm that uses both optimally

July 24, 2019 T. Junk | DUNE/GArSoft 23

slide-24
SLIDE 24

July 24, 2019 T. Junk | DUNE/GArSoft 24

Slide from Eldwan Brianne, TPC Mini-Workshop, 12 July 2019 https://indico.cern.ch/event/827540/

slide-25
SLIDE 25

July 24, 2019 T. Junk | DUNE/GArSoft 25

Slide from Eldwan Brianne, TPC Mini-Workshop, 12 July 2019 https://indico.cern.ch/event/827540/

slide-26
SLIDE 26

July 24, 2019 T. Junk | DUNE/GArSoft 26

Slide from Eldwan Brianne, TPC Mini-Workshop, 12 July 2019 https://indico.cern.ch/event/827540/

slide-27
SLIDE 27

July 24, 2019 T. Junk | DUNE/GArSoft 27

Slide from Eldwan Brianne, TPC Mini-Workshop, 12 July 2019 https://indico.cern.ch/event/827540/

slide-28
SLIDE 28

The dunetpc Dependency Tree (v08_18_00)

July 24, 2019

  • T. Junk | DUNE/GArSoft

28

TRACE v3_13_12 art v3_02_05 canvas v3_07_03 clhep v2_4_1_0b messagefacility v2_04_03 range v3_0_4_0 art_root_io v1_00_05 canvas_root_io v1_03_03 root v6_16_00 artdaq_core v3_04_15 artg4tk v09_04_02 geant4 v4_10_3_p03d awscli v1_7_15 boost v1_69_0 fhiclcpp v4_09_03 fftw v3_3_8 gsl v2_5 libxml2 v2_9_9 mysql_client v5_5_62 numpy v1_15_4b postgresql v9_6_11b pythia v6_4_28p tbb v2019_3 xrootd v4_8_5b cetlib v3_07_02 cetlib_except v1_03_03 hep_concurrency v1_03_03 sqlite v3_26_00_00 cppunit v1_14_0 cigetcert v1_16_1 cigetcertlibs v1_1 setpath v1_11 cpn v1.7 cry v1_7m curl v7_64_1 dk2nudata v01_07_02a dk2nugenie v01_07_02f genie v2_12_10d lhapdf v5_9_1k log4cpp v1_1_3b dune_oslibs v1_0_0 dune_pardata v01_45_00 dune_raw_data v1_17_33 dunepdsprce v1_1_0 gallery v1_12_03 dunetpc v08_18_00 duneutil v08_18_00 genie_phyopt v2_12_10 genie_xsec v2_12_10 larsoft v08_18_00 lbne_raw_data v1_04_34 nusystematics v00_03_02 larbatch v01_51_03 larana v08_07_00 lareventdisplay v08_06_02 larexamples v08_02_02 larg4 v08_03_01 larpandora v08_06_02 larsoftobj v08_13_00 larwirecell v08_05_01 nutools v2_29_02 systematicstools v00_03_02 jobsub_client v1_2_10 sam_web_client v3_0 eigen v3_3_4a pybind11 v2_2_4 python v2_7_15a pdfsets v5_9_1b ifbeam v2_3_0 ifdhc v2_4_1 libwda v2_26_0 ifdhc_config v2_4_2 ifdh_art v2_08_02 nucondb v2_3_0 jsoncpp v1_7_7c jsonnet v0_11_2 lapack v3_8_0c larreco v08_12_02 larsim v08_06_02 tensorflow v1_3_0e larcore v08_04_01 larcorealg v08_10_00 larcoreobj v08_05_00 lardata v08_04_02 lardataalg v08_06_02 lardataobj v08_03_02 nusimdata v1_17_00 larevt v08_04_01 larsoft_data v1_02_01 marley v1_1_0a larpandoracontent v03_14_07 pandora v03_11_01a protobuf v3_5_2a wirecell v0_11_2
slide-29
SLIDE 29

The GArSoft Dependency Tree (depends on art, nutools)

July 24, 2019

  • T. Junk | DUNE/GArSoft

29

art v3_00_00 canvas_root_io v1_01_07 hep_concurrency v1_01_00 canvas v3_04_00 root v6_12_06a cppunit v1_13_2c tbb v2018_2a boost v1_66_0a clhep v2_3_4_6 messagefacility v2_02_03 range v3_0_3_0 fhiclcpp v4_07_00 fftw v3_3_6_pl2 gsl v2_4 libxml2 v2_9_5 mysql_client v5_5_58a postgresql v9_6_6a pythia v6_4_28k python v2_7_14b xrootd v4_8_0b cetlib v3_04_00 cetlib_except v1_02_02 sqlite v3_20_01_00 cpn v1.7 cry v1_7k dk2nudata v01_07_02 dk2nugenie v01_07_02b genie v2_12_10c lhapdf v5_9_1k log4cpp v1_1_3a gallery v1_09_00 garsoft v02_00_00 genie_phyopt v2_12_10 genie_xsec v2_12_10 nusimdata v1_15_00 nutools v2_26_02 geant4 v4_10_3_p03c ifdh_art v2_06_13 pdfsets v5_9_1b ifbeam v2_2_12 ifdhc v2_3_9 libwda v2_26_0 ifdhc_config v2_4_2 nucondb v2_2_9

slide-30
SLIDE 30

Integration: Easy Issues First

Running detector-specific simulation and reconstruction are all independent pieces – modules work on independent data.

  • channel response
  • data output from sim job and readin in reco job
  • noise filtering
  • deconvolution
  • TPC clusters and hit-finding
  • tracking
  • shower reco
  • calorimetry
  • Some modules and services may duplicate names with those in
  • LArSoft. Can fix those easily.

July 24, 2019 T. Junk | DUNE/GArSoft 30

slide-31
SLIDE 31

Integration: Harder Issues

  • Unified GEANT4 simulation
  • Current modules: LArG4 and GArG4. Consume MCTruth data products, make

sim::SimChannel and energy deposits

  • particles produced in LAr -> GAr -- one can imagine running LArG4 first and then

piping particles that come out of the LAr as MCTruth for GArG4, which gets run second.

  • Particles produced in GAr traveling back into LAr. Our CDR-Lite Executive summary

mentions that backwards-going cosmic rays are an important calibration source for the LAr

  • Either need to iterate this, or run a unified GEANT4 step
  • Unifying the GEANT4 step means having a single geometry description GDML

file (or files), and calling GEANT4 once to follow particles back and forth.

  • Energy deposit data products look like the new LArG4's way of doing things.
  • Data products have different names but that's okay

July 24, 2019 T. Junk | DUNE/GArSoft 31

slide-32
SLIDE 32

Integration: Event Display

  • The three-detector ND Complex will have particles exiting one

detector and possibly going into the other two.

  • Visualizing the events will be useful in developing (traditional)

reconstruction and track-matching algorithms

  • Currently we are working independently
  • MINERvA/MINOS solution involves exchanging data files as far

as I know – not nearly as well integrated.

July 24, 2019 T. Junk | DUNE/GArSoft 32

slide-33
SLIDE 33

Summary

  • Much progress has been made
  • Lots of to-do items
  • First priority is to make the pad response function realistic.
  • Many of the algorithms and tuning parameters' optimal values depend on efficiency and

resolution of underlying pulses.

  • Noise is not in the simulation yet.
  • Hit clustering, pattern recognition, track fitting, vertex finding and fitting and track

extrapolation need optimization. We have initial tries at all of these but performance needs to be improved.

  • Finding short tracks in crowded environments is a challenging problem.
  • To do: Use in analyses
  • Demonstrate we can select muon and electron neutrino CC events with low backgrounds and

high efficiency

  • Count and measure low-energy tracks at the primary vertex
  • Integration with ArgonCube and 3DST-S is a priority, though it is easier to make

progress in a factorized environment.

July 24, 2019 T. Junk | DUNE/GArSoft 33

slide-34
SLIDE 34

A 10-interaction event with conversions end view

July 24, 2019 T. Junk | DUNE/GArSoft 34

No ecal in this display

slide-35
SLIDE 35

A 10-interaction event with conversions side view

July 24, 2019 T. Junk | DUNE/GArSoft 35

slide-36
SLIDE 36

Some current timing numbers

  • 60-interaction events (300 averaged) in ECAL+TPC
  • 3.2 GHz Sandy Bridge desktop with local disk
  • GENIE+G4: 14 secs/event
  • Detector Simulation: 14 sec/event 8 TPC, 6 ECAL
  • Reco: 7 sec/event
  • output size: 2.6 MB/event (ROOT compressed, sim+reco data

products)

July 24, 2019 T. Junk | DUNE/GArSoft 36

slide-37
SLIDE 37

Extras

July 24, 2019 T. Junk | DUNE/GArSoft 37

slide-38
SLIDE 38

Vertex Performance

July 24, 2019 T. Junk | DUNE/GArSoft 38

slide-39
SLIDE 39

July 24, 2019 T. Junk | DUNE/GArSoft 39

60 Scatters Simulated by Eldwan Brianne