CMS 3D CMS Logo

L1MuGMTEtaProjectionUnit Class Reference

L1 Global Muon Trigger Eta projection unit. More...

#include <L1Trigger/GlobalMuonTrigger/src/L1MuGMTEtaProjectionUnit.h>

List of all members.

Public Member Functions

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

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.

00052                                                                                       : 
00053   m_MIAU(miau), m_id(id), m_mu(0) {
00054 
00055 }

L1MuGMTEtaProjectionUnit::~L1MuGMTEtaProjectionUnit (  )  [virtual]

destructor

Definition at line 60 of file L1MuGMTEtaProjectionUnit.cc.

References reset().

00060                                                     { 
00061 
00062   reset();
00063   
00064 }


Member Function Documentation

int L1MuGMTEtaProjectionUnit::id ( void   )  const [inline]

return identifier

Definition at line 74 of file L1MuGMTEtaProjectionUnit.h.

References m_id.

00074 { return 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.

00077 { return m_eta_select[idx]; }

void L1MuGMTEtaProjectionUnit::load ( void   )  [private]

Definition at line 144 of file L1MuGMTEtaProjectionUnit.cc.

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

Referenced by run().

00144                                     {
00145 
00146   // retrieve muon from MIP & ISO bit assignment unit   
00147   m_mu = m_MIAU.muon( m_id % 8 );
00148 }

void L1MuGMTEtaProjectionUnit::print ( void   )  const

print results after eta projection

Definition at line 131 of file L1MuGMTEtaProjectionUnit.cc.

References i, and m_eta_select.

00131                                            {
00132 
00133   edm::LogVerbatim("GMT_EtaProjection_info") << "Eta select bits: ";
00134   for ( int i=0; i<14; i++ ) {
00135     edm::LogVerbatim("GMT_EtaProjection_info") << m_eta_select[i] << "  ";
00136   }
00137   edm::LogVerbatim("GMT_EtaProjection_info");
00138 }

void L1MuGMTEtaProjectionUnit::reset ( void   ) 

clear eta projection unit

Definition at line 119 of file L1MuGMTEtaProjectionUnit.cc.

References int, m_eta_select, m_feta, m_ieta, and m_mu.

Referenced by ~L1MuGMTEtaProjectionUnit().

00119                                      {
00120 
00121   m_mu = 0;
00122   m_ieta = 0;
00123   m_feta = 0.;
00124   m_eta_select = (unsigned int) 0;
00125 }

void L1MuGMTEtaProjectionUnit::run ( void   ) 

run eta projection unit

Definition at line 73 of file L1MuGMTEtaProjectionUnit.cc.

References 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().

00073                                    {
00074 
00075   load();
00076   if ( m_mu && ( !m_mu->empty() ) ) {
00077     
00078     int isFwd = m_id / 16;
00079     int lut_id = m_id / 4;
00080 
00081     // obtain inputs as coded in HW
00082     unsigned pt  = m_mu->pt_packed();
00083     unsigned charge  = m_mu->charge_packed();
00084     unsigned eta = m_mu->eta_packed();
00085     
00086     // lookup
00087     L1MuGMTMIAUEtaProLUT* ep_lut = L1MuGMTConfig::getMIAUEtaProLUT();
00088     unsigned eta_sel_bits = ep_lut->SpecificLookup_eta_sel (lut_id, eta, pt, charge);
00089 
00090     // convert to bit array
00091     //
00092     // see comments in L1MuGMTMIAUEtaProLUT.cc
00093     //
00094     m_eta_select = (unsigned) 0;
00095     
00096     if (isFwd) { // forward
00097       for (int i=0; i<5; i++)
00098         if ( (eta_sel_bits & (1 << i))  == (unsigned) (1<<i))
00099           m_eta_select[i] = 1;
00100       
00101       for (int i=5; i<10; i++)
00102         if ( (eta_sel_bits & (1 << i))  == (unsigned) (1<<i))
00103           m_eta_select[i+4] = 1;            
00104     } else { // barrel
00105       for (int i=0; i<10; i++)
00106         if ( (eta_sel_bits & (1 << i))  == (unsigned) (1<<i))
00107           m_eta_select[i+2] = 1;
00108     }
00109     
00110     //    m_MIAU.GMT().DebugBlockForFill()->SetEtaSelBits( m_id, m_eta_select.read(0,14)) ;
00111     m_MIAU.GMT().DebugBlockForFill()->SetEtaSelBits( m_id, m_eta_select.to_ulong()) ;
00112   }
00113 }


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().


The documentation for this class was generated from the following files:
Generated on Tue Jun 9 18:26:53 2009 for CMSSW by  doxygen 1.5.4