CMS 3D CMS Logo

Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | Static Protected Attributes | Friends

L1MuGMTCand Class Reference

#include <L1MuGMTCand.h>

Inheritance diagram for L1MuGMTCand:
L1MuGMTExtendedCand SimpleL1MuGMTCand

List of all members.

Public Member Functions

int bx () const
 get bunch crossing identifier
int charge () const
 get charge (+1 -1)
bool charge_valid () const
 is the charge valid ?
bool empty () const
 is it an empty muon candidate?
unsigned int etaIndex () const
 get eta-code
unsigned int etaRegionIndex () const
float etaValue () const
unsigned getDataWord () const
 get muon data word
bool isHaloCand () const
 interpretation of quality code: is the candidate a beam halo muon ?
bool isMatchedCand () const
 interpretation of quality code: is the candidate a matched candidate ?
bool isol () const
 get isolation
bool isSyncWord () const
 is the candidate a sync word
 L1MuGMTCand (unsigned data, int bx=0)
 constructor from dataword
 L1MuGMTCand (const L1MuGMTCand &)
 copy constructor
 L1MuGMTCand ()
 constructor
unsigned int linearizedPt (float lsbValue, unsigned maxScale) const
bool mip () const
 get mip
std::string name () const
 get name of object
bool operator!= (const L1MuGMTCand &) const
 unequal operator
bool operator== (const L1MuGMTCand &) const
 equal operator
unsigned int phiIndex () const
 get phi-code
unsigned int phiRegionIndex () const
float phiValue () const
void print () const
 print parameters of muon candidate
unsigned int ptIndex () const
 get pt-code
float ptValue () const
unsigned int quality () const
 get quality
void reset ()
 reset muon candidate
void setBx (int bx)
 set bunch crossing identifier
void setChargePacked (unsigned ch)
 set packed charge/synchronization word of muon candidate (0=POS, 1=NEG, 2=UNDEF, 3=SYNC)
void setEtaPacked (unsigned eta)
 set packed eta-code of muon candidate
void setEtaValue (float etaVal)
 Set Eta Value (need to set type, first)
void setIsolation (bool isol)
 set isolation of muon candidate
void setMIP (bool mip)
 set min ionizing bit for muon candidate
void setPhiPacked (unsigned phi)
 set packed phi-code of muon candidate
void setPhiValue (float phiVal)
 Setters for physical values.
void setPtPacked (unsigned pt)
 set packed pt-code of muon candidate
void setPtValue (float ptVal)
 Set Pt Value.
void setQuality (unsigned quality)
 set quality of muon candidate
unsigned sysign () const
 get charge/synchronization word (0=POS, 1=NEG, 2=UNDEF, 3=SYNC)
bool useInDiMuonTrigger () const
 interpretation of quality code: is the candidate to be used in a di-muon trigger ?
bool useInSingleMuonTrigger () const
 interpretation of quality code: is the candidate to be used in a single muon trigger ?
virtual ~L1MuGMTCand ()
 destructor

Protected Types

enum  { PHI_START = 0 }
enum  { PHI_LENGTH = 8 }
enum  { PT_START = 8 }
enum  { PT_LENGTH = 5 }
enum  { QUAL_START = 13 }
enum  { QUAL_LENGTH = 3 }
enum  { ETA_START = 16 }
enum  { ETA_LENGTH = 6 }
enum  { ISO_START = 22 }
enum  { ISO_LENGTH = 1 }
enum  { MIP_START = 23 }
enum  { MIP_LENGTH = 1 }
enum  { SYSIGN_START = 24 }
enum  { SYSIGN_LENGTH = 2 }

Protected Member Functions

unsigned readDataField (unsigned start, unsigned count) const
void writeDataField (unsigned start, unsigned count, unsigned value)

Protected Attributes

int m_bx
unsigned m_dataWord
float m_etaValue
std::string m_name
float m_phiValue
float m_ptValue

Static Protected Attributes

static const float m_invalidValue = -10.

Friends

std::ostream & operator<< (std::ostream &, const L1MuGMTCand &)
 output stream operator

Detailed Description

L1 Global Muon Trigger Candidate.

This candidate contains only information sent to the GT.

Definition at line 42 of file L1MuGMTCand.h.


Member Enumeration Documentation

anonymous enum [protected]
Enumerator:
PHI_START 

Definition at line 226 of file L1MuGMTCand.h.

{ PHI_START=0};     enum { PHI_LENGTH = 8};    // Bits 0:7   phi (8 bits)
anonymous enum [protected]
Enumerator:
PHI_LENGTH 

Definition at line 226 of file L1MuGMTCand.h.

{ PHI_START=0};     enum { PHI_LENGTH = 8};    // Bits 0:7   phi (8 bits)
anonymous enum [protected]
Enumerator:
PT_START 

Definition at line 227 of file L1MuGMTCand.h.

{ PT_START=8};      enum { PT_LENGTH =  5};    // Bits 8:12  pt  (5 bits)
anonymous enum [protected]
Enumerator:
PT_LENGTH 

Definition at line 227 of file L1MuGMTCand.h.

{ PT_START=8};      enum { PT_LENGTH =  5};    // Bits 8:12  pt  (5 bits)
anonymous enum [protected]
Enumerator:
QUAL_START 

Definition at line 228 of file L1MuGMTCand.h.

{ QUAL_START=13};   enum { QUAL_LENGTH = 3};   // Bits 13:15 quality (3 bits)
anonymous enum [protected]
Enumerator:
QUAL_LENGTH 

Definition at line 228 of file L1MuGMTCand.h.

{ QUAL_START=13};   enum { QUAL_LENGTH = 3};   // Bits 13:15 quality (3 bits)
anonymous enum [protected]
Enumerator:
ETA_START 

Definition at line 229 of file L1MuGMTCand.h.

{ ETA_START=16};    enum { ETA_LENGTH = 6};    // Bits 16:21 eta (6 bits)
anonymous enum [protected]
Enumerator:
ETA_LENGTH 

Definition at line 229 of file L1MuGMTCand.h.

{ ETA_START=16};    enum { ETA_LENGTH = 6};    // Bits 16:21 eta (6 bits)
anonymous enum [protected]
Enumerator:
ISO_START 

Definition at line 230 of file L1MuGMTCand.h.

{ ISO_START=22};    enum { ISO_LENGTH = 1};    // Bit  22    Isolation
anonymous enum [protected]
Enumerator:
ISO_LENGTH 

Definition at line 230 of file L1MuGMTCand.h.

{ ISO_START=22};    enum { ISO_LENGTH = 1};    // Bit  22    Isolation
anonymous enum [protected]
Enumerator:
MIP_START 

Definition at line 231 of file L1MuGMTCand.h.

{ MIP_START=23};    enum { MIP_LENGTH = 1};    // Bit  23    MIP
anonymous enum [protected]
Enumerator:
MIP_LENGTH 

Definition at line 231 of file L1MuGMTCand.h.

{ MIP_START=23};    enum { MIP_LENGTH = 1};    // Bit  23    MIP
anonymous enum [protected]
Enumerator:
SYSIGN_START 

Definition at line 232 of file L1MuGMTCand.h.

{ SYSIGN_START=24}; enum { SYSIGN_LENGTH = 2}; // Bit  24:25 Charge/Syncword
anonymous enum [protected]
Enumerator:
SYSIGN_LENGTH 

Definition at line 232 of file L1MuGMTCand.h.

{ SYSIGN_START=24}; enum { SYSIGN_LENGTH = 2}; // Bit  24:25 Charge/Syncword

Constructor & Destructor Documentation

L1MuGMTCand::L1MuGMTCand ( )

constructor

Definition at line 51 of file L1MuGMTCand.cc.

References m_etaValue, m_invalidValue, m_phiValue, and m_ptValue.

L1MuGMTCand::L1MuGMTCand ( unsigned  data,
int  bx = 0 
)

constructor from dataword

Definition at line 63 of file L1MuGMTCand.cc.

References m_etaValue, m_invalidValue, m_phiValue, and m_ptValue.

L1MuGMTCand::L1MuGMTCand ( const L1MuGMTCand mu)

copy constructor

Definition at line 58 of file L1MuGMTCand.cc.

L1MuGMTCand::~L1MuGMTCand ( ) [virtual]

destructor

Definition at line 75 of file L1MuGMTCand.cc.

References reset().

                          {

  reset();

}

Member Function Documentation

int L1MuGMTCand::bx ( ) const [inline]

get bunch crossing identifier

Definition at line 122 of file L1MuGMTCand.h.

References m_bx.

Referenced by print(), pat::L1MuonMatcher::produce(), and setBx().

{ return m_bx; }
int L1MuGMTCand::charge ( ) const [inline]

get charge (+1 -1)

Reimplemented in SimpleL1MuGMTCand.

Definition at line 137 of file L1MuGMTCand.h.

References readDataField(), SYSIGN_LENGTH, and SYSIGN_START.

Referenced by print(), L1MuonPixelTrackFitter::setL1Constraint(), and L1MuonRegionProducer::setL1Constraint().

{ return (readDataField( SYSIGN_START, SYSIGN_LENGTH) & 1 ) == 0 ? 1: -1; }
bool L1MuGMTCand::charge_valid ( ) const [inline]

is the charge valid ?

Definition at line 140 of file L1MuGMTCand.h.

References readDataField(), sysign(), SYSIGN_LENGTH, and SYSIGN_START.

Referenced by L2MuonSeedGenerator::produce().

                              { 
      unsigned sysign = readDataField( SYSIGN_START, SYSIGN_LENGTH) ;
      return  (sysign == 0 || sysign == 1 );
    }
bool L1MuGMTCand::empty ( ) const [inline]
unsigned int L1MuGMTCand::etaIndex ( ) const [inline]
unsigned int L1MuGMTCand::etaRegionIndex ( ) const [inline]

Reimplemented in SimpleL1MuGMTCand.

Definition at line 193 of file L1MuGMTCand.h.

References etaIndex().

{ return etaIndex(); }
float L1MuGMTCand::etaValue ( ) const

get eta-value of muon candidate this functionality will be moved to an extra Producer

Definition at line 116 of file L1MuGMTCand.cc.

References m_etaValue, and m_invalidValue.

Referenced by print(), SimpleL1MuGMTCand::print(), L1MuonPixelTrackFitter::setL1Constraint(), and L1MuonRegionProducer::setL1Constraint().

                                  {

  if(m_etaValue == m_invalidValue) {
    edm::LogWarning("ValueInvalid") << 
     "L1MuGMTCand::etaValue requested physical value is invalid";
  }
  return m_etaValue;

}
unsigned L1MuGMTCand::getDataWord ( ) const [inline]

get muon data word

Definition at line 69 of file L1MuGMTCand.h.

References m_dataWord.

Referenced by L1GtPatternGenerator::analyze().

{ return m_dataWord; }
bool L1MuGMTCand::isHaloCand ( ) const [inline]

interpretation of quality code: is the candidate a beam halo muon ?

Definition at line 107 of file L1MuGMTCand.h.

References quality().

{ return quality() == 1; }
bool L1MuGMTCand::isMatchedCand ( ) const [inline]

interpretation of quality code: is the candidate a matched candidate ?

Definition at line 104 of file L1MuGMTCand.h.

References quality().

{ return quality() == 7; }
bool L1MuGMTCand::isol ( ) const [inline]
bool L1MuGMTCand::isSyncWord ( ) const [inline]

is the candidate a sync word

Definition at line 146 of file L1MuGMTCand.h.

References readDataField(), SYSIGN_LENGTH, and SYSIGN_START.

unsigned int L1MuGMTCand::linearizedPt ( float  lsbValue,
unsigned  maxScale 
) const [inline]

Reimplemented in SimpleL1MuGMTCand.

Definition at line 191 of file L1MuGMTCand.h.

{ return 0; }
bool L1MuGMTCand::mip ( ) const [inline]
std::string L1MuGMTCand::name ( ) const [inline]

get name of object

Reimplemented in SimpleL1MuGMTCand.

Definition at line 72 of file L1MuGMTCand.h.

References m_name.

{ return m_name; }
bool L1MuGMTCand::operator!= ( const L1MuGMTCand cand) const

unequal operator

Definition at line 155 of file L1MuGMTCand.cc.

References m_bx, and m_dataWord.

                                                          {

  if ( m_bx        != cand.m_bx )        return true;  
  if ( m_dataWord  != cand.m_dataWord )  return true;
  return false;

}
bool L1MuGMTCand::operator== ( const L1MuGMTCand cand) const

equal operator

Definition at line 143 of file L1MuGMTCand.cc.

References m_bx, and m_dataWord.

                                                          {

  if ( m_bx        != cand.m_bx )        return false; 
  if ( m_dataWord  != cand.m_dataWord )  return false;
  return true;

}
unsigned int L1MuGMTCand::phiIndex ( ) const [inline]
unsigned int L1MuGMTCand::phiRegionIndex ( ) const [inline]

Reimplemented in SimpleL1MuGMTCand.

Definition at line 195 of file L1MuGMTCand.h.

References phiIndex().

{ return phiIndex(); }
float L1MuGMTCand::phiValue ( ) const

get phi-value of muon candidate in radians (low edge of bin) this functionality will be moved to an extra Producer

Definition at line 102 of file L1MuGMTCand.cc.

References m_invalidValue, and m_phiValue.

Referenced by print(), SimpleL1MuGMTCand::print(), L1MuonPixelTrackFitter::setL1Constraint(), and L1MuonRegionProducer::setL1Constraint().

                                  {

  if(m_phiValue == m_invalidValue) {
    edm::LogWarning("ValueInvalid") << 
     "L1MuGMTCand::phiValue requested physical value is invalid";
  }
  return m_phiValue;

}
void L1MuGMTCand::print ( void  ) const

print parameters of muon candidate

Reimplemented in L1MuGMTExtendedCand, and SimpleL1MuGMTCand.

Definition at line 167 of file L1MuGMTCand.cc.

References bx(), charge(), empty(), etaIndex(), etaValue(), isol(), m_etaValue, m_invalidValue, m_phiValue, m_ptValue, mip(), phiIndex(), phiValue(), ptIndex(), ptValue(), and quality().

                              {

  if ( !empty() ) {
    if(m_phiValue == m_invalidValue ||
       m_etaValue == m_invalidValue ||
       m_ptValue == m_invalidValue) {
      edm::LogVerbatim("GMT_Candidate_info")
           << setiosflags(ios::right | ios::adjustfield | ios::showpoint | ios::fixed)
           << "bx = " << setw(2) << bx() << " " << endl
           << "pt(index) = "  << setw(2) << ptIndex() << "  "
           << "charge = " << setw(2) << charge() << "  "
           << "eta(index) = " << setw(2) << etaIndex() << "  "
           << "phi(index) = " << setw(3) << phiIndex() << "  "
           << "quality = " << setw(1) << quality() << "  "
           << "isolated = " << setw(1) << isol() << "  "
           << "mip = " << setw(1) << mip() << endl;
    } else {
      edm::LogVerbatim("GMT_Candidate_info")
           << setiosflags(ios::right | ios::adjustfield | ios::showpoint | ios::fixed)
           << "bx = " << setw(2) << bx() << " " << endl
           << "pt = "  << setw(5) << setprecision(1) << ptValue() << " GeV  "
           << "charge = " << setw(2) << charge() << "  "
           << "eta = " << setw(5) << setprecision(2) << etaValue() << "  "
           << "phi = " << setw(5) << setprecision(3) << phiValue() << " rad  "
           << "quality = " << setw(1) << quality() << "  "
           << "isolated = " << setw(1) << isol() << "  "
           << "mip = " << setw(1) << mip() << endl;
    }
  }

}
unsigned int L1MuGMTCand::ptIndex ( ) const [inline]
float L1MuGMTCand::ptValue ( ) const

get pt-value of muon candidate in GeV this functionality will be moved to an extra Producer

Definition at line 130 of file L1MuGMTCand.cc.

References m_invalidValue, and m_ptValue.

Referenced by print(), and SimpleL1MuGMTCand::print().

                                 {

  if(m_ptValue == m_invalidValue) {
    edm::LogWarning("ValueInvalid") << 
     "L1MuRegionalCand::ptValue requested physical value is invalid";
  }
  return m_ptValue;

}
unsigned int L1MuGMTCand::quality ( ) const [inline]

get quality

Quality codes:

0 .. no muon 1 .. beam halo muon (CSC) 2 .. very low quality level 1 (e.g. ignore in single and di-muon trigger) 3 .. very low quality level 2 (e.g. ignore in single muon trigger use in di-muon trigger) 4 .. very low quality level 3 (e.g. ignore in di-muon trigger, use in single-muon trigger) 5 .. unmatched RPC 6 .. unmatched DT or CSC 7 .. matched DT-RPC or CSC-RPC

attention: try not to rely on quality codes in analysis: they may change again

Reimplemented in SimpleL1MuGMTCand.

Definition at line 95 of file L1MuGMTCand.h.

References QUAL_LENGTH, QUAL_START, and readDataField().

Referenced by HLTInfo::analyze(), L1GtMuonCondition::checkObjectParameter(), L1MuGMTExtendedCand::detector(), L1TauAnalyzer::getL1extraObjects(), isHaloCand(), isMatchedCand(), print(), L2MuonSeedGenerator::produce(), TriggerMatcherToHLTDebug::produce(), pat::L1MuonMatcher::produce(), useInDiMuonTrigger(), and useInSingleMuonTrigger().

unsigned L1MuGMTCand::readDataField ( unsigned  start,
unsigned  count 
) const [inline, protected]
void L1MuGMTCand::reset ( void  )

reset muon candidate

Reimplemented in L1MuGMTExtendedCand, and SimpleL1MuGMTCand.

Definition at line 89 of file L1MuGMTCand.cc.

References m_bx, m_dataWord, m_etaValue, m_invalidValue, m_phiValue, and m_ptValue.

Referenced by ~L1MuGMTCand().

void L1MuGMTCand::setBx ( int  bx) [inline]
void L1MuGMTCand::setChargePacked ( unsigned  ch) [inline]

set packed charge/synchronization word of muon candidate (0=POS, 1=NEG, 2=UNDEF, 3=SYNC)

Definition at line 171 of file L1MuGMTCand.h.

References SYSIGN_LENGTH, SYSIGN_START, and writeDataField().

Referenced by L1MuGMTMerger::createDTCSCCand(), L1MuGMTMerger::createMergedCand(), L1MuGMTMerger::createRPCCand(), SimpleL1MuGMTCand::setCharge(), and L1DummyProducer::SimpleDigi().

void L1MuGMTCand::setEtaPacked ( unsigned  eta) [inline]
void L1MuGMTCand::setEtaValue ( float  etaVal) [inline]
void L1MuGMTCand::setIsolation ( bool  isol) [inline]
void L1MuGMTCand::setMIP ( bool  mip) [inline]
void L1MuGMTCand::setPhiPacked ( unsigned  phi) [inline]
void L1MuGMTCand::setPhiValue ( float  phiVal) [inline]
void L1MuGMTCand::setPtPacked ( unsigned  pt) [inline]
void L1MuGMTCand::setPtValue ( float  ptVal) [inline]
void L1MuGMTCand::setQuality ( unsigned  quality) [inline]
unsigned L1MuGMTCand::sysign ( ) const [inline]

get charge/synchronization word (0=POS, 1=NEG, 2=UNDEF, 3=SYNC)

Definition at line 113 of file L1MuGMTCand.h.

References readDataField(), SYSIGN_LENGTH, and SYSIGN_START.

Referenced by charge_valid().

bool L1MuGMTCand::useInDiMuonTrigger ( ) const [inline]

interpretation of quality code: is the candidate to be used in a di-muon trigger ?

Definition at line 101 of file L1MuGMTCand.h.

References quality().

{ return (quality() >= 3) && (quality() !=4); }; 
bool L1MuGMTCand::useInSingleMuonTrigger ( ) const [inline]

interpretation of quality code: is the candidate to be used in a single muon trigger ?

Definition at line 98 of file L1MuGMTCand.h.

References quality().

{ return quality() >= 4; };
void L1MuGMTCand::writeDataField ( unsigned  start,
unsigned  count,
unsigned  value 
) [inline, protected]

Friends And Related Function Documentation

std::ostream& operator<< ( std::ostream &  ,
const L1MuGMTCand  
) [friend]

output stream operator


Member Data Documentation

int L1MuGMTCand::m_bx [protected]

Definition at line 216 of file L1MuGMTCand.h.

Referenced by bx(), operator!=(), operator==(), reset(), and setBx().

unsigned L1MuGMTCand::m_dataWord [protected]

Definition at line 217 of file L1MuGMTCand.h.

Referenced by getDataWord(), operator!=(), operator==(), readDataField(), reset(), and writeDataField().

float L1MuGMTCand::m_etaValue [protected]

Definition at line 220 of file L1MuGMTCand.h.

Referenced by etaValue(), L1MuGMTCand(), print(), reset(), and setEtaValue().

const float L1MuGMTCand::m_invalidValue = -10. [static, protected]

Definition at line 222 of file L1MuGMTCand.h.

Referenced by etaValue(), L1MuGMTCand(), phiValue(), print(), ptValue(), and reset().

std::string L1MuGMTCand::m_name [protected]

Reimplemented in SimpleL1MuGMTCand.

Definition at line 215 of file L1MuGMTCand.h.

Referenced by name().

float L1MuGMTCand::m_phiValue [protected]

Definition at line 219 of file L1MuGMTCand.h.

Referenced by L1MuGMTCand(), phiValue(), print(), reset(), and setPhiValue().

float L1MuGMTCand::m_ptValue [protected]

Definition at line 221 of file L1MuGMTCand.h.

Referenced by L1MuGMTCand(), print(), ptValue(), reset(), and setPtValue().