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:
12 
14 
16  std::vector<HcalTrigTowerDetId> towerIds(const HcalDetId & cellId) const;
17  std::vector<HcalDetId> detIds(const HcalTrigTowerDetId &) const;
18 
19  int firstHFTower(int version) const {return (version==0)?(29):(30);}
20 
22  void towerEtaBounds(int ieta, int version, double & eta1, double & eta2) const;
23 
25  int nTowers(int version) const {return (version==0)?(32):(41);}
26 
27  // get the topology pointer
28  const HcalTopology& topology() const { return *theTopology; }
29 
30  // Get the useRCT and use1x1 values
31  bool useRCT() const { return useRCT_; }
32  bool use1x1() const { return use1x1_; }
33 
34  private:
35 
37  int nPhiBins(int ieta, int version) const {
38  int nPhiBinsHF = ( 18 );
39  return (abs(ieta) < firstHFTower(version)) ? 72 : nPhiBinsHF;
40  }
41 
44  int hfTowerEtaSize(int ieta) const;
45 
47  int firstHFRingInTower(int ietaTower) const;
48 
49  private:
51 
52  bool useRCT_;
53  bool use1x1_;
54  bool use2017_;
55 };
56 
57 #endif
58 
std::vector< HcalTrigTowerDetId > towerIds(const HcalDetId &cellId) const
the mapping to and from DetIds
const HcalTopology * theTopology
void towerEtaBounds(int ieta, int version, double &eta1, double &eta2) const
where this tower begins and ends in eta
int hfTowerEtaSize(int ieta) const
int nPhiBins(int ieta, int version) const
the number of phi bins in this eta ring
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
int nTowers(int version) const
number of towers (version dependent)
int firstHFRingInTower(int ietaTower) const
since the towers are irregular in eta in HF
const HcalTopology & topology() const
HcalTrigTowerGeometry(const HcalTopology *topology)
std::vector< HcalDetId > detIds(const HcalTrigTowerDetId &) const
int firstHFTower(int version) const