Skip to content

Releases: ClarkMcGrew/edep-sim

Release 3.2.0

23 Sep 17:15
Compare
Choose a tag to compare

This provides improvements in the management of Birks' saturation in
ionized materials, a new reader for the HEPEVT kinematics input
format, and various other accumulated bug fixes.

Notable changes in 3.2.0

  • Add a new kinematics generator to accept HEPEVT format files. The
    generator input file is set using
    "/generator/kinematics/hepevt/input [file]" and selected using
    "/generator/kinematics/set hepevt". The reader checks the syntax of
    the input file and adds (hopefully) useful error messages. The
    current behavior is to terminate when an input error is found. It is
    currently very picky and only accepts an input file that follows the write
    format described in the G4HEPEvtInterface.cc file. Future release are
    anticipated to become more general.
  • Update the detector construction so that it look for BIRKSCONSTANT
    in the material properties table and copies the value into the
    material ionization properties. This works around a missing feature
    in GDML where certain material description values cannot be set. In
    GDML, add the property "BIRKSCONSTANT" with the value in units of
    "mm/MeV" and edep-sim will "take care of the rest".
  • Add /edep/material/birksConstant to allow the Birks constant to
    be set for any material. This must be used before the /edep/update
    macro command. It accepts a material name, the value of the Birks
    constant, and the units for the birks constant. For example:
    /edep/material/birksConstant Scintillator 0.12 mm/MeV
  • Add an example of generating a GDML file using GeGeDe. This shows
    how to build a gdml file that sets the auxvalues needed by edep-sim,
    and can be used as a starting point for a user geometry.
  • Improvement: Add a new include file (EDepSimUnits.h) for use with
    the edepsim_io library. The output of EDepSim is in the same units
    as Geant4 (i.e. the CLHEP units). Adding this include file means
    that the CLHEP SystemOfUnits.h file is not required.
  • Improvements: The GDML validations have been cleaned up. The output
    still should be inspected using ROOT and edep-disp, but the tests
    are simplified to make it easier to interpret the output. This is
    mostly intended as an edep-sim developer (pre-)release tool.
  • Bug fix: Make sure that the default geometry builds without
    overlaps, and add a validation to catch when it does not.
  • Bug fix: Add error traps in EDepSimRooTrackerKinemGenerator to try
    and catch malformed rooTracker files before processing. This tries
    to prevent a silent failure.
  • Remove dead test files that are left over from old, and unsupported
    methods of reading the edep-sim output.
  • Bug fix: Fix some compilation warnings. The compilation should be
    warning free.
  • New option: Add a cmake definition to disable the compilation of
    NEST. The default is to include NEST. Even if NEST is not included
    in the executable, ionization in argon cribs from it's
    implementation, so the NEST paper should be cited.

Release 3.1.0

26 Feb 13:28
Compare
Choose a tag to compare

This provides a few improved features over 3.0.0 aimed at supporting
the simulation of TPCs and running larger production jobs. It also
includes the accumulated bug fixes.

Changes in 3.1.0

  • Improve documentation for the GDML StepLimit auxiliary, and add
    tests. This is now being actively used in the SAND TPC implemention
    to make sure step by step fluctuctuations are correctly handled.

  • Add macro commands to override logical volumes marked with a
    sensitive detectors. When /edep/hitExclude [logicalVolume] is
    set segments will not be saved in that volume.

  • Allow a threshold for the minimum energy required to save a
    trajectory point.

  • Improvements in the trajectory pruning. This was mostly changes to
    clarify the documentation, but there were minor bug fixes in the
    handling of the minimum deposit required to save a trajectory.

  • Support the G4EllipticalTube solid. This translates it into a
    TGeoEltu object in the root geometry.

  • Bug Fix: Corrections in the example macros.

  • Bug Fix: Trajectories for decay products were being saved when they
    should not have been. This makes them follow the same "rules" as
    other trajectories. Decay products can still be treated as a
    primary particle.

  • Bug Fix: Protect against NULL pointers in the persistency manager.
    Fix the bunch length simulation to avoid discontinuities. Improve
    trajectory drawing edep-disp for very large events.

  • Bug Fix: Avoid the deprecated std::random_shuffle, and make sure
    that the G4 random number generator is used when a vector is being
    shuffled.

  • Bug Fix: This makes the code match the documentation. The
    documentation claimed that all trajectories contributing to a hit
    segment were saved, but the code only saved the "primary"
    trajectory. This now saves all of the contributors like it claims.

