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();
128 j[
"filetype"] =
"hltprescale";
129 j[
"name"] = ps.
name();
130 j[
"prescales"] = std::move(
chains);
132 outfile << std::setw(4) << j << std::endl;