CMS 3D CMS Logo

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
CaloRecHit.cc
Go to the documentation of this file.
2 
3 
4 CaloRecHit::CaloRecHit() : energy_(0), time_(0), flags_(0), aux_(0) {
5 }
6 
7 CaloRecHit::CaloRecHit(const DetId& id, float energy, float time, uint32_t flags, uint32_t aux) :
8  id_(id),energy_(energy), time_(time), flags_(flags), aux_(aux) {
9 }
10 
12 }
13 
14 static const uint32_t masks[] = {
15  0x00000000u,0x00000001u,0x00000003u,0x00000007u,0x0000000fu,0x0000001fu,
16  0x0000003fu,0x0000007fu,0x000000ffu,0x000001ffu,0x000003ffu,0x000007ffu,
17  0x00000fffu,0x00001fffu,0x00003fffu,0x00007fffu,0x0000ffffu,0x0001ffffu,
18  0x0003ffffu,0x0007ffffu,0x000fffffu,0x001fffffu,0x003fffffu,0x007fffffu,
19  0x00ffffffu,0x01ffffffu,0x03ffffffu,0x07ffffffu,0x0fffffffu,0x1fffffffu,
20  0x3fffffffu,0x7fffffffu,0xffffffffu};
21 
22 void CaloRecHit::setFlagField(uint32_t value, int base, int width) {
23  value&=masks[std::max(std::min(width,32),0)];
24  value<<=std::max(std::min(base,31),0);
25  // clear out the relevant bits
26  uint32_t clear=masks[std::max(std::min(width,32),0)];
27  clear=clear<<std::max(std::min(base,31),0);
28  clear^=0xFFFFFFFFu;
29  flags_&=clear;
30  flags_|=value;
31 }
32 
33 uint32_t CaloRecHit::flagField(int base, int width) const {
34  return (flags_>>std::max(std::min(base,31),0))&masks[std::max(std::min(width,32),0)];
35 }
36 
37 
38 std::ostream& operator<<(std::ostream& s, const CaloRecHit& hit) {
39  s << hit.detid().rawId() << ", " << hit.energy() << " GeV, " << hit.time() << " ns ";
40  s << " flags=0x" << std::hex << hit.flags() << std::dec << " ";
41  s << " aux=0x" << std::hex << hit.aux() << std::dec << " ";
42  return s;
43 }
44 
tuple base
Main Program
Definition: newFWLiteAna.py:92
uint32_t aux() const
Definition: CaloRecHit.h:27
const DetId & detid() const
Definition: CaloRecHit.h:21
virtual ~CaloRecHit()
Definition: CaloRecHit.cc:11
void setFlagField(uint32_t value, int base, int width=1)
Definition: CaloRecHit.cc:22
std::vector< Variable::Flags > flags
Definition: MVATrainer.cc:135
#define min(a, b)
Definition: mlp_lapack.h:161
std::ostream & operator<<(std::ostream &out, const ALILine &li)
Definition: ALILine.cc:187
float time() const
Definition: CaloRecHit.h:20
uint32_t rawId() const
get the raw id
Definition: DetId.h:45
const T & max(const T &a, const T &b)
float energy() const
Definition: CaloRecHit.h:19
uint32_t flags() const
Definition: CaloRecHit.h:22
Definition: DetId.h:20
uint32_t flags_
Definition: CaloRecHit.h:32
string s
Definition: asciidump.py:422
uint32_t flagField(int base, int width=1) const
Definition: CaloRecHit.cc:33
static const uint32_t masks[]
Definition: CaloRecHit.cc:14