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 int iTimeAlgo = conf.
getParameter<
int>(
"timeAlgo");
23 const double iThEnergeticPulses = conf.
getParameter<
double>(
"thEnergeticPulses");
24 const double iMeanTime = conf.
getParameter<
double>(
"meanTime");
25 const double iTimeSigmaHPD = conf.
getParameter<
double>(
"timeSigmaHPD");
26 const double iTimeSigmaSiPM = conf.
getParameter<
double>(
"timeSigmaSiPM");
28 const std::vector<int> iActiveBXs = conf.
getParameter<std::vector<int>>(
"activeBXs");
29 const int iNMaxItersMin = conf.
getParameter<
int>(
"nMaxItersMin");
30 const int iNMaxItersNNLS = conf.
getParameter<
int>(
"nMaxItersNNLS");
31 const double iDeltaChiSqThresh = conf.
getParameter<
double>(
"deltaChiSqThresh");
32 const double iNnlsThresh = conf.
getParameter<
double>(
"nnlsThresh");
34 std::unique_ptr<MahiFit>
corr = std::make_unique<MahiFit>();
36 corr->setParameters(iDynamicPed,
41 iCalculateArrivalTime,
57 const bool iPedestalConstraint = conf.
getParameter<
bool>(
"applyPedConstraint");
58 const bool iTimeConstraint = conf.
getParameter<
bool>(
"applyTimeConstraint");
59 const bool iAddPulseJitter = conf.
getParameter<
bool>(
"applyPulseJitter");
60 const bool iApplyTimeSlew = conf.
getParameter<
bool>(
"applyTimeSlew");
61 const double iTS4Min = conf.
getParameter<
double>(
"ts4Min");
62 const std::vector<double> iTS4Max = conf.
getParameter<std::vector<double>>(
"ts4Max");
63 const double iPulseJitter = conf.
getParameter<
double>(
"pulseJitter");
64 const double iTimeMean = conf.
getParameter<
double>(
"meanTime");
65 const double iTimeSigHPD = conf.
getParameter<
double>(
"timeSigmaHPD");
66 const double iTimeSigSiPM = conf.
getParameter<
double>(
"timeSigmaSiPM");
67 const double iPedMean = conf.
getParameter<
double>(
"meanPed");
68 const double iTMin = conf.
getParameter<
double>(
"timeMin");
69 const double iTMax = conf.
getParameter<
double>(
"timeMax");
70 const std::vector<double> its4Chi2 = conf.
getParameter<std::vector<double>>(
"ts4chi2");
71 const int iFitTimes = conf.
getParameter<
int>(
"fitTimes");
78 std::unique_ptr<PulseShapeFitOOTPileupCorrection>
corr = std::make_unique<PulseShapeFitOOTPileupCorrection>();
80 corr->setPUParams(iPedestalConstraint,
101 const bool iApplyTimeSlew = conf.
getParameter<
bool>(
"applyTimeSlewM3");
102 const int iTimeSlewParsType = conf.
getParameter<
int>(
"timeSlewParsType");
103 const double irespCorrM3 = conf.
getParameter<
double>(
"respCorrM3");
105 std::unique_ptr<HcalDeterministicFit>
fit = std::make_unique<HcalDeterministicFit>();
114 std::unique_ptr<AbsHBHEPhase1Algo>
algo;
118 if (
className ==
"SimpleHBHEPhase1Algo") {
119 std::unique_ptr<MahiFit> mahi;
120 std::unique_ptr<PulseShapeFitOOTPileupCorrection>
m2;
121 std::unique_ptr<HcalDeterministicFit> detFit;
126 <<
"SimpleHBHEPhase1Algo does not allow both Mahi and Method 2 to be turned on together.";
135 algo = std::make_unique<SimpleHBHEPhase1Algo>(ps.
getParameter<
int>(
"firstSampleShift"),
154 desc.setAllowAnything();
156 desc.add<
bool>(
"useM2",
false);
157 desc.add<
bool>(
"useM3",
true);
158 desc.add<
bool>(
"useMahi",
true);
159 desc.add<
int>(
"firstSampleShift", 0);
160 desc.add<
int>(
"samplesToAdd", 2);
161 desc.add<
double>(
"correctionPhaseNS", 6.0);
162 desc.add<
double>(
"tdcTimeShift", 0.0);
163 desc.add<
bool>(
"correctForPhaseContainment",
true);
164 desc.add<
bool>(
"applyLegacyHBMCorrection",
true);
165 desc.add<
bool>(
"calculateArrivalTime",
false);
166 desc.add<
int>(
"timeAlgo", 1);
167 desc.add<
double>(
"thEnergeticPulses", 5.);
168 desc.add<
bool>(
"applyFixPCC",
false);
T getParameter(std::string const &) const
std::unique_ptr< AbsHBHEPhase1Algo > parseHBHEPhase1AlgoDescription(const edm::ParameterSet &ps, edm::ConsumesCollector iC)
static std::unique_ptr< PulseShapeFitOOTPileupCorrection > parseHBHEMethod2Description(const edm::ParameterSet &conf)
edm::ParameterSetDescription fillDescriptionForParseHBHEPhase1Algo()
static std::unique_ptr< MahiFit > parseHBHEMahiDescription(const edm::ParameterSet &conf)
static std::unique_ptr< HcalDeterministicFit > parseHBHEMethod3Description(const edm::ParameterSet &conf)
std::string className(const T &t)