13 using namespace fhicl;
23 typedef std::vector<std::vector<bool>>
Answers;
27 typedef std::vector<std::bitset<numBits>>
VBools;
32 for (
auto const& element : strings) {
33 ost << element <<
" ";
41 const std::bitset<numBits>&
mask,
47 int number_of_trigger_paths = 0;
48 std::vector<unsigned char> bitArray;
56 for (
unsigned int b = 0;
b < mask.size(); ++
b) {
63 if ((number_of_trigger_paths % 4) == 0)
64 bitArray.push_back(0);
65 int byteIndex = number_of_trigger_paths / 4;
66 int subIndex = number_of_trigger_paths % 4;
69 ++number_of_trigger_paths;
72 if (jmask == 8 && mask.size() > 4) {
80 trigger_pset.
put<
Strings>(
"trigger_paths", paths);
81 ParameterSetRegistry::put(trigger_pset);
85 if (result != answer) {
86 std::cerr <<
"failed to compare pattern with mask using pset ID: " 87 <<
"correct=" << answer <<
" " 88 <<
"results=" << std::boolalpha << result <<
'\n' 89 <<
"pattern=" << pattern <<
"\n" 90 <<
"mask=" << mask <<
"\n" 91 <<
"jmask = " << jmask <<
"\n";
102 for (
unsigned int i = 0; i < patterns.size(); ++i) {
103 for (
unsigned int j = 0; j < masks.size(); ++j) {
104 testone(paths, patterns[i], masks[j], answers[i][j], j);
130 patterns[1] = {
"!*"};
131 patterns[2] = {
"HLTx1",
"HLTy1"};
132 patterns[3] = {
"CALIBx2",
"!HLTx2"};
133 patterns[4] = {
"HLT*"};
134 patterns[5] = {
"!HLT*"};
135 patterns[6] = {
"DEBUG*1",
"HLT?2"};
136 patterns[7] = {
"D*x1",
"CALIBx*"};
137 patterns[8] = {
"HL*1",
"C?LIB*2"};
138 patterns[9] = {
"H*x1"};
139 patterns[10] = {
"!H*x1"};
140 patterns[11] = {
"C?LIB*2"};
147 return std::bitset<numBits>{bit_string};
151 testmasks[0] = to_bits(
"000000000000");
152 testmasks[1] = to_bits(
"111111111111");
153 testmasks[2] = to_bits(
"100000000000");
154 testmasks[3] = to_bits(
"010000000000");
155 testmasks[4] = to_bits(
"000000001000");
156 testmasks[5] = to_bits(
"111100100000");
157 testmasks[6] = to_bits(
"000001000010");
158 testmasks[7] = to_bits(
"101001100101");
160 to_bits(
"000001001111");
167 std::vector<bool> ansstar;
168 ansstar.push_back(
false);
169 ansstar.push_back(
true);
170 ansstar.push_back(
true);
171 ansstar.push_back(
true);
172 ansstar.push_back(
true);
173 ansstar.push_back(
true);
174 ansstar.push_back(
true);
175 ansstar.push_back(
true);
176 ansstar.push_back(
true);
178 ans.push_back(ansstar);
180 std::vector<bool> ansnotstar;
181 ansnotstar.push_back(
true);
182 ansnotstar.push_back(
false);
183 ansnotstar.push_back(
false);
184 ansnotstar.push_back(
false);
185 ansnotstar.push_back(
false);
186 ansnotstar.push_back(
false);
187 ansnotstar.push_back(
false);
188 ansnotstar.push_back(
false);
189 ansnotstar.push_back(
false);
191 ans.push_back(ansnotstar);
193 std::vector<bool> ans0;
194 ans0.push_back(
false);
195 ans0.push_back(
true);
196 ans0.push_back(
true);
197 ans0.push_back(
false);
198 ans0.push_back(
false);
199 ans0.push_back(
true);
200 ans0.push_back(
false);
201 ans0.push_back(
true);
202 ans0.push_back(
false);
206 std::vector<bool> ans1;
207 ans1.push_back(
true);
208 ans1.push_back(
true);
209 ans1.push_back(
true);
210 ans1.push_back(
false);
211 ans1.push_back(
true);
212 ans1.push_back(
false);
213 ans1.push_back(
true);
214 ans1.push_back(
true);
215 ans1.push_back(
true);
219 std::vector<bool> ans2;
220 ans2.push_back(
false);
221 ans2.push_back(
true);
222 ans2.push_back(
true);
223 ans2.push_back(
true);
224 ans2.push_back(
false);
225 ans2.push_back(
true);
226 ans2.push_back(
false);
227 ans2.push_back(
true);
228 ans2.push_back(
false);
232 std::vector<bool> ans3;
233 ans3.push_back(
true);
234 ans3.push_back(
false);
235 ans3.push_back(
false);
236 ans3.push_back(
false);
237 ans3.push_back(
true);
238 ans3.push_back(
false);
239 ans3.push_back(
true);
240 ans3.push_back(
false);
241 ans3.push_back(
false);
245 std::vector<bool> ans4;
246 ans4.push_back(
false);
247 ans4.push_back(
true);
248 ans4.push_back(
false);
249 ans4.push_back(
true);
250 ans4.push_back(
true);
251 ans4.push_back(
true);
252 ans4.push_back(
true);
253 ans4.push_back(
false);
254 ans4.push_back(
true);
258 std::vector<bool> ans5;
259 ans5.push_back(
false);
260 ans5.push_back(
true);
261 ans5.push_back(
false);
262 ans5.push_back(
false);
263 ans5.push_back(
true);
264 ans5.push_back(
false);
265 ans5.push_back(
true);
266 ans5.push_back(
true);
267 ans5.push_back(
true);
271 std::vector<bool> ans6;
272 ans6.push_back(
false);
273 ans6.push_back(
true);
274 ans6.push_back(
true);
275 ans6.push_back(
false);
276 ans6.push_back(
false);
277 ans6.push_back(
true);
278 ans6.push_back(
true);
279 ans6.push_back(
true);
280 ans6.push_back(
true);
284 std::vector<bool> ans7;
285 ans7.push_back(
false);
286 ans7.push_back(
true);
287 ans7.push_back(
true);
288 ans7.push_back(
false);
289 ans7.push_back(
false);
290 ans7.push_back(
true);
291 ans7.push_back(
false);
292 ans7.push_back(
true);
293 ans7.push_back(
false);
297 std::vector<bool> ans8;
298 ans8.push_back(
true);
299 ans8.push_back(
false);
300 ans8.push_back(
false);
301 ans8.push_back(
true);
302 ans8.push_back(
true);
303 ans8.push_back(
false);
304 ans8.push_back(
true);
305 ans8.push_back(
false);
312 std::vector<bool> ans9;
313 ans9.push_back(
false);
314 ans9.push_back(
true);
315 ans9.push_back(
false);
316 ans9.push_back(
false);
317 ans9.push_back(
false);
318 ans9.push_back(
false);
319 ans9.push_back(
true);
320 ans9.push_back(
true);
321 ans9.push_back(
true);
327 for (
auto const&
name : paths) {
333 testall(bit_qualified_paths, patterns, testmasks, ans);
end
while True: pbar.update(maxval-len(onlies[E][S])) #print iS, "/", len(onlies[E][S]) found = False for...
constexpr size_t numTestMasks
static constexpr ScheduleID first()
void testall(const Strings &paths, const VStrings &patterns, const VBools &masks, const Answers &answers)
decltype(auto) constexpr size(T &&obj)
ADL-aware version of std::size.
std::ostream & operator<<(std::ostream &os, const GroupSelector &gs)
std::vector< Bools > VBools
std::vector< std::bitset< numBits > > VBools
constexpr size_t numPatterns
void testone(const Strings &paths, const Strings &pattern, const std::bitset< numBits > &mask, bool answer, int jmask)
ParameterSetID id() const
std::vector< Strings > VStrings
static unsigned int reverse(QString &chars, unsigned char *level, unsigned int a, unsigned int b)
decltype(auto) constexpr begin(T &&obj)
ADL-aware version of std::begin.
std::vector< std::string > Strings
std::vector< string > Strings
std::vector< Strings > VStrings
std::string to_string(ModuleType const mt)
std::vector< std::vector< bool > > Answers
void put(std::string const &key)