CMS 3D CMS Logo

HcalFinegrainBit.cc
Go to the documentation of this file.
2 
3 #include <cassert>
4 
6  if (version_ == 0) {
7  std::bitset<4> result;
8 
9  // First layer consistent with a MIP
10  result[0] = tower[is_mip][0];
11 
12  // First layer consistent with a MIP, at least one layer with more
13  // than MIP energy deposition
14  result[1] = result[0] & (tower[is_above_mip].count() > 0);
15 
16  // There layers consistent with a MIP
17  result[2] = tower[is_mip].count() >= 3;
18 
19  // Unset
20  result[3] = false;
21 
22  return result;
23  }
24  if (version_ == 1) {
25  std::bitset<4> result;
26 
27  // All algorithms the same for testing purposes
28  result[0] = result[1] = result[2] = result[3] = tower[is_mip][0];
29 
30  return result;
31  }
32  if (version_ == 2) {
33  std::bitset<4> result;
34 
35  // All algorithms the same for testing purposes
36  result[0] = result[1] = result[2] = result[3] = true;
37 
38  return result;
39  }
40  return 0;
41 }
HcalFinegrainBit::version_
int version_
Definition: HcalFinegrainBit.h:22
hgcalTowerProducer_cfi.tower
tower
Definition: hgcalTowerProducer_cfi.py:3
HcalFinegrainBit.h
HcalFinegrainBit::is_mip
const int is_mip
Definition: HcalFinegrainBit.h:19
HcalFinegrainBit::Tower
std::array< std::bitset< 6 >, 2 > Tower
Definition: HcalFinegrainBit.h:11
HcalFinegrainBit::compute
std::bitset< 4 > compute(const Tower &) const
Definition: HcalFinegrainBit.cc:5
HcalFinegrainBit::is_above_mip
const int is_above_mip
Definition: HcalFinegrainBit.h:20
mps_fire.result
result
Definition: mps_fire.py:303