From 6ec87e439d306591a7337408ec46a6d24895af34 Mon Sep 17 00:00:00 2001
From: Markus Frank <Markus.Frank@cern.ch>
Date: Wed, 30 Nov 2022 13:06:40 +0100
Subject: [PATCH] Add README for DDG4 and DDDigi

---
 DDDigi/README.md                              |  37 +++++++++++-------
 DDG4/README.md                                |  20 ++++++----
 doc/usermanuals/DD4hep/figures/AIDAinnova.png | Bin 0 -> 6256 bytes
 3 files changed, 36 insertions(+), 21 deletions(-)
 create mode 100644 doc/usermanuals/DD4hep/figures/AIDAinnova.png

diff --git a/DDDigi/README.md b/DDDigi/README.md
index 0ac864160..1da2826e8 100644
--- a/DDDigi/README.md
+++ b/DDDigi/README.md
@@ -3,7 +3,7 @@
 DDDigi: The digitization tools of DD4hep
 ========================================
 
-`DDDigi` is supposed to interprete the results of the detector simulation phase
+DDDigi is supposed to interprete the results of the detector simulation phase
 e.g. using the simulation toolket [DDG4](../DDG4) with its command line interface
 [ddsim](../DDG4/python/DDSim).
 This is the final phase of data processing to obtain data from the simulation 
@@ -22,23 +22,32 @@ apparatus such as
 - conversion of the final signal data into the equivalent of ADC counts.
 - ...
 
+In addition these effects should be computed in the presence of
 
+- multiple interactions in the same beam-crossing
+- spillover signal from previous or following interactions due to the
+  relaxation time of the apparatus.
 
+DDDigi addresses these issues in a very modular way and implements a multi-threaded approach
+to perform such data processing.
+To support multi-threading and to avoid any complication for users due to data races 
+the following basic assumptions were made:
 
-This detector design has been pulled from , and was originally developed in
-[ATHENA](https://eicweb.phy.anl.gov/EIC/detectors/athena), for the Electron-Ion Collider.
+- The signals from disjunct subdetectors are generally independent
+  This means the detector response of any tracking subdetector is uncorrelated with
+  the detector response of e.g. a calorimeter.
+- Within a subdetector the response of disjunct units are uncorrelated. This means that 
+  e.g. hits on one layer of a layered tracking device are uncorrelated 
+  with the hits produced in another layer.
+- Within one such a layered device the response of individual sensors is tyically uncorrelated.
 
-![PFRICH](doc/geometry.png)
+These assumptions however are not strict, but rather require input from the designer of such
+a digitization application for a given appratus. These basic assumption only show the maximal
+level of parallelization possible when processing data signals.
+The parallelization can be configured for each subdetector at each level according to 
+boundary conditions e.g. given by cross-talk or the data volume arising from the
+energy deposits of the simulation.
 
-To use `ctest`, run:
-```bash
-cd ..  # `pwd` should now be `DD4hep/examples`
-mkdir build
-cd build
-cmake -DDD4HEP_EXAMPLES="OpticalTracker" .. && make && make install
-ctest --output-on-failure   # or use `--verbose` to see all output
-```
 
 
-
-![HORIZON2020](../doc/usermanuals/DDG4/setup/Horizon2020-grant-logo.png)
+![HORIZON2020](../doc/usermanuals/DD4hep/figures/AIDAinnova.png)
diff --git a/DDG4/README.md b/DDG4/README.md
index 56545651c..73a6e2dc1 100644
--- a/DDG4/README.md
+++ b/DDG4/README.md
@@ -1,15 +1,15 @@
 ![DDG4](../doc/logo_small.png)
 
-DDG4: The digitization tools of DD4hep
-========================================
+DDG4: The simulation toolkit of DD4hep
+======================================
 
 Simulating the detector response is an essential tool in high energy physics
 to analyze the sensitivity of an experiment to the underlying physics.
 Such simulation tools require a detailed though convenient detector description as 
-it is provided by the `DD4hep` toolkit `DDG4` which uses [Geant4](https://geant4.web.cern.ch/)
+it is provided by the DD4hep toolkit DDG4 which uses [Geant4](https://geant4.web.cern.ch/)
 to simulate the energy response of a given apparatus.
-The toolkit implements a modular and flexible approach to simulation activities using `Geant4`.
-User defined simulation applications using `DDG4` can easily be configured, 
+The toolkit implements a modular and flexible approach to simulation activities using Geant4.
+User defined simulation applications using DDG4 can easily be configured, 
 extended using specialized action routines.
 
 The design is strongly driven by easy of use;
@@ -17,9 +17,15 @@ developers of detector descriptions and applications using
 them should provide minimal information and minimal specific
 code to achieve the desired result.
 
-For further details please see the user manual 
+DDG4 also supports the fast Geant4 simulation interfaces GFlash and FastSim
+to speed up certain simulation procedures.
+
+For further details please see the user manual in the formats
 [HTML](https://dd4hep.web.cern.ch/dd4hep/usermanuals/DDG4Manual/DDG4Manual.html)
+and
 [PDF](https://dd4hep.web.cern.ch/dd4hep/usermanuals/DDG4Manual/DDG4Manual.pdf)
 
+Some usage examples for DDG4 can be found [here](../examples/DDG4)
+
 
-![HORIZON2020](../doc/usermanuals/DDG4/setup/Horizon2020-grant-logo.png)
+![HORIZON2020](../doc/usermanuals/DD4hep/figures/AIDA-2020.png)
diff --git a/doc/usermanuals/DD4hep/figures/AIDAinnova.png b/doc/usermanuals/DD4hep/figures/AIDAinnova.png
new file mode 100644
index 0000000000000000000000000000000000000000..3e4eb2857c6775b46721e56108f40b825533d327
GIT binary patch
literal 6256
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
a;C}(+tTZnWN|f*b0000<MNUMnLSTYY5iMr`

literal 0
HcmV?d00001

-- 
GitLab