12 #include <nlohmann/json.hpp> 
   26    std::vector<T> return_vector;
 
   27    for( 
const ptree::value_type& 
entry : 
ds.data().get_child(child) ) {
 
   28       return_vector.push_back( 
entry.second.get_value<T>() );
 
   37    std::vector<std::vector<T>> return_vector;
 
   38    for( 
const ptree::value_type& outer : 
ds.data().get_child(child) ) {
 
   39       return_vector.push_back(std::vector<T>());
 
   40       for (
const ptree::value_type& inner : outer.second) {
 
   41          return_vector.back().push_back( inner.second.get_value<T>() );
 
   54       jChain[
"counter"] = 
chain.counter();
 
   55       jChain[
"nameHash"] = 
chain.namehash();
 
   56       jChain[
"l1item"] = 
chain.l1item();
 
   57       jChain[
"legMultiplicities"] = 
chain.legMultiplicities();
 
   58       jChain[
"l1thresholds"] = 
chain.l1thresholds();
 
   59       jChain[
"groups"] = 
chain.groups();
 
   60       jChain[
"streams"] = 
chain.streams();
 
   61       jChain[
"seqeuncers"] = 
chain.sequencers();
 
   64       if (
chain.hasChild(
"signature")) {
 
   66          jSig[
"counters"] = ToVector<uint32_t>(
chain, 
"signature.counters");
 
   67          jSig[
"logics"] = ToVector<int>(
chain, 
"signature.logics");
 
   68          jSig[
"labels"] = ToVector<std::string>(
chain, 
"signature.labels");
 
   69          jSig[
"outputTEs"] = ToVectorVector<std::string>(
chain, 
"signature.outputTEs");
 
   70          jChain[
"signature"] = std::move(jSig);
 
   77    for ( 
const auto& [seqName, algsList]: 
menu.sequencers() ) {
 
   78       json jSeq( algsList );
 
   79       sequencers[seqName] = std::move(jSeq);
 
   84       jStream[
"name"] = 
stream[
"name"];
 
   85       jStream[
"type"] = 
stream[
"type"];
 
   86       jStream[
"obeyLB"] = 
stream.getAttribute<
bool>(
"obeyLB");
 
   87       jStream[
"forceFullEventBuilding"] = 
stream.getAttribute<
bool>(
"forceFullEventBuilding");
 
   93    j[
"filetype"] = 
"hltmenu";
 
   94    j[
"name"] = 
menu.name();
 
   95    j[
"chains"] = std::move(
chains);
 
   96    j[
"sequencers"] = std::move(sequencers);
 
   97    j[
"streams"] = std::move(
streams);
 
  100    if (
menu.hasChild(
"sequence_run2")) {
 
  102       jSequence[
"outputTEs"] = ToVector<std::string>(
menu, 
"sequence_run2.outputTEs");
 
  103       jSequence[
"inputTEs"] = ToVectorVector<std::string>(
menu, 
"sequence_run2.inputTEs");
 
  104       jSequence[
"algorithms"] = ToVectorVector<std::string>(
menu, 
"sequence_run2.algorithms");
 
  105       j[
"sequence_run2"] = std::move(jSequence);
 
  109    outfile << std::setw(4) << j << std::endl;
 
  120       jChain[
"name"] = 
chain.name();
 
  121       jChain[
"counter"] = 
chain.counter();
 
  122       jChain[
"hash"] = 
chain.namehash();
 
  123       jChain[
"prescale"] = 
ps.prescale(
chain.name()).prescale;
 
  124       jChain[
"enabled"] = 
ps.prescale(
chain.name()).enabled;
 
  128    j[
"filetype"] = 
"hltprescale";
 
  129    j[
"name"] = 
ps.name();
 
  130    j[
"prescales"] = std::move(
chains);
 
  132    outfile << std::setw(4) << j << std::endl;