GET library
Main Page
Related Pages
Namespaces
Classes
Files
Examples
File List
File Members
GETDocProcess.hh
Go to the documentation of this file.
1
//======================================================================
2
/*! \file GETDocProcess.hh
3
*
4
* Documentation page related to the processes to be applied of
5
* signal.
6
*/
7
//======================================================================
8
9
//======================================================================
10
/*! \page get_page_process Signal processing classes
11
*
12
* For each channel, the \b input, \b output and \b reconstructed samples
13
* are related by transformation processes:
14
*
15
* - the \b correction processes (GETSignalModifier class) that are
16
* essentially for use with experimental data;
17
*
18
* - the channel \b response function (GETResponse class) that is used
19
* for the transformation of simulation inputs into GET system
20
* outputs (convolution), of for the reconstruction of the effective
21
* charge deposit from the output data of the channels;
22
*
23
* - the reconstruction \b filter (GETFilter class), needed for the
24
* reconstruction of charge deposit, because of the noise that
25
* creates large oscillation at deconvolution stage;
26
*
27
* - the simulation input/output \b noise (GETNoise class).
28
*
29
* An example can be found in the ROOT macro example for a single channel
30
* with simulated signals.
31
*
32
* The signal processing is performed at the channel level (GETChannel
33
* class).
34
* The channel data samples (input, output and reconstructed signals) and
35
* the processes between channels are illustrated in the figure below,
36
* for experimental or simulation data analysis.
37
*
38
* \image html GETChannelAnalysis.png
39
*
40
*
41
* \section get_process_setting Setting processes
42
*
43
* The base functions to associate processes to GET objects (at channel level
44
* or for sets of channels from other GET objects) are mainly defined in
45
* the base class GETObject.
46
*
47
* The processes can be defined either locally (the process belongs only
48
* to the object and is destroyed with the object), either externally
49
* (the process is created independently of the object, and it is not
50
* deleted when the object is destroyed).
51
*
52
* When a process is set to a GET object, it can be recursively set to
53
* the children of the object: from GETSystem to GETCoBo, to GETAsAd,
54
* to GETAGet and to GETChannel.
55
* In such case, the process is created locally or externally for the parent
56
* object, and externally for all children (see also \ref get_process_sharing).
57
*
58
*
59
* \subsection get_process_sharing Sharing processes for several GET objects
60
*
61
* Basically, the processes may only apply to the signal samples defined in
62
* the GETChannel class.
63
* Nevertheless, it may often happen that exactly the same process should
64
* be applied on several or all channels.
65
* It may be the case mostly for filters, but it may also be the case for
66
* the response function and the input/output noise in the case of
67
* simulations.
68
*
69
* Then the processes can be associated to any of the GET core objects,
70
* and not only the GETChannel: a process associated to a parent object
71
* can be shared by all the children objects.
72
*
73
* This is achieved by the intermediate classes GETProcessLink.
74
* Each GET object contains such an object for each the processes types.
75
* The GETProcessLink class defines a pointer to the process itself, and
76
* it contains the information whether the process is defined
77
* \b locally (the process will be deleted with the object) or
78
* \b externally (the process is managed somewhere else, for example
79
* by a parent object).
80
*
81
*
82
* \subsection get_process_setting_response Setting response function, filters and noise
83
*
84
* For the <B>response function</B>, the \b filter and the \b noises
85
* processes, the GETObject functions to set the processes use:
86
* - a \b pointer argument to set the process as local (if the pointer is
87
* NULL, if a process was previously defined, it is removed);
88
* - a \b reference argument set the process as external.
89
*
90
* \code
91
GETSystem * syst = new GETSystem(...);
92
//[...set properties for the system...]
93
94
GETResponse * resp = new GETResponse(...);
95
//[...set properties for response function process...]
96
97
// set the response function locally for cobo module #0
98
(*syst)[0].SetResponse ( resp );
99
100
// set the response function externally for cobo module #1
101
(*syst)[0].SetResponse ( &resp );
102
103
\endcode
104
*
105
* The functions are: GETObject::SetResponse, GETObject::SetFilter,
106
* GETObject::SetNoiseIn and GETObject::SetNoiseOut.
107
* The input and output noise processes allow to add perturbations in the
108
* signals resulting from simulations.
109
* In principle, they may not be used for real signal analysis.
110
*
111
*
112
* \subsection get_process_setting_correction Setting output signal corrections
113
*
114
* The correction processes may be slightly more complicated since they
115
* may be combined into many possible ways, especially when dealing with
116
* real experimental data.
117
* For example, baseline corrections, calibrations, or other processes
118
* may be used together, in various order.
119
*
120
* Then, in addition to the GETObject::SetOutputCorrection functions
121
* that set a single output correction process, a special process
122
* is defined as a list of processes: the GETProcessSerie.
123
* Such a process can also be used for other types of processes (response
124
* function, filter or noise), but the GETObject does not provide
125
* functions to manage it automatically, and the processes from the
126
* serie have to be set manually for children objects (down to channels
127
* level).
128
*
129
* In order to manage the series of output processes, the following functions
130
* are defined:
131
* - GETObject::SetOutputCorrectionList to define the output correstions
132
* as a serie;
133
* - GETObject::AddOutputCorrection to set a new output correction in the
134
* serie.
135
*
136
*
137
* \section get_process_processes Processes types
138
*
139
*
140
* \subsection get_process_response Response function processes: the GETResponse class
141
*
142
*
143
* \subsection get_process_filter Filter processes: the GETFilter class
144
*
145
*
146
* \subsection get_process_correction Signal correction processes
147
*
148
*
149
*
150
*/
151
//======================================================================
152
src
docs
GETDocProcess.hh
Generated on Tue Dec 5 2017 19:37:31 for GET library by
1.8.5