Release 3.0.0

05 Aug 14:53
Compare
Choose a tag to compare

This adds a couple of new features. The i/o classes are moved out of the main library so that the output can be used on a system that doesn't include GEANT4. This also includes an interface for an arbitrary electric and magnetic field. This should be source compatible with 2.x.x (not carefully tested), but the structure of the cmake build interface has (slightly) changed.

Changes in 3.0.0

  • Add a change log!

  • The CMake infrastructure has been improved so that it will now support
    the find_package interface. The package name is EDepSim, so in general
    it will be used as "find_package(EDepSim)". The exported library targets
    are "EDepSim::edepsim_io" and "EDepSim::edepsim".

  • Separate the summary classes out of the main edepsim library. These
    classes are filled with a summary of an event, and are suitable for
    writing to a file using ROOT. If EDepSim is being used as a library, then
    the edepsim_io provides the external API that can be used to access the
    results of the simulation.

  • EDepSim::edepsim_io: Provide accessors for the internal data fields. The
    original plan was to "let" users access the data using the ROOT
    MakeProject infrastructure, but this has proven to unwieldy. As a
    result, the public fields are being deprecated and should be accessed
    using accessors. See README.md for more documentation. By default, the
    public fields are still visible, but they can be made private by defining
    EDEPSIM_FORCE_PRIVATE_FIELDS before including the edepsim_io include
    file (i.e. TG4Event.h).

  • EDepSim depends on accessing some internally defined geant4 macros.
    These macros are installed into the "shared/EDepSim" area, but in some
    environments the location cannot be set at compile time. A new
    environment variable ("EDEPSIM_ROOT") is used to define the root location
    of the shared/EDepSim directory.

  • The rooTracker kinematics input classes have been enhanced to allow
    multiple vertices per event. These is used by directing edepsim to
    generate a large number of vertices in each event, and then adding a
    marker in the rooTracker file flagging the end of an event. The
    rooTracker file can mark the end of an event by adding a dummy
    interaction with HepStdN = 1 and HepStdStatus[0] = -1 (see the rooTracker
    documentation for details on the rooTracker fields, and see GENIE for
    it's particular incarnation). This is used in a macro file with the
    lines

  # Use the T2K rooTracker input format.  This is directly supported by GENIE.
  /generator/kinematics/set rooTracker

  # Distribute the events based on the vertex in the rooTracker file.
  /generator/position/set free

  # Distribute the event times based onn the time in the rooTracker file.
  /generator/time/set free

  # Set a fixed number of interactions per event.  The number is not
  # important, but should be larger than the largest possible number of
  # interactions per event provided by rootTracker.
  /generator/count/fixed/number 100000
  /generator/count/set fixed

  # Update the kinematics generator.
  /generator/add
  • Add a validation testharness. This unifies some of the tests that
    were accumulating in the test and tools directory. The files in
    those directories are largely out of date, and will probably be removed in
    a later release.

  • Add arbitrary magnetic and electric field implementation from Andrew
    Cudd. The fields can be set in the GDML file. The field values are
    defined in auxilliary files containing the electric or magnetic
    fields on a regular grid of points.

Version 2.0.1

31 May 22:47
Compare
Choose a tag to compare

A bug fix release to fix a problem in the reading of rooTracker files (one of the output formats supported by GENIE). This also includes a few minor enhancements to the event display, and to the documentation.

Version 2.0.0

28 Apr 20:59
Compare
Choose a tag to compare

Complete version for working with GDML files. This now supports magnetic and electric fields using GDML auxiliary information. It also fully supports sensitive detectors with GDML. It has been tested with a limited number of ROOT and GEANT installations, but is likely to work with most recent version.

Also included is a simple Eve based event display to help visualize the energy deposition, trajectories, and geometry.