42 setWhatProduced(
this);
44 ptLUTVersion = iConfig.
getParameter<
int>(
"PtAssignVersion");
66 (!left_subtree.empty() ? 1 : 0);
69 cond_tree.begin() + 1,
75 cond_node.iright += 1;
78 unsigned int offset = left_subtree.size();
79 local_root.iright = (
offset + right_subtree.size() ? 1 +
offset : 0);
82 cond_tree.begin() + 1 +
offset,
86 cond_node.ileft += 1 +
offset;
88 cond_node.iright += 1 +
offset;
97 std::unique_ptr<PtAssignmentEngine> pt_assign_engine_2016_;
98 std::unique_ptr<PtAssignmentEngine> pt_assign_engine_2017_;
100 pt_assign_engine_2016_ = std::make_unique<PtAssignmentEngine2016>();
101 pt_assign_engine_2017_ = std::make_unique<PtAssignmentEngine2017>();
103 if (ptLUTVersion <= 5)
104 pt_assign_engine_ = pt_assign_engine_2016_.get();
106 pt_assign_engine_ = pt_assign_engine_2017_.get();
111 std::array<emtf::Forest, 16> forests = pt_assign_engine_->
getForests();
114 auto pEMTFForest = std::make_unique<L1TMuonEndCapForest>();
116 pEMTFForest->forest_coll_.resize(0);
117 for (
unsigned int i = 0;
i < allowedModes.size();
i++) {
118 int mode = allowedModes[
i];
119 pEMTFForest->forest_map_[
mode] =
i;
125 for (
unsigned int j = 0;
j < forest.
size();
j++)
128 pEMTFForest->forest_coll_.push_back(
std::move(cond_forest));
Node * getRightDaughter()
ReturnType produce(const L1TMuonEndCapForestRcd &)
T getParameter(std::string const &) const
L1TMuonEndCapForestESProducer(const edm::ParameterSet &)
~L1TMuonEndCapForestESProducer() override
const std::array< emtf::Forest, 16 > & getForests(void) const
const std::vector< int > & getAllowedModes(void) const
L1TMuonEndCapForest::DTree traverse(emtf::Node *tree)
std::vector< DTree > DForest
std::unique_ptr< L1TMuonEndCapForest > ReturnType
std::vector< DTreeNode > DTree
#define DEFINE_FWK_EVENTSETUP_MODULE(type)
double getBoostWeight(void) const
Tree * getTree(unsigned int i)
void read(int pt_lut_version, const std::string &xml_dir)