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) {
133 unsigned pattern = tp_data.pattern;
135 const bool isOTMB(detid.isME11()
or detid.isME21()
or detid.isME31()
or detid.isME41());
136 const bool isTMB((detid.isME12()
or detid.isME22()
or detid.isME32()
or detid.isME42())
or (detid.isME13()));
143 const unsigned slopeList[32] = {10, 10, 10, 8, 8, 8, 6, 6, 6, 4, 4, 4, 2, 2, 2, 2,
144 10, 10, 10, 9, 9, 9, 7, 7, 7, 5, 5, 5, 3, 3, 3, 3};
147 unsigned slope_and_sign(tp_data.slope);
148 if (tp_data.bend == 0) {
149 slope_and_sign += 16;
151 unsigned run2_converted_PID = slopeList[slope_and_sign];
152 pattern = run2_converted_PID;
160 conv_hit.
set_endcap((tp_endcap == 2) ? -1 : tp_endcap);
208 double glob_eta = gp.
eta();
209 double glob_rho = gp.
perp();
210 double glob_z = gp.
z();
221 const bool is_neighbor = conv_hit.
Neighbor();
228 const int fw_endcap = (
endcap_ - 1);
229 const int fw_sector = (
sector_ - 1);
230 const int fw_station =
232 const int fw_cscid = (conv_hit.
CSC_nID() - 1);
233 const int fw_strip = conv_hit.
Strip();
234 const int fw_wire = conv_hit.
Wire();
243 const bool is_me11a = (conv_hit.
Station() == 1 && conv_hit.
Ring() == 4);
244 const bool is_me11b = (conv_hit.
Station() == 1 && conv_hit.
Ring() == 1);
245 const bool is_me13 = (conv_hit.
Station() == 1 && conv_hit.
Ring() == 3);
249 bool ph_reverse =
false;
250 if ((fw_endcap == 0 && fw_station >= 3) || (fw_endcap == 1 && fw_station < 3))
256 if (fw_station <= 1 && ((fw_cscid >= 6 && fw_cscid <= 8) || fw_cscid == 14))
258 else if (fw_station >= 2 && (fw_cscid <= 2 || fw_cscid == 9))
265 bool is_10degree =
false;
266 if ((fw_station <= 1) ||
267 (fw_station >= 2 && ((fw_cscid >= 3 && fw_cscid <= 8) || fw_cscid == 10))
275 int pc_lut_id = pc_chamber;
276 if (pc_station == 0) {
277 pc_lut_id = is_me11a ? pc_lut_id + 9 : pc_lut_id;
278 }
else if (pc_station == 1) {
280 pc_lut_id = is_me11a ? pc_lut_id + 9 : pc_lut_id;
281 }
else if (pc_station == 2) {
283 }
else if (pc_station == 3) {
285 }
else if (pc_station == 4) {
287 }
else if (pc_station == 5 && pc_chamber < 3) {
288 pc_lut_id = is_me11a ? pc_lut_id + 15 : pc_lut_id + 12;
289 }
else if (pc_station == 5 && pc_chamber < 5) {
290 pc_lut_id += 28 + 9 - 3;
291 }
else if (pc_station == 5 && pc_chamber < 7) {
292 pc_lut_id += 39 + 9 - 5;
293 }
else if (pc_station == 5 && pc_chamber < 9) {
294 pc_lut_id += 50 + 9 - 7;
299 std::cout <<
"pc_station: " << pc_station <<
" pc_chamber: " << pc_chamber <<
" fw_station: " << fw_station
300 <<
" fw_cscid: " << fw_cscid <<
" lut_id: " << pc_lut_id
312 int eighth_strip = 0;
319 bool bugStrip0BeforeFW48200 =
false;
320 if (bugStrip0BeforeFW48200 ==
false && fw_strip == 0 && clct_pat_corr_sign == -1)
325 const bool isOTMB(detid.isME11()
or detid.isME21()
or detid.isME31()
or detid.isME41());
326 const bool isTMB((detid.isME12()
or detid.isME22()
or detid.isME32()
or detid.isME42())
or (detid.isME13()));
331 eighth_strip = fw_strip << 2;
335 eighth_strip += clct_pat_corr_sign * (clct_pat_corr >> 1);
338 eighth_strip = fw_strip << 3;
342 eighth_strip += clct_pat_corr_sign * (clct_pat_corr >> 0);
345 emtf_assert(bugStrip0BeforeFW48200 ==
true || eighth_strip >= 0);
370 int ph_tmp = (eighth_strip * factor) >> 10;
371 int ph_tmp_sign = (ph_reverse == 0) ? 1 : -1;
374 fph = fph + ph_tmp_sign * ph_tmp;
377 ph_hit = (ph_hit >> 1) + ph_tmp_sign * (ph_tmp >> 5) + ph_coverage;
382 ph_hit_fixed = ph_hit_fixed + ((fph + (1 << 4)) >> 5);
385 ph_hit = ph_hit_fixed;
392 zone_hit_fixed += ph_hit_fixed;
397 zone_hit = zone_hit_fixed;
406 int pc_wire_id = (fw_wire & 0x7f);
407 int th_tmp =
pc_lut().
get_th_lut(fw_endcap, fw_sector, pc_lut_id, pc_wire_id);
411 int pc_wire_strip_id =
412 (((fw_wire >> 4) & 0x3) << 5) | ((eighth_strip >> 4) & 0x1f);
417 bool bugME11DupesBeforeFW47114 =
false;
418 if (bugME11DupesBeforeFW47114) {
419 if (pc_segment == 1) {
420 pc_wire_strip_id = (((fw_wire >> 4) & 0x3) << 5) | (0);
426 int th_corr_sign = (ph_reverse == 0) ? 1 : -1;
428 th_tmp = th_tmp + th_corr_sign * th_corr;
431 const int th_negative = 50;
432 const int th_coverage = 45;
433 if (th_tmp > th_negative || th_tmp < 0 || fw_wire == 0)
435 if (th_tmp > th_coverage)
436 th_tmp = th_coverage;
439 int pc_wire_strip_id =
440 (((fw_wire >> 4) & 0x3) << 5) | ((eighth_strip >> 4) & 0x1f);
442 pc_wire_strip_id = (((fw_wire >> 4) & 0x3) << 5) | ((((eighth_strip * 341) >> 8) >> 4) &
446 th_tmp = th_tmp + th_corr;
449 const int th_coverage = 46;
452 if (th_tmp > th_coverage)
453 th_tmp = th_coverage;
462 th = (th == 0) ? 1 : th;
472 int fs_segment =
get_fs_segment(conv_hit, fw_station, fw_cscid, pc_segment);
474 int bt_station =
get_bt_station(conv_hit, fw_station, fw_cscid, pc_segment);
475 int bt_segment =
get_bt_segment(conv_hit, fw_station, fw_cscid, pc_segment);
510 int tp_region = tp_detId.
region();
511 int tp_endcap = (tp_region == -1) ? 2 : tp_region;
512 int tp_sector = tp_detId.
sector();
514 int tp_station = tp_detId.
station();
515 int tp_ring = tp_detId.
ring();
516 int tp_roll = tp_detId.
roll();
519 int tp_bx = tp_data.bx;
520 int tp_strip = ((tp_data.strip_low + tp_data.strip_hi) / 2);
522 const bool is_neighbor = (pc_station == 5);
525 int csc_tp_chamber = (tp_sector - 1) * 6 + tp_subsector;
526 int csc_tp_sector = (tp_subsector > 2) ? tp_sector : ((tp_sector + 4) % 6) + 1;
527 int csc_tp_subsector = (tp_station != 1) ? 0 : ((csc_tp_chamber % 6 > 2) ? 1 : 2);
529 const bool is_irpc = (tp_station == 3 || tp_station == 4) && (tp_ring == 1);
531 csc_tp_chamber = (tp_sector - 1) * 3 + tp_subsector;
532 csc_tp_sector = (tp_subsector > 1) ? tp_sector : ((tp_sector + 4) % 6) + 1;
533 csc_tp_subsector = (tp_station != 1) ? 0 : ((csc_tp_chamber % 6 > 2) ? 1 : 2);
537 int csc_nID = tp_csc_ID;
542 csc_nID = (pc_chamber < 3) ? (pc_chamber + 12) : (((pc_chamber - 1) % 2) + 9);
547 int tp_quality = (tp_data.strip_hi - tp_data.strip_low + 1);
558 conv_hit.
set_endcap((tp_endcap == 2) ? -1 : tp_endcap);
593 bool use_fullsim_coords =
true;
595 if (tp_data.isCPPF) {
598 }
else if (use_fullsim_coords) {
602 double glob_eta = gp.
eta();
603 double glob_rho = gp.
perp();
604 double glob_z = gp.
z();
622 th = (th == 0) ? 1 : th;
630 glob_eta = new_gp.
eta();
631 glob_rho = new_gp.
perp();
639 th = (th == 0) ? 1 : th;
659 const bool is_neighbor = conv_hit.
Neighbor();
667 const int fw_station = (conv_hit.
Station() == 1) ? (is_neighbor ? 0 : pc_station) : conv_hit.
Station();
668 const int fw_cscid = (conv_hit.
CSC_nID() - 1);
670 int fph = conv_hit.
Phi_fp();
674 bool use_cppf_lut = !isCPPF;
705 th = (th == 0) ? 1 : th;
709 std::cout <<
"RPC hit pc_station: " << pc_station <<
" pc_chamber: " << pc_chamber <<
" fw_station: " << fw_station
710 <<
" fw_cscid: " << fw_cscid <<
" tp_station: " << conv_hit.
Station() <<
" tp_ring: " << conv_hit.
Ring()
712 <<
" fph: " << fph <<
" th: " << th << std::endl;
718 int zone_hit = ((fph + (1 << 4)) >> 5);
723 int fs_segment =
get_fs_segment(conv_hit, fw_station, fw_cscid, pc_segment);
725 int bt_station =
get_bt_station(conv_hit, fw_station, fw_cscid, pc_segment);
726 int bt_segment =
get_bt_segment(conv_hit, fw_station, fw_cscid, pc_segment);
761 int tp_region = tp_detId.
region();
762 int tp_endcap = (tp_region == -1) ? 2 : tp_region;
763 int tp_station = tp_detId.
station();
764 int tp_ring = tp_detId.
ring();
765 int tp_roll = tp_detId.
roll();
767 int tp_chamber = tp_detId.
chamber();
769 int tp_bx = tp_data.bx;
770 int tp_pad = ((tp_data.pad_low + tp_data.pad_hi) / 2);
777 int tp_subsector = (tp_station != 1) ? 0 : ((tp_chamber % 6 > 2) ? 1 : 2);
779 const bool is_neighbor = (pc_chamber == 12 || pc_chamber == 13);
781 int csc_nID = tp_csc_ID;
786 if (tp_station == 1) {
794 int tp_quality = (tp_data.pad_hi - tp_data.pad_low + 1);
801 conv_hit.
set_endcap((tp_endcap == 2) ? -1 : tp_endcap);
836 bool use_fullsim_coords =
true;
837 if (use_fullsim_coords) {
841 double glob_eta = gp.
eta();
842 double glob_rho = gp.
perp();
843 double glob_z = gp.
z();
851 th = (th == 0) ? 1 : th;
870 const bool is_neighbor = conv_hit.
Neighbor();
878 const int fw_station =
880 const int fw_cscid = (conv_hit.
CSC_nID() - 1);
882 int fph = conv_hit.
Phi_fp();
886 std::cout <<
"GEM hit pc_station: " << pc_station <<
" pc_chamber: " << pc_chamber <<
" fw_station: " << fw_station
887 <<
" fw_cscid: " << fw_cscid <<
" tp_station: " << conv_hit.
Station() <<
" tp_ring: " << conv_hit.
Ring()
888 <<
" tp_sector: " << conv_hit.
Sector() <<
" tp_subsector: " << conv_hit.
Subsector() <<
" fph: " << fph
889 <<
" th: " << th << std::endl;
895 int zone_hit = ((fph + (1 << 4)) >> 5);
900 int fs_segment =
get_fs_segment(conv_hit, fw_station, fw_cscid, pc_segment);
902 int bt_station =
get_bt_station(conv_hit, fw_station, fw_cscid, pc_segment);
903 int bt_segment =
get_bt_segment(conv_hit, fw_station, fw_cscid, pc_segment);
938 int tp_region = tp_detId.
region();
939 int tp_endcap = (tp_region == -1) ? 2 : tp_region;
940 int tp_station = tp_detId.
station();
944 int tp_chamber = tp_detId.
chamber();
946 int tp_bx = tp_data.bx;
947 int tp_pad = tp_data.phiposition;
948 int tp_partition = tp_data.partition;
954 int tp_subsector = 0;
956 const bool is_neighbor = (pc_chamber == 14);
958 int csc_nID = tp_csc_ID;
971 conv_hit.
set_endcap((tp_endcap == 2) ? -1 : tp_endcap);
997 conv_hit.
set_bend(tp_data.deltaphi * (tp_data.bend == 0 ? 1 : -1));
1006 bool use_fullsim_coords =
true;
1007 if (use_fullsim_coords) {
1011 double glob_eta = gp.
eta();
1012 double glob_rho = gp.
perp();
1013 double glob_z = gp.
z();
1019 bool fix_me0_theta_edge =
true;
1020 if (fix_me0_theta_edge) {
1029 th = (th == 0) ? 1 : th;
1058 int tp_wheel = tp_detId.
wheel();
1059 int tp_station = tp_detId.
station();
1060 int tp_sector = tp_detId.
sector();
1065 if (tp_station == 4) {
1066 if (tp_sector == 13)
1068 else if (tp_sector == 14)
1072 int tp_bx = tp_data.bx;
1073 int tp_phi = tp_data.radialAngle;
1074 int tp_phiB = tp_data.bendingAngle;
1080 int tp_endcap = (tp_wheel > 0) ? +1 : ((tp_wheel < 0) ? 2 : 0);
1083 int tp_subsector = 0;
1085 const bool is_neighbor = (pc_chamber >= 8);
1087 int csc_nID = tp_csc_ID;
1100 conv_hit.
set_endcap((tp_endcap == 2) ? -1 : tp_endcap);
1123 conv_hit.
set_wire(tp_data.theta_bti_group);
1135 bool use_fullsim_coords =
true;
1136 if (use_fullsim_coords) {
1140 double glob_eta = gp.
eta();
1141 double glob_rho = gp.
perp();
1142 double glob_z = gp.
z();
1148 bool fix_dt_phi_edge =
true;
1149 if (fix_dt_phi_edge) {
1155 if ((loc + 22.) < 0. && (loc + 32.) > 0.)
1157 else if ((loc + 360. + 22.) < 0. && (loc + 360. + 32.) > 0.)
1163 th = (th == 0) ? 1 : th;
1189 bool is_me13 = (is_csc && conv_hit.
Station() == 1 && conv_hit.
Ring() == 3);
1196 if (zone_code_tmp & (1 << izone)) {
1198 ((izone == 0) || ((zone_code_tmp & (1 << (izone - 1))) == 0) || is_me13);
1199 bool no_use_bnd2 = (((zone_code_tmp & (1 << (izone + 1))) == 0) || is_me13);
1205 zone_code |= (1 << izone);
1218 if (conv_hit.
Ring() == 1 || conv_hit.
Ring() == 4) {
1219 phzvl = (zone_code >> 0);
1220 }
else if (conv_hit.
Ring() == 2) {
1222 phzvl = (zone_code >> 1);
1224 phzvl = (zone_code >> 2);
1226 }
else if (conv_hit.
Ring() == 3) {
1227 phzvl = (zone_code >> 3);
1233 static const unsigned int zone_code_table[4][3] = {
1235 {0b0011, 0b0100, 0b1000},
1236 {0b0011, 0b1100, 0b1100},
1237 {0b0001, 0b1110, 0b1110},
1238 {0b0001, 0b0110, 0b0110}
1241 static const unsigned int zone_code_table_new[4][3] = {
1243 {0b0011, 0b0110, 0b1000},
1244 {0b0011, 0b1110, 0b1110},
1245 {0b0011, 0b1110, 0b1110},
1246 {0b0001, 0b0110, 0b0110}
1249 unsigned int istation = (conv_hit.
Station() - 1);
1250 unsigned int iring = (conv_hit.
Ring() == 4) ? 0 : (conv_hit.
Ring() - 1);
1252 unsigned int zone_code =
useNewZones_ ? zone_code_table_new[istation][iring] : zone_code_table[istation][iring];
1260 int fs_chamber = -1;
1261 int fs_segment = pc_segment % 2;
1270 const bool is_neighbor = conv_hit.
Neighbor();
1271 if (fw_station <= 1) {
1272 int n = fw_cscid % 3;
1273 fs_chamber = is_neighbor ? 0 : ((fw_station == 0) ? 1 + n : 4 + n);
1275 int n = (conv_hit.
Ring() == 1) ? fw_cscid : (fw_cscid - 3);
1276 fs_chamber = is_neighbor ? 0 : 1 +
n;
1279 emtf_assert(fs_history == 0 && (0 <= fs_chamber && fs_chamber < 7) && (0 <= fs_segment && fs_segment < 2));
1283 fs_segment = ((fs_history & 0x3) << 4) | ((fs_chamber & 0x7) << 1) | (fs_segment & 0x1);
1288 int bt_station = fw_station;
1296 int bt_chamber = -1;
1297 int bt_segment = pc_segment % 2;
1307 bt_chamber = fw_cscid + 1;
1308 if (fw_station == 0 && bt_chamber >= 13)
1311 emtf_assert(bt_history == 0 && (0 <= bt_chamber && bt_chamber < 13) && (0 <= bt_segment && bt_segment < 2));
1315 bt_segment = ((bt_history & 0x3) << 5) | ((bt_chamber & 0xf) << 1) | (bt_segment & 0x1);
1320 bool is_csc = conv_hit.
Is_CSC();
1321 bool is_rpc = conv_hit.
Is_RPC();
1322 bool is_irpc = conv_hit.
Is_RPC() && ((conv_hit.
Station() == 3 || conv_hit.
Station() == 4) && (conv_hit.
Ring() == 1));
1324 (conv_hit.
Ring() == 3));
1325 return (is_csc || (is_rpc && !is_irpc && !is_omtf));
void set_subsector_RPC(int bits)
int Strip_quart_bit() const
void set_phi_glob(float val)
ME0Data getME0Data() const
GlobalPoint toGlobal(const Point2DBase< Scalar, LocalTag > lp) const
void set_theta_sim(float val)
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)
Point3DBase< Scalar, LocalTag > LocalPoint
void set_pc_station(int bits)
void set_phi_sim(float val)
int get_zone_code(const EMTFHit &conv_hit, int th) const
int get_trigger_sector(int ring, int station, int chamber)
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::EventIDconst &, edm::Timestampconst & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
const RPCGeometry & getRPCGeometry() const
void convert_rpc_details(EMTFHit &conv_hit, bool isCPPF) const
constexpr int roll() const
void set_station(int bits)
const SectorProcessorLUT * pc_lut_
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
T1 value() const
Explicit access to value in case implicit conversion not OK.
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)
uint32_t get_ph_patt_corr_sign(int pattern) const
void SetME0DetId(const ME0DetId &id)
int get_bt_segment(const EMTFHit &conv_hit, int fw_station, int fw_cscid, int pc_segment) const
CSCData getCSCData() const
void set_theta_fp(int bits)
const Plane & surface() const
The nominal surface of the GeomDet.
GEMData getGEMData() const
void set_endcap(int bits)
int calc_theta_int_rpc(double theta, int endcap)
int get_trigger_csc_ID(int ring, int station, int chamber)
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
void set_strip_quart_bit(int bits)
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)
int chamber() const
Chamber id: it identifies a chamber in a ring it goes from 1 to 36.
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_strip_eighth_bit(int bits)
static constexpr int verbose
void set_bt_segment(int bits)
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_pattern(int bits)
constexpr int region() const
int Subsector_RPC() const
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)
void convert_csc_details(EMTFHit &conv_hit) const
CSCDetId CreateCSCDetId() const
double calc_phi_glob_deg(double loc, int sector)
const SectorProcessorLUT & pc_lut() const
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 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
constexpr int chamber() const
constexpr int ring() const
void set_z_sim(float val)
int region() const
Region id: 0 for Barrel Not in use, +/-1 For +/- Endcap.
constexpr int station() const
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 Strip_eighth_bit() 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)
void convert_other_details(EMTFHit &conv_hit) const
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)
void SetGEMDetId(const GEMDetId &id)
bool is_valid_for_run2(const EMTFHit &conv_hit) const
uint32_t get_ph_patt_corr(int pattern) const
RPCData getRPCData() 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
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)
void set_strip_quart(int bits)
int get_phzvl(const EMTFHit &conv_hit, int zone_code) const
int get_fs_zone_code(const EMTFHit &conv_hit) const
uint32_t get_ph_init_hard(int fw_station, int fw_cscid) const
void set_fs_zone_code(int bits)
int station() const
Return the station number.
int wheel() const
Return the wheel number.
void set_clct_quality(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
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)
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
const RPCRoll * roll(RPCDetId id) const
Return a roll given its id.
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