14 #define NUM_CSC_CHAMBERS 6 * 9 17 #define NUM_RPC_CHAMBERS 7 * 8 20 #define NUM_GEM_CHAMBERS 6 * 9 51 std::map<int, TriggerPrimitiveCollection>& selected_csc_map)
const {
52 TriggerPrimitiveCollection::const_iterator tp_it = muon_primitives.begin();
53 TriggerPrimitiveCollection::const_iterator tp_end = muon_primitives.end();
55 for (; tp_it != tp_end; ++tp_it) {
60 bool patchPattern =
true;
72 bool patchQuality =
true;
83 if (selected_csc >= 0) {
89 if (selected_csc_map[selected_csc].
size() < 2) {
90 selected_csc_map[selected_csc].push_back(new_tp);
92 edm::LogWarning(
"L1T") <<
"\n******************* EMTF EMULATOR: SUPER-BIZZARE CASE *******************";
93 edm::LogWarning(
"L1T") <<
"Found 3 CSC trigger primitives in the same chamber";
94 for (
int ii = 0;
ii < 3;
ii++) {
104 edm::LogWarning(
"L1T") <<
"************************* ONLY KEEP FIRST TWO *************************\n\n";
114 std::map<int, TriggerPrimitiveCollection>::iterator map_tp_it = selected_csc_map.begin();
115 std::map<int, TriggerPrimitiveCollection>::iterator map_tp_end = selected_csc_map.end();
117 for (; map_tp_it != map_tp_end; ++map_tp_it) {
118 int selected = map_tp_it->first;
121 if (tmp_primitives.size() >= 4) {
122 edm::LogWarning(
"L1T") <<
"EMTF found 4 or more CSC LCTs in one chamber: keeping only two";
123 tmp_primitives.erase(tmp_primitives.begin() + 4, tmp_primitives.end());
124 tmp_primitives.erase(tmp_primitives.begin() + 2);
125 tmp_primitives.erase(tmp_primitives.begin() + 1);
126 }
else if (tmp_primitives.size() == 3) {
127 edm::LogWarning(
"L1T") <<
"EMTF found 3 CSC LCTs in one chamber: keeping only two";
128 tmp_primitives.erase(tmp_primitives.begin() + 2);
130 if (not(tmp_primitives.size() <= 2))
132 edm::LogError(
"L1T") <<
"tmp_primitives.size() = " << tmp_primitives.size();
136 if (tmp_primitives.size() == 2) {
137 if ((tmp_primitives.at(0).getStrip() != tmp_primitives.at(1).getStrip()) &&
138 (tmp_primitives.at(0).getWire() != tmp_primitives.at(1).getWire())) {
146 tmp_primitives.insert(tmp_primitives.begin() + 1, tp1);
147 tmp_primitives.insert(tmp_primitives.begin() + 2, tp0);
150 const bool is_csc_me11 = (0 <= selected && selected <= 2) || (9 <= selected && selected <= 11) ||
155 if (tmp_primitives.size() == 2) {
163 tmp_primitives.insert(tmp_primitives.begin() + 1, tp1);
164 tmp_primitives.insert(tmp_primitives.begin() + 2, tp0);
166 if (not(tmp_primitives.size() == 1 || tmp_primitives.size() == 4)) {
167 edm::LogError(
"L1T") <<
"tmp_primitives.size() = " << tmp_primitives.size();
182 std::map<int, TriggerPrimitiveCollection>& selected_rpc_map)
const {
183 TriggerPrimitiveCollection::const_iterator tp_it = muon_primitives.begin();
184 TriggerPrimitiveCollection::const_iterator tp_end = muon_primitives.end();
186 for (; tp_it != tp_end; ++tp_it) {
189 if (selected_rpc >= 0) {
194 selected_rpc_map[selected_rpc].push_back(*tp_it);
206 bool apply_truncation =
true;
207 if (apply_truncation) {
210 bool operator()(
const value_type&
x)
const {
211 int sz = x.getRPCData().strip_hi - x.getRPCData().strip_low + 1;
216 std::map<int, TriggerPrimitiveCollection>::iterator map_tp_it = selected_rpc_map.begin();
217 std::map<int, TriggerPrimitiveCollection>::iterator map_tp_end = selected_rpc_map.end();
219 for (; map_tp_it != map_tp_end; ++map_tp_it) {
224 if (tmp_primitives.size() > 2 && tmp_primitives.at(0).getRPCData().isCPPF) {
225 edm::LogWarning(
"L1T") <<
"\n******************* EMTF EMULATOR: SUPER-BIZZARE CASE *******************";
226 edm::LogWarning(
"L1T") <<
"Found " << tmp_primitives.size() <<
" CPPF digis in the same chamber";
227 for (
const auto& tp : tmp_primitives)
229 edm::LogWarning(
"L1T") <<
"************************* ONLY KEEP FIRST TWO *************************\n\n";
233 if (tmp_primitives.size() > 2)
234 tmp_primitives.erase(tmp_primitives.begin() + 2, tmp_primitives.end());
237 if (!tmp_primitives.empty() && tmp_primitives.at(0).getRPCData().isCPPF)
241 tmp_primitives.erase(std::remove_if(tmp_primitives.begin(), tmp_primitives.end(), cluster_size_cut),
242 tmp_primitives.end());
248 bool map_rpc_to_csc =
true;
249 if (map_rpc_to_csc) {
250 std::map<int, TriggerPrimitiveCollection> tmp_selected_rpc_map;
252 std::map<int, TriggerPrimitiveCollection>::iterator map_tp_it = selected_rpc_map.begin();
253 std::map<int, TriggerPrimitiveCollection>::iterator map_tp_end = selected_rpc_map.end();
255 for (; map_tp_it != map_tp_end; ++map_tp_it) {
256 int selected = map_tp_it->first;
259 int rpc_sub = selected / 8;
260 int rpc_chm = selected % 8;
267 if (0 <= rpc_sub && rpc_sub < 3) {
269 pc_chamber = 3 + rpc_sub;
270 }
else if (3 <= rpc_sub && rpc_sub < 6) {
272 pc_chamber = 3 + (rpc_sub - 3);
274 }
else if (rpc_chm == 1) {
276 pc_chamber = 3 + rpc_sub;
277 }
else if (2 <= rpc_chm && rpc_chm <= 3) {
279 pc_chamber = 3 + rpc_sub;
280 }
else if (4 <= rpc_chm && rpc_chm <= 5) {
282 pc_chamber = 3 + rpc_sub;
289 }
else if (rpc_chm == 1) {
291 }
else if (2 <= rpc_chm && rpc_chm <= 3) {
293 }
else if (4 <= rpc_chm && rpc_chm <= 5) {
298 if (not(pc_station != -1 && pc_chamber != -1)) {
299 edm::LogError(
"L1T") <<
"pc_station = " << pc_station <<
", pc_chamber = " << pc_chamber;
303 selected = (pc_station * 9) + pc_chamber;
305 bool ignore_this_rpc_chm =
false;
306 if (rpc_chm == 3 || rpc_chm == 5) {
309 if (tmp_selected_rpc_map.find(selected) != tmp_selected_rpc_map.end())
310 ignore_this_rpc_chm =
true;
313 if (ignore_this_rpc_chm) {
315 for (
auto&& tp : tmp_primitives) {
316 tp.accessRPCData().valid = 0;
320 if (tmp_selected_rpc_map.find(selected) == tmp_selected_rpc_map.end()) {
321 tmp_selected_rpc_map[selected] = tmp_primitives;
323 tmp_selected_rpc_map[selected].insert(
324 tmp_selected_rpc_map[selected].
end(), tmp_primitives.begin(), tmp_primitives.end());
328 std::swap(selected_rpc_map, tmp_selected_rpc_map);
337 std::map<int, TriggerPrimitiveCollection>& selected_gem_map)
const {
338 TriggerPrimitiveCollection::const_iterator tp_it = muon_primitives.begin();
339 TriggerPrimitiveCollection::const_iterator tp_end = muon_primitives.end();
341 for (; tp_it != tp_end; ++tp_it) {
344 if (selected_gem >= 0) {
349 selected_gem_map[selected_gem].push_back(*tp_it);
354 bool apply_truncation =
true;
355 if (apply_truncation) {
358 bool operator()(
const value_type&
x)
const {
359 int sz = x.getGEMData().pad_hi - x.getGEMData().pad_low + 1;
364 std::map<int, TriggerPrimitiveCollection>::iterator map_tp_it = selected_gem_map.begin();
365 std::map<int, TriggerPrimitiveCollection>::iterator map_tp_end = selected_gem_map.end();
367 for (; map_tp_it != map_tp_end; ++map_tp_it) {
372 tmp_primitives.erase(std::remove_if(tmp_primitives.begin(), tmp_primitives.end(), cluster_size_cut),
373 tmp_primitives.end());
376 if (tmp_primitives.size() > 8)
377 tmp_primitives.erase(tmp_primitives.begin() + 8, tmp_primitives.end());
403 const std::map<int, TriggerPrimitiveCollection>& selected_rpc_map,
404 const std::map<int, TriggerPrimitiveCollection>& selected_gem_map,
405 std::map<int, TriggerPrimitiveCollection>& selected_prim_map)
const {
407 std::map<int, TriggerPrimitiveCollection>::const_iterator map_tp_it = selected_csc_map.begin();
408 std::map<int, TriggerPrimitiveCollection>::const_iterator map_tp_end = selected_csc_map.end();
410 for (; map_tp_it != map_tp_end; ++map_tp_it) {
411 int selected_csc = map_tp_it->first;
413 if (not(csc_primitives.size() <= 4))
415 edm::LogError(
"L1T") <<
"csc_primitives.size() = " << csc_primitives.size();
420 selected_prim_map[selected_csc] = csc_primitives;
424 map_tp_it = selected_gem_map.begin();
425 map_tp_end = selected_gem_map.end();
427 for (; map_tp_it != map_tp_end; ++map_tp_it) {
428 int selected_gem = map_tp_it->first;
430 if (gem_primitives.empty())
432 if (not(gem_primitives.size() <= 8))
434 edm::LogError(
"L1T") <<
"gem_primitives.size() = " << gem_primitives.size();
438 bool found = (selected_prim_map.find(selected_gem) != selected_prim_map.end());
441 selected_prim_map[selected_gem] = gem_primitives;
449 map_tp_it = selected_rpc_map.begin();
450 map_tp_end = selected_rpc_map.end();
452 for (; map_tp_it != map_tp_end; ++map_tp_it) {
453 int selected_rpc = map_tp_it->first;
455 if (rpc_primitives.empty())
457 if (not(rpc_primitives.size() <= 4))
459 edm::LogError(
"L1T") <<
"rpc_primitives.size() = " << rpc_primitives.size();
463 bool found = (selected_prim_map.find(selected_rpc) != selected_prim_map.end());
470 for (
const auto& tp : rpc_primitives) {
471 if (tp.getRPCData().valid != 0) {
472 tmp_rpc_primitives.push_back(tp);
475 if (not(tmp_rpc_primitives.size() <= 2))
477 edm::LogError(
"L1T") <<
"tmp_rpc_primitives.size() = " << tmp_rpc_primitives.size();
481 selected_prim_map[selected_rpc] = tmp_rpc_primitives;
496 const std::map<int, TriggerPrimitiveCollection>& selected_rpc_map,
497 const std::map<int, TriggerPrimitiveCollection>& selected_gem_map,
498 std::map<int, TriggerPrimitiveCollection>& selected_prim_map)
const {
500 merge_map_into_map(selected_csc_map, selected_prim_map);
503 merge_map_into_map(selected_gem_map, selected_prim_map);
506 merge_map_into_map(selected_rpc_map, selected_prim_map);
518 int tp_endcap = tp_detId.
endcap();
520 int tp_station = tp_detId.
station();
521 int tp_ring = tp_detId.
ring();
522 int tp_chamber = tp_detId.
chamber();
524 int tp_bx = tp_data.bx;
525 int tp_csc_ID = tp_data.cscID;
528 edm::LogWarning(
"L1T") <<
"EMTF CSC format error: tp_endcap = " << tp_endcap;
532 edm::LogWarning(
"L1T") <<
"EMTF CSC format error: tp_sector = " << tp_sector;
535 if (!(1 <= tp_station && tp_station <= 4)) {
536 edm::LogWarning(
"L1T") <<
"EMTF CSC format error: tp_station = " << tp_station;
539 if (!(1 <= tp_csc_ID && tp_csc_ID <= 9)) {
540 edm::LogWarning(
"L1T") <<
"EMTF CSC format error: tp_csc_ID = " << tp_csc_ID;
543 if (!(tp_data.valid ==
true)) {
544 edm::LogWarning(
"L1T") <<
"EMTF CSC format error: tp_data.valid = " << tp_data.valid;
547 if (!(tp_data.pattern <= 10)) {
548 edm::LogWarning(
"L1T") <<
"EMTF CSC format error: tp_data.pattern = " << tp_data.pattern;
551 if (!(tp_data.quality > 0)) {
552 edm::LogWarning(
"L1T") <<
"EMTF CSC format error: tp_data.quality = " << tp_data.quality;
558 if (tp_station == 1 && tp_ring == 4) {
561 }
else if (tp_station == 1 && tp_ring == 1) {
564 }
else if (tp_station == 1 && tp_ring == 2) {
567 }
else if (tp_station == 1 && tp_ring == 3) {
570 }
else if (tp_station == 2 && tp_ring == 1) {
573 }
else if (tp_station >= 3 && tp_ring == 1) {
576 }
else if (tp_station >= 2 && tp_ring == 2) {
581 if (!(tp_data.strip < max_strip)) {
582 edm::LogWarning(
"L1T") <<
"EMTF CSC format error in station " << tp_station <<
", ring " << tp_ring
583 <<
": tp_data.strip = " << tp_data.strip <<
" (max = " << max_strip - 1 <<
")" 587 if (!(tp_data.keywire < max_wire)) {
588 edm::LogWarning(
"L1T") <<
"EMTF CSC format error in station " << tp_station <<
", ring " << tp_ring
589 <<
": tp_data.keywire = " << tp_data.keywire <<
" (max = " << max_wire - 1 <<
")" 596 int tp_subsector = (tp_station != 1) ? 0 : ((tp_chamber % 6 > 2) ? 1 : 2);
601 selected =
get_index_csc(tp_subsector, tp_station, tp_csc_ID,
false);
603 selected =
get_index_csc(tp_subsector, tp_station, tp_csc_ID,
true);
615 int tp_endcap,
int tp_sector,
int tp_subsector,
int tp_station,
int tp_csc_ID)
const {
616 auto get_neighbor = [](
int sector) {
return (sector == 1) ? 6 : sector - 1; };
619 if ((
endcap_ == tp_endcap) && (get_neighbor(
sector_) == tp_sector)) {
620 if (tp_station == 1) {
621 if ((tp_subsector == 2) && (tp_csc_ID == 3 || tp_csc_ID == 6 || tp_csc_ID == 9))
625 if (tp_csc_ID == 3 || tp_csc_ID == 9)
635 return (
bx_ == tp_bx);
643 if (tp_station == 1) {
644 selected = (tp_subsector - 1) * 9 + (tp_csc_ID - 1);
646 selected = (tp_station)*9 + (tp_csc_ID - 1);
650 if (tp_station == 1) {
651 selected = (5) * 9 + (tp_csc_ID - 1) / 3;
653 selected = (5) * 9 + (tp_station)*2 - 1 + (tp_csc_ID - 1 < 3 ? 0 : 1);
668 int tp_region = tp_detId.
region();
669 int tp_endcap = (tp_region == -1) ? 2 : tp_region;
670 int tp_sector = tp_detId.
sector();
672 int tp_station = tp_detId.
station();
673 int tp_ring = tp_detId.
ring();
674 int tp_roll = tp_detId.
roll();
677 int tp_bx = tp_data.bx;
678 int tp_strip = tp_data.strip;
679 int tp_emtf_sect = tp_data.emtf_sector;
680 bool tp_CPPF = tp_data.isCPPF;
683 if (tp_CPPF && (tp_emtf_sect !=
sector_))
686 if (!(tp_region != 0)) {
687 edm::LogWarning(
"L1T") <<
"EMTF RPC format error: tp_region = " << tp_region;
691 edm::LogWarning(
"L1T") <<
"EMTF RPC format error: tp_endcap = " << tp_endcap;
695 edm::LogWarning(
"L1T") <<
"EMTF RPC format error: tp_sector = " << tp_sector;
698 if (!(1 <= tp_subsector && tp_subsector <= 6)) {
699 edm::LogWarning(
"L1T") <<
"EMTF RPC format error: tp_subsector = " << tp_subsector;
702 if (!(1 <= tp_station && tp_station <= 4)) {
703 edm::LogWarning(
"L1T") <<
"EMTF RPC format error: tp_station = " << tp_station;
706 if (!(2 <= tp_ring && tp_ring <= 3)) {
707 edm::LogWarning(
"L1T") <<
"EMTF RPC format error: tp_ring = " << tp_ring;
710 if (!(1 <= tp_roll && tp_roll <= 3)) {
711 edm::LogWarning(
"L1T") <<
"EMTF RPC format error: tp_roll = " << tp_roll;
714 if (!(tp_CPPF || (1 <= tp_strip && tp_strip <= 32))) {
715 edm::LogWarning(
"L1T") <<
"EMTF RPC format error: tp_data.strip = " << tp_data.strip;
718 if (!(tp_station > 2 || tp_ring != 3)) {
719 edm::LogWarning(
"L1T") <<
"EMTF RPC format error: tp_station = " << tp_station <<
", tp_ring = " << tp_ring;
725 if (
is_in_sector_rpc(tp_endcap, tp_station, tp_ring, tp_sector, tp_subsector)) {
726 selected =
get_index_rpc(tp_station, tp_ring, tp_subsector,
false);
728 selected =
get_index_rpc(tp_station, tp_ring, tp_subsector,
true);
736 int tp_endcap,
int tp_station,
int tp_ring,
int tp_sector,
int tp_subsector)
const {
739 auto get_csc_sector = [](
int tp_station,
int tp_ring,
int tp_sector,
int tp_subsector) {
741 int corr = (tp_subsector < 3) ? (tp_sector == 1 ? +5 : -1) : 0;
742 return tp_sector +
corr;
744 return ((
endcap_ == tp_endcap) && (
sector_ == get_csc_sector(tp_station, tp_ring, tp_sector, tp_subsector)));
748 int tp_endcap,
int tp_station,
int tp_ring,
int tp_sector,
int tp_subsector)
const {
749 auto get_csc_neighbor_subsector = [](
int tp_station,
int tp_ring) {
754 (tp_subsector == get_csc_neighbor_subsector(tp_station, tp_ring)));
759 return (
bx_ == tp_bx);
778 rpc_sub = ((tp_subsector + 3) % 6);
783 if (tp_station <= 2) {
784 rpc_chm = (tp_station - 1);
786 rpc_chm = 2 + (tp_station - 3) * 2 + (tp_ring - 2);
789 if (not(rpc_sub != -1 && rpc_chm != -1)) {
790 edm::LogError(
"L1T") <<
"rpc_sub = " << rpc_sub <<
", rpc_chm = " << rpc_chm;
794 selected = (rpc_sub * 8) + rpc_chm;
807 int tp_region = tp_detId.
region();
808 int tp_endcap = (tp_region == -1) ? 2 : tp_region;
809 int tp_station = tp_detId.
station();
810 int tp_ring = tp_detId.
ring();
811 int tp_roll = tp_detId.
roll();
812 int tp_layer = tp_detId.
layer();
813 int tp_chamber = tp_detId.
chamber();
815 int tp_bx = tp_data.
bx;
816 int tp_pad = tp_data.
pad;
822 if (station > 1 && ring > 1) {
823 result = ((
static_cast<unsigned>(
chamber - 3) & 0x7f) / 6) + 1;
824 }
else if (station == 1 && ring != 4) {
825 result = ((
static_cast<unsigned>(
chamber - 3) & 0x7f) / 6) + 1;
827 result = ((
static_cast<unsigned>(
chamber - 2) & 0x1f) / 3) + 1;
852 result = (
chamber + 1) % 3 + 1;
854 result = (
chamber + 3) % 6 + 4;
860 int tp_sector = get_trigger_sector(tp_ring, tp_station, tp_chamber);
861 int tp_csc_ID = get_trigger_csc_ID(tp_ring, tp_station, tp_chamber);
865 int tp_subsector = (tp_station != 1) ? 0 : ((tp_chamber % 6 > 2) ? 1 : 2);
868 edm::LogWarning(
"L1T") <<
"EMTF GEM format error: tp_endcap = " << tp_endcap;
872 edm::LogWarning(
"L1T") <<
"EMTF GEM format error: tp_sector = " << tp_sector;
875 if (!(1 <= tp_station && tp_station <= 2)) {
876 edm::LogWarning(
"L1T") <<
"EMTF GEM format error: tp_station = " << tp_station;
879 if (!(1 <= tp_ring && tp_ring <= 1)) {
880 edm::LogWarning(
"L1T") <<
"EMTF GEM format error: tp_ring = " << tp_ring;
883 if (!(1 <= tp_csc_ID && tp_csc_ID <= 9)) {
884 edm::LogWarning(
"L1T") <<
"EMTF GEM format error: tp_csc_ID = " << tp_csc_ID;
887 if (!(tp_station == 1 && 1 <= tp_roll && tp_roll <= 8) || (tp_station != 1)) {
888 edm::LogWarning(
"L1T") <<
"EMTF GEM format error: tp_station = " << tp_station <<
", tp_roll = " << tp_roll;
891 if (!(tp_station == 2 && 1 <= tp_roll && tp_roll <= 12) || (tp_station != 2)) {
892 edm::LogWarning(
"L1T") <<
"EMTF GEM format error: tp_station = " << tp_station <<
", tp_roll = " << tp_roll;
895 if (!(1 <= tp_layer && tp_layer <= 2)) {
896 edm::LogWarning(
"L1T") <<
"EMTF GEM format error: tp_layer = " << tp_layer;
899 if (!((tp_station == 1 && 1 <= tp_pad && tp_pad <= 192) || (tp_station != 1))) {
900 edm::LogWarning(
"L1T") <<
"EMTF GEM format error: tp_station = " << tp_station <<
", tp_pad = " << tp_pad;
903 if (!((tp_station == 2 && 1 <= tp_pad && tp_pad <= 192) || (tp_station != 2))) {
904 edm::LogWarning(
"L1T") <<
"EMTF GEM format error: tp_station = " << tp_station <<
", tp_pad = " << tp_pad;
911 selected =
get_index_gem(tp_subsector, tp_station, tp_csc_ID,
false);
913 selected =
get_index_gem(tp_subsector, tp_station, tp_csc_ID,
true);
926 int tp_endcap,
int tp_sector,
int tp_subsector,
int tp_station,
int tp_csc_ID)
const {
933 return (
bx_ == tp_bx);
938 return get_index_csc(tp_subsector, tp_station, tp_csc_ID, is_neighbor);
const subsystem_type subsystem() const
bool is_in_sector_csc(int tp_endcap, int tp_sector) const
const GEMData getGEMData() const
int get_index_gem(int tp_subsector, int tp_station, int tp_csc_ID, bool is_neighbor) const
const CSCData getCSCData() const
int select_gem(const TriggerPrimitive &muon_primitive) const
bool is_in_sector_gem(int tp_endcap, int tp_sector) const
void merge_no_truncate(const std::map< int, TriggerPrimitiveCollection > &selected_csc_map, const std::map< int, TriggerPrimitiveCollection > &selected_rpc_map, const std::map< int, TriggerPrimitiveCollection > &selected_gem_map, std::map< int, TriggerPrimitiveCollection > &selected_prim_map) const
const RPCData getRPCData() const
void configure(int verbose, int endcap, int sector, int bx, int bxShiftCSC, int bxShiftRPC, int bxShiftGEM, bool includeNeighbor, bool duplicateTheta, bool bugME11Dupes)
bool is_in_sector_rpc(int tp_endcap, int tp_station, int tp_ring, int tp_sector, int tp_subsector) const
const int getStrip() const
Container::value_type value_type
bool is_in_bx_gem(int tp_bx) const
int region() const
The identifiers.
void swap(edm::DataFrameContainer &lhs, edm::DataFrameContainer &rhs)
CSCData & accessCSCData()
int select_rpc(const TriggerPrimitive &muon_primitive) const
int select_csc(const TriggerPrimitive &muon_primitive) const
void process(T tag, const TriggerPrimitiveCollection &muon_primitives, std::map< int, TriggerPrimitiveCollection > &selected_prim_map) const
bool is_in_neighbor_sector_csc(int tp_endcap, int tp_sector, int tp_subsector, int tp_station, int tp_csc_ID) const
bool is_in_bx_csc(int tp_bx) const
int get_index_csc(int tp_subsector, int tp_station, int tp_csc_ID, bool is_neighbor) const
void merge(const std::map< int, TriggerPrimitiveCollection > &selected_csc_map, const std::map< int, TriggerPrimitiveCollection > &selected_rpc_map, const std::map< int, TriggerPrimitiveCollection > &selected_gem_map, std::map< int, TriggerPrimitiveCollection > &selected_prim_map) const
bool is_in_bx_rpc(int tp_bx) const
int triggerSector() const
int sector() const
Sector id: the group of chambers at same phi (and increasing r)
int subsector() const
SubSector id : some sectors are divided along the phi direction in subsectors (from 1 to 4 in Barrel...
const int getWire() const
int get_index_rpc(int tp_station, int tp_ring, int tp_subsector, bool is_neighbor) const
EMTFGEMDetId construct_EMTFGEMDetId(const L1TMuon::TriggerPrimitive &tp)
Int_t triggerSector(Int_t station, Int_t ring, Int_t chamber) const
L1TMuon::TriggerPrimitiveCollection TriggerPrimitiveCollection
bool is_in_neighbor_sector_rpc(int tp_endcap, int tp_station, int tp_ring, int tp_sector, int tp_subsector) const
bool is_in_neighbor_sector_gem(int tp_endcap, int tp_sector, int tp_subsector, int tp_station, int tp_csc_ID) const
int region() const
Region id: 0 for Barrel, +/-1 For +/- Endcap.