5 #include "Mu2e-STMDAQ/config/config.hh"
6 #include "Mu2e-STMDAQ/config/include/fw_config.hh"
12 const bool use_manual_baseline;
13 const double manual_mean, manual_sigma;
14 const bool use_window_baseline;
17 const double tau, tau_norm;
29 const double peak_min_init;
30 const bool use_fixed_cut;
31 const double fixed_cut_value;
32 const double nsigma_cut;
39 use_manual_baseline(cfg.getValue<int>(
"stm.mwd.baseline.use_manual_value")),
40 manual_mean(cfg.getValue<double>(
"stm.mwd.baseline.manual_value.mean")),
41 manual_sigma(cfg.getValue<double>(
"stm.mwd.baseline.manual_value.sigma")),
42 use_window_baseline(cfg.getValue<int>(
"stm.mwd.baseline.use_window_value")),
44 tau(cfg.getValue<double>(
"stm.mwd.deconv.hpge_tau")),
45 tau_norm(1.0-fw_config.tADC/tau),
47 M(cfg.getValue<int>(
"stm.mwd.diff.M")),
50 L(cfg.getValue<int>(
"stm.mwd.avg.L")),
51 inv_L(1.0/static_cast<double>(L)),
54 peak_min_init(cfg.getValue<double>(
"stm.mwd.peak_finding.peak_min_init")),
55 use_fixed_cut(cfg.getValue<int>(
"stm.mwd.peak_finding.use_fixed_cut")),
56 fixed_cut_value(cfg.getValue<double>(
"stm.mwd.peak_finding.fixed_cut_value")),
57 nsigma_cut(cfg.getValue<double>(
"stm.mwd.peak_finding.nsigma_cut"))
61 if ((
M & (
M - 1)) != 0) {
62 logger->log(
"Config:mwd_info: Error! M must be a power of 2! M = "
63 + std::to_string(
M) +
" in " + cfg.getXMLpath() +
".",0);
67 if ((L & (L - 1)) != 0) {
68 logger->log(
"Config:mwd_info: Error! L must be a power of 2! L = "
69 + std::to_string(L) +
" in " + cfg.getXMLpath() +
".",0);
73 const bool ops_baseline_class =
74 cfg.getValue<
int>(
"stm.operations.Baseline");
75 const bool ops_baseline_func =
76 cfg.getValue<
int>(
"stm.operations.Baseline.calc_baseline");
79 if (!ops_baseline_class || !ops_baseline_func){
81 "Config:mwd_info: Baseline operations disabled in config. Forcing use of manual (user) baseline.";
84 const_cast<bool&
>(use_manual_baseline) =
true;
88 if (use_manual_baseline){
89 logger->log(
"Config:mwd_info: Using manual (user) baseline value of " +
90 std::to_string(manual_mean) +
91 " ± " + std::to_string(manual_sigma) +
92 " ADCs for baseline subtraction and pulse height calculation.",1);
96 if (use_window_baseline){
97 logger->log(
"Config:mwd_info: Using " +
98 std::to_string(baseline_config.hist_window_period) +
99 " second sliding window baseline for baseline subtraction "
100 "and pulse height calculation.", 1);
103 logger->log(
"Config:mwd_info: Using baseline calculated continuosly since "
104 "start of run for baseline subtraction "
105 "and pulse height calculation.", 1);
109 logger->log(
"Config:mwd_info HPGe decay time constant [tau] = "
110 + std::to_string(tau)
111 +
" us: 1 - tADC/tau = "
112 + std::to_string(tau_norm) +
".",1);
113 logger->log(
"Config:mwd_info M/L values = " + std::to_string(
M)
114 +
"/" + std::to_string(L) +
".",1);
115 logger->log(
"Config:mwd_info Initial minimum value for peak = "
116 + std::to_string(peak_min_init) +
".",1);
117 std::string fixed_cut = (use_fixed_cut) ?
"TRUE" :
"FALSE";
118 logger->log(
"Config:mwd_info Using fixed peak finding threshold cut = " + fixed_cut +
".",1);
120 logger->log(
"Config:mwd_info Fixed peak finding threshold cut value = "
121 + std::to_string(fixed_cut_value) +
".",1);
124 logger->log(
"Config:mwd_info Calculating peak finding cut value as "
125 + std::to_string(nsigma_cut) +
" sigmas away from baseline mean.",1);
const int M
Differentiation.