forked from ClarkMcGrew/edep-sim
-
Notifications
You must be signed in to change notification settings - Fork 3
/
ChangeLog
170 lines (132 loc) · 7.67 KB
/
ChangeLog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
Changes in XXXXX
* EDepSim::HitSegment -- Add a new parameter to control when very
short tracks (e.g. delta rays) are combined with an existing hit
segment. This was previously controlled by the maximum allowed
segment sagitta. The sagitta and separation for segments can now be
controlled by the /edep/hitSagitta (previously existed) and
/edep/hitSeparation (new) macro commands.
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.
* Update the detector construction so that it looks 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.
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 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 (EDepSimRooTrackerKinematicsGenerator): 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 (EDepSimPersistencyManager): 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.
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.
* 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.