CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Types | Private Member Functions | Private Attributes
L1MuGMTEtaProjectionUnit Class Reference

#include <L1MuGMTEtaProjectionUnit.h>

Public Member Functions

int id () const
 return identifier More...
 
bool isSelected (int idx) const
 return eta select bit (idx: 0..13) More...
 
 L1MuGMTEtaProjectionUnit (const L1MuGMTMipIsoAU &miau, int id)
 constructor More...
 
void print () const
 print results after eta projection More...
 
void reset ()
 clear eta projection unit More...
 
void run ()
 run eta projection unit More...
 
virtual ~L1MuGMTEtaProjectionUnit ()
 destructor More...
 

Private Types

typedef std::bitset< 14 > TEtaBits
 

Private Member Functions

void load ()
 

Private Attributes

TEtaBits m_eta_select
 
float m_feta
 
int m_id
 
int m_ieta
 
const L1MuGMTMipIsoAUm_MIAU
 
const L1MuRegionalCandm_mu
 

Detailed Description

L1 Global Muon Trigger Eta projection unit.

Projects a muon from the muon system to the calorimeter or vertex and selects one or more calorimeter regions in eta to be checked for MIP and Isolation.

Definition at line 54 of file L1MuGMTEtaProjectionUnit.h.

Member Typedef Documentation

typedef std::bitset<14> L1MuGMTEtaProjectionUnit::TEtaBits
private

Definition at line 84 of file L1MuGMTEtaProjectionUnit.h.

Constructor & Destructor Documentation

L1MuGMTEtaProjectionUnit::L1MuGMTEtaProjectionUnit ( const L1MuGMTMipIsoAU miau,
int  id 
)

constructor

Definition at line 52 of file L1MuGMTEtaProjectionUnit.cc.

52  :
53  m_MIAU(miau), m_id(id), m_mu(0) {
54 
55 }
const L1MuGMTMipIsoAU & m_MIAU
const L1MuRegionalCand * m_mu
L1MuGMTEtaProjectionUnit::~L1MuGMTEtaProjectionUnit ( )
virtual

destructor

Definition at line 60 of file L1MuGMTEtaProjectionUnit.cc.

References reset().

60  {
61 
62  reset();
63 
64 }
void reset()
clear eta projection unit

Member Function Documentation

int L1MuGMTEtaProjectionUnit::id ( void  ) const
inline

return identifier

Definition at line 74 of file L1MuGMTEtaProjectionUnit.h.

References m_id.

bool L1MuGMTEtaProjectionUnit::isSelected ( int  idx) const
inline

return eta select bit (idx: 0..13)

Definition at line 77 of file L1MuGMTEtaProjectionUnit.h.

References m_eta_select.

77 { return m_eta_select[idx]; }
void L1MuGMTEtaProjectionUnit::load ( )
private

Definition at line 144 of file L1MuGMTEtaProjectionUnit.cc.

References m_id, m_MIAU, m_mu, and L1MuGMTMipIsoAU::muon().

Referenced by run().

144  {
145 
146  // retrieve muon from MIP & ISO bit assignment unit
147  m_mu = m_MIAU.muon( m_id % 8 );
148 }
const L1MuGMTMipIsoAU & m_MIAU
const L1MuRegionalCand * m_mu
const L1MuRegionalCand * muon(int idx) const
return input muon (idx: 0..3: DT/CSC, 4..7: RPC)
void L1MuGMTEtaProjectionUnit::print ( void  ) const

print results after eta projection

Definition at line 131 of file L1MuGMTEtaProjectionUnit.cc.

References i, and m_eta_select.

131  {
132 
133  edm::LogVerbatim("GMT_EtaProjection_info") << "Eta select bits: ";
134  for ( int i=0; i<14; i++ ) {
135  edm::LogVerbatim("GMT_EtaProjection_info") << m_eta_select[i] << " ";
136  }
137  edm::LogVerbatim("GMT_EtaProjection_info");
138 }
int i
Definition: DBlmapReader.cc:9
void L1MuGMTEtaProjectionUnit::reset ( void  )

clear eta projection unit

Definition at line 119 of file L1MuGMTEtaProjectionUnit.cc.

References m_eta_select, m_feta, m_ieta, and m_mu.

Referenced by ~L1MuGMTEtaProjectionUnit().

119  {
120 
121  m_mu = 0;
122  m_ieta = 0;
123  m_feta = 0.;
124  m_eta_select = (unsigned int) 0;
125 }
const L1MuRegionalCand * m_mu
void L1MuGMTEtaProjectionUnit::run ( void  )

run eta projection unit

Definition at line 73 of file L1MuGMTEtaProjectionUnit.cc.

References DeDxDiscriminatorTools::charge(), L1MuRegionalCand::charge_packed(), L1MuGlobalMuonTrigger::DebugBlockForFill(), L1MuRegionalCand::empty(), eta(), L1MuRegionalCand::eta_packed(), L1MuGMTConfig::getMIAUEtaProLUT(), L1MuGMTMipIsoAU::GMT(), i, load(), m_eta_select, m_id, m_MIAU, m_mu, L1MuRegionalCand::pt_packed(), L1MuGMTDebugBlock::SetEtaSelBits(), and L1MuGMTMIAUEtaProLUT::SpecificLookup_eta_sel().

73  {
74 
75  load();
76  if ( m_mu && ( !m_mu->empty() ) ) {
77 
78  int isFwd = m_id / 16;
79  int lut_id = m_id / 4;
80 
81  // obtain inputs as coded in HW
82  unsigned pt = m_mu->pt_packed();
83  unsigned charge = m_mu->charge_packed();
84  unsigned eta = m_mu->eta_packed();
85 
86  // lookup
88  unsigned eta_sel_bits = ep_lut->SpecificLookup_eta_sel (lut_id, eta, pt, charge);
89 
90  // convert to bit array
91  //
92  // see comments in L1MuGMTMIAUEtaProLUT.cc
93  //
94  m_eta_select = (unsigned) 0;
95 
96  if (isFwd) { // forward
97  for (int i=0; i<5; i++)
98  if ( (eta_sel_bits & (1 << i)) == (unsigned) (1<<i))
99  m_eta_select[i] = 1;
100 
101  for (int i=5; i<10; i++)
102  if ( (eta_sel_bits & (1 << i)) == (unsigned) (1<<i))
103  m_eta_select[i+4] = 1;
104  } else { // barrel
105  for (int i=0; i<10; i++)
106  if ( (eta_sel_bits & (1 << i)) == (unsigned) (1<<i))
107  m_eta_select[i+2] = 1;
108  }
109 
110  // m_MIAU.GMT().DebugBlockForFill()->SetEtaSelBits( m_id, m_eta_select.read(0,14)) ;
112  }
113 }
int i
Definition: DBlmapReader.cc:9
const L1MuGMTMipIsoAU & m_MIAU
virtual bool empty() const
return empty flag
unsigned charge_packed() const
return charge packed as in hardware (0=pos, 1=neg)
unsigned SpecificLookup_eta_sel(int idx, unsigned eta, unsigned pt, unsigned charge) const
specific lookup function for eta_sel
T eta() const
double charge(const std::vector< uint8_t > &Ampls)
const L1MuGlobalMuonTrigger & GMT() const
const L1MuRegionalCand * m_mu
unsigned eta_packed() const
return eta packed as in hardware
void SetEtaSelBits(int idx, unsigned etasel)
Set eta select bits for current bx.
unsigned pt_packed() const
return pt packed as in hardware
static L1MuGMTMIAUEtaProLUT * getMIAUEtaProLUT()
L1MuGMTDebugBlock * DebugBlockForFill() const
for debug: return the debug block (in order to fill it)

Member Data Documentation

TEtaBits L1MuGMTEtaProjectionUnit::m_eta_select
private

Definition at line 96 of file L1MuGMTEtaProjectionUnit.h.

Referenced by isSelected(), print(), reset(), and run().

float L1MuGMTEtaProjectionUnit::m_feta
private

Definition at line 94 of file L1MuGMTEtaProjectionUnit.h.

Referenced by reset().

int L1MuGMTEtaProjectionUnit::m_id
private

Definition at line 89 of file L1MuGMTEtaProjectionUnit.h.

Referenced by id(), load(), and run().

int L1MuGMTEtaProjectionUnit::m_ieta
private

Definition at line 93 of file L1MuGMTEtaProjectionUnit.h.

Referenced by reset().

const L1MuGMTMipIsoAU& L1MuGMTEtaProjectionUnit::m_MIAU
private

Definition at line 86 of file L1MuGMTEtaProjectionUnit.h.

Referenced by load(), and run().

const L1MuRegionalCand* L1MuGMTEtaProjectionUnit::m_mu
private

Definition at line 91 of file L1MuGMTEtaProjectionUnit.h.

Referenced by load(), reset(), and run().