29 std::ifstream fstream;
31 if (!fstream.good()) {
33 edm::LogError(
"CSCLUTReader") <<
"Failed to open LUT file: " << inFileName;
35 int readCode =
read(fstream);
56 edm::LogError(
"CSCLUTReader") <<
"If you're not loading a LUT from file you need to implement lookupPacked.";
75 unsigned maxIn = (1 <<
maxWidth) - 1;
76 return (
in < maxIn ?
in : maxIn);
83 if (readHeaderCode !=
SUCCESS) {
85 return readHeaderCode;
88 std::vector<std::pair<unsigned int, float> > entries;
94 std::istringstream lineStream(
line);
95 std::pair<unsigned int, float>
entry;
96 while (lineStream >>
entry.first >>
entry.second) {
99 entries.push_back(
entry);
101 maxAddress =
entry.first;
104 std::sort(entries.begin(), entries.end());
105 if (entries.empty()) {
110 if (std::adjacent_find(entries.begin(), entries.end(), [](
auto const&
a,
auto const&
b) {
111 return a.first ==
b.first;
112 }) != entries.end()) {
116 if (entries.front().first != 0 ||
117 std::adjacent_find(entries.begin(), entries.end(), [](
auto const&
a,
auto const&
b) {
118 return a.first + 1 !=
b.first;
119 }) != entries.end()) {
125 data_.resize(maxAddress + 1, 0);
131 std::transform(entries.begin(), entries.end(),
data_.begin(), [](
auto const&
x) {
return x.second; });
137 for (
unsigned int address = 0; address <
data_.size(); address++) {
147 int startPos =
stream.tellg();
150 if (
line.find(
"#<header>") == 0) {
151 std::istringstream lineStream(
line);