1 #ifndef CondCore_L1TPlugins_L1TUtmTriggerMenuPayloadInspectorHelper_H 2 #define CondCore_L1TPlugins_L1TUtmTriggerMenuPayloadInspectorHelper_H 28 std::vector<std::string>
output;
31 std::back_inserter(
output),
32 [](
const std::pair<std::string, L1TUtmAlgorithm>& pair) {
40 const auto& otherMap =
other->getAlgorithmMap();
42 std::vector<std::string> commonKeys;
46 m_map.begin(),
m_map.end(), [&commonKeys, &otherMap](
const std::pair<std::string, L1TUtmAlgorithm>& pair) {
50 if (otherMap.find(
key) != otherMap.end()) {
51 commonKeys.push_back(
key);
59 const auto& otherMap =
other->getAlgorithmMap();
61 std::vector<std::string> stringsOnlyInFirstMap;
64 std::for_each(
m_map.begin(),
66 [&stringsOnlyInFirstMap, &otherMap](
const std::pair<std::string, L1TUtmAlgorithm>& pair) {
69 if (otherMap.find(
key) == otherMap.end()) {
70 stringsOnlyInFirstMap.push_back(
key);
74 return stringsOnlyInFirstMap;
79 const auto& otherMap =
other->getAlgorithmMap();
81 std::vector<std::string> stringsOnlyInSecondMap;
84 std::for_each(otherMap.begin(),
86 [
this, &stringsOnlyInSecondMap](
const std::pair<std::string, L1TUtmAlgorithm>& pair) {
90 if (this->
m_map.find(key) == this->
m_map.end()) {
91 stringsOnlyInSecondMap.push_back(
key);
95 return stringsOnlyInSecondMap;
121 unsigned int mapsize = vec_only_in_this.size() + vec_only_in_other.size();
122 float pitch = 1. / (mapsize * 1.1);
124 std::vector<float> y_x1, y_x2, y_line;
125 std::vector<std::string> s_x1, s_x2, s_x3;
133 s_x1.push_back(
"#scale[1.1]{Key}");
141 s_x2.push_back(
"#scale[1.1]{Refer tag / IOV: #color[4]{" + theRefTag +
"} / " + theRefIOV +
"}");
147 for (
const auto& ref : vec_only_in_other) {
152 s_x2.push_back(
"#color[4]{#bf{Only in reference, not in target.}}");
153 y_line.push_back(y - (pitch / 2.));
157 for (
const auto& tar : vec_only_in_this) {
162 s_x2.push_back(
"#color[2]{#bf{Only in target, not in reference.}}");
163 y_line.push_back(y - (pitch / 2.));
167 TCanvas
canvas(
"L1TUtmMenuData",
"L1TUtmMenuData", 2000,
std::max(y_x1.size(), y_x2.size()) * 40);
172 float newpitch = 1 / (
std::max(y_x1.size(), y_x2.size()) * 1.1);
173 float factor = newpitch / pitch;
174 l.SetTextSize(newpitch - 0.002);
176 for (
unsigned int i = 0;
i < y_x1.size();
i++) {
177 l.DrawLatexNDC(x1, 1 - (1 - y_x1[
i]) *
factor, s_x1[
i].c_str());
180 for (
unsigned int i = 0;
i < y_x2.size();
i++) {
181 l.DrawLatexNDC(x2, 1 - (1 - y_x2[
i]) *
factor, s_x2[
i].c_str());
188 TLine
lines[y_line.size()];
190 for (
const auto&
line : y_line) {
192 lines[iL].SetLineWidth(1);
193 lines[iL].SetLineStyle(9);
194 lines[iL].SetLineColor(2);
195 lines[iL].Draw(
"same");
key
prepare the HTCondor submission files and eventually submit them