ATLAS Offline Software
Loading...
Searching...
No Matches
FastReductionMatcher Class Reference

#include <FastReductionMatcher.h>

Inheritance diagram for FastReductionMatcher:
Collaboration diagram for FastReductionMatcher:

Public Member Functions

 FastReductionMatcher (ConditionPtrs &&, ConditionFilters &&, const ConditionFilterInds &, const Tree &)
virtual std::optional< bool > match (const HypoJetVector &jv, xAODJetCollector &, const std::unique_ptr< ITrigJetHypoInfoCollector > &collector, bool) const override
 determine whether a set of jets satisfies all hypo conditions.
std::string toString () const override
virtual bool valid () const override
virtual std::string msg () const override

Private Attributes

ConditionPtrs m_conditions
ConditionFilters m_conditionFilters
ConditionFilterInds m_conditionFilterInds
Tree m_tree
 tree structure for Conditions objects.
long unsigned int m_minNjets {0u}
bool m_validState {true}
std::string m_msg

Detailed Description

Definition at line 23 of file FastReductionMatcher.h.

Constructor & Destructor Documentation

◆ FastReductionMatcher()

FastReductionMatcher::FastReductionMatcher ( ConditionPtrs && conditions,
ConditionFilters && filters,
const ConditionFilterInds & filterInds,
const Tree & tree )

Definition at line 13 of file FastReductionMatcher.cxx.

16 :
17 m_conditions(std::move(conditions)),
18 m_conditionFilters(std::move(filters)),
19 m_conditionFilterInds(filterInds),
20 m_tree(tree){
21
22 if (m_conditions[0]->capacity() != 0 or
23 m_conditions[0]-> multiplicity() != 1) {
24 m_validState= false;
25 m_msg = "Condition tree root node is not AcceptAll";
26 }
27
28 int minNjets{0};
29 for (const auto& il : m_tree.leaves()){
30 const auto& condition = m_conditions[il];
31
32 if (!condition->isFromChainPart()) {
33 m_validState = false;
34 m_msg = "Tree leaf condition but not from ChainPart";
35 }
36 minNjets += condition->capacity() * condition->multiplicity();
37
38 }
39
40 m_minNjets = std::max(1, minNjets);
41
42 if (filterInds.size() != m_conditions.size()) {
43 m_validState = false;
44 std::stringstream ss;
45 ss << "ConditionFilterInds and Conditions sequence sizes differ: ";
46 ss << filterInds.size() << " " << m_conditions.size();
47 m_msg = ss.str();
48 }
49
50}
static Double_t ss
Tree m_tree
tree structure for Conditions objects.
ConditionFilterInds m_conditionFilterInds
ConditionFilters m_conditionFilters
long unsigned int m_minNjets
TChain * tree

Member Function Documentation

◆ match()

std::optional< bool > FastReductionMatcher::match ( const HypoJetVector & jv,
xAODJetCollector & jetCollector,
const std::unique_ptr< ITrigJetHypoInfoCollector > & collector,
bool  ) const
overridevirtual

determine whether a set of jets satisfies all hypo conditions.

the jets are packed into jet grpups of length 1. groups_b and groups_e are iterators into the data structure containing these groups. Jet collector is used to transport the jets that matched the hypo conditions. Collector collects information for testing and debugging the final bool argument is used to allow further debugging within the method.

Implements IJetsMatcher.

Definition at line 54 of file FastReductionMatcher.cxx.

57 {
58 /*
59 Decide if the incomming jet groups satisfiy all the conditions of the
60 condition tree.
61
62 The leaf nodes are tested first. Jet groups satisfyng the leaves
63 stored in a table. Once all leaves have been processed, the satisfying
64 groups are combined, and tested against the aprent nodes.
65
66 The procedure is iterated until the entire tree is checked, or
67 an unsatisfied condition is found. If no unsatisfied condition,
68 there is a match.
69 */
70
71 auto njets = jv.size();
72
73 if (njets < m_minNjets) {
74 if (collector) {
75 collector->collect("FastReductionMatcher",
76 "have " + std::to_string(njets) +
77 " jets need " + std::to_string(m_minNjets) +
78 " pass: false");
79 }
80 return false;
81 }
82
83 FastReducer reducer(jv,
87 m_tree,
88 jetCollector,
89 collector);
90
91 return std::make_optional<bool>(reducer.pass());
92}
virtual void collect(const std::string &, const std::string &)=0

