GET library
GETDocExamples.hh
Go to the documentation of this file.
1 //======================================================================
2 /*! \file GETDocExamples.hh
3  *
4  * Documentation page defining examples pages.
5  */
6 //======================================================================
7 
8 //======================================================================
9 /*! \page get_page_examples Examples for use of the GET library
10  *
11  * The files presented in this section are located in the \b examples
12  * directory of the package.
13  *
14  *
15  * \section get_examples_programs C++ program examples
16  *
17  * - These are very simple C++ programs showing how to define a GET
18  * system and read events from a run file: one for a
19  * Reduced-CoBo system \ref ReadEvent_RCoBo.cxx
20  * and on for a TPC demonstrator system \ref ReadEvent_Demonstrator.cxx
21  *
22  * - Reading of the XML configuration files: \ref ReadConfig.cxx
23  *
24  * \section get_examples_root ROOT session examples
25  *
26  * In order to use the GET library in a ROOT session, it must be
27  * loaded, either in the ROOT login macro, either during the session
28  * itself:
29  * \code
30  * gROOT->Macro ( (getenv("GET_BASE")+string("/root/GETRootLibs.C")).c_str() );
31  * \endcode
32  *
33  * - ROOT example for GET channel processing of signal:
34  * \ref TestChannel.C
35  *
36  * - ROOT example to read events from a GET system in a ROOT macro:
37  * \ref ReadRCoBo.C
38  *
39  * - Reduced-CoBo run file average / RMS (with GETRoot library):
40  * \ref RCoBo_ChannelMeanRMS.C
41  *
42  * - TPC demonstrator run file average / RMS: 2 examples showing
43  * the access to channels output signal in one case
44  * (\ref Demonstrator_RMS1.C),
45  * and using the GETRoot library functions in the other case
46  * (\ref Demonstrator_RMS2.C)
47  *
48  * - TPC demonstrator noise for all
49  * channels ( \ref Demonstrator_Noise.C)
50  *
51  *
52  * \section get_splitting_programs Programs for splitting and merging CoBo frames
53  *
54  * Two small programs are included in the library in order to extract
55  * data frames (CoBo) from a run file and/or to merge them.
56  *
57  *
58  * \par Splitting CoBo frames
59  *
60  * It happens, when running CoBo modules without MuTAnT, or for any reason,
61  * that the CoBo frames are somewhat mixed in the run file.
62  * The program \b GETCoboFramesSplit allows to read the file, and write
63  * separately the header frames and the frames for every single AsAd
64  * board.
65  *
66  * To print the program help, enter the command with no argument:
67  * \code
68  * [shell] GETCoboFramesSplit
69  * \endcode
70  *
71  * For example, to split frames from a file <run_file.dat> (in current
72  * directory), where 2 CoBo modules wher used:
73  * \code
74  * [shell] GETCoboFramesSplit 2 <run_file.dat> "."
75  * \endcode
76  *
77  * A sub-directory is created for each CoBo/AsAd and for header with a
78  * file <run_file.dat> containing only the corresponding frame.
79  *
80  * In addition, an input file \b <run_file.dat>.merge is created for the
81  * program that can remerge the frames.
82  *
83  *
84  * \par Merging CoBo frames
85  *
86  * The program \b GETCoboFramesMerge reads separated CoBo/AsAd frame
87  * files and write them in one single file, ordered according to the
88  * time stamp (to be tested) or the event number (default).
89  *
90  * To print the program help and the supported options, enter the command
91  * with no argument:
92  * \code
93  * [shell] GETCoboFramesMerge
94  * \endcode
95  *
96  * The program needs an input file such as the one created by the
97  * frames splitting program:
98  * \include "run_file.dat.merge"
99  *
100  * The merging can be achieved with:
101  * \code
102  * [shell] GETCoboFramesMerge <run_file.dat>.merge
103  * \endcode
104  *
105  */
106 
107 //======================================================================
108 /*! \example ReadConfig.cxx
109  *
110  * WARNING: THE USE OF EFFECTIVE CONFIGRATION FILES IS NOT
111  * YET IMPLEMENTED IN AN EFFECTIVE WAY...
112  *
113  */
114 
115 //----------------------------------------------------------------------
116 
117 /*! \example ReadEvent_RCoBo.cxx
118  *
119  * The Reduced-CoBo is a GET system with 1 CoBo module and 1 single
120  * AsAd board.
121  *
122  */
123 
124 /*! \example ReadEvent_Demonstrator.cxx
125  *
126  * The demonstrator is a GET system with 2 CoBo modules and 8
127  * AsAd boards.
128  *
129  */
130 
131 //======================================================================
132 /*! \example TestChannel.C
133  *
134  * The following ROOT macro plots the input, output
135  * and reconstructed signals of a single GET channel:
136  * - the input sample has 2 Gauss component
137  * - some input noise is added to the signal (GETNoise class)
138  * - the response function is analystical (GETResponseFctAget class)
139  * - some noise is added to the output signal (GETNoise class)
140  * - the reconstruction is performed with filtering (GETFilterAgetGaus class)
141  *
142  * The \ref TestChannel.C example requires the functions defined in the
143  * \ref TestCore.C.
144  * In this example, it is necessary to compile the ROOT macro files,
145  * because they use function pointers, that are not supported in the
146  * ROOT command interpreter.
147  *
148  * \image html "TestChannelSignal100.png"
149  * \image rtf "TestChannelSignal100.png"
150  *
151  * \image html "TestChannelPower100.png"
152  * \image rtf "TestChannelPower100.png"
153  *
154  */
155 
156 /*! \example TestCore.C
157  *
158  * Functions definition for the TestChannel.C example:
159  *
160  * Header file:
161  * \include TestCore.H
162  *
163  * Source file:
164  *
165  */
166 
167 //----------------------------------------------------------------------
168 /*! \example ReadRCoBo.C
169  *
170  * Example file to read 1 event and plot the content of a full AGET
171  * chip.
172  *
173  * It can be executed in a ROOT session with:
174  * \code
175  * [ROOT] .L ReadRCoBo.C
176  * [ROOT] RCoBoPlotAGet ( "../../data/RCoBo/CoBo_baseline.graw", 1, 17 );
177  * \endcode
178  *
179  */
180 
181 //----------------------------------------------------------------------
182 /*! \example RCoBo_ChannelMeanRMS.C
183  *
184  * Example macro file that reads a reduced-CoBo file to build the average
185  * and the RMS for each channel (only one is displayed).
186  *
187  * \image html "RCoBo_ChannelMeanRMS.png"
188  * \image rtf "RCoBo_ChannelMeanRMS.png"
189  *
190  * This example uses the functions from the GETRoot library.
191  * It can be executed in a ROOT session with:
192  * \code
193  * [ROOT] .L RCoBo_ChannelMeanRMS.C
194  * [ROOT] PlotRCoBo_ChannelMeanRMS ( "../../data/RCoBo/CoBo_baseline.graw", 1, 17 );
195  * \endcode
196  *
197  */
198 
199 //----------------------------------------------------------------------
200 /*! \example Demonstrator_RMS1.C
201  *
202  * Example of a ROOT macro that computes the average samples and the RMS
203  * for all channels, from aTPC demonstrator run file.
204  *
205  * \image html "Demonstrator_RMS1.png"
206  * \image rtf "Demonstrator_RMS1.png"
207  *
208  * \code
209  * [ROOT] .L Demonstrator_RMS1.C
210  * [ROOT] PlotDemonstrator_RMS1 ( "../../data/Demonstrator/run_baseline.dat", 0, 0, 1, 17 );
211  * \endcode
212  *
213  * The processing is done in the macro itself, from channels output
214  * content.
215  */
216 
217 //----------------------------------------------------------------------
218 /*! \example Demonstrator_RMS2.C
219  *
220  * Example of a ROOT macro that computes the average samples and the RMS
221  * for all channels, from aTPC demonstrator run file.
222  *
223  * \image html "Demonstrator_RMS2.png"
224  * \image rtf "Demonstrator_RMS2.png"
225  *
226  * \code
227  * [ROOT] .L Demonstrator_RMS2.C
228  * [ROOT] PlotDemonstrator_RMS2 ( "../../data/Demonstrator/run_baseline.dat", 0, 0, 1, 17 );
229  * \endcode
230  *
231  * The processing is done by the functions from the GETRoot library.
232  */
233 
234 //----------------------------------------------------------------------
235 /*! \example Demonstrator_Noise.C
236  *
237  * Example of a ROOT macro that computes the average fluctuations over
238  * time buckets, for all channels.
239  *
240  * \image html "Demonstrator_Noise.png"
241  * \image rtf "Demonstrator_Noise.png"
242  *
243  * \code
244  * [ROOT] .L Demonstrator_Noise.C
245  * [ROOT] PlotDemonstrator_Noise ( "../../data/Demonstrator/run_baseline.dat", 0, 0, 1, 17 );
246  * \endcode
247  *
248  * The processing is done by the functions from the GETRoot library for
249  * the channels mean and RMS samples, and then by the macro for averaging
250  * the RMS over time buckets.
251  */
252 
253 //======================================================================