Skip to content

Commit a995b77

Browse files
author
Benjamin Huber
committed
Add configurable input/output channels and make params untracked
1 parent 1742ff3 commit a995b77

File tree

9 files changed

+538
-358
lines changed

9 files changed

+538
-358
lines changed

L1Trigger/Phase2L1GT/plugins/L1GTAlgoBoardWriter.cc

Lines changed: 41 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
#include "L1Trigger/DemonstratorTools/interface/utilities.h"
1717

1818
#include "FWCore/Utilities/interface/EDGetToken.h"
19+
#include "FWCore/Utilities/interface/EDMException.h"
1920

2021
#include "DataFormats/L1Trigger/interface/P2GTAlgoBlock.h"
2122

@@ -24,6 +25,7 @@
2425
#include <vector>
2526
#include <algorithm>
2627
#include <string>
28+
#include <array>
2729

2830
using namespace l1t;
2931

@@ -49,19 +51,33 @@ class L1GTAlgoBoardWriter : public edm::one::EDAnalyzer<> {
4951
std::size_t tmuxCounter_;
5052
};
5153

54+
template <typename T, std::size_t N>
55+
static std::array<T, N> convert(std::vector<T> vec, const char* name) {
56+
if (vec.size() != N) {
57+
throw edm::Exception(edm::errors::Configuration)
58+
<< "The parameter '" << name << "' should have " << N << " elements, but has " << vec.size()
59+
<< " elements in the configuration.\n";
60+
}
61+
std::array<T, N> a;
62+
std::copy_n(std::make_move_iterator(vec.begin()), N, a.begin());
63+
return a;
64+
}
65+
5266
L1GTAlgoBoardWriter::L1GTAlgoBoardWriter(const edm::ParameterSet& config)
5367
: eventCounter_(0),
54-
maxEvents_(config.getParameter<unsigned int>("maxEvents")),
55-
channels_(config.getParameter<std::array<unsigned int, 2>>("channels")),
56-
algoBitMask_(config.getParameter<std::array<unsigned long long, 9>>("algoBitMask")),
57-
algoBlocksToken_(consumes<P2GTAlgoBlockMap>(config.getParameter<edm::InputTag>("algoBlocksTag"))),
68+
maxEvents_(config.getUntrackedParameter<unsigned int>("maxEvents")),
69+
channels_(
70+
convert<unsigned int, 2>(config.getUntrackedParameter<std::vector<unsigned int>>("channels"), "channels")),
71+
algoBitMask_(convert<unsigned long long, 9>(
72+
config.getUntrackedParameter<std::vector<unsigned long long>>("algoBitMask"), "algoBitMask")),
73+
algoBlocksToken_(consumes<P2GTAlgoBlockMap>(config.getUntrackedParameter<edm::InputTag>("algoBlocksTag"))),
5874
boardDataWriter_(
59-
l1t::demo::parseFileFormat(config.getParameter<std::string>("patternFormat")),
60-
config.getParameter<std::string>("outputFilename"),
61-
config.getParameter<std::string>("outputFileExtension"),
75+
l1t::demo::parseFileFormat(config.getUntrackedParameter<std::string>("patternFormat")),
76+
config.getUntrackedParameter<std::string>("outputFilename"),
77+
config.getUntrackedParameter<std::string>("outputFileExtension"),
6278
9,
6379
2,
64-
config.getParameter<unsigned int>("maxFrames"),
80+
config.getUntrackedParameter<unsigned int>("maxFrames"),
6581
[](const std::array<unsigned int, 2>& channels) {
6682
l1t::demo::BoardDataWriter::ChannelMap_t channelMap;
6783
for (unsigned int channel : channels) {
@@ -117,23 +133,23 @@ void L1GTAlgoBoardWriter::endJob() {
117133

118134
void L1GTAlgoBoardWriter::fillDescriptions(edm::ConfigurationDescriptions& descriptions) {
119135
edm::ParameterSetDescription desc;
120-
desc.add<std::string>("outputFilename");
121-
desc.add<std::string>("outputFileExtension", "txt");
122-
desc.add<edm::InputTag>("algoBlocksTag");
123-
desc.add<unsigned int>("maxEvents", 0);
124-
desc.add<std::vector<unsigned int>>("channels");
125-
desc.add<std::vector<unsigned long long>>("algoBitMask",
126-
{0xffffffffffffffffull,
127-
0xffffffffffffffffull,
128-
0xffffffffffffffffull,
129-
0xffffffffffffffffull,
130-
0xffffffffffffffffull,
131-
0xffffffffffffffffull,
132-
0xffffffffffffffffull,
133-
0xffffffffffffffffull,
134-
0xffffffffffffffffull});
135-
desc.add<unsigned int>("maxFrames", 1024);
136-
desc.add<std::string>("patternFormat", "EMPv2");
136+
desc.addUntracked<std::string>("outputFilename");
137+
desc.addUntracked<std::string>("outputFileExtension", "txt");
138+
desc.addUntracked<edm::InputTag>("algoBlocksTag");
139+
desc.addUntracked<unsigned int>("maxEvents", 0);
140+
desc.addUntracked<std::vector<unsigned int>>("channels");
141+
desc.addUntracked<std::vector<unsigned long long>>("algoBitMask",
142+
{0xffffffffffffffffull,
143+
0xffffffffffffffffull,
144+
0xffffffffffffffffull,
145+
0xffffffffffffffffull,
146+
0xffffffffffffffffull,
147+
0xffffffffffffffffull,
148+
0xffffffffffffffffull,
149+
0xffffffffffffffffull,
150+
0xffffffffffffffffull});
151+
desc.addUntracked<unsigned int>("maxFrames", 1024);
152+
desc.addUntracked<std::string>("patternFormat", "EMPv2");
137153

138154
descriptions.addDefault(desc);
139155
}

L1Trigger/Phase2L1GT/plugins/L1GTChannelMapping.h

Lines changed: 0 additions & 112 deletions
This file was deleted.

0 commit comments

Comments
 (0)