CMS 3D CMS Logo

CaloTowerTopology.h
Go to the documentation of this file.
1 #ifndef GEOMETRY_CALOTOPOLOGY_CALOTOWERTOPOLOGY_H
2 #define GEOMETRY_CALOTOPOLOGY_CALOTOWERTOPOLOGY_H 1
3 
8 
14 public:
18  ~CaloTowerTopology() override {}
20  bool valid(const DetId& id) const override;
21  virtual bool validDetId(const CaloTowerDetId& id) const;
23  std::vector<DetId> east(const DetId& id) const override;
25  std::vector<DetId> west(const DetId& id) const override;
27  std::vector<DetId> north(const DetId& id) const override;
29  std::vector<DetId> south(const DetId& id) const override;
31  std::vector<DetId> up(const DetId& id) const override;
33  std::vector<DetId> down(const DetId& id) const override;
34 
35  //mimic accessors from HcalTopology, but with continuous ieta
36  int firstHBRing() const { return firstHBRing_; }
37  int lastHBRing() const { return lastHBRing_; }
38  int firstHERing() const { return firstHERing_; }
39  int lastHERing() const { return lastHERing_; }
40  int firstHFRing() const { return firstHFRing_; }
41  int lastHFRing() const { return lastHFRing_; }
42  int firstHORing() const { return firstHORing_; }
43  int lastHORing() const { return lastHORing_; }
45  int firstHEQuadPhiRing() const { return firstHEQuadPhiRing_; }
46  int firstHFQuadPhiRing() const { return firstHFQuadPhiRing_; }
47 
48  //conversion between CaloTowerTopology ieta and HcalTopology ieta
49  int convertCTtoHcal(int ct_ieta) const;
50  int convertHcaltoCT(int hcal_ieta, HcalSubdetector subdet) const;
51 
52  //dense index functions moved from CaloTowerDetId
53  uint32_t denseIndex(const DetId& id) const;
54  CaloTowerDetId detIdFromDenseIndex(uint32_t din) const;
55  bool validDenseIndex(uint32_t din) const { return (din < kSizeForDenseIndexing); }
56  uint32_t sizeForDenseIndexing() const { return kSizeForDenseIndexing; }
57 
58 private:
59  //member variables
68 };
69 #endif
std::vector< DetId > down(const DetId &id) const override
std::vector< DetId > up(const DetId &id) const override
~CaloTowerTopology() override
virtual destructor
int convertHcaltoCT(int hcal_ieta, HcalSubdetector subdet) const
std::vector< DetId > north(const DetId &id) const override
CaloTopology const * topology(0)
int firstHBRing() const
uint32_t kSizeForDenseIndexing
CaloTowerTopology(const HcalTopology *topology)
standard constructor
int firstHERing() const
int firstHORing() const
int lastHFRing() const
CaloTowerDetId detIdFromDenseIndex(uint32_t din) const
HcalSubdetector
Definition: HcalAssistant.h:31
const HcalTopology * hcaltopo
uint32_t denseIndex(const DetId &id) const
Definition: DetId.h:17
std::vector< DetId > east(const DetId &id) const override
int firstHEDoublePhiRing() const
int lastHERing() const
bool valid(const DetId &id) const override
is this detid present in the Topology?
std::vector< DetId > west(const DetId &id) const override
int convertCTtoHcal(int ct_ieta) const
int lastHORing() const
int firstHEQuadPhiRing() const
int lastHBRing() const
int firstHFRing() const
int firstHFQuadPhiRing() const
std::vector< DetId > south(const DetId &id) const override
bool validDenseIndex(uint32_t din) const
uint32_t sizeForDenseIndexing() const
virtual bool validDetId(const CaloTowerDetId &id) const