13 using namespace L1TMuon;
16 :
SubsystemCollector(ps), bx_min(ps.getParameter<int>(
"BX_min")), bx_max(ps.getParameter<int>(
"BX_max")) {
19 _bxc = std::make_unique<DTBunchCrossingCleaner>(bxccfg);
33 for (
int wheel = -2; wheel <= 2; ++wheel) {
35 for (
int sector = 0; sector <= 11; ++sector) {
38 std::unique_ptr<const L1MuDTChambPhDigi> phi_segm_1(phiDigis->chPhiSegm1(wheel,
station, sector,
bx));
39 std::unique_ptr<const L1MuDTChambPhDigi> phi_segm_2(phiDigis->chPhiSegm2(wheel,
station, sector,
bx));
40 std::unique_ptr<const L1MuDTChambThDigi> theta_segm(thetaDigis->chThetaSegm(wheel,
station, sector,
bx));
42 int bti_group_1 = -1, bti_group_2 = -1;
49 if (phi_segm_1 && bti_group_1 != -1) {
50 chamb_list.push_back(
processDigis(*phi_segm_1, *theta_segm, bti_group_1));
51 }
else if (phi_segm_1 && bti_group_1 == -1) {
53 }
else if (!phi_segm_1 && bti_group_1 != -1) {
54 chamb_list.push_back(
processDigis(*theta_segm, bti_group_1));
57 if (phi_segm_2 && bti_group_2 != -1) {
58 chamb_list.push_back(
processDigis(*phi_segm_2, *theta_segm, bti_group_2));
59 }
else if (phi_segm_2 && bti_group_2 == -1) {
61 }
else if (!phi_segm_2 && bti_group_2 != -1) {
62 chamb_list.push_back(
processDigis(*phi_segm_2, bti_group_2));
70 temp =
_bxc->clean(chamb_list);
71 cleaned.insert(cleaned.end(), temp.begin(), temp.end());
73 cleaned.insert(cleaned.end(), chamb_list.begin(), chamb_list.end());
78 out.insert(out.end(), cleaned.begin(), cleaned.end());
93 const int bti_group)
const {
101 for (
int i = 0;
i < 7; ++
i) {
void extractPrimitives(const edm::Event &, const edm::EventSetup &, std::vector< TriggerPrimitive > &) const override
DTCollector(const edm::ParameterSet &)
std::unique_ptr< DTBunchCrossingCleaner > _bxc
int findBTIGroupForThetaDigi(const L1MuDTChambThDigi &, const int position) const
TriggerPrimitive processDigis(const L1MuDTChambPhDigi &, const int &segment_number) const
int position(const int i) const
std::vector< TriggerPrimitive > TriggerPrimitiveCollection
L1TMuon::TriggerPrimitive TriggerPrimitive
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
ParameterSet const & getParameterSet(std::string const &) const
T getParameter(std::string const &) const
#define DEFINE_EDM_PLUGIN(factory, type, name)