17 const std::vector<int>& zoneBoundaries,
24 bool useRun3CCLUT_OTMB,
25 bool useRun3CCLUT_TMB) {
57 std::map<int, TriggerPrimitiveCollection>::const_iterator map_tp_it = selected_prim_map.begin();
58 std::map<int, TriggerPrimitiveCollection>::const_iterator map_tp_end = selected_prim_map.end();
60 for (; map_tp_it != map_tp_end; ++map_tp_it) {
62 int selected = map_tp_it->first;
65 int pc_station = selected / 9;
66 int pc_chamber = selected % 9;
69 TriggerPrimitiveCollection::const_iterator tp_it = map_tp_it->second.begin();
70 TriggerPrimitiveCollection::const_iterator tp_end = map_tp_it->second.end();
72 for (; tp_it != tp_end; ++tp_it) {
75 convert_csc(pc_sector, pc_station, pc_chamber, pc_segment, *tp_it, conv_hit);
77 convert_rpc(pc_sector, pc_station, pc_chamber, pc_segment, *tp_it, conv_hit);
79 convert_gem(pc_sector, 0, selected, pc_segment, *tp_it, conv_hit);
81 convert_me0(pc_sector, 0, selected, pc_segment, *tp_it, conv_hit);
83 convert_dt(pc_sector, 0, selected, pc_segment, *tp_it, conv_hit);
87 conv_hits.push_back(conv_hit);
104 int tp_endcap = tp_detId.
endcap();
106 int tp_station = tp_detId.
station();
107 int tp_ring = tp_detId.
ring();
108 int tp_chamber = tp_detId.
chamber();
110 int tp_bx = tp_data.bx;
111 int tp_csc_ID = tp_data.cscID;
115 int tp_subsector = (tp_station != 1) ? 0 : ((tp_chamber % 6 > 2) ? 1 : 2);
117 const bool is_neighbor = (pc_station == 5);
119 int csc_nID = tp_csc_ID;
124 csc_nID = (pc_chamber < 3) ? (pc_chamber + 12) : (((pc_chamber - 1) % 2) + 9);
127 if (tp_station == 1) {
137 conv_hit.
set_endcap((tp_endcap == 2) ? -1 : tp_endcap);
164 unsigned pattern = tp_data.pattern;
166 const bool isOTMB(detid.isME11()
or detid.isME21()
or detid.isME31()
or detid.isME41());
167 const bool isTMB((detid.isME12()
or detid.isME22()
or detid.isME32()
or detid.isME42())
or (detid.isME13()));
174 const unsigned slopeList[32] = {10, 10, 10, 8, 8, 8, 6, 6, 6, 4, 4, 4, 2, 2, 2, 2,
175 10, 10, 10, 9, 9, 9, 7, 7, 7, 5, 5, 5, 3, 3, 3, 3};
178 unsigned slope_and_sign(tp_data.slope);
179 if (tp_data.bend == 1) {
180 slope_and_sign += 16;
182 unsigned run2_converted_PID = slopeList[slope_and_sign];
209 double glob_eta =
gp.eta();
210 double glob_rho =
gp.perp();
211 double glob_z =
gp.z();
222 const bool is_neighbor = conv_hit.
Neighbor();
229 const int fw_endcap = (
endcap_ - 1);
230 const int fw_sector = (
sector_ - 1);
231 const int fw_station =
233 const int fw_cscid = (conv_hit.
CSC_nID() - 1);
234 const int fw_strip = conv_hit.
Strip();
235 const int fw_wire = conv_hit.
Wire();
244 const bool is_me11a = (conv_hit.
Station() == 1 && conv_hit.
Ring() == 4);
245 const bool is_me11b = (conv_hit.
Station() == 1 && conv_hit.
Ring() == 1);
246 const bool is_me13 = (conv_hit.
Station() == 1 && conv_hit.
Ring() == 3);
250 bool ph_reverse =
false;
251 if ((fw_endcap == 0 && fw_station >= 3) || (fw_endcap == 1 && fw_station < 3))
257 if (fw_station <= 1 && ((fw_cscid >= 6 && fw_cscid <= 8) || fw_cscid == 14))
259 else if (fw_station >= 2 && (fw_cscid <= 2 || fw_cscid == 9))
266 bool is_10degree =
false;
267 if ((fw_station <= 1) ||
268 (fw_station >= 2 && ((fw_cscid >= 3 && fw_cscid <= 8) || fw_cscid == 10))
276 int pc_lut_id = pc_chamber;
277 if (pc_station == 0) {
278 pc_lut_id = is_me11a ? pc_lut_id + 9 : pc_lut_id;
279 }
else if (pc_station == 1) {
281 pc_lut_id = is_me11a ? pc_lut_id + 9 : pc_lut_id;
282 }
else if (pc_station == 2) {
284 }
else if (pc_station == 3) {
286 }
else if (pc_station == 4) {
288 }
else if (pc_station == 5 && pc_chamber < 3) {
289 pc_lut_id = is_me11a ? pc_lut_id + 15 : pc_lut_id + 12;
290 }
else if (pc_station == 5 && pc_chamber < 5) {
291 pc_lut_id += 28 + 9 - 3;
292 }
else if (pc_station == 5 && pc_chamber < 7) {
293 pc_lut_id += 39 + 9 - 5;
294 }
else if (pc_station == 5 && pc_chamber < 9) {
295 pc_lut_id += 50 + 9 - 7;
300 std::cout <<
"pc_station: " << pc_station <<
" pc_chamber: " << pc_chamber <<
" fw_station: " << fw_station
301 <<
" fw_cscid: " << fw_cscid <<
" lut_id: " << pc_lut_id
313 int eighth_strip = 0;
320 bool bugStrip0BeforeFW48200 =
false;
321 if (bugStrip0BeforeFW48200 ==
false && fw_strip == 0 && clct_pat_corr_sign == -1)
326 const bool isOTMB(detid.isME11()
or detid.isME21()
or detid.isME31()
or detid.isME41());
327 const bool isTMB((detid.isME12()
or detid.isME22()
or detid.isME32()
or detid.isME42())
or (detid.isME13()));
332 eighth_strip = fw_strip << 2;
336 eighth_strip += clct_pat_corr_sign * (clct_pat_corr >> 1);
339 eighth_strip = fw_strip << 3;
343 eighth_strip += clct_pat_corr_sign * (clct_pat_corr >> 0);
346 emtf_assert(bugStrip0BeforeFW48200 ==
true || eighth_strip >= 0);
371 int ph_tmp = (eighth_strip *
factor) >> 10;
372 int ph_tmp_sign = (ph_reverse == 0) ? 1 : -1;
375 fph = fph + ph_tmp_sign * ph_tmp;
378 ph_hit = (ph_hit >> 1) + ph_tmp_sign * (ph_tmp >> 5) + ph_coverage;
383 ph_hit_fixed = ph_hit_fixed + ((fph + (1 << 4)) >> 5);
386 ph_hit = ph_hit_fixed;
393 zone_hit_fixed += ph_hit_fixed;
398 zone_hit = zone_hit_fixed;
407 int pc_wire_id = (fw_wire & 0x7f);
408 int th_tmp =
pc_lut().
get_th_lut(fw_endcap, fw_sector, pc_lut_id, pc_wire_id);
412 int pc_wire_strip_id =
413 (((fw_wire >> 4) & 0x3) << 5) | ((eighth_strip >> 4) & 0x1f);
418 bool bugME11DupesBeforeFW47114 =
false;
419 if (bugME11DupesBeforeFW47114) {
420 if (pc_segment == 1) {
421 pc_wire_strip_id = (((fw_wire >> 4) & 0x3) << 5) | (0);
427 int th_corr_sign = (ph_reverse == 0) ? 1 : -1;
429 th_tmp = th_tmp + th_corr_sign * th_corr;
432 const int th_negative = 50;
433 const int th_coverage = 45;
434 if (th_tmp > th_negative || th_tmp < 0 || fw_wire == 0)
436 if (th_tmp > th_coverage)
437 th_tmp = th_coverage;
440 int pc_wire_strip_id =
441 (((fw_wire >> 4) & 0x3) << 5) | ((eighth_strip >> 4) & 0x1f);
443 pc_wire_strip_id = (((fw_wire >> 4) & 0x3) << 5) | ((((eighth_strip * 341) >> 8) >> 4) &
447 th_tmp = th_tmp + th_corr;
450 const int th_coverage = 46;
453 if (th_tmp > th_coverage)
454 th_tmp = th_coverage;
463 th = (th == 0) ? 1 : th;
473 int fs_segment =
get_fs_segment(conv_hit, fw_station, fw_cscid, pc_segment);
475 int bt_station =
get_bt_station(conv_hit, fw_station, fw_cscid, pc_segment);
476 int bt_segment =
get_bt_segment(conv_hit, fw_station, fw_cscid, pc_segment);
511 int tp_region = tp_detId.
region();
512 int tp_endcap = (tp_region == -1) ? 2 : tp_region;
513 int tp_sector = tp_detId.
sector();
515 int tp_station = tp_detId.
station();
516 int tp_ring = tp_detId.
ring();
517 int tp_roll = tp_detId.
roll();
520 int tp_bx = tp_data.bx;
521 int tp_strip = ((tp_data.strip_low + tp_data.strip_hi) / 2);
523 const bool is_neighbor = (pc_station == 5);
526 int csc_tp_chamber = (tp_sector - 1) * 6 + tp_subsector;
527 int csc_tp_sector = (tp_subsector > 2) ? tp_sector : ((tp_sector + 4) % 6) + 1;
528 int csc_tp_subsector = (tp_station != 1) ? 0 : ((csc_tp_chamber % 6 > 2) ? 1 : 2);
530 const bool is_irpc = (tp_station == 3 || tp_station == 4) && (tp_ring == 1);
532 csc_tp_chamber = (tp_sector - 1) * 3 + tp_subsector;
533 csc_tp_sector = (tp_subsector > 1) ? tp_sector : ((tp_sector + 4) % 6) + 1;
534 csc_tp_subsector = (tp_station != 1) ? 0 : ((csc_tp_chamber % 6 > 2) ? 1 : 2);
538 int csc_nID = tp_csc_ID;
543 csc_nID = (pc_chamber < 3) ? (pc_chamber + 12) : (((pc_chamber - 1) % 2) + 9);
548 int tp_quality = (tp_data.strip_hi - tp_data.strip_low + 1);
559 conv_hit.
set_endcap((tp_endcap == 2) ? -1 : tp_endcap);
594 bool use_fullsim_coords =
true;
596 if (tp_data.isCPPF) {
599 }
else if (use_fullsim_coords) {
603 double glob_eta =
gp.eta();
604 double glob_rho =
gp.perp();
605 double glob_z =
gp.z();
623 th = (th == 0) ? 1 : th;
631 glob_eta = new_gp.
eta();
632 glob_rho = new_gp.
perp();
640 th = (th == 0) ? 1 : th;
660 const bool is_neighbor = conv_hit.
Neighbor();
668 const int fw_station = (conv_hit.
Station() == 1) ? (is_neighbor ? 0 : pc_station) : conv_hit.
Station();
669 const int fw_cscid = (conv_hit.
CSC_nID() - 1);
671 int fph = conv_hit.
Phi_fp();
675 bool use_cppf_lut = !isCPPF;
706 th = (th == 0) ? 1 : th;
710 std::cout <<
"RPC hit pc_station: " << pc_station <<
" pc_chamber: " << pc_chamber <<
" fw_station: " << fw_station
711 <<
" fw_cscid: " << fw_cscid <<
" tp_station: " << conv_hit.
Station() <<
" tp_ring: " << conv_hit.
Ring()
713 <<
" fph: " << fph <<
" th: " << th << std::endl;
719 int zone_hit = ((fph + (1 << 4)) >> 5);
724 int fs_segment =
get_fs_segment(conv_hit, fw_station, fw_cscid, pc_segment);
726 int bt_station =
get_bt_station(conv_hit, fw_station, fw_cscid, pc_segment);
727 int bt_segment =
get_bt_segment(conv_hit, fw_station, fw_cscid, pc_segment);
762 int tp_region = tp_detId.
region();
763 int tp_endcap = (tp_region == -1) ? 2 : tp_region;
764 int tp_station = tp_detId.
station();
765 int tp_ring = tp_detId.
ring();
766 int tp_roll = tp_detId.
roll();
768 int tp_chamber = tp_detId.
chamber();
770 int tp_bx = tp_data.bx;
771 int tp_pad = ((tp_data.pad_low + tp_data.pad_hi) / 2);
778 int tp_subsector = (tp_station != 1) ? 0 : ((tp_chamber % 6 > 2) ? 1 : 2);
780 const bool is_neighbor = (pc_chamber == 12 || pc_chamber == 13);
782 int csc_nID = tp_csc_ID;
787 if (tp_station == 1) {
795 int tp_quality = (tp_data.pad_hi - tp_data.pad_low + 1);
802 conv_hit.
set_endcap((tp_endcap == 2) ? -1 : tp_endcap);
837 bool use_fullsim_coords =
true;
838 if (use_fullsim_coords) {
842 double glob_eta =
gp.eta();
843 double glob_rho =
gp.perp();
844 double glob_z =
gp.z();
852 th = (th == 0) ? 1 : th;
871 const bool is_neighbor = conv_hit.
Neighbor();
879 const int fw_station =
881 const int fw_cscid = (conv_hit.
CSC_nID() - 1);
883 int fph = conv_hit.
Phi_fp();
887 std::cout <<
"GEM hit pc_station: " << pc_station <<
" pc_chamber: " << pc_chamber <<
" fw_station: " << fw_station
888 <<
" fw_cscid: " << fw_cscid <<
" tp_station: " << conv_hit.
Station() <<
" tp_ring: " << conv_hit.
Ring()
889 <<
" tp_sector: " << conv_hit.
Sector() <<
" tp_subsector: " << conv_hit.
Subsector() <<
" fph: " << fph
890 <<
" th: " << th << std::endl;
896 int zone_hit = ((fph + (1 << 4)) >> 5);
901 int fs_segment =
get_fs_segment(conv_hit, fw_station, fw_cscid, pc_segment);
903 int bt_station =
get_bt_station(conv_hit, fw_station, fw_cscid, pc_segment);
904 int bt_segment =
get_bt_segment(conv_hit, fw_station, fw_cscid, pc_segment);
939 int tp_region = tp_detId.
region();
940 int tp_endcap = (tp_region == -1) ? 2 : tp_region;
941 int tp_station = tp_detId.
station();
945 int tp_chamber = tp_detId.
chamber();
947 int tp_bx = tp_data.bx;
948 int tp_pad = tp_data.phiposition;
949 int tp_partition = tp_data.partition;
955 int tp_subsector = 0;
957 const bool is_neighbor = (pc_chamber == 14);
959 int csc_nID = tp_csc_ID;
972 conv_hit.
set_endcap((tp_endcap == 2) ? -1 : tp_endcap);
998 conv_hit.
set_bend(tp_data.deltaphi * (tp_data.bend == 0 ? 1 : -1));
1007 bool use_fullsim_coords =
true;
1008 if (use_fullsim_coords) {
1012 double glob_eta =
gp.eta();
1013 double glob_rho =
gp.perp();
1014 double glob_z =
gp.z();
1020 bool fix_me0_theta_edge =
true;
1021 if (fix_me0_theta_edge) {
1030 th = (th == 0) ? 1 : th;
1059 int tp_wheel = tp_detId.
wheel();
1060 int tp_station = tp_detId.
station();
1061 int tp_sector = tp_detId.
sector();
1066 if (tp_station == 4) {
1067 if (tp_sector == 13)
1069 else if (tp_sector == 14)
1073 int tp_bx = tp_data.bx;
1074 int tp_phi = tp_data.radialAngle;
1075 int tp_phiB = tp_data.bendingAngle;
1081 int tp_endcap = (tp_wheel > 0) ? +1 : ((tp_wheel < 0) ? 2 : 0);
1084 int tp_subsector = 0;
1086 const bool is_neighbor = (pc_chamber >= 8);
1088 int csc_nID = tp_csc_ID;
1101 conv_hit.
set_endcap((tp_endcap == 2) ? -1 : tp_endcap);
1124 conv_hit.
set_wire(tp_data.theta_bti_group);
1136 bool use_fullsim_coords =
true;
1137 if (use_fullsim_coords) {
1141 double glob_eta =
gp.eta();
1142 double glob_rho =
gp.perp();
1143 double glob_z =
gp.z();
1149 bool fix_dt_phi_edge =
true;
1150 if (fix_dt_phi_edge) {
1156 if ((loc + 22.) < 0. && (loc + 32.) > 0.)
1158 else if ((loc + 360. + 22.) < 0. && (loc + 360. + 32.) > 0.)
1164 th = (th == 0) ? 1 : th;
1190 bool is_me13 = (is_csc && conv_hit.
Station() == 1 && conv_hit.
Ring() == 3);
1197 if (zone_code_tmp & (1 << izone)) {
1199 ((izone == 0) || ((zone_code_tmp & (1 << (izone - 1))) == 0) || is_me13);
1200 bool no_use_bnd2 = (((zone_code_tmp & (1 << (izone + 1))) == 0) || is_me13);
1206 zone_code |= (1 << izone);
1219 if (conv_hit.
Ring() == 1 || conv_hit.
Ring() == 4) {
1220 phzvl = (zone_code >> 0);
1221 }
else if (conv_hit.
Ring() == 2) {
1223 phzvl = (zone_code >> 1);
1225 phzvl = (zone_code >> 2);
1227 }
else if (conv_hit.
Ring() == 3) {
1228 phzvl = (zone_code >> 3);
1234 static const unsigned int zone_code_table[4][3] = {
1236 {0b0011, 0b0100, 0b1000},
1237 {0b0011, 0b1100, 0b1100},
1238 {0b0001, 0b1110, 0b1110},
1239 {0b0001, 0b0110, 0b0110}
1242 static const unsigned int zone_code_table_new[4][3] = {
1244 {0b0011, 0b0110, 0b1000},
1245 {0b0011, 0b1110, 0b1110},
1246 {0b0011, 0b1110, 0b1110},
1247 {0b0001, 0b0110, 0b0110}
1250 unsigned int istation = (conv_hit.
Station() - 1);
1251 unsigned int iring = (conv_hit.
Ring() == 4) ? 0 : (conv_hit.
Ring() - 1);
1253 unsigned int zone_code =
useNewZones_ ? zone_code_table_new[istation][iring] : zone_code_table[istation][iring];
1261 int fs_chamber = -1;
1262 int fs_segment = pc_segment % 2;
1271 const bool is_neighbor = conv_hit.
Neighbor();
1272 if (fw_station <= 1) {
1273 int n = fw_cscid % 3;
1274 fs_chamber = is_neighbor ? 0 : ((fw_station == 0) ? 1 +
n : 4 +
n);
1276 int n = (conv_hit.
Ring() == 1) ? fw_cscid : (fw_cscid - 3);
1277 fs_chamber = is_neighbor ? 0 : 1 +
n;
1280 emtf_assert(fs_history == 0 && (0 <= fs_chamber && fs_chamber < 7) && (0 <= fs_segment && fs_segment < 2));
1284 fs_segment = ((fs_history & 0x3) << 4) | ((fs_chamber & 0x7) << 1) | (fs_segment & 0x1);
1289 int bt_station = fw_station;
1297 int bt_chamber = -1;
1298 int bt_segment = pc_segment % 2;
1308 bt_chamber = fw_cscid + 1;
1309 if (fw_station == 0 && bt_chamber >= 13)
1312 emtf_assert(bt_history == 0 && (0 <= bt_chamber && bt_chamber < 13) && (0 <= bt_segment && bt_segment < 2));
1316 bt_segment = ((bt_history & 0x3) << 5) | ((bt_chamber & 0xf) << 1) | (bt_segment & 0x1);
1321 bool is_csc = conv_hit.
Is_CSC();
1322 bool is_rpc = conv_hit.
Is_RPC();
1323 bool is_irpc = conv_hit.
Is_RPC() && ((conv_hit.
Station() == 3 || conv_hit.
Station() == 4) && (conv_hit.
Ring() == 1));
1325 (conv_hit.
Ring() == 3));
1326 return (is_csc || (is_rpc && !is_irpc && !is_omtf));
int sector() const
Sector id: the group of chambers at same phi (and increasing r)
void set_subsector_RPC(int bits)
uint32_t get_ph_init_hard(int fw_station, int fw_cscid) const
void set_phi_glob(float val)
int station() const
Return the station number.
void set_theta_sim(float val)
RPCData getRPCData() const
void set_neighbor(int bits)
bool is_valid_for_run2(const EMTFHit &conv_hit) const
void set_rho_sim(float val)
constexpr int station() const
void set_csc_nID(int bits)
int get_fs_segment(const EMTFHit &conv_hit, int fw_station, int fw_cscid, int pc_segment) const
constexpr int region() const
Point3DBase< Scalar, LocalTag > LocalPoint
void set_pc_station(int bits)
void set_phi_sim(float val)
uint32_t get_ph_patt_corr_sign(int pattern) const
int get_trigger_sector(int ring, int station, int chamber)
uint32_t get_th_corr_lut(int fw_endcap, int fw_sector, int pc_lut_id, int pc_wire_strip_id) const
GlobalPoint getGlobalPoint(const TriggerPrimitive &) const
void set_station(int bits)
const SectorProcessorLUT * pc_lut_
void set_theta(float val)
uint32_t get_th_lut(int fw_endcap, int fw_sector, int pc_lut_id, int pc_wire_id) const
void set_bt_station(int bits)
void set_eta_sim(float val)
double calc_phi_loc_deg(int bits)
void set_sector_idx(int bits)
CSCData getCSCData() const
int calc_phi_loc_int(double glob, int sector)
double calc_phi_loc_deg_from_glob(double glob, int sector)
void set_strip_eighth(int bits)
l1t::EMTFHitCollection EMTFHitCollection
void set_sync_err(int bits)
void convert_me0(int pc_sector, int pc_station, int pc_chamber, int pc_segment, const TriggerPrimitive &muon_primitive, EMTFHit &conv_hit) const
const RPCRoll * roll(RPCDetId id) const
Return a roll given its id.
void SetME0DetId(const ME0DetId &id)
void set_theta_fp(int bits)
const SectorProcessorLUT & pc_lut() const
constexpr int chamber() const
void set_endcap(int bits)
int calc_theta_int_rpc(double theta, int endcap)
GEMData getGEMData() const
int get_trigger_csc_ID(int ring, int station, int chamber)
uint32_t get_ph_patt_corr(int pattern) const
void SetRPCDetId(const RPCDetId &id)
void set_strip_quart_bit(int bits)
void set_strip_low(int bits)
double calc_theta_deg_from_int(int theta_int)
void set_strip_eighth_bit(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
void set_bt_segment(int bits)
void process(const std::map< int, TriggerPrimitiveCollection > &selected_prim_map, EMTFHitCollection &conv_hits) const
void set_pattern(int bits)
void convert_gem(int pc_sector, int pc_station, int pc_chamber, int pc_segment, const TriggerPrimitive &muon_primitive, EMTFHit &conv_hit) const
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventID const &, edm::Timestamp const & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
void set_csc_ID(int bits)
void set_pc_chamber(int bits)
void set_strip_hi(int bits)
void set_pattern_run3(int bits)
void SetDTDetId(const DTChamberId &id)
int calc_phi_loc_int_rpc(double glob, int sector)
constexpr int ring() const
int get_phzvl(const EMTFHit &conv_hit, int zone_code) const
int Strip_eighth_bit() const
double calc_phi_glob_deg(double loc, int sector)
void convert_csc(int pc_sector, int pc_station, int pc_chamber, int pc_segment, const TriggerPrimitive &muon_primitive, EMTFHit &conv_hit) const
uint32_t get_ph_zone_offset(int pc_station, int pc_chamber) const
int subsector() const
SubSector id : some sectors are divided along the phi direction in subsectors (from 1 to 4 in Barrel...
int get_fs_zone_code(const EMTFHit &conv_hit) const
void set_phi_loc(float val)
const RPCGeometry & getRPCGeometry() const
int calc_theta_int(double theta, int endcap)
int region() const
Region id: 0 for Barrel Not in use, +/-1 For +/- Endcap.
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_pc_segment(int bits)
GlobalPoint toGlobal(const Point2DBase< Scalar, LocalTag > lp) const
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)
const Plane & surface() const
The nominal surface of the GeomDet.
int chamber() const
Chamber id: it identifies a chamber in a ring it goes from 1 to 36.
int Strip_quart_bit() const
void set_z_sim(float val)
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
uint32_t get_ph_disp(int fw_endcap, int fw_sector, int pc_lut_id) const
double calc_eta_from_theta_deg(double theta_deg, int endcap)
int get_bt_station(const EMTFHit &conv_hit, int fw_station, int fw_cscid, int pc_segment) const
void convert_rpc_details(EMTFHit &conv_hit, bool isCPPF) const
void set_subsystem(int bits)
int region() const
Region id: 0 for Barrel, +/-1 For +/- Endcap.
uint32_t get_ph_init(int fw_endcap, int fw_sector, int pc_lut_id) const
void set_track_num(int bits)
void convert_other_details(EMTFHit &conv_hit) const
void convert_csc_details(EMTFHit &conv_hit) const
int wheel() const
Return the wheel number.
constexpr int roll() const
uint32_t get_th_init(int fw_endcap, int fw_sector, int pc_lut_id) const
int get_bt_segment(const EMTFHit &conv_hit, int fw_station, int fw_cscid, int pc_segment) const
void set_zone_code(int bits)
void SetGEMDetId(const GEMDetId &id)
void set_zone_hit(int bits)
void configure(const GeometryTranslator *tp_geom, const SectorProcessorLUT *pc_lut, int verbose, int endcap, int sector, int bx, int bxShiftCSC, int bxShiftRPC, int bxShiftGEM, int bxShiftME0, const std::vector< int > &zoneBoundaries, int zoneOverlap, bool duplicateTheta, bool fixZonePhi, bool useNewZones, bool fixME11Edges, bool bugME11Dupes, bool useRun3CCLUT_OTMB, bool useRun3CCLUT_TMB)
double rad_to_deg(double rad)
int triggerSector() const
void set_strip_quart(int bits)
int get_zone_code(const EMTFHit &conv_hit, int th) const
void set_fs_zone_code(int bits)
void convert_dt(int pc_sector, int pc_station, int pc_chamber, int pc_segment, const TriggerPrimitive &muon_primitive, EMTFHit &conv_hit) const
void set_clct_quality(int bits)
void set_quality(int bits)
ME0Data getME0Data() const
void set_chamber(int bits)
uint32_t get_th_disp(int fw_endcap, int fw_sector, int pc_lut_id) const
void set_subsector(int bits)
int Subsector_RPC() const
void set_alct_quality(int bits)
const GeometryTranslator * tp_geom_
void set_phi_fp(int bits)
Geom::Theta< T > theta() const
CSCDetId CreateCSCDetId() const
void set_pc_sector(int bits)