◆ msg()

std::string FastReductionMatcher::msg ( ) const
overridevirtual

Implements IJetsMatcher.

Definition at line 139 of file FastReductionMatcher.cxx.

139{return m_msg;}

◆ toString()

std::string FastReductionMatcher::toString ( ) const
overridevirtual

Implements IJetsMatcher.

Definition at line 95 of file FastReductionMatcher.cxx.

95 {
96 std::stringstream ss;
97 ss << "FastReductionMatcher:\n"
98 << " treeVector: " << m_tree << '\n'
99 << " min required jets " << m_minNjets << "\n\n"
100 << "FastReductionMatcher Conditions ["
101 << m_conditions.size() << "]: \n\n";
102
103 std::size_t count{0u};
104 for(const auto& c : m_conditions){
105 auto sc = std::to_string(count++);
106 sc.insert(sc.begin(), 3-sc.length(), ' ');
107 ss << sc <<": "<< c->toString() + '\n';
108 }
109
110
111 ss << "FastReductionMatcher ConditionFilter indices ["
112 << m_conditionFilterInds.size() << "]: \n";
113
114
115 count = 0;
116 for(const auto& c : m_conditionFilterInds){
117 auto sc = std::to_string(count++);
118 sc.insert(sc.begin(), 3-sc.length(), ' ');
119 ss << sc <<": "<< c << '\n';
120 }
121
122
123 ss << "FastReductionMatcher ConditionFilters ["
124 << m_conditionFilters.size() << "]: \n";
125
126
127 count = 0;
128 for(const auto& c : m_conditionFilters){
129 auto sc = std::to_string(count++);
130 sc.insert(sc.begin(), 3-sc.length(), ' ');
131 ss << sc <<": "<< c->toString() + '\n';
132 }
133
134
135 return ss.str();
136}
static Double_t sc
int count(std::string s, const std::string &regx)
count how many occurances of a regx are in a string
Definition hcg.cxx:146
@ u
Enums for curvilinear frames.
Definition ParamDefs.h:77

◆ valid()

bool FastReductionMatcher::valid ( ) const
overridevirtual

Implements IJetsMatcher.

Definition at line 138 of file FastReductionMatcher.cxx.

138{return m_validState;}

Member Data Documentation

◆ m_conditionFilterInds

ConditionFilterInds FastReductionMatcher::m_conditionFilterInds
private

Definition at line 59 of file FastReductionMatcher.h.

◆ m_conditionFilters

ConditionFilters FastReductionMatcher::m_conditionFilters
private

Definition at line 58 of file FastReductionMatcher.h.

◆ m_conditions

ConditionPtrs FastReductionMatcher::m_conditions
private

Definition at line 57 of file FastReductionMatcher.h.

◆ m_minNjets

long unsigned int FastReductionMatcher::m_minNjets {0u}
private

Definition at line 70 of file FastReductionMatcher.h.

70{0u};

◆ m_msg

std::string FastReductionMatcher::m_msg
private

Definition at line 74 of file FastReductionMatcher.h.

◆ m_tree

Tree FastReductionMatcher::m_tree
private

tree structure for Conditions objects.

The conditions tree gives relations among conditions (eg parent-child and siblings-of)

Definition at line 66 of file FastReductionMatcher.h.

◆ m_validState

bool FastReductionMatcher::m_validState {true}
private

Definition at line 73 of file FastReductionMatcher.h.

73{true};

The documentation for this class was generated from the following files: