From 53024ef8d4e325987862d4e7314bb59f18bf1e7c Mon Sep 17 00:00:00 2001 From: Markus Frank <Markus.Frank@cern.ch> Date: Tue, 6 Dec 2022 16:50:03 +0100 Subject: [PATCH] Improve DDDigi doc --- DDDigi/README.md | 80 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) diff --git a/DDDigi/README.md b/DDDigi/README.md index e69de29bb..0520844af 100644 --- a/DDDigi/README.md +++ b/DDDigi/README.md @@ -0,0 +1,80 @@ + + +# DDDigi: The digitization tools of DD4hep + + +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 +branch which are as close as possible to the response of the front-end electronics +of a real experimental setup. + +The simulation phase ejects for all subdetectors and the individual +sensitive elements contained the energy deposits created by particles from a +primary interaction passing the sensitive volume. +These data have to processed for taking into accound imperfections of the +apparatus such as + +- uncertainties in cable lengths resulting in shifts of time of signal arriving. +- uncertainties in the position of sensitive volumes. +- dead or hot readout channels. +- 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: + +- 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. + +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. + +# DDDigi Components + +- DigiDDG4ROOT + + Reader for ROOT files produced with DDG4. <br/> + Properties: <br/> + + |**Property**|**Data type**|**Description**| + |:--- |:--- |:--- | + |`.input` | vector<string> | List of input files to be processed | + |`.tree` | string | Name of the main data tree. default: `EVENT` | + |`.containers` | vector<string> | List of containers to be loaded to DDDigi. | + | | | If empty => all. | + |`.segment` | string | Name of the input segment. default: "inputs" | + |`.mask` | integer | Mask of this input source in the store. default: NO_MASK (0x0) | + |`.rescan` | boolean | Rescan input sources for continuous execution. default: true | + |`.keep_raw` | boolean | Keep raw input as opaque objects in the DDDigi store. | + + Functionality: self explaining + +- DigiAttenuate + + Deposit attenuator for energy deposits according to decay time constant. <br/> + Properties: <br/> + |**Property** |**Data type** |**Description** | + |:--- |:--- |:--- | + |`.input` | vector<string> | List of input files to be processed | + + + -- GitLab