test
CMS 3D CMS Logo

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

#include <RegionalMuonCand.h>

Inheritance diagram for l1t::RegionalMuonCand:
L1MuBMTrack

Public Types

enum  bmtfAddress {
  kWheelSide =0, kWheelNum =1, kStat1 =2, kStat2 =3,
  kStat3 =4, kStat4 =5, kSegSelStat1 =6, kSegSelStat2 =7,
  kSegSelStat3 =8, kSegSelStat4 =9, kNumBmtfSubAddr =10
}
 
enum  emtfAddress {
  kME1Seg =0, kME1Ch =1, kME2Seg =2, kME2Ch =3,
  kME3Seg =4, kME3Ch =5, kME4Seg =6, kME4Ch =7,
  kTrkNum =8, kBX =9, kNumEmtfSubAddr =10
}
 

Public Member Functions

const uint64_t dataword () const
 Get 64 bit data word. More...
 
const uint32_t dataword32Lsb () const
 Get 32 LSBs of data word. More...
 
const uint32_t dataword32Msb () const
 Get 32 MSBs of data word. More...
 
const int hwEta () const
 Get compressed eta (returned int * 0.010875 = eta) More...
 
const int hwHF () const
 Get HF (halo / fine eta) bit (EMTF: halo -> 1; BMTF: fine eta -> 1) More...
 
const int hwPhi () const
 Get compressed local phi (returned int * 2*pi/576 = local phi in rad) More...
 
const int hwPt () const
 Get compressed pT (returned int * 0.5 = pT (GeV)) More...
 
const int hwQual () const
 Get quality code. More...
 
const int hwSign () const
 Get charge sign bit (charge = (-1)^(sign)) More...
 
const int hwSignValid () const
 Get charge sign valid bit (0 - not valid (high pT muon); 1 - valid) More...
 
const int link () const
 Get link on which the MicroGMT receives the candidate. More...
 
const int processor () const
 Get processor ID on which the candidate was found (0..5 for OMTF/EMTF; 0..11 for BMTF) More...
 
 RegionalMuonCand (uint64_t dataword)
 
 RegionalMuonCand ()
 
 RegionalMuonCand (int pt, int phi, int eta, int sign, int signvalid, int quality, int processor, tftype trackFinder)
 
void setDataword (uint32_t msbs, uint32_t lsbs)
 
void setDataword (uint64_t bits)
 
void setHwEta (int bits)
 Set compressed eta as transmitted by hardware LSB = 0.010875 (9 bits) More...
 
void setHwHF (bool bit)
 Set HF (halo / fine eta) bit (EMTF: halo -> 1; BMTF: fine eta -> 1) More...
 
void setHwPhi (int bits)
 Set compressed relative phi as transmitted by hardware LSB = 2*pi/576 (8 bits) More...
 
void setHwPt (int bits)
 Set compressed pT as transmitted by hardware LSB = 0.5 (9 bits) More...
 
void setHwQual (int bits)
 Set compressed quality code as transmitted by hardware (4 bits) More...
 
void setHwSign (int bits)
 Set charge sign bit (charge = (-1)^(sign)) More...
 
void setHwSignValid (int bits)
 Set whether charge measurement is valid (0 for high pT muons) More...
 
void setLink (int link)
 
void setTFIdentifiers (int processor, tftype trackFinder)
 Set the processor ID, track-finder type. From these two, the link is set. More...
 
void setTrackAddress (const std::map< int, int > &address)
 Set the whole track address. More...
 
void setTrackSubAddress (bmtfAddress subAddress, int value)
 Set a part of the muon candidates track address; specialised for BMTF. More...
 
void setTrackSubAddress (emtfAddress subAddress, int value)
 Set a part of the muon candidates track address; specialised for EMTF. More...
 
const std::map< int, int > & trackAddress () const
 Get the track address (identifies track primitives used for reconstruction) More...
 
const tftype trackFinderType () const
 Get track-finder which found the muon (bmtf, emtf_pos/emtf_neg or omtf_pos/omtf_neg) More...
 
int trackSubAddress (bmtfAddress subAddress) const
 Get part of track address (identifies track primitives used for reconstruction) More...
 
int trackSubAddress (emtfAddress subAddress) const
 Get part of track address (identifies track primitives used for reconstruction) More...
 
virtual ~RegionalMuonCand ()
 

Private Attributes

uint64_t m_dataword
 This is the 64 bit word as transmitted in HW. More...
 
int m_hwEta
 
bool m_hwHF
 
int m_hwPhi
 
int m_hwPt
 
int m_hwQuality
 
int m_hwSign
 
int m_hwSignValid
 
int m_link
 
int m_processor
 
std::map< int, int > m_trackAddress
 
tftype m_trackFinder
 

Detailed Description

Definition at line 8 of file RegionalMuonCand.h.

Member Enumeration Documentation

Enum to identify the individual parts of the BMTF track address Update kNumBmtfSubAddr if you add additional enums

Enumerator
kWheelSide 
kWheelNum 
kStat1 
kStat2 
kStat3 
kStat4 
kSegSelStat1 
kSegSelStat2 
kSegSelStat3 
kSegSelStat4 
kNumBmtfSubAddr 

Definition at line 12 of file RegionalMuonCand.h.

Enum to identify the individual parts of the EMTF track address Update kNumEmtfSubAddr if you add additional enums

Enumerator
kME1Seg 
kME1Ch 
kME2Seg 
kME2Ch 
kME3Seg 
kME3Ch 
kME4Seg 
kME4Ch 
kTrkNum 
kBX 
kNumEmtfSubAddr 

Definition at line 17 of file RegionalMuonCand.h.

Constructor & Destructor Documentation

l1t::RegionalMuonCand::RegionalMuonCand ( uint64_t  dataword)
explicit
l1t::RegionalMuonCand::RegionalMuonCand ( )
inline

Definition at line 24 of file RegionalMuonCand.h.

References l1t::bmtf, and setTFIdentifiers().

24  :
25  m_hwPt(0), m_hwPhi(0), m_hwEta(0), m_hwHF(false), m_hwSign(0), m_hwSignValid(0), m_hwQuality(0), m_dataword(0)
26  {
28  };
void setTFIdentifiers(int processor, tftype trackFinder)
Set the processor ID, track-finder type. From these two, the link is set.
uint64_t m_dataword
This is the 64 bit word as transmitted in HW.
l1t::RegionalMuonCand::RegionalMuonCand ( int  pt,
int  phi,
int  eta,
int  sign,
int  signvalid,
int  quality,
int  processor,
tftype  trackFinder 
)
inline

Definition at line 30 of file RegionalMuonCand.h.

References setTFIdentifiers().

30  :
32  m_dataword(0)
33  {
34  setTFIdentifiers(processor, trackFinder);
35  };
double sign(double x)
void setTFIdentifiers(int processor, tftype trackFinder)
Set the processor ID, track-finder type. From these two, the link is set.
const int processor() const
Get processor ID on which the candidate was found (0..5 for OMTF/EMTF; 0..11 for BMTF) ...
uint64_t m_dataword
This is the 64 bit word as transmitted in HW.
virtual l1t::RegionalMuonCand::~RegionalMuonCand ( )
inlinevirtual

Definition at line 37 of file RegionalMuonCand.h.

37 {};

Member Function Documentation

const uint64_t l1t::RegionalMuonCand::dataword ( ) const
inline

Get 64 bit data word.

Definition at line 96 of file RegionalMuonCand.h.

References m_dataword.

96 { return m_dataword; };
uint64_t m_dataword
This is the 64 bit word as transmitted in HW.
const uint32_t l1t::RegionalMuonCand::dataword32Lsb ( ) const
inline

Get 32 LSBs of data word.

Definition at line 100 of file RegionalMuonCand.h.

References m_dataword.

100 { return (uint32_t)(m_dataword & 0xFFFFFFFF); };
uint64_t m_dataword
This is the 64 bit word as transmitted in HW.
const uint32_t l1t::RegionalMuonCand::dataword32Msb ( ) const
inline

Get 32 MSBs of data word.

Definition at line 98 of file RegionalMuonCand.h.

References m_dataword.

98 { return (uint32_t)((m_dataword >> 32) & 0xFFFFFFFF); };
uint64_t m_dataword
This is the 64 bit word as transmitted in HW.
const int l1t::RegionalMuonCand::hwEta ( ) const
inline
const int l1t::RegionalMuonCand::hwHF ( ) const
inline

Get HF (halo / fine eta) bit (EMTF: halo -> 1; BMTF: fine eta -> 1)

Definition at line 94 of file RegionalMuonCand.h.

References m_hwHF.

Referenced by L1MuBMTrack::fineEtaBit(), l1t::RegionalMuonRawDigiTranslator::generatePackedDataWords(), l1t::GMTInternalMuon::hwHF(), and L1MuBMTrackFinder::run().

94 { return m_hwHF; };
const int l1t::RegionalMuonCand::hwPhi ( ) const
inline
const int l1t::RegionalMuonCand::hwPt ( ) const
inline
const int l1t::RegionalMuonCand::hwQual ( ) const
inline
const int l1t::RegionalMuonCand::hwSign ( ) const
inline
const int l1t::RegionalMuonCand::hwSignValid ( ) const
inline
const int l1t::RegionalMuonCand::link ( ) const
inline

Get link on which the MicroGMT receives the candidate.

Definition at line 88 of file RegionalMuonCand.h.

References m_link.

Referenced by l1t::GMTInternalMuon::link(), setLink(), and XMLConfigWriter::writeCandMuon().

88 { return m_link; };
const int l1t::RegionalMuonCand::processor ( ) const
inline

Get processor ID on which the candidate was found (0..5 for OMTF/EMTF; 0..11 for BMTF)

Definition at line 90 of file RegionalMuonCand.h.

References m_processor.

Referenced by L1TMicroGMTInputProducer::cmpProc(), L1TMicroGMTInputProducerFromGen::compareMuons(), l1t::GMTInternalMuon::processor(), setTFIdentifiers(), and XMLConfigWriter::writeCandMuon().

90 { return m_processor; };
void l1t::RegionalMuonCand::setDataword ( uint32_t  msbs,
uint32_t  lsbs 
)
inline

Definition at line 58 of file RegionalMuonCand.h.

References m_dataword.

Referenced by l1t::RegionalMuonRawDigiTranslator::fillRegionalMuonCand().

58 { m_dataword = (((uint64_t)msbs) << 32) + lsbs; };
unsigned long long uint64_t
Definition: Time.h:15
uint64_t m_dataword
This is the 64 bit word as transmitted in HW.
void l1t::RegionalMuonCand::setDataword ( uint64_t  bits)
inline

Definition at line 60 of file RegionalMuonCand.h.

References bits, and m_dataword.

60 { m_dataword = bits; };
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
uint64_t m_dataword
This is the 64 bit word as transmitted in HW.
void l1t::RegionalMuonCand::setHwEta ( int  bits)
inline

Set compressed eta as transmitted by hardware LSB = 0.010875 (9 bits)

Definition at line 44 of file RegionalMuonCand.h.

References bits, and m_hwEta.

Referenced by OMTFSorter::candidates(), l1t::RegionalMuonRawDigiTranslator::fillRegionalMuonCand(), MakeRegionalCand(), L1TBMTFConverter::produce(), L1MuBMTrackFinder::run(), L1MuBMTrack::setEta(), and l1t::stage2::emtf::SPBlockUnpacker::unpack().

44 { m_hwEta = bits; };
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
void l1t::RegionalMuonCand::setHwHF ( bool  bit)
inline

Set HF (halo / fine eta) bit (EMTF: halo -> 1; BMTF: fine eta -> 1)

Definition at line 52 of file RegionalMuonCand.h.

References m_hwHF.

Referenced by l1t::RegionalMuonRawDigiTranslator::fillRegionalMuonCand(), L1MuBMTrackFinder::run(), L1MuBMTrack::setEta(), and L1MuBMTrack::setFineEtaBit().

52 { m_hwHF = bit; };
void l1t::RegionalMuonCand::setHwPhi ( int  bits)
inline

Set compressed relative phi as transmitted by hardware LSB = 2*pi/576 (8 bits)

Definition at line 42 of file RegionalMuonCand.h.

References bits, and m_hwPhi.

Referenced by OMTFSorter::candidates(), l1t::RegionalMuonRawDigiTranslator::fillRegionalMuonCand(), MakeRegionalCand(), L1MuBMTrackFinder::run(), L1MuBMTrack::setPhi(), and l1t::stage2::emtf::SPBlockUnpacker::unpack().

42 { m_hwPhi = bits; };
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
void l1t::RegionalMuonCand::setHwPt ( int  bits)
inline

Set compressed pT as transmitted by hardware LSB = 0.5 (9 bits)

Definition at line 40 of file RegionalMuonCand.h.

References bits, and m_hwPt.

Referenced by OMTFSorter::candidates(), l1t::RegionalMuonRawDigiTranslator::fillRegionalMuonCand(), MakeRegionalCand(), L1MuBMTrackFinder::run(), L1MuBMTrack::setPt(), and l1t::stage2::emtf::SPBlockUnpacker::unpack().

40 { m_hwPt = bits; };
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
void l1t::RegionalMuonCand::setHwQual ( int  bits)
inline

Set compressed quality code as transmitted by hardware (4 bits)

Definition at line 50 of file RegionalMuonCand.h.

References bits, and m_hwQuality.

Referenced by OMTFSorter::candidates(), l1t::RegionalMuonRawDigiTranslator::fillRegionalMuonCand(), MakeRegionalCand(), L1TMuonQualityAdjuster::produce(), L1MuBMTrackFinder::run(), L1MuBMTrack::setQuality(), and l1t::stage2::emtf::SPBlockUnpacker::unpack().

50 { m_hwQuality = bits; };
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
void l1t::RegionalMuonCand::setHwSign ( int  bits)
inline

Set charge sign bit (charge = (-1)^(sign))

Definition at line 46 of file RegionalMuonCand.h.

References bits, and m_hwSign.

Referenced by OMTFSorter::candidates(), l1t::RegionalMuonRawDigiTranslator::fillRegionalMuonCand(), MakeRegionalCand(), L1MuBMTrackFinder::run(), L1MuBMTrack::setCharge(), and l1t::stage2::emtf::SPBlockUnpacker::unpack().

46 { m_hwSign = bits; };
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
void l1t::RegionalMuonCand::setHwSignValid ( int  bits)
inline

Set whether charge measurement is valid (0 for high pT muons)

Definition at line 48 of file RegionalMuonCand.h.

References bits, and m_hwSignValid.

Referenced by OMTFSorter::candidates(), l1t::RegionalMuonRawDigiTranslator::fillRegionalMuonCand(), L1MuBMTrack::L1MuBMTrack(), MakeRegionalCand(), L1MuBMTrackFinder::run(), and l1t::stage2::emtf::SPBlockUnpacker::unpack().

48 { m_hwSignValid = bits; };
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
void l1t::RegionalMuonCand::setLink ( int  link)
inline

Definition at line 56 of file RegionalMuonCand.h.

References link(), and m_link.

Referenced by l1t::stage2::BMTFUnpackerOutput::unpack().

56 {m_link = link; };
const int link() const
Get link on which the MicroGMT receives the candidate.
void l1t::RegionalMuonCand::setTFIdentifiers ( int  processor,
tftype  trackFinder 
)

Set the processor ID, track-finder type. From these two, the link is set.

Definition at line 6 of file RegionalMuonCand.cc.

References l1t::bmtf, l1t::emtf_neg, l1t::emtf_pos, m_link, m_processor, m_trackFinder, l1t::omtf_neg, l1t::omtf_pos, and processor().

Referenced by OMTFSorter::candidates(), L1MuBMTrack::enable(), l1t::RegionalMuonRawDigiTranslator::fillRegionalMuonCand(), MakeRegionalCand(), RegionalMuonCand(), L1MuBMTrackFinder::run(), and l1t::stage2::emtf::SPBlockUnpacker::unpack().

6  {
7  m_trackFinder = trackFinder;
9 
10  switch (m_trackFinder) {
11  case tftype::emtf_pos:
12  m_link = m_processor + 36; // range 36...41
13  break;
14  case tftype::omtf_pos:
15  m_link = m_processor + 42; // range 42...47
16  break;
17  case tftype::bmtf:
18  m_link = m_processor + 48; // range 48...59
19  break;
20  case tftype::omtf_neg:
21  m_link = m_processor + 60; // range 60...65
22  break;
23  case tftype::emtf_neg:
24  m_link = m_processor + 66; // range 66...71
25  }
26 }
const int processor() const
Get processor ID on which the candidate was found (0..5 for OMTF/EMTF; 0..11 for BMTF) ...
void l1t::RegionalMuonCand::setTrackAddress ( const std::map< int, int > &  address)
inline

Set the whole track address.

Definition at line 70 of file RegionalMuonCand.h.

References m_trackAddress.

Referenced by OMTFSorter::candidates(), and l1t::RegionalMuonRawDigiTranslator::fillRegionalMuonCand().

70  {
71  m_trackAddress = address;
72  }
std::map< int, int > m_trackAddress
void l1t::RegionalMuonCand::setTrackSubAddress ( bmtfAddress  subAddress,
int  value 
)
inline

Set a part of the muon candidates track address; specialised for BMTF.

Definition at line 62 of file RegionalMuonCand.h.

References m_trackAddress, and relativeConstraints::value.

Referenced by l1t::RegionalMuonRawDigiTranslator::fillRegionalMuonCand(), L1MuBMTrackFinder::run(), and l1t::stage2::emtf::SPBlockUnpacker::unpack().

62  {
63  m_trackAddress[subAddress] = value;
64  }
std::map< int, int > m_trackAddress
void l1t::RegionalMuonCand::setTrackSubAddress ( emtfAddress  subAddress,
int  value 
)
inline

Set a part of the muon candidates track address; specialised for EMTF.

Definition at line 66 of file RegionalMuonCand.h.

References m_trackAddress, and relativeConstraints::value.

66  {
67  m_trackAddress[subAddress] = value;
68  }
std::map< int, int > m_trackAddress
const std::map<int, int>& l1t::RegionalMuonCand::trackAddress ( ) const
inline

Get the track address (identifies track primitives used for reconstruction)

Definition at line 102 of file RegionalMuonCand.h.

References m_trackAddress.

Referenced by l1t::RegionalMuonRawDigiTranslator::generatePackedDataWords(), and XMLConfigWriter::writeCandMuon().

102  {
103  return m_trackAddress;
104  }
std::map< int, int > m_trackAddress
const tftype l1t::RegionalMuonCand::trackFinderType ( ) const
inline

Get track-finder which found the muon (bmtf, emtf_pos/emtf_neg or omtf_pos/omtf_neg)

Definition at line 92 of file RegionalMuonCand.h.

References m_trackFinder.

Referenced by l1t::RegionalMuonRawDigiTranslator::generatePackedDataWords(), l1t::GMTInternalMuon::trackFinderType(), and XMLConfigWriter::writeCandMuon().

92 { return m_trackFinder; };
int l1t::RegionalMuonCand::trackSubAddress ( bmtfAddress  subAddress) const
inline

Get part of track address (identifies track primitives used for reconstruction)

Definition at line 106 of file RegionalMuonCand.h.

References m_trackAddress.

Referenced by l1t::RegionalMuonRawDigiTranslator::generatePackedDataWords().

106  {
107  return m_trackAddress.at(subAddress);
108  }
std::map< int, int > m_trackAddress
int l1t::RegionalMuonCand::trackSubAddress ( emtfAddress  subAddress) const
inline

Get part of track address (identifies track primitives used for reconstruction)

Definition at line 110 of file RegionalMuonCand.h.

References m_trackAddress.

110  {
111  return m_trackAddress.at(subAddress);
112  }
std::map< int, int > m_trackAddress

Member Data Documentation

uint64_t l1t::RegionalMuonCand::m_dataword
private

This is the 64 bit word as transmitted in HW.

Definition at line 129 of file RegionalMuonCand.h.

Referenced by dataword(), dataword32Lsb(), dataword32Msb(), and setDataword().

int l1t::RegionalMuonCand::m_hwEta
private

Definition at line 118 of file RegionalMuonCand.h.

Referenced by hwEta(), and setHwEta().

bool l1t::RegionalMuonCand::m_hwHF
private

Definition at line 119 of file RegionalMuonCand.h.

Referenced by hwHF(), and setHwHF().

int l1t::RegionalMuonCand::m_hwPhi
private

Definition at line 117 of file RegionalMuonCand.h.

Referenced by hwPhi(), and setHwPhi().

int l1t::RegionalMuonCand::m_hwPt
private

Definition at line 116 of file RegionalMuonCand.h.

Referenced by hwPt(), and setHwPt().

int l1t::RegionalMuonCand::m_hwQuality
private

Definition at line 122 of file RegionalMuonCand.h.

Referenced by hwQual(), and setHwQual().

int l1t::RegionalMuonCand::m_hwSign
private

Definition at line 120 of file RegionalMuonCand.h.

Referenced by hwSign(), and setHwSign().

int l1t::RegionalMuonCand::m_hwSignValid
private

Definition at line 121 of file RegionalMuonCand.h.

Referenced by hwSignValid(), and setHwSignValid().

int l1t::RegionalMuonCand::m_link
private

Definition at line 123 of file RegionalMuonCand.h.

Referenced by link(), setLink(), and setTFIdentifiers().

int l1t::RegionalMuonCand::m_processor
private

Definition at line 124 of file RegionalMuonCand.h.

Referenced by processor(), and setTFIdentifiers().

std::map<int, int> l1t::RegionalMuonCand::m_trackAddress
private
tftype l1t::RegionalMuonCand::m_trackFinder
private

Definition at line 125 of file RegionalMuonCand.h.

Referenced by setTFIdentifiers(), and trackFinderType().