File indexing completed on 2024-04-06 12:20:29
0001 #include <memory>
0002
0003 #include "L1Trigger/L1TGEM/interface/ME0TriggerBuilder.h"
0004
0005 ME0TriggerBuilder::ME0TriggerBuilder(const edm::ParameterSet& conf) {
0006 config_ = conf;
0007
0008 for (int endc = 0; endc < MAX_ENDCAPS; endc++) {
0009 for (int cham = 0; cham < MAX_CHAMBERS; cham++) {
0010 tmb_[endc][cham] = std::make_unique<ME0Motherboard>(endc, cham, config_);
0011 }
0012 }
0013 }
0014
0015 ME0TriggerBuilder::~ME0TriggerBuilder() {}
0016
0017 void ME0TriggerBuilder::build(const ME0PadDigiCollection* me0Pads, ME0TriggerDigiCollection& oc_trig) {
0018 for (int endc = 0; endc < 2; endc++) {
0019 for (int cham = ME0DetId::minChamberId; cham < ME0DetId::maxChamberId; cham++) {
0020 ME0Motherboard* tmb = tmb_[endc][cham].get();
0021 tmb->setME0Geometry(me0_g);
0022
0023
0024 const int region(endc == 0 ? -1 : 1);
0025 ME0DetId detid(region, 0, cham + 1, 0);
0026
0027
0028 if (tmb == nullptr || me0_g->chamber(detid) == nullptr)
0029 continue;
0030
0031 tmb->run(me0Pads);
0032
0033 const std::vector<ME0TriggerDigi>& trigV = tmb->readoutTriggers();
0034
0035 if (!trigV.empty()) {
0036 LogTrace("L1ME0Trigger") << "ME0TriggerBuilder got results in " << detid << std::endl
0037 << "Put " << trigV.size() << " Trigger digi" << ((trigV.size() > 1) ? "s " : " ")
0038 << "in collection\n";
0039 oc_trig.put(std::make_pair(trigV.begin(), trigV.end()), detid);
0040 }
0041 }
0042 }
0043 }