CMS 3D CMS Logo

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>
5 #include <map>
12 
27 public:
28  HcalTopology(const HcalDDDRecConstants* hcons, const bool mergePosition = false);
30  int maxDepthHB,
31  int maxDepthHE,
33 
34  HcalTopologyMode::Mode mode() const { return mode_; }
37  void exclude(const HcalDetId& id);
41  int exclude(HcalSubdetector subdet, int ieta1, int ieta2, int iphi1, int iphi2, int depth1 = 1, int depth2 = 4);
42 
43  static std::string producerTag() { return "HCAL"; }
44 
46  unsigned int detId2denseId(const DetId& id) const override;
48  DetId denseId2detId(unsigned int /*denseid*/) const override;
50  unsigned int ncells() const override;
52  int topoVersion() const override;
53 
55  bool valid(const DetId& id) const override;
57  bool validHcal(const HcalDetId& id) const;
58  bool validDetId(HcalSubdetector subdet, int ieta, int iphi, int depth) const;
59  bool validHT(const HcalTrigTowerDetId& id) const;
60  bool validCalib(const HcalCalibDetId& id) const;
62  bool validHcal(const HcalDetId& id, const unsigned int flag) const;
66  std::vector<DetId> east(const DetId& id) const override;
68  std::vector<DetId> west(const DetId& id) const override;
70  std::vector<DetId> north(const DetId& id) const override;
72  std::vector<DetId> south(const DetId& id) const override;
74  std::vector<DetId> up(const DetId& id) const override;
76  std::vector<DetId> down(const DetId& id) const override;
77 
79  int incIEta(const HcalDetId& id, HcalDetId neighbors[2]) const;
81  int decIEta(const HcalDetId& id, HcalDetId neighbors[2]) const;
83  bool incIPhi(const HcalDetId& id, HcalDetId& neighbor) const;
85  bool decIPhi(const HcalDetId& id, HcalDetId& neighbor) const;
87  bool incrementDepth(HcalDetId& id) const;
89  bool decrementDepth(HcalDetId& id) const;
90 
91  int firstHBRing() const { return firstHBRing_; }
92  int lastHBRing() const { return lastHBRing_; }
93  int firstHERing() const { return firstHERing_; }
94  int lastHERing() const { return lastHERing_; }
95  int lastHBHERing() const { return std::max(lastHBRing_, lastHERing_); }
96  int firstHFRing() const { return firstHFRing_; }
97  int lastHFRing() const { return lastHFRing_; }
98  int firstHORing() const { return firstHORing_; }
99  int lastHORing() const { return lastHORing_; }
100 
102  int firstHEQuadPhiRing() const { return firstHEQuadPhiRing_; }
103  int firstHFQuadPhiRing() const { return firstHFQuadPhiRing_; }
105  int singlePhiBins() const { return singlePhiBins_; }
106  int doublePhiBins() const { return doublePhiBins_; }
107 
109  void depthBinInformation(
110  HcalSubdetector subdet, int etaRing, int iphi, int zside, int& nDepthBins, int& startingBin) const;
111  bool mergedDepth29(HcalDetId id) const { return hcons_->mergedDepthList29(id.ieta(), id.iphi(), id.depth()); }
112  std::vector<int> mergedDepthList29(HcalDetId id) const { return hcons_->mergedDepthList29(id.ieta(), id.iphi()); }
113 
115  int nPhiBins(int etaRing) const;
116  int nPhiBins(HcalSubdetector subdet, int etaRing) const;
117 
119  int etaRing(HcalSubdetector subdet, double eta) const;
120  int phiBin(HcalSubdetector subdet, int etaRing, double phi) const;
121 
124  void getDepthSegmentation(const unsigned ring, std::vector<int>& readoutDepths, const bool flag = false) const;
125  void setDepthSegmentation(const unsigned ring, const std::vector<int>& readoutDepths, const bool flag);
129  std::pair<int, int> segmentBoundaries(const unsigned ring, const unsigned depth, const bool flag = false) const;
130  int getPhiZOne(std::vector<std::pair<int, int> >& phiz) const { return hcons_->getPhiZOne(phiz); }
131 
132  unsigned int getHBSize() const { return HBSize_; }
133  unsigned int getHESize() const { return HESize_; }
134  unsigned int getHOSize() const { return HOSize_; }
135  unsigned int getHFSize() const { return HFSize_; }
136  unsigned int getHTSize() const { return HTSize_; }
137  unsigned int getCALIBSize() const { return CALIBSize_; }
138 
139  int maxDepthHB() const { return maxDepthHB_; }
140  int maxDepthHE() const { return maxDepthHE_; }
141  int maxDepth(void) const;
142  int maxDepth(HcalSubdetector subdet) const;
143  double etaMax(HcalSubdetector subdet) const;
144  std::pair<double, double> etaRange(HcalSubdetector subdet, int ieta) const;
145 
147  unsigned int detId2denseIdHB(const DetId& id) const;
149  unsigned int detId2denseIdHE(const DetId& id) const;
151  unsigned int detId2denseIdHO(const DetId& id) const;
153  unsigned int detId2denseIdHF(const DetId& id) const;
155  unsigned int detId2denseIdHT(const DetId& id) const;
157  unsigned int detId2denseIdCALIB(const DetId& id) const;
159  HcalCalibDetId denseId2detIdCALIB(const unsigned int& id) const;
160 
161  unsigned int getNumberOfShapes() const { return numberOfShapes_; }
162  bool isBH() const { return ((hcons_ == nullptr) ? false : hcons_->isBH()); }
163 
164  const HcalDDDRecConstants* dddConstants() const { return hcons_; }
165  bool withSpecialRBXHBHE() const { return hcons_->withSpecialRBXHBHE(); }
166  HcalDetId mergedDepthDetId(const HcalDetId& id) const { return hcons_->mergedDepthDetId(id); }
167  bool getMergePositionFlag() const { return mergePosition_; }
168  void unmergeDepthDetId(const HcalDetId& id, std::vector<HcalDetId>& ids) const { hcons_->unmergeDepthDetId(id, ids); }
169  // Returns the DetId of the front Id if it is a merged RecHit in "Plan 1"
170  HcalDetId idFront(const HcalDetId& id) const { return hcons_->idFront(id); }
171  HcalDetId idBack(const HcalDetId& id) const { return hcons_->idBack(id); }
172 
173 private:
175  int incAIEta(const HcalDetId& id, HcalDetId neighbors[2]) const;
177  int decAIEta(const HcalDetId& id, HcalDetId neighbors[2]) const;
178 
180  bool validDetIdPreLS1(const HcalDetId& id) const;
181  bool validRaw(const HcalDetId& id) const;
182  unsigned int detId2denseIdPreLS1(const DetId& id) const;
183  bool isExcluded(const HcalDetId& id) const;
184 
187  std::vector<HcalDetId> exclusionList_;
189 
192 
197 
198  std::vector<HcalDDDRecConstants::HcalEtaBin> etaBinsHB_, etaBinsHE_;
200 
207 
208  unsigned int HBSize_;
209  unsigned int HESize_;
210  unsigned int HOSize_;
211  unsigned int HFSize_;
212  unsigned int HTSize_;
213  unsigned int CALIBSize_;
214  unsigned int numberOfShapes_;
215 
216  std::vector<double> etaTable, etaTableHF, dPhiTable, dPhiTableHF;
217  std::vector<double> phioff;
218  std::vector<int> unitPhi, unitPhiHF;
219 
221 
222  // index is ring;
223  typedef std::map<unsigned, std::vector<int> > SegmentationMap;
226 
227  enum {
228  kHBhalf = 1296,
229  kHEhalf = 1296,
230  kHOhalf = 1080,
231  kHFhalf = 864,
232  kHThalf = 2088,
233  kZDChalf = 11,
234  kCASTORhalf = 224,
235  kCALIBhalf = 693,
238  };
240  enum { kHBSizePreLS1 = 2 * kHBhalf };
241  enum { kHESizePreLS1 = 2 * kHEhalf };
242  enum { kHOSizePreLS1 = 2 * kHOhalf };
243  enum { kHFSizePreLS1 = 2 * kHFhalf };
244  enum { kHTSizePreLS1 = 2 * kHThalf };
245  enum { kHTSizePhase1 = 2 * kHThalfPhase1 };
246  enum { kCALIBSizePreLS1 = 2 * kCALIBhalf };
247  static constexpr int minMaxDepth_ = 4;
248  static constexpr unsigned int minPhi_ = 1, maxPhi_ = 72;
249  static constexpr unsigned int kOffCalibHB_ = 0;
250  static constexpr unsigned int nchanCalibHB_ = 3, nEtaCalibHB_ = 2;
251  static constexpr unsigned int mPhiCalibHB_ = 4, kPhiCalibHB_ = maxPhi_ / mPhiCalibHB_;
252  static constexpr int chanCalibHB_[nchanCalibHB_] = {0, 1, 2};
253  static constexpr int etaCalibHB_[nEtaCalibHB_] = {-1, 1};
254  static constexpr unsigned int kchanCalibHB_ = nchanCalibHB_ * kPhiCalibHB_;
255  static constexpr unsigned int nCalibHB_ = kchanCalibHB_ * nEtaCalibHB_;
256  static constexpr unsigned int kOffCalibHE1_ = kOffCalibHB_ + nCalibHB_;
257  static constexpr unsigned int nchanCalibHE1_ = 6, nEtaCalibHE_ = 2;
258  static constexpr unsigned int mPhiCalibHE_ = 4, kPhiCalibHE_ = maxPhi_ / mPhiCalibHE_;
259  static constexpr int chanCalibHE1_[nchanCalibHE1_] = {0, 1, 3, 4, 5, 6};
260  static constexpr int etaCalibHE_[nEtaCalibHE_] = {-1, 1};
261  static constexpr unsigned int kchanCalibHE1_ = nchanCalibHE1_ * kPhiCalibHE_;
262  static constexpr unsigned int nCalibHE1_ = kchanCalibHE1_ * nEtaCalibHE_;
263  static constexpr unsigned int kOffCalibHF1_ = kOffCalibHE1_ + nCalibHE1_;
264  static constexpr unsigned int nchanCalibHF1_ = 3, nEtaCalibHF_ = 2;
265  static constexpr unsigned int mPhiCalibHF1_ = 18, kPhiCalibHF1_ = maxPhi_ / mPhiCalibHF1_;
266  static constexpr int chanCalibHF1_[nchanCalibHF1_] = {0, 1, 8};
267  static constexpr int etaCalibHF_[nEtaCalibHF_] = {-1, 1};
268  static constexpr unsigned int kchanCalibHF1_ = nchanCalibHF1_ * kPhiCalibHF1_;
269  static constexpr unsigned int nCalibHF1_ = kchanCalibHF1_ * nEtaCalibHF_;
270  static constexpr unsigned int kOffCalibHO1_ = kOffCalibHF1_ + nCalibHF1_;
271  static constexpr unsigned int nchanCalibHO_ = 2, nEtaCalibHO_ = 5;
272  static constexpr int chanCalibHOs_ = 7;
273  static constexpr int chanCalibHO_[nchanCalibHO_] = {0, 1};
274  static constexpr int etaCalibHO_[nEtaCalibHO_] = {-2, -1, 0, 1, 2};
275  static constexpr int phiCalibHO_[nEtaCalibHO_] = {59, 47, 53, 47, 47};
276  static constexpr unsigned int mPhiCalibHO0_ = 6, mPhiCalibHO1_ = 12;
277  static constexpr unsigned int kPhiCalibHO0_ = maxPhi_ / mPhiCalibHO0_;
278  static constexpr unsigned int kPhiCalibHO1_ = maxPhi_ / mPhiCalibHO1_;
279  static constexpr unsigned int kPhiCalibHO2_ = 4 * kPhiCalibHO1_ + kPhiCalibHO0_;
280  static constexpr unsigned int nCalibHO1_ = kPhiCalibHO2_ * nchanCalibHO_;
281  static constexpr unsigned int kOffCalibHO2_ = kOffCalibHO1_ + nCalibHO1_;
282  static constexpr unsigned int nCalibHO2_ = nEtaCalibHO_;
283  static constexpr unsigned int kOffCalibHE2_ = kOffCalibHO2_ + nCalibHO2_;
284  static constexpr int chanCalibHE2_ = 2;
285  static constexpr unsigned int kchanCalibHE2_ = kPhiCalibHE_;
286  static constexpr unsigned int nCalibHE2_ = kchanCalibHE2_ * nEtaCalibHE_;
287  static constexpr unsigned int kOffCalibHF2_ = kOffCalibHE2_ + nCalibHE2_;
288  static constexpr int chanCalibHF2_ = 9, phiCalibHF2_ = 1;
289  static constexpr unsigned int kchanCalibHF2_ = 1;
290  static constexpr unsigned int nCalibHF2_ = nEtaCalibHF_;
291  static constexpr unsigned int kOffCalibHOX_ = kOffCalibHF2_ + nCalibHF2_;
292  static constexpr unsigned int nEtaCalibHOX_ = 2;
293  static constexpr int etaCalibHOX_[nEtaCalibHOX_] = {4, 15};
294  static constexpr unsigned int mPhiCalibHOX_[nEtaCalibHOX_] = {2, 1};
295  static constexpr unsigned int nPhiCalibHOX_[nEtaCalibHOX_] = {36, 72};
296  static constexpr int nCalibHOX_ = 2 * (nPhiCalibHOX_[0] + nPhiCalibHOX_[1]);
297  static constexpr int phiCalibHOX1_ = 4, phiCalibHOX2_ = 12, phiCalibHOX3_ = 6;
298  static constexpr unsigned int kOffCalibHBX_ = kOffCalibHOX_ + nCalibHOX_;
299  static constexpr unsigned int nEtaCalibHBX_ = 1, mPhiCalibHBX_ = 1;
300  static constexpr int etaCalibHBX_ = 16;
301  static constexpr unsigned int kPhiCalibHBX_ = maxPhi_ / mPhiCalibHBX_;
302  static constexpr unsigned int nCalibHBX_ = 2 * kPhiCalibHBX_ * nEtaCalibHBX_;
303  static constexpr unsigned int kOffCalibHEX_ = kOffCalibHBX_ + nCalibHBX_;
304  static constexpr unsigned int nEtaCalibHEX_ = 2, mPhiCalibHEX_ = 2;
305  static constexpr int etaCalibHEX_[nEtaCalibHEX_] = {25, 27};
306  static constexpr unsigned int kPhiCalibHEX_ = maxPhi_ / mPhiCalibHEX_;
307  static constexpr unsigned int nCalibHEX_ = 2 * kPhiCalibHEX_ * nEtaCalibHEX_;
308  static constexpr unsigned int kOffCalibHFX_ = kOffCalibHEX_ + nCalibHEX_;
309 };
310 
311 #endif
static constexpr int minMaxDepth_
Definition: HcalTopology.h:247
static constexpr int chanCalibHF2_
Definition: HcalTopology.h:288
bool mergedDepth29(HcalDetId id) const
Definition: HcalTopology.h:111
bool validHT(const HcalTrigTowerDetId &id) const
bool getMergePositionFlag() const
Definition: HcalTopology.h:167
std::vector< int > unitPhiHF
Definition: HcalTopology.h:218
static constexpr unsigned int kchanCalibHE1_
Definition: HcalTopology.h:261
static constexpr int etaCalibHE_[nEtaCalibHE_]
Definition: HcalTopology.h:260
static constexpr unsigned int kchanCalibHF1_
Definition: HcalTopology.h:268
static constexpr unsigned int kPhiCalibHBX_
Definition: HcalTopology.h:301
static constexpr int etaCalibHBX_
Definition: HcalTopology.h:300
static constexpr unsigned int kOffCalibHFX_
Definition: HcalTopology.h:308
unsigned int numberOfShapes_
Definition: HcalTopology.h:214
unsigned int detId2denseIdPreLS1(const DetId &id) const
int firstHORing() const
Definition: HcalTopology.h:98
std::vector< double > dPhiTableHF
Definition: HcalTopology.h:216
void excludeSubdetector(HcalSubdetector subdet)
bool decrementDepth(HcalDetId &id) const
static constexpr unsigned int nCalibHEX_
Definition: HcalTopology.h:307
bool withSpecialRBXHBHE() const
std::vector< HcalDDDRecConstants::HcalEtaBin > etaBinsHB_
Definition: HcalTopology.h:198
HcalDetId mergedDepthDetId(const HcalDetId &id) const
int singlePhiBins() const
Definition: HcalTopology.h:105
bool withSpecialRBXHBHE() const
Definition: HcalTopology.h:165
int topoVersion() const override
return a version which identifies the given topology
void getDepthSegmentation(const unsigned ring, std::vector< int > &readoutDepths, const bool flag=false) const
std::vector< int > unitPhi
Definition: HcalTopology.h:218
bool isBH() const
Definition: HcalTopology.h:162
static constexpr unsigned int nCalibHE1_
Definition: HcalTopology.h:262
static constexpr unsigned int nCalibHO2_
Definition: HcalTopology.h:282
static constexpr unsigned int kchanCalibHE2_
Definition: HcalTopology.h:285
bool valid(const DetId &id) const override
unsigned int getHESize() const
Definition: HcalTopology.h:133
bool mergedDepthList29(int ieta, int iphi, int depth) const
std::vector< DetId > south(const DetId &id) const override
unsigned int detId2denseIdHF(const DetId &id) const
return a linear packed id from HF
void exclude(const HcalDetId &id)
HcalTopologyMode::TriggerMode triggerMode_
Definition: HcalTopology.h:191
int maxDepthHE() const
Definition: HcalTopology.h:140
unsigned int detId2denseIdHO(const DetId &id) const
return a linear packed id from HO
static constexpr unsigned int kchanCalibHF2_
Definition: HcalTopology.h:289
std::pair< int, int > segmentBoundaries(const unsigned ring, const unsigned depth, const bool flag=false) const
static constexpr unsigned int kOffCalibHE1_
Definition: HcalTopology.h:256
unsigned int detId2denseId(const DetId &id) const override
return a linear packed id
int decAIEta(const HcalDetId &id, HcalDetId neighbors[2]) const
static constexpr unsigned int nEtaCalibHO_
Definition: HcalTopology.h:271
static constexpr unsigned int nCalibHB_
Definition: HcalTopology.h:255
unsigned int HESize_
Definition: HcalTopology.h:209
int incIEta(const HcalDetId &id, HcalDetId neighbors[2]) const
int lastHORing() const
Definition: HcalTopology.h:99
HcalDetId idBack(const HcalDetId &id) const
unsigned int HTSize_
Definition: HcalTopology.h:212
static constexpr unsigned int kPhiCalibHO0_
Definition: HcalTopology.h:277
int zside(DetId const &)
bool incIPhi(const HcalDetId &id, HcalDetId &neighbor) const
static constexpr int phiCalibHO_[nEtaCalibHO_]
Definition: HcalTopology.h:275
static constexpr int etaCalibHO_[nEtaCalibHO_]
Definition: HcalTopology.h:274
HcalCalibDetId denseId2detIdCALIB(const unsigned int &id) const
return a Calib DetId from linear packed id
static constexpr unsigned int nEtaCalibHF_
Definition: HcalTopology.h:264
unsigned int getHBSize() const
Definition: HcalTopology.h:132
static constexpr unsigned int nchanCalibHO_
Definition: HcalTopology.h:271
static constexpr int etaCalibHB_[nEtaCalibHB_]
Definition: HcalTopology.h:253
static constexpr unsigned int nCalibHE2_
Definition: HcalTopology.h:286
int maxDepthHB() const
Definition: HcalTopology.h:139
std::vector< HcalDDDRecConstants::HcalEtaBin > etaBinsHE_
Definition: HcalTopology.h:198
static constexpr unsigned int nPhiCalibHOX_[nEtaCalibHOX_]
Definition: HcalTopology.h:295
bool validDetId(HcalSubdetector subdet, int ieta, int iphi, int depth) const
unsigned int getNumberOfShapes() const
Definition: HcalTopology.h:161
int firstHETripleDepthRing() const
Definition: HcalTopology.h:104
unsigned int getHOSize() const
Definition: HcalTopology.h:134
static constexpr int chanCalibHE2_
Definition: HcalTopology.h:284
static constexpr unsigned int nEtaCalibHB_
Definition: HcalTopology.h:250
int etaRing(HcalSubdetector subdet, double eta) const
eta and phi index from eta, phi values
static constexpr int nCalibHOX_
Definition: HcalTopology.h:296
static constexpr int phiCalibHOX3_
Definition: HcalTopology.h:297
static constexpr unsigned int kPhiCalibHB_
Definition: HcalTopology.h:251
static constexpr unsigned int nEtaCalibHE_
Definition: HcalTopology.h:257
unsigned int detId2denseIdHE(const DetId &id) const
return a linear packed id from HE
int getPhiZOne(std::vector< std::pair< int, int > > &phiz) const
Definition: HcalTopology.h:130
static constexpr unsigned int maxPhi_
Definition: HcalTopology.h:248
std::vector< DetId > up(const DetId &id) const override
int firstHBRing() const
Definition: HcalTopology.h:91
static constexpr int phiCalibHOX2_
Definition: HcalTopology.h:297
int decIEta(const HcalDetId &id, HcalDetId neighbors[2]) const
unsigned int CALIBSize_
Definition: HcalTopology.h:213
static constexpr unsigned int nchanCalibHB_
Definition: HcalTopology.h:250
unsigned int detId2denseIdCALIB(const DetId &id) const
return a linear packed id from CALIB
unsigned int HFSize_
Definition: HcalTopology.h:211
static constexpr int phiCalibHOX1_
Definition: HcalTopology.h:297
unsigned int detId2denseIdHB(const DetId &id) const
return a linear packed id from HB
bool decIPhi(const HcalDetId &id, HcalDetId &neighbor) const
int firstHFQuadPhiRing() const
Definition: HcalTopology.h:103
HcalDetId idFront(const HcalDetId &id) const
Definition: HcalTopology.h:170
static constexpr unsigned int kOffCalibHEX_
Definition: HcalTopology.h:303
static constexpr unsigned int mPhiCalibHOX_[nEtaCalibHOX_]
Definition: HcalTopology.h:294
HcalTopologyMode::TriggerMode triggerMode() const
Definition: HcalTopology.h:35
int lastHBRing() const
Definition: HcalTopology.h:92
static constexpr unsigned int nCalibHF1_
Definition: HcalTopology.h:269
HcalTopologyMode::Mode mode_
Definition: HcalTopology.h:190
HcalTopology(const HcalDDDRecConstants *hcons, const bool mergePosition=false)
Definition: HcalTopology.cc:17
static constexpr unsigned int mPhiCalibHEX_
Definition: HcalTopology.h:304
std::pair< double, double > etaRange(HcalSubdetector subdet, int ieta) const
HcalDetId idBack(const HcalDetId &id) const
Definition: HcalTopology.h:171
static std::string producerTag()
Definition: HcalTopology.h:43
int maxDepth(void) const
static constexpr int chanCalibHE1_[nchanCalibHE1_]
Definition: HcalTopology.h:259
HcalSubdetector
Definition: HcalAssistant.h:31
unsigned int HBSize_
Definition: HcalTopology.h:208
HcalTopologyMode::Mode mode() const
Definition: HcalTopology.h:34
DetId denseId2detId(unsigned int) const override
return a linear packed id
static constexpr int etaCalibHEX_[nEtaCalibHEX_]
Definition: HcalTopology.h:305
unsigned int getHFSize() const
Definition: HcalTopology.h:135
unsigned int getHTSize() const
Definition: HcalTopology.h:136
static constexpr unsigned int kPhiCalibHO2_
Definition: HcalTopology.h:279
std::vector< double > etaTableHF
Definition: HcalTopology.h:216
SegmentationMap depthSegmentation_
Definition: HcalTopology.h:224
static constexpr unsigned int kPhiCalibHO1_
Definition: HcalTopology.h:278
SegmentationMap depthSegmentationOne_
Definition: HcalTopology.h:225
bool validRaw(const HcalDetId &id) const
static constexpr unsigned int mPhiCalibHE_
Definition: HcalTopology.h:258
unsigned int HOSize_
Definition: HcalTopology.h:210
bool validDetIdPreLS1(const HcalDetId &id) const
std::vector< DetId > east(const DetId &id) const override
std::vector< double > etaTable
Definition: HcalTopology.h:216
int incAIEta(const HcalDetId &id, HcalDetId neighbors[2]) const
static constexpr unsigned int kOffCalibHB_
Definition: HcalTopology.h:249
static constexpr unsigned int nchanCalibHF1_
Definition: HcalTopology.h:264
unsigned int ncells() const override
return a count of valid cells (for dense indexing use)
std::vector< DetId > down(const DetId &id) const override
static constexpr unsigned int nCalibHBX_
Definition: HcalTopology.h:302
static constexpr int chanCalibHO_[nchanCalibHO_]
Definition: HcalTopology.h:273
static constexpr unsigned int nchanCalibHE1_
Definition: HcalTopology.h:257
static constexpr unsigned int mPhiCalibHO1_
Definition: HcalTopology.h:276
static constexpr unsigned int kOffCalibHOX_
Definition: HcalTopology.h:291
static constexpr unsigned int kPhiCalibHF1_
Definition: HcalTopology.h:265
int firstHEQuadPhiRing() const
Definition: HcalTopology.h:102
int firstHEQuadPhiRing_
Definition: HcalTopology.h:201
bool validCalib(const HcalCalibDetId &id) const
Definition: DetId.h:17
bool mergePosition_
Definition: HcalTopology.h:186
static constexpr int etaCalibHOX_[nEtaCalibHOX_]
Definition: HcalTopology.h:293
std::vector< double > phioff
Definition: HcalTopology.h:217
int getPhiZOne(std::vector< std::pair< int, int >> &phiz) const
static constexpr int chanCalibHOs_
Definition: HcalTopology.h:272
void depthBinInformation(HcalSubdetector subdet, int etaRing, int iphi, int zside, int &nDepthBins, int &startingBin) const
finds the number of depth bins and which is the number to start with
static constexpr unsigned int kOffCalibHF1_
Definition: HcalTopology.h:263
static constexpr unsigned int nEtaCalibHOX_
Definition: HcalTopology.h:292
static constexpr int chanCalibHF1_[nchanCalibHF1_]
Definition: HcalTopology.h:266
static constexpr unsigned int kOffCalibHE2_
Definition: HcalTopology.h:283
int firstHEDoublePhiRing() const
Definition: HcalTopology.h:101
static constexpr unsigned int kOffCalibHBX_
Definition: HcalTopology.h:298
static constexpr int chanCalibHB_[nchanCalibHB_]
Definition: HcalTopology.h:252
std::vector< DetId > north(const DetId &id) const override
bool validHcal(const HcalDetId &id) const
static constexpr unsigned int mPhiCalibHO0_
Definition: HcalTopology.h:276
std::vector< double > dPhiTable
Definition: HcalTopology.h:216
static constexpr unsigned int nEtaCalibHBX_
Definition: HcalTopology.h:299
HcalDetId mergedDepthDetId(const HcalDetId &id) const
Definition: HcalTopology.h:166
static constexpr unsigned int kOffCalibHO2_
Definition: HcalTopology.h:281
HcalDetId idFront(const HcalDetId &id) const
static constexpr unsigned int minPhi_
Definition: HcalTopology.h:248
int firstHETripleDepthRing_
Definition: HcalTopology.h:202
void unmergeDepthDetId(const HcalDetId &id, std::vector< HcalDetId > &ids) const
Definition: HcalTopology.h:168
int lastHERing() const
Definition: HcalTopology.h:94
static constexpr int etaCalibHF_[nEtaCalibHF_]
Definition: HcalTopology.h:267
int doublePhiBins() const
Definition: HcalTopology.h:106
static constexpr unsigned int nCalibHO1_
Definition: HcalTopology.h:280
std::vector< HcalDetId > exclusionList_
Definition: HcalTopology.h:187
const HcalDDDRecConstants * dddConstants() const
Definition: HcalTopology.h:164
bool incrementDepth(HcalDetId &id) const
std::vector< int > mergedDepthList29(HcalDetId id) const
Definition: HcalTopology.h:112
int lastHFRing() const
Definition: HcalTopology.h:97
static constexpr unsigned int kPhiCalibHE_
Definition: HcalTopology.h:258
unsigned int getCALIBSize() const
Definition: HcalTopology.h:137
static constexpr unsigned int mPhiCalibHB_
Definition: HcalTopology.h:251
static constexpr unsigned int kchanCalibHB_
Definition: HcalTopology.h:254
int phiBin(HcalSubdetector subdet, int etaRing, double phi) const
void unmergeDepthDetId(const HcalDetId &id, std::vector< HcalDetId > &ids) const
std::vector< DetId > west(const DetId &id) const override
void setDepthSegmentation(const unsigned ring, const std::vector< int > &readoutDepths, const bool flag)
static constexpr int phiCalibHF2_
Definition: HcalTopology.h:288
static constexpr unsigned int kOffCalibHO1_
Definition: HcalTopology.h:270
static constexpr unsigned int nEtaCalibHEX_
Definition: HcalTopology.h:304
static constexpr unsigned int kPhiCalibHEX_
Definition: HcalTopology.h:306
static constexpr unsigned int nCalibHF2_
Definition: HcalTopology.h:290
double etaMax(HcalSubdetector subdet) const
static constexpr unsigned int mPhiCalibHF1_
Definition: HcalTopology.h:265
unsigned int detId2denseIdHT(const DetId &id) const
return a linear packed id from HT
int firstHFRing() const
Definition: HcalTopology.h:96
int nPhiBins(int etaRing) const
how many phi segments in this ring
int firstHEDoublePhiRing_
Definition: HcalTopology.h:201
const HcalDDDRecConstants * hcons_
Definition: HcalTopology.h:185
std::map< unsigned, std::vector< int > > SegmentationMap
Definition: HcalTopology.h:223
static constexpr unsigned int kOffCalibHF2_
Definition: HcalTopology.h:287
int firstHFQuadPhiRing_
Definition: HcalTopology.h:201
int lastHBHERing() const
Definition: HcalTopology.h:95
int firstHERing() const
Definition: HcalTopology.h:93
bool isExcluded(const HcalDetId &id) const
static constexpr unsigned int mPhiCalibHBX_
Definition: HcalTopology.h:299