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 Member Functions | Private Attributes
L1MuGMTPSB Class Reference

#include <L1MuGMTPSB.h>

Public Member Functions

const L1MuRegionalCandCSCMuon (int index) const
 get CSC muon More...
 
const L1MuRegionalCandDTBXMuon (int index) const
 get DTBX muon More...
 
bool empty () const
 are there any data in the PSB More...
 
const L1MuGMTMatrix< bool > & isolBits () const
 return isolation bits More...
 
 L1MuGMTPSB (const L1MuGlobalMuonTrigger &gmt)
 constructor More...
 
const L1MuGMTMatrix< bool > & mipBits () const
 return minimum ionizing bits More...
 
int numberCSC () const
 return number of non-empty CSC muons More...
 
int numberDTBX () const
 return number of non-empty DTBX muons More...
 
int numberRPC () const
 return number of non-empty RPC muons More...
 
void print () const
 print PSB More...
 
void receiveData (edm::Event &e, int bx)
 receive muon candidates More...
 
void reset ()
 clear PSB More...
 
const L1MuRegionalCandRPCMuon (int index) const
 get RPC muon More...
 
virtual ~L1MuGMTPSB ()
 destructor More...
 

Private Member Functions

void getCalo (edm::Event &e)
 get Calorimeter Trigger data More...
 
void getCSC (std::vector< L1MuRegionalCand > const *data, int bx)
 get muons from endcap Muon Trigger Track Finder More...
 
void getDTBX (std::vector< L1MuRegionalCand > const *data, int bx)
 get muons from barrel Muon Trigger Track Finder More...
 
void getRPCb (std::vector< L1MuRegionalCand > const *data, int bx)
 get muons from RPCb Trigger More...
 
void getRPCf (std::vector< L1MuRegionalCand > const *data, int bx)
 get muons from RPCf Trigger More...
 
void printCSC () const
 print CSC muons More...
 
void printDTBX () const
 print DTBX muons More...
 
void printRPCbarrel () const
 print barrel RPC muons More...
 
void printRPCendcap () const
 print endcap RPC muons More...
 

Private Attributes

std::vector< L1MuRegionalCandm_CscMuons
 
std::vector< L1MuRegionalCandm_DtbxMuons
 
const L1MuGlobalMuonTriggerm_gmt
 
L1MuGMTMatrix< bool > m_Isol
 
L1MuGMTMatrix< bool > m_Mip
 
std::vector< L1MuRegionalCandm_RpcMuons
 

Detailed Description

L1 Global Muon Trigger Pipelined Synchronising Buffer module.

          the PSB receives muon candidates
          from the barrel track finder, the endcap track finder
          and from the RPC trigger. In addition it gets
          isolation and mip bits from the 
          regional Calorimeter Trigger

Definition at line 48 of file L1MuGMTPSB.h.

Constructor & Destructor Documentation

L1MuGMTPSB::L1MuGMTPSB ( const L1MuGlobalMuonTrigger gmt)

constructor

Definition at line 52 of file L1MuGMTPSB.cc.

References L1MuGMTMatrix< T >::init(), m_CscMuons, m_DtbxMuons, m_Isol, m_Mip, m_RpcMuons, L1MuGMTConfig::MAXCSC, L1MuGMTConfig::MAXDTBX, and L1MuGMTConfig::MAXRPC.

52  :
53  m_gmt(gmt),
57  m_Isol(14,18), m_Mip(14,18) {
58 
62  m_Isol.init(false);
63  m_Mip.init(false);
64 
65 }
void init(T v=0)
initialize matrix
const L1MuGlobalMuonTrigger & m_gmt
Definition: L1MuGMTPSB.h:125
static const unsigned int MAXCSC
Definition: L1MuGMTConfig.h:89
static const unsigned int MAXDTBX
Definition: L1MuGMTConfig.h:89
std::vector< L1MuRegionalCand > m_CscMuons
Definition: L1MuGMTPSB.h:129
L1MuGMTMatrix< bool > m_Isol
Definition: L1MuGMTPSB.h:131
L1MuGMTMatrix< bool > m_Mip
Definition: L1MuGMTPSB.h:132
std::vector< L1MuRegionalCand > m_RpcMuons
Definition: L1MuGMTPSB.h:127
std::vector< L1MuRegionalCand > m_DtbxMuons
Definition: L1MuGMTPSB.h:128
static const unsigned int MAXRPC
Definition: L1MuGMTConfig.h:88
L1MuGMTPSB::~L1MuGMTPSB ( )
virtual

destructor

Definition at line 70 of file L1MuGMTPSB.cc.

References m_CscMuons, m_DtbxMuons, m_RpcMuons, and reset().

70  {
71 
72  reset();
73  m_RpcMuons.clear();
74  m_DtbxMuons.clear();
75  m_CscMuons.clear();
76 
77 }
void reset()
clear PSB
Definition: L1MuGMTPSB.cc:194
std::vector< L1MuRegionalCand > m_CscMuons
Definition: L1MuGMTPSB.h:129
std::vector< L1MuRegionalCand > m_RpcMuons
Definition: L1MuGMTPSB.h:127
std::vector< L1MuRegionalCand > m_DtbxMuons
Definition: L1MuGMTPSB.h:128

Member Function Documentation

const L1MuRegionalCand * L1MuGMTPSB::CSCMuon ( int  index) const

get CSC muon

Definition at line 250 of file L1MuGMTPSB.cc.

References getHLTprescales::index, m_CscMuons, and L1MuGMTConfig::MAXCSC.

Referenced by L1MuGMTMatcher::load(), L1MuGMTMipIsoAU::load(), and L1MuGMTMerger::load().

250  {
251 
252  return ( index < (int)L1MuGMTConfig::MAXCSC && index >= 0 ) ? &(m_CscMuons[index]) : 0;
253 
254 }
static const unsigned int MAXCSC
Definition: L1MuGMTConfig.h:89
std::vector< L1MuRegionalCand > m_CscMuons
Definition: L1MuGMTPSB.h:129
const L1MuRegionalCand * L1MuGMTPSB::DTBXMuon ( int  index) const

get DTBX muon

Definition at line 240 of file L1MuGMTPSB.cc.

References getHLTprescales::index, m_DtbxMuons, and L1MuGMTConfig::MAXDTBX.

Referenced by L1MuGMTMatcher::load(), L1MuGMTMipIsoAU::load(), and L1MuGMTMerger::load().

240  {
241 
242  return ( index < (int)L1MuGMTConfig::MAXDTBX && index >= 0 ) ? &(m_DtbxMuons[index]) : 0;
243 
244 }
static const unsigned int MAXDTBX
Definition: L1MuGMTConfig.h:89
std::vector< L1MuRegionalCand > m_DtbxMuons
Definition: L1MuGMTPSB.h:128
bool L1MuGMTPSB::empty ( void  ) const

are there any data in the PSB

Definition at line 307 of file L1MuGMTPSB.cc.

References numberCSC(), numberDTBX(), and numberRPC().

Referenced by printCSC(), printDTBX(), printRPCbarrel(), printRPCendcap(), L1MuGlobalMuonTrigger::produce(), and receiveData().

307  {
308 
309  int number = numberRPC() + numberDTBX() + numberCSC();
310 
311  return ( number == 0 );
312 
313 }
int numberDTBX() const
return number of non-empty DTBX muons
Definition: L1MuGMTPSB.cc:275
int numberRPC() const
return number of non-empty RPC muons
Definition: L1MuGMTPSB.cc:259
int numberCSC() const
return number of non-empty CSC muons
Definition: L1MuGMTPSB.cc:291
void L1MuGMTPSB::getCalo ( edm::Event e)
private

get Calorimeter Trigger data

Definition at line 452 of file L1MuGMTPSB.cc.

References L1MuGlobalMuonTrigger::currentReadoutRecord(), L1MuGMTConfig::Debug(), edm::Event::getByLabel(), L1MuGMTConfig::getMipIsoInputTag(), edm::HandleBase::isValid(), m_gmt, m_Isol, m_Mip, edm::Handle< T >::product(), L1MuGMTMatrix< T >::set(), L1MuGMTReadoutRecord::setMIPbit(), and L1MuGMTReadoutRecord::setQuietbit().

Referenced by receiveData().

452  {
453 
456  if(calocoll_h.isValid())
457  {
458  L1CaloRegionCollection const* regions = calocoll_h.product();
459  L1CaloRegionCollection::const_iterator iter;
460 
461  // edm::LogVerbatim("GMT_PSB_info") << "MIP/QUIET bits rceived by the GMT :";
462 
463  for ( iter = regions->begin(); iter != regions->end(); iter++ ) {
464  if ( (*iter).id().ieta() < 4 || (*iter).id().ieta() > 17 || (*iter).id().iphi() > 17 ) continue;
465  m_Isol.set( (*iter).id().ieta()-4, (*iter).id().iphi(), (*iter).quiet() );
466  m_Mip.set( (*iter).id().ieta()-4, (*iter).id().iphi(), (*iter).mip() );
467 
468  if ( (*iter).quiet() )
469  m_gmt.currentReadoutRecord()->setQuietbit ((*iter).id().ieta()-4, (*iter).id().iphi());
470 
471  if ( (*iter).mip() )
472  m_gmt.currentReadoutRecord()->setMIPbit ((*iter).id().ieta()-4, (*iter).id().iphi());
473 
474  // edm::LogVerbatim("GMT_PSB_info") << (*iter).id().ieta()-4 << " "
475  // << (*iter).id().iphi() << " "
476  // << (*iter).quiet() << " "
477  // << (*iter).mip();
478  }
479  } else {
480  if( L1MuGMTConfig::Debug(1) ) {
481  edm::LogWarning("GlobalMuonTrigger")
482  << "\nWarning: GlobalMuonTrigger: input tag " << L1MuGMTConfig::getMipIsoInputTag()
483  << "\nrequested, but not found in the event." << std::endl;
484  }
485  }
486 
487 }
void set(int r, int c, T v)
set matrix element
const L1MuGlobalMuonTrigger & m_gmt
Definition: L1MuGMTPSB.h:125
void setQuietbit(int eta, int phi)
set Quiet bit
void setMIPbit(int eta, int phi)
set MIP bit
static bool Debug()
bool isValid() const
Definition: HandleBase.h:76
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
Definition: Event.h:390
L1MuGMTMatrix< bool > m_Isol
Definition: L1MuGMTPSB.h:131
T const * product() const
Definition: Handle.h:81
static edm::InputTag getMipIsoInputTag()
L1MuGMTMatrix< bool > m_Mip
Definition: L1MuGMTPSB.h:132
std::vector< L1CaloRegion > L1CaloRegionCollection
L1MuGMTReadoutRecord * currentReadoutRecord() const
return a reference to the current record in the ring buffer
void L1MuGMTPSB::getCSC ( std::vector< L1MuRegionalCand > const *  data,
int  bx 
)
private

get muons from endcap Muon Trigger Track Finder

Definition at line 378 of file L1MuGMTPSB.cc.

References m_CscMuons, and L1MuGMTConfig::MAXCSC.

Referenced by receiveData().

378  {
379 
380  int icsc = 0;
381  std::vector<L1MuRegionalCand>::const_iterator iter;
382  for ( iter = data->begin(); iter != data->end(); iter++ ) {
383  if ( (*iter).bx() != bx ) continue;
384  if ( icsc < (int)L1MuGMTConfig::MAXCSC ) {
385  m_CscMuons[icsc] = (*iter);
386  icsc++;
387  }
388  }
389 
390 }
static const unsigned int MAXCSC
Definition: L1MuGMTConfig.h:89
std::vector< L1MuRegionalCand > m_CscMuons
Definition: L1MuGMTPSB.h:129
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:82
void L1MuGMTPSB::getDTBX ( std::vector< L1MuRegionalCand > const *  data,
int  bx 
)
private

get muons from barrel Muon Trigger Track Finder

Definition at line 355 of file L1MuGMTPSB.cc.

References L1MuGMTConfig::Debug(), m_DtbxMuons, and L1MuGMTConfig::MAXDTBX.

Referenced by receiveData().

355  {
356 
357  // temporary hack with bxoffset - to be removed, trigger bx should be 0
358  int bxoffset = 0;
359  int idtbx = 0;
360  std::vector<L1MuRegionalCand>::const_iterator iter;
361  for ( iter = data->begin(); iter != data->end(); iter++ ) {
362  if ( L1MuGMTConfig::Debug(2) ) edm::LogVerbatim("") << "DTTF BX: " << (*iter).bx() << " my bx: " << bx;
363  if ( (*iter).bx() > 10) bxoffset=16;
364  if ( (*iter).bx() != bx+bxoffset ) continue;
365  if ( idtbx < (int)L1MuGMTConfig::MAXDTBX ) {
366  m_DtbxMuons[idtbx] = (*iter);
367  m_DtbxMuons[idtbx].setBx(bx);
368  idtbx++;
369  }
370  }
371 
372 }
static bool Debug()
static const unsigned int MAXDTBX
Definition: L1MuGMTConfig.h:89
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:82
std::vector< L1MuRegionalCand > m_DtbxMuons
Definition: L1MuGMTPSB.h:128
void L1MuGMTPSB::getRPCb ( std::vector< L1MuRegionalCand > const *  data,
int  bx 
)
private

get muons from RPCb Trigger

Definition at line 319 of file L1MuGMTPSB.cc.

References m_RpcMuons, and L1MuGMTConfig::MAXRPCbarrel.

Referenced by receiveData().

319  {
320 
321  int irpcb = 0;
322  std::vector<L1MuRegionalCand>::const_iterator iter;
323  for ( iter = data->begin(); iter != data->end(); iter++ ) {
324  if ( (*iter).bx() != bx ) continue;
325  if ( irpcb < (int)L1MuGMTConfig::MAXRPCbarrel ) {
326  if(!(*iter).empty()) m_RpcMuons[irpcb] = (*iter);
327  irpcb++;
328  }
329  }
330 
331 }
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:82
static const unsigned int MAXRPCbarrel
Definition: L1MuGMTConfig.h:88
std::vector< L1MuRegionalCand > m_RpcMuons
Definition: L1MuGMTPSB.h:127
void L1MuGMTPSB::getRPCf ( std::vector< L1MuRegionalCand > const *  data,
int  bx 
)
private

get muons from RPCf Trigger

Definition at line 337 of file L1MuGMTPSB.cc.

References m_RpcMuons, and L1MuGMTConfig::MAXRPCendcap.

Referenced by receiveData().

337  {
338 
339  int irpcf = 0;
340  std::vector<L1MuRegionalCand>::const_iterator iter;
341  for ( iter = data->begin(); iter != data->end(); iter++ ) {
342  if ( (*iter).bx() != bx ) continue;
343  if ( irpcf < (int)L1MuGMTConfig::MAXRPCendcap ) {
344  if(!(*iter).empty()) m_RpcMuons[irpcf+4] = (*iter);
345  irpcf++;
346  }
347  }
348 
349 }
static const unsigned int MAXRPCendcap
Definition: L1MuGMTConfig.h:88
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:82
std::vector< L1MuRegionalCand > m_RpcMuons
Definition: L1MuGMTPSB.h:127
const L1MuGMTMatrix<bool>& L1MuGMTPSB::isolBits ( ) const
inline

return isolation bits

Definition at line 89 of file L1MuGMTPSB.h.

References m_Isol.

Referenced by L1MuGMTMipIsoAU::assignISO().

89 { return m_Isol; }
L1MuGMTMatrix< bool > m_Isol
Definition: L1MuGMTPSB.h:131
const L1MuGMTMatrix<bool>& L1MuGMTPSB::mipBits ( ) const
inline

return minimum ionizing bits

Definition at line 92 of file L1MuGMTPSB.h.

References m_Mip.

Referenced by L1MuGMTMipIsoAU::assignMIP().

92 { return m_Mip; }
L1MuGMTMatrix< bool > m_Mip
Definition: L1MuGMTPSB.h:132
int L1MuGMTPSB::numberCSC ( ) const

return number of non-empty CSC muons

Definition at line 291 of file L1MuGMTPSB.cc.

References prof2calltree::count, and m_CscMuons.

Referenced by empty().

291  {
292 
293  int count = 0;
294  std::vector<L1MuRegionalCand>::const_iterator iter = m_CscMuons.begin();
295  while ( iter != m_CscMuons.end() ) {
296  if ( !(*iter).empty() ) count++;
297  iter++;
298  }
299  return count;
300 
301 }
std::vector< L1MuRegionalCand > m_CscMuons
Definition: L1MuGMTPSB.h:129
int L1MuGMTPSB::numberDTBX ( ) const

return number of non-empty DTBX muons

Definition at line 275 of file L1MuGMTPSB.cc.

References prof2calltree::count, and m_DtbxMuons.

Referenced by empty().

275  {
276 
277  int count = 0;
278  std::vector<L1MuRegionalCand>::const_iterator iter = m_DtbxMuons.begin();
279  while ( iter != m_DtbxMuons.end() ) {
280  if ( !(*iter).empty() ) count++;
281  iter++;
282  }
283  return count;
284 
285 }
std::vector< L1MuRegionalCand > m_DtbxMuons
Definition: L1MuGMTPSB.h:128
int L1MuGMTPSB::numberRPC ( ) const

return number of non-empty RPC muons

Definition at line 259 of file L1MuGMTPSB.cc.

References prof2calltree::count, and m_RpcMuons.

Referenced by empty().

259  {
260 
261  int count = 0;
262  std::vector<L1MuRegionalCand>::const_iterator iter = m_RpcMuons.begin();
263  while ( iter != m_RpcMuons.end() ) {
264  if ( !(*iter).empty() ) count++;
265  iter++;
266  }
267  return count;
268 
269 }
std::vector< L1MuRegionalCand > m_RpcMuons
Definition: L1MuGMTPSB.h:127
void L1MuGMTPSB::print ( void  ) const

print PSB

Definition at line 215 of file L1MuGMTPSB.cc.

References printCSC(), printDTBX(), printRPCbarrel(), and printRPCendcap().

Referenced by L1MuGlobalMuonTrigger::produce().

215  {
216 
217  edm::LogVerbatim("GMT_PSB_info") << " ";
218  printDTBX();
219  printRPCbarrel();
220  printCSC();
221  printRPCendcap();
222  edm::LogVerbatim("GMT_PSB_info") << " ";
223 
224 }
void printDTBX() const
print DTBX muons
Definition: L1MuGMTPSB.cc:424
void printRPCbarrel() const
print barrel RPC muons
Definition: L1MuGMTPSB.cc:396
void printCSC() const
print CSC muons
Definition: L1MuGMTPSB.cc:438
void printRPCendcap() const
print endcap RPC muons
Definition: L1MuGMTPSB.cc:410
void L1MuGMTPSB::printCSC ( ) const
private

print CSC muons

Definition at line 438 of file L1MuGMTPSB.cc.

References empty(), i, m_CscMuons, and L1MuGMTConfig::MAXCSC.

Referenced by print().

438  {
439 
440  edm::LogVerbatim("GMT_PSB_info") << "CSC muons received by the GMT :";
441 
442  for ( unsigned i = 0; i < L1MuGMTConfig::MAXCSC; i++ ) {
443  if (!m_CscMuons[i].empty()) m_CscMuons[i].print();
444  }
445 
446 }
int i
Definition: DBlmapReader.cc:9
bool empty() const
are there any data in the PSB
Definition: L1MuGMTPSB.cc:307
static const unsigned int MAXCSC
Definition: L1MuGMTConfig.h:89
std::vector< L1MuRegionalCand > m_CscMuons
Definition: L1MuGMTPSB.h:129
void L1MuGMTPSB::printDTBX ( ) const
private

print DTBX muons

Definition at line 424 of file L1MuGMTPSB.cc.

References empty(), i, m_DtbxMuons, and L1MuGMTConfig::MAXDTBX.

Referenced by print().

424  {
425 
426  edm::LogVerbatim("GMT_PSB_info") << "DTBX muons received by the GMT :";
427 
428  for ( unsigned i = 0; i < L1MuGMTConfig::MAXDTBX; i++ ) {
429  if (!m_DtbxMuons[i].empty()) m_DtbxMuons[i].print();
430  }
431 
432 }
int i
Definition: DBlmapReader.cc:9
bool empty() const
are there any data in the PSB
Definition: L1MuGMTPSB.cc:307
static const unsigned int MAXDTBX
Definition: L1MuGMTConfig.h:89
std::vector< L1MuRegionalCand > m_DtbxMuons
Definition: L1MuGMTPSB.h:128
void L1MuGMTPSB::printRPCbarrel ( ) const
private

print barrel RPC muons

Definition at line 396 of file L1MuGMTPSB.cc.

References empty(), i, m_RpcMuons, and L1MuGMTConfig::MAXRPCbarrel.

Referenced by print().

396  {
397 
398  edm::LogVerbatim("GMT_PSB_info") << "RPC barrel muons received by the GMT :";
399 
400  for ( unsigned i = 0; i < L1MuGMTConfig::MAXRPCbarrel; i++ ) {
401  if (!m_RpcMuons[i].empty()) m_RpcMuons[i].print();
402  }
403 
404 }
int i
Definition: DBlmapReader.cc:9
bool empty() const
are there any data in the PSB
Definition: L1MuGMTPSB.cc:307
static const unsigned int MAXRPCbarrel
Definition: L1MuGMTConfig.h:88
std::vector< L1MuRegionalCand > m_RpcMuons
Definition: L1MuGMTPSB.h:127
void L1MuGMTPSB::printRPCendcap ( ) const
private

print endcap RPC muons

Definition at line 410 of file L1MuGMTPSB.cc.

References empty(), i, m_RpcMuons, and L1MuGMTConfig::MAXRPCendcap.

Referenced by print().

410  {
411 
412  edm::LogVerbatim("GMT_PSB_info") << "RPC endcap muons received by the GMT :";
413 
414  for ( unsigned i = 0; i < L1MuGMTConfig::MAXRPCendcap; i++ ) {
415  if (!m_RpcMuons[i+4].empty()) m_RpcMuons[i+4].print();
416  }
417 
418 }
int i
Definition: DBlmapReader.cc:9
bool empty() const
are there any data in the PSB
Definition: L1MuGMTPSB.cc:307
static const unsigned int MAXRPCendcap
Definition: L1MuGMTConfig.h:88
std::vector< L1MuRegionalCand > m_RpcMuons
Definition: L1MuGMTPSB.h:127
void L1MuGMTPSB::receiveData ( edm::Event e,
int  bx 
)

receive muon candidates

Definition at line 86 of file L1MuGMTPSB.cc.

References L1MuGlobalMuonTrigger::currentReadoutRecord(), L1MuGMTConfig::Debug(), empty(), L1MuRegionalCand::eta_packed(), edm::Event::getByLabel(), getCalo(), L1MuGMTConfig::getCaloTrigger(), getCSC(), L1MuGMTConfig::getCSCInputTag(), getDTBX(), L1MuGMTConfig::getDTInputTag(), L1MuGMTConfig::getGMTChanMask(), L1MuScale::getLowEdge(), L1MuTriggerScales::getPhiScale(), L1MuTriggerPtScale::getPtScale(), L1MuTriggerScales::getRegionalEtaScale(), getRPCb(), L1MuGMTConfig::getRPCbInputTag(), getRPCf(), L1MuGMTConfig::getRPCfInputTag(), L1MuGMTChannelMask::getSubsystemMask(), L1MuGMTConfig::getTriggerPtScale(), L1MuGMTConfig::getTriggerScales(), i, edm::HandleBase::isValid(), diffTwoXMLs::label, m_CscMuons, m_DtbxMuons, m_gmt, m_RpcMuons, L1MuRegionalCand::phi_packed(), edm::Handle< T >::product(), L1MuRegionalCand::pt_packed(), L1MuRegionalCand::setEtaValue(), L1MuGMTReadoutRecord::setInputCand(), L1MuRegionalCand::setPhiValue(), L1MuRegionalCand::setPtValue(), and L1MuRegionalCand::type_idx().

Referenced by L1MuGlobalMuonTrigger::produce().

86  {
87 
89 
91 
92  const L1MuGMTChannelMask* theChannelMask = L1MuGMTConfig::getGMTChanMask();
93  unsigned mask = theChannelMask->getSubsystemMask();
94 
95  if((L1MuGMTConfig::getDTInputTag()).label() != "none" && !(mask&1) ) {
97  if(rc_handle.isValid()) {
98  getDTBX(rc_handle.product(),bx);
99  } else {
100  if( L1MuGMTConfig::Debug(1) ) {
101  edm::LogWarning("GlobalMuonTrigger")
102  << "\nWarning: GlobalMuonTrigger: input tag " << L1MuGMTConfig::getDTInputTag()
103  << "\nrequested, but not found in the event." << std::endl;
104  }
105  }
106  }
107  if((L1MuGMTConfig::getCSCInputTag()).label() != "none" && !(mask&4) ) {
109  if(rc_handle.isValid()) {
110  getCSC(rc_handle.product(),bx);
111  } else {
112  if( L1MuGMTConfig::Debug(1) ) {
113  edm::LogWarning("GlobalMuonTrigger")
114  << "\nWarning: GlobalMuonTrigger: input tag " << L1MuGMTConfig::getCSCInputTag()
115  << "\nrequested, but not found in the event." << std::endl;
116  }
117  }
118  }
119  if((L1MuGMTConfig::getRPCbInputTag()).label() != "none" && !(mask&2) ) {
121  if(rc_handle.isValid()) {
122  getRPCb(rc_handle.product(),bx);
123  } else {
124  if( L1MuGMTConfig::Debug(1) ) {
125  edm::LogWarning("GlobalMuonTrigger")
126  << "\nWarning: GlobalMuonTrigger: input tag " << L1MuGMTConfig::getRPCbInputTag()
127  << "\nrequested, but not found in the event." << std::endl;
128  }
129  }
130  }
131  if((L1MuGMTConfig::getRPCfInputTag()).label() != "none" && !(mask&8) ) {
133  if(rc_handle.isValid()) {
134  getRPCf(rc_handle.product(),bx);
135  } else {
136  if( L1MuGMTConfig::Debug(1) ) {
137  edm::LogWarning("GlobalMuonTrigger")
138  << "\nWarning: GlobalMuonTrigger: input tag " << L1MuGMTConfig::getRPCfInputTag()
139  << "\nrequested, but not found in the event." << std::endl;
140  }
141  }
142  }
143 
145 
146  const L1MuTriggerScales* theTriggerScales = L1MuGMTConfig::getTriggerScales();
147  const L1MuTriggerPtScale* theTriggerPtScale = L1MuGMTConfig::getTriggerPtScale();
148 
149  // store data in readout record
150  for (int i=0; i<4; i++) {
151  L1MuRegionalCand* cand = &(m_DtbxMuons[i]);
152  cand->setPhiValue( theTriggerScales->getPhiScale()->getLowEdge(cand->phi_packed()) );
153  cand->setEtaValue( theTriggerScales->getRegionalEtaScale(cand->type_idx())->getCenter(cand->eta_packed()) );
154  cand->setPtValue( theTriggerPtScale->getPtScale()->getLowEdge(cand->pt_packed()) );
155  // cand->setPtValue( theTriggerScales->getPtScale()->getLowEdge(cand->pt_packed()) );
157  }
158  for (int i=0; i<4; i++) {
159  L1MuRegionalCand* cand = &(m_RpcMuons[i]);
160  cand->setPhiValue( theTriggerScales->getPhiScale()->getLowEdge(cand->phi_packed()) );
161  cand->setEtaValue( theTriggerScales->getRegionalEtaScale(cand->type_idx())->getCenter(cand->eta_packed()) );
162  cand->setPtValue( theTriggerPtScale->getPtScale()->getLowEdge(cand->pt_packed()) );
163  // cand->setPtValue( theTriggerScales->getPtScale()->getLowEdge(cand->pt_packed()) );
164  m_gmt.currentReadoutRecord()->setInputCand ( i+4, *cand );
165  }
166  for (int i=0; i<4; i++) {
167  L1MuRegionalCand* cand = &(m_CscMuons[i]);
168  cand->setPhiValue( theTriggerScales->getPhiScale()->getLowEdge(cand->phi_packed()) );
169  cand->setEtaValue( theTriggerScales->getRegionalEtaScale(cand->type_idx())->getCenter(cand->eta_packed()) );
170  cand->setPtValue( theTriggerPtScale->getPtScale()->getLowEdge(cand->pt_packed()) );
171  // cand->setPtValue( theTriggerScales->getPtScale()->getLowEdge(cand->pt_packed()) );
172  m_gmt.currentReadoutRecord()->setInputCand ( i+8, *cand );
173  }
174  for (int i=0; i<4; i++) {
175  L1MuRegionalCand* cand = &(m_RpcMuons[i+4]);
176  cand->setPhiValue( theTriggerScales->getPhiScale()->getLowEdge(cand->phi_packed()) );
177  cand->setEtaValue( theTriggerScales->getRegionalEtaScale(cand->type_idx())->getCenter(cand->eta_packed()) );
178  cand->setPtValue( theTriggerPtScale->getPtScale()->getLowEdge(cand->pt_packed()) );
179  // cand->setPtValue( theTriggerScales->getPtScale()->getLowEdge(cand->pt_packed()) );
180  m_gmt.currentReadoutRecord()->setInputCand ( i+12, *cand );
181  }
182 
183 
184  // if there is at least one muon start the calorimeter trigger
185 
186  if ( L1MuGMTConfig::getCaloTrigger() && !empty() ) getCalo(e);
187 
188 }
int i
Definition: DBlmapReader.cc:9
void getRPCf(std::vector< L1MuRegionalCand > const *data, int bx)
get muons from RPCf Trigger
Definition: L1MuGMTPSB.cc:337
void getCSC(std::vector< L1MuRegionalCand > const *data, int bx)
get muons from endcap Muon Trigger Track Finder
Definition: L1MuGMTPSB.cc:378
static edm::InputTag getRPCfInputTag()
static edm::InputTag getRPCbInputTag()
const L1MuScale * getPtScale() const
get the Pt scale
static bool getCaloTrigger()
virtual float getLowEdge(unsigned packed) const =0
get the low edge of bin represented by packed
bool empty() const
are there any data in the PSB
Definition: L1MuGMTPSB.cc:307
void setInputCand(int nr, unsigned data)
set Input muon
unsigned getSubsystemMask() const
void getCalo(edm::Event &e)
get Calorimeter Trigger data
Definition: L1MuGMTPSB.cc:452
const L1MuGlobalMuonTrigger & m_gmt
Definition: L1MuGMTPSB.h:125
void setPtValue(float ptVal)
Set Pt Value.
static bool Debug()
void setPhiValue(float phiVal)
Set Phi Value.
const L1MuScale * getPhiScale() const
get the phi scale
static const L1MuGMTChannelMask * getGMTChanMask()
void setEtaValue(float etaVal)
Set Eta Value (need to set type, first)
unsigned eta_packed() const
return eta packed as in hardware
bool isValid() const
Definition: HandleBase.h:76
std::vector< L1MuRegionalCand > m_CscMuons
Definition: L1MuGMTPSB.h:129
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
Definition: Event.h:390
static const L1MuTriggerPtScale * getTriggerPtScale()
static const L1MuTriggerScales * getTriggerScales()
T const * product() const
Definition: Handle.h:81
void getRPCb(std::vector< L1MuRegionalCand > const *data, int bx)
get muons from RPCb Trigger
Definition: L1MuGMTPSB.cc:319
const L1MuScale * getRegionalEtaScale(int isys) const
get the regioanl muon trigger eta scale, isys = 0(DT), 1(bRPC), 2(CSC), 3(fwdRPC) ...
void getDTBX(std::vector< L1MuRegionalCand > const *data, int bx)
get muons from barrel Muon Trigger Track Finder
Definition: L1MuGMTPSB.cc:355
std::vector< L1MuRegionalCand > m_RpcMuons
Definition: L1MuGMTPSB.h:127
unsigned pt_packed() const
return pt packed as in hardware
std::vector< L1MuRegionalCand > m_DtbxMuons
Definition: L1MuGMTPSB.h:128
static edm::InputTag getDTInputTag()
Definition: L1MuGMTConfig.h:99
unsigned type_idx() const
return type: 0 DT, 1 bRPC, 2 CSC, 3 fRPC
L1MuGMTReadoutRecord * currentReadoutRecord() const
return a reference to the current record in the ring buffer
unsigned phi_packed() const
return phi packed as in hardware
static edm::InputTag getCSCInputTag()
void L1MuGMTPSB::reset ( void  )

clear PSB

Definition at line 194 of file L1MuGMTPSB.cc.

References L1MuGMTMatrix< T >::init(), m_CscMuons, m_DtbxMuons, m_Isol, m_Mip, and m_RpcMuons.

Referenced by L1MuGlobalMuonTrigger::reset(), and ~L1MuGMTPSB().

194  {
195 
196  std::vector<L1MuRegionalCand>::iterator iter;
197  iter = m_RpcMuons.begin();
198  while ( iter != m_RpcMuons.end() ) (*(iter++)).reset();
199 
200  iter = m_DtbxMuons.begin();
201  while ( iter != m_DtbxMuons.end() )(*(iter++)).reset();
202 
203  iter = m_CscMuons.begin();
204  while ( iter != m_CscMuons.end() ) (*(iter++)).reset();
205 
206  m_Isol.init(false);
207  m_Mip.init(false);
208 
209 }
void init(T v=0)
initialize matrix
void reset()
clear PSB
Definition: L1MuGMTPSB.cc:194
std::vector< L1MuRegionalCand > m_CscMuons
Definition: L1MuGMTPSB.h:129
L1MuGMTMatrix< bool > m_Isol
Definition: L1MuGMTPSB.h:131
L1MuGMTMatrix< bool > m_Mip
Definition: L1MuGMTPSB.h:132
std::vector< L1MuRegionalCand > m_RpcMuons
Definition: L1MuGMTPSB.h:127
std::vector< L1MuRegionalCand > m_DtbxMuons
Definition: L1MuGMTPSB.h:128
const L1MuRegionalCand * L1MuGMTPSB::RPCMuon ( int  index) const

get RPC muon

Definition at line 230 of file L1MuGMTPSB.cc.

References getHLTprescales::index, m_RpcMuons, and L1MuGMTConfig::MAXRPC.

Referenced by L1MuGMTMatcher::load(), L1MuGMTMipIsoAU::load(), and L1MuGMTMerger::load().

230  {
231 
232  return ( index < (int)L1MuGMTConfig::MAXRPC && index >= 0 ) ? &(m_RpcMuons[index]) : 0;
233 
234 }
std::vector< L1MuRegionalCand > m_RpcMuons
Definition: L1MuGMTPSB.h:127
static const unsigned int MAXRPC
Definition: L1MuGMTConfig.h:88

Member Data Documentation

std::vector<L1MuRegionalCand> L1MuGMTPSB::m_CscMuons
private
std::vector<L1MuRegionalCand> L1MuGMTPSB::m_DtbxMuons
private
const L1MuGlobalMuonTrigger& L1MuGMTPSB::m_gmt
private

Definition at line 125 of file L1MuGMTPSB.h.

Referenced by getCalo(), and receiveData().

L1MuGMTMatrix<bool> L1MuGMTPSB::m_Isol
private

Definition at line 131 of file L1MuGMTPSB.h.

Referenced by getCalo(), isolBits(), L1MuGMTPSB(), and reset().

L1MuGMTMatrix<bool> L1MuGMTPSB::m_Mip
private

Definition at line 132 of file L1MuGMTPSB.h.

Referenced by getCalo(), L1MuGMTPSB(), mipBits(), and reset().

std::vector<L1MuRegionalCand> L1MuGMTPSB::m_RpcMuons
private