File indexing completed on 2024-04-06 12:02:10
0001 #include "CondFormats/EcalObjects/interface/EcalSCDynamicDPhiParameters.h"
0002 #include <algorithm>
0003
0004 const EcalSCDynamicDPhiParameters::DynamicDPhiParameters* EcalSCDynamicDPhiParameters::dynamicDPhiParameters(
0005 double clustE, double absSeedEta) const {
0006
0007
0008 auto it1 = std::lower_bound(dynamicDPhiParametersCollection_.begin(),
0009 dynamicDPhiParametersCollection_.end(),
0010 clustE,
0011 [](const EcalSCDynamicDPhiParameters::DynamicDPhiParameters& params, const double var) {
0012 return params.eMin < var;
0013 });
0014 if (it1 != dynamicDPhiParametersCollection_.begin()) {
0015 --it1;
0016 }
0017
0018
0019 const auto vars = std::make_pair(it1->eMin, absSeedEta);
0020 auto it2 = std::lower_bound(
0021 dynamicDPhiParametersCollection_.begin(),
0022 it1 + 1,
0023 vars,
0024 [](const EcalSCDynamicDPhiParameters::DynamicDPhiParameters& params, const std::pair<double, double> vars) {
0025 return params.eMin < vars.first || params.etaMin < vars.second;
0026 });
0027
0028 return (it2 != dynamicDPhiParametersCollection_.begin()) ? &*(it2 - 1) : nullptr;
0029 }
0030
0031 void EcalSCDynamicDPhiParameters::print(std::ostream& out) const {
0032 out << "SC dynamic dPhi parameters:" << std::endl;
0033 out << " Parameters are binned in " << dynamicDPhiParametersCollection_.size() << " (E, |eta|) regions." << std::endl;
0034 for (const auto& params : dynamicDPhiParametersCollection_) {
0035 out << " Parameters for E_min=" << params.eMin << " and |eta_min|=" << params.etaMin << ":" << std::endl;
0036 out << " yoffset: " << params.yoffset << std::endl;
0037 out << " scale: " << params.scale << std::endl;
0038 out << " xoffset: " << params.xoffset << std::endl;
0039 out << " width: " << params.width << std::endl;
0040 out << " saturation: " << params.saturation << std::endl;
0041 out << " cutoff: " << params.cutoff << std::endl;
0042 }
0043 }