85 if (myfile.is_open()) {
86 while (std::getline(myfile, eachline)) {
89 std::string::size_type ipos = eachline.find(
"#");
90 if (ipos!=std::string::npos) eachline.resize(ipos);
93 if (std::all_of(eachline.begin(), eachline.end(), ::isspace)) {
98 std::stringstream eachline_stream(eachline);
99 int each_etowerid{ -1 }, each_slot{ -1 };
100 bool eachisSplit{
false };
101 std::string each_scid =
"";
103 while (eachline_stream.good()) {
105 int number_in_eachline;
106 std::string tem_string;
107 std::getline(eachline_stream, tem_string,
',');
112 if (i == 1 || i == 3 || i == 4) {
114 number_in_eachline = std::stoi(tem_string);
118 return StatusCode::FAILURE;
121 each_etowerid = number_in_eachline;
123 each_slot = number_in_eachline;
126 if (number_in_eachline != 0 && number_in_eachline != 1) {
128 return StatusCode::FAILURE;
130 eachisSplit = number_in_eachline;
134 each_scid = std::move(tem_string);
138 return StatusCode::FAILURE;
143 if (each_etowerid > 601599 || each_etowerid < 100000) {
145 return StatusCode::FAILURE;
148 if (each_slot > 13 || each_slot < 0) {
150 return StatusCode::FAILURE;
153 if (each_scid.find(
"0x") == std::string::npos) {
155 return StatusCode::FAILURE;
158 each_towerinfo.
eTowerID = each_etowerid;
159 each_towerinfo.
slot = each_slot;
160 each_towerinfo.
isSplit = eachisSplit;
161 uint64_t scid_uint64 = strtoull(each_scid.c_str(),
nullptr, 16);
166 return StatusCode::FAILURE;
173 return StatusCode::FAILURE;
175 return StatusCode::SUCCESS;