15 const bool iDynamicPed = conf.
getParameter<
bool>(
"dynamicPed");
16 const double iTS4Thresh = conf.
getParameter<
double>(
"ts4Thresh");
19 const bool iApplyTimeSlew = conf.
getParameter<
bool>(
"applyTimeSlew");
21 const bool iCalculateArrivalTime = conf.
getParameter<
bool>(
"calculateArrivalTime");
22 const double iMeanTime = conf.
getParameter<
double>(
"meanTime");
23 const double iTimeSigmaHPD = conf.
getParameter<
double>(
"timeSigmaHPD");
24 const double iTimeSigmaSiPM = conf.
getParameter<
double>(
"timeSigmaSiPM");
26 const std::vector<int> iActiveBXs = conf.
getParameter<std::vector<int>>(
"activeBXs");
27 const int iNMaxItersMin = conf.
getParameter<
int>(
"nMaxItersMin");
28 const int iNMaxItersNNLS = conf.
getParameter<
int>(
"nMaxItersNNLS");
29 const double iDeltaChiSqThresh = conf.
getParameter<
double>(
"deltaChiSqThresh");
30 const double iNnlsThresh = conf.
getParameter<
double>(
"nnlsThresh");
32 std::unique_ptr<MahiFit>
corr = std::make_unique<MahiFit>();
34 corr->setParameters(iDynamicPed,
39 iCalculateArrivalTime,
53 const bool iPedestalConstraint = conf.
getParameter<
bool>(
"applyPedConstraint");
54 const bool iTimeConstraint = conf.
getParameter<
bool>(
"applyTimeConstraint");
55 const bool iAddPulseJitter = conf.
getParameter<
bool>(
"applyPulseJitter");
56 const bool iApplyTimeSlew = conf.
getParameter<
bool>(
"applyTimeSlew");
57 const double iTS4Min = conf.
getParameter<
double>(
"ts4Min");
58 const std::vector<double> iTS4Max = conf.
getParameter<std::vector<double>>(
"ts4Max");
59 const double iPulseJitter = conf.
getParameter<
double>(
"pulseJitter");
60 const double iTimeMean = conf.
getParameter<
double>(
"meanTime");
61 const double iTimeSigHPD = conf.
getParameter<
double>(
"timeSigmaHPD");
62 const double iTimeSigSiPM = conf.
getParameter<
double>(
"timeSigmaSiPM");
63 const double iPedMean = conf.
getParameter<
double>(
"meanPed");
64 const double iTMin = conf.
getParameter<
double>(
"timeMin");
65 const double iTMax = conf.
getParameter<
double>(
"timeMax");
66 const std::vector<double> its4Chi2 = conf.
getParameter<std::vector<double>>(
"ts4chi2");
67 const int iFitTimes = conf.
getParameter<
int>(
"fitTimes");
74 std::unique_ptr<PulseShapeFitOOTPileupCorrection>
corr = std::make_unique<PulseShapeFitOOTPileupCorrection>();
76 corr->setPUParams(iPedestalConstraint,
97 const bool iApplyTimeSlew = conf.
getParameter<
bool>(
"applyTimeSlewM3");
98 const int iTimeSlewParsType = conf.
getParameter<
int>(
"timeSlewParsType");
99 const double irespCorrM3 = conf.
getParameter<
double>(
"respCorrM3");
101 std::unique_ptr<HcalDeterministicFit>
fit = std::make_unique<HcalDeterministicFit>();
110 std::unique_ptr<AbsHBHEPhase1Algo>
algo;
114 if (
className ==
"SimpleHBHEPhase1Algo") {
115 std::unique_ptr<MahiFit> mahi;
116 std::unique_ptr<PulseShapeFitOOTPileupCorrection>
m2;
117 std::unique_ptr<HcalDeterministicFit> detFit;
122 <<
"SimpleHBHEPhase1Algo does not allow both Mahi and Method 2 to be turned on together.";
131 algo = std::make_unique<SimpleHBHEPhase1Algo>(ps.
getParameter<
int>(
"firstSampleShift"),
149 desc.setAllowAnything();
151 desc.add<
bool>(
"useM2",
false);
152 desc.add<
bool>(
"useM3",
true);
153 desc.add<
bool>(
"useMahi",
true);
154 desc.add<
int>(
"firstSampleShift", 0);
155 desc.add<
int>(
"samplesToAdd", 2);
156 desc.add<
double>(
"correctionPhaseNS", 6.0);
157 desc.add<
double>(
"tdcTimeShift", 0.0);
158 desc.add<
bool>(
"correctForPhaseContainment",
true);
159 desc.add<
bool>(
"applyLegacyHBMCorrection",
true);
160 desc.add<
bool>(
"calculateArrivalTime",
false);