static bool List2Vector (const string& str, IntVector &v)
{ 
  // parse list
  istringstream is(str);
  vector<int> lst;
  int i;
  v.Remove();
  while (is >> i) lst.push_back(i);
  if (lst.size() > 0) {
    v = IntVector(0,lst.size()-1);
    for (unsigned k = 0; k < lst.size(); ++k) v(k) = lst[k];
  }
  return true;
}