CMS 3D CMS Logo

L1CaloMipQuietRegion.h
Go to the documentation of this file.
1 #ifndef L1CALOMIPQUIETREGION_H
2 #define L1CALOMIPQUIETREGION_H
3 
4 #include <ostream>
5 
7 
16 public:
17  // ** Constructors/Destructors **
18 
21 
23  L1CaloMipQuietRegion(bool mip, bool quiet, unsigned crate, unsigned card, unsigned rgn, int16_t bx);
24 
26  L1CaloMipQuietRegion(bool mip, bool quiet, unsigned ieta, unsigned iphi, int16_t bx = 0);
27 
30 
31  // ** Operators **
32 
34  bool operator==(const L1CaloMipQuietRegion& rhs) const;
35 
37  bool operator!=(const L1CaloMipQuietRegion& rhs) const { return !(*this == rhs); }
38 
39  // ** Get methods for the data **
40 
41  uint8_t raw() const { return m_data; }
42 
43  bool mip() const { return (m_data & 0x1) != 0; }
44 
45  bool quiet() const { return ((m_data >> 1) & 0x1) != 0; }
46 
47  int16_t bx() const { return m_bx; }
48 
49  // ** Set methods for the data **
50 
51  void setMip(bool mip) { mip ? m_data |= 1 : m_data &= ~1; }
52 
53  void setQuiet(bool quiet) { quiet ? m_data |= 2 : m_data &= ~2; }
54 
55  void setBx(int16_t bx) { m_bx = bx; }
56 
57  // ** Get methods for geographical information **
58 
59  L1CaloRegionDetId id() const { return m_id; }
60 
61  unsigned rctCrate() const { return m_id.rctCrate(); }
62 
63  unsigned rctCard() const { return m_id.rctCard(); }
64 
65  unsigned rctRegionIndex() const { return m_id.rctRegion(); }
66 
67  unsigned rctEta() const { return m_id.rctEta(); }
68 
69  unsigned rctPhi() const { return m_id.rctPhi(); }
70 
71  unsigned gctEta() const { return m_id.ieta(); }
72 
73  unsigned gctPhi() const { return m_id.iphi(); }
74 
75  // ** Misc **
76 
78  bool empty() const { return false; }
79 
81  void reset() {
82  m_data = 0;
83  m_bx = 0;
84  }
85 
86 private:
87  // ** Private Data **
88 
90 
91  uint8_t m_data;
92 
93  int16_t m_bx;
94 
95  // ** Private Methods **
96 
98  void pack(bool mip, bool quiet) { m_data = (mip ? 1 : 0) | (quiet ? 2 : 0); }
99 };
100 
102 std::ostream& operator<<(std::ostream& os, const L1CaloMipQuietRegion& rhs);
103 
104 #endif /*L1CALOMIPQUIETREGION_H*/
unsigned rctRegion() const
return RCT region index (0-1 for barrel, 0-7 for HF)
bool operator==(const L1CaloMipQuietRegion &rhs) const
Equality operator; compares all data: MIP/Quiet bits, bunch crossing & geographical.
unsigned rctCrate() const
return RCT crate number (0-17)
void setQuiet(bool quiet)
Set Quiet bit.
void setMip(bool mip)
Set MIP bit.
L1CaloRegionDetId id() const
Get global region ID.
unsigned ieta() const
global eta index (0-21)
unsigned rctEta() const
return local RCT eta index (0-10)
bool mip() const
Get MIP bit.
unsigned gctEta() const
Get GCT eta index.
uint8_t m_data
MIP and Quiet bits for the region, packed in bit0 + bit1 respectively.
L1CaloMipQuietRegion()
Default constructor.
unsigned rctEta() const
Get local eta index (within RCT crate).
unsigned gctPhi() const
Get GCT phi index.
int16_t m_bx
Bunch crossing.
~L1CaloMipQuietRegion()
Destructor.
L1CaloRegionDetId m_id
Geographical info: region ID.
uint8_t raw() const
Get raw data.
bool quiet() const
Get Quiet bit.
std::ostream & operator<<(std::ostream &os, const L1CaloMipQuietRegion &rhs)
Stream insertion operator - no need to be a friend.
int16_t bx() const
Get bunch crossing.
Miniumum Ionising Particle (MIP) and Quiet bits for a calorimeter trigger region. ...
unsigned rctCard() const
Get RCT reciever card ID.
unsigned rctPhi() const
return local RCT phi index (0-1)
unsigned rctCrate() const
Get RCT crate ID.
unsigned iphi() const
global phi index (0-17)
unsigned rctRegionIndex() const
Get RCT region index.
void pack(bool mip, bool quiet)
For use in constructors - packs MIP/Quiet bools up into m_data;.
unsigned rctPhi() const
Get local phi index (within RCT crate).
unsigned rctCard() const
return RCT card number (0-6)
void reset()
Resets the data content - i.e. resets MIP/Quiet and bx, but not position ID!
bool operator!=(const L1CaloMipQuietRegion &rhs) const
Inequality operator.
bool empty() const
Is the object empty? Currently always returns false.
void setBx(int16_t bx)
Set bunch crossing.