CMS 3D CMS Logo

HcalTrigTowerGeometry.h
Go to the documentation of this file.
1 #ifndef HcalTrigTowerGeometry_h
2 #define HcalTrigTowerGeometry_h
3 
6 #include <vector>
8 class HcalDetId;
9 
11 public:
13 
15  std::vector<HcalTrigTowerDetId> towerIds(const HcalDetId& cellId) const;
16  std::vector<HcalDetId> detIds(const HcalTrigTowerDetId&) const;
17 
18  int firstHFTower(int version) const { return (version == 1) ? (30) : (29); }
19 
21  void towerEtaBounds(int ieta, int version, double& eta1, double& eta2) const;
22 
24  int nTowers(int version) const { return (version == 1) ? (41) : (32); }
25 
26  // get the topology pointer
27  const HcalTopology& topology() const { return *theTopology; }
28 
29  // Get the useRCT and use1x1 values
30  bool useRCT() const { return useRCT_; }
31  bool use1x1() const { return use1x1_; }
32 
33 private:
35  int nPhiBins(int ieta, int version) const {
36  int nPhiBinsHF = (18);
37  return (abs(ieta) < firstHFTower(version)) ? 72 : nPhiBinsHF;
38  }
39 
42  int hfTowerEtaSize(int ieta) const;
43 
45  int firstHFRingInTower(int ietaTower) const;
46 
47 private:
49 
50  bool useRCT_;
51  bool use1x1_;
52  bool use2017_;
53 };
54 
55 #endif
const HcalTopology * theTopology
int nTowers(int version) const
number of towers (version dependent)
const HcalTopology & topology() const
int firstHFTower(int version) const
std::vector< HcalDetId > detIds(const HcalTrigTowerDetId &) const
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
int firstHFRingInTower(int ietaTower) const
since the towers are irregular in eta in HF
void towerEtaBounds(int ieta, int version, double &eta1, double &eta2) const
where this tower begins and ends in eta
int nPhiBins(int ieta, int version) const
the number of phi bins in this eta ring
int hfTowerEtaSize(int ieta) const
HcalTrigTowerGeometry(const HcalTopology *topology)
std::vector< HcalTrigTowerDetId > towerIds(const HcalDetId &cellId) const
the mapping to and from DetIds