CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
PrimitiveConversion.h
Go to the documentation of this file.
1 #ifndef L1TMuonEndCap_PrimitiveConversion_h
2 #define L1TMuonEndCap_PrimitiveConversion_h
3 
5 
7 
9 public:
10  void configure(const GeometryTranslator* tp_geom,
12  int verbose,
13  int endcap,
14  int sector,
15  int bx,
16  int bxShiftCSC,
17  int bxShiftRPC,
18  int bxShiftGEM,
19  int bxShiftME0,
20  const std::vector<int>& zoneBoundaries,
21  int zoneOverlap,
22  bool duplicateTheta,
23  bool fixZonePhi,
24  bool useNewZones,
25  bool fixME11Edges,
26  bool bugME11Dupes,
27  bool useRun3CCLUT_OTMB,
28  bool useRun3CCLUT_TMB);
29 
30  void process(const std::map<int, TriggerPrimitiveCollection>& selected_prim_map, EMTFHitCollection& conv_hits) const;
31 
32  const SectorProcessorLUT& pc_lut() const { return *pc_lut_; }
33 
34  // CSC functions
35  void convert_csc(int pc_sector,
36  int pc_station,
37  int pc_chamber,
38  int pc_segment,
39  const TriggerPrimitive& muon_primitive,
40  EMTFHit& conv_hit) const;
41 
42  void convert_csc_details(EMTFHit& conv_hit) const; // with specific firmware impl
43 
44  // RPC functions
45  void convert_rpc(int pc_sector,
46  int pc_station,
47  int pc_chamber,
48  int pc_segment,
49  const TriggerPrimitive& muon_primitive,
50  EMTFHit& conv_hit) const;
51 
52  void convert_rpc_details(EMTFHit& conv_hit, bool isCPPF) const; // with specific firmware impl
53 
54  // GEM functions
55  void convert_gem(int pc_sector,
56  int pc_station,
57  int pc_chamber,
58  int pc_segment,
59  const TriggerPrimitive& muon_primitive,
60  EMTFHit& conv_hit) const;
61 
62  void convert_other_details(EMTFHit& conv_hit) const; // no firmware impl
63 
64  // ME0 functions
65  void convert_me0(int pc_sector,
66  int pc_station,
67  int pc_chamber,
68  int pc_segment,
69  const TriggerPrimitive& muon_primitive,
70  EMTFHit& conv_hit) const;
71 
72  // DT functions
73  void convert_dt(int pc_sector,
74  int pc_station,
75  int pc_chamber,
76  int pc_segment,
77  const TriggerPrimitive& muon_primitive,
78  EMTFHit& conv_hit) const;
79 
80  // Aux functions
81  int get_zone_code(const EMTFHit& conv_hit, int th) const;
82 
83  int get_phzvl(const EMTFHit& conv_hit, int zone_code) const;
84 
85  int get_fs_zone_code(const EMTFHit& conv_hit) const;
86 
87  int get_fs_segment(const EMTFHit& conv_hit, int fw_station, int fw_cscid, int pc_segment) const;
88 
89  int get_bt_station(const EMTFHit& conv_hit, int fw_station, int fw_cscid, int pc_segment) const;
90 
91  int get_bt_segment(const EMTFHit& conv_hit, int fw_station, int fw_cscid, int pc_segment) const;
92 
93  bool is_valid_for_run2(const EMTFHit& conv_hit) const;
94 
95 private:
97 
99 
101 
103 
104  std::vector<int> zoneBoundaries_;
108  // Run 3 CCLUT algorithm
111 };
112 
113 #endif
int get_bt_station(const EMTFHit &conv_hit, int fw_station, int fw_cscid, int pc_segment) const
int get_zone_code(const EMTFHit &conv_hit, int th) const
void convert_rpc_details(EMTFHit &conv_hit, bool isCPPF) const
bool verbose
const SectorProcessorLUT * pc_lut_
void convert_gem(int pc_sector, int pc_station, int pc_chamber, int pc_segment, const TriggerPrimitive &muon_primitive, EMTFHit &conv_hit) const
void convert_rpc(int pc_sector, int pc_station, int pc_chamber, int pc_segment, const TriggerPrimitive &muon_primitive, EMTFHit &conv_hit) const
l1t::EMTFHitCollection EMTFHitCollection
Definition: Common.h:23
int get_bt_segment(const EMTFHit &conv_hit, int fw_station, int fw_cscid, int pc_segment) const
int get_fs_segment(const EMTFHit &conv_hit, int fw_station, int fw_cscid, int pc_segment) const
void convert_dt(int pc_sector, int pc_station, int pc_chamber, int pc_segment, const TriggerPrimitive &muon_primitive, EMTFHit &conv_hit) const
void convert_csc_details(EMTFHit &conv_hit) const
const SectorProcessorLUT & pc_lut() const
std::vector< int > zoneBoundaries_
void process(const std::map< int, TriggerPrimitiveCollection > &selected_prim_map, EMTFHitCollection &conv_hits) const
void convert_other_details(EMTFHit &conv_hit) const
bool is_valid_for_run2(const EMTFHit &conv_hit) 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)
int get_phzvl(const EMTFHit &conv_hit, int zone_code) const
int get_fs_zone_code(const EMTFHit &conv_hit) const
void convert_me0(int pc_sector, int pc_station, int pc_chamber, int pc_segment, const TriggerPrimitive &muon_primitive, EMTFHit &conv_hit) const
const GeometryTranslator * tp_geom_
void convert_csc(int pc_sector, int pc_station, int pc_chamber, int pc_segment, const TriggerPrimitive &muon_primitive, EMTFHit &conv_hit) const