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  virtual ~CaloTowerTopology() { }
20  virtual bool valid(const DetId& id) const;
21  virtual bool validDetId(const CaloTowerDetId& id) const;
23  virtual std::vector<DetId> east(const DetId& id) const;
25  virtual std::vector<DetId> west(const DetId& id) const;
27  virtual std::vector<DetId> north(const DetId& id) const;
29  virtual std::vector<DetId> south(const DetId& id) const;
31  virtual std::vector<DetId> up(const DetId& id) const;
33  virtual std::vector<DetId> down(const DetId& id) const;
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_;}
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 };
70 #endif
virtual std::vector< DetId > down(const DetId &id) const
virtual std::vector< DetId > south(const DetId &id) const
int convertHcaltoCT(int hcal_ieta, HcalSubdetector subdet) const
virtual bool valid(const DetId &id) const
is this detid present in the Topology?
CaloTopology const * topology(0)
virtual ~CaloTowerTopology()
virtual destructor
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
virtual std::vector< DetId > north(const DetId &id) const
HcalSubdetector
Definition: HcalAssistant.h:31
const HcalTopology * hcaltopo
uint32_t denseIndex(const DetId &id) const
Definition: DetId.h:18
virtual std::vector< DetId > west(const DetId &id) const
int firstHEDoublePhiRing() const
int lastHERing() const
virtual std::vector< DetId > east(const DetId &id) const
int convertCTtoHcal(int ct_ieta) const
int lastHORing() const
int firstHEQuadPhiRing() const
int lastHBRing() const
virtual std::vector< DetId > up(const DetId &id) const
int firstHFRing() const
int firstHFQuadPhiRing() const
bool validDenseIndex(uint32_t din) const
uint32_t sizeForDenseIndexing() const
virtual bool validDetId(const CaloTowerDetId &id) const