-
Notifications
You must be signed in to change notification settings - Fork 37
Expand file tree
/
Copy pathChangeLog
More file actions
248 lines (192 loc) · 11.1 KB
/
ChangeLog
File metadata and controls
248 lines (192 loc) · 11.1 KB
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
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
Changes in 4.x.x
* Users can dynamically load a G4VPhysicsConstructor to add extra
physics to the geant physics list. This constructor will be
registered after G4OpticalPhysics, and before EDepSim::ExtraPhysics.
The constructor is specified in the EXTRAPHYSICS environment
variable as "EXTRA:library-path:symbol-name". The symbol name
should specify a C function with the signature
`G4VModularPhysicsList* (*)(char*)`. The "EXTRA" prefix is
required.
* Users can dynamically load a G4VModularPhysics to override the GEANT
reference physics lists by setting the PHYSLIST environment variable
to "EXTERN:library-path:symbol-name". The symbol name should
specify a C function with the signature `G4VModularPhysicsList*
(*)(char*)`.
* Users can dynamically load run, event, tracking and stepping user
actions that will be called as part of the equivalent EDepSim user
actions.
* Users can dynamically load a kinematics generator using the
/edep/generator/external/ macro commands.
* Fix: Add protection to the SurfaceSD for when the process pointer is
not available.
Changes in 4.1.0
* Leverage the work of Xuying Ning <xning@bnl.gov> to support tracking
and saving of vanilla optical photons. This includes all of the
infrastructure in the main code to handle the optical physics, but
also adds PhotonDetectors to the edep-sim i/o package and the simple
included event display.
* The old G4 v10 interfaces are not sufficiently compatible with G4
v11 to be easily supported, so support for V10 is dropped. It's
possible that v10 support can be restored, but, for now, it is not a
priority. Note: The last G4 v10 release (10.7) was in 2020, and the
last fix was 2022 (10.7.4).
* Update how sensitive detectors are parsed in GDML. Deprecate
"SensDet", but still have it create a "SegmentSD". Add
"SegmentDetector" as the best way to create a SegmentSD, and
"SurfaceDetector" as the (only) way to create a SurfaceSD.
* Fix the installation location of EDepSim include files so external
packages can compile using CMAKE.
Changes in 4.0.0
* Support G4 v11: The code is largely upgraded to primarily support the G4
v11 coding practices. Testing and development is done using G4.11. The
G4 v10 interface is still supported via `ifdef` using G4Version, and will
be supported as long as it remains compatible with newer G4 versions.
* The Doke-Birks model has been integrated with G4EmSaturation and
G4EmParameters so that it can be used everyplace. It's added to the
G4EmParameters in the physics list. It will now be correctly applied to
optical processes like scintillation.
* Trajectory point selection: Trajectory points can be selected based on
the process and sub-process which generated them with a minimum threshold
applied based on the interaction occurring at the point.
* HepEVT Kinematics -- Add features ot the HEPEvt reader from Andrew Mogan.
The flexibility is extended, and allows for multi-vertex events. The new
reader can handle mother/daughter relationships.
* 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.
* Change EDepSimLog to use G4cout so that the full GEANT4 ios interface is
leveraged.
* Issue #47: Make sure that decay products and their parent trajectories
are saved. A macro to force all trajectories to be saved has been added
to aid in debugging.
* Updated geometry definitions: Several new geometry definitions have been
merged from the DUNE fork to allow more of the G4 volumes to be exported
to ROOT.
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.