Belle II Software development
ECLDspData Class Reference

This object contains ECL DSP coefs – electromagnetic calorimeter digital signal processing coefficients. More...

#include <ECLDspData.h>

Inheritance diagram for ECLDspData:

Public Member Functions

 ECLDspData (unsigned char board_number=0)
 Initialize DSP coefficients class from binary file.
 
std::vector< short int > getExtraData () const
 
void getF (std::vector< short int > &dst) const
 Array with tabulated signal waveform.
 
void getF1 (std::vector< short int > &dst) const
 Array with tabulated derivative of signal waveform.
 
void getF31 (std::vector< short int > &dst) const
 Array FG31, used to estimate signal amplitude.
 
void getF32 (std::vector< short int > &dst) const
 Array FG32, used to estimate A * delta_t.
 
void getF33 (std::vector< short int > &dst) const
 Array FG33, used to estimate pedestal height in signal.
 
void getF41 (std::vector< short int > &dst) const
 Alternative for FG31 for signals with small amplitude.
 
void getF43 (std::vector< short int > &dst) const
 Alternative for FG33 for signals with small amplitude.
 
unsigned char getverMaj () const
 
unsigned char getverMin () const
 
short int getaAT () const
 
short int getlAT () const
 
short int getsT () const
 
short int gethT () const
 
short int getchiThresh () const
 chi2 threshold for fit quality flag
 
unsigned char getk1 () const
 multipliers power of 2 for f, f1
 
unsigned char getk2 () const
 multipliers power of 2 for chi2 calculation
 
unsigned char getka () const
 Number of bits for FG31, FG41.
 
unsigned char getkb () const
 Number of bits for FG32.
 
unsigned char getkc () const
 Number of bits for FG33, FG43.
 
unsigned char gety0Startr () const
 start point for pedestal calculation
 
unsigned char getBoardNumber () const
 Return ShaperDSP board number, 0..11.
 
void setExtraData (const std::vector< short int > &newval)
 SETTERS.
 
void setF (const std::vector< short int > &src)
 Array with tabulated signal waveform.
 
void setF1 (const std::vector< short int > &src)
 Array with tabulated derivative of signal waveform.
 
void setF31 (const std::vector< short int > &src)
 Array FG31, used to estimate signal amplitude.
 
void setF32 (const std::vector< short int > &src)
 Array FG32, used to estimate A * delta_t.
 
void setF33 (const std::vector< short int > &src)
 Array FG33, used to estimate pedestal height in signal.
 
void setF41 (const std::vector< short int > &src)
 Alternative for FG31 for signals with small amplitude.
 
void setF43 (const std::vector< short int > &src)
 Alternative for FG33 for signals with small amplitude.
 
void setverMaj (unsigned char val)
 Sets major version of DSP coefficients.
 
void setverMin (unsigned char val)
 Sets minor version of DSP coefficients.
 
