MiniballSort
Loading...
Searching...
No Matches
Settings.hh
Go to the documentation of this file.
1#ifndef __SETTINGS_HH
2#define __SETTINGS_HH
3
4#include <iostream>
5#include <fstream>
6#include <string>
7#include <memory>
8
9#include "TObject.h"
10#include "TSystem.h"
11#include "TEnv.h"
12
16
17class MiniballSettings : public TObject {
18
19public:
20
22 MiniballSettings( std::string filename );
24
25 void ReadSettings();
26 void TestSettings();
28 void SetFile( std::string filename ){
29 fInputFile = filename;
30 }
31 const std::string InputFile(){
32 return fInputFile;
33 }
34
35 // FEBEX settings
36 inline unsigned int GetNumberOfFebexSfps(){ return n_febex_sfp; };
37 inline unsigned int GetNumberOfFebexBoards(){ return n_febex_board; };
38 inline unsigned int GetNumberOfFebexChannels(){ return n_febex_ch; };
39
40 // Old DAQ settings - DGF
41 inline unsigned int GetNumberOfDgfModules(){ return n_dgf_mod; };
42 inline unsigned int GetNumberOfDgfTimestampModules(){ return n_dgf_ts_mod; };
43 inline unsigned int GetNumberOfDgfChannels(){ return n_dgf_ch; };
44 inline int GetDgfModuleNumber( unsigned int i ){
45 if( i >= dgf_mod_offset && i < dgf_mod_offset + n_dgf_mod )
46 return i - dgf_mod_offset;
47 else {
48 std::cerr << "Bad DGF module requested: " << i << std::endl;
49 return -1;
50 }
51 };
52 inline double GetDgfTimestampDelay(){ return dgf_ts_delay; };
53 inline double GetDgfTimestampUnits(){ return dgf_ts_units; };
54 inline bool IsTimestampModule( unsigned int m ){
56 return true;
57 else return false;
58 };
59
60 // Total ADC modules
61 inline unsigned int GetNumberOfAdcModules(){ return n_caen_mod + n_madc_mod; };
62 inline unsigned int GetMaximumNumberOfAdcChannels(){
63 if( n_caen_ch > n_madc_ch ) return n_caen_ch;
64 else return n_madc_ch;
65 };
66
67 // Old DAQ settings - CAEN ADCs
68 inline unsigned int GetNumberOfCaenAdcModules(){ return n_caen_mod; };
69 inline unsigned int GetNumberOfCaenAdcChannels(){ return n_caen_ch; };
70 inline int GetCaenAdcModuleNumber( unsigned int i ){
72 return i - caen_mod_offset;
73 else {
74 std::cerr << "Bad CAEN ADC module requested: " << i << std::endl;
75 return -1;
76 }
77 };
78 inline double GetCaenAdcTimestampUnits(){ return caen_ts_units; };
79
80 // Old DAQ settings - Mesytec
81 inline unsigned int GetNumberOfMesytecAdcModules(){ return n_madc_mod; };
82 inline unsigned int GetNumberOfMesytecAdcChannels(){ return n_madc_ch; };
83 inline int GetMesytecAdcModuleNumber( unsigned int i ){
85 return i - madc_mod_offset;
86 else {
87 std::cerr << "Bad Mesytec ADC module requested: " << i << std::endl;
88 return -1;
89 }
90 };
91 inline double GetMesytecAdcTimestampUnits(){ return madc_ts_units; };
92
93 // Old DAQ settings - Pattern Units
94 inline unsigned int GetNumberOfPatternUnits(){ return n_pattern_unit; };
95 inline int GetPatternUnitNumber( unsigned int i ){
97 return i - pattern_unit_offset;
98 else {
99 std::cerr << "Bad Pattern Unit module requested: " << i << std::endl;
100 return -1;
101 }
102 };
103
104 // Old DAQ settings - Scaler Units
105 inline unsigned int GetNumberOfScalerUnits(){ return n_scaler_unit; };
106 inline int GetScalerUnitNumber( unsigned int i ){
108 return i - scaler_unit_offset;
109 else {
110 std::cerr << "Bad Scaler Unit module requested: " << i << std::endl;
111 return -1;
112 }
113 };
114
115 // Check VME module numbers
116 inline bool CheckVmeModuleIsDgf( unsigned int id ){
117 if( id >= dgf_vme_first && id <= dgf_vme_last ) return true;
118 else return false;
119 };
120 inline bool CheckVmeModuleIsAdc( unsigned int id ){
121 if( id >= adc_vme_first && id <= adc_vme_last ) return true;
122 else return false;
123 };
124 inline bool CheckVmeModuleIsScaler( unsigned int id ){
125 if( id >= scaler_vme_first && id <= scaler_vme_last ) return true;
126 else return false;
127 };
128 inline bool CheckVmeModuleIsPattern( unsigned int id ){
129 if( id >= pattern_vme_first && id <= pattern_vme_last ) return true;
130 else return false;
131 };
132 inline bool CheckVmeModuleIsDgfScaler( unsigned int id ){
133 if( id >= dgfscaler_vme_first && id <= dgfscaler_vme_last ) return true;
134 else return false;
135 };
136
137
138 // Info settings
139 inline unsigned int GetMsbSyncCode(){ return sync_msb_code; };
140 inline unsigned int GetHsbSyncCode(){ return sync_hsb_code; };
141 inline unsigned int GetMsbTimestampCode(){ return tm_msb_code; };
142 inline unsigned int GetHsbTimestampCode(){ return tm_hsb_code; };
143 inline unsigned int GetPauseCode(){ return pause_code;};
144 inline unsigned int GetResumeCode(){ return resume_code;};
145 inline unsigned int GetPulserCode(){ return pulser_code; };
146
147 inline unsigned int GetEBISSfp(){ return ebis_sfp; };
148 inline unsigned int GetEBISBoard(){ return ebis_board; };
149 inline unsigned int GetEBISDgf(){ return ebis_dgf; };
150 inline unsigned int GetEBISChannel(){ return ebis_ch; };
151 inline unsigned int GetEBISCode(){ return ebis_code; };
152
153 inline unsigned int GetT1Sfp(){ return t1_sfp; };
154 inline unsigned int GetT1Board(){ return t1_board; };
155 inline unsigned int GetT1Dgf(){ return t1_dgf; };
156 inline unsigned int GetT1Channel(){ return t1_ch; };
157 inline unsigned int GetT1Code(){ return t1_code; };
158
159 inline unsigned int GetSCSfp(){ return sc_sfp; };
160 inline unsigned int GetSCBoard(){ return sc_board; };
161 inline unsigned int GetSCDgf(){ return sc_dgf; };
162 inline unsigned int GetSCChannel(){ return sc_ch; };
163 inline unsigned int GetSCCode(){ return sc_code; };
164
165 inline unsigned int GetRILISSfp(){ return laser_sfp; };
166 inline unsigned int GetRILISBoard(){ return laser_board; };
167 inline unsigned int GetRILISChannel(){ return laser_ch; };
168 inline unsigned int GetRILISPattern(){ return laser_pattern; };
169 inline unsigned int GetRILISCode(){ return laser_code; };
170
171
172 // Event builder
173 inline double GetEventWindow(){ return event_window; };
174 inline double GetMbsEventMode(){ return mbs_event_sort; };
175 inline void SetMbsEventMode( bool flag ){ mbs_event_sort = flag; };
176
177
178 // Data settings
179 void SetBlockSize( unsigned int size ){ block_size = size; };
180 inline unsigned int GetBlockSize(){ return block_size; };
181 inline unsigned int IsFebexOnly(){ return flag_febex_only; };
182
183
184 // Are we rejecting pileup and/or clipped events
185 inline bool GetPileupRejection(){ return pileup_reject; };
186 inline bool GetClippedRejection(){ return clipped_reject; };
187
188
189 // Are we rejecting full buffers?
192
193
194 // Miniball array
195 inline unsigned int GetNumberOfMiniballClusters(){ return n_mb_cluster; };
196 inline unsigned int GetNumberOfMiniballCrystals(){ return n_mb_crystal; };
197 inline unsigned int GetNumberOfMiniballSegments(){ return n_mb_segment; };
198 bool IsMiniball( unsigned int dgf, unsigned int ch );
199 bool IsMiniball( unsigned int sfp, unsigned int board, unsigned int ch );
200 int GetMiniballID( unsigned int dgf, unsigned int ch,
201 const std::vector<std::vector<std::vector<int>>> &vector );
202 int GetMiniballID( unsigned int sfp, unsigned int board, unsigned int ch,
203 const std::vector<std::vector<std::vector<int>>> &vector );
204 inline int GetMiniballCluster( unsigned int dgf, unsigned int ch ){
205 return GetMiniballID( dgf, ch, mb_cluster );
206 };
207 inline int GetMiniballCluster( unsigned int sfp, unsigned int board, unsigned int ch ){
208 return GetMiniballID( sfp, board, ch, mb_cluster );
209 };
210 inline int GetMiniballCrystal( unsigned int dgf, unsigned int ch ){
211 return GetMiniballID( dgf, ch, mb_crystal );
212 };
213 inline int GetMiniballCrystal( unsigned int sfp, unsigned int board, unsigned int ch ){
214 return GetMiniballID( sfp, board, ch, mb_crystal );
215 };
216 inline int GetMiniballSegment( unsigned int dgf, unsigned int ch ){
217 return GetMiniballID( dgf, ch, mb_segment );
218 };
219 inline int GetMiniballSegment( unsigned int sfp, unsigned int board, unsigned int ch ){
220 return GetMiniballID( sfp, board, ch, mb_segment );
221 };
222 bool IsMiniballSegmentVetoed( unsigned int clu, unsigned int cry, unsigned int seg );
223 inline double GetMiniballCrystalHitWindow(){ return mb_hit_window; };
224 inline double GetMiniballAddbackHitWindow(){ return ab_hit_window; };
225
226
227 // CD detector
228 inline unsigned int GetNumberOfCDDetectors(){ return n_cd_det; };
229 inline unsigned int GetNumberOfCDSectors(){ return n_cd_sector; };
230 inline unsigned int GetNumberOfCDSides(){ return n_cd_side; };
231 inline unsigned int GetNumberOfCDPStrips(){ return n_cd_pstrip; };
232 inline unsigned int GetNumberOfCDNStrips(){ return n_cd_nstrip; };
233 bool IsCD( unsigned int adc, unsigned int ch );
234 bool IsCD( unsigned int sfp, unsigned int board, unsigned int ch );
235 int GetCDID( unsigned int adc, unsigned int ch,
236 const std::vector<std::vector<std::vector<int>>> &vector );
237 int GetCDID( unsigned int sfp, unsigned int board, unsigned int ch,
238 const std::vector<std::vector<std::vector<int>>> &vector );
239 inline int GetCDDetector( unsigned int adc, unsigned int ch ){
240 return GetCDID( adc, ch, cd_det );
241 };
242 inline int GetCDDetector( unsigned int sfp, unsigned int board, unsigned int ch ){
243 return GetCDID( sfp, board, ch, cd_det );
244 };
245 inline int GetCDSector( unsigned int adc, unsigned int ch ){
246 return GetCDID( adc, ch, cd_sector );
247 };
248 inline int GetCDSector( unsigned int sfp, unsigned int board, unsigned int ch ){
249 return GetCDID( sfp, board, ch, cd_sector );
250 };
251 inline int GetCDSide( unsigned int adc, unsigned int ch ){
252 return GetCDID( adc, ch, cd_side );
253 };
254 inline int GetCDSide( unsigned int sfp, unsigned int board, unsigned int ch ){
255 return GetCDID( sfp, board, ch, cd_side );
256 };
257 inline int GetCDStrip( unsigned int adc, unsigned int ch ){
258 return GetCDID( adc, ch, cd_strip );
259 };
260 inline int GetCDStrip( unsigned int sfp, unsigned int board, unsigned int ch ){
261 return GetCDID( sfp, board, ch, cd_strip );
262 };
263 inline double GetCDHitWindow(){ return cd_hit_window; };
264
265
266 // Pad detector
267 bool IsPad( unsigned int adc, unsigned int ch );
268 bool IsPad( unsigned int sfp, unsigned int board, unsigned int ch );
269 int GetPadDetector( unsigned int adc, unsigned int ch );
270 int GetPadDetector( unsigned int sfp, unsigned int board, unsigned int ch );
271 int GetPadSector( unsigned int adc, unsigned int ch );
272 int GetPadSector( unsigned int sfp, unsigned int board, unsigned int ch );
273 inline double GetPadHitWindow(){ return pad_hit_window; };
274
275
276 // Beam dump detector
277 inline unsigned int GetNumberOfBeamDumpDetectors(){ return n_bd_det; };
278 bool IsBeamDump( unsigned int dgf, unsigned int ch );
279 bool IsBeamDump( unsigned int sfp, unsigned int board, unsigned int ch );
280 int GetBeamDumpDetector( unsigned int dgf, unsigned int ch );
281 int GetBeamDumpDetector( unsigned int sfp, unsigned int board, unsigned int ch );
282
283
284 // SPEDE detector
285 inline unsigned int GetNumberOfSpedeSegments(){ return n_spede_seg; };
286 bool IsSpede( unsigned int sfp, unsigned int board, unsigned int ch );
287 int GetSpedeSegment( unsigned int sfp, unsigned int board, unsigned int ch );
288
289
290 // IonChamber
291 inline unsigned int GetNumberOfIonChamberLayers(){ return n_ic_layer; };
292 bool IsIonChamber( unsigned int adc, unsigned int ch );
293 bool IsIonChamber( unsigned int sfp, unsigned int board, unsigned int ch );
294 int GetIonChamberLayer( unsigned int adc, unsigned int ch );
295 int GetIonChamberLayer( unsigned int sfp, unsigned int board, unsigned int ch );
296 inline double GetIonChamberHitWindow(){ return ic_hit_window; };
297
298
299 // Pulsers
300 inline unsigned int GetNumberOfPulsers(){ return n_pulsers; };
301 bool IsPulser( unsigned int sfp, unsigned int board, unsigned int ch );
302 int GetPulser( unsigned int sfp, unsigned int board, unsigned int ch );
303
304
305 ClassDef( MiniballSettings, 3 )
306
307private:
308
309 std::string fInputFile;
310
311 // FEBEX settings
312 unsigned int n_febex_sfp;
313 unsigned int n_febex_board;
314 unsigned int n_febex_ch;
315
316 // Old DAQ settings
317 unsigned int n_dgf_mod;
318 unsigned int n_dgf_ts_mod;
319 unsigned int n_dgf_ch;
320 unsigned int dgf_mod_offset;
321 unsigned int dgf_ts_mod_offset;
322 unsigned int n_caen_mod;
323 unsigned int n_caen_ch;
324 unsigned int caen_mod_offset;
325 unsigned int n_madc_mod;
326 unsigned int n_madc_ch;
327 unsigned int madc_mod_offset;
328 unsigned int n_pattern_unit;
329 unsigned int pattern_unit_offset;
330 unsigned int n_scaler_unit;
331 unsigned int scaler_unit_offset;
332
333 // Marabou has weird serial numbers for sub events
339
340 // Miniball array settings
341 unsigned int n_mb_cluster;
342 unsigned int n_mb_crystal;
343 unsigned int n_mb_segment;
344
345 // Miniball array electronics mapping
346 std::vector<std::vector<std::vector<unsigned int>>> mb_sfp;
347 std::vector<std::vector<std::vector<unsigned int>>> mb_board;
348 std::vector<std::vector<std::vector<unsigned int>>> mb_dgf;
349 std::vector<std::vector<std::vector<unsigned int>>> mb_ch;
350 std::vector<std::vector<std::vector<bool>>> mb_veto;
351 std::vector<std::vector<std::vector<int>>> mb_cluster;
352 std::vector<std::vector<std::vector<int>>> mb_crystal;
353 std::vector<std::vector<std::vector<int>>> mb_segment;
354
355 // CD settings
356 unsigned int n_cd_det;
357 unsigned int n_cd_sector;
358 unsigned int n_cd_side;
359 unsigned int n_cd_pstrip;
360 unsigned int n_cd_nstrip;
361
362 // CD electronics mapping
363 std::vector<std::vector<std::vector<std::vector<unsigned int>>>> cd_sfp;
364 std::vector<std::vector<std::vector<std::vector<unsigned int>>>> cd_board;
365 std::vector<std::vector<std::vector<std::vector<unsigned int>>>> cd_adc;
366 std::vector<std::vector<std::vector<std::vector<unsigned int>>>> cd_ch;
367 std::vector<std::vector<std::vector<int>>> cd_det;
368 std::vector<std::vector<std::vector<int>>> cd_sector;
369 std::vector<std::vector<std::vector<int>>> cd_side;
370 std::vector<std::vector<std::vector<int>>> cd_strip;
371
372 // PAD electronics mapping
373 std::vector<std::vector<unsigned int>> pad_sfp;
374 std::vector<std::vector<unsigned int>> pad_board;
375 std::vector<std::vector<unsigned int>> pad_adc;
376 std::vector<std::vector<unsigned int>> pad_ch;
377 std::vector<std::vector<std::vector<int>>> pad_det;
378 std::vector<std::vector<std::vector<int>>> pad_sector;
380
381 // Beam dump settings
382 unsigned int n_bd_det;
383
384 // Beam dump electronics mapping
385 std::vector<unsigned int> bd_sfp;
386 std::vector<unsigned int> bd_board;
387 std::vector<unsigned int> bd_dgf;
388 std::vector<unsigned int> bd_ch;
389 std::vector<std::vector<std::vector<int>>> bd_det;
390
391 // SPEDE settings
392 unsigned int n_spede_seg;
393
394 // SPEDE electronics mapping
395 std::vector<unsigned int> spede_sfp;
396 std::vector<unsigned int> spede_board;
397 std::vector<unsigned int> spede_dgf;
398 std::vector<unsigned int> spede_ch;
399 std::vector<std::vector<std::vector<int>>> spede_seg;
400
401 // IonChamber settings
402 unsigned int n_ic_layer;
403
404 // SPEDE electronics mapping
405 std::vector<unsigned int> ic_sfp;
406 std::vector<unsigned int> ic_board;
407 std::vector<unsigned int> ic_adc;
408 std::vector<unsigned int> ic_ch;
409 std::vector<std::vector<std::vector<int>>> ic_layer;
410
411
412 // Pulsers
413 unsigned int n_pulsers;
414 std::vector<unsigned int> pulser_sfp;
415 std::vector<unsigned int> pulser_board;
416 std::vector<unsigned int> pulser_ch;
417 std::vector<std::vector<std::vector<int>>> pulser;
418
419
420 // Info code settings
421 unsigned int sync_msb_code;
422 unsigned int sync_hsb_code;
423 unsigned int tm_msb_code;
424 unsigned int tm_hsb_code;
425 unsigned int pause_code;
426 unsigned int resume_code;
427 unsigned int pulser_code;
428 unsigned int ebis_sfp;
429 unsigned int ebis_dgf;
430 unsigned int ebis_board;
431 unsigned int ebis_ch;
432 unsigned int ebis_code;
433 unsigned int t1_sfp;
434 unsigned int t1_dgf;
435 unsigned int t1_board;
436 unsigned int t1_ch;
437 unsigned int t1_code;
438 unsigned int sc_sfp;
439 unsigned int sc_dgf;
440 unsigned int sc_board;
441 unsigned int sc_ch;
442 unsigned int sc_code;
443 unsigned int laser_sfp;
444 unsigned int laser_board;
445 unsigned int laser_ch;
446 unsigned int laser_pattern;
447 unsigned int laser_code;
448
449 // Event builder
452
453 // Hit windows for complex events
459
460 // Data format
461 unsigned int block_size;
463
464 // Pile-up and clipped pulse rejection
467
468 // Buffer full rejection
471
472 // DGF timestamp delay
474
475 // Timestamp units (ns per tick)
479
480
481
482};
483
484#endif
unsigned int n_pattern_unit
Number of pattern unit modules.
Definition Settings.hh:328
unsigned int dgf_mod_offset
module number offset for the DGFs
Definition Settings.hh:320
unsigned int n_caen_mod
Number of CAEN ADC modules.
Definition Settings.hh:322
unsigned int pulser_code
Info code when we have a pulser event in InfoData packets.
Definition Settings.hh:427
unsigned int ebis_sfp
Location of the EBIS signal in the FEBEX system (sfp)
Definition Settings.hh:428
unsigned int caen_mod_offset
module number offset for the CAEN ADCs
Definition Settings.hh:324
double mb_hit_window
Prompt time for correlated Miniball events in crystal, i.e. segmen-core events.
Definition Settings.hh:454
unsigned int GetNumberOfFebexSfps()
Definition Settings.hh:36
unsigned int n_madc_mod
Number of Mesytec ADC modules.
Definition Settings.hh:325
std::vector< std::vector< std::vector< int > > > cd_det
A channel map for the CD detectors (-1 if not a CD, 0 forward CD, 1 backward CD)
Definition Settings.hh:367
unsigned int ebis_dgf
Location of the EBIS signal in the DGF system (module)
Definition Settings.hh:429
unsigned int n_scaler_unit
Number of scaler unit modules.
Definition Settings.hh:330
unsigned int GetT1Dgf()
Definition Settings.hh:155
bool IsCD(unsigned int adc, unsigned int ch)
Definition Settings.cc:1021
double GetCDHitWindow()
Definition Settings.hh:263
std::vector< unsigned int > bd_dgf
A list of DGF module numbers for each beam dump detector.
Definition Settings.hh:387
int GetCDStrip(unsigned int sfp, unsigned int board, unsigned int ch)
Definition Settings.hh:260
unsigned int laser_board
Location of the RILIS laser signal in the FEBEX system (board)
Definition Settings.hh:444
unsigned int block_size
not yet implemented, needs C++ style reading of data files
Definition Settings.hh:461
unsigned int ebis_ch
Location of the EBIS signal in the FEBEX system (channel)
Definition Settings.hh:431
unsigned int GetNumberOfMesytecAdcModules()
Definition Settings.hh:81
int GetDgfModuleNumber(unsigned int i)
Definition Settings.hh:44
unsigned int GetRILISChannel()
Definition Settings.hh:167
unsigned int adc_vme_first
Definition Settings.hh:335
bool GetPileupRejection()
Definition Settings.hh:185
const std::string InputFile()
Definition Settings.hh:31
unsigned int GetNumberOfPulsers()
Definition Settings.hh:300
unsigned int laser_sfp
Location of the RILIS laser signal in the FEBEX system (sfp)
Definition Settings.hh:443
unsigned int dgf_vme_last
Marabou IDs for DGFs.
Definition Settings.hh:334
std::vector< std::vector< std::vector< bool > > > mb_veto
A boolean to check if we need to veto any segments.
Definition Settings.hh:350
int GetIonChamberLayer(unsigned int adc, unsigned int ch)
Definition Settings.cc:1294
std::vector< unsigned int > pulser_sfp
A list of SFP numbers for each pulser.
Definition Settings.hh:414
std::vector< std::vector< unsigned int > > pad_ch
A list of channel numbers for each PAD detector.
Definition Settings.hh:376
unsigned int GetNumberOfPatternUnits()
Definition Settings.hh:94
void TestSettings()
Definition Settings.cc:20
unsigned int dgf_ts_mod_offset
module number offset for the timestamper DGFs
Definition Settings.hh:321
bool GetBufferPartRejection()
Definition Settings.hh:191
bool GetClippedRejection()
Definition Settings.hh:186
std::vector< std::vector< std::vector< std::vector< unsigned int > > > > cd_adc
A list of ADC module numbers for each CD detector, sector, side and strip.
Definition Settings.hh:365
unsigned int GetNumberOfFebexChannels()
Definition Settings.hh:38
unsigned int n_cd_nstrip
number of n-side strips
Definition Settings.hh:360
std::vector< unsigned int > ic_board
A list of board numbers for each IonChamber segment.
Definition Settings.hh:406
unsigned int tm_msb_code
Medium significant bits of the timestamp are here.
Definition Settings.hh:423
double GetIonChamberHitWindow()
Definition Settings.hh:296
unsigned int n_cd_sector
number of sectors in the CD (or quadrants, it's 4)
Definition Settings.hh:357
unsigned int GetMsbSyncCode()
Definition Settings.hh:139
unsigned int pattern_unit_offset
module number offset for the pattern units
Definition Settings.hh:329
std::vector< std::vector< std::vector< std::vector< unsigned int > > > > cd_ch
A list of channel numbers for each CD detector, sector, side and strip.
Definition Settings.hh:366
bool clipped_reject
reject events that are clipped by the ADC range
Definition Settings.hh:466
double GetPadHitWindow()
Definition Settings.hh:273
unsigned int GetRILISPattern()
Definition Settings.hh:168
unsigned int ebis_code
Info code when we have an EBIS event in InfoData packets.
Definition Settings.hh:432
double ab_hit_window
Prompt time for correlated Miniball events in cluster, i.e. addback events.
Definition Settings.hh:455
int GetSpedeSegment(unsigned int sfp, unsigned int board, unsigned int ch)
Definition Settings.cc:1261
unsigned int pattern_vme_last
Marabou IDs for pattern unit modules.
Definition Settings.hh:337
unsigned int GetNumberOfBeamDumpDetectors()
Definition Settings.hh:277
unsigned int GetEBISDgf()
Definition Settings.hh:149
unsigned int GetEBISChannel()
Definition Settings.hh:150
int GetMiniballSegment(unsigned int dgf, unsigned int ch)
Definition Settings.hh:216
unsigned int GetNumberOfMesytecAdcChannels()
Definition Settings.hh:82
int GetPadDetector(unsigned int adc, unsigned int ch)
Definition Settings.cc:1138
bool IsIonChamber(unsigned int adc, unsigned int ch)
Definition Settings.cc:1278
std::vector< unsigned int > spede_dgf
A list of DGF module numbers for each SPEDE segment.
Definition Settings.hh:397
int GetPadSector(unsigned int adc, unsigned int ch)
Definition Settings.cc:1171
double dgf_ts_units
Definition Settings.hh:476
unsigned int n_cd_pstrip
number of p-side strips
Definition Settings.hh:359
unsigned int GetNumberOfMiniballSegments()
Definition Settings.hh:197
unsigned int GetHsbTimestampCode()
Definition Settings.hh:142
bool IsPulser(unsigned int sfp, unsigned int board, unsigned int ch)
Definition Settings.cc:1327
unsigned int GetNumberOfCDDetectors()
Definition Settings.hh:228
void ReadSettings()
Definition Settings.cc:136
void SetBlockSize(unsigned int size)
Definition Settings.hh:179
std::vector< unsigned int > ic_ch
A list of channel numbers for each IonChamber segment.
Definition Settings.hh:408
unsigned int n_madc_ch
Number of Mesytec ADC channels.
Definition Settings.hh:326
unsigned int GetNumberOfMiniballCrystals()
Definition Settings.hh:196
unsigned int laser_ch
Location of the RILIS laser signal in the FEBEX system (channel)
Definition Settings.hh:445
int GetPatternUnitNumber(unsigned int i)
Definition Settings.hh:95
std::vector< std::vector< unsigned int > > pad_board
A list of board numbers for each PAD detector.
Definition Settings.hh:374
unsigned int GetT1Channel()
Definition Settings.hh:156
std::vector< std::vector< std::vector< int > > > pad_det
A channel map for the PAD detectors (-1 if not a PAD, 0 forward CD-PAD, 1 backward CD-PAD)
Definition Settings.hh:377
int GetMiniballCrystal(unsigned int dgf, unsigned int ch)
Definition Settings.hh:210
double GetDgfTimestampDelay()
Definition Settings.hh:52
unsigned int GetSCChannel()
Definition Settings.hh:162
int GetMiniballID(unsigned int dgf, unsigned int ch, const std::vector< std::vector< std::vector< int > > > &vector)
Definition Settings.cc:985
ClassDef(MiniballSettings, 3) private unsigned int n_febex_sfp
Number of SFPs in acquisition.
Definition Settings.hh:305
unsigned int GetNumberOfIonChamberLayers()
Definition Settings.hh:291
std::vector< unsigned int > bd_ch
A list of channel numbers for each beam dump detector.
Definition Settings.hh:388
unsigned int GetSCDgf()
Definition Settings.hh:161
std::vector< std::vector< std::vector< unsigned int > > > mb_sfp
A list of SFP numbers for each MB cluster, crystal and segment.
Definition Settings.hh:346
unsigned int sync_msb_code
Sync pulse code from Exploder (msb)
Definition Settings.hh:421
bool CheckVmeModuleIsDgfScaler(unsigned int id)
Definition Settings.hh:132
unsigned int GetNumberOfDgfChannels()
Definition Settings.hh:43
std::vector< unsigned int > spede_ch
A list of channel numbers for each SPEDE segment.
Definition Settings.hh:398
int GetMiniballCluster(unsigned int dgf, unsigned int ch)
Definition Settings.hh:204
unsigned int GetPauseCode()
Definition Settings.hh:143
void SetFile(std::string filename)
Definition Settings.hh:28
unsigned int n_caen_ch
Number of CAENADC channels.
Definition Settings.hh:323
bool mbs_event_sort
Flag to define if we sort MBS data by readout event (true), or by global time (false)
Definition Settings.hh:451
unsigned int scaler_unit_offset
module number offset for the scaler units
Definition Settings.hh:331
std::vector< unsigned int > bd_board
A list of board numbers for each beam dump detector.
Definition Settings.hh:386
unsigned int n_mb_cluster
Miniball usuall has 8 triple cluster detectors.
Definition Settings.hh:341
bool CheckVmeModuleIsScaler(unsigned int id)
Definition Settings.hh:124
unsigned int IsFebexOnly()
Definition Settings.hh:181
double GetDgfTimestampUnits()
Definition Settings.hh:53
int GetCDStrip(unsigned int adc, unsigned int ch)
Definition Settings.hh:257
unsigned int GetRILISBoard()
Definition Settings.hh:166
bool IsPad(unsigned int adc, unsigned int ch)
Definition Settings.cc:1097
unsigned int t1_sfp
Location of the T1 signal in the FEBEX system (sfp)
Definition Settings.hh:433
int GetScalerUnitNumber(unsigned int i)
Definition Settings.hh:106
double cd_hit_window
Prompt time for correlated CD events.
Definition Settings.hh:456
std::vector< unsigned int > spede_board
A list of board numbers for each SPEDE segment.
Definition Settings.hh:396
int GetCDSector(unsigned int adc, unsigned int ch)
Definition Settings.hh:245
bool pileup_reject
reject events where the pileup flag is set by the MWD firmware
Definition Settings.hh:465
int GetCDDetector(unsigned int adc, unsigned int ch)
Definition Settings.hh:239
unsigned int GetNumberOfSpedeSegments()
Definition Settings.hh:285
std::vector< unsigned int > spede_sfp
A list of SFP numbers for each SPEDE segment.
Definition Settings.hh:395
int GetCDSector(unsigned int sfp, unsigned int board, unsigned int ch)
Definition Settings.hh:248
unsigned int n_spede_seg
Number of SPEDE segments, usually 24.
Definition Settings.hh:392
bool CheckVmeModuleIsAdc(unsigned int id)
Definition Settings.hh:120
unsigned int GetBlockSize()
Definition Settings.hh:180
double caen_ts_units
Definition Settings.hh:477
unsigned int GetSCSfp()
Definition Settings.hh:159
std::vector< std::vector< std::vector< std::vector< unsigned int > > > > cd_board
A list of board numbers for each CD detector, sector, side and strip.
Definition Settings.hh:364
unsigned int GetNumberOfCDSectors()
Definition Settings.hh:229
std::vector< std::vector< std::vector< int > > > pad_sector
Definition Settings.hh:378
std::vector< std::vector< std::vector< unsigned int > > > mb_dgf
A list of DGF module numbers for each MB cluster, crystal and segment.
Definition Settings.hh:348
unsigned int n_bd_det
Number of beam dump detectors.
Definition Settings.hh:382
bool flag_febex_only
when there is only FEBEX data in the file
Definition Settings.hh:462
unsigned int t1_dgf
Location of the T1 signal in the DGF system (module)
Definition Settings.hh:434
unsigned int scaler_vme_last
Marabou IDs for scaler modules.
Definition Settings.hh:336
int GetMiniballCrystal(unsigned int sfp, unsigned int board, unsigned int ch)
Definition Settings.hh:213
std::vector< std::vector< std::vector< unsigned int > > > mb_board
A list of board numbers for each MB cluster, crystal and segment.
Definition Settings.hh:347
unsigned int n_dgf_ch
Number of DGF channels.
Definition Settings.hh:319
unsigned int GetNumberOfDgfTimestampModules()
Definition Settings.hh:42
unsigned int t1_code
Info code when we have a T1 event in InfoData packets.
Definition Settings.hh:437
bool IsTimestampModule(unsigned int m)
Definition Settings.hh:54
unsigned int GetT1Board()
Definition Settings.hh:154
unsigned int GetResumeCode()
Definition Settings.hh:144
std::vector< unsigned int > ic_adc
A list of ADC module numbers for each IonChamber segment.
Definition Settings.hh:407
unsigned int ebis_board
Location of the EBIS signal in the FEBEX system (board)
Definition Settings.hh:430
unsigned int GetMsbTimestampCode()
Definition Settings.hh:141
double pad_hit_window
Prompt time for correlated CD-Pad events.
Definition Settings.hh:457
std::vector< std::vector< std::vector< int > > > cd_strip
A channel map for the CD strips IDs (-1 if not a CD, strip ID otherwise)
Definition Settings.hh:370
unsigned int n_cd_side
number of sides, it's always 2, i.e. p-side and n-side
Definition Settings.hh:358
unsigned int laser_pattern
Location of the RILIS laser signal in the pattern unit (channel)
Definition Settings.hh:446
unsigned int GetNumberOfAdcModules()
Definition Settings.hh:61
void SetMbsEventMode(bool flag)
Definition Settings.hh:175
unsigned int GetSCCode()
Definition Settings.hh:163
bool IsMiniballSegmentVetoed(unsigned int clu, unsigned int cry, unsigned int seg)
Definition Settings.cc:968
std::vector< std::vector< std::vector< std::vector< unsigned int > > > > cd_sfp
A list of SFP numbers for each CD detector, sector, side and strip.
Definition Settings.hh:363
int GetMiniballCluster(unsigned int sfp, unsigned int board, unsigned int ch)
Definition Settings.hh:207
unsigned int GetEBISSfp()
Definition Settings.hh:147
std::vector< std::vector< std::vector< int > > > bd_det
A channel map for the beam dump detectors (-1 if not a beam dump, otherwise detector number)
Definition Settings.hh:389
std::vector< std::vector< std::vector< int > > > mb_cluster
A channel map for the Miniball cluster IDs (-1 if not Miniball)
Definition Settings.hh:351
unsigned int madc_mod_offset
module number offset for the MADCs
Definition Settings.hh:327
unsigned int n_dgf_ts_mod
Number of DGF timestamp modules (subset of n_dgf_mod)
Definition Settings.hh:318
std::vector< std::vector< std::vector< int > > > cd_sector
A channel map for the CD sectors (-1 if not a CD, 0-3 for quadrants)
Definition Settings.hh:368
std::vector< std::vector< std::vector< int > > > ic_layer
A channel map for the IonChamber segments (-1 if not a IonChamber, otherwise layer number,...
Definition Settings.hh:409
std::vector< std::vector< std::vector< unsigned int > > > mb_ch
A list of channel numbers for each MB cluster, crystal and segment.
Definition Settings.hh:349
unsigned int GetHsbSyncCode()
Definition Settings.hh:140
unsigned int laser_code
Info code when we have a RILIS Laser ON coincidence with EBIS in InfoData packets.
Definition Settings.hh:447
unsigned int n_ic_layer
Number of IonChamber layers, usually 2, dE (gas) and E (Si)
Definition Settings.hh:402
int GetCDSide(unsigned int sfp, unsigned int board, unsigned int ch)
Definition Settings.hh:254
int GetMesytecAdcModuleNumber(unsigned int i)
Definition Settings.hh:83
bool GetBufferFullRejection()
Definition Settings.hh:190
unsigned int sc_sfp
Location of the SuperCycle signal in the FEBEX system (sfp)
Definition Settings.hh:438
unsigned int GetNumberOfScalerUnits()
Definition Settings.hh:105
int GetCaenAdcModuleNumber(unsigned int i)
Definition Settings.hh:70
bool IsSpede(unsigned int sfp, unsigned int board, unsigned int ch)
Definition Settings.cc:1253
std::vector< std::vector< std::vector< int > > > cd_side
A channel map for the CD sides (-1 if not a CD, 0 for p-side, 1 for n-side)
Definition Settings.hh:369
double ic_hit_window
Prompt time for correlated ionchamber events.
Definition Settings.hh:458
bool IsMiniball(unsigned int dgf, unsigned int ch)
Definition Settings.cc:928
std::vector< unsigned int > ic_sfp
A list of SFP numbers for each IonChamber segment.
Definition Settings.hh:405
unsigned int GetRILISCode()
Definition Settings.hh:169
double GetCaenAdcTimestampUnits()
Definition Settings.hh:78
bool IsBeamDump(unsigned int dgf, unsigned int ch)
Definition Settings.cc:1204
unsigned int GetNumberOfCaenAdcModules()
Definition Settings.hh:68
unsigned int n_mb_segment
Number of sgements in a crystal is 7, including core = 0.
Definition Settings.hh:343
int GetBeamDumpDetector(unsigned int dgf, unsigned int ch)
Definition Settings.cc:1220
int GetCDID(unsigned int adc, unsigned int ch, const std::vector< std::vector< std::vector< int > > > &vector)
Definition Settings.cc:1062
int GetCDSide(unsigned int adc, unsigned int ch)
Definition Settings.hh:251
bool CheckVmeModuleIsPattern(unsigned int id)
Definition Settings.hh:128
std::vector< std::vector< std::vector< int > > > pulser
A channel map for the pulser inputs.
Definition Settings.hh:417
unsigned int GetPulserCode()
Definition Settings.hh:145
std::vector< std::vector< std::vector< int > > > mb_crystal
A channel map for the Miniball crystal IDs (-1 if not Miniball)
Definition Settings.hh:352
unsigned int sc_dgf
Location of the SuperCycle signal in the DGF system (module)
Definition Settings.hh:439
unsigned int GetNumberOfCDSides()
Definition Settings.hh:230
unsigned int GetMaximumNumberOfAdcChannels()
Definition Settings.hh:62
int GetPulser(unsigned int sfp, unsigned int board, unsigned int ch)
Definition Settings.cc:1335
unsigned int dgfscaler_vme_last
Marabou IDs for DGF scalers.
Definition Settings.hh:338
unsigned int n_febex_ch
Number of channels per board (16 for FEBEX4)
Definition Settings.hh:314
unsigned int GetNumberOfMiniballClusters()
Definition Settings.hh:195
double event_window
Event builder time window in ns.
Definition Settings.hh:450
std::vector< std::vector< unsigned int > > pad_sfp
A list of SFP numbers for each PAD detector.
Definition Settings.hh:373
unsigned int GetNumberOfCaenAdcChannels()
Definition Settings.hh:69
unsigned int GetT1Code()
Definition Settings.hh:157
unsigned int GetNumberOfCDPStrips()
Definition Settings.hh:231
unsigned int pause_code
Info code when acquisition has paused due to a full buffer.
Definition Settings.hh:425
unsigned int GetNumberOfCDNStrips()
Definition Settings.hh:232
unsigned int GetEBISCode()
Definition Settings.hh:151
int GetCDDetector(unsigned int sfp, unsigned int board, unsigned int ch)
Definition Settings.hh:242
bool CheckVmeModuleIsDgf(unsigned int id)
Definition Settings.hh:116
unsigned int GetSCBoard()
Definition Settings.hh:160
unsigned int t1_board
Location of the T1 signal in the FEBEX system (board)
Definition Settings.hh:435
std::vector< std::vector< unsigned int > > pad_adc
A list of ADC module numbers for each PAD detector.
Definition Settings.hh:375
unsigned int GetNumberOfDgfModules()
Definition Settings.hh:41
unsigned int pattern_vme_first
Definition Settings.hh:337
unsigned int sc_ch
Location of the SuperCycle signal in the FEBEX system (channel)
Definition Settings.hh:441
unsigned int scaler_vme_first
Definition Settings.hh:336
unsigned int adc_vme_last
Marabou IDs for ADCs.
Definition Settings.hh:335
unsigned int tm_hsb_code
Highest significant bits of the timestamp are here.
Definition Settings.hh:424
unsigned int GetNumberOfFebexBoards()
Definition Settings.hh:37
double GetMiniballAddbackHitWindow()
Definition Settings.hh:224
unsigned int n_dgf_mod
Number of DGF modules.
Definition Settings.hh:317
double GetEventWindow()
Definition Settings.hh:173
std::vector< std::vector< std::vector< int > > > mb_segment
A channel map for the Miniball segment IDs (-1 if not Miniball)
Definition Settings.hh:353
double GetMiniballCrystalHitWindow()
Definition Settings.hh:223
unsigned int dgfscaler_vme_first
Definition Settings.hh:338
unsigned int n_febex_board
Maximum number of boards per SFP.
Definition Settings.hh:313
unsigned int n_pulsers
Number of pulser inputs for synchronisation tests.
Definition Settings.hh:413
std::vector< unsigned int > pulser_board
A list of board numbers for each pulser.
Definition Settings.hh:415
unsigned int n_cd_det
Number of CD detectors (just 1 for Coulex)
Definition Settings.hh:356
double GetMbsEventMode()
Definition Settings.hh:174
unsigned int t1_ch
Location of the T1 signal in the FEBEX system (channel)
Definition Settings.hh:436
unsigned int GetT1Sfp()
Definition Settings.hh:153
unsigned int n_mb_crystal
Number of crystals in a triple cluster is 3.
Definition Settings.hh:342
unsigned int GetRILISSfp()
Definition Settings.hh:165
unsigned int dgf_vme_first
Definition Settings.hh:334
unsigned int sync_hsb_code
Sync pulse code from Exploder (hsb)
Definition Settings.hh:422
unsigned int GetEBISBoard()
Definition Settings.hh:148
std::vector< unsigned int > bd_sfp
A list of SFP numbers for each beam dump detector.
Definition Settings.hh:385
unsigned int sc_board
Location of the SuperCycle signal in the FEBEX system (board)
Definition Settings.hh:440
int GetMiniballSegment(unsigned int sfp, unsigned int board, unsigned int ch)
Definition Settings.hh:219
unsigned int sc_code
Info code when we have a SuperCycle event in InfoData packets.
Definition Settings.hh:442
unsigned int resume_code
Info code when acquisition has resumed after a pause.
Definition Settings.hh:426
std::vector< unsigned int > pulser_ch
A list of channel numbers for each pulser.
Definition Settings.hh:416
double GetMesytecAdcTimestampUnits()
Definition Settings.hh:91
double madc_ts_units
Definition Settings.hh:478
std::vector< std::vector< std::vector< int > > > spede_seg
A channel map for the SPEDE segments (-1 if not a SPEDE, otherwise segment number)
Definition Settings.hh:399