CMS 3D CMS Logo

EMTFUnpackerTools.cc
Go to the documentation of this file.
1 
2 #include "EMTFUnpackerTools.h"
3 
4 namespace l1t {
5  namespace stage2 {
6  namespace emtf {
7 
8  void ImportME(EMTFHit& _hit, const l1t::emtf::ME _ME, const int _endcap, const int _evt_sector) {
9  _hit.set_endcap(_endcap == 1 ? 1 : -1);
10  _hit.set_sector_idx(_endcap == 1 ? _evt_sector - 1 : _evt_sector + 5);
11 
12  _hit.set_wire(_ME.Wire());
13  _hit.set_strip(_ME.Strip());
14  _hit.set_quality(_ME.Quality());
15  _hit.set_pattern(_ME.CLCT_pattern());
16  _hit.set_bend((_ME.LR() == 1) ? 1 : -1);
17  _hit.set_valid(_ME.VP());
18  _hit.set_sync_err(_ME.SE());
19  _hit.set_bx(_ME.TBIN() - 3);
20  _hit.set_bc0(_ME.BC0());
21  _hit.set_is_CSC(true);
22  _hit.set_is_RPC(false);
23  _hit.set_subsystem(1);
24  // _hit.set_layer();
25 
26  _hit.set_ring(L1TMuonEndCap::calc_ring(_hit.Station(), _hit.CSC_ID(), _hit.Strip()));
27  _hit.set_chamber(
28  L1TMuonEndCap::calc_chamber(_hit.Station(), _hit.Sector(), _hit.Subsector(), _hit.Ring(), _hit.CSC_ID()));
29 
30  _hit.SetCSCDetId(_hit.CreateCSCDetId());
31  //_hit.SetCSCLCTDigi ( _hit.CreateCSCCorrelatedLCTDigi() );
32 
33  // Station, CSC_ID, Sector, Subsector, and Neighbor filled in
34  // EventFilter/L1TRawToDigi/src/implementations_stage2/EMTFBlockME.cc
35  // "set_layer()" is not invoked, so Layer is not yet filled - AWB 21.04.16
36 
37  } // End ImportME
38 
39  void ImportRPC(EMTFHit& _hit, const l1t::emtf::RPC _RPC, const int _endcap, const int _evt_sector) {
40  _hit.set_endcap(_endcap == 1 ? 1 : -1);
41  _hit.set_sector_idx(_endcap == 1 ? _evt_sector - 1 : _evt_sector + 5);
42 
43  _hit.set_phi_fp(_RPC.Phi() * 4); // 1/4th the precision of CSC LCTs
44  _hit.set_theta_fp(_RPC.Theta() * 4); // 1/4th the precision of CSC LCTs
45  _hit.set_bx(_RPC.TBIN() - 3);
46  _hit.set_valid(_RPC.VP());
47  _hit.set_bc0(_RPC.BC0());
48  _hit.set_is_CSC(false);
49  _hit.set_is_RPC(true);
50  _hit.set_subsystem(2);
51 
52  _hit.SetRPCDetId(_hit.CreateRPCDetId());
53  // // Not yet implemented - AWB 15.03.17
54  // _hit.SetRPCDigi ( _hit.CreateRPCDigi() );
55 
56  // Convert integer values to degrees
58  _hit.set_phi_glob(L1TMuonEndCap::calc_phi_glob_deg(_hit.Phi_loc(), _evt_sector));
61 
62  // Station, Ring, Sector, Subsector, Neighbor, and PC/FS/BT_segment filled in
63  // EventFilter/L1TRawToDigi/src/implementations_stage2/EMTFBlockRPC.cc - AWB 02.05.17
64 
65  } // End ImportRPC
66 
67  void ImportSP(EMTFTrack& _track, const l1t::emtf::SP _SP, const int _endcap, const int _evt_sector) {
68  _track.set_endcap((_endcap == 1) ? 1 : -1);
69  _track.set_sector(_evt_sector);
70  _track.set_sector_idx((_endcap == 1) ? _evt_sector - 1 : _evt_sector + 5);
71  _track.set_mode(_SP.Mode());
72  _track.set_mode_inv((((_SP.Mode() >> 0) & 1) << 3) | (((_SP.Mode() >> 1) & 1) << 2) |
73  (((_SP.Mode() >> 2) & 1) << 1) | (((_SP.Mode() >> 3) & 1) << 0));
74  _track.set_charge((_SP.C() == 1) ? -1 : 1); // uGMT uses opposite of physical charge (to match pdgID)
75  _track.set_bx(_SP.TBIN() - 3);
76  _track.set_phi_fp(_SP.Phi_full());
78  _track.set_phi_glob(L1TMuonEndCap::calc_phi_glob_deg(_track.Phi_loc(), _track.Sector()));
80  _track.set_pt((_SP.Pt_GMT() - 1) * 0.5);
81 
82  _track.set_gmt_pt(_SP.Pt_GMT());
83  _track.set_gmt_phi(_SP.Phi_GMT());
84  _track.set_gmt_eta(_SP.Eta_GMT());
85  _track.set_gmt_quality(_SP.Quality_GMT());
86  _track.set_gmt_charge(_SP.C());
87  _track.set_gmt_charge_valid(_SP.VC());
88 
89  EMTFPtLUT _lut = {};
90  _lut.address = _SP.Pt_LUT_addr();
91  _track.set_PtLUT(_lut);
92 
93  // First_bx, Second_bx, Track_num, Has_neighbor, All_neighbor, and Hits should be filled in
94  // EventFilter/L1TRawToDigi/src/implementations_stage2/EMTFBlockSP.cc - AWB 07.03.17
95 
96  } // End ImportSP
97 
98  } // End namespace emtf
99  } // End namespace stage2
100 } // End namespace l1t
void set_mode(int bits)
Definition: EMTFTrack.h:121
void set_phi_glob(float val)
Definition: EMTFHit.h:172
void set_bx(int bits)
Definition: EMTFTrack.h:126
int TBIN() const
Definition: ME.h:85
int Phi_full() const
Definition: SP.h:82
float Phi_loc() const
Definition: EMTFHit.h:229
int Strip() const
Definition: EMTFHit.h:207
void set_gmt_eta(int bits)
Definition: EMTFTrack.h:142
void set_sector(int bits)
Definition: EMTFTrack.h:119
int VP() const
Definition: ME.h:84
int calc_chamber(int station, int sector, int subsector, int ring, int csc_ID)
Definition: TrackTools.cc:28
int Quality() const
Definition: ME.h:67
void set_phi_fp(int bits)
Definition: EMTFTrack.h:137
void ImportME(EMTFHit &_hit, const l1t::emtf::ME _ME, const int _endcap, const int _evt_sector)
int BC0() const
Definition: ME.h:69
int Phi_fp() const
Definition: EMTFHit.h:219
void set_theta(float val)
Definition: EMTFHit.h:173
void set_charge(int bits)
Definition: EMTFTrack.h:125
int Sector() const
Definition: EMTFTrack.h:149
float Theta() const
Definition: EMTFHit.h:231
int Mode() const
Definition: SP.h:90
double calc_phi_loc_deg(int bits)
Definition: TrackTools.h:165
void set_sector_idx(int bits)
Definition: EMTFHit.h:135
void set_bc0(int bits)
Definition: EMTFHit.h:158
Definition: Event.h:15
int TBIN() const
Definition: SP.h:102
delete x;
Definition: CaloConfig.h:22
void set_sync_err(int bits)
Definition: EMTFHit.h:157
int BC0() const
Definition: RPC.h:48
void set_theta_fp(int bits)
Definition: EMTFHit.h:162
void set_PtLUT(EMTFPtLUT bits)
Definition: EMTFTrack.h:115
void set_endcap(int bits)
Definition: EMTFHit.h:130
void set_sector_idx(int bits)
Definition: EMTFTrack.h:120
void set_ring(int bits)
Definition: EMTFHit.h:132
void SetRPCDetId(const RPCDetId &id)
Definition: EMTFHit.h:114
RPCDetId CreateRPCDetId() const
Definition: EMTFHit.cc:12
int TBIN() const
Definition: RPC.h:49
int Theta() const
Definition: RPC.h:43
int Subsector() const
Definition: EMTFHit.h:194
void ImportRPC(EMTFHit &_hit, const l1t::emtf::RPC _RPC, const int _endcap, const int _evt_sector)
void set_gmt_phi(int bits)
Definition: EMTFTrack.h:141
void set_pt(float val)
Definition: EMTFTrack.h:129
int Sector() const
Definition: EMTFHit.h:191
double calc_theta_deg_from_int(int theta_int)
Definition: TrackTools.h:117
int Phi_GMT() const
Definition: SP.h:88
int VC() const
Definition: SP.h:83
int Phi() const
Definition: RPC.h:42
void set_is_CSC(int bits)
Definition: EMTFHit.h:183
void set_pattern(int bits)
Definition: EMTFHit.h:154
void set_gmt_quality(int bits)
Definition: EMTFTrack.h:143
void set_wire(int bits)
Definition: EMTFHit.h:148
int CLCT_pattern() const
Definition: ME.h:68
CSCDetId CreateCSCDetId() const
Definition: EMTFHit.cc:6
int Ring() const
Definition: EMTFHit.h:190
double calc_phi_glob_deg(double loc, int sector)
Definition: TrackTools.h:155
int VP() const
Definition: RPC.h:50
void set_phi_loc(float val)
Definition: EMTFHit.h:171
void set_is_RPC(int bits)
Definition: EMTFHit.h:184
void SetCSCDetId(const CSCDetId &id)
Definition: EMTFHit.h:113
int SE() const
Definition: ME.h:79
void set_eta(float val)
Definition: EMTFTrack.h:136
void set_gmt_charge(int bits)
Definition: EMTFTrack.h:144
float Phi_loc() const
Definition: EMTFTrack.h:171
int Station() const
Definition: EMTFHit.h:189
int Pt_GMT() const
Definition: SP.h:92
void set_valid(int bits)
Definition: EMTFHit.h:156
int calc_ring(int station, int csc_ID, int strip)
Definition: TrackTools.cc:5
void set_strip(int bits)
Definition: EMTFHit.h:149
double calc_eta_from_theta_deg(double theta_deg, int endcap)
Definition: TrackTools.h:102
uint64_t address
Definition: EMTFTrack.h:17
void set_endcap(int bits)
Definition: EMTFTrack.h:118
void set_subsystem(int bits)
Definition: EMTFHit.h:186
int Strip() const
Definition: ME.h:73
int Eta_GMT() const
Definition: SP.h:91
void ImportSP(EMTFTrack &_track, const l1t::emtf::SP _SP, const int _endcap, const int _evt_sector)
int C() const
Definition: SP.h:81
void set_phi_loc(float val)
Definition: EMTFTrack.h:138
void set_bx(int bits)
Definition: EMTFHit.h:159
void set_gmt_charge_valid(int bits)
Definition: EMTFTrack.h:145
int Endcap() const
Definition: EMTFHit.h:188
void set_phi_glob(float val)
Definition: EMTFTrack.h:139
int Theta_fp() const
Definition: EMTFHit.h:220
unsigned long Pt_LUT_addr() const
Definition: SP.h:107
int Wire() const
Definition: ME.h:66
void set_mode_inv(int bits)
Definition: EMTFTrack.h:122
int LR() const
Definition: ME.h:71
void set_quality(int bits)
Definition: EMTFHit.h:153
void set_gmt_pt(int bits)
Definition: EMTFTrack.h:140
void set_chamber(int bits)
Definition: EMTFHit.h:138
double calc_eta(int bits)
Definition: TrackTools.h:84
int Quality_GMT() const
Definition: SP.h:87
void set_bend(int bits)
Definition: EMTFHit.h:155
int CSC_ID() const
Definition: EMTFHit.h:197
void set_phi_fp(int bits)
Definition: EMTFHit.h:161
void set_eta(float val)
Definition: EMTFHit.h:174