DDASToys for NSCLDAQ  6.2-000
fit_extensions.h
Go to the documentation of this file.
1 /*
2  This software is Copyright by the Board of Trustees of Michigan
3  State University (c) Copyright 2017.
4 
5  You may use this software under the terms of the GNU public license
6  (GPL). The terms of this license are described at:
7 
8  http://www.gnu.org/licenses/gpl.txt
9 
10  Authors:
11  Ron Fox
12  Jeromy Tompkins
13  Aaron Chester
14  FRIB
15  Michigan State University
16  East Lansing, MI 48824-1321
17 */
18 
24 #ifndef FIT_EXTENSIONS_H
25 #define FIT_EXTENSIONS_H
26 
27 #include <cstdint>
28 #include <cstring>
29 
31 namespace ddastoys {
32 
37  struct PulseDescription {
38  double position;
39  double amplitude;
40  double steepness;
41  double decayTime;
42  };
43 
48  struct fit1Info { // Info from single pulse fit:
50  double chiSquare;
51  double offset;
52  unsigned iterations;
53  unsigned fitStatus;
54  };
55 
60  struct fit2Info { // Info from double pulse fit:
62  double chiSquare;
63  double offset;
64  unsigned iterations;
65  unsigned fitStatus;
66  };
67 
73  struct HitExtensionLegacy { // Data added to hits with traces:
76  };
77 
82  struct HitExtension { // Data added to hits with traces:
85  double singleProb;
86  double doubleProb;
88  HitExtension() = default;
97  singleProb(0), doubleProb(0) {}
98  };
99 
104  struct nullExtension {
105  uint32_t s_size;
107  nullExtension() : s_size(sizeof(uint32_t)) {}
108  };
109 
115  struct FitInfoLegacy {
117  uint32_t s_size;
120  memset(&s_extension, 0, sizeof(HitExtensionLegacy));
121  }
122  };
123 
128  struct FitInfo {
130  uint32_t s_size;
132  FitInfo() : s_size(sizeof(FitInfo)) {
133  memset(&s_extension, 0, sizeof(HitExtension));
134  }
135  };
136 
137 } // namespace ddastoys
138 
139 #endif
Legacy fit extension that knows its size. This is the fit info struct for DDASToys pre-6....
Definition: fit_extensions.h:115
FitInfoLegacy()
Creates FitInfo, set its size, and zeroes fit parameters.
Definition: fit_extensions.h:119
uint32_t s_size
sizeof(HitExtensionLegacy)
Definition: fit_extensions.h:117
HitExtensionLegacy s_extension
The hit extension data.
Definition: fit_extensions.h:116
A fit extension that knows its size.
Definition: fit_extensions.h:128
uint32_t s_size
sizeof(HitExtension)
Definition: fit_extensions.h:130
HitExtension s_extension
The hit extension data.
Definition: fit_extensions.h:129
FitInfo()
Creates FitInfo, set its size, and zeroes parameters.
Definition: fit_extensions.h:132
Legacy data structure appended to each fit hit. This is the hit extension struct for DDASToys pre-6....
Definition: fit_extensions.h:73
fit2Info twoPulseFit
Double-pulse fit information.
Definition: fit_extensions.h:75
fit1Info onePulseFit
Single-pulse fit information.
Definition: fit_extensions.h:74
The data structure appended to each fit hit.
Definition: fit_extensions.h:82
HitExtension(const HitExtensionLegacy &leg)
Construct from legacy extension.
Definition: fit_extensions.h:95
fit2Info twoPulseFit
Double-pulse fit information.
Definition: fit_extensions.h:84
HitExtension()=default
Default constructor.
double doubleProb
Probability of double pulse.
Definition: fit_extensions.h:86
fit1Info onePulseFit
Single-pulse fit information.
Definition: fit_extensions.h:83
double singleProb
Probability of single pulse.
Definition: fit_extensions.h:85
Describes a single pulse without an offset.
Definition: fit_extensions.h:37
double decayTime
Exponential decay constant.
Definition: fit_extensions.h:41
double amplitude
Pulse amplitude.
Definition: fit_extensions.h:39
double position
Where the pulse is.
Definition: fit_extensions.h:38
double steepness
Logistic steepness factor.
Definition: fit_extensions.h:40
Full fitting information for the single pulse.
Definition: fit_extensions.h:48
double chiSquare
Chi-square value of the fit.
Definition: fit_extensions.h:50
unsigned iterations
Iterations for fit to converge.
Definition: fit_extensions.h:52
double offset
Constant offset.
Definition: fit_extensions.h:51
unsigned fitStatus
Fit status from GSL.
Definition: fit_extensions.h:53
PulseDescription pulse
Description of the pulse parameters.
Definition: fit_extensions.h:49
Full fitting information for the double pulse.
Definition: fit_extensions.h:60
double offset
Shared constant offset.
Definition: fit_extensions.h:63
PulseDescription pulses[2]
The two pulses.
Definition: fit_extensions.h:61
double chiSquare
Chi-square value of the fit.
Definition: fit_extensions.h:62
unsigned fitStatus
Fit status from GSL.
Definition: fit_extensions.h:65
unsigned iterations
Iterations needed to converge.
Definition: fit_extensions.h:64
A null fit extension is a single 32-bit word.
Definition: fit_extensions.h:104
uint32_t s_size
sizeof(uint32_t)
Definition: fit_extensions.h:105
nullExtension()
Creates a nullExtension and sets its size.
Definition: fit_extensions.h:107