Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
D
DD4hep
Manage
Activity
Members
Code
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
cepc
externals
mirroring
DD4hep
Commits
765fae69
Commit
765fae69
authored
2 years ago
by
Markus Frank
Committed by
MarkusFrankATcernch
2 years ago
Browse files
Options
Downloads
Patches
Plain Diff
Improve DDDigi doc
parent
480fe400
No related branches found
No related tags found
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
DDDigi/README.md
+158
-0
158 additions, 0 deletions
DDDigi/README.md
with
158 additions
and
0 deletions
DDDigi/README.md
+
158
−
0
View file @
765fae69

# 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 |

=======

# 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 |

This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment