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
L1MuGMTPhiProjectionUnit Class Reference

#include <L1MuGMTPhiProjectionUnit.h>

Public Member Functions

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

Private Types

typedef std::bitset< 18 > TPhiBits
 

Private Member Functions

void load ()
 

Private Attributes

float m_fphi
 
int m_id
 
int m_iphi
 
const L1MuGMTMipIsoAUm_MIAU
 
const L1MuRegionalCandm_mu
 
TPhiBits m_phi_select
 

Detailed Description

L1 Global Muon Trigger Phi projection unit.

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

Definition at line 55 of file L1MuGMTPhiProjectionUnit.h.

Member Typedef Documentation

typedef std::bitset<18> L1MuGMTPhiProjectionUnit::TPhiBits
private

Definition at line 85 of file L1MuGMTPhiProjectionUnit.h.

Constructor & Destructor Documentation

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

constructor

Definition at line 56 of file L1MuGMTPhiProjectionUnit.cc.

56  :
57  m_MIAU(miau), m_id(id), m_mu(0) {
58 }
const L1MuGMTMipIsoAU & m_MIAU
const L1MuRegionalCand * m_mu
L1MuGMTPhiProjectionUnit::~L1MuGMTPhiProjectionUnit ( )
virtual

destructor

Definition at line 63 of file L1MuGMTPhiProjectionUnit.cc.

References reset().

63  {
64 
65  reset();
66 
67 }
void reset()
clear phi projection unit

Member Function Documentation

int L1MuGMTPhiProjectionUnit::id ( void  ) const
inline

return identifier

Definition at line 75 of file L1MuGMTPhiProjectionUnit.h.

References m_id.

bool L1MuGMTPhiProjectionUnit::isSelected ( int  idx) const
inline

return phi select bit (idx: 0..17)

Definition at line 78 of file L1MuGMTPhiProjectionUnit.h.

References m_phi_select.

78 { return m_phi_select[idx]; }
void L1MuGMTPhiProjectionUnit::load ( )
private

Definition at line 153 of file L1MuGMTPhiProjectionUnit.cc.

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

Referenced by run().

153  {
154 
155  // retrieve muon from MIP & ISO bit assignment unit
156  m_mu = m_MIAU.muon( m_id % 8 );
157 }
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 L1MuGMTPhiProjectionUnit::print ( void  ) const

print results after phi projection

Definition at line 140 of file L1MuGMTPhiProjectionUnit.cc.

References i, and m_phi_select.

140  {
141 
142  edm::LogVerbatim("GMT_PhiProjection_info") << "Phi select bits: ";
143  for ( int i=0; i<18; i++ ) {
144  edm::LogVerbatim("GMT_PhiProjection_info") << m_phi_select[i] << " ";
145  }
146  edm::LogVerbatim("GMT_PhiProjection_info") << " ";
147 }
int i
Definition: DBlmapReader.cc:9
void L1MuGMTPhiProjectionUnit::reset ( void  )

clear phi projection unit

Definition at line 128 of file L1MuGMTPhiProjectionUnit.cc.

References m_fphi, m_iphi, m_mu, and m_phi_select.

Referenced by ~L1MuGMTPhiProjectionUnit().

128  {
129 
130  m_mu = 0;
131  m_iphi = 0;
132  m_fphi = 0.;
133  m_phi_select = (unsigned int) 0;
134 }
const L1MuRegionalCand * m_mu
void L1MuGMTPhiProjectionUnit::run ( void  )

run phi projection unit

Definition at line 76 of file L1MuGMTPhiProjectionUnit.cc.

References DeDxDiscriminatorTools::charge(), L1MuRegionalCand::charge_packed(), L1MuGlobalMuonTrigger::DebugBlockForFill(), L1MuRegionalCand::empty(), eta(), L1MuRegionalCand::eta_packed(), L1MuGMTConfig::getMIAUEtaConvLUT(), L1MuGMTConfig::getMIAUPhiPro1LUT(), L1MuGMTConfig::getMIAUPhiPro2LUT(), L1MuGMTMipIsoAU::GMT(), i, load(), m_id, m_MIAU, m_mu, m_phi_select, phi, L1MuRegionalCand::phi_packed(), L1MuRegionalCand::pt_packed(), L1MuGMTDebugBlock::SetPhiSelBits(), L1MuGMTMIAUPhiPro1LUT::SpecificLookup_cphi_fine(), L1MuGMTMIAUPhiPro1LUT::SpecificLookup_cphi_ofs(), L1MuGMTMIAUEtaConvLUT::SpecificLookup_eta_out(), and L1MuGMTMIAUPhiPro2LUT::SpecificLookup_phi_sel().

