5#ifndef TRIGHLTJETHYPO_FASTREDUCER_H
6#define TRIGHLTJETHYPO_FASTREDUCER_H
22typedef std::unique_ptr<ITrigJetHypoInfoCollector>
Collector;
31 std::vector<std::unique_ptr<IHypoJetVectorFilter>>;
42 const Tree& conditionsTree,
109 const std::vector<std::size_t>& siblings,
121 std::size_t n_inputjets,
std::vector< std::size_t > TreeVec
std::vector< int > ConditionFilterInds
std::vector< std::unique_ptr< IHypoJetVectorFilter > > ConditionFilters
std::map< int, std::vector< std::size_t > > JetGroupInd2ElemInds
define a map from a jet group index to a set of indices that can be used to find a jet
std::unique_ptr< ITrigJetHypoInfoCollector > Collector
std::map< std::size_t, HypoJetVector > IDJetGroup
std::vector< pHypoJet > HypoJetVector
std::map< int, std::vector< std::size_t > > CondInd2JetGroupsInds
std::vector< ConditionPtr > ConditionPtrs
JetGroupInd2ElemInds m_jg2elemjgs
map jet group indices to indices of incoming jet groups
std::vector< int > m_conditionClique
std::vector< unsigned int > m_conditionCap
Tree m_tree
tree structure for Conditions objects.
bool pass() const
determine whether a set of jets satisfies all hypo conditions.
CondInd2JetGroupsInds m_satisfiedBy
HypoJetVector m_passingJets
bool m_pass
event pass flag
void collectLeafJets(xAODJetCollector &jetCollector, const Collector &collector) const
const ConditionPtrs & m_conditions
ConditionFilterInds m_conditionFilterInds
bool propagate_(std::size_t child, const std::vector< std::size_t > &siblings, const Collector &)
std::vector< std::size_t > m_conditionMult
void dumpDataStructures(const Collector &) const
std::string toString() const
std::map< std::size_t, std::set< std::size_t > > m_testedBy
map Condition index onto a set of indices the condition has been tested with - used to prevent retest...
void recordJetGroup(std::size_t ind, const HypoJetVector &jg, const Collector &collector) const
FastReducer(const HypoJetVector &jv, const ConditionPtrs &conditionObjects, const ConditionFilters &conditionFilters, const ConditionFilterInds &conditionFilterInds, const Tree &conditionsTree, xAODJetCollector &jetCollector, const Collector &collector)
JetGroupRegister m_jgRegister
bool capacitySatisfied(std::size_t ind, const Collector &collector) const
const ConditionFilters & m_conditionFilters
void recordFiltering(std::size_t leaf_ind, std::size_t n_inputjets, int n_filteredjets, const Collector &collector) const
std::string dataStructuresToStr() const
std::map< std::size_t, HypoJetVector > m_indJetGroup
map jet group indices to jet groups
bool propagateJetGroups(const Collector &collector)
bool findInitialJetGroups(const HypoJetVector &jv, const Collector &collector)
set up the data structures for propagation.
std::map< int, std::vector< std::size_t > > JetGroupInd2ElemInds