CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
HcalTopology.h
Go to the documentation of this file.
1 #ifndef GEOMETRY_CALOTOPOLOGY_HCALTOPOLOGY_H
2 #define GEOMETRY_CALOTOPOLOGY_HCALTOPOLOGY_H 1
3 
4 #include <vector>
7 
25 public:
26  HcalTopology(bool h2_mode=false);
27 
29  void exclude(const HcalDetId& id);
33  int exclude(HcalSubdetector subdet, int ieta1, int ieta2, int iphi1, int iphi2, int depth1=1, int depth2=4);
34 
36  virtual bool valid(const HcalDetId& id) const;
38  virtual std::vector<DetId> east(const DetId& id) const;
40  virtual std::vector<DetId> west(const DetId& id) const;
42  virtual std::vector<DetId> north(const DetId& id) const;
44  virtual std::vector<DetId> south(const DetId& id) const;
46  virtual std::vector<DetId> up(const DetId& id) const;
48  virtual std::vector<DetId> down(const DetId& id) const;
49 
51  int incIEta(const HcalDetId& id, HcalDetId neighbors[2]) const;
53  int decIEta(const HcalDetId& id, HcalDetId neighbors[2]) const;
55  bool incIPhi(const HcalDetId& id, HcalDetId &neighbor) const;
57  bool decIPhi(const HcalDetId& id, HcalDetId &neighbor) const;
59  bool incrementDepth(HcalDetId& id) const;
60 
61  int firstHBRing() const {return firstHBRing_;}
62  int lastHBRing() const {return lastHBRing_;}
63  int firstHERing() const {return firstHERing_;}
64  int lastHERing() const {return lastHERing_;}
65  int firstHFRing() const {return firstHFRing_;}
66  int lastHFRing() const {return lastHFRing_;}
67  int firstHORing() const {return firstHORing_;}
68  int lastHORing() const {return lastHORing_;}
69 
71  int firstHFQuadPhiRing() const { return firstHFQuadPhiRing_; }
73  int singlePhiBins() const {return singlePhiBins_;}
74  int doublePhiBins() const {return doublePhiBins_;}
75 
77  void depthBinInformation(HcalSubdetector subdet, int etaRing,
78  int & nDepthBins, int & startingBin) const;
79 
81  int nPhiBins(int etaRing) const;
82 
83 private:
85  int incAIEta(const HcalDetId& id, HcalDetId neighbors[2]) const;
87  int decAIEta(const HcalDetId& id, HcalDetId neighbors[2]) const;
88 
90  bool validRaw(const HcalDetId& id) const;
91 
92  std::vector<HcalDetId> exclusionList_;
94 
95  bool h2mode_;
96  bool isExcluded(const HcalDetId& id) const;
97 
98  const int firstHBRing_;
99  const int lastHBRing_;
100  const int firstHERing_;
101  const int lastHERing_;
102  const int firstHFRing_;
103  const int lastHFRing_;
104  const int firstHORing_;
105  const int lastHORing_;
106 
110  const int singlePhiBins_;
111  const int doublePhiBins_;
112 };
113 
114 
115 #endif
int firstHFRing() const
Definition: HcalTopology.h:65
int decIEta(const HcalDetId &id, HcalDetId neighbors[2]) const
void excludeSubdetector(HcalSubdetector subdet)
Definition: HcalTopology.cc:66
virtual bool valid(const HcalDetId &id) const
Definition: HcalTopology.cc:32
const int lastHBRing_
Definition: HcalTopology.h:99
virtual std::vector< DetId > down(const DetId &id) const
virtual std::vector< DetId > south(const DetId &id) const
void exclude(const HcalDetId &id)
Definition: HcalTopology.cc:59
int nPhiBins(int etaRing) const
how many phi segments in this ring
int firstHBRing() const
Definition: HcalTopology.h:61
int incIEta(const HcalDetId &id, HcalDetId neighbors[2]) const
const int firstHETripleDepthRing_
Definition: HcalTopology.h:109
int lastHBRing() const
Definition: HcalTopology.h:62
const int firstHFQuadPhiRing_
Definition: HcalTopology.h:108
bool decIPhi(const HcalDetId &id, HcalDetId &neighbor) const
const int lastHERing_
Definition: HcalTopology.h:101
int singlePhiBins() const
Definition: HcalTopology.h:73
bool isExcluded(const HcalDetId &id) const
Definition: HcalTopology.cc:41
bool incIPhi(const HcalDetId &id, HcalDetId &neighbor) const
bool validRaw(const HcalDetId &id) const
HcalTopology(bool h2_mode=false)
Definition: HcalTopology.cc:9
int decAIEta(const HcalDetId &id, HcalDetId neighbors[2]) const
const int lastHORing_
Definition: HcalTopology.h:105
const int firstHBRing_
Definition: HcalTopology.h:98
int firstHETripleDepthRing() const
Definition: HcalTopology.h:72
int lastHFRing() const
Definition: HcalTopology.h:66
HcalSubdetector
Definition: HcalAssistant.h:32
const int firstHFRing_
Definition: HcalTopology.h:102
virtual std::vector< DetId > west(const DetId &id) const
Definition: HcalTopology.cc:84
int doublePhiBins() const
Definition: HcalTopology.h:74
void depthBinInformation(HcalSubdetector subdet, int etaRing, int &nDepthBins, int &startingBin) const
finds the number of depth bins and which is the number to start with
const int firstHEDoublePhiRing_
Definition: HcalTopology.h:107
int firstHORing() const
Definition: HcalTopology.h:67
int firstHEDoublePhiRing() const
Definition: HcalTopology.h:70
Definition: DetId.h:20
bool incrementDepth(HcalDetId &id) const
virtual std::vector< DetId > north(const DetId &id) const
Definition: HcalTopology.cc:92
int firstHERing() const
Definition: HcalTopology.h:63
int firstHFQuadPhiRing() const
Definition: HcalTopology.h:71
const int firstHERing_
Definition: HcalTopology.h:100
virtual std::vector< DetId > up(const DetId &id) const
const int firstHORing_
Definition: HcalTopology.h:104
const int lastHFRing_
Definition: HcalTopology.h:103
const int singlePhiBins_
Definition: HcalTopology.h:110
const int doublePhiBins_
Definition: HcalTopology.h:111
std::vector< HcalDetId > exclusionList_
Definition: HcalTopology.h:92
virtual std::vector< DetId > east(const DetId &id) const
Definition: HcalTopology.cc:76
int incAIEta(const HcalDetId &id, HcalDetId neighbors[2]) const
int lastHORing() const
Definition: HcalTopology.h:68
int lastHERing() const
Definition: HcalTopology.h:64