65tuple<map<string, map<string, map<string, int>> >, map<string, map<string, map<string, string>> > > 
getBoardMapping(
json j)
 
   82  for (
auto& el : j.items())
 
   85    for (
auto& subel : el.value().items())
 
   87      string jsonStr = subel.value().dump();
 
   90      if (el.key() ==
"scifi")
 
   92        info_scifi = nlohmann::json::parse(jsonStr);
 
   94        if (info_scifi.
Class != 
"multiboard" || info_scifi.
type != 
"snd_scifi")
 
   96          cout << 
"Wrong class/type: " << info_scifi.
Class << 
"/" << info_scifi.
type << endl;
 
  100        for (
int i = 0; i < info_scifi.
boards.size(); i++)
 
  102          bString = Form(
"board_%i", info_scifi.
boards.at(i));
 
  103          c =::toupper(subel.key()[1]);
 
  104          boardMaps[
"Scifi"][bString][Form(
"M%c%c", subel.key()[0], c )] = i;          
 
  107      else if (el.key() ==
"veto")
 
  109        info = nlohmann::json::parse(jsonStr);
 
  111        if (info.Class != 
"multislot" || info.type != 
"snd_veto")
 
  113          cout << 
"Wrong class/type: " << info.Class << 
"/" << info.type << endl;
 
  117        bString = Form(
"board_%i", info.board);
 
  123        for (
int i = 0; i < info.slots.size(); i++)
 
  125          bString = Form(
"board_%i", info.board);
 
  126          if (stoi(subel.key())<3){
 
  127            if (i==0) 
boardMapsMu[
"MuFilter"][bString][info.slots.at(i)] = Form(
"Veto_%iLeft", stoi(subel.key()));
 
  128            else if (i==1) 
boardMapsMu[
"MuFilter"][bString][info.slots.at(i)] = Form(
"Veto_%iRight", stoi(subel.key()));
 
  130          if (stoi(subel.key())==3) 
boardMapsMu[
"MuFilter"][bString][info.slots.at(i)] = Form(
"Veto_%iVert", stoi(subel.key()));
 
  133      else if (el.key() ==
"us")
 
  135        info = nlohmann::json::parse(jsonStr);
 
  137        if (info.Class != 
"multislot" || info.type != 
"snd_us")
 
  139          cout << 
"Wrong class/type: " << info.Class << 
"/" << info.type << endl;
 
  143        bString = Form(
"board_%i", info.board);
 
  149        for (
int i = 0; i < info.slots.size(); i++)
 
  151          bString = Form(
"board_%i", info.board);
 
  152          if (i==0) 
boardMapsMu[
"MuFilter"][bString][info.slots.at(i)] = Form(
"US_%iLeft", stoi(subel.key()));
 
  153          else if (i==1) 
boardMapsMu[
"MuFilter"][bString][info.slots.at(i)] = Form(
"US_%iRight", stoi(subel.key()));
 
  156      else if (el.key() ==
"ds")
 
  158        info = nlohmann::json::parse(jsonStr);
 
  160        if (info.Class != 
"multislot" || (info.type != 
"snd_dsh" && info.type != 
"snd_dsv"))
 
  162          cout << 
"Wrong class/type: " << info.Class << 
"/" << info.type << endl;
 
  166        bString = Form(
"board_%i", info.board);
 
  173        if(info.type == 
"snd_dsh")
 
  176          for (
int i = 0; i < info.slots.size(); i++)
 
  178            bString = Form(
"board_%i", info.board);
 
  179            if (i==0) 
boardMapsMu[
"MuFilter"][bString][info.slots.at(i)] = Form(
"DS_%iLeft", stoi(subel.key()));
 
  180            else if (i==1) 
boardMapsMu[
"MuFilter"][bString][info.slots.at(i)] = Form(
"DS_%iRight", stoi(subel.key()));
 
  185          boardMapsMu[
"MuFilter"][bString][info.slots.at(0)] = Form(
"DS_%iVert", stoi(subel.key()));
 
  190        cout << 
"Unknown subsystem " << el.key() <<endl;
 
 
tuple< map< string, map< string, map< string, int > > >, map< string, map< string, map< string, string > > > > getBoardMapping(json j)