void setaAT (short int val)
 Set Low amp threshold (https://xwiki.desy.de/xwiki/rest/p/545bc)
 
void setlAT (short int val)
 Set Low amp threshold (https://xwiki.desy.de/xwiki/rest/p/545bc)
 
void setsT (short int val)
 Set Skip threshold (https://xwiki.desy.de/xwiki/rest/p/545bc)
 
void sethT (short int val)
 Set Hit threshold (https://xwiki.desy.de/xwiki/rest/p/545bc)
 
void setchiThresh (short int val)
 Set chi2 threshold for fit quality flag.
 
void setk1 (unsigned char val)
 Set multipliers power of 2 for f, f1.
 
void setk2 (unsigned char val)
 Set multipliers power of 2 for chi2 calculation.
 
void setka (unsigned char val)
 Set number of bits for FG31, FG41.
 
void setkb (unsigned char val)
 Set number of bits for FG32.
 
void setkc (unsigned char val)
 Set number of bits for FG33, FG43.
 
void sety0Startr (unsigned char val)
 Set start point for pedestal calculation.
 

Static Public Member Functions

static constexpr short int getPackerVersion ()
 GETTERS.
 

Private Member Functions

void packCoefVector (const std::vector< short int > &src, std::vector< short int > &dst)
 Convert vector of DSP coefficients (src) to ECLDspData internal format (dst).
 
void unpackCoefVector (const std::vector< short int > &src, std::vector< short int > &dst) const
 Convert vector of DSP coefficients (src) to ECLDspData internal format (dst).
 
 ClassDef (ECLDspData, 1)
 ClassDef.
 

Private Attributes

unsigned char m_boardNumber
 ShaperDSP board number, 0..11.
 
unsigned char m_verMaj
 Major version of DSP coefficients.
 
unsigned char m_verMin
 Minor version of DSP coefficients.
 
unsigned char m_ka
 Number of bits for FG31, FG41.
 
unsigned char m_kb
 Number of bits for FG32.
 
unsigned char m_kc
 Number of bits for FG33, FG43.
 
unsigned char m_y0Startr
 start point for pedestal calculation
 
short int m_chiThresh
 chi2 threshold for quality bit
 
unsigned char m_k1Chi
 multipliers power of 2 for f, f1
 
unsigned char m_k2Chi
 multipliers power of 2 for chi2 calculation
 
short int m_hitThresh
 See https://xwiki.desy.de/xwiki/rest/p/545bc.
 
short int m_lowAmpThresh
 See https://xwiki.desy.de/xwiki/rest/p/545bc.
 
short int m_skipThresh
 See https://xwiki.desy.de/xwiki/rest/p/545bc.
 
short int m_adcAlwThresh
 See https://xwiki.desy.de/xwiki/rest/p/545bc.
 
std::vector< short int > m_fg31 = {}
 See documentation for method 'getF31'.
 
std::vector< short int > m_fg32 = {}
 See documentation for method 'getF32'.
 
std::vector< short int > m_fg33 = {}
 See documentation for method 'getF33'.
 
std::vector< short int > m_fg41 = {}
 See documentation for method 'getF41'.
 
std::vector< short int > m_fg43 = {}
 See documentation for method 'getF43'.
 
std::vector< short int > m_f = {}
 See documentation for method 'getF'.
 
std::vector< short int > m_f1 = {}
 See documentation for method 'getF1'.
 
std::vector< short int > m_extraData
 This vector contains all parameters that didn't exist in the initial version of ECL DSP file format.
 

Static Private Attributes

static const short int c_packerVersion = 2
 Version of packer used in packCoefVector by default Version of unpacker is dynamically determined from the data.
 

Detailed Description

This object contains ECL DSP coefs – electromagnetic calorimeter digital signal processing coefficients.

Payloads with these objects are used in two use cases.

  1. They are uploaded to ShaperDSP boards and then used in waveform fitting (amplitude and time reconstruction).
  2. ECL DQM uses these payloads with ShaperDSP emulator to quickly detect ShaperDSP boards that started sending corrupted data. (ECL expert then resets these modules)

For detailed overview of ECLDSP file structure see ECL-TN-2013-02 <https://xwiki.desy.de/xwiki/bin/download/BI/Belle%20II%20Internal/Detector%20WebHome/ECL%20WebHome/ECL%20Technical%20Notes/WebHome/digi.pdf?rev=4.1>__

Definition at line 33 of file ECLDspData.h.

Constructor & Destructor Documentation

◆ ECLDspData()

ECLDspData ( unsigned char  board_number = 0)
inlineexplicit

Initialize DSP coefficients class from binary file.

Parameters
board_numberId of specific shaperDSP, 0..11

Definition at line 104 of file ECLDspData.h.

104 :
105 m_boardNumber(board_number),
106 m_verMaj(0),
107 m_verMin(0),
108 m_ka(0),
109 m_kb(0),
110 m_kc(0),
111 m_y0Startr(0),
112 m_chiThresh(0),
113 m_k1Chi(0),
114 m_k2Chi(0),
115 m_hitThresh(0),
117 m_skipThresh(0),
119 {}
unsigned char m_k2Chi
multipliers power of 2 for chi2 calculation
Definition: ECLDspData.h:58
short int m_lowAmpThresh
See https://xwiki.desy.de/xwiki/rest/p/545bc.
Definition: ECLDspData.h:62
short int m_chiThresh
chi2 threshold for quality bit
Definition: ECLDspData.h:54
unsigned char m_y0Startr
start point for pedestal calculation
Definition: ECLDspData.h:48
short int m_skipThresh
See https://xwiki.desy.de/xwiki/rest/p/545bc.
Definition: ECLDspData.h:64
short int m_hitThresh
See https://xwiki.desy.de/xwiki/rest/p/545bc.
Definition: ECLDspData.h:60
unsigned char m_boardNumber
ShaperDSP board number, 0..11.
Definition: ECLDspData.h:36
unsigned char m_verMin
Minor version of DSP coefficients.
Definition: ECLDspData.h:40
short int m_adcAlwThresh
See https://xwiki.desy.de/xwiki/rest/p/545bc.
Definition: ECLDspData.h:66
unsigned char m_ka
Number of bits for FG31, FG41.
Definition: ECLDspData.h:42
unsigned char m_verMaj
Major version of DSP coefficients.
Definition: ECLDspData.h:38
unsigned char m_kb
Number of bits for FG32.
Definition: ECLDspData.h:44
unsigned char m_k1Chi
multipliers power of 2 for f, f1
Definition: ECLDspData.h:56
unsigned char m_kc
Number of bits for FG33, FG43.
Definition: ECLDspData.h:46

◆ ~ECLDspData()

~ECLDspData ( )
inline

Definition at line 121 of file ECLDspData.h.

121{};

Member Function Documentation

◆ getaAT()

short int getaAT ( ) const
inline
Returns
ADC always threshold (https://xwiki.desy.de/xwiki/rest/p/545bc)

Definition at line 177 of file ECLDspData.h.

177{ return m_adcAlwThresh; }

◆ getBoardNumber()

unsigned char getBoardNumber ( ) const
inline

Return ShaperDSP board number, 0..11.

Definition at line 206 of file ECLDspData.h.

206{ return m_boardNumber; }

◆ getchiThresh()

short int getchiThresh ( ) const
inline

chi2 threshold for fit quality flag

Definition at line 191 of file ECLDspData.h.

191{ return m_chiThresh; }

◆ getExtraData()

std::vector< short int > getExtraData ( ) const
inline
Returns
Vector with all parameters that haven't been included in basic ECL DSP file format

Definition at line 134 of file ECLDspData.h.

134{ return m_extraData; }
std::vector< short int > m_extraData
This vector contains all parameters that didn't exist in the initial version of ECL DSP file format.
Definition: ECLDspData.h:91

◆ getF()

void getF ( std::vector< short int > &  dst) const
inline

Array with tabulated signal waveform.

Definition at line 139 of file ECLDspData.h.

139{ unpackCoefVector(m_f, dst); }
std::vector< short int > m_f
See documentation for method 'getF'.
Definition: ECLDspData.h:78
void unpackCoefVector(const std::vector< short int > &src, std::vector< short int > &dst) const
Convert vector of DSP coefficients (src) to ECLDspData internal format (dst).
Definition: ECLDspData.cc:79

◆ getF1()

void getF1 ( std::vector< short int > &  dst) const
inline

Array with tabulated derivative of signal waveform.

Definition at line 143 of file ECLDspData.h.

143{ unpackCoefVector(m_f1, dst); }
std::vector< short int > m_f1
See documentation for method 'getF1'.
Definition: ECLDspData.h:80

◆ getF31()

void getF31 ( std::vector< short int > &  dst) const
inline

Array FG31, used to estimate signal amplitude.

Calculated from F and covariance matrix.

Definition at line 148 of file ECLDspData.h.

148{ unpackCoefVector(m_fg31, dst); }
std::vector< short int > m_fg31
See documentation for method 'getF31'.
Definition: ECLDspData.h:68

◆ getF32()

void getF32 ( std::vector< short int > &  dst) const
inline

Array FG32, used to estimate A * delta_t.

(A – amplitude, delta_t – time shift for linearization)

Calculated from F and covariance matrix.

Definition at line 155 of file ECLDspData.h.

155{ unpackCoefVector(m_fg32, dst); }
std::vector< short int > m_fg32
See documentation for method 'getF32'.
Definition: ECLDspData.h:70

◆ getF33()

void getF33 ( std::vector< short int > &  dst) const
inline

Array FG33, used to estimate pedestal height in signal.

Calculated from F and covariance matrix.

Definition at line 161 of file ECLDspData.h.

161{ unpackCoefVector(m_fg33, dst); }
std::vector< short int > m_fg33
See documentation for method 'getF33'.
Definition: ECLDspData.h:72

◆ getF41()

void getF41 ( std::vector< short int > &  dst) const
inline

Alternative for FG31 for signals with small amplitude.

Definition at line 165 of file ECLDspData.h.

165{ unpackCoefVector(m_fg41, dst); }
std::vector< short int > m_fg41
See documentation for method 'getF41'.
Definition: ECLDspData.h:74

◆ getF43()

void getF43 ( std::vector< short int > &  dst) const
inline

Alternative for FG33 for signals with small amplitude.

Definition at line 169 of file ECLDspData.h.

169{ unpackCoefVector(m_fg43, dst); }
std::vector< short int > m_fg43
See documentation for method 'getF43'.
Definition: ECLDspData.h:76

◆ gethT()

short int gethT ( ) const
inline
Returns
Hit threshold (https://xwiki.desy.de/xwiki/rest/p/545bc)

Definition at line 189 of file ECLDspData.h.

189{ return m_hitThresh; }

◆ getk1()

unsigned char getk1 ( ) const
inline

multipliers power of 2 for f, f1

Definition at line 193 of file ECLDspData.h.

193{ return m_k1Chi; }

◆ getk2()

unsigned char getk2 ( ) const
inline

multipliers power of 2 for chi2 calculation

Definition at line 195 of file ECLDspData.h.

195{ return m_k2Chi; }

◆ getka()

unsigned char getka ( ) const
inline

Number of bits for FG31, FG41.

Definition at line 197 of file ECLDspData.h.

197{ return m_ka; }

◆ getkb()

unsigned char getkb ( ) const
inline

Number of bits for FG32.

Definition at line 199 of file ECLDspData.h.

199{ return m_kb; }

◆ getkc()

unsigned char getkc ( ) const
inline

Number of bits for FG33, FG43.

Definition at line 201 of file ECLDspData.h.

201{ return m_kc; }

◆ getlAT()

short int getlAT ( ) const
inline
Returns
Low amp threshold (https://xwiki.desy.de/xwiki/rest/p/545bc)

Definition at line 181 of file ECLDspData.h.

181{ return m_lowAmpThresh; }

◆ getPackerVersion()

static constexpr short int getPackerVersion ( )
inlinestaticconstexpr

GETTERS.

Return version of packer algorithm used in [un]packCoefVector

Definition at line 128 of file ECLDspData.h.

128{ return c_packerVersion; }
static const short int c_packerVersion
Version of packer used in packCoefVector by default Version of unpacker is dynamically determined fro...
Definition: ECLDspData.h:97

◆ getsT()

short int getsT ( ) const
inline
Returns
Skip threshold (https://xwiki.desy.de/xwiki/rest/p/545bc)

Definition at line 185 of file ECLDspData.h.

185{ return m_skipThresh; }

◆ getverMaj()

unsigned char getverMaj ( ) const
inline
Returns
Major version of DSP coefficients

Definition at line 171 of file ECLDspData.h.

171{ return m_verMaj; }

◆ getverMin()

unsigned char getverMin ( ) const
inline
Returns
Minor version of DSP coefficients

Definition at line 173 of file ECLDspData.h.

173{ return m_verMin; }

◆ gety0Startr()

unsigned char gety0Startr ( ) const
inline

start point for pedestal calculation

Definition at line 203 of file ECLDspData.h.

203{ return m_y0Startr; }

◆ packCoefVector()

void packCoefVector ( const std::vector< short int > &  src,
std::vector< short int > &  dst 
)
private

Convert vector of DSP coefficients (src) to ECLDspData internal format (dst).

The internal format of coefficient vectors stored in this object is different from their real values: this improves data compression by ~200%. Thus, any accessor methods to m_f* vectors utilize packCoefVector and unpackCoefVector.

Definition at line 12 of file ECLDspData.cc.

13{
14 const int N_CHANNELS = 16;
15 int size = src.size();
16
17 if (getPackerVersion() == 0) {
18 dst = src;
19 } else if (getPackerVersion() >= 1) {
20 // Apply reversible transformation to shrink the range
21 // of saved coefficients into much smaller interval.
22 // This improves the compression by a factor of ~2.
23
24 dst.resize(size);
25 for (int i = size - 1; i >= 0; i--) {
26 if (i >= 2 * N_CHANNELS)
27 dst[i] = src[i] - 2 * src[i - N_CHANNELS] + src[i - 2 * N_CHANNELS];
28 else if (i >= N_CHANNELS)
29 dst[i] = src[i] - 2 * src[i - N_CHANNELS];
30 else
31 dst[i] = src[i];
32 }
33 }
34
35 if (getPackerVersion() == 2) {
36 // Rearrange the data in such a way that each coeff
37 // only takes up 4 bits (special value 0xF indicates
38 // coefficients that are too big to be packed)
39 //
40 // Vector structure after packing:
41 // [big_coefs | packed_coefs | packed_coefs.size()]
42
43 // Bits allocated for each value
44 const int value_bits = 4;
45 const long value_max = 0xF;
46 const int values_packed = sizeof(short) * 8 / value_bits;
47
48 int shift = -6;
49
50 std::vector<short> packed(size / values_packed, 0);
51 int len = -1;
52
53 for (int i = 0; i < size; i++) {
54 short val = dst[i] - shift;
55 if (val >= 0 && val < value_max) {
56 if (len < 0) len = i;
57 packed[i / values_packed] |= val << (value_bits * (i % values_packed));
58 } else {
59 if (len >= 0 && len < i) {
60 dst[len++] = dst[i];
61 }
62 packed[i / values_packed] |= short(value_max) << (value_bits * (i % values_packed));
63 }
64 }
65
66 int packed_size = 0;
67
68 if (len >= 0) {
69 dst.resize(len + packed.size());
70 packed_size = packed.size();
71 for (int i = 0; i < packed_size; i++) {
72 dst[len + i] = packed[i];
73 }
74 }
75 dst.push_back(packed_size);
76 dst.shrink_to_fit();
77 }
78}
static constexpr short int getPackerVersion()
GETTERS.
Definition: ECLDspData.h:128

◆ setaAT()

void setaAT ( short int  val)
inline

Set Low amp threshold (https://xwiki.desy.de/xwiki/rest/p/545bc)

Definition at line 260 of file ECLDspData.h.

260{ m_adcAlwThresh = val; }

◆ setchiThresh()

void setchiThresh ( short int  val)
inline

Set chi2 threshold for fit quality flag.

Definition at line 274 of file ECLDspData.h.

274{ m_chiThresh = val; }

◆ setExtraData()

void setExtraData ( const std::vector< short int > &  newval)
inline

SETTERS.

Sets vector with all parameters that haven't been included in basic ECL DSP file format

Definition at line 216 of file ECLDspData.h.

216{ m_extraData = newval; }

◆ setF()

void setF ( const std::vector< short int > &  src)
inline

Array with tabulated signal waveform.

Definition at line 221 of file ECLDspData.h.

221{ packCoefVector(src, m_f); }
void packCoefVector(const std::vector< short int > &src, std::vector< short int > &dst)
Convert vector of DSP coefficients (src) to ECLDspData internal format (dst).
Definition: ECLDspData.cc:12

◆ setF1()

void setF1 ( const std::vector< short int > &  src)
inline

Array with tabulated derivative of signal waveform.

Definition at line 225 of file ECLDspData.h.

225{ packCoefVector(src, m_f1); }

◆ setF31()

void setF31 ( const std::vector< short int > &  src)
inline

Array FG31, used to estimate signal amplitude.

Calculated from F and covariance matrix.

Definition at line 230 of file ECLDspData.h.

230{ packCoefVector(src, m_fg31); }

◆ setF32()

void setF32 ( const std::vector< short int > &  src)
inline

Array FG32, used to estimate A * delta_t.

(A – amplitude, delta_t – time shift for linearization)

Calculated from F and covariance matrix.

Definition at line 237 of file ECLDspData.h.

237{ packCoefVector(src, m_fg32); }

◆ setF33()

void setF33 ( const std::vector< short int > &  src)
inline

Array FG33, used to estimate pedestal height in signal.

Calculated from F and covariance matrix.

Definition at line 243 of file ECLDspData.h.

243{ packCoefVector(src, m_fg33); }

◆ setF41()

void setF41 ( const std::vector< short int > &  src)
inline

Alternative for FG31 for signals with small amplitude.

Definition at line 247 of file ECLDspData.h.

247{ packCoefVector(src, m_fg41); }

◆ setF43()

void setF43 ( const std::vector< short int > &  src)
inline

Alternative for FG33 for signals with small amplitude.

Definition at line 251 of file ECLDspData.h.

251{ packCoefVector(src, m_fg43); }

◆ sethT()

void sethT ( short int  val)
inline

Set Hit threshold (https://xwiki.desy.de/xwiki/rest/p/545bc)

Definition at line 272 of file ECLDspData.h.

272{ m_hitThresh = val; }

◆ setk1()

void setk1 ( unsigned char  val)
inline

Set multipliers power of 2 for f, f1.

Definition at line 276 of file ECLDspData.h.

276{ m_k1Chi = val; }

◆ setk2()

void setk2 ( unsigned char  val)
inline

Set multipliers power of 2 for chi2 calculation.

Definition at line 278 of file ECLDspData.h.

278{ m_k2Chi = val; }

◆ setka()

void setka ( unsigned char  val)
inline

Set number of bits for FG31, FG41.

Definition at line 280 of file ECLDspData.h.

280{ m_ka = val; }

◆ setkb()

void setkb ( unsigned char  val)
inline

Set number of bits for FG32.

Definition at line 282 of file ECLDspData.h.

282{ m_kb = val; }

◆ setkc()

void setkc ( unsigned char  val)
inline

Set number of bits for FG33, FG43.

Definition at line 284 of file ECLDspData.h.

284{ m_kc = val; }

◆ setlAT()

void setlAT ( short int  val)
inline

Set Low amp threshold (https://xwiki.desy.de/xwiki/rest/p/545bc)

Definition at line 264 of file ECLDspData.h.

264{ m_lowAmpThresh = val; }

◆ setsT()

void setsT ( short int  val)
inline

Set Skip threshold (https://xwiki.desy.de/xwiki/rest/p/545bc)

Definition at line 268 of file ECLDspData.h.

268{ m_skipThresh = val; }

◆ setverMaj()

void setverMaj ( unsigned char  val)
inline

Sets major version of DSP coefficients.

Definition at line 254 of file ECLDspData.h.

254{ m_verMaj = val; }

◆ setverMin()

void setverMin ( unsigned char  val)
inline

Sets minor version of DSP coefficients.

Definition at line 256 of file ECLDspData.h.

256{ m_verMin = val; }

◆ sety0Startr()

void sety0Startr ( unsigned char  val)
inline

Set start point for pedestal calculation.

Definition at line 286 of file ECLDspData.h.

286{ m_y0Startr = val; }

◆ unpackCoefVector()

void unpackCoefVector ( const std::vector< short int > &  src,
std::vector< short int > &  dst 
) const
private

Convert vector of DSP coefficients (src) to ECLDspData internal format (dst).

See documentation for packCoefVector on why this was necessary.

Definition at line 79 of file ECLDspData.cc.

80{
81 const int N_CHANNELS = 16;
82
83 int packer_version = m_extraData[1];
84 int dst_size = 0;
85
86 if (packer_version == 1) {
87 dst_size = src.size();
88 dst.resize(dst_size);
89 }
90 if (packer_version >= 2) {
91 // Number of bits allocated for each value
92 const int value_bits = 4;
93 const long value_max = 0xF;
94 const int values_packed = sizeof(short) * 8 / value_bits;
95
96 int size = src.size();
97 int packed_size = src[--size];
98
99 int packed_start = size - packed_size;
100 dst_size = packed_size * values_packed;
101
102 dst.resize(dst_size);
103
104 if (packed_size > 0) {
105 int unpacked_index = 0;
106 int dst_index = 0;
107 const int shift = -6;
108
109 for (int i = packed_start; i < size; i++) {
110 auto package = src[i];
111 for (int k = 0; k < values_packed; k++) {
112 short val = package & value_max;
113 if (val != value_max) {
114 dst[dst_index++] = val + shift;
115 } else {
116 dst[dst_index++] = src[unpacked_index++];
117 }
118 package >>= value_bits;
119 }
120 }
121 } else {
122 dst = src;
123 dst.resize(size);
124 }
125 }
126
127
128 if (packer_version == 0) {
129 dst = src;
130 } else if (packer_version >= 1) {
131 const std::vector<short int>& new_src = packer_version >= 2 ? dst : src;
132
133 for (int i = 0; i < dst_size; i++) {
134 if (i >= 2 * N_CHANNELS)
135 dst[i] = new_src[i] + 2 * dst[i - N_CHANNELS] - dst[i - 2 * N_CHANNELS];
136 else if (i >= N_CHANNELS)
137 dst[i] = new_src[i] + 2 * dst[i - N_CHANNELS];
138 else
139 dst[i] = new_src[i];
140 }
141 }
142}

Member Data Documentation

◆ c_packerVersion

const short int c_packerVersion = 2
staticprivate

Version of packer used in packCoefVector by default Version of unpacker is dynamically determined from the data.

Definition at line 97 of file ECLDspData.h.

◆ m_adcAlwThresh

short int m_adcAlwThresh
private

See https://xwiki.desy.de/xwiki/rest/p/545bc.

Definition at line 66 of file ECLDspData.h.

◆ m_boardNumber

unsigned char m_boardNumber
private

ShaperDSP board number, 0..11.

Definition at line 36 of file ECLDspData.h.

◆ m_chiThresh

short int m_chiThresh
private

chi2 threshold for quality bit

We use condition chi^2 < (Amp^2 / (2^{k2Chi}) + chiThresh)

Definition at line 54 of file ECLDspData.h.

◆ m_extraData

std::vector<short int> m_extraData
private

This vector contains all parameters that didn't exist in the initial version of ECL DSP file format.

This vector allows loose coupling between ECLDspData class and ECL DSP file format.

m_extraData[0] – FORMAT_VERSION m_extraData[1] – PACKER_VERSION

Definition at line 91 of file ECLDspData.h.

◆ m_f

std::vector<short int> m_f = {}
private

See documentation for method 'getF'.

Definition at line 78 of file ECLDspData.h.

◆ m_f1

std::vector<short int> m_f1 = {}
private

See documentation for method 'getF1'.

Definition at line 80 of file ECLDspData.h.

◆ m_fg31

std::vector<short int> m_fg31 = {}
private

See documentation for method 'getF31'.

Definition at line 68 of file ECLDspData.h.

◆ m_fg32

std::vector<short int> m_fg32 = {}
private

See documentation for method 'getF32'.

Definition at line 70 of file ECLDspData.h.

◆ m_fg33

std::vector<short int> m_fg33 = {}
private

See documentation for method 'getF33'.

Definition at line 72 of file ECLDspData.h.

◆ m_fg41

std::vector<short int> m_fg41 = {}
private

See documentation for method 'getF41'.

Definition at line 74 of file ECLDspData.h.

◆ m_fg43

std::vector<short int> m_fg43 = {}
private

See documentation for method 'getF43'.

Definition at line 76 of file ECLDspData.h.

◆ m_hitThresh

short int m_hitThresh
private

See https://xwiki.desy.de/xwiki/rest/p/545bc.

Definition at line 60 of file ECLDspData.h.

◆ m_k1Chi

unsigned char m_k1Chi
private

multipliers power of 2 for f, f1

Definition at line 56 of file ECLDspData.h.

◆ m_k2Chi

unsigned char m_k2Chi
private

multipliers power of 2 for chi2 calculation

Definition at line 58 of file ECLDspData.h.

◆ m_ka

unsigned char m_ka
private

Number of bits for FG31, FG41.

Definition at line 42 of file ECLDspData.h.

◆ m_kb

unsigned char m_kb
private

Number of bits for FG32.

Definition at line 44 of file ECLDspData.h.

◆ m_kc

unsigned char m_kc
private

Number of bits for FG33, FG43.

Definition at line 46 of file ECLDspData.h.

◆ m_lowAmpThresh

short int m_lowAmpThresh
private

See https://xwiki.desy.de/xwiki/rest/p/545bc.

Definition at line 62 of file ECLDspData.h.

◆ m_skipThresh

short int m_skipThresh
private

See https://xwiki.desy.de/xwiki/rest/p/545bc.

Definition at line 64 of file ECLDspData.h.

◆ m_verMaj

unsigned char m_verMaj
private

Major version of DSP coefficients.

Definition at line 38 of file ECLDspData.h.

◆ m_verMin

unsigned char m_verMin
private

Minor version of DSP coefficients.

Definition at line 40 of file ECLDspData.h.

◆ m_y0Startr

unsigned char m_y0Startr
private

start point for pedestal calculation

Definition at line 48 of file ECLDspData.h.


The documentation for this class was generated from the following files: