GlueX Software Meeting, August 17, 2021

From GlueXWiki
Revision as of 21:18, 21 August 2021 by Marki (Talk | contribs) (added minutes)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

GlueX Software Meeting
Tuesday, August 17, 2021
3:00 pm EDT
BlueJeans: 968 592 007


  1. Announcements
    1. New version set: 4.44.0 (Mark)
    2. Dirac++ library now builds as standalone using cmake (Richard)
    3. move to new work disk (Mark)
  2. Review of Minutes from the Last Software Meeting (all)
  3. Review of Minutes from the Last HDGeant4 Meeting (all)
  4. FAQ of the Fortnight: What is the difference between a clone and a fork?
  5. More on using GCC 8 (Mark)
  6. Histogramming using uproot and our flat tree output (Jon)
  7. Review of recent issues and pull requests:
    1. halld_recon
    2. halld_sim
    3. CCDB
    4. RCDB
    5. MCwrapper
  8. Review of recent discussion on the GlueX Software Help List (all)
  9. Meeting time change? (all)
  10. Action Item Review (all)


Present: Alex Austregesilo, Nathan Brei, Sean Dobbs, Sergey Furletov, Nathaniel Hoffman, Mark Ito (chair), Igal Jaegle, Naomi Jarvis, Torri Jeske, Richard Jones, David Lawrence, Alison LaDuke, Zisis Papandreou, Simon Taylor, Tyler Viducic, Jon Zarling

There is a recording of this meeting. Log into the BlueJeans site first to gain access (use your JLab credentials).


  1. New version set: 4.44.0 This is the latest and was released a week ago.
  2. Dirac++ library now builds as standalone using cmake This is a major structural change to the layout of the Diracxx directory. It requires two new packages, python3-devel and boost-python36-devel, that many of us did not have installed heretofore.
  3. move to new work disk This is happening today.

Review of Minutes from the Last Software Meeting

We went over the minutes from the meeting on July 20.

On halld_recon issue #537, Problems with photon energies in MC samples, Sean noted that Richard has merged in Sean's changes to address parts of the problem. If further tests are done and succeed, we may consider back-ported this fix to older reconstruction versions.

Also Sean has looked as some of the random trigger files. He sees instances where the correct counter recorded but the wrong tagged beam energy. He has a script that will correct the energy and plans to re-write corrected copies of these files.

Richard asked about whether there is a system at the Lab for coordinating file transfer, starting from the tape library on to off-site locations. There does not seem to be an end-to-end solution. David suggested submitting a Service Now Incident Report (SNIR).

Mark reported that he and Alex discussed the location of files brought back to the Lab from the HPC centers. They concluded that the current use of volatile and cache is giving acceptable performance.

Review of Minutes from the Last HDGeant4 Meeting

We went over the minutes from the HDGeant4 meeting on August 10 with very little comment or discussion.

FAQ of the Fortnight: What is the difference between a clone and a fork?

Mark made some remarks about this FAQ. A fork is a clone from a GitHub repository to another GitHub repository, with GitHub-specific features added. Find the explanation at 27:45 in the recording. He described the difference and demonstrated the defaults in how GitHub presents source and target repo/branch combinations when a pull request is composed.

More on using GCC 8

Mark has been successful building the GlueX software using Geant4 10.06 and GCC 8 using three different methods:

  • GCC 8 in a CentOS 7 Container using Developers Toolset 8
  • GCC 8 in a CentOS 8 Container
  • GCC 8 module installed on the farm

The first was discussed at the last Software Meeting and announced in an email message.

There are HOWTOs for each of these approaches.

Histogramming Using Uproot and Our Flat Tree Output

Jon introduced gluupy, a system for fast histogramming of GlueX data using Uproot and Python.

  • Speed comes principally from putting trees in large Numpy arrays.
  • Filling of Numpy arrays from ROOT trees is facilitated by Uproot.
  • ROOT functionality accessed from Python with PyROOT.

The goal is to reduce the time of execution and overhead of setting up an iteration of an analysis. Progress in refining an analysis therefore happens more quickly and perhaps more comprehensively as well (more things can be tried).

The walked us through a complete example of an analysis of η→π0π0π0.

Please see his slides for details and find his presentation starting at 47:50 in the recording. The code is available in the hd_utilities repository.

Maintaining the Online halld_recon

David and Sergey proposed new approach to maintaining the build of halld_recon used for various purposes during data taking. Traditionally the build was done on disks resident in the Counting House to insulate us from network outages and was maintained "by hand." Instances where the network caused difficulties have turned out to be rare and so we might want to use a variant of the system used in the offline builds to take advantage of the effort already being expended in maintaining them, even though that is done on a network mounted disk in the Computer Center. Alex pointed out that we upgrade the online halld_recon only seldom, for stability during the run. Mark mentioned we could go to a system where a version set file is used to choose the running version, so upgrades can proceed in parallel with use of a production version, and any switch to a new build can be reversed instantly if problems arise.

Alex agreed to call a meeting to discuss these issues with David, Sergey, and Mark.