76  {
77 
78  load();
79  if (m_mu && ( !m_mu->empty() ) ) {
80  int lut_id = m_id / 4;
81 
82  // obtain inputs as coded in HW
83  unsigned pt = m_mu->pt_packed();
84  unsigned charge = m_mu->charge_packed();
85  unsigned eta = m_mu->eta_packed();
86  unsigned phi = m_mu->phi_packed();
87 
88  // split phi in fine and coarse
89  unsigned phi_fine = phi & ( (1<<3) - 1 ); // lower 3 bits
90  unsigned phi_coarse = phi >> 3; // upper 5 bits
91 
92  // eta conversion lookup
94  unsigned eta4bit = etaconv_lut->SpecificLookup_eta_out (lut_id, eta);
95 
96  // phi projection 1 lookups
98  unsigned cphi_fine = phipro1_lut->SpecificLookup_cphi_fine (lut_id, phi_fine, eta4bit, pt, charge);
99  unsigned cphi_ofs = phipro1_lut->SpecificLookup_cphi_ofs (lut_id, phi_fine, eta4bit, pt, charge);
100 
101  // phi projection 2 lookup
103  unsigned phi_sel_bits = phipro2_lut->SpecificLookup_phi_sel (lut_id, phi_coarse, cphi_fine, cphi_ofs, charge);
104 
105  // convert to bit array
106  //
107  // see comments in L1MuGMTMIAUEtaProLUT.cc
108  //
109  m_phi_select = (unsigned) 0;
110 
111  // shift by 9 bits //FIXME: fix when calo delivers the MIP bits correctly!
112  for (unsigned int i=0; i<9; i++)
113  if ( (phi_sel_bits & (1 << i)) == (unsigned) (1<<i))
114  m_phi_select[i+9] = 1;
115 
116  for (unsigned int i=9; i<18; i++)
117  if ( (phi_sel_bits & (1 << i)) == (unsigned) (1<<i))
118  m_phi_select[i-9] = 1;
119 
121  }
122 }
int i
Definition: DBlmapReader.cc:9
static L1MuGMTMIAUPhiPro2LUT * getMIAUPhiPro2LUT()
virtual bool empty() const
return empty flag
unsigned charge_packed() const
return charge packed as in hardware (0=pos, 1=neg)
T eta() const
double charge(const std::vector< uint8_t > &Ampls)
static L1MuGMTMIAUEtaConvLUT * getMIAUEtaConvLUT()
const L1MuGlobalMuonTrigger & GMT() const
unsigned SpecificLookup_cphi_fine(int idx, unsigned phi_fine, unsigned eta, unsigned pt, unsigned charge) const
specific lookup function for cphi_fine
unsigned eta_packed() const
return eta packed as in hardware
unsigned SpecificLookup_phi_sel(int idx, unsigned cphi_start, unsigned cphi_fine, unsigned cphi_ofs, unsigned charge) const
specific lookup function for phi_sel
unsigned SpecificLookup_cphi_ofs(int idx, unsigned phi_fine, unsigned eta, unsigned pt, unsigned charge) const
specific lookup function for cphi_ofs
const L1MuGMTMipIsoAU & m_MIAU
unsigned SpecificLookup_eta_out(int idx, unsigned eta_in) const
specific lookup function for eta_out
void SetPhiSelBits(int idx, unsigned phisel)
Set phi select bits for current bx.
static L1MuGMTMIAUPhiPro1LUT * getMIAUPhiPro1LUT()
unsigned pt_packed() const
return pt packed as in hardware
const L1MuRegionalCand * m_mu
L1MuGMTDebugBlock * DebugBlockForFill() const
for debug: return the debug block (in order to fill it)
unsigned phi_packed() const
return phi packed as in hardware
Definition: DDAxes.h:10

Member Data Documentation

float L1MuGMTPhiProjectionUnit::m_fphi
private

Definition at line 95 of file L1MuGMTPhiProjectionUnit.h.

Referenced by reset().

int L1MuGMTPhiProjectionUnit::m_id
private

Definition at line 90 of file L1MuGMTPhiProjectionUnit.h.

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

int L1MuGMTPhiProjectionUnit::m_iphi
private

Definition at line 94 of file L1MuGMTPhiProjectionUnit.h.

Referenced by reset().

const L1MuGMTMipIsoAU& L1MuGMTPhiProjectionUnit::m_MIAU
private

Definition at line 87 of file L1MuGMTPhiProjectionUnit.h.

Referenced by load(), and run().

const L1MuRegionalCand* L1MuGMTPhiProjectionUnit::m_mu
private

Definition at line 92 of file L1MuGMTPhiProjectionUnit.h.

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

TPhiBits L1MuGMTPhiProjectionUnit::m_phi_select
private

Definition at line 97 of file L1MuGMTPhiProjectionUnit.h.

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