Back to home page

EIC code displayed by LXR

 
 

    


Warning, /DD4hep/DDDigi/README.md is written in an unsupported language. File is not indexed.

0001 <style>
0002 large { color: blue;font-weight: 700;font-size: 20px }
0003 </style>
0004 
0005 
0006 ![DDDigi](../doc/logo_small.png)
0007 
0008 
0009 DDDigi: The digitization tools of DD4hep
0010 ========================================
0011 
0012 DDDigi is supposed to interprete the results of the detector simulation phase
0013 e.g. using the simulation toolket [DDG4](../DDG4) with its command line interface
0014 [ddsim](../DDG4/python/DDSim).
0015 This is the final phase of data processing to obtain data from the simulation 
0016 branch which are as close as possible to the response of the front-end electronics
0017 of a real experimental setup.
0018 
0019 The simulation phase ejects for all subdetectors and the individual 
0020 sensitive elements contained the energy deposits created by particles from a 
0021 primary interaction passing the sensitive volume.
0022 These data have to processed for taking into accound imperfections of the 
0023 apparatus such as 
0024 
0025 - uncertainties in cable lengths resulting in shifts of time of signal arriving.
0026 - uncertainties in the position of sensitive volumes.
0027 - dead or hot readout channels.
0028 - conversion of the final signal data into the equivalent of ADC counts.
0029 - ...
0030 
0031 In addition these effects should be computed in the presence of
0032 
0033 - multiple interactions in the same beam-crossing
0034 - spillover signal from previous or following interactions due to the
0035   relaxation time of the apparatus.
0036 
0037 DDDigi addresses these issues in a very modular way and implements a multi-threaded approach
0038 to perform such data processing.
0039 To support multi-threading and to avoid any complication for users due to data races 
0040 the following basic assumptions were made:
0041 
0042 - The signals from disjunct subdetectors are generally independent
0043   This means the detector response of any tracking subdetector is uncorrelated with
0044   the detector response of e.g. a calorimeter.
0045 - Within a subdetector the response of disjunct units are uncorrelated. This means that 
0046   e.g. hits on one layer of a layered tracking device are uncorrelated 
0047   with the hits produced in another layer.
0048 - Within one such a layered device the response of individual sensors is tyically uncorrelated.
0049 
0050 These assumptions however are not strict, but rather require input from the designer of such
0051 a digitization application for a given appratus. These basic assumption only show the maximal
0052 level of parallelization possible when processing data signals.
0053 The parallelization can be configured for each subdetector at each level according to 
0054 boundary conditions e.g. given by cross-talk or the data volume arising from the
0055 energy deposits of the simulation.
0056 
0057 DDDigi Components Description
0058 =============================
0059 
0060 DigiDDG4ROOT
0061 ------------
0062 
0063 - Reader for ROOT files produced with DDG4. <br/>
0064   Properties:                                                                                        <br/>
0065 
0066     |**Property**  |**Data type**    |**Description**                                                  |
0067     |:---          |:---             |:---                                                             |
0068     |`.input`      | vector<string>  | List of input files to be processed                             |
0069     |`.tree`       | string          | Name of the main data tree. default: `EVENT`                    |
0070     |`.containers` | vector<string>  | List of containers to be loaded to DDDigi.                      |
0071     |              |                 | If empty => all.                                                |
0072     |`.segment`    | string          | Name of the input segment. default: "inputs"                    |
0073     |`.mask`       | integer         | Mask of this input source in the store. default: NO_MASK (0x0)  |
0074     |`.rescan`     | boolean         | Rescan input sources for continuous execution. default: true    |
0075     |`.keep_raw`   | boolean         | Keep raw input as opaque objects in the DDDigi store.           |
0076 
0077   Functionality: self explaining
0078 
0079 DigiEventAction
0080 ---------------
0081 
0082 - Generic event level action which can execute workers in parallel                                   <br/>
0083   Properties:                                                                                        <br/>
0084     |**Property**     |**Data type**    |**Description**                                                  |
0085     |:---             |:---             |:---                                                             |
0086     |`.parallel`      | boolean         | Flag to indicate parallel action execution                      |
0087 
0088 DigiContainerProcessor
0089 ----------------------
0090 
0091 - Base class of all actors dealing with one of more containers sequentially.<br/>
0092 
0093 DigiContainerSequence
0094 ---------------------
0095 - Sequencer of `DigiContainerProcessor` entities with container based work load splitting.<br/>
0096 
0097   Properties:                                                                                        <br/>
0098     |**Property**     |**Data type**    |**Description**                                                  |
0099     |:---             |:---             |:---                                                             |
0100     |`.parallel`      | boolean         | Flag to indicate parallel action execution                      |
0101 
0102 DigiContainerSequenceAction
0103 ---------------------------
0104 
0105 - Specialization of the `DigiEventAction`.                                                           <br/>
0106   Process continers from the data store according to the `input_segment` and the `input_mask`.
0107   Output of workers is delivered to the `output_segment` with mask `output_mask`.                    <br/>
0108 
0109   Properties: Properties of the `DigiEventAction` apply!                                             <br/>
0110 
0111     |**Property**     |**Data type**    |**Description**                                                  |
0112     |:---             |:---             |:---                                                             |
0113     |`.input_segment` | string          | Name of the input data segment                                  |
0114     |`.input_mask`    | integer         | Mask identifier of the input containers to be processed         |
0115     |`.output_segment`| string          | Name of the output data segment                                 |
0116     |`.output_mask`   | integer         | Mask identifier of the output containers                        |
0117 
0118 DigiMultiContainerProcessor
0119 ---------------------------
0120 
0121 - Specialization of the `DigiEventAction`.
0122   Process multiple containers from the data store according to the `input_segment` 
0123   and the list of `input_masks`. Allows to re-use the same container action.
0124   Output of workers is delivered to the `output_segment` with mask `output_mask`.                    <br/>
0125 
0126   Properties: Properties of the `DigiEventAction` apply!                                             <br/>
0127 
0128     |**Property**     |**Data type**    |**Description**                                                  |
0129     |:---             |:---             |:---                                                             |
0130     |`.input_segment` | string          | Name of the input data segment                                  |
0131     |`.input_mask`    | integer         | Mask identifier of the input containers to be processed         |
0132     |`.output_segment`| string          | Name of the output data segment                                 |
0133     |`.output_mask`   | integer         | Mask identifier of the output containers                        |
0134 
0135 DigiAttenuator
0136 --------------
0137  
0138 - Deposit attenuator for energy deposits according to decay time constant.                           <br/>
0139   Action functor of the `DigiAttenuatorSequence`                                                     <br/>
0140   Properties: Properties of the `DigiContainerSequenceProcessor` apply!                              <br/>
0141     |**Property**     |**Data type**    |**Description**                                                  |
0142     |:---             |:---             |:---                                                             |
0143     |`.factor`        | double          | Signal reduction factor applied to all entries processed        |
0144 
0145 DigiAttenuatorSequence
0146 ----------------------
0147  
0148 - Container sequencer to attenuate a list of containers.                                             <br/>
0149   Properties:  Properties of the `DigiContainerSequenceAction` apply!                                <br/>
0150     |**Property**     |**Data type**    |**Description**                                                  |
0151     |:---             |:---             |:---                                                             |
0152     |`.processor_type`| string          | Processor type used for single container attenuation.           |
0153     |                 |                 | default: `DigiAttenuator`                                       |
0154     |`.containers`    | vector<string>  | List of containers to be attenuated.                            |
0155     |`.signal_decay`  | string          | Decay function. default: `exponential`                          |
0156     |`.t0`            | double          | Time constant for exponential signal decay.                     |
0157 
0158 DigiDepositSmearPositionTrack
0159 -----------------------------
0160 - Smear energy deposit positions by an ellipse of the track passing in the
0161   x-y plane.
0162 
0163 
0164 ![HORIZON2020](../doc/usermanuals/DD4hep/figures/AIDAinnova.png)