CMS 3D CMS Logo

List of all members | Public Types | Public Member Functions | Static Public Attributes | Private Attributes
HOTriggerPrimitiveDigi Class Reference

#include <HOTriggerPrimitiveDigi.h>

Public Types

typedef HcalDetId key_type
 For the sorted collection. More...
 

Public Member Functions

int bits () const
 get the single-bit data More...
 
bool data (int whichbit=HO_TP_SAMPLES_MAX) const
 
 HOTriggerPrimitiveDigi ()
 
 HOTriggerPrimitiveDigi (uint32_t data)
 
 HOTriggerPrimitiveDigi (int ieta, int iphi, int nsamples, int whichSampleTriggered, int databits)
 
const HcalDetId id () const
 
int ieta () const
 get the signed ieta value More...
 
int ieta_abs () const
 get the absolute value of ieta More...
 
int ieta_sign () const
 get the sign of ieta (int: +/- 1) More...
 
int iphi () const
 get the iphi value More...
 
int nsamples () const
 get the number of samples used to compute the TP More...
 
uint32_t operator() ()
 for streaming More...
 
uint32_t raw () const
 get the raw (packed) Triger Primitive More...
 
int raw_ieta () const
 get the raw ieta value More...
 
int whichSampleTriggered () const
 get the number of the triggering sample More...
 

Static Public Attributes

static const int HO_TP_SAMPLES_MAX = 10
 

Private Attributes

uint32_t theHO_TP
 

Detailed Description

Definition at line 15 of file HOTriggerPrimitiveDigi.h.

Member Typedef Documentation

◆ key_type

For the sorted collection.

Definition at line 17 of file HOTriggerPrimitiveDigi.h.

Constructor & Destructor Documentation

◆ HOTriggerPrimitiveDigi() [1/3]

HOTriggerPrimitiveDigi::HOTriggerPrimitiveDigi ( )
inline

Definition at line 19 of file HOTriggerPrimitiveDigi.h.

References theHO_TP.

◆ HOTriggerPrimitiveDigi() [2/3]

HOTriggerPrimitiveDigi::HOTriggerPrimitiveDigi ( uint32_t  data)
inline

Definition at line 20 of file HOTriggerPrimitiveDigi.h.

References data(), and theHO_TP.

20 { theHO_TP = data; }
bool data(int whichbit=HO_TP_SAMPLES_MAX) const

◆ HOTriggerPrimitiveDigi() [3/3]

HOTriggerPrimitiveDigi::HOTriggerPrimitiveDigi ( int  ieta,
int  iphi,
int  nsamples,
int  whichSampleTriggered,
int  databits 
)

Definition at line 4 of file HOTriggerPrimitiveDigi.cc.

References funct::abs(), HO_TP_SAMPLES_MAX, ieta(), iphi(), nsamples(), EgammaValidation_cff::samples, theHO_TP, and whichSampleTriggered().

5  {
6  if ((nsamples < 0) || (nsamples > HO_TP_SAMPLES_MAX)) {
7  edm::LogWarning("HOTRiggerPrimitiveDigi") << "value " << nsamples << " of nsamples out of range.";
8  if (nsamples < 0) {
9  nsamples = 0;
10  } else {
12  }
13  } else if ((whichSampleTriggered < 0) || (whichSampleTriggered > nsamples)) {
14  edm::LogWarning("HOTriggerPrimitiveDigi")
15  << "value " << whichSampleTriggered << " of specified Triggering Sample out of range.";
16  } else if ((databits >> nsamples) != 0x0000) {
17  edm::LogWarning("HOTRiggerPrimitiveDigi")
18  << "nsamples " << nsamples << " and databits " << databits << "caused specified extra bits ("
19  << (databits >> nsamples) << ") to be out of nsamples range.";
20  }
21  int samples = nsamples;
22 
23  theHO_TP = (abs(ieta) & 0xf) | ((ieta < 0) ? (0x10) : (0x00)) | ((iphi & 0x7F) << 5) | ((samples & 0xF) << 12) |
24  (((whichSampleTriggered) & 0xF) << 16) | ((databits & 0x3FF) << 20);
25 }
int ieta() const
get the signed ieta value
int whichSampleTriggered() const
get the number of the triggering sample
int iphi() const
get the iphi value
static const int HO_TP_SAMPLES_MAX
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
int nsamples() const
get the number of samples used to compute the TP
Log< level::Warning, false > LogWarning

Member Function Documentation

◆ bits()

int HOTriggerPrimitiveDigi::bits ( ) const
inline

get the single-bit data

Definition at line 42 of file HOTriggerPrimitiveDigi.h.

References theHO_TP.

42 { return (theHO_TP >> 20) & 0x03FF; }

◆ data()

bool HOTriggerPrimitiveDigi::data ( int  whichbit = HO_TP_SAMPLES_MAX) const

get one bit from the single-bit data. required to be called with a legal value.

Definition at line 28 of file HOTriggerPrimitiveDigi.cc.

References nsamples(), and theHO_TP.

Referenced by HOTriggerPrimitiveDigi(), and operator<<().

28  {
29  if ((whichbit < 0) || (whichbit > nsamples())) {
30  edm::LogWarning("HOTriggerPrimitiveDigi") << "value " << whichbit << " of sample bit requested out of range.";
31  return false;
32  }
33  return ((theHO_TP >> (20 + whichbit)) & 0x0001);
34 }
int nsamples() const
get the number of samples used to compute the TP
Log< level::Warning, false > LogWarning

◆ id()

const HcalDetId HOTriggerPrimitiveDigi::id ( ) const
inline

Definition at line 23 of file HOTriggerPrimitiveDigi.h.

References HcalOuter, ieta(), and iphi().

23 { return HcalDetId(HcalOuter, ieta(), iphi(), 4); }
int ieta() const
get the signed ieta value
int iphi() const
get the iphi value

◆ ieta()

int HOTriggerPrimitiveDigi::ieta ( ) const
inline

get the signed ieta value

Definition at line 34 of file HOTriggerPrimitiveDigi.h.

References ieta_abs(), and ieta_sign().

Referenced by HOTriggerPrimitiveDigi(), id(), and operator<<().

34 { return ieta_abs() * ieta_sign(); }
int ieta_abs() const
get the absolute value of ieta
int ieta_sign() const
get the sign of ieta (int: +/- 1)

◆ ieta_abs()

int HOTriggerPrimitiveDigi::ieta_abs ( ) const
inline

get the absolute value of ieta

Definition at line 32 of file HOTriggerPrimitiveDigi.h.

References theHO_TP.

Referenced by ieta().

32 { return (theHO_TP & 0x000F); }

◆ ieta_sign()

int HOTriggerPrimitiveDigi::ieta_sign ( ) const
inline

get the sign of ieta (int: +/- 1)

Definition at line 30 of file HOTriggerPrimitiveDigi.h.

References theHO_TP.

Referenced by ieta().

30 { return ((theHO_TP & 0x10) ? (-1) : (1)); }

◆ iphi()

int HOTriggerPrimitiveDigi::iphi ( ) const
inline

get the iphi value

Definition at line 36 of file HOTriggerPrimitiveDigi.h.

References theHO_TP.

Referenced by HOTriggerPrimitiveDigi(), id(), and operator<<().

36 { return (theHO_TP >> 5) & 0x007F; }

◆ nsamples()

int HOTriggerPrimitiveDigi::nsamples ( ) const
inline

get the number of samples used to compute the TP

Definition at line 38 of file HOTriggerPrimitiveDigi.h.

References theHO_TP.

Referenced by data(), HOTriggerPrimitiveDigi(), and operator<<().

38 { return (theHO_TP >> 12) & 0x000F; }

◆ operator()()

uint32_t HOTriggerPrimitiveDigi::operator() ( )
inline

for streaming

Definition at line 51 of file HOTriggerPrimitiveDigi.h.

References theHO_TP.

51 { return theHO_TP; }

◆ raw()

uint32_t HOTriggerPrimitiveDigi::raw ( ) const
inline

get the raw (packed) Triger Primitive

Definition at line 26 of file HOTriggerPrimitiveDigi.h.

References theHO_TP.

26 { return theHO_TP; }

◆ raw_ieta()

int HOTriggerPrimitiveDigi::raw_ieta ( ) const
inline

get the raw ieta value

Definition at line 28 of file HOTriggerPrimitiveDigi.h.

References theHO_TP.

28 { return theHO_TP & 0x1F; }

◆ whichSampleTriggered()

int HOTriggerPrimitiveDigi::whichSampleTriggered ( ) const
inline

get the number of the triggering sample

Definition at line 40 of file HOTriggerPrimitiveDigi.h.

References theHO_TP.

Referenced by HOTriggerPrimitiveDigi(), and operator<<().

40 { return (theHO_TP >> 16) & 0x000F; }

Member Data Documentation

◆ HO_TP_SAMPLES_MAX

const int HOTriggerPrimitiveDigi::HO_TP_SAMPLES_MAX = 10
static

Definition at line 44 of file HOTriggerPrimitiveDigi.h.

Referenced by HOTriggerPrimitiveDigi().

◆ theHO_TP

uint32_t HOTriggerPrimitiveDigi::theHO_TP
private