Repository navigation
Expand file tree
/
Copy pathdiffs
More file actions
440 lines (370 loc) · 29 KB
/
Copy pathdiffs
File metadata and controls
440 lines (370 loc) · 29 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
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
diff --git a/content/_index.md b/content/_index.md
index 0036a12..1607231 100644
--- a/content/_index.md
+++ b/content/_index.md
@@ -19,4 +19,4 @@ ECONF C0303241:THJT006,2003; [e-Print: cs.SE/0306005](https://arxiv.org/abs/cs/0
<i class="far fa-envelope"></i> Contact: <a href="mailto: root-vmc@cern.ch"> root-vmc@cern.ch</a>
-*Last update: 02/02/2026*
+*Last update: 06/10/2026*
diff --git a/content/examples/vmc-examples.md b/content/examples/vmc-examples.md
index da4fc1e..72f04fe 100644
--- a/content/examples/vmc-examples.md
+++ b/content/examples/vmc-examples.md
@@ -11,3 +11,17 @@ A set of examples of usage of VMC is included in **geant4_vmc**.
Though provided within Geant4 VMC, they can be built independently and do not require Geant4 installation in case you want to run them with GEANT3 only.
See more details on the [VMC Examples](https://vmc-project.github.io/geant4_vmc/examples_html/) web page.
+
+
+### E03d: RNTuple output (development version)
+
+The development version after Geant4 VMC 6.8 adds E03d, adapted from E03a, to demonstrate RNTuple output, including parallel writing. It is not part of release 6.8. The development CMake configuration enables it for ROOT versions strictly newer than 6.38.00.
+
+From the E03 directory, load E03d in ROOT and select the sequential RNTuple macro:
+
+```
+root[0] .x load_g4d.C
+root[1] .x run_g4_rntuple.C
+```
+
+For parallel writing, use `run_g4_rntuple_parallel.C` instead. See the E03 README supplied with the development source for the available output modes and run instructions.
diff --git a/content/installation/examples/_index.md b/content/installation/examples/_index.md
index ea0ae77..ee1a35f 100644
--- a/content/installation/examples/_index.md
+++ b/content/installation/examples/_index.md
@@ -10,7 +10,7 @@ weight = 4
The following instructions apply to the installation since the version 3.00. Since this 3.00, VMC examples are installed with CMake.
-The VMC examples libraries require [ROOT](https://root.cern.ch/) installation and the [VMC core package](/user-guide/vmc/vmc-library) if using ROOT built without `vmc` enabled. The VMC examples programs can be built against Geant3 with VMC or Geant4 VMC libraries. Only the examples with the multiple engine mode (at present only E03c) can be built with both Geant3 and Geant4 VMC libraries. The `VMC_WITH_Multi` CMake option has to be set, too, in this special case.
+The VMC examples libraries require [ROOT](https://root.cern.ch/) installation and the [VMC core package](/user-guide/vmc/vmc-core) as a standalone library. The VMC examples programs can be built against Geant3 with VMC or Geant4 VMC libraries. Only the examples with the multiple engine mode (at present only E03c) can be built with both Geant3 and Geant4 VMC libraries. The `VMC_WITH_Multi` CMake option has to be set, too, in this special case.
By default, the VMC examples libraries and the VMC examples programs are built against Geant4 VMC libraries together with Geant4 VMC installation. Below we provide the instructions how to build VMC examples altogether outside Geant4 VMC. The analogous instructions can be used to build each example individually or to build a user application.
@@ -84,7 +84,7 @@ $ cmake -DCMAKE_INSTALL_PREFIX=/mypath/examples_install \
- If ROOT and Geant4 environment was defined using `thisroot.[c]sh` and `geant4.[c]sh` scripts, there is no need to provide the path to their installations. Otherwise, they can be provided using `-DROOT_DIR` and `-DGeant4_DIR` cmake options.
- - Since ROOT 6.18, building the VMC library is optional. When using ROOT built with the vmc option enabled, then Geant4 VMC will automatically use the VMC library from ROOT, otherwise the VMC stand-alone library has to be provided using `-DVMC_DIR` cmake option.
+ - Current examples require standalone VMC. Provide `-DVMC_DIR` if it is not found automatically; ROOT installations with embedded VMC enabled are rejected.
4. After the configuration has run, CMake will have generated Unix Makefiles for building examples. To run the build, simply execute make in the build directory:
{{< highlight bash >}}
diff --git a/content/installation/examples/running-examples.md b/content/installation/examples/running-examples.md
index 32fa362..f92b31a 100644
--- a/content/installation/examples/running-examples.md
+++ b/content/installation/examples/running-examples.md
@@ -60,14 +60,14 @@ $ g4vmc_testE01
[-g4sp, --g4-special-physics] Geant4 special physics selection
[-g4m, --g4-macro] Geant4 macro
[-g4vm, --g4-vis-macro] Geant4 visualization macro
- [-r4m, --root-macro] Root macro
+ [-rm, --root-macro] Root macro
[-v, --verbose] verbose option (yes,no)
```
or
```
$ g3vmc_testE01
[-g3g, --g3-geometry] Geant3 geometry option
- [-r4m, --root-macro] Root macro
+ [-rm, --root-macro] Root macro
[-v, --verbose] verbose option (yes,no)
```
diff --git a/content/installation/geant3/_index.md b/content/installation/geant3/_index.md
index 23dae55..a42d61f 100644
--- a/content/installation/geant3/_index.md
+++ b/content/installation/geant3/_index.md
@@ -7,9 +7,9 @@ showhidden = true
weight = 3
+++
-Geant3 with VMC requires the [VMC core package](/user-guide/vmc/vmc-library) and [ROOT](https://root.cern.ch/).
+Geant3 with VMC requires the [VMC core package](/user-guide/vmc/vmc-core) and [ROOT](https://root.cern.ch/).
-The [vmc core package](/user_guide/vmc/vmc-library) was separated from the ROOT source into a new stand-alone [vmc](https://github.com/vmc-project/vmc) package in the GitHub [vmc-project](https://github.com/vmc-project) organization. The motivation for this step was a gain in flexibility and faster workflow for new developments of multiple engine mode. The `vmc` package in ROOT is deprecated since ROOT version 6.18 (its compilation is optional) and it is going to be removed in the next ROOT version, 6.26. The VMC stand-alone is supported since Geant3 3.0.
+The [vmc core package](/user-guide/vmc/vmc-core) was separated from the ROOT source into a new stand-alone [vmc](https://github.com/vmc-project/vmc) package in the GitHub [vmc-project](https://github.com/vmc-project) organization. The motivation for this step was a gain in flexibility and faster workflow for new developments of multiple engine mode. The `vmc` package in ROOT is deprecated since ROOT version 6.18 (its compilation is optional) and it is going to be removed in the next ROOT version, 6.26. The VMC stand-alone is supported since Geant3 3.0.
Geant3 with VMC uses [CMake](https://cmake.org/) to configure a build system for compiling and installing the headers, libraries and Cmake configuration files.
@@ -62,4 +62,3 @@ $ make install
<hr>
The instructions above apply to the installation since the version 2.0. For the installation of the previous versions (1.x) see [Installing geant3 - Older Versions](geant3-old)
-
diff --git a/content/installation/geant4_vmc/_index.md b/content/installation/geant4_vmc/_index.md
index 6e91ad3..cf50bdf 100644
--- a/content/installation/geant4_vmc/_index.md
+++ b/content/installation/geant4_vmc/_index.md
@@ -5,9 +5,9 @@ chapter = false
weight = 2
+++
-Geant4 VMC requires the [VMC core package](/user-guide/vmc/vmc-library), [ROOT](https://root.cern.ch/) and [Geant4](http://geant4.web.cern.ch/) installed, and optionally, it can be built with [VGM](https://github.com/vmc-project/vgm). See below tips for configuration and installation of these packages.
+Geant4 VMC requires the [VMC core package](/user-guide/vmc/vmc-core), [ROOT](https://root.cern.ch/) and [Geant4](http://geant4.web.cern.ch/) installed, and optionally, it can be built with [VGM](https://github.com/vmc-project/vgm). See below tips for configuration and installation of these packages.
-The [vmc core package](/user_guide/vmc/vmc-library) was separated from the ROOT source into a new stand-alone [vmc](https://github.com/vmc-project/vmc) package in the GitHub [vmc-project](https://github.com/vmc-project) organization. The motivation for this step was a gain in flexibility and faster workflow for new developments of multiple engine mode. The `vmc` package in ROOT is deprecated since ROOT version 6.18 (its compilation is optional) and it is going to be removed in the next ROOT version, 6.26. The VMC stand-alone is supported since Geant4 VMC 5.0.
+The [VMC core package](/user-guide/vmc/vmc-core) is maintained as a standalone [vmc](https://github.com/vmc-project/vmc) package. Current Geant4 VMC requires this standalone library; ROOT installations with the old embedded VMC enabled are rejected. See [Installing VMC](/installation/vmc) for setup instructions.
Geant4 VMC uses [CMake](https://cmake.org/) to configure a build system for compiling and installing the headers, libraries and CMake configuration files. To install geant4_vmc:
@@ -31,7 +31,7 @@ $ cmake -DCMAKE_INSTALL_PREFIX=/mypath/geant4_vmc_install /mypath/geant4_vmc
- If ROOT and Geant4 environment was defined using `thisroot.[c]sh` and `geant4.[c]sh` scripts, there is no need to provide path to their installations. Otherwise, they can be provided using `-DROOT_DIR` and `-DGeant4_DIR` cmake options.
- - Since Geant4 VMC 5.4, the VMC stand-alone library has to be provided using `-DVMC_DIR` cmake option. If the VMC stand-alone library is not found, the deprecated VMC library in ROOT (availble if ROOT was built with the `vmc` option enabled) can still be used, a deprecation warning will be issued in this case.
+ - Provide `-DVMC_DIR` with the directory containing `VMCConfig.cmake` if standalone VMC is not found automatically.
- Since Geant4 VMC 6.0, **the deprecated VMC library in ROOT cannot be used** and building against ROOT built with the `vmc` option enabled will fail with CMake error.
@@ -58,8 +58,7 @@ For VMC examples see [VMC examples installation page](/installation/examples).
<hr>
-The instructions above apply to the installation since the version 3.0 built against Geant4 10.00.p03. For the installation of the previous versions see
+The instructions above describe the current CMake installation. For historical releases, see
- [Older Versions](geant4_vmc-old)
- [Special Installation](special-installations)
-
diff --git a/content/installation/geant4_vmc/build-options.md b/content/installation/geant4_vmc/build-options.md
index 84b049d..b638ee4 100644
--- a/content/installation/geant4_vmc/build-options.md
+++ b/content/installation/geant4_vmc/build-options.md
@@ -10,7 +10,7 @@ Geant4 VMC includes the G4Root package and examples, which are independent from
Overview of available options and their default values:
```
Geant4VMC_BUILD_G4Root Build G4Root ON
-Geant4VMC_BUILD_MTRoot Build MTRoot ON
+Geant4VMC_BUILD_G4Root_TEST Build G4Root test OFF
Geant4VMC_BUILD_Geant4VMC Build Geant4VMC ON
Geant4VMC_BUILD_EXAMPLES Build VMC examples ON
diff --git a/content/installation/geant4_vmc/geant4_vmc-old.md b/content/installation/geant4_vmc/geant4_vmc-old.md
index 15a51c5..34cf5f9 100644
--- a/content/installation/geant4_vmc/geant4_vmc-old.md
+++ b/content/installation/geant4_vmc/geant4_vmc-old.md
@@ -147,3 +147,41 @@ cd geant4_vmc/examples
make
</bash>
</ol>
+
+
+## Historical C++11 configuration
+
+The following guidance applies to Geant4 VMC 3.x and the dependency versions stated below, not to current releases.
+
+### C++11
+
+Geant4 VMC, as well as ROOT and Geant4, have moved to the C++11 standard.
+C++11 is used by default since Geant4 VMC 3.3, Geant4 10.2 and ROOT 6.
+
+When mixing other versions of Geant4 and ROOT together, the same standard must
+be used for both packages. See below how the override the default setting
+when needed.
+
+### ROOT
+To install ROOT - follow the [Root Installation Page](http://root.cern.ch/building-root)
+
+ - **C++11** <br />
+ Geant4 VMC 3.3 built against ROOT 5.x requires ROOT built with C++11 (not default for this ROOT version), set via:
+```
+-Dcxx11=ON
+```
+option, when ROOT is built using CMake, or
+```
+--enable-cxx11
+```
+option, when ROOT is built using configure script.
+
+### Geant4
+To install Geant4 - download the source from [Geant4 Download page](http://geant4.web.cern.ch/support/download) and follow the [Geant4 Installation Guide](http://geant4.web.cern.ch/geant4/UserDocumentation/UsersGuides/InstallationGuide/html/index.html) together with the tips relevant to using it with VMC described below.
+
+ - **C++11** <br />
+Geant4 VMC 3.0 - 3.2 built against Geant4 10.0.x or 10.1.x and ROOT 6x requires
+Geant4 built with C++11 (not default for these Geant4 versions), set via:
+```
+-DGEANT4_BUILD_CXXSTD=c++11
+```
diff --git a/content/installation/geant4_vmc/required-optional-packages.md b/content/installation/geant4_vmc/required-optional-packages.md
index c8da141..455b0fe 100644
--- a/content/installation/geant4_vmc/required-optional-packages.md
+++ b/content/installation/geant4_vmc/required-optional-packages.md
@@ -5,7 +5,7 @@ chapter = false
weight = 2
+++
-Geant4 VMC requires [ROOT](https://root.cern.ch/) and [Geant4](http://geant4.web.cern.ch/) installed, then the [VMC core package](/user-guide/vmc/vmc-library) if using ROOT built without `vmc` enabled, and optionally, it can be built with [VGM](https://github.com/vmc-project/vgm). See below tips for configuration and installation of these packages.
+Geant4 VMC requires [ROOT](https://root.cern.ch/) and [Geant4](http://geant4.web.cern.ch/) installed, and the standalone [VMC core package](/user-guide/vmc/vmc-core), and optionally, it can be built with [VGM](https://github.com/vmc-project/vgm). See below tips for configuration and installation of these packages.
The path to required and optional packages installations can be defined in the standard CMake way, via the paths to the CMake configuration file:
```
@@ -24,38 +24,21 @@ $ source bin/geant4.csh ... Geant4 - on C shells
$ source bin/thisroot.csh ... Root
```
-### C++11
+### Supported versions and C++ standard
-Geant4 VMC, as well as ROOT and Geant4, have moved to the C++11 standard.
-C++11 is used by default since Geant4 VMC 3.3, Geant4 10.2 and ROOT 6.
+Geant4 VMC 6.8 was tested with VMC 2.1, Geant4 11.4, ROOT 6.36/06 and VGM 5.4. These are the release's tested versions, not minimum requirements for every dependency.
-When mixing other versions of Geant4 and ROOT together, the same standard must
-be used for both packages. See below how the override the default setting
-when needed.
+Use CMake 3.16 or newer and a compiler supporting C++17. Geant4 11.4 defaults to C++17; use the same C++ standard for ROOT, Geant4, VMC and your application. See the [Geant4 build instructions](https://geant4.web.cern.ch/documentation/dev/ig_html/InstallationGuide/installguide.html) for supported newer standards and build options.
-### ROOT
-To install ROOT - follow the [Root Installation Page](http://root.cern.ch/building-root)
+The C++11 instructions for older releases are retained under [Older Versions](/installation/geant4_vmc/geant4_vmc-old#historical-c11-configuration).
- - **C++11** <br />
- Geant4 VMC 3.3 built against ROOT 5.x requires ROOT built with C++11 (not default for this ROOT version), set via:
-```
--Dcxx11=ON
-```
-option, when ROOT is built using CMake, or
-```
---enable-cxx11
-```
-option, when ROOT is built using configure script.
+### ROOT and standalone VMC
+
+Follow the [ROOT installation instructions](https://root.cern/install/) and then [install standalone VMC](/installation/vmc). Current Geant4 VMC requires standalone VMC and rejects a ROOT installation with the old embedded VMC enabled. Set `VMC_DIR` to the directory containing `VMCConfig.cmake` if CMake does not find it automatically.
### Geant4
-To install Geant4 - download the source from [Geant4 Download page](http://geant4.web.cern.ch/support/download) and follow the [Geant4 Installation Guide](http://geant4.web.cern.ch/geant4/UserDocumentation/UsersGuides/InstallationGuide/html/index.html) together with the tips relevant to using it with VMC described below.
- - **C++11** <br />
-Geant4 VMC 3.0 - 3.2 built against Geant4 10.0.x or 10.1.x and ROOT 6x requires
-Geant4 built with C++11 (not default for these Geant4 versions), set via:
-```
--DGEANT4_BUILD_CXXSTD=c++11
-```
+Follow the [Geant4 installation guide](https://geant4.web.cern.ch/documentation/dev/ig_html/InstallationGuide/installguide.html), together with the VMC-specific options below.
- **G3toG4 tool**<br />
The G3toG4 package is used in geant4_vmc to support geometry definition via VMC with Geant4 native navigation. The build of G3toG4 package can be activated when building Geant4 with the following CMake options:
@@ -73,7 +56,7 @@ It is recommended to build Geant4 X11 OpenGL visualization driver used in the VM
- **Multi-threading** <br>
Geant4 VMC can be built against Geant4 installation in multi-threading mode which is handled in Geant4 CMake build via the CMake option:
```
--DG4MULTITHREADED=ON
+-DGEANT4_BUILD_MULTITHREADED=ON
```
Dynamic loading of Geant4 libraries, as used in VMC, requires to change the Geant4 default TLS model, initial-exec, with global-dynamic via the CMake option:
diff --git a/content/installation/vmc.md b/content/installation/vmc.md
index 9814755..6931f3d 100644
--- a/content/installation/vmc.md
+++ b/content/installation/vmc.md
@@ -7,7 +7,7 @@ weight = 1
VMC requires [ROOT](https://root.cern.ch/).
-The [vmc core package](/user-guide/vmc/vmc-library) was separated from the ROOT source into a new stand-alone [vmc](https://github.com/vmc-project/vmc) package in the GitHub [vmc-project](https://github.com/vmc-project) organization. The motivation for this step was a gain in flexibility and faster workflow for new developments of multiple engine mode. The `vmc` package in ROOT is deprecated since ROOT version 6.18 (its compilation is optional) and it is going to be removed in the next ROOT version, 6.26. The VMC stand-alone is then needed for building Geant3 and Geant4 VMC when using ROOT compiled with the vmc disabled (default).
+The [VMC core package](/user-guide/vmc/vmc-core) is maintained as a standalone [vmc](https://github.com/vmc-project/vmc) package. Current Geant4 VMC requires this standalone library; ROOT installations with the old embedded VMC enabled are rejected.
VMC uses [CMake](https://cmake.org/) to configure a build system for compiling and installing the headers, libraries and Cmake configuration files. To install VMC:
diff --git a/content/user-guide/geant4_vmc/geant4-scoring.md b/content/user-guide/geant4_vmc/geant4-scoring.md
index d2e0af5..cec917a 100644
--- a/content/user-guide/geant4_vmc/geant4-scoring.md
+++ b/content/user-guide/geant4_vmc/geant4-scoring.md
@@ -29,14 +29,19 @@ in a `mesh_name.txt` file at the end of simulation run.
## User defined scoring function
-Users can also provide their scoreweight function that takes (pdg, ekin) as arguments,
-defined via `TG4ScoreWeightCalculator` , using a new `TG4RunConfiguration` class`
-setter:
+Since Geant4 VMC 6.8, users can provide a score-weight calculator. This interface requires Geant4 11.4. The callback type is:
-{{< highlight cpp >}}
-void TG4RunConfiguration::SetScoreWeightCalculator(TG4ScoreWeightCalculator swc)
-{{< /highlight >}}
+```cpp
+using TG4ScoreWeightCalculator =
+ std::function<Double_t(Int_t pdg, Double_t ekin)>;
+```
+
+It returns a `Double_t` weight for the particle PDG code and kinetic energy. The kinetic energy is passed directly from Geant4 in its internal energy units (MeV), without conversion to VMC's GeV convention. For an energy expressed in GeV, divide by `CLHEP::GeV` using Geant4's `G4SystemOfUnits.hh`.
+
+Register the callback in `g4Config.C` through:
+
+```cpp
+void TG4RunConfiguration::SetScoreWeightCalculator(TG4ScoreWeightCalculator swc);
+```
-The user function is then wrapped to `G4ScoreWeightCalculator` function,
-that takes (const G4Step*) as argument, and is applied to all Geant4 scorers with activated
-score weighting.
+Also activate Geant4 scoring with `SetUseOfG4Scoring()` and enable score weighting for the desired scorers. The callback is wrapped as a Geant4 function taking `const G4Step*` and applied to scorers with weighting enabled.
diff --git a/content/user-guide/geant4_vmc/geometry-definition-navigation.md b/content/user-guide/geant4_vmc/geometry-definition-navigation.md
index 121a6ad..802bf27 100644
--- a/content/user-guide/geant4_vmc/geometry-definition-navigation.md
+++ b/content/user-guide/geant4_vmc/geometry-definition-navigation.md
@@ -22,6 +22,7 @@ Since the version 2.0, user can choose between Geant4 native navigation and G4Ro
- `geomVMCtoRoot` - geometry defined via VMC, Root navigation
- `geomRoot` - geometry defined via Root, Root navigation
- `geomRootToGeant4` - geometry defined via Root, G4 native navigation
+- `geomVMC+RootToGeant4` - geometry defined through VMC and/or TGeo, converted via VGM, G4 native navigation
- `geomGeant4` - geometry defined via Geant4, G4 native navigation
Below we shortly comment the implementation of these options:
@@ -38,6 +39,9 @@ Below we shortly comment the implementation of these options:
- `geomRootToGeant4`:
The geometry defined via TGeo is converted in Geant4 geometry using the external [Virtual Geometry Model](https://vmc-project.github.io/vgm-documentation/) (VGM), which has replaced the old one-way converters from Geant4 VMC (G4toXML, RootToG4), removed from Geant4 VMC with the version 1.7. In the VGM, these convertors has been generalized and improved.
+- `geomVMC+RootToGeant4`:
+ VMC geometry calls build a TGeo geometry through `TGeoMCGeometry`, which can be combined with direct TGeo definitions. VGM converts the resulting geometry for Geant4 native navigation. Build Geant4 VMC with VGM enabled to use this route.
+
- `geomGeant4`:
User Geant4 detector construction class can be passed to Geant4 VMC via user defined run configuration class (see [User Geant4 Classes](/user-guide/geant4_vmc/user-geant4-classes)). If Geant4 VMC is built with VGM, geometry can be exported in Root using the built-in command:
```
@@ -49,6 +53,10 @@ Below we shortly comment the implementation of these options:
In the development version, reflected logical volumes and recognized `Gsposp` variants share the VMC ID of their source volume. See [Volume Names and IDs](/user-guide/geant4_vmc/volume-names-and-ids) for naming rules, scoring guidance and the distinction between source-volume and placement-specific queries.
+### Assembly levels in ancestor queries
+
+In the development version after 6.8, `CurrentVolOffName()` and `CurrentVolOffID()` account for TGeo assembly levels collapsed during conversion to Geant4. Offsets therefore include these assembly levels. The assembly name and copy number are recovered from placement information. A collapsed assembly has no Geant4 logical volume of its own: at such a level, `CurrentVolOffID()` returns the placed volume's ID, not a distinct assembly ID. Use the recovered name and copy number to identify that assembly level.
+
### Useful commands
Geant4 VMC implements various commands which allow users to get more information about their application setup:
diff --git a/content/user-guide/geant4_vmc/magnetic-field.md b/content/user-guide/geant4_vmc/magnetic-field.md
index 4ef34ad..a4ce8eb 100644
--- a/content/user-guide/geant4_vmc/magnetic-field.md
+++ b/content/user-guide/geant4_vmc/magnetic-field.md
@@ -104,7 +104,7 @@ The commands for modifying the parameters for killing looping particles
```
/mcRun/setLooperThresholdWarningEnergy value unit
-/mcRun/setLooperThresholImportantEnergy value unit
+/mcRun/setLooperThresholdImportantEnergy value unit
/mcRun/setNumberOfLooperThresholdTrials value
```
@@ -113,4 +113,3 @@ These commands must be called before the run initialization, so that Geant4 VMC
----
How to apply Geant4 commands in a Root user session is explained at the section on [Switching User Interfaces](/user-guide/geant4_vmc/switching-user-interfaces).
-
diff --git a/content/user-guide/geant4_vmc/multi-threaded-processing.md b/content/user-guide/geant4_vmc/multi-threaded-processing.md
index 76adee9..d474be4 100644
--- a/content/user-guide/geant4_vmc/multi-threaded-processing.md
+++ b/content/user-guide/geant4_vmc/multi-threaded-processing.md
@@ -67,7 +67,7 @@ TThread::Initialize();
### Implementation details & tips
- Dynamic loading of libraries requires to build Geant4 libraries
- with `-ftls-model=global-init` compilation flag (which is different
+ with `-ftls-model=global-dynamic` compilation flag (which is different
from the Geant4 default, `-ftls-model=initial-exec`) and the tests
show that it brings a performance penalty.
diff --git a/content/user-guide/geant4_vmc/physics-lists.md b/content/user-guide/geant4_vmc/physics-lists.md
index b48ebda..e8acfa4 100644
--- a/content/user-guide/geant4_vmc/physics-lists.md
+++ b/content/user-guide/geant4_vmc/physics-lists.md
@@ -49,13 +49,13 @@ where
Examples:
```
-"stepLimit+specialCuts"
-"stepLimit+specialCuts+stackPopper"
+"stepLimiter+specialCuts"
+"stepLimiter+specialCuts+stackPopper"
```
### Composed physics list
-According to the user selection, Geant4 VMC creates a [TG4ComposedPhysicsList](https://vmc-project.github.io/geant4_vmc/g4vmc_html/classTG4ComposedPhysicsList.html) object which is a composition of a selected Geant4 physics list (or a user physics list), the extra physics list ( [TG4ExtraPhysicsList](https://vmc-project.github.io/geant4_vmc/g4vmc_html/classTG4ExtraPhysicsList.html) - in development version only) and the [TG4SpecialPhysicsList](https://vmc-project.github.io/geant4_vmc/g4vmc_htm/classTG4SpecialPhysicsList.html) object. The inclusion of the extra physics list is optional. The composed physics list processes the Geant4 (or user) physics list in the first order, then adds the extra physics processes (if selected) and finally the special processes, registered in TG4SpecialPhysicsList, are added in the last order.
+According to the user selection, Geant4 VMC creates a [TG4ComposedPhysicsList](https://vmc-project.github.io/geant4_vmc/g4vmc_html/classTG4ComposedPhysicsList.html) object which is a composition of a selected Geant4 physics list (or a user physics list), the extra physics list ( [TG4ExtraPhysicsList](https://vmc-project.github.io/geant4_vmc/g4vmc_html/classTG4ExtraPhysicsList.html)) and the [TG4SpecialPhysicsList](https://vmc-project.github.io/geant4_vmc/g4vmc_html/classTG4SpecialPhysicsList.html) object. The inclusion of the extra physics list is optional. The composed physics list processes the Geant4 (or user) physics list in the first order, then adds the extra physics processes (if selected) and finally the special processes, registered in TG4SpecialPhysicsList, are added in the last order.
Since version 2.13, the user physics selection is added to the TGeant4 object title so that it can be retrievable in a user application.
@@ -80,8 +80,7 @@ To inspect a selected particle:
To print the mapping of G4 processes to VMC process codes and VMC (G3-like) process controls:
```
-/mcPhysics/printProcessMCMap
-/mcPhysics/printProcessControlMap
+/mcPhysics/printProcessMap
```
## Electromagnetic physics
@@ -113,6 +112,17 @@ Since Geant4 VMC version 2.10, it is also possible to choose an extra model of e
The `setRegions` and `setParticles` commands must be followed by the list of tracking media names and particle names respectively, separated with a blank space. The `setParticles` command can also take as a parameter the keyword `"all"`. The model will be then applied to all particles.
+Since Geant4 VMC 6.7, particles can be excluded when `all` is selected. Set the exclusions before run initialization, for example:
+
+```
+/mcPhysics/emModel/setEmModel PAI
+/mcPhysics/emModel/setRegions TRD_Gas-mix
+/mcPhysics/emModel/setParticles all
+/mcPhysics/emModel/setExcludedParticles GenericIon alpha
+```
+
+Replace `TRD_Gas-mix` with the tracking-medium name in your geometry.
+
At present, the following models are supported: PAI and PAIPhoton models which are applied to ionisation process, and SpecialUrbanMsc, a special model tuned for ALICE EMCAL detector, which is applied to e- and e+ multiple scattering processes.
### Hadronic physics
diff --git a/content/user-guide/geant4_vmc/sensitive-volumes.md b/content/user-guide/geant4_vmc/sensitive-volumes.md
index bd5132e..c9051ff 100644
--- a/content/user-guide/geant4_vmc/sensitive-volumes.md
+++ b/content/user-guide/geant4_vmc/sensitive-volumes.md
@@ -13,7 +13,7 @@ Recently (since ROOT version v6.13.04) a new interface to user sensitive detecto
The user sensitive detectors object should be associated to the selected volumes in the new dedicated MCApplication function:
{{< highlight cpp >}}
-void TVirtualMCApplication::SetSensitiveDetectors()
+void TVirtualMCApplication::ConstructSensitiveDetectors()
{{< /highlight >}}
using the new TVirtualMC function:
@@ -24,7 +24,7 @@ void TVirtualMC::SetSensitiveDetector(
{{< /highlight >}}
Users can also choose whether scoring should be performed exclusively via sensitive detectors or via both sensitive detectors and `MCApplication::Stepping()` using the function
{{< highlight cpp >}}
-void VirtualMC::SetExclusiveSDScoring(Bool_t);
+void TVirtualMC::SetExclusiveSDScoring(Bool_t);
{{< /highlight >}}
If exclusive scoring is selected, the `MCApplication::Stepping()` is not called by MC.