GET library
GETSystem.hh
Go to the documentation of this file.
1 //======================================================================
2 /*! \file GETSystem.hh
3  *
4  * Include file for the GETSystem class.
5  */
6 //======================================================================
7 
8 #ifndef GET_SYSTEM_HH
9 #define GET_SYSTEM_HH
10 
11 //----------------------------------------------------------------------
12 #include "GETCoBo.hh"
13 #include "GETRunFile.hh"
14 #include "GETRunList.hh"
15 #include "GETRunSerie.hh"
16 
17 #include "GETProcessSerie.hh"
18 #include "GETCalibProcess.hh"
19 #include "GETBaselineCorrection.hh"
20 #include "GETAutoBaseline.hh"
21 #include "GETAutoBLoffset.hh"
22 #include "GETFilterSmooth.hh"
23 
24 #include "GETCfgSetup.hh"
25 
26 #include "MFMCoboFrame.h"
27 #include "MFMCoboTopoFrame.h"
28 #include "MFMEbyedatFrame.h"
29 #include "MFMMutantFrame.h"
30 #include "MFMMergeFrame.h"
31 #include "MFMXmlFileHeaderFrame.h"
32 
33 #include "GETLookupTable.hh"
34 #include "GETHitMask.hh"
35 
36 #include <TH1D.h>
37 #include <TH2D.h>
38 #include <TH3D.h>
39 
40 class GETSystemAnalyser;
41 
42 ///! Maximum number of bad read data
43 #define GET_BAD_READ_MAX 512
44 
45 /*! Structure for base data read in GET frames.*/
46 typedef struct
47 {
48  int Info; ///< Information about the data: 0=Ok, 1=bad read, 2=removed channel
49  u_short CoBo; ///< Cobo module
50  u_short AsAd; ///< AsAd board
51  u_short AGet; ///< AGET chip
52  u_short Channel; ///< Channel
53  u_short Bucket; ///< Time bucket
54  u_short Value; ///< Value
55 
56 } GETData;
57 
58 //======================================================================
59 /*! \class GETSystem
60  *
61  * This class defines a the full GET system, controlling a variable
62  * number of CoBo modules.
63  *
64  * The static options may define general behaviour of the system,
65  * such as samples corrections at readout.
66  *
67  * The class defines some automatic corrections of raw data samples
68  * when reading an event (see options defined in the GET namespace),
69  * independently of the output data correction processes:
70  *
71  * - data-0 correction: set the first sample data to the second one
72  * (this is necessary when the first data is junk when using a reduced
73  * readout depth - seen only in full readout mode... - observed in
74  * 2018, with the 2017/02 CoBo firmware)
75  *
76  * - correction from FPN channels:
77  * - GET::CoBoCorrectFPN for closest FPN channel correction
78  * - GET::CoBoCorrectFPN2 for half-chip FPN channels correction
79  * - GET::CoBoCorrectFPN4 for average (AGET chip) FPN channels correction
80  *
81  * - apply a (software) zero suppresion on raw data:
82  * this option is not compatible with the FPN correction or with the
83  * automatic baseline correction
84  *
85  * Illustration of the event processing with GETSystem class:
86  *
87  * \image html GETEventProcessing.png
88  *
89  *
90  * \par Run files and run series
91  *
92  * When reading events with the GETSystem class (with ReadEvent function),
93  * a file must have been previously opened.
94  *
95  * - A run file is either a single file, either a set of several files
96  * with the same name, but with additional prefix \.1, .2... in
97  * case of automatic change of file during acquisition.
98  * - in this case, use the GETSystem::OpenRunFile function
99  * - the input file name may contain a \b * character to indicate
100  * that there can be more than 1 file (for example "run_0201.dat*")
101  * - A run serie is a list of run files, with different run numbers.
102  * - in this case, use the GETSystem::OpenRunSerie function
103  * - the file name must contain a %R code to indicate where is the
104  * run number
105  * - for example, <B><TT> OpenRunSerie ( "run_%4R.dat*", "201:203,206" ) </TT></B>
106  * will request
107  * to process files "run_0201.dat*", "run_0202.dat*", "run_0203.dat*"
108  * and "run_0206.dat*" (see above for the meaning of *).
109  *
110  *
111  * \par Lookup table
112  *
113  * A lookup table is associated to the GET system object in order to
114  * associate the detector channels positions to the electronics channels.
115  *
116  *
117  * \par Hit mask and hit channels
118  *
119  * A hit mask can be created (the look-up table must be defined) in
120  * order to select the channels for analysis.
121  *
122  * The hit mask defines 2 information for each channel:
123  * - whether it is selected for analysis
124  * - whether its signal is large enough
125  *
126  *
127  * \par Hit channels
128  *
129  * It should be noted that independently of the hit mask, the GET system
130  * class defines an array of logical values that indicates whether
131  * the channels have been filled with experimental data (for example
132  * in partial readout mode).
133  *
134  * This hit channel information is checked when applying automatic
135  * corrections to the raw data: FPN, automatic baseline, ...
136  *
137  *
138  * \par Data analyser
139  *
140  * The GETSystemAnalyser class is a base class for specific data analysis
141  * to be performed on the GETSystem data.
142  * Such an analyser can be defined with the GETSystem::SetAnalyser function.
143  *
144  * If an anlyser is defined, its data analysis functions will be called
145  * before and after output correction when experimental data are read.
146  */
147 class GETSystem : public GETObject
148 {
149  //------------------------------------------------------------
150  /*! \object_doc */
152  //------------------------------------------------------------
153 
154  friend class GETCfgSetup;
155  friend class GETHitMask;
156  friend class GETSystemAnalyser;
157 
158 
159  protected:
160  // GET architecture
161  u_int cobo_number; ///< Number of CoBo modules controlled
162  GETCoBo * cobo; ///< Array of CoBo modules
163 
164  u_int channel_count; ///< Total number of channels
165  GETChannel ** channel_summary; ///< Summary of channels pointers
166  bool * channel_hit; ///< Whether the channel contains data
167 
168  u_int mult_channel; ///< Multiplicity of non empty channels
169  u_int mult_aget; ///< Multiplicity of non empty AGet
170  u_int mult_asad; ///< Multiplicity of non empty AsAd
171  u_int mult_cobo; ///< Multiplicity of non empty CoBo
172 
173  int test_channel; ///< Channel index for test outputs (-1 for none)
174 
175  // GET system options
176  static u_int options; ///< Options for GET system
177 
178  // GET configuration
179  GETCfgSetup * config; ///< Configuration data
180 
181  // data file
182  GETRunFile * run_file; ///< Pointer to the input run data
183 
184  u_int mfm_frame_count; ///< Frame number in current file
185  MFMCommonFrame * mfm_frame; ///< Common frame for MFM in/out
186  MFMCoboFrame * mfm_frame_cobo; ///< Specific CoBo frame for MFM in/out
187 
188  bool mfm_event_set; ///< Test is event number / time stamp is set
189  int mfm_event_num; ///< Event number from MFM frames
190  uint64_t mfm_event_clock; ///< Event clock time from MFM frames
191  double mfm_event_time; ///< Event time (sec) from MFM frames
192 
193  char * mfm_buffer; ///< MFM frames data buffer
194  int mfm_buffer_size; ///< Size of allocated buffer
195  char ** mfm_buffer_adr; ///< Pointer of allocated buffer
196 
197  u_int event_count; ///< Number of events read (in file)
198  bool cor_data; ///< Whether processing corrected data
199 
200  // look-up table
201  GETLookupTable lookup_table; ///< Lookup table
202  GETHitMask * hit_mask; ///< Pointer to the hit mask
203 
204  // CoBo red data check (current CoBo/AsAd read frame)
205  int cobo_filled [ASAD_SIZE*AGET_SIZE*GET_MAX_DEPTH]; ///< Memorization of data read in CoBo frame
206  int cobo_last_bucket[ASAD_SIZE*AGET_SIZE]; ///< Memorization of last time bucket read / channel
207 
208  u_int cobo_frame_read; ///< Total number of CoBo frames
209  u_int cobo_frame_error; ///< Number of CoBo frames with errors
210  u_int cobo_frame_recover; ///< Number of CoBo frames with errors that could be recovered
211 
212  u_int bad_cobo_read_count; ///< Number of bad data read
213  u_int bad_cobo_read_check; ///< Counter of bad data needed for missing channels in data check
215  u_int bad_cobo_read_min; ///< Minimum number of data to keep channels in data
216 
217  u_int bad_cobo_channel_count; ///< Number for bad channels in CoBo read
218  int bad_cobo_channel_aget [GET_BAD_READ_MAX]; ///< Memorize AGET number for bad channels
219  int bad_cobo_channel_index[GET_BAD_READ_MAX]; ///< Memorize Channel number for bad channels
220 
221  // bad data read (remaining after CoBo read analysis)
222  u_int bad_read_count; ///< Number of bad data read
223  GETData bad_read_data[GET_BAD_READ_MAX]; ///< Bad data array
224 
225  // zero suppression
226  double zero_threshold; ///< Threshold for raw data zero suppression
227 
228  u_int data0_num; ///< Number of time buckets to set to 0 at beginning of data samples
229  u_int dataN_num; ///< Number of time buckets to set to 0 at end of data samples
230 
231  u_int saturation_value; ///< Coder value for channel saturation (set to 0 not to perform the analysis)
232  u_int saturation_mult; ///< Number of saturated data to consider a channel as saturated
233  u_int saturation_count; ///< Number of saturated channels (computed at raw event analysis)
234 
235  // data analyser
236  u_short selected_analysis; ///< Flag for selected analysis (see GETSystem::SelectAnalysis function)
237  GETSystemAnalyser * analyser; ///< Pointer to a data analyser
238 
239  public:
240  //----------------------------------------------------------
241  /** @name Constructors, affectation, destructor */
242  //@{
243  GETSystem ( u_int n_cobo = 1, u_int dim = 0, double dt = 0.01L );
244  virtual ~GETSystem ( );
245  //@}
246 
247  //----------------------------------------------------------
248  /** @name Options functions */
249  //@{
250  static void SetOptions ( u_int opts ); // inline
251  static void SetOption ( u_int flags, bool b = true ); // inline
252  static u_int GetOptions ( ); // inline
253  static bool GetOption ( u_int flags ); // inline
254 
255  virtual void SetZeroSuppressMode ( double thr = 0. );
256 
257  virtual void SetSaturationValue ( int val ); // inline
258  virtual int GetSaturationValue ( ) const; // inline
259  virtual int GetSaturationCount ( ) const; // inline
260 
261  virtual bool IsChannelSaturated ( u_int ich ); // inline
262  virtual bool IsChannelSaturated ( const GETChannel & ch ); // inline
263  //@}
264 
265  //----------------------------------------------------------
266  /** @name GET configuration */
267  //@{
268  virtual int ResetConfig ( );
269  virtual int InitConfig ( );
270 
271  const GETCfgSetup * GetConfig ( ) const; // inline
272  GETCfgSetup * GetConfig ( ); // inline
273 
274  virtual int ReadXMLConfig ( const string & fname ); // inline
275  //@}
276 
277  //----------------------------------------------------------
278  /** @name Initialization functions */
279  //@{
280  virtual void Reset ( );
281  virtual int Init ( u_int n_cobo, u_int n, double dt );
282  virtual void ClearEvent ( );
283 
284  u_int GetBadReadCount ( ) const; // inline
285  const GETData * GetBadReadData ( ) const; // inline
286  GETData * GetBadReadData ( ); // inline
287  void SetBadDataCorrection ( bool b ); // inline
288 
289  bool ChannelHasData ( u_int ic ) const; // inline
290  u_int CalcMultiplicity ( bool fpn = true );
291  u_int GetChannelMultiplicity ( ) const; // inline
292  u_int GetAGetMultiplicity ( ) const; // inline
293  u_int GetAsAdMultiplicity ( ) const; // inline
294  u_int GetCoBoMultiplicity ( ) const; // inline
295  //@}
296 
297  //----------------------------------------------------------
298  /** @name GET system core objects functions */
299  //@{
300  virtual string GetObjectId ( ) const; // inline
301 
302  virtual u_int GetChildrenNumber ( ) const; // inline
303  virtual const GETObject * GetChild ( u_int i ) const; // inline
304  virtual GETObject * GetChild ( u_int i ); // inline
305 
306  const GETCoBo & operator [] ( u_int n ) const; // inline
307  GETCoBo & operator [] ( u_int n ); // inline
308 
309  virtual u_int GetCoBoNumber ( ) const; // inline
310  virtual u_int GetAsAdNumber ( ) const;
311 
312  virtual int GetChannelIndex ( const GETChannel * ch );
313  //@}
314 
315  //----------------------------------------------------------
316  /** @name Look-up table and analysis tools */
317  //@{
318  const GETLookupTable & LookupTable ( ) const; // inline
319  GETLookupTable & LookupTable ( ); // inline
320 
321  virtual u_int GetChannelCount ( ) const; // inline
322  virtual int GetChannelIndex ( int ix, int iy ) const; // inline
323  virtual GETChannel * GetChannel ( int ix, int iy ) const; // inline
324  virtual GETChannel * GetChannel ( u_int n ); // inline
325 
326  virtual int GetTestChannelIndex ( ); // inline
327  virtual GETChannel * GetTestChannel ( ); // inline
328  virtual GETChannel * SetTestChannel ( int i ); // inline
329 
330  virtual GETHitMask * SetHitMask ( GETHitMask * mask );
331  GETHitMask * GetHitMask ( ) const; // inline
332 
333  virtual int SetAnalyser ( GETSystemAnalyser * a );
334  GETSystemAnalyser * GetAnalyser ( ) const; // inline
335  //@}
336 
337 
338  //----------------------------------------------------------
339  /** @name Data correction and processes */
340  //@{
341 
342  // output corrections
343  virtual int SetCalibProcess ( const string & calib_file, u_short opt = 0 );
344  virtual int SetBaselineCorrection ( const string & bl_file );
345  virtual int SetTimeCorrectionProcess ( const string & shift_file );
346 
347  virtual int SetOutputSmoothing ( double width );
348 
349  virtual int SetAutoBaseline ( u_short num_lo, u_short num_hi,
350  u_short off_lo = 0, u_short off_hi = 0 );
351  virtual int SetAutoBLoffset ( u_short itmin, u_short itmax );
352 
353  // response function
354  virtual int SetResponseFunctions ( const string & rf_file );
355  virtual int SetAsAdResponseFunctions ( const string & rf_file );
356 
357  //@}
358 
359 
360  //----------------------------------------------------------
361  /** @name Experimental data readout */
362  //@{
363  virtual int OpenRunFile ( const string & fname );
364  virtual int OpenRunSerie ( const string & pattern, const string & serie );
365  virtual int CloseRunFile ( );
366 
367  void IncrEventCount ( ); // inline
368  u_int GetEventCount ( ) const; // inline
369  string GetRunFileName ( ) const; // inline
370  bool IsRunFileOpen ( ) const; // inline
371  GETRunFile * GetRunFile ( ); // inline
372 
373  ////virtual int ReadEvent ( bool process = true );
374  virtual int ReadEvent ( );
375 
376  MFMCommonFrame * GetCurrentMFMFrame ( ); // inline
377  int GetAcqEventNumber ( ) const; // inline
378  uint64_t GetAcqEventTimeStamp ( ) const; // inline
379  double GetAcqEventTimeSec ( ) const; // inline
380 
381  virtual void SelectAnalysis ( u_short sel ); // inline
382  virtual void SetAnalysis ( u_short sel, bool b = true ); // inline
383  virtual void SetInputRecAnalysis ( bool b = true ); // inline
384  virtual void SetRawDataAnalysis ( bool b = true ); // inline
385  virtual void SetCorDataAnalysis ( bool b = true ); // inline
386  u_short GetAnalysisFlags ( ) const; // inline
387  bool AnalyseInputRec ( ) const; // inline
388  bool AnalyseRawData ( ) const; // inline
389  bool AnalyseCorData ( ) const; // inline
390 
391  virtual int AnalyseEvent ( );
392  virtual int AnalyseRawEvent ( );
393  virtual int AnalyseCorEvent ( );
394  virtual bool AnalysingRaw ( ) const; // inline
395  virtual bool AnalysingCor ( ) const; // inline
396 
397  // read the frames
398  virtual int ExtractXMLFileHeaderFrame ( );
399  virtual int ExtractCoboTopoFrame ( );
400  virtual int ExtractCoboFrame ( );
401  virtual int ExtractEbyedatFrame ( );
402  virtual int ExtractMergeFrame ( );
403 
404  // get the data
405  virtual int ProcessFrameData ( MFMCommonFrame * frame );
406  virtual int ProcessEbyedatFrameData ( MFMEbyedatFrame * frame );
407  virtual int ProcessMergeFrameData ( MFMMergeFrame * frame );
408  virtual int ProcessCoBoFrameData ( MFMCoboFrame * frame );
409 
410  u_int GetCoBoFrameRead ( ) const; // inline
411  u_int GetCoBoFrameError ( ) const; // inline
412  u_int GetCoBoFrameRecover ( ) const; // inline
413 
414  virtual void ClearCoBoDataRead ( );
415  virtual int CheckCoBoData ( u_int cobo, u_int asad, u_int & aget, u_int & chan, u_int & buck, u_int val );
416 
417  virtual u_int CheckCoBoFrameBadChannels ( int ico, int ias );
418  virtual u_int CorrectCoBoFrameBadData ( int ico, int ias );
419  //@}
420 
421  //----------------------------------------------------------
422  /** @name Events processing and correction */
423  //@{
424  virtual GETChannel * GetMaximumChannel ( u_short info = GET::signalOut, bool integ = false );
425 
426  // corrections of raw events
427  void SetOutputData0correction ( u_int n );
428  void SetOutputDataNcorrection ( u_int n );
429  u_int GetOutputData0correction ( ) const; // inline
430  u_int GetOutputDataNcorrection ( ) const; // inline
431 
432  virtual int OutputCorrectData0 ( );
433  virtual int OutputCorrectDataN ( );
434  virtual int OutputCorrectFPN ( u_int opt_fpn = GET::CoBoCorrectFPN4 );
435  virtual int ZeroSuppression ( double thr = 0. );
436  //@}
437 
438  //----------------------------------------------------------
439  /** @name User hook functions */
440  //@{
441  virtual int UserRawEvent ( );
442  virtual int UserCorEvent ( );
443 
444  virtual int UserAnyFrame ( MFMCommonFrame & frame );
445  virtual int UserMergeFrame ( MFMMergeFrame & frame );
446  virtual int UserCoBoFrame ( MFMCoboFrame & frame );
447  virtual int UserEbyedatFrame ( MFMEbyedatFrame & frame );
448 
449  //@}
450 
451  //----------------------------------------------------------
452  /** @name ROOT related functions */
453  //@{
454  public:
455 
456  /*! for use within ROOT.*/
457  ClassDef(GETSystem,0);
458  //@}
459 };
460 
461 
462 //----------------------------------------------------------------------
463 // Inline functions
464 #include "icc/GETSystem.icc"
465 
466 
467 //======================================================================
468 #endif
bool ChannelHasData(u_int ic) const
Definition: GETSystem.icc:156
bool mfm_event_set
Test is event number / time stamp is set.
Definition: GETSystem.hh:188
virtual int ReadEvent()
Definition: GETSystem.cpp:1112
const GETData * GetBadReadData() const
Definition: GETSystem.icc:135
bool cor_data
Whether processing corrected data.
Definition: GETSystem.hh:198
int cobo_last_bucket[4 *68]
Memorization of last time bucket read / channel.
Definition: GETSystem.hh:206
uint64_t mfm_event_clock
Event clock time from MFM frames.
Definition: GETSystem.hh:190
static const u_short signalOut
Output (experimental data) signal sample.
Definition: GETCommon.hh:110
#define GET_MAX_DEPTH
Maximum data depth.
Definition: GETCommon.hh:34
virtual bool AnalysingRaw() const
Definition: GETSystem.icc:365
u_int CalcMultiplicity(bool fpn=true)
Definition: GETSystem.cpp:365
virtual int ExtractMergeFrame()
Definition: GETSystem.cpp:1531
virtual GETHitMask * SetHitMask(GETHitMask *mask)
Definition: GETSystem.cpp:459
virtual int CheckCoBoData(u_int cobo, u_int asad, u_int &aget, u_int &chan, u_int &buck, u_int val)
Definition: GETSystem.cpp:2082
const GETCfgSetup * GetConfig() const
Definition: GETSystem.icc:91
virtual int GetSaturationValue() const
Definition: GETSystem.icc:48
virtual u_int GetAsAdNumber() const
Definition: GETSystem.cpp:415
virtual int ProcessFrameData(MFMCommonFrame *frame)
Definition: GETSystem.cpp:1549
virtual int ExtractCoboFrame()
Definition: GETSystem.cpp:1457
virtual int SetAutoBaseline(u_short num_lo, u_short num_hi, u_short off_lo=0, u_short off_hi=0)
Definition: GETSystem.cpp:830
virtual int CloseRunFile()
Definition: GETSystem.cpp:1074
virtual u_int CorrectCoBoFrameBadData(int ico, int ias)
Definition: GETSystem.cpp:2315
const GETLookupTable & LookupTable() const
Definition: GETSystem.icc:182
u_int saturation_value
Coder value for channel saturation (set to 0 not to perform the analysis)
Definition: GETSystem.hh:231
virtual int AnalyseCorEvent()
Definition: GETSystem.cpp:1389
bool AnalyseRawData() const
Definition: GETSystem.icc:357
int bad_cobo_channel_aget[512]
Memorize AGET number for bad channels.
Definition: GETSystem.hh:218
virtual u_int GetCoBoNumber() const
Definition: GETSystem.icc:162
virtual int ExtractCoboTopoFrame()
Definition: GETSystem.cpp:1435
virtual void ClearEvent()
Definition: GETSystem.cpp:322
static u_int options
Options for GET system.
Definition: GETSystem.hh:176
GETData bad_cobo_read_data[512]
Bad data array.
Definition: GETSystem.hh:214
GETCfgSetup * config
Configuration data.
Definition: GETSystem.hh:179
u_int GetOutputDataNcorrection() const
Definition: GETSystem.icc:306
u_short Value
Value.
Definition: GETSystem.hh:54
bool IsRunFileOpen() const
Definition: GETSystem.icc:260
Definition: GETChannel.hh:41
virtual int ZeroSuppression(double thr=0.)
Definition: GETSystem.cpp:2802
virtual void ClearCoBoDataRead()
Definition: GETSystem.cpp:2059
virtual int SetResponseFunctions(const string &rf_file)
Definition: GETSystem.cpp:908
virtual int ReadXMLConfig(const string &fname)
Definition: GETSystem.icc:101
u_int GetCoBoFrameRead() const
Definition: GETSystem.icc:286
virtual int SetAsAdResponseFunctions(const string &rf_file)
Definition: GETSystem.cpp:932
static const u_int CoBoCorrectFPN4
When reading experimental data, correct with average FPN (only for signal channels) ...
Definition: GETCommon.hh:299
int Info
Information about the data: 0=Ok, 1=bad read, 2=removed channel.
Definition: GETSystem.hh:48
Definition: GETSystem.hh:46
virtual void SetCorDataAnalysis(bool b=true)
Definition: GETSystem.icc:344
int mfm_event_num
Event number from MFM frames.
Definition: GETSystem.hh:189
virtual int ProcessMergeFrameData(MFMMergeFrame *frame)
Definition: GETSystem.cpp:1602
void IncrEventCount()
Definition: GETSystem.icc:248
u_short AsAd
AsAd board.
Definition: GETSystem.hh:50
bool * channel_hit
Whether the channel contains data.
Definition: GETSystem.hh:166
int test_channel
Channel index for test outputs (-1 for none)
Definition: GETSystem.hh:173
uint64_t GetAcqEventTimeStamp() const
Definition: GETSystem.icc:277
virtual int ProcessCoBoFrameData(MFMCoboFrame *frame)
Definition: GETSystem.cpp:1771
virtual int UserMergeFrame(MFMMergeFrame &frame)
Definition: GETSystem.icc:403
virtual int AnalyseEvent()
Definition: GETSystem.cpp:1239
u_int cobo_number
Number of CoBo modules controlled.
Definition: GETSystem.hh:161
virtual void SelectAnalysis(u_short sel)
Definition: GETSystem.icc:315
double mfm_event_time
Event time (sec) from MFM frames.
Definition: GETSystem.hh:191
void SetBadDataCorrection(bool b)
Definition: GETSystem.icc:145
#define GET_BAD_READ_MAX
! Maximum number of bad read data
Definition: GETSystem.hh:43
static void SetOption(u_int flags, bool b=true)
Definition: GETSystem.icc:21
u_int channel_count
Total number of channels.
Definition: GETSystem.hh:164
virtual u_int CheckCoBoFrameBadChannels(int ico, int ias)
Definition: GETSystem.cpp:2234
GETHitMask * GetHitMask() const
Definition: GETSystem.icc:231
virtual void SetInputRecAnalysis(bool b=true)
Definition: GETSystem.icc:332
u_int GetCoBoFrameRecover() const
Definition: GETSystem.icc:295
MFMCommonFrame * GetCurrentMFMFrame()
Definition: GETSystem.icc:269
virtual int SetBaselineCorrection(const string &bl_file)
Definition: GETSystem.cpp:627
char ** mfm_buffer_adr
Pointer of allocated buffer.
Definition: GETSystem.hh:195
u_int mult_asad
Multiplicity of non empty AsAd.
Definition: GETSystem.hh:170
virtual int OutputCorrectData0()
Definition: GETSystem.cpp:2610
GETSystemAnalyser * GetAnalyser() const
Definition: GETSystem.icc:236
#define AGET_SIZE
Number of channels (signal + FPN) of AGET chip.
Definition: GETAGet.hh:18
virtual int SetAutoBLoffset(u_short itmin, u_short itmax)
Definition: GETSystem.cpp:873
virtual int SetAnalyser(GETSystemAnalyser *a)
Definition: GETSystem.cpp:487
u_int GetOutputData0correction() const
Definition: GETSystem.icc:302
virtual GETChannel * GetTestChannel()
Definition: GETSystem.icc:223
GETSystemAnalyser * analyser
Pointer to a data analyser.
Definition: GETSystem.hh:237
u_int GetEventCount() const
Definition: GETSystem.icc:252
MFMCommonFrame * mfm_frame
Common frame for MFM in/out.
Definition: GETSystem.hh:185
virtual int OpenRunFile(const string &fname)
Definition: GETSystem.cpp:980
virtual void SetRawDataAnalysis(bool b=true)
Definition: GETSystem.icc:338
u_int mfm_frame_count
Frame number in current file.
Definition: GETSystem.hh:184
u_int mult_cobo
Multiplicity of non empty CoBo.
Definition: GETSystem.hh:171
virtual int ExtractXMLFileHeaderFrame()
Definition: GETSystem.cpp:1409
u_int GetChannelMultiplicity() const
Definition: GETSystem.icc:72
Definition: GETHitMask.hh:29
virtual int OutputCorrectDataN()
Definition: GETSystem.cpp:2643
u_int bad_cobo_channel_count
Number for bad channels in CoBo read.
Definition: GETSystem.hh:217
u_int cobo_frame_recover
Number of CoBo frames with errors that could be recovered.
Definition: GETSystem.hh:210
u_int saturation_mult
Number of saturated data to consider a channel as saturated.
Definition: GETSystem.hh:232
virtual ~GETSystem()
Definition: GETSystem.cpp:93
double GetAcqEventTimeSec() const
Definition: GETSystem.icc:281
Definition: GETObject.hh:38
virtual int UserEbyedatFrame(MFMEbyedatFrame &frame)
Definition: GETSystem.icc:419
Definition: GETRunFile.hh:29
GETCoBo * cobo
Array of CoBo modules.
Definition: GETSystem.hh:162
virtual int UserCoBoFrame(MFMCoboFrame &frame)
Definition: GETSystem.icc:411
virtual int OpenRunSerie(const string &pattern, const string &serie)
Definition: GETSystem.cpp:1034
bool AnalyseCorData() const
Definition: GETSystem.icc:361
virtual string GetObjectId() const
Definition: GETSystem.icc:109
u_short Bucket
Time bucket.
Definition: GETSystem.hh:53
virtual GETChannel * SetTestChannel(int i)
Definition: GETSystem.icc:218
virtual int OutputCorrectFPN(u_int opt_fpn=GET::CoBoCorrectFPN4)
Definition: GETSystem.cpp:2683
virtual const GETObject * GetChild(u_int i) const
Definition: GETSystem.icc:119
void SetOutputDataNcorrection(u_int n)
Definition: GETSystem.cpp:2580
double zero_threshold
Threshold for raw data zero suppression.
Definition: GETSystem.hh:226
virtual int ResetConfig()
Definition: GETSystem.cpp:160
u_int cobo_frame_error
Number of CoBo frames with errors.
Definition: GETSystem.hh:209
int GetAcqEventNumber() const
Definition: GETSystem.icc:273
u_int event_count
Number of events read (in file)
Definition: GETSystem.hh:197
u_int bad_read_count
Number of bad data read.
Definition: GETSystem.hh:222
virtual u_int GetChannelCount() const
Definition: GETSystem.icc:190
GETData bad_read_data[512]
Bad data array.
Definition: GETSystem.hh:223
int bad_cobo_channel_index[512]
Memorize Channel number for bad channels.
Definition: GETSystem.hh:219
char * mfm_buffer
MFM frames data buffer.
Definition: GETSystem.hh:193
Definition: GETCfgSetup.hh:26
u_int mult_aget
Multiplicity of non empty AGet.
Definition: GETSystem.hh:169
u_int GetAGetMultiplicity() const
Definition: GETSystem.icc:84
virtual int ExtractEbyedatFrame()
Definition: GETSystem.cpp:1504
static bool GetOption(u_int flags)
Definition: GETSystem.icc:33
virtual int InitConfig()
Definition: GETSystem.cpp:178
GETRunFile * run_file
Pointer to the input run data.
Definition: GETSystem.hh:182
GETLookupTable lookup_table
Lookup table.
Definition: GETSystem.hh:201
u_short GetAnalysisFlags() const
Definition: GETSystem.icc:349
virtual int GetChannelIndex(const GETChannel *ch)
Definition: GETSystem.cpp:428
ClassDef(GETSystem, 0)
u_int mult_channel
Multiplicity of non empty channels.
Definition: GETSystem.hh:168
virtual void SetAnalysis(u_short sel, bool b=true)
Definition: GETSystem.icc:323
virtual void Reset()
Definition: GETSystem.cpp:200
u_int GetBadReadCount() const
Definition: GETSystem.icc:131
u_short Channel
Channel.
Definition: GETSystem.hh:52
virtual int UserRawEvent()
Definition: GETSystem.icc:377
GObject(GETSystem)
Definition: GETLookupTable.hh:32
virtual int Init(u_int n_cobo, u_int n, double dt)
Definition: GETSystem.cpp:240
int cobo_filled[4 *68 *512]
Memorization of data read in CoBo frame.
Definition: GETSystem.hh:205
u_int saturation_count
Number of saturated channels (computed at raw event analysis)
Definition: GETSystem.hh:233
virtual int UserCorEvent()
Definition: GETSystem.icc:382
virtual bool AnalysingCor() const
Definition: GETSystem.icc:369
Definition: GETSystemAnalyser.hh:453
u_int data0_num
Number of time buckets to set to 0 at beginning of data samples.
Definition: GETSystem.hh:228
u_short AGet
AGET chip.
Definition: GETSystem.hh:51
void SetOutputData0correction(u_int n)
Definition: GETSystem.cpp:2548
virtual int ProcessEbyedatFrameData(MFMEbyedatFrame *frame)
Definition: GETSystem.cpp:1746
static void SetOptions(u_int opts)
Definition: GETSystem.icc:14
virtual GETChannel * GetChannel(int ix, int iy) const
Definition: GETSystem.icc:204
#define ASAD_SIZE
Number of chips (AGET) on the AsAd board.
Definition: GETAsAd.hh:17
u_int bad_cobo_read_count
Number of bad data read.
Definition: GETSystem.hh:212
virtual int AnalyseRawEvent()
Definition: GETSystem.cpp:1357
GETSystem(u_int n_cobo=1, u_int dim=0, double dt=0.01L)
Definition: GETSystem.cpp:26
virtual bool IsChannelSaturated(u_int ich)
Definition: GETSystem.icc:59
const GETCoBo & operator[](u_int n) const
Definition: GETSystem.icc:169
u_int bad_cobo_read_check
Counter of bad data needed for missing channels in data check.
Definition: GETSystem.hh:213
MFMCoboFrame * mfm_frame_cobo
Specific CoBo frame for MFM in/out.
Definition: GETSystem.hh:186
virtual u_int GetChildrenNumber() const
Definition: GETSystem.icc:113
GETHitMask * hit_mask
Pointer to the hit mask.
Definition: GETSystem.hh:202
bool AnalyseInputRec() const
Definition: GETSystem.icc:353
virtual GETChannel * GetMaximumChannel(u_short info=GET::signalOut, bool integ=false)
Definition: GETSystem.cpp:2504
u_short selected_analysis
Flag for selected analysis (see GETSystem::SelectAnalysis function)
Definition: GETSystem.hh:236
virtual int SetCalibProcess(const string &calib_file, u_short opt=0)
Definition: GETSystem.cpp:531
static u_int GetOptions()
Definition: GETSystem.icc:26
u_int GetCoBoMultiplicity() const
Definition: GETSystem.icc:76
Definition: GETCoBo.hh:27
virtual void SetZeroSuppressMode(double thr=0.)
Definition: GETSystem.cpp:142
virtual int GetTestChannelIndex()
Definition: GETSystem.icc:227
string GetRunFileName() const
Definition: GETSystem.icc:256
virtual int SetOutputSmoothing(double width)
Definition: GETSystem.cpp:774
virtual int UserAnyFrame(MFMCommonFrame &frame)
Definition: GETSystem.icc:395
u_short CoBo
Cobo module.
Definition: GETSystem.hh:49
virtual int GetSaturationCount() const
Definition: GETSystem.icc:52
int mfm_buffer_size
Size of allocated buffer.
Definition: GETSystem.hh:194
u_int GetAsAdMultiplicity() const
Definition: GETSystem.icc:80
virtual void SetSaturationValue(int val)
Definition: GETSystem.icc:42
GETRunFile * GetRunFile()
Definition: GETSystem.icc:264
Definition: GETSystem.hh:147
u_int cobo_frame_read
Total number of CoBo frames.
Definition: GETSystem.hh:208
u_int GetCoBoFrameError() const
Definition: GETSystem.icc:290
GETChannel ** channel_summary
Summary of channels pointers.
Definition: GETSystem.hh:165
u_int bad_cobo_read_min
Minimum number of data to keep channels in data.
Definition: GETSystem.hh:215
u_int dataN_num
Number of time buckets to set to 0 at end of data samples.
Definition: GETSystem.hh:229
virtual int SetTimeCorrectionProcess(const string &shift_file)
Definition: GETSystem.cpp:697