a struct for a signal sample for the pure CsI calorimeter
More...
#include <EclConfigurationPure.h>
|
void | InitSample (const TH1F *, const TH1F *) |
| initialisation of signal sample
|
|
double | Accumulate (const double a, const double t0, double *s) const |
|
a struct for a signal sample for the pure CsI calorimeter
Definition at line 55 of file EclConfigurationPure.h.
◆ Accumulate()
double Accumulate |
( |
const double |
a, |
|
|
const double |
t0, |
|
|
double * |
s |
|
) |
| const |
- Parameters
-
[in] | a | Signal amplitude |
[in] | t0 | Signal offset |
[out] | s | Output array with added signal |
- Returns
- Energy deposition in ADC units
Definition at line 54 of file EclConfigurationPure.cc.
55{
56
57
58
59
60
64
65 double t = t0 * itick;
66 double x0 = t, x1 = t + tlen;
67
68 if (x0 > tmax) return 0;
72 }
73
75
76
77 if (x1 < tmax) {
78
79
81
82 imax += 1;
83 }
84
85 double epsilon = 1.0 /
m_ns / 10.;
86 double imind = ceil(x0 -
m_tmin + epsilon);
87
88 int imin = imind;
89 double w = ((
m_tmin - t) + imind - 1) * double(
m_ns);
90 int jmin = w ;
91 w -= jmin;
92
93
94
95
96 const double w1 = a * w, w0 = a - w1;
97 double sum = 0;
98
99
100 for (
int i = imin, j = jmin; i < imax; i++, j +=
m_ns) {
101 double amp = 0;
102 if (j >= 0) amp = w0 *
m_ft[j] + w1 *
m_ft[j + 1];
103
104
105 s[i] += amp;
106 sum += amp;
107 }
108
110}
static constexpr double m_tmin
lower range of the signal fitting region in ADC clocks
static double getTickPure()
Getter for m_tickPure.
static constexpr int m_ns
number of samples per ADC clock
static constexpr int m_nlPure
length of samples signal in number of ADC clocks
static constexpr int m_nsmp
number of ADC measurements for signal fitting
double m_ft[m_nlPure *m_ns]
Simulated signal shape.
double m_sumscale
energy deposit in fitting window scale factor
◆ InitSample()
void InitSample |
( |
const TH1F * |
sampledfun, |
|
|
const TH1F * |
sampledfunDerivative |
|
) |
| |
initialisation of signal sample
Definition at line 26 of file EclConfigurationPure.cc.
27{
29 double r1 = 32 /
m_ns;
31
33 dsp.fillarray(N,
m_ft);
34 double maxval = * max_element(
m_ft,
m_ft + N);
35
36 for_each(
m_ft1,
m_ft1 + N, [maxval](
double & a) { a /= maxval; });
37 double maxval2 = * max_element(
m_ft,
m_ft + N);
38 assert(maxval2 - 1.0 < 0.001);
39 double sum = 0;
40 for (
int i = 0; i < N; i++) sum +=
m_ft[i];
42
44 dsp1.fillarray(N,
m_ft1);
45 for_each(
m_ft1,
m_ft1 + N, [r1, r2, maxval](
double & a) { a *= (r1 / r2) / maxval; });
46}
static double getTick()
See m_tick.
static constexpr int m_ntrg
number of trigger counts per ADC clock tick
double m_ft1[m_nlPure *m_ns]
Simulated signal shape.
◆ m_ft
◆ m_ft1
◆ m_sumscale
The documentation for this struct was generated from the following files: