YAODAQ
Config.hpp
1 #pragma once
2 #include "CAENDigitizerType.h"
3 
4 #include <cstdint>
5 #include <cstdio>
6 
7 typedef enum
8 {
9  OFF_BINARY = 0x00000001, // Bit 0: 1 = BINARY, 0 =ASCII
10  OFF_HEADER = 0x00000002, // Bit 1: 1 = include header, 0 = just samples data
11 } OUTFILE_FLAGS;
12 
13 #define MAX_GW 1000 /* max. number of generic write commads */
14 #define MAX_CH 64 /* max. number of channels */
15 #define MAX_SET 16 /* max. number of independent settings */
16 #define MAX_GROUPS 8 /* max. number of groups */
17 
19 {
20 public:
21  float cal[MAX_SET];
22  float offset[MAX_SET];
23 };
24 
26 {
27 public:
29  {
30  for(std::size_t i = 0; i < MAX_SET; i++)
31  {
32  DAC_Calib.cal[i] = 1;
33  DAC_Calib.offset[i] = 0;
34  }
35  for(std::size_t i = 0; i < MAX_SET; i++)
36  {
37  PulsePolarity[i] = CAEN_DGTZ_PulsePolarityPositive;
38  Version_used[i] = 0;
39  DCoffset[i] = 0;
40  Threshold[i] = 0;
41  ChannelTriggerMode[i] = CAEN_DGTZ_TRGMODE_DISABLED;
42  GroupTrgEnableMask[i] = 0;
43  for(std::size_t j = 0; j < MAX_SET; j++) DCoffsetGrpCh[i][j] = -1;
44  FTThreshold[i] = 0;
45  FTDCoffset[i] = 0;
46  }
47  for(std::size_t i = 0; i < MAX_X742_GROUP_SIZE; i++) sprintf(TablesFilenames[i], "Tables_gr%d", i);
48  }
49  int LinkType;
50  int LinkNum;
51  int ConetNode;
52  std::uint32_t BaseAddress;
53  int Nch;
54  int Nbit;
55  float Ts;
56  int NumEvents{1023};
57  std::uint32_t RecordLength{1024 * 16};
58  int PostTrigger{50};
59  int InterruptNumEvents{0};
60  int TestPattern{0};
61  CAEN_DGTZ_EnaDis_t DesMode{CAEN_DGTZ_EnaDis_t(0)};
62  CAEN_DGTZ_IOLevel_t FPIOtype{CAEN_DGTZ_IOLevel_t(0)};
63  CAEN_DGTZ_TriggerMode_t ExtTriggerMode{CAEN_DGTZ_TRGMODE_ACQ_ONLY};
64  uint16_t EnableMask{0xFFFF};
65  CAEN_DGTZ_TriggerMode_t ChannelTriggerMode[MAX_SET];
66  CAEN_DGTZ_PulsePolarity_t PulsePolarity[MAX_SET];
67  std::uint32_t DCoffset[MAX_SET];
68  std::int32_t DCoffsetGrpCh[MAX_SET][MAX_SET];
69  std::uint32_t Threshold[MAX_SET];
70  int Version_used[MAX_SET];
71  std::uint8_t GroupTrgEnableMask[MAX_SET];
72  std::uint32_t MaxGroupNumber;
73 
74  std::uint32_t FTDCoffset[MAX_SET];
75  std::uint32_t FTThreshold[MAX_SET];
76  CAEN_DGTZ_TriggerMode_t FastTriggerMode{CAEN_DGTZ_TriggerMode_t(0)};
77  std::uint32_t FastTriggerEnabled{0};
78  int GWn{0};
79  std::uint32_t GWaddr[MAX_GW];
80  std::uint32_t GWdata[MAX_GW];
81  std::uint32_t GWmask[MAX_GW];
82  OUTFILE_FLAGS OutFileFlags;
83  std::uint16_t DecimationFactor{1};
84  int useCorrections{-1};
85  int UseManualTables{-1};
86  char TablesFilenames[MAX_X742_GROUP_SIZE][1000];
87  CAEN_DGTZ_DRS4Frequency_t DRS4Frequency{CAEN_DGTZ_DRS4_5GHz};
88  int StartupCalibration{1};
89  DAC_Calibration_data DAC_Calib;
90 };
Definition: Config.hpp:25
Definition: Config.hpp:18