Releases: ClarkMcGrew/edep-sim
Release 3.2.0
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
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
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
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
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.