CMS 3D CMS Logo

Classes | Functions
l1t::stage2::emtf Namespace Reference

Classes

class  CountersBlockUnpacker
 
class  HeadersBlockUnpacker
 
class  MEBlockUnpacker
 
class  RPCBlockUnpacker
 
class  SPBlockUnpacker
 
class  TrailersBlockUnpacker
 

Functions

std::vector< int > convert_ME_location (int _station, int _csc_ID, int _sector, bool _csc_ID_shift=false)
 
void convert_RPC_location (int &station, int &ring, int &sector, int &subsector, int &neighbor, int &segment, const int evt_sector, const int frame, const int word, const int link)
 
std::vector< int > convert_SP_location (int _csc_ID, int _sector, int _subsector, int _station)
 
uint16_t GetHexBits (uint16_t word, uint16_t lowBit, uint16_t highBit)
 
uint32_t GetHexBits (uint32_t word, uint32_t lowBit, uint32_t highBit)
 
uint32_t GetHexBits (uint16_t word1, uint16_t lowBit1, uint16_t highBit1, uint16_t word2, uint16_t lowBit2, uint16_t highBit2)
 
void ImportME (EMTFHit &_hit, const l1t::emtf::ME _ME, const int _endcap, const int _evt_sector)
 
void ImportRPC (EMTFHit &_hit, const l1t::emtf::RPC _RPC, const int _endcap, const int _evt_sector)
 
void ImportSP (EMTFTrack &_track, const l1t::emtf::SP _SP, const int _endcap, const int _evt_sector)
 
int PowInt (int base, int exp)
 
int TwosCompl (int nBits, int bits)
 

Function Documentation

std::vector<int> l1t::stage2::emtf::convert_ME_location ( int  _station,
int  _csc_ID,
int  _sector,
bool  _csc_ID_shift = false 
)

Definition at line 68 of file EMTFBlockME.cc.

Referenced by l1t::stage2::emtf::MEBlockUnpacker::unpack().

68  {
69  int new_sector = _sector;
70  int new_csc_ID = _csc_ID;
71  if (_csc_ID_shift) new_csc_ID += 1; // Before FW update on 05.05.16, shift by +1 from 0,1,2... convention to 1,2,3...
72  if (_station == 0) { int arr[] = { 1, new_csc_ID, new_sector, 1, 0}; std::vector<int> vec(arr, arr+5); return vec; }
73  else if (_station == 1) { int arr[] = { 1, new_csc_ID, new_sector, 2, 0}; std::vector<int> vec(arr, arr+5); return vec; }
74  else if (_station <= 4) { int arr[] = {_station, new_csc_ID, new_sector, -1, 0}; std::vector<int> vec(arr, arr+5); return vec; }
75  else if (_station == 5) new_sector = (_sector != 1) ? _sector-1 : 6; // Indicates neighbor chamber, don't return yet
76  else { int arr[] = {_station, _csc_ID, _sector, -99, -99}; std::vector<int> vec(arr, arr+5); return vec; }
77 
78  // Mapping for chambers from neighboring sector
79  if (new_csc_ID == 1) { int arr[] = {1, 3, new_sector, 2, 1}; std::vector<int> vec(arr, arr+5); return vec; }
80  else if (new_csc_ID == 2) { int arr[] = {1, 6, new_sector, 2, 1}; std::vector<int> vec(arr, arr+5); return vec; }
81  else if (new_csc_ID == 3) { int arr[] = {1, 9, new_sector, 2, 1}; std::vector<int> vec(arr, arr+5); return vec; }
82  else if (new_csc_ID == 4) { int arr[] = {2, 3, new_sector, -1, 1}; std::vector<int> vec(arr, arr+5); return vec; }
83  else if (new_csc_ID == 5) { int arr[] = {2, 9, new_sector, -1, 1}; std::vector<int> vec(arr, arr+5); return vec; }
84  else if (new_csc_ID == 6) { int arr[] = {3, 3, new_sector, -1, 1}; std::vector<int> vec(arr, arr+5); return vec; }
85  else if (new_csc_ID == 7) { int arr[] = {3, 9, new_sector, -1, 1}; std::vector<int> vec(arr, arr+5); return vec; }
86  else if (new_csc_ID == 8) { int arr[] = {4, 3, new_sector, -1, 1}; std::vector<int> vec(arr, arr+5); return vec; }
87  else if (new_csc_ID == 9) { int arr[] = {4, 9, new_sector, -1, 1}; std::vector<int> vec(arr, arr+5); return vec; }
88  else { int arr[] = {_station, _csc_ID, _sector, -99, -99}; std::vector<int> vec(arr, arr+5); return vec; }
89  }
void l1t::stage2::emtf::convert_RPC_location ( int &  station,
int &  ring,
int &  sector,
int &  subsector,
int &  neighbor,
int &  segment,
const int  evt_sector,
const int  frame,
const int  word,
const int  link 
)

Definition at line 69 of file EMTFBlockRPC.cc.

Referenced by l1t::stage2::emtf::RPCBlockUnpacker::unpack().

70  {
71  station = -99;
72  ring = -99;
73  sector = -99;
74  subsector = -99;
75  neighbor = -99;
76  segment = -99;
77 
78  // "link" is the "link index" field (0 - 6) in the EMTF DAQ document, not "link number" (1 - 7)
79  // Neighbor indicated by link == 0
80  sector = (link != 0 ? evt_sector : (evt_sector == 1 ? 6 : evt_sector - 1) );
81  subsector = (link != 0 ? link : 6);
82  neighbor = (link == 0 ? 1 : 0);
83  segment = (word % 2);
84 
85  if (frame == 0) {
86  station = (word < 2 ? 1 : 2);
87  ring = 2;
88  } else if (frame == 1) {
89  station = 3;
90  ring = (word < 2 ? 2 : 3);
91  } else if (frame == 2) {
92  station = 4;
93  ring = (word < 2 ? 2 : 3);
94  }
95  } // End function: void convert_RPC_location()
std::vector<int> l1t::stage2::emtf::convert_SP_location ( int  _csc_ID,
int  _sector,
int  _subsector,
int  _station 
)

Definition at line 82 of file EMTFBlockSP.cc.

Referenced by l1t::stage2::emtf::SPBlockUnpacker::unpack().

82  {
83  int new_sector = _sector;
84  if (_station == 1) {
85  if (_csc_ID < 0) { int arr[] = {_csc_ID, -99, -99, -99}; std::vector<int> vec(arr, arr+4); return vec; }
86  else if (_csc_ID == 0) { int arr[] = { -1, -1, -1, -1}; std::vector<int> vec(arr, arr+4); return vec; }
87  else if (_csc_ID <= 9) { int arr[] = {_csc_ID, new_sector, _subsector+1, 0}; std::vector<int> vec(arr, arr+4); return vec; }
88  else new_sector = (_sector != 1) ? _sector-1 : 6;
89 
90  if (_csc_ID == 10) { int arr[] = {3, new_sector, 2, 1}; std::vector<int> vec(arr, arr+4); return vec; }
91  else if (_csc_ID == 11) { int arr[] = {6, new_sector, 2, 1}; std::vector<int> vec(arr, arr+4); return vec; }
92  else if (_csc_ID == 12) { int arr[] = {9, new_sector, 2, 1}; std::vector<int> vec(arr, arr+4); return vec; }
93  else { int arr[] = {_csc_ID, -99, -99, -99}; std::vector<int> vec(arr, arr+4); return vec; }
94  }
95  else if (_station == 2 || _station == 3 || _station == 4) {
96  if (_csc_ID < 0) { int arr[] = {_csc_ID, -99, -99, -99}; std::vector<int> vec(arr, arr+4); return vec; }
97  else if (_csc_ID == 0) { int arr[] = { -1, -1, -1, -1}; std::vector<int> vec(arr, arr+4); return vec; }
98  else if (_csc_ID <= 9) { int arr[] = {_csc_ID, new_sector, -1, 0}; std::vector<int> vec(arr, arr+4); return vec; }
99  else new_sector = (_sector != 1) ? _sector-1 : 6;
100 
101  if (_csc_ID == 10) { int arr[] = {3, new_sector, -1, 1}; std::vector<int> vec(arr, arr+4); return vec; }
102  else if (_csc_ID == 11) { int arr[] = {9, new_sector, -1, 1}; std::vector<int> vec(arr, arr+4); return vec; }
103  else { int arr[] = {_csc_ID, -99, -99, -99}; std::vector<int> vec(arr, arr+4); return vec; }
104  }
105  else { int arr[] = {-99, -99, -99, -99}; std::vector<int> vec(arr, arr+4); return vec; }
106  }
uint16_t l1t::stage2::emtf::GetHexBits ( uint16_t  word,
uint16_t  lowBit,
uint16_t  highBit 
)
inline
uint32_t l1t::stage2::emtf::GetHexBits ( uint32_t  word,
uint32_t  lowBit,
uint32_t  highBit 
)
inline

Definition at line 44 of file EMTFUnpackerTools.h.

References PowInt().

44  {
45  return ( (word >> lowBit) & (PowInt(2, (1 + highBit - lowBit)) - 1) );
46  }
int PowInt(int base, int exp)
uint32_t l1t::stage2::emtf::GetHexBits ( uint16_t  word1,
uint16_t  lowBit1,
uint16_t  highBit1,
uint16_t  word2,
uint16_t  lowBit2,
uint16_t  highBit2 
)
inline

Definition at line 49 of file EMTFUnpackerTools.h.

References PowInt().

50  {
51  uint16_t word1_sel = (word1 >> lowBit1) & (PowInt(2, (1 + highBit1 - lowBit1)) - 1);
52  uint16_t word2_sel = (word2 >> lowBit2) & (PowInt(2, (1 + highBit2 - lowBit2)) - 1);
53  return ( (word2_sel << (1 + highBit1 - lowBit1)) | word1_sel );
54  }
int PowInt(int base, int exp)
void l1t::stage2::emtf::ImportME ( EMTFHit _hit,
const l1t::emtf::ME  _ME,
const int  _endcap,
const int  _evt_sector 
)

Definition at line 9 of file EMTFUnpackerTools.cc.

References l1t::emtf::ME::BC0(), emtf::calc_chamber(), emtf::calc_ring(), l1t::emtf::ME::CLCT_pattern(), l1t::EMTFHit::CreateCSCDetId(), l1t::EMTFHit::CSC_ID(), l1t::emtf::ME::LR(), l1t::emtf::ME::Quality(), l1t::EMTFHit::Ring(), l1t::emtf::ME::SE(), l1t::EMTFHit::Sector(), l1t::EMTFHit::set_bc0(), l1t::EMTFHit::set_bend(), l1t::EMTFHit::set_bx(), l1t::EMTFHit::set_chamber(), l1t::EMTFHit::set_endcap(), l1t::EMTFHit::set_is_CSC(), l1t::EMTFHit::set_is_RPC(), l1t::EMTFHit::set_pattern(), l1t::EMTFHit::set_quality(), l1t::EMTFHit::set_ring(), l1t::EMTFHit::set_sector_idx(), l1t::EMTFHit::set_strip(), l1t::EMTFHit::set_subsystem(), l1t::EMTFHit::set_sync_err(), l1t::EMTFHit::set_valid(), l1t::EMTFHit::set_wire(), l1t::EMTFHit::SetCSCDetId(), l1t::EMTFHit::Station(), l1t::emtf::ME::Strip(), l1t::EMTFHit::Strip(), l1t::EMTFHit::Subsector(), l1t::emtf::ME::TBIN(), l1t::emtf::ME::VP(), and l1t::emtf::ME::Wire().

Referenced by l1t::stage2::emtf::MEBlockUnpacker::unpack().

10  {
11 
12  _hit.set_endcap ( _endcap == 1 ? 1 : -1 );
13  _hit.set_sector_idx ( _endcap == 1 ? _evt_sector - 1 : _evt_sector + 5 );
14 
15  _hit.set_wire ( _ME.Wire() );
16  _hit.set_strip ( _ME.Strip() );
17  _hit.set_quality ( _ME.Quality() );
18  _hit.set_pattern ( _ME.CLCT_pattern() );
19  _hit.set_bend ( (_ME.LR() == 1) ? 1 : -1 );
20  _hit.set_valid ( _ME.VP() );
21  _hit.set_sync_err ( _ME.SE() );
22  _hit.set_bx ( _ME.TBIN() - 3 );
23  _hit.set_bc0 ( _ME.BC0() );
24  _hit.set_is_CSC ( true );
25  _hit.set_is_RPC ( false );
26  _hit.set_subsystem ( 1 );
27  // _hit.set_layer();
28 
29  _hit.set_ring ( L1TMuonEndCap::calc_ring( _hit.Station(), _hit.CSC_ID(), _hit.Strip() ) );
31  _hit.Subsector(), _hit.Ring(), _hit.CSC_ID() ) );
32 
33  _hit.SetCSCDetId ( _hit.CreateCSCDetId() );
34  //_hit.SetCSCLCTDigi ( _hit.CreateCSCCorrelatedLCTDigi() );
35 
36  // Station, CSC_ID, Sector, Subsector, and Neighbor filled in
37  // EventFilter/L1TRawToDigi/src/implementations_stage2/EMTFBlockME.cc
38  // "set_layer()" is not invoked, so Layer is not yet filled - AWB 21.04.16
39 
40  } // End ImportME
int TBIN() const
Definition: ME.h:69
int Strip() const
Definition: EMTFHit.h:163
int VP() const
Definition: ME.h:68
int calc_chamber(int station, int sector, int subsector, int ring, int csc_ID)
Definition: TrackTools.cc:21
int Quality() const
Definition: ME.h:51
int BC0() const
Definition: ME.h:53
void set_sector_idx(int bits)
Definition: EMTFHit.h:91
void set_bc0(int bits)
Definition: EMTFHit.h:114
void set_sync_err(int bits)
Definition: EMTFHit.h:113
void set_endcap(int bits)
Definition: EMTFHit.h:86
void set_ring(int bits)
Definition: EMTFHit.h:88
int Subsector() const
Definition: EMTFHit.h:150
int Sector() const
Definition: EMTFHit.h:147
void set_is_CSC(int bits)
Definition: EMTFHit.h:139
void set_pattern(int bits)
Definition: EMTFHit.h:110
void set_wire(int bits)
Definition: EMTFHit.h:104
int CLCT_pattern() const
Definition: ME.h:52
CSCDetId CreateCSCDetId() const
Definition: EMTFHit.cc:6
int Ring() const
Definition: EMTFHit.h:146
void set_is_RPC(int bits)
Definition: EMTFHit.h:140
void SetCSCDetId(const CSCDetId &id)
Definition: EMTFHit.h:69
int SE() const
Definition: ME.h:63
int Station() const
Definition: EMTFHit.h:145
void set_valid(int bits)
Definition: EMTFHit.h:112
int calc_ring(int station, int csc_ID, int strip)
Definition: TrackTools.cc:5
void set_strip(int bits)
Definition: EMTFHit.h:105
void set_subsystem(int bits)
Definition: EMTFHit.h:142
int Strip() const
Definition: ME.h:57
void set_bx(int bits)
Definition: EMTFHit.h:115
int Wire() const
Definition: ME.h:50
int LR() const
Definition: ME.h:55
void set_quality(int bits)
Definition: EMTFHit.h:109
void set_chamber(int bits)
Definition: EMTFHit.h:94
void set_bend(int bits)
Definition: EMTFHit.h:111
int CSC_ID() const
Definition: EMTFHit.h:153
void l1t::stage2::emtf::ImportRPC ( EMTFHit _hit,
const l1t::emtf::RPC  _RPC,
const int  _endcap,
const int  _evt_sector 
)

Definition at line 43 of file EMTFUnpackerTools.cc.

References l1t::emtf::RPC::BC0(), emtf::calc_eta_from_theta_deg(), emtf::calc_phi_glob_deg(), emtf::calc_phi_loc_deg(), emtf::calc_theta_deg_from_int(), l1t::EMTFHit::CreateRPCDetId(), l1t::EMTFHit::Endcap(), l1t::emtf::RPC::Phi(), l1t::EMTFHit::Phi_fp(), l1t::EMTFHit::Phi_loc(), l1t::EMTFHit::set_bc0(), l1t::EMTFHit::set_bx(), l1t::EMTFHit::set_endcap(), l1t::EMTFHit::set_eta(), l1t::EMTFHit::set_is_CSC(), l1t::EMTFHit::set_is_RPC(), l1t::EMTFHit::set_phi_fp(), l1t::EMTFHit::set_phi_glob(), l1t::EMTFHit::set_phi_loc(), l1t::EMTFHit::set_sector_idx(), l1t::EMTFHit::set_subsystem(), l1t::EMTFHit::set_theta(), l1t::EMTFHit::set_theta_fp(), l1t::EMTFHit::set_valid(), l1t::EMTFHit::SetRPCDetId(), l1t::emtf::RPC::TBIN(), l1t::emtf::RPC::Theta(), l1t::EMTFHit::Theta(), l1t::EMTFHit::Theta_fp(), and l1t::emtf::RPC::VP().

Referenced by l1t::stage2::emtf::RPCBlockUnpacker::unpack().

44  {
45 
46  _hit.set_endcap ( _endcap == 1 ? 1 : -1 );
47  _hit.set_sector_idx ( _endcap == 1 ? _evt_sector - 1 : _evt_sector + 5 );
48 
49  _hit.set_phi_fp ( _RPC.Phi()*4 ); // 1/4th the precision of CSC LCTs
50  _hit.set_theta_fp ( _RPC.Theta()*4 ); // 1/4th the precision of CSC LCTs
51  _hit.set_bx ( _RPC.TBIN() - 3 );
52  _hit.set_valid ( _RPC.VP() );
53  _hit.set_bc0 ( _RPC.BC0() );
54  _hit.set_is_CSC ( false );
55  _hit.set_is_RPC ( true );
56  _hit.set_subsystem ( 2 );
57 
58  _hit.SetRPCDetId ( _hit.CreateRPCDetId() );
59  // // Not yet implemented - AWB 15.03.17
60  // _hit.SetRPCDigi ( _hit.CreateRPCDigi() );
61 
62  // Convert integer values to degrees
64  _hit.set_phi_glob ( L1TMuonEndCap::calc_phi_glob_deg ( _hit.Phi_loc(), _evt_sector ) );
66  _hit.set_eta ( L1TMuonEndCap::calc_eta_from_theta_deg ( _hit.Theta(), _hit.Endcap() ) );
67 
68  // Station, Ring, Sector, Subsector, Neighbor, and PC/FS/BT_segment filled in
69  // EventFilter/L1TRawToDigi/src/implementations_stage2/EMTFBlockRPC.cc - AWB 02.05.17
70 
71  } // End ImportRPC
void set_phi_glob(float val)
Definition: EMTFHit.h:128
float Phi_loc() const
Definition: EMTFHit.h:185
int Phi_fp() const
Definition: EMTFHit.h:175
void set_theta(float val)
Definition: EMTFHit.h:129
float Theta() const
Definition: EMTFHit.h:187
double calc_phi_loc_deg(int bits)
Definition: TrackTools.h:163
void set_sector_idx(int bits)
Definition: EMTFHit.h:91
void set_bc0(int bits)
Definition: EMTFHit.h:114
int BC0() const
Definition: RPC.h:42
void set_theta_fp(int bits)
Definition: EMTFHit.h:118
void set_endcap(int bits)
Definition: EMTFHit.h:86
void SetRPCDetId(const RPCDetId &id)
Definition: EMTFHit.h:70
RPCDetId CreateRPCDetId() const
Definition: EMTFHit.cc:13
int TBIN() const
Definition: RPC.h:43
int Theta() const
Definition: RPC.h:37
double calc_theta_deg_from_int(int theta_int)
Definition: TrackTools.h:109
int Phi() const
Definition: RPC.h:36
void set_is_CSC(int bits)
Definition: EMTFHit.h:139
double calc_phi_glob_deg(double loc, int sector)
Definition: TrackTools.h:153
int VP() const
Definition: RPC.h:44
void set_phi_loc(float val)
Definition: EMTFHit.h:127
void set_is_RPC(int bits)
Definition: EMTFHit.h:140
void set_valid(int bits)
Definition: EMTFHit.h:112
double calc_eta_from_theta_deg(double theta_deg, int endcap)
Definition: TrackTools.h:94
void set_subsystem(int bits)
Definition: EMTFHit.h:142
void set_bx(int bits)
Definition: EMTFHit.h:115
int Endcap() const
Definition: EMTFHit.h:144
int Theta_fp() const
Definition: EMTFHit.h:176
void set_phi_fp(int bits)
Definition: EMTFHit.h:117
void set_eta(float val)
Definition: EMTFHit.h:130
void l1t::stage2::emtf::ImportSP ( EMTFTrack _track,
const l1t::emtf::SP  _SP,
const int  _endcap,
const int  _evt_sector 
)

Definition at line 74 of file EMTFUnpackerTools.cc.

References l1t::EMTFPtLUT::address, l1t::emtf::SP::C(), emtf::calc_eta(), emtf::calc_phi_glob_deg(), emtf::calc_phi_loc_deg(), l1t::emtf::SP::Eta_GMT(), l1t::emtf::SP::Mode(), l1t::emtf::SP::Phi_full(), l1t::emtf::SP::Phi_GMT(), l1t::EMTFTrack::Phi_loc(), l1t::emtf::SP::Pt_GMT(), l1t::emtf::SP::Pt_LUT_addr(), l1t::emtf::SP::Quality_GMT(), l1t::EMTFTrack::Sector(), l1t::EMTFTrack::set_bx(), l1t::EMTFTrack::set_charge(), l1t::EMTFTrack::set_endcap(), l1t::EMTFTrack::set_eta(), l1t::EMTFTrack::set_gmt_charge(), l1t::EMTFTrack::set_gmt_charge_valid(), l1t::EMTFTrack::set_gmt_eta(), l1t::EMTFTrack::set_gmt_phi(), l1t::EMTFTrack::set_gmt_pt(), l1t::EMTFTrack::set_gmt_quality(), l1t::EMTFTrack::set_mode(), l1t::EMTFTrack::set_mode_inv(), l1t::EMTFTrack::set_phi_fp(), l1t::EMTFTrack::set_phi_glob(), l1t::EMTFTrack::set_phi_loc(), l1t::EMTFTrack::set_pt(), l1t::EMTFTrack::set_PtLUT(), l1t::EMTFTrack::set_sector(), l1t::EMTFTrack::set_sector_idx(), l1t::emtf::SP::TBIN(), and l1t::emtf::SP::VC().

Referenced by l1t::stage2::emtf::SPBlockUnpacker::unpack(), and l1t::EMTFTrack::~EMTFTrack().

