18 int bxShiftCSC,
int bxShiftRPC,
int bxShiftGEM,
19 const std::vector<int>& zoneBoundaries,
int zoneOverlap,
20 bool duplicateTheta,
bool fixZonePhi,
bool useNewZones,
bool fixME11Edges,
23 if (not(tp_geom !=
nullptr))
25 if (not(lut !=
nullptr))
50 const std::map<int, TriggerPrimitiveCollection>& selected_prim_map,
53 std::map<int, TriggerPrimitiveCollection>::const_iterator map_tp_it = selected_prim_map.begin();
54 std::map<int, TriggerPrimitiveCollection>::const_iterator map_tp_end = selected_prim_map.end();
56 for (; map_tp_it != map_tp_end; ++map_tp_it) {
58 int selected = map_tp_it->first;
61 int pc_station = selected / 9;
62 int pc_chamber = selected % 9;
65 TriggerPrimitiveCollection::const_iterator tp_it = map_tp_it->second.begin();
66 TriggerPrimitiveCollection::const_iterator tp_end = map_tp_it->second.end();
68 for (; tp_it != tp_end; ++tp_it) {
71 convert_csc(pc_sector, pc_station, pc_chamber, pc_segment, *tp_it, conv_hit);
73 convert_rpc(pc_sector, pc_station, pc_chamber, pc_segment, *tp_it, conv_hit);
75 convert_gem(pc_sector, pc_station, pc_chamber, pc_segment, *tp_it, conv_hit);
77 if (not(
false &&
"Incorrect subsystem type"))
78 {
edm::LogError(
"L1T") <<
"Incorrect subsystem type";
return; }
80 conv_hits.push_back(conv_hit);
90 int pc_sector,
int pc_station,
int pc_chamber,
int pc_segment,
97 int tp_endcap = tp_detId.
endcap();
99 int tp_station = tp_detId.
station();
100 int tp_ring = tp_detId.
ring();
101 int tp_chamber = tp_detId.
chamber();
103 int tp_bx = tp_data.bx;
104 int tp_csc_ID = tp_data.cscID;
108 int tp_subsector = (tp_station != 1) ? 0 : ((tp_chamber % 6 > 2) ? 1 : 2);
110 const bool is_neighbor = (pc_station == 5);
112 int csc_nID = tp_csc_ID;
117 csc_nID = (pc_chamber < 3) ? (pc_chamber + 12) : ( ((pc_chamber - 1) % 2) + 9);
120 if (tp_station == 1) {
121 if (not(tp_subsector == 2))
122 {
edm::LogError(
"L1T") <<
"tp_subsector = " << tp_subsector;
return; }
129 conv_hit.
set_endcap ( (tp_endcap == 2) ? -1 : tp_endcap );
158 conv_hit.
set_wire ( tp_data.keywire );
176 double glob_eta = gp.
eta();
177 double glob_rho = gp.
perp();
178 double glob_z = gp.
z();
189 const bool is_neighbor = conv_hit.
Neighbor();
196 const int fw_endcap = (
endcap_-1);
197 const int fw_sector = (
sector_-1);
198 const int fw_station = (conv_hit.
Station() == 1) ? (is_neighbor ? 0 : (conv_hit.
Subsector()-1)) : conv_hit.
Station();
199 const int fw_cscid = (conv_hit.
CSC_nID()-1);
200 const int fw_strip = conv_hit.
Strip();
201 const int fw_wire = conv_hit.
Wire();
210 const bool is_me11a = (conv_hit.
Station() == 1 && conv_hit.
Ring() == 4);
211 const bool is_me11b = (conv_hit.
Station() == 1 && conv_hit.
Ring() == 1);
212 const bool is_me13 = (conv_hit.
Station() == 1 && conv_hit.
Ring() == 3);
216 bool ph_reverse =
false;
217 if ((fw_endcap == 0 && fw_station >= 3) || (fw_endcap == 1 && fw_station < 3))
223 if (fw_station <= 1 && ((fw_cscid >= 6 && fw_cscid <= 8) || fw_cscid == 14))
225 else if (fw_station >= 2 && (fw_cscid <= 2 || fw_cscid == 9))
232 bool is_10degree =
false;
235 (fw_station >= 2 && ((fw_cscid >= 3 && fw_cscid <= 8) || fw_cscid == 10))
243 int pc_lut_id = pc_chamber;
244 if (pc_station == 0) {
245 pc_lut_id = is_me11a ? pc_lut_id + 9 : pc_lut_id;
246 }
else if (pc_station == 1) {
248 pc_lut_id = is_me11a ? pc_lut_id + 9 : pc_lut_id;
249 }
else if (pc_station == 2) {
251 }
else if (pc_station == 3) {
253 }
else if (pc_station == 4) {
255 }
else if (pc_station == 5 && pc_chamber < 3) {
256 pc_lut_id = is_me11a ? pc_lut_id + 15 : pc_lut_id + 12;
257 }
else if (pc_station == 5 && pc_chamber < 5) {
258 pc_lut_id += 28 + 9 - 3;
259 }
else if (pc_station == 5 && pc_chamber < 7) {
260 pc_lut_id += 39 + 9 - 5;
261 }
else if (pc_station == 5 && pc_chamber < 9) {
262 pc_lut_id += 50 + 9 - 7;
264 if (not(pc_lut_id < 61))
265 {
edm::LogError(
"L1T") <<
"pc_lut_id = " << pc_lut_id;
return; }
268 std::cout <<
"pc_station: " << pc_station <<
" pc_chamber: " << pc_chamber
269 <<
" fw_station: " << fw_station <<
" fw_cscid: " << fw_cscid
270 <<
" lut_id: " << pc_lut_id
271 <<
" ph_init: " <<
lut().
get_ph_init(fw_endcap, fw_sector, pc_lut_id)
272 <<
" ph_disp: " <<
lut().
get_ph_disp(fw_endcap, fw_sector, pc_lut_id)
273 <<
" th_init: " <<
lut().
get_th_init(fw_endcap, fw_sector, pc_lut_id)
274 <<
" th_disp: " <<
lut().
get_th_disp(fw_endcap, fw_sector, pc_lut_id)
283 int eighth_strip = 0;
290 bool bugStrip0BeforeFW48200 =
false;
291 if (bugStrip0BeforeFW48200 ==
false && fw_strip == 0 && clct_pat_corr_sign == -1)
295 eighth_strip = fw_strip << 2;
296 eighth_strip += clct_pat_corr_sign * (clct_pat_corr >> 1);
298 eighth_strip = fw_strip << 3;
299 eighth_strip += clct_pat_corr_sign * (clct_pat_corr >> 0);
301 if (not(bugStrip0BeforeFW48200 ==
true || eighth_strip >= 0))
302 {
edm::LogError(
"L1T") <<
"bugStrip0BeforeFW48200 = " << bugStrip0BeforeFW48200
303 <<
", eighth_strip = " << eighth_strip;
return; }
317 int ph_tmp = (eighth_strip * factor) >> 10;
318 int ph_tmp_sign = (ph_reverse == 0) ? 1 : -1;
321 fph = fph + ph_tmp_sign * ph_tmp;
324 ph_hit = (ph_hit >> 1) + ph_tmp_sign * (ph_tmp >> 5) + ph_coverage;
329 ph_hit_fixed = ph_hit_fixed + ((fph + (1<<4)) >> 5);
332 ph_hit = ph_hit_fixed;
339 zone_hit_fixed += ph_hit_fixed;
344 zone_hit = zone_hit_fixed;
346 if (not(0 <= fph && fph < 5000))
348 if (not(0 <= zone_hit && zone_hit < 192))
349 {
edm::LogError(
"L1T") <<
"zone_hit = " << zone_hit;
return; }
355 int pc_wire_id = (fw_wire & 0x7f);
356 int th_tmp =
lut().
get_th_lut(fw_endcap, fw_sector, pc_lut_id, pc_wire_id);
360 int pc_wire_strip_id = (((fw_wire >> 4) & 0x3) << 5) | ((eighth_strip >> 4) & 0x1f);
365 bool bugME11DupesBeforeFW47114 =
false;
366 if (bugME11DupesBeforeFW47114) {
367 if (pc_segment == 1) {
368 pc_wire_strip_id = (((fw_wire >> 4) & 0x3) << 5) | (0);
373 int th_corr =
lut().
get_th_corr_lut(fw_endcap, fw_sector, pc_lut_id, pc_wire_strip_id);
374 int th_corr_sign = (ph_reverse == 0) ? 1 : -1;
376 th_tmp = th_tmp + th_corr_sign * th_corr;
379 const int th_negative = 50;
380 const int th_coverage = 45;
381 if (th_tmp > th_negative || th_tmp < 0 || fw_wire == 0)
383 if (th_tmp > th_coverage)
384 th_tmp = th_coverage;
387 int pc_wire_strip_id = (((fw_wire >> 4) & 0x3) << 5) | ((eighth_strip >> 4) & 0x1f);
389 pc_wire_strip_id = (((fw_wire >> 4) & 0x3) << 5) | ((((eighth_strip*341)>>8) >> 4) & 0x1f);
390 int th_corr =
lut().
get_th_corr_lut(fw_endcap, fw_sector, pc_lut_id, pc_wire_strip_id);
392 th_tmp = th_tmp + th_corr;
395 const int th_coverage = 46;
398 if (th_tmp > th_coverage)
399 th_tmp = th_coverage;
407 if (not(0 <= th && th < 128))
409 th = (th == 0) ? 1 : th;
416 int phzvl =
get_phzvl(conv_hit, zone_code);
419 int fs_segment =
get_fs_segment(conv_hit, fw_station, fw_cscid, pc_segment);
421 int bt_station =
get_bt_station(conv_hit, fw_station, fw_cscid, pc_segment);
422 int bt_segment =
get_bt_segment(conv_hit, fw_station, fw_cscid, pc_segment);
450 int pc_sector,
int pc_station,
int pc_chamber,
int pc_segment,
457 int tp_region = tp_detId.
region();
458 int tp_endcap = (tp_region == -1) ? 2 : tp_region;
459 int tp_sector = tp_detId.
sector();
461 int tp_station = tp_detId.
station();
462 int tp_ring = tp_detId.
ring();
463 int tp_roll = tp_detId.
roll();
466 int tp_bx = tp_data.bx;
467 int tp_strip = ((tp_data.strip_low + tp_data.strip_hi) / 2);
468 int tp_valid = tp_data.valid;
470 const bool is_neighbor = (pc_station == 5);
473 int csc_tp_chamber = (tp_sector - 1)*6 + tp_subsector;
474 int csc_tp_sector = (tp_subsector > 2) ? tp_sector : ((tp_sector + 4) % 6) + 1;
475 int csc_tp_subsector = ((tp_subsector + 3) % 6) + 1;
480 conv_hit.
set_endcap ( (tp_endcap == 2) ? -1 : tp_endcap );
521 bool use_fullsim_coords =
true;
523 if (tp_data.isCPPF) {
527 else if (use_fullsim_coords) {
531 double glob_eta = gp.
eta();
532 double glob_rho = gp.
perp();
533 double glob_z = gp.
z();
545 if (not(0 <= fph && fph < 1250))
547 if (not(0 <= th && th < 32))
549 if (not(th != 0b11111))
553 th = (th == 0) ? 1 : th;
572 const bool is_neighbor = conv_hit.
Neighbor();
580 const int fw_station = (conv_hit.
Station() == 1) ? (is_neighbor ? 0 : pc_station) : conv_hit.
Station();
582 int fw_cscid = pc_chamber;
589 csc_nID = (pc_chamber < 3) ? (pc_chamber + 12) : ( ((pc_chamber - 1) % 2) + 9);
592 fw_cscid = csc_nID - 1;
595 int fph = conv_hit.
Phi_fp();
600 if (not(1 <= halfstrip && halfstrip <= 64))
601 {
edm::LogError(
"L1T") <<
"halfstrip = " << halfstrip;
return; }
608 if (not(0 <= fph && fph < 1250))
610 if (not(0 <= th && th < 32))
612 if (not(th != 0b11111))
616 th = (th == 0) ? 1 : th;
620 std::cout <<
"RPC hit pc_station: " << pc_station <<
" pc_chamber: " << pc_chamber
621 <<
" fw_station: " << fw_station <<
" fw_cscid: " << fw_cscid
622 <<
" tp_station: " << conv_hit.
Station() <<
" tp_ring: " << conv_hit.
Ring()
624 <<
" fph: " << fph <<
" th: " << th
631 int zone_hit = ((fph + (1<<4)) >> 5);
636 int fs_segment =
get_fs_segment(conv_hit, fw_station, fw_cscid, pc_segment);
638 int bt_station =
get_bt_station(conv_hit, fw_station, fw_cscid, pc_segment);
639 int bt_segment =
get_bt_segment(conv_hit, fw_station, fw_cscid, pc_segment);
667 int pc_sector,
int pc_station,
int pc_chamber,
int pc_segment,
674 int tp_region = tp_detId.
region();
675 int tp_endcap = (tp_region == -1) ? 2 : tp_region;
676 int tp_station = tp_detId.
station();
677 int tp_ring = tp_detId.
ring();
678 int tp_roll = tp_detId.
roll();
680 int tp_chamber = tp_detId.
chamber();
682 int tp_bx = tp_data.
bx;
689 if( station > 1 && ring > 1 ) {
690 result = ((
static_cast<unsigned>(
chamber-3) & 0x7f) / 6) + 1;
693 result = (station != 1) ? ((static_cast<unsigned>(
chamber-2) & 0x1f) / 3) + 1 :
694 ((
static_cast<unsigned>(
chamber-3) & 0x7f) / 6) + 1;
696 return (result <= 6) ? result : 6;
727 int tp_sector = get_trigger_sector(tp_ring, tp_station, tp_chamber);
728 int tp_csc_ID = get_trigger_csc_ID(tp_ring, tp_station, tp_chamber);
732 int tp_subsector = (tp_station != 1) ? 0 : ((tp_chamber%6 > 2) ? 1 : 2);
734 const bool is_neighbor = (pc_station == 5);
736 int csc_nID = tp_csc_ID;
741 csc_nID = (pc_chamber < 3) ? (pc_chamber + 12) : ( ((pc_chamber - 1) % 2) + 9);
744 if (tp_station == 1) {
745 if (not(tp_subsector == 2))
746 {
edm::LogError(
"L1T") <<
"tp_subsector = " << tp_subsector;
return; }
753 conv_hit.
set_endcap ( (tp_endcap == 2) ? -1 : tp_endcap );
795 bool use_fullsim_coords =
true;
796 if (use_fullsim_coords) {
800 double glob_eta = gp.
eta();
801 double glob_rho = gp.
perp();
802 double glob_z = gp.
z();
809 if (not(0 <= fph && fph < 5000))
811 if (not(0 <= th && th < 128))
813 th = (th == 0) ? 1 : th;
832 const bool is_neighbor = conv_hit.
Neighbor();
840 const int fw_station = (conv_hit.
Station() == 1) ? (is_neighbor ? 0 : (conv_hit.
Subsector()-1)) : conv_hit.
Station();
841 const int fw_cscid = (conv_hit.
CSC_nID()-1);
843 int fph = conv_hit.
Phi_fp();
847 std::cout <<
"GEM hit pc_station: " << pc_station <<
" pc_chamber: " << pc_chamber
848 <<
" fw_station: " << fw_station <<
" fw_cscid: " << fw_cscid
849 <<
" tp_station: " << conv_hit.
Station() <<
" tp_ring: " << conv_hit.
Ring()
850 <<
" tp_sector: " << conv_hit.
Sector() <<
" tp_subsector: " << conv_hit.
Subsector()
851 <<
" fph: " << fph <<
" th: " << th
858 int zone_hit = ((fph + (1<<4)) >> 5);
863 int fs_segment =
get_fs_segment(conv_hit, fw_station, fw_cscid, pc_segment);
865 int bt_station =
get_bt_station(conv_hit, fw_station, fw_cscid, pc_segment);
866 int bt_segment =
get_bt_segment(conv_hit, fw_station, fw_cscid, pc_segment);
899 bool is_me13 = (is_csc && conv_hit.
Station() == 1 && conv_hit.
Ring() == 3);
903 if (zone_code_tmp & (1<<izone)) {
904 bool no_use_bnd1 = ((izone==0) || ((zone_code_tmp & (1<<(izone-1))) == 0) || is_me13);
905 bool no_use_bnd2 = (((zone_code_tmp & (1<<(izone+1))) == 0) || is_me13);
911 zone_code |= (1<<izone);
915 if (not(zone_code > 0))
916 {
edm::LogError(
"L1T") <<
"zone_code = " << zone_code;
return 0; }
925 if (conv_hit.
Ring() == 1 || conv_hit.
Ring() == 4) {
926 phzvl = (zone_code >> 0);
927 }
else if (conv_hit.
Ring() == 2) {
929 phzvl = (zone_code >> 1);
931 phzvl = (zone_code >> 2);
933 }
else if (conv_hit.
Ring() == 3) {
934 phzvl = (zone_code >> 3);
940 static const unsigned int zone_code_table[4][3] = {
941 {0b0011, 0b0100, 0b1000},
942 {0b0011, 0b1100, 0b1100},
943 {0b0001, 0b1110, 0b1110},
944 {0b0001, 0b0110, 0b0110}
947 static const unsigned int zone_code_table_new[4][3] = {
948 {0b0011, 0b0110, 0b1000},
949 {0b0011, 0b1110, 0b1110},
950 {0b0011, 0b1110, 0b1110},
951 {0b0001, 0b0110, 0b0110}
954 unsigned int istation = (conv_hit.
Station()-1);
955 unsigned int iring = (conv_hit.
Ring() == 4) ? 0 : (conv_hit.
Ring()-1);
956 if (not(istation < 4 && iring < 3))
957 {
edm::LogError(
"L1T") <<
"istation = " << istation <<
", iring = " << iring;
return 0; }
958 unsigned int zone_code =
useNewZones_ ? zone_code_table_new[istation][iring] : zone_code_table[istation][iring];
967 int fs_segment = pc_segment % 2;
976 const bool is_neighbor = conv_hit.
Neighbor();
977 if (fw_station <= 1) {
978 int n = fw_cscid % 3;
979 fs_chamber = is_neighbor ? 0 : ((fw_station == 0) ? 1+n : 4+n);
981 int n = (conv_hit.
Ring() == 1) ? fw_cscid : (fw_cscid-3);
982 fs_chamber = is_neighbor ? 0 : 1+
n;
985 if (not(fs_history == 0 && (0 <= fs_chamber && fs_chamber < 7) && (0 <= fs_segment && fs_segment < 2)))
986 {
edm::LogError(
"L1T") <<
"fs_history = " << fs_history <<
", fs_chamber = " << fs_chamber
987 <<
", fs_segment = " << fs_segment;
return 0; }
991 fs_segment = ((fs_history & 0x3)<<4) | ((fs_chamber & 0x7)<<1) | (fs_segment & 0x1);
996 int bt_station = fw_station;
1004 int bt_chamber = -1;
1005 int bt_segment = pc_segment % 2;
1015 bt_chamber = fw_cscid+1;
1016 if (fw_station == 0 && bt_chamber >= 13)
1019 if (not(bt_history == 0 && (0 <= bt_chamber && bt_chamber < 13) && (0 <= bt_segment && bt_segment < 2)))
1020 {
edm::LogError(
"L1T") <<
"bt_history = " << bt_history <<
", bt_chamber = " << bt_chamber
1021 <<
", bt_segment = " << bt_segment;
return 0; }
1026 bt_segment = ((bt_history & 0x3)<<5) | ((bt_chamber & 0xf)<<1) | (bt_segment & 0x1);
void set_subsector_RPC(int bits)
void set_phi_glob(float val)
void set_theta_sim(float val)
void set_is_GEM(int bits)
void set_neighbor(int bits)
void set_rho_sim(float val)
int get_bt_station(const EMTFHit &conv_hit, int fw_station, int fw_cscid, int pc_segment) const
void set_csc_nID(int bits)
void set_pc_station(int bits)
void set_phi_sim(float val)
int get_zone_code(const EMTFHit &conv_hit, int th) const
void convert_gem_details(EMTFHit &conv_hit) const
void configure(const GeometryTranslator *tp_geom, const SectorProcessorLUT *lut, int verbose, int endcap, int sector, int bx, int bxShiftCSC, int bxShiftRPC, int bxShiftGEM, const std::vector< int > &zoneBoundaries, int zoneOverlap, bool duplicateTheta, bool fixZonePhi, bool useNewZones, bool fixME11Edges, bool bugME11Dupes)
const GEMData getGEMData() const
const SectorProcessorLUT * lut_
void set_station(int bits)
void set_ph_hit(int bits)
void set_theta(float val)
Geom::Phi< T > phi() const
void set_bt_station(int bits)
void set_eta_sim(float val)
void convert_gem(int pc_sector, int pc_station, int pc_chamber, int pc_segment, const TriggerPrimitive &muon_primitive, EMTFHit &conv_hit) const
double calc_phi_loc_deg(int bits)
void set_sector_idx(int bits)
void convert_rpc(int pc_sector, int pc_station, int pc_chamber, int pc_segment, const TriggerPrimitive &muon_primitive, EMTFHit &conv_hit) const
int calc_phi_loc_int(double glob, int sector)
void set_sync_err(int bits)
uint32_t get_ph_patt_corr_sign(int pattern) const
const CSCData getCSCData() const
int get_bt_segment(const EMTFHit &conv_hit, int fw_station, int fw_cscid, int pc_segment) const
void set_theta_fp(int bits)
void set_endcap(int bits)
int calc_theta_int_rpc(double theta, int endcap)
const RPCData getRPCData() const
Geom::Theta< T > theta() const
void SetRPCDetId(const RPCDetId &id)
uint32_t get_th_init(int fw_endcap, int fw_sector, int pc_lut_id) const
int get_fs_segment(const EMTFHit &conv_hit, int fw_station, int fw_cscid, int pc_segment) const
void set_strip_low(int bits)
double calc_theta_deg_from_int(int theta_int)
void set_bt_segment(int bits)
int region() const
The identifiers.
uint32_t get_cppf_th_lut(int rpc_region, int rpc_sector, int rpc_station, int rpc_ring, int rpc_subsector, int rpc_roll) const
void set_is_CSC(int bits)
void set_pattern(int bits)
int Subsector_RPC() const
void set_csc_ID(int bits)
void set_pc_chamber(int bits)
void set_strip_hi(int bits)
int calc_phi_loc_int_rpc(double glob, int sector)
void convert_csc_details(EMTFHit &conv_hit) const
l1t::EMTFHitCollection EMTFHitCollection
double calc_phi_glob_deg(double loc, int sector)
void set_phi_loc(float val)
uint32_t get_th_disp(int fw_endcap, int fw_sector, int pc_lut_id) const
int calc_theta_int(double theta, int endcap)
void set_pc_segment(int bits)
uint32_t get_ph_disp(int fw_endcap, int fw_sector, int pc_lut_id) const
void set_is_RPC(int bits)
void SetCSCDetId(const CSCDetId &id)
void set_fs_segment(int bits)
void set_sector_RPC(int bits)
std::vector< int > zoneBoundaries_
void set_sector(int bits)
void process(const std::map< int, TriggerPrimitiveCollection > &selected_prim_map, EMTFHitCollection &conv_hits) const
void set_z_sim(float val)
int triggerSector() const
double calc_eta_from_theta_deg(double theta_deg, int endcap)
uint32_t get_ph_zone_offset(int pc_station, int pc_chamber) const
int sector() const
Sector id: the group of chambers at same phi (and increasing r)
void set_subsystem(int bits)
void set_track_num(int bits)
int subsector() const
SubSector id : some sectors are divided along the phi direction in subsectors (from 1 to 4 in Barrel...
void set_zone_code(int bits)
uint32_t get_ph_patt_corr(int pattern) const
void set_zone_hit(int bits)
uint32_t get_th_lut(int fw_endcap, int fw_sector, int pc_lut_id, int pc_wire_id) const
double rad_to_deg(double rad)
int get_phzvl(const EMTFHit &conv_hit, int zone_code) const
const SectorProcessorLUT & lut() const
int get_fs_zone_code(const EMTFHit &conv_hit) const
uint32_t get_ph_init_hard(int fw_station, int fw_cscid) const
EMTFGEMDetId construct_EMTFGEMDetId(const L1TMuon::TriggerPrimitive &tp)
void set_fs_zone_code(int bits)
void set_clct_quality(int bits)
void set_quality(int bits)
void set_chamber(int bits)
uint32_t get_ph_init(int fw_endcap, int fw_sector, int pc_lut_id) const
uint32_t get_th_corr_lut(int fw_endcap, int fw_sector, int pc_lut_id, int pc_wire_strip_id) const
void set_subsector(int bits)
void set_alct_quality(int bits)
void convert_rpc_details(EMTFHit &conv_hit, const bool use_cppf_lut) const
const GeometryTranslator * tp_geom_
uint32_t get_cppf_ph_lut(int rpc_region, int rpc_sector, int rpc_station, int rpc_ring, int rpc_subsector, int rpc_roll, int halfstrip, bool is_neighbor) const
void convert_csc(int pc_sector, int pc_station, int pc_chamber, int pc_segment, const TriggerPrimitive &muon_primitive, EMTFHit &conv_hit) const
void set_phi_fp(int bits)
void set_pc_sector(int bits)
int region() const
Region id: 0 for Barrel, +/-1 For +/- Endcap.
GlobalPoint getGlobalPoint(const TriggerPrimitive &) const