mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-06-14 22:07:12 +02:00
added none or 0 to unset bad channels (#632)
* added none or 0 to unset bad channels * free function split to get int array from string of arguments for badchannels * missed a file * allowing list for badchannels in command line * added badchannels in python * added size check * more comments in Detector.h and added more tests for facny command line badchannels * removeDuplicates accept any container, added tests * corner cases: 1:5,6,7 or 5,6,7 or just 1:5 Co-authored-by: Erik Frojdh <erik.frojdh@gmail.com>
This commit is contained in:
@ -349,6 +349,29 @@ void Detector::setBadChannels(const std::string &fname, Positions pos) {
|
||||
pimpl->setBadChannels(fname, pos);
|
||||
}
|
||||
|
||||
Result<std::vector<int>> Detector::getBadChannels(Positions pos) const {
|
||||
return pimpl->Parallel(&Module::getBadChannels, pos);
|
||||
}
|
||||
|
||||
void Detector::setBadChannels(const std::vector<std::vector<int>> list) {
|
||||
|
||||
if (list.size() != static_cast<size_t>(size())) {
|
||||
std::stringstream ss;
|
||||
ss << "Number of bad channel sets (" << list.size()
|
||||
<< ") needs to match the number of modules (" << size() << ")";
|
||||
throw RuntimeError(ss.str());
|
||||
}
|
||||
|
||||
for (int idet = 0; idet < size(); ++idet) {
|
||||
// TODO! Call in parallel since loading trimbits is slow?
|
||||
pimpl->Parallel(&Module::setBadChannels, {idet}, list[idet]);
|
||||
}
|
||||
}
|
||||
|
||||
void Detector::setBadChannels(const std::vector<int> list, Positions pos) {
|
||||
pimpl->setBadChannels(list, pos);
|
||||
}
|
||||
|
||||
Result<bool> Detector::isVirtualDetectorServer(Positions pos) const {
|
||||
return pimpl->Parallel(&Module::isVirtualDetectorServer, pos);
|
||||
}
|
||||
|
Reference in New Issue
Block a user