diff --git a/CEP/DP3/DPPP/src/BaselineSelection.cc b/CEP/DP3/DPPP/src/BaselineSelection.cc index 614a6c9d67e8302ba6f54737c84d71d2a2b59954..fd6fcb4d25bdf35b0ee71c9ef3bd50d6bc2d74ac 100644 --- a/CEP/DP3/DPPP/src/BaselineSelection.cc +++ b/CEP/DP3/DPPP/src/BaselineSelection.cc @@ -113,7 +113,25 @@ namespace LOFAR { { // Handle the value(s) in the baseline selection string. ParameterValue pvBL(itsStrBL); - if (pvBL.isVector()) { + // The value can be a vector or an MSSelection string. + // Alas the ParameterValue vector test cannot be used, because + // the first character of a MSSelection string can also be [. + // So if the first is [ and a ] is found before the end and before + // another [, it must be a MSSelection string. + bool mssel = true; + if (itsStrBL[0] == '[') { + String::size_type rb = itsStrBL.find (']'); + ASSERTSTR (rb != string::npos, + "Baseline selection " + itsStrBL + + " has no ending ]"); + if (rb == itsStrBL.size()-1) { + mssel = false; + } else { + String::size_type lb = itsStrBL.find ('[', 1); + mssel = (lb == string::npos || lb > rb); + } + } + if (!mssel) { // Specified as a vector of antenna name patterns. selectBL = selectBL && handleBLVector (pvBL, info.antennaNames()); } else {