75  {
76 
77  _track.set_endcap ( (_endcap == 1) ? 1 : -1 );
78  _track.set_sector ( _evt_sector );
79  _track.set_sector_idx ( (_endcap == 1) ? _evt_sector - 1 : _evt_sector + 5 );
80  _track.set_mode ( _SP.Mode() );
81  _track.set_mode_inv ( (((_SP.Mode() >> 0) & 1) << 3) |
82  (((_SP.Mode() >> 1) & 1) << 2) |
83  (((_SP.Mode() >> 2) & 1) << 1) |
84  (((_SP.Mode() >> 3) & 1) << 0) );
85  _track.set_charge ( (_SP.C() == 1) ? -1 : 1 ); // uGMT uses opposite of physical charge (to match pdgID)
86  _track.set_bx ( _SP.TBIN() - 3 );
87  _track.set_phi_fp ( _SP.Phi_full() );
89  _track.set_phi_glob ( L1TMuonEndCap::calc_phi_glob_deg( _track.Phi_loc(), _track.Sector() ) );
90  _track.set_eta ( L1TMuonEndCap::calc_eta( _SP.Eta_GMT() ) );
91  _track.set_pt ( (_SP.Pt_GMT() - 1) * 0.5 );
92 
93  _track.set_gmt_pt ( _SP.Pt_GMT() );
94  _track.set_gmt_phi ( _SP.Phi_GMT() );
95  _track.set_gmt_eta ( _SP.Eta_GMT() );
96  _track.set_gmt_quality( _SP.Quality_GMT() );
97  _track.set_gmt_charge ( _SP.C() );
98  _track.set_gmt_charge_valid( _SP.VC() );
99 
100  EMTFPtLUT _lut = {};
101  _lut.address = _SP.Pt_LUT_addr();
102  _track.set_PtLUT( _lut );
103 
104  // First_bx, Second_bx, Track_num, Has_neighbor, All_neighbor, and Hits should be filled in
105  // EventFilter/L1TRawToDigi/src/implementations_stage2/EMTFBlockSP.cc - AWB 07.03.17
106 
107  } // End ImportSP
void set_mode(int bits)
Definition: EMTFTrack.h:95
void set_bx(int bits)
Definition: EMTFTrack.h:100
int Phi_full() const
Definition: SP.h:61
void set_gmt_eta(int bits)
Definition: EMTFTrack.h:116
void set_sector(int bits)
Definition: EMTFTrack.h:93
void set_phi_fp(int bits)
Definition: EMTFTrack.h:111
void set_charge(int bits)
Definition: EMTFTrack.h:99
int Sector() const
Definition: EMTFTrack.h:124
int Mode() const
Definition: SP.h:69
double calc_phi_loc_deg(int bits)
Definition: TrackTools.h:163
int TBIN() const
Definition: SP.h:81
void set_PtLUT(EMTFPtLUT bits)
Definition: EMTFTrack.h:89
void set_sector_idx(int bits)
Definition: EMTFTrack.h:94
void set_gmt_phi(int bits)
Definition: EMTFTrack.h:115
void set_pt(float val)
Definition: EMTFTrack.h:103
int Phi_GMT() const
Definition: SP.h:67
int VC() const
Definition: SP.h:62
void set_gmt_quality(int bits)
Definition: EMTFTrack.h:117
double calc_phi_glob_deg(double loc, int sector)
Definition: TrackTools.h:153
void set_eta(float val)
Definition: EMTFTrack.h:110
void set_gmt_charge(int bits)
Definition: EMTFTrack.h:118
float Phi_loc() const
Definition: EMTFTrack.h:146
int Pt_GMT() const
Definition: SP.h:71
uint64_t address
Definition: EMTFTrack.h:17
void set_endcap(int bits)
Definition: EMTFTrack.h:92
int Eta_GMT() const
Definition: SP.h:70
int C() const
Definition: SP.h:60
void set_phi_loc(float val)
Definition: EMTFTrack.h:112
void set_gmt_charge_valid(int bits)
Definition: EMTFTrack.h:119
void set_phi_glob(float val)
Definition: EMTFTrack.h:113
unsigned long Pt_LUT_addr() const
Definition: SP.h:86
void set_mode_inv(int bits)
Definition: EMTFTrack.h:96
void set_gmt_pt(int bits)
Definition: EMTFTrack.h:114
double calc_eta(int bits)
Definition: TrackTools.h:76
int Quality_GMT() const
Definition: SP.h:66
int l1t::stage2::emtf::PowInt ( int  base,
int  exp 
)
inline

Definition at line 26 of file EMTFUnpackerTools.h.

References runEdmFileComparison::base.

Referenced by GetHexBits(), and TwosCompl().

26  {
27  if (exp == 0) return 1;
28  if (exp == 1) return base;
29  return base * PowInt(base, exp-1);
30  }
int PowInt(int base, int exp)
base
Make Sure CMSSW is Setup ##.
int l1t::stage2::emtf::TwosCompl ( int  nBits,
int  bits 
)
inline

Definition at line 33 of file EMTFUnpackerTools.h.

References bits, and PowInt().

Referenced by l1t::stage2::emtf::SPBlockUnpacker::unpack().

33  {
34  if (bits >> (nBits - 1) == 0) return bits;
35  else return bits - PowInt(2, nBits);
36  };
int PowInt(int base, int exp)
How EventSelector::AcceptEvent() decides whether to accept an event for output otherwise it is excluding the probing of A single or multiple positive and the trigger will pass if any such matching triggers are PASS or EXCEPTION[A criterion thatmatches no triggers at all is detected and causes a throw.] A single negative with an expectation of appropriate bit checking in the decision bits