GET library
GETDocCore.hh
Go to the documentation of this file.
1 //======================================================================
2 /*! \file GETDocCore.hh
3  *
4  * Documentation page related to GET library core architecture.
5  */
6 //======================================================================
7 
8 //======================================================================
9 /*! \page get_page_core Core classes architecture
10  *
11  * The core classes reproduce the GET system architecture:
12  * - the full system (GETSystem) and specific classes defining existing
13  * systems such as the "Reduced CoBo" test system (class GETRCoBo)
14  * or the ACTAR TPC demonstrator system (class GETActarDem);
15  * - the CoBo modules (GETCoBo) controlling 4 AsAd boards;
16  * - the AsAd boards (GETAsAd) that contain 4 AGet chips and the
17  * analog to digital converter;
18  * - the AGet chips (GETAGet) that has 68 channels: 64 signal channels
19  * and 4 FPN (Fix Pattern Noise) channels;
20  * - the AGet channels (GETChannel) that can process either the signal
21  * samples from real measurements, or from simulations.
22  *
23  * At this stage, there is no class defined for the MUTANT trigger module.
24  *
25  * These classes all inherit from the base class GETObject that manages the
26  * filiation between core objects.
27  *
28  * This base class also defines properties that can be common to the object
29  * and its filiation, like response functions, filters or output noise
30  * generators.
31  *
32  *
33  * \section get_core_system The GETSystem class: defining GET architecture
34  *
35  * A GETSystem object must be created to define the full GET system
36  * architecture: it creates the CoBo modules, controlling the AsAd boards
37  * that hold the AGet chips where data channels are defined.
38  *
39  * The GETRCoBo class inherits from the GETSystem class, but it contains
40  * only 1 CoBo module controlling only 1 AsAd board.
41  * The GETActarDem class also inherits from the GETSystem class, and it
42  * contains 2 CoBo modules (with 4 AsAd each).
43  *
44  * A very basic code to define a system (with 2048 channels) that reads
45  * events from a data file is given below:
46  *
47  * \code
48  // includes from GET library
49  #include "GETSystem.hh"
50 
51  // read events program
52  int main ( int argc, char **argv )
53  {
54  GSetVerboseLevel(6);
55 
56  // create the system: the GETActarDem object is a GETSystem
57  // object with 2 CoBo / 8 AsAd, a sample depth of 512 time buckets
58  // and a write frequency of 50 MHz (period 0.02 us).
59  GETSystem system ( 2, 512, 0.02 );
60 
61  // open a test data file
62  system.OpenRunFile ( "my_run_data_file" );
63 
64  // read single events until end of file (no processing of signal)
65  while (system.ReadEvent ( false ) != -1) { }
66 
67  // close the events file
68  system.CloseRunFile ( );
69  return (0);
70  }
71  \endcode
72  *
73  *
74  * \section get_core_channel The GETChannel class: defining the data samples
75  *
76  * The GETChannel class is the basic element for GET signal processing.
77  * It defines one channel of the electronics system, that receives an
78  * input signal from the detector, transforms it from the amplification
79  * chain, and samples the result.
80  *
81  * For analysis, the GETChannel class stores the signal data as \b samples
82  * (array of signal values from the time sampling):
83  *
84  * - the \b input sample: it represents the input signal of the AGet channel,
85  * collected signal from a detector channel
86  * - for a real \b experiment, it is not known;
87  * - for a \b simulation, it is defined by the charge collection of the
88  * simulation
89  *
90  * - the \b output sample: it is the result of the processing of the input
91  * signal
92  * - for an experiment, it is read from experimental data file;
93  * - for a simulation, it results from the simulated input sample
94  * processed by the AGet channel response function.
95  *
96  * - the \b reconstructed sample: it represents the estimate of the input
97  * sample, reconstructed from inverse processing of the output sample
98  * by the AGet channel response function.
99  *
100  * Since the processing of signal samples takes advantage of Fast Fourier
101  * Transforms (FFT), the samples are defines as RRealSamplesFFT objects
102  * of the GFFT library.
103  *
104  * For the signal processing classes, see \ref get_page_process.
105  *
106  */
107 //======================